diff --git a/src/angular/frontend/package.json b/src/angular/frontend/package.json
index 0cb5227..1863bbd 100644
--- a/src/angular/frontend/package.json
+++ b/src/angular/frontend/package.json
@@ -26,7 +26,7 @@
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"jquery": "^2.2.4",
- "openvidu-browser": "1.0.4-beta.3",
+ "openvidu-browser": "1.0.5-beta.3",
"rxjs": "^5.1.0",
"zone.js": "^0.7.6"
},
diff --git a/src/main/resources/static/inline.bundle.js.map b/src/main/resources/static/inline.bundle.js.map
index c36384f..7b8b670 100644
--- a/src/main/resources/static/inline.bundle.js.map
+++ b/src/main/resources/static/inline.bundle.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 8dfd54b77af483fedc06"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,kDAA0C,oBAAoB,WAAW","file":"inline.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length)\n \t\t\tresolves.shift()();\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t4: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn Promise.resolve();\n\n \t\t// an Promise means \"currently loading\".\n \t\tif(installedChunks[chunkId]) {\n \t\t\treturn installedChunks[chunkId][2];\n \t\t}\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".chunk.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunks[chunkId][2] = promise;\n\n \t\thead.appendChild(script);\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 8dfd54b77af483fedc06"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap 4bc04afe97d1c5ead5ce"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,kDAA0C,oBAAoB,WAAW","file":"inline.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length)\n \t\t\tresolves.shift()();\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t4: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn Promise.resolve();\n\n \t\t// an Promise means \"currently loading\".\n \t\tif(installedChunks[chunkId]) {\n \t\t\treturn installedChunks[chunkId][2];\n \t\t}\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".chunk.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunks[chunkId][2] = promise;\n\n \t\thead.appendChild(script);\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4bc04afe97d1c5ead5ce"],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/main/resources/static/main.bundle.js b/src/main/resources/static/main.bundle.js
index 4a71412..4a10cae 100644
--- a/src/main/resources/static/main.bundle.js
+++ b/src/main/resources/static/main.bundle.js
@@ -1,13 +1,1172 @@
webpackJsonp([1,4],{
-/***/ 1119:
+/***/ 1048:
+/***/ (function(module, exports) {
+
+function Mapper() {
+ var sources = {};
+ this.forEach = function (callback) {
+ for (var key in sources) {
+ var source = sources[key];
+ for (var key2 in source)
+ callback(source[key2]);
+ }
+ ;
+ };
+ this.get = function (id, source) {
+ var ids = sources[source];
+ if (ids == undefined)
+ return undefined;
+ return ids[id];
+ };
+ this.remove = function (id, source) {
+ var ids = sources[source];
+ if (ids == undefined)
+ return;
+ delete ids[id];
+ // Check it's empty
+ for (var i in ids) {
+ return false;
+ }
+ delete sources[source];
+ };
+ this.set = function (value, id, source) {
+ if (value == undefined)
+ return this.remove(id, source);
+ var ids = sources[source];
+ if (ids == undefined)
+ sources[source] = ids = {};
+ ids[id] = value;
+ };
+}
+;
+Mapper.prototype.pop = function (id, source) {
+ var value = this.get(id, source);
+ if (value == undefined)
+ return undefined;
+ this.remove(id, source);
+ return value;
+};
+module.exports = Mapper;
+
+
+/***/ }),
+
+/***/ 1049:
+/***/ (function(module, exports, __webpack_require__) {
+
+/*
+ * (C) Copyright 2014 Kurento (http://kurento.org/)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+var JsonRpcClient = __webpack_require__(1050);
+exports.JsonRpcClient = JsonRpcClient;
+
+
+/***/ }),
+
+/***/ 1050:
+/***/ (function(module, exports, __webpack_require__) {
+
+/*
+ * (C) Copyright 2014 Kurento (http://kurento.org/)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+var RpcBuilder = __webpack_require__(523);
+var WebSocketWithReconnection = __webpack_require__(522);
+Date.now = Date.now || function () {
+ return +new Date;
+};
+var PING_INTERVAL = 5000;
+var RECONNECTING = 'RECONNECTING';
+var CONNECTED = 'CONNECTED';
+var DISCONNECTED = 'DISCONNECTED';
+var Logger = console;
+/**
+ *
+ * heartbeat: interval in ms for each heartbeat message,
+ * sendCloseMessage : true / false, before closing the connection, it sends a closeSession message
+ *
+ * ws : {
+ * uri : URI to conntect to,
+ * useSockJS : true (use SockJS) / false (use WebSocket) by default,
+ * onconnected : callback method to invoke when connection is successful,
+ * ondisconnect : callback method to invoke when the connection is lost,
+ * onreconnecting : callback method to invoke when the client is reconnecting,
+ * onreconnected : callback method to invoke when the client succesfully reconnects,
+ * onerror : callback method to invoke when there is an error
+ * },
+ * rpc : {
+ * requestTimeout : timeout for a request,
+ * sessionStatusChanged: callback method for changes in session status,
+ * mediaRenegotiation: mediaRenegotiation
+ * }
+ *
+ */
+function JsonRpcClient(configuration) {
+ var self = this;
+ var wsConfig = configuration.ws;
+ var notReconnectIfNumLessThan = -1;
+ var pingNextNum = 0;
+ var enabledPings = true;
+ var pingPongStarted = false;
+ var pingInterval;
+ var status = DISCONNECTED;
+ var onreconnecting = wsConfig.onreconnecting;
+ var onreconnected = wsConfig.onreconnected;
+ var onconnected = wsConfig.onconnected;
+ var onerror = wsConfig.onerror;
+ configuration.rpc.pull = function (params, request) {
+ request.reply(null, "push");
+ };
+ wsConfig.onreconnecting = function () {
+ Logger.debug("--------- ONRECONNECTING -----------");
+ if (status === RECONNECTING) {
+ Logger.error("Websocket already in RECONNECTING state when receiving a new ONRECONNECTING message. Ignoring it");
+ return;
+ }
+ status = RECONNECTING;
+ if (onreconnecting) {
+ onreconnecting();
+ }
+ };
+ wsConfig.onreconnected = function () {
+ Logger.debug("--------- ONRECONNECTED -----------");
+ if (status === CONNECTED) {
+ Logger.error("Websocket already in CONNECTED state when receiving a new ONRECONNECTED message. Ignoring it");
+ return;
+ }
+ status = CONNECTED;
+ enabledPings = true;
+ updateNotReconnectIfLessThan();
+ usePing();
+ if (onreconnected) {
+ onreconnected();
+ }
+ };
+ wsConfig.onconnected = function () {
+ Logger.debug("--------- ONCONNECTED -----------");
+ if (status === CONNECTED) {
+ Logger.error("Websocket already in CONNECTED state when receiving a new ONCONNECTED message. Ignoring it");
+ return;
+ }
+ status = CONNECTED;
+ enabledPings = true;
+ usePing();
+ if (onconnected) {
+ onconnected();
+ }
+ };
+ wsConfig.onerror = function (error) {
+ Logger.debug("--------- ONERROR -----------");
+ status = DISCONNECTED;
+ if (onerror) {
+ onerror(error);
+ }
+ };
+ var ws = new WebSocketWithReconnection(wsConfig);
+ Logger.debug('Connecting websocket to URI: ' + wsConfig.uri);
+ var rpcBuilderOptions = {
+ request_timeout: configuration.rpc.requestTimeout,
+ ping_request_timeout: configuration.rpc.heartbeatRequestTimeout
+ };
+ var rpc = new RpcBuilder(RpcBuilder.packers.JsonRPC, rpcBuilderOptions, ws, function (request) {
+ Logger.debug('Received request: ' + JSON.stringify(request));
+ try {
+ var func = configuration.rpc[request.method];
+ if (func === undefined) {
+ Logger.error("Method " + request.method + " not registered in client");
+ }
+ else {
+ func(request.params, request);
+ }
+ }
+ catch (err) {
+ Logger.error('Exception processing request: ' + JSON.stringify(request));
+ Logger.error(err);
+ }
+ });
+ this.send = function (method, params, callback) {
+ if (method !== 'ping') {
+ Logger.debug('Request: method:' + method + " params:" + JSON.stringify(params));
+ }
+ var requestTime = Date.now();
+ rpc.encode(method, params, function (error, result) {
+ if (error) {
+ try {
+ Logger.error("ERROR:" + error.message + " in Request: method:" +
+ method + " params:" + JSON.stringify(params) + " request:" +
+ error.request);
+ if (error.data) {
+ Logger.error("ERROR DATA:" + JSON.stringify(error.data));
+ }
+ }
+ catch (e) { }
+ error.requestTime = requestTime;
+ }
+ if (callback) {
+ if (result != undefined && result.value !== 'pong') {
+ Logger.debug('Response: ' + JSON.stringify(result));
+ }
+ callback(error, result);
+ }
+ });
+ };
+ function updateNotReconnectIfLessThan() {
+ Logger.debug("notReconnectIfNumLessThan = " + pingNextNum + ' (old=' +
+ notReconnectIfNumLessThan + ')');
+ notReconnectIfNumLessThan = pingNextNum;
+ }
+ function sendPing() {
+ if (enabledPings) {
+ var params = null;
+ if (pingNextNum == 0 || pingNextNum == notReconnectIfNumLessThan) {
+ params = {
+ interval: configuration.heartbeat || PING_INTERVAL
+ };
+ }
+ pingNextNum++;
+ self.send('ping', params, (function (pingNum) {
+ return function (error, result) {
+ if (error) {
+ Logger.debug("Error in ping request #" + pingNum + " (" +
+ error.message + ")");
+ if (pingNum > notReconnectIfNumLessThan) {
+ enabledPings = false;
+ updateNotReconnectIfLessThan();
+ Logger.debug("Server did not respond to ping message #" +
+ pingNum + ". Reconnecting... ");
+ ws.reconnectWs();
+ }
+ }
+ };
+ })(pingNextNum));
+ }
+ else {
+ Logger.debug("Trying to send ping, but ping is not enabled");
+ }
+ }
+ /*
+ * If configuration.hearbeat has any value, the ping-pong will work with the interval
+ * of configuration.hearbeat
+ */
+ function usePing() {
+ if (!pingPongStarted) {
+ Logger.debug("Starting ping (if configured)");
+ pingPongStarted = true;
+ if (configuration.heartbeat != undefined) {
+ pingInterval = setInterval(sendPing, configuration.heartbeat);
+ sendPing();
+ }
+ }
+ }
+ this.close = function () {
+ Logger.debug("Closing jsonRpcClient explicitly by client");
+ if (pingInterval != undefined) {
+ Logger.debug("Clearing ping interval");
+ clearInterval(pingInterval);
+ }
+ pingPongStarted = false;
+ enabledPings = false;
+ if (configuration.sendCloseMessage) {
+ Logger.debug("Sending close message");
+ this.send('closeSession', null, function (error, result) {
+ if (error) {
+ Logger.error("Error sending close message: " + JSON.stringify(error));
+ }
+ ws.close();
+ });
+ }
+ else {
+ ws.close();
+ }
+ };
+ // This method is only for testing
+ this.forceClose = function (millis) {
+ ws.forceClose(millis);
+ };
+ this.reconnect = function () {
+ ws.reconnectWs();
+ };
+}
+module.exports = JsonRpcClient;
+
+
+/***/ }),
+
+/***/ 1051:
+/***/ (function(module, exports, __webpack_require__) {
+
+/*
+ * (C) Copyright 2014 Kurento (http://kurento.org/)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+var WebSocketWithReconnection = __webpack_require__(522);
+exports.WebSocketWithReconnection = WebSocketWithReconnection;
+
+
+/***/ }),
+
+/***/ 1052:
+/***/ (function(module, exports) {
+
+/**
+ * JsonRPC 2.0 packer
+ */
+/**
+ * Pack a JsonRPC 2.0 message
+ *
+ * @param {Object} message - object to be packaged. It requires to have all the
+ * fields needed by the JsonRPC 2.0 message that it's going to be generated
+ *
+ * @return {String} - the stringified JsonRPC 2.0 message
+ */
+function pack(message, id) {
+ var result = {
+ jsonrpc: "2.0"
+ };
+ // Request
+ if (message.method) {
+ result.method = message.method;
+ if (message.params)
+ result.params = message.params;
+ // Request is a notification
+ if (id != undefined)
+ result.id = id;
+ }
+ else if (id != undefined) {
+ if (message.error) {
+ if (message.result !== undefined)
+ throw new TypeError("Both result and error are defined");
+ result.error = message.error;
+ }
+ else if (message.result !== undefined)
+ result.result = message.result;
+ else
+ throw new TypeError("No result or error is defined");
+ result.id = id;
+ }
+ ;
+ return JSON.stringify(result);
+}
+;
+/**
+ * Unpack a JsonRPC 2.0 message
+ *
+ * @param {String} message - string with the content of the JsonRPC 2.0 message
+ *
+ * @throws {TypeError} - Invalid JsonRPC version
+ *
+ * @return {Object} - object filled with the JsonRPC 2.0 message content
+ */
+function unpack(message) {
+ var result = message;
+ if (typeof message === 'string' || message instanceof String) {
+ result = JSON.parse(message);
+ }
+ // Check if it's a valid message
+ var version = result.jsonrpc;
+ if (version !== '2.0')
+ throw new TypeError("Invalid JsonRPC version '" + version + "': " + message);
+ // Response
+ if (result.method == undefined) {
+ if (result.id == undefined)
+ throw new TypeError("Invalid message: " + message);
+ var result_defined = result.result !== undefined;
+ var error_defined = result.error !== undefined;
+ // Check only result or error is defined, not both or none
+ if (result_defined && error_defined)
+ throw new TypeError("Both result and error are defined: " + message);
+ if (!result_defined && !error_defined)
+ throw new TypeError("No result or error is defined: " + message);
+ result.ack = result.id;
+ delete result.id;
+ }
+ // Return unpacked message
+ return result;
+}
+;
+exports.pack = pack;
+exports.unpack = unpack;
+
+
+/***/ }),
+
+/***/ 1053:
+/***/ (function(module, exports) {
+
+function pack(message) {
+ throw new TypeError("Not yet implemented");
+}
+;
+function unpack(message) {
+ throw new TypeError("Not yet implemented");
+}
+;
+exports.pack = pack;
+exports.unpack = unpack;
+
+
+/***/ }),
+
+/***/ 1054:
+/***/ (function(module, exports, __webpack_require__) {
+
+var JsonRPC = __webpack_require__(1052);
+var XmlRPC = __webpack_require__(1053);
+exports.JsonRPC = JsonRPC;
+exports.XmlRPC = XmlRPC;
+
+
+/***/ }),
+
+/***/ 1055:
+/***/ (function(module, exports, __webpack_require__) {
+
+/*
+ * (C) Copyright 2014-2015 Kurento (http://kurento.org/)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var freeice = __webpack_require__(768);
+var inherits = __webpack_require__(481);
+var UAParser = __webpack_require__(1062);
+var uuid = __webpack_require__(1064);
+var hark = __webpack_require__(770);
+var EventEmitter = __webpack_require__(480).EventEmitter;
+var recursive = __webpack_require__(774).recursive.bind(undefined, true);
+var sdpTranslator = __webpack_require__(1044);
+var logger = window.Logger || console;
+// var gUM = navigator.mediaDevices.getUserMedia || function (constraints) {
+// return new Promise(navigator.getUserMedia(constraints, function (stream) {
+// videoStream = stream
+// start()
+// }).eror(callback));
+// }
+try {
+ __webpack_require__(773);
+}
+catch (error) {
+ if (typeof getScreenConstraints === 'undefined') {
+ logger.warn('screen sharing is not available');
+ getScreenConstraints = function getScreenConstraints(sendSource, callback) {
+ callback(new Error("This library is not enabled for screen sharing"));
+ };
+ }
+}
+var MEDIA_CONSTRAINTS = {
+ audio: true,
+ video: {
+ width: 640,
+ framerate: 15
+ }
+};
+// Somehow, the UAParser constructor gets an empty window object.
+// We need to pass the user agent string in order to get information
+var ua = (window && window.navigator) ? window.navigator.userAgent : '';
+var parser = new UAParser(ua);
+var browser = parser.getBrowser();
+var usePlanB = false;
+if (browser.name === 'Chrome' || browser.name === 'Chromium') {
+ logger.debug(browser.name + ": using SDP PlanB");
+ usePlanB = true;
+}
+function noop(error) {
+ if (error)
+ logger.error(error);
+}
+function trackStop(track) {
+ track.stop && track.stop();
+}
+function streamStop(stream) {
+ stream.getTracks().forEach(trackStop);
+}
+/**
+ * Returns a string representation of a SessionDescription object.
+ */
+var dumpSDP = function (description) {
+ if (typeof description === 'undefined' || description === null) {
+ return '';
+ }
+ return 'type: ' + description.type + '\r\n' + description.sdp;
+};
+function bufferizeCandidates(pc, onerror) {
+ var candidatesQueue = [];
+ pc.addEventListener('signalingstatechange', function () {
+ if (this.signalingState === 'stable') {
+ while (candidatesQueue.length) {
+ var entry = candidatesQueue.shift();
+ this.addIceCandidate(entry.candidate, entry.callback, entry.callback);
+ }
+ }
+ });
+ return function (candidate, callback) {
+ callback = callback || onerror;
+ switch (pc.signalingState) {
+ case 'closed':
+ callback(new Error('PeerConnection object is closed'));
+ break;
+ case 'stable':
+ if (pc.remoteDescription) {
+ pc.addIceCandidate(candidate, callback, callback);
+ break;
+ }
+ default:
+ candidatesQueue.push({
+ candidate: candidate,
+ callback: callback
+ });
+ }
+ };
+}
+/* Simulcast utilities */
+function removeFIDFromOffer(sdp) {
+ var n = sdp.indexOf("a=ssrc-group:FID");
+ if (n > 0) {
+ return sdp.slice(0, n);
+ }
+ else {
+ return sdp;
+ }
+}
+function getSimulcastInfo(videoStream) {
+ var videoTracks = videoStream.getVideoTracks();
+ if (!videoTracks.length) {
+ logger.warn('No video tracks available in the video stream');
+ return '';
+ }
+ var lines = [
+ 'a=x-google-flag:conference',
+ 'a=ssrc-group:SIM 1 2 3',
+ 'a=ssrc:1 cname:localVideo',
+ 'a=ssrc:1 msid:' + videoStream.id + ' ' + videoTracks[0].id,
+ 'a=ssrc:1 mslabel:' + videoStream.id,
+ 'a=ssrc:1 label:' + videoTracks[0].id,
+ 'a=ssrc:2 cname:localVideo',
+ 'a=ssrc:2 msid:' + videoStream.id + ' ' + videoTracks[0].id,
+ 'a=ssrc:2 mslabel:' + videoStream.id,
+ 'a=ssrc:2 label:' + videoTracks[0].id,
+ 'a=ssrc:3 cname:localVideo',
+ 'a=ssrc:3 msid:' + videoStream.id + ' ' + videoTracks[0].id,
+ 'a=ssrc:3 mslabel:' + videoStream.id,
+ 'a=ssrc:3 label:' + videoTracks[0].id
+ ];
+ lines.push('');
+ return lines.join('\n');
+}
+/**
+ * Wrapper object of an RTCPeerConnection. This object is aimed to simplify the
+ * development of WebRTC-based applications.
+ *
+ * @constructor module:kurentoUtils.WebRtcPeer
+ *
+ * @param {String} mode Mode in which the PeerConnection will be configured.
+ * Valid values are: 'recv', 'send', and 'sendRecv'
+ * @param localVideo Video tag for the local stream
+ * @param remoteVideo Video tag for the remote stream
+ * @param {MediaStream} videoStream Stream to be used as primary source
+ * (typically video and audio, or only video if combined with audioStream) for
+ * localVideo and to be added as stream to the RTCPeerConnection
+ * @param {MediaStream} audioStream Stream to be used as second source
+ * (typically for audio) for localVideo and to be added as stream to the
+ * RTCPeerConnection
+ */
+function WebRtcPeer(mode, options, callback) {
+ if (!(this instanceof WebRtcPeer)) {
+ return new WebRtcPeer(mode, options, callback);
+ }
+ WebRtcPeer.super_.call(this);
+ if (options instanceof Function) {
+ callback = options;
+ options = undefined;
+ }
+ options = options || {};
+ callback = (callback || noop).bind(this);
+ var self = this;
+ var localVideo = options.localVideo;
+ var remoteVideo = options.remoteVideo;
+ var videoStream = options.videoStream;
+ var audioStream = options.audioStream;
+ var mediaConstraints = options.mediaConstraints;
+ var connectionConstraints = options.connectionConstraints;
+ var pc = options.peerConnection;
+ var sendSource = options.sendSource || 'webcam';
+ var dataChannelConfig = options.dataChannelConfig;
+ var useDataChannels = options.dataChannels || false;
+ var dataChannel;
+ var guid = uuid.v4();
+ var configuration = recursive({
+ iceServers: freeice()
+ }, options.configuration);
+ var onicecandidate = options.onicecandidate;
+ if (onicecandidate)
+ this.on('icecandidate', onicecandidate);
+ var oncandidategatheringdone = options.oncandidategatheringdone;
+ if (oncandidategatheringdone) {
+ this.on('candidategatheringdone', oncandidategatheringdone);
+ }
+ var simulcast = options.simulcast;
+ var multistream = options.multistream;
+ var interop = new sdpTranslator.Interop();
+ var candidatesQueueOut = [];
+ var candidategatheringdone = false;
+ Object.defineProperties(this, {
+ 'peerConnection': {
+ get: function () {
+ return pc;
+ }
+ },
+ 'id': {
+ value: options.id || guid,
+ writable: false
+ },
+ 'remoteVideo': {
+ get: function () {
+ return remoteVideo;
+ }
+ },
+ 'localVideo': {
+ get: function () {
+ return localVideo;
+ }
+ },
+ 'dataChannel': {
+ get: function () {
+ return dataChannel;
+ }
+ },
+ /**
+ * @member {(external:ImageData|undefined)} currentFrame
+ */
+ 'currentFrame': {
+ get: function () {
+ // [ToDo] Find solution when we have a remote stream but we didn't set
+ // a remoteVideo tag
+ if (!remoteVideo)
+ return;
+ if (remoteVideo.readyState < remoteVideo.HAVE_CURRENT_DATA)
+ throw new Error('No video stream data available');
+ var canvas = document.createElement('canvas');
+ canvas.width = remoteVideo.videoWidth;
+ canvas.height = remoteVideo.videoHeight;
+ canvas.getContext('2d').drawImage(remoteVideo, 0, 0);
+ return canvas;
+ }
+ }
+ });
+ // Init PeerConnection
+ if (!pc) {
+ pc = new RTCPeerConnection(configuration);
+ if (useDataChannels && !dataChannel) {
+ var dcId = 'WebRtcPeer-' + self.id;
+ var dcOptions = undefined;
+ if (dataChannelConfig) {
+ dcId = dataChannelConfig.id || dcId;
+ dcOptions = dataChannelConfig.options;
+ }
+ dataChannel = pc.createDataChannel(dcId, dcOptions);
+ if (dataChannelConfig) {
+ dataChannel.onopen = dataChannelConfig.onopen;
+ dataChannel.onclose = dataChannelConfig.onclose;
+ dataChannel.onmessage = dataChannelConfig.onmessage;
+ dataChannel.onbufferedamountlow = dataChannelConfig.onbufferedamountlow;
+ dataChannel.onerror = dataChannelConfig.onerror || noop;
+ }
+ }
+ }
+ pc.addEventListener('icecandidate', function (event) {
+ var candidate = event.candidate;
+ if (EventEmitter.listenerCount(self, 'icecandidate') ||
+ EventEmitter.listenerCount(self, 'candidategatheringdone')) {
+ if (candidate) {
+ var cand;
+ if (multistream && usePlanB) {
+ cand = interop.candidateToUnifiedPlan(candidate);
+ }
+ else {
+ cand = candidate;
+ }
+ self.emit('icecandidate', cand);
+ candidategatheringdone = false;
+ }
+ else if (!candidategatheringdone) {
+ self.emit('candidategatheringdone');
+ candidategatheringdone = true;
+ }
+ }
+ else if (!candidategatheringdone) {
+ // Not listening to 'icecandidate' or 'candidategatheringdone' events, queue
+ // the candidate until one of them is listened
+ candidatesQueueOut.push(candidate);
+ if (!candidate)
+ candidategatheringdone = true;
+ }
+ });
+ pc.ontrack = options.onaddstream;
+ pc.onnegotiationneeded = options.onnegotiationneeded;
+ this.on('newListener', function (event, listener) {
+ if (event === 'icecandidate' || event === 'candidategatheringdone') {
+ while (candidatesQueueOut.length) {
+ var candidate = candidatesQueueOut.shift();
+ if (!candidate === (event === 'candidategatheringdone')) {
+ listener(candidate);
+ }
+ }
+ }
+ });
+ var addIceCandidate = bufferizeCandidates(pc);
+ /**
+ * Callback function invoked when an ICE candidate is received. Developers are
+ * expected to invoke this function in order to complete the SDP negotiation.
+ *
+ * @function module:kurentoUtils.WebRtcPeer.prototype.addIceCandidate
+ *
+ * @param iceCandidate - Literal object with the ICE candidate description
+ * @param callback - Called when the ICE candidate has been added.
+ */
+ this.addIceCandidate = function (iceCandidate, callback) {
+ var candidate;
+ if (multistream && usePlanB) {
+ candidate = interop.candidateToPlanB(iceCandidate);
+ }
+ else {
+ candidate = new RTCIceCandidate(iceCandidate);
+ }
+ logger.debug('Remote ICE candidate received', iceCandidate);
+ callback = (callback || noop).bind(this);
+ addIceCandidate(candidate, callback);
+ };
+ this.generateOffer = function (callback) {
+ callback = callback.bind(this);
+ var offerAudio = true;
+ var offerVideo = true;
+ // Constraints must have both blocks
+ if (mediaConstraints) {
+ offerAudio = (typeof mediaConstraints.audio === 'boolean') ?
+ mediaConstraints.audio : true;
+ offerVideo = (typeof mediaConstraints.video === 'boolean') ?
+ mediaConstraints.video : true;
+ }
+ var browserDependantConstraints = {
+ offerToReceiveAudio: (mode !== 'sendonly' && offerAudio),
+ offerToReceiveVideo: (mode !== 'sendonly' && offerVideo)
+ };
+ //FIXME: clarify possible constraints passed to createOffer()
+ /*var constraints = recursive(browserDependantConstraints,
+ connectionConstraints)*/
+ var constraints = browserDependantConstraints;
+ logger.debug('constraints: ' + JSON.stringify(constraints));
+ pc.createOffer(constraints).then(function (offer) {
+ logger.debug('Created SDP offer');
+ offer = mangleSdpToAddSimulcast(offer);
+ return pc.setLocalDescription(offer);
+ }).then(function () {
+ var localDescription = pc.localDescription;
+ logger.debug('Local description set', localDescription.sdp);
+ if (multistream && usePlanB) {
+ localDescription = interop.toUnifiedPlan(localDescription);
+ logger.debug('offer::origPlanB->UnifiedPlan', dumpSDP(localDescription));
+ }
+ callback(null, localDescription.sdp, self.processAnswer.bind(self));
+ }).catch(callback);
+ };
+ this.getLocalSessionDescriptor = function () {
+ return pc.localDescription;
+ };
+ this.getRemoteSessionDescriptor = function () {
+ return pc.remoteDescription;
+ };
+ function setRemoteVideo() {
+ if (remoteVideo) {
+ var stream = pc.getRemoteStreams()[0];
+ var url = stream ? URL.createObjectURL(stream) : '';
+ remoteVideo.pause();
+ remoteVideo.src = url;
+ remoteVideo.load();
+ logger.debug('Remote URL:', url);
+ }
+ }
+ this.showLocalVideo = function () {
+ localVideo.src = URL.createObjectURL(videoStream);
+ localVideo.muted = true;
+ };
+ this.send = function (data) {
+ if (dataChannel && dataChannel.readyState === 'open') {
+ dataChannel.send(data);
+ }
+ else {
+ logger.warn('Trying to send data over a non-existing or closed data channel');
+ }
+ };
+ /**
+ * Callback function invoked when a SDP answer is received. Developers are
+ * expected to invoke this function in order to complete the SDP negotiation.
+ *
+ * @function module:kurentoUtils.WebRtcPeer.prototype.processAnswer
+ *
+ * @param sdpAnswer - Description of sdpAnswer
+ * @param callback -
+ * Invoked after the SDP answer is processed, or there is an error.
+ */
+ this.processAnswer = function (sdpAnswer, callback) {
+ callback = (callback || noop).bind(this);
+ var answer = new RTCSessionDescription({
+ type: 'answer',
+ sdp: sdpAnswer
+ });
+ if (multistream && usePlanB) {
+ var planBAnswer = interop.toPlanB(answer);
+ logger.debug('asnwer::planB', dumpSDP(planBAnswer));
+ answer = planBAnswer;
+ }
+ logger.debug('SDP answer received, setting remote description');
+ if (pc.signalingState === 'closed') {
+ return callback('PeerConnection is closed');
+ }
+ pc.setRemoteDescription(answer, function () {
+ setRemoteVideo();
+ callback();
+ }, callback);
+ };
+ /**
+ * Callback function invoked when a SDP offer is received. Developers are
+ * expected to invoke this function in order to complete the SDP negotiation.
+ *
+ * @function module:kurentoUtils.WebRtcPeer.prototype.processOffer
+ *
+ * @param sdpOffer - Description of sdpOffer
+ * @param callback - Called when the remote description has been set
+ * successfully.
+ */
+ this.processOffer = function (sdpOffer, callback) {
+ callback = callback.bind(this);
+ var offer = new RTCSessionDescription({
+ type: 'offer',
+ sdp: sdpOffer
+ });
+ if (multistream && usePlanB) {
+ var planBOffer = interop.toPlanB(offer);
+ logger.debug('offer::planB', dumpSDP(planBOffer));
+ offer = planBOffer;
+ }
+ logger.debug('SDP offer received, setting remote description');
+ if (pc.signalingState === 'closed') {
+ return callback('PeerConnection is closed');
+ }
+ pc.setRemoteDescription(offer).then(function () {
+ return setRemoteVideo();
+ }).then(function () {
+ return pc.createAnswer();
+ }).then(function (answer) {
+ answer = mangleSdpToAddSimulcast(answer);
+ logger.debug('Created SDP answer');
+ return pc.setLocalDescription(answer);
+ }).then(function () {
+ var localDescription = pc.localDescription;
+ if (multistream && usePlanB) {
+ localDescription = interop.toUnifiedPlan(localDescription);
+ logger.debug('answer::origPlanB->UnifiedPlan', dumpSDP(localDescription));
+ }
+ logger.debug('Local description set', localDescription.sdp);
+ callback(null, localDescription.sdp);
+ }).catch(callback);
+ };
+ function mangleSdpToAddSimulcast(answer) {
+ if (simulcast) {
+ if (browser.name === 'Chrome' || browser.name === 'Chromium') {
+ logger.debug('Adding multicast info');
+ answer = new RTCSessionDescription({
+ 'type': answer.type,
+ 'sdp': removeFIDFromOffer(answer.sdp) + getSimulcastInfo(videoStream)
+ });
+ }
+ else {
+ logger.warn('Simulcast is only available in Chrome browser.');
+ }
+ }
+ return answer;
+ }
+ /**
+ * This function creates the RTCPeerConnection object taking into account the
+ * properties received in the constructor. It starts the SDP negotiation
+ * process: generates the SDP offer and invokes the onsdpoffer callback. This
+ * callback is expected to send the SDP offer, in order to obtain an SDP
+ * answer from another peer.
+ */
+ function start() {
+ if (pc.signalingState === 'closed') {
+ callback('The peer connection object is in "closed" state. This is most likely due to an invocation of the dispose method before accepting in the dialogue');
+ }
+ if (videoStream && localVideo) {
+ self.showLocalVideo();
+ }
+ if (videoStream) {
+ pc.addStream(videoStream);
+ }
+ if (audioStream) {
+ pc.addStream(audioStream);
+ }
+ // [Hack] https://code.google.com/p/chromium/issues/detail?id=443558
+ var browser = parser.getBrowser();
+ if (mode === 'sendonly' &&
+ (browser.name === 'Chrome' || browser.name === 'Chromium') &&
+ browser.major === 39) {
+ mode = 'sendrecv';
+ }
+ callback();
+ }
+ if (mode !== 'recvonly' && !videoStream && !audioStream) {
+ function getMedia(constraints) {
+ if (constraints === undefined) {
+ constraints = MEDIA_CONSTRAINTS;
+ }
+ navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
+ videoStream = stream;
+ start();
+ }).catch(callback);
+ }
+ if (sendSource === 'webcam') {
+ getMedia(mediaConstraints);
+ }
+ else {
+ getScreenConstraints(sendSource, function (error, constraints_) {
+ if (error)
+ return callback(error);
+ constraints = [mediaConstraints];
+ constraints.unshift(constraints_);
+ getMedia(recursive.apply(undefined, constraints));
+ }, guid);
+ }
+ }
+ else {
+ setTimeout(start, 0);
+ }
+ this.on('_dispose', function () {
+ if (localVideo) {
+ localVideo.pause();
+ localVideo.src = '';
+ localVideo.load();
+ //Unmute local video in case the video tag is later used for remote video
+ localVideo.muted = false;
+ }
+ if (remoteVideo) {
+ remoteVideo.pause();
+ remoteVideo.src = '';
+ remoteVideo.load();
+ }
+ self.removeAllListeners();
+ if (window.cancelChooseDesktopMedia !== undefined) {
+ window.cancelChooseDesktopMedia(guid);
+ }
+ });
+}
+inherits(WebRtcPeer, EventEmitter);
+function createEnableDescriptor(type) {
+ var method = 'get' + type + 'Tracks';
+ return {
+ enumerable: true,
+ get: function () {
+ // [ToDo] Should return undefined if not all tracks have the same value?
+ if (!this.peerConnection)
+ return;
+ var streams = this.peerConnection.getLocalStreams();
+ if (!streams.length)
+ return;
+ for (var i = 0, stream; stream = streams[i]; i++) {
+ var tracks = stream[method]();
+ for (var j = 0, track; track = tracks[j]; j++)
+ if (!track.enabled)
+ return false;
+ }
+ return true;
+ },
+ set: function (value) {
+ function trackSetEnable(track) {
+ track.enabled = value;
+ }
+ this.peerConnection.getLocalStreams().forEach(function (stream) {
+ stream[method]().forEach(trackSetEnable);
+ });
+ }
+ };
+}
+Object.defineProperties(WebRtcPeer.prototype, {
+ 'enabled': {
+ enumerable: true,
+ get: function () {
+ return this.audioEnabled && this.videoEnabled;
+ },
+ set: function (value) {
+ this.audioEnabled = this.videoEnabled = value;
+ }
+ },
+ 'audioEnabled': createEnableDescriptor('Audio'),
+ 'videoEnabled': createEnableDescriptor('Video')
+});
+WebRtcPeer.prototype.getLocalStream = function (index) {
+ if (this.peerConnection) {
+ return this.peerConnection.getLocalStreams()[index || 0];
+ }
+};
+WebRtcPeer.prototype.getRemoteStream = function (index) {
+ if (this.peerConnection) {
+ return this.peerConnection.getRemoteStreams()[index || 0];
+ }
+};
+/**
+ * @description This method frees the resources used by WebRtcPeer.
+ *
+ * @function module:kurentoUtils.WebRtcPeer.prototype.dispose
+ */
+WebRtcPeer.prototype.dispose = function () {
+ logger.debug('Disposing WebRtcPeer');
+ var pc = this.peerConnection;
+ var dc = this.dataChannel;
+ try {
+ if (dc) {
+ if (dc.signalingState === 'closed')
+ return;
+ dc.close();
+ }
+ if (pc) {
+ if (pc.signalingState === 'closed')
+ return;
+ pc.getLocalStreams().forEach(streamStop);
+ // FIXME This is not yet implemented in firefox
+ // if(videoStream) pc.removeStream(videoStream);
+ // if(audioStream) pc.removeStream(audioStream);
+ pc.close();
+ }
+ }
+ catch (err) {
+ logger.warn('Exception disposing webrtc peer ' + err);
+ }
+ this.emit('_dispose');
+};
+//
+// Specialized child classes
+//
+function WebRtcPeerRecvonly(options, callback) {
+ if (!(this instanceof WebRtcPeerRecvonly)) {
+ return new WebRtcPeerRecvonly(options, callback);
+ }
+ WebRtcPeerRecvonly.super_.call(this, 'recvonly', options, callback);
+}
+inherits(WebRtcPeerRecvonly, WebRtcPeer);
+function WebRtcPeerSendonly(options, callback) {
+ if (!(this instanceof WebRtcPeerSendonly)) {
+ return new WebRtcPeerSendonly(options, callback);
+ }
+ WebRtcPeerSendonly.super_.call(this, 'sendonly', options, callback);
+}
+inherits(WebRtcPeerSendonly, WebRtcPeer);
+function WebRtcPeerSendrecv(options, callback) {
+ if (!(this instanceof WebRtcPeerSendrecv)) {
+ return new WebRtcPeerSendrecv(options, callback);
+ }
+ WebRtcPeerSendrecv.super_.call(this, 'sendrecv', options, callback);
+}
+inherits(WebRtcPeerSendrecv, WebRtcPeer);
+function harkUtils(stream, options) {
+ return hark(stream, options);
+}
+exports.bufferizeCandidates = bufferizeCandidates;
+exports.WebRtcPeerRecvonly = WebRtcPeerRecvonly;
+exports.WebRtcPeerSendonly = WebRtcPeerSendonly;
+exports.WebRtcPeerSendrecv = WebRtcPeerSendrecv;
+exports.hark = harkUtils;
+
+
+/***/ }),
+
+/***/ 1056:
+/***/ (function(module, exports, __webpack_require__) {
+
+/*
+ * (C) Copyright 2014 Kurento (http://kurento.org/)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+/**
+ * This module contains a set of reusable components that have been found useful
+ * during the development of the WebRTC applications with Kurento.
+ *
+ * @module kurentoUtils
+ *
+ * @copyright 2014 Kurento (http://kurento.org/)
+ * @license ALv2
+ */
+var WebRtcPeer = __webpack_require__(1055);
+exports.WebRtcPeer = WebRtcPeer;
+
+
+/***/ }),
+
+/***/ 1057:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/*
- * (C) Copyright 2016 OpenVidu (http://kurento.org/)
+ * (C) Copyright 2017 OpenVidu (http://openvidu.io/)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,16 +1181,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
* limitations under the License.
*
*/
-var OpenViduInternal_1 = __webpack_require__(1121);
-var Session_1 = __webpack_require__(555);
-var Publisher_1 = __webpack_require__(554);
-var adapter = __webpack_require__(561);
+var OpenViduInternal_1 = __webpack_require__(1059);
+var Session_1 = __webpack_require__(525);
+var Publisher_1 = __webpack_require__(524);
+var adapter = __webpack_require__(528);
if (window) {
window["adapter"] = adapter;
}
-var OpenVidu = (function () {
+var OpenVidu = /** @class */ (function () {
function OpenVidu() {
this.openVidu = new OpenViduInternal_1.OpenViduInternal();
+ console.info("'OpenVidu' initialized");
}
;
OpenVidu.prototype.initSession = function (param1, param2) {
@@ -69,7 +1229,9 @@ var OpenVidu = (function () {
}
};
}
- return new Publisher_1.Publisher(this.openVidu.initPublisherTagged(parentId, cameraOptions, callback), parentId);
+ var publisher = new Publisher_1.Publisher(this.openVidu.initPublisherTagged(parentId, cameraOptions, callback), parentId);
+ console.info("'Publisher' initialized");
+ return publisher;
}
else {
alert("Browser not supported");
@@ -93,10 +1255,16 @@ var OpenVidu = (function () {
navigator.mediaDevices.enumerateDevices().then(function (deviceInfos) {
callback(null, deviceInfos);
}).catch(function (error) {
- console.log("Error getting devices: " + error);
+ console.error("Error getting devices", error);
callback(error, null);
});
};
+ OpenVidu.prototype.enableProdMode = function () {
+ console.log = function () { };
+ console.debug = function () { };
+ console.info = function () { };
+ console.warn = function () { };
+ };
return OpenVidu;
}());
exports.OpenVidu = OpenVidu;
@@ -104,7 +1272,7 @@ exports.OpenVidu = OpenVidu;
/***/ }),
-/***/ 1120:
+/***/ 1058:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -113,24 +1281,24 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(1119));
-__export(__webpack_require__(555));
-__export(__webpack_require__(554));
-__export(__webpack_require__(556));
-__export(__webpack_require__(325));
-__export(__webpack_require__(557));
+__export(__webpack_require__(1057));
+__export(__webpack_require__(525));
+__export(__webpack_require__(524));
+__export(__webpack_require__(526));
+__export(__webpack_require__(307));
+__export(__webpack_require__(527));
/***/ }),
-/***/ 1121:
+/***/ 1059:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/*
- * (C) Copyright 2016 OpenVidu (http://kurento.org/)
+ * (C) Copyright 2017 OpenVidu (http://openvidu.io/)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -145,28 +1313,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
* limitations under the License.
*
*/
-var SessionInternal_1 = __webpack_require__(1122);
-var Stream_1 = __webpack_require__(325);
-var RpcBuilder = __webpack_require__(500);
-var OpenViduInternal = (function () {
+var SessionInternal_1 = __webpack_require__(1060);
+var Stream_1 = __webpack_require__(307);
+var RpcBuilder = __webpack_require__(523);
+var OpenViduInternal = /** @class */ (function () {
function OpenViduInternal() {
this.remoteStreams = [];
}
;
/* NEW METHODS */
OpenViduInternal.prototype.initSession = function (sessionId) {
- console.log("Session initialized!");
+ console.info("'Session' initialized with 'sessionId' [" + sessionId + "]");
this.session = new SessionInternal_1.SessionInternal(this, sessionId);
return this.session;
};
OpenViduInternal.prototype.initPublisherTagged = function (parentId, cameraOptions, callback) {
var _this = this;
- console.log("Publisher tagged initialized!");
this.getCamera(cameraOptions);
if (callback == null) {
this.camera.requestCameraAccess(function (error, camera) {
if (error) {
- console.log("Error accessing the camera");
+ console.error("Error accessing the camera", error);
}
else {
_this.camera.setVideoElement(_this.cameraReady(camera, parentId));
@@ -194,7 +1361,6 @@ var OpenViduInternal = (function () {
return videoElement;
};
OpenViduInternal.prototype.initPublisher = function (cameraOptions, callback) {
- console.log("Publisher initialized!");
this.getCamera(cameraOptions);
this.camera.requestCameraAccess(function (error, camera) {
if (error)
@@ -283,7 +1449,7 @@ var OpenViduInternal = (function () {
}
};
OpenViduInternal.prototype.disconnectCallback = function () {
- console.log('Websocket connection lost');
+ console.warn('Websocket connection lost');
if (this.isRoomAvailable()) {
this.session.onLostConnection();
}
@@ -292,7 +1458,7 @@ var OpenViduInternal = (function () {
}
};
OpenViduInternal.prototype.reconnectingCallback = function () {
- console.log('Websocket connection lost (reconnecting)');
+ console.warn('Websocket connection lost (reconnecting)');
if (this.isRoomAvailable()) {
this.session.onLostConnection();
}
@@ -301,7 +1467,7 @@ var OpenViduInternal = (function () {
}
};
OpenViduInternal.prototype.reconnectedCallback = function () {
- console.log('Websocket reconnected');
+ console.warn('Websocket reconnected');
};
OpenViduInternal.prototype.onParticipantJoined = function (params) {
if (this.isRoomAvailable()) {
@@ -356,11 +1522,11 @@ var OpenViduInternal = (function () {
for (var index in this.rpcParams) {
if (this.rpcParams.hasOwnProperty(index)) {
params[index] = this.rpcParams[index];
- console.log('RPC param added to request {' + index + ': ' + this.rpcParams[index] + '}');
+ console.debug('RPC param added to request {' + index + ': ' + this.rpcParams[index] + '}');
}
}
}
- console.log('Sending request: { method:"' + method + '", params: ' + JSON.stringify(params) + ' }');
+ console.debug('Sending request: {method:"' + method + '", params: ' + JSON.stringify(params) + '}');
this.jsonRpcClient.send(method, params, callback);
};
OpenViduInternal.prototype.close = function (forced) {
@@ -470,16 +1636,16 @@ exports.OpenViduInternal = OpenViduInternal;
/***/ }),
-/***/ 1122:
+/***/ 1060:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var Connection_1 = __webpack_require__(557);
-var EventEmitter = __webpack_require__(147);
+var Connection_1 = __webpack_require__(527);
+var EventEmitter = __webpack_require__(135);
var SECRET_PARAM = '?secret=';
-var SessionInternal = (function () {
+var SessionInternal = /** @class */ (function () {
function SessionInternal(openVidu, sessionId) {
this.openVidu = openVidu;
this.ee = new EventEmitter();
@@ -652,12 +1818,12 @@ var SessionInternal = (function () {
stream.subscribe();
};
SessionInternal.prototype.unsuscribe = function (stream) {
- console.log("Unsubscribing from " + stream.getId());
+ console.info("Unsubscribing from " + stream.getId());
this.openVidu.sendRequest('unsubscribeFromVideo', {
sender: stream.getId()
}, function (error, response) {
if (error) {
- console.error(error);
+ console.error("Error unsubscribing from Subscriber", error);
}
else {
console.info("Unsubscribed correctly from " + stream.getId());
@@ -666,15 +1832,25 @@ var SessionInternal = (function () {
};
SessionInternal.prototype.onParticipantPublished = function (options) {
options.metadata = this.participants[options.id].data;
- var connection = new Connection_1.Connection(this.openVidu, false, this, options);
+ // Get the existing Connection created on 'onParticipantJoined' for
+ // existing participants or create a new one for new participants
+ var connection = this.participants[options.id];
+ if (connection) {
+ // Update existing Connection
+ connection.options = options;
+ connection.initStreams(options);
+ }
+ else {
+ // Create new Connection
+ connection = new Connection_1.Connection(this.openVidu, false, this, options);
+ }
var pid = connection.connectionId;
if (!(pid in this.participants)) {
- console.info("Publisher not found in participants list by its id", pid);
+ console.debug("Remote Connection not found in connections list by its id [" + pid + "]");
}
else {
- console.log("Publisher found in participants list by its id", pid);
+ console.debug("Remote Connection found in connections list by its id [" + pid + "]");
}
- //replacing old connection (this one has streams)
connection.creationTime = this.participants[pid].creationTime;
this.participants[pid] = connection;
this.ee.emitEvent('participant-published', [{ connection: connection }]);
@@ -694,13 +1870,12 @@ var SessionInternal = (function () {
connection.creationTime = new Date().getTime();
var pid = connection.connectionId;
if (!(pid in this.participants)) {
- console.log("New participant to participants list with id", pid);
this.participants[pid] = connection;
}
else {
//use existing so that we don't lose streams info
- console.info("Participant already exists in participants list with " +
- "the same id, old:", this.participants[pid], ", joined now:", connection);
+ console.warn("Connection already exists in connections list with " +
+ "the same connectionId, old:", this.participants[pid], ", joined now:", connection);
connection = this.participants[pid];
}
this.ee.emitEvent('participant-joined', [{
@@ -750,7 +1925,7 @@ var SessionInternal = (function () {
};
;
SessionInternal.prototype.onNewMessage = function (msg) {
- console.log("New message: " + JSON.stringify(msg));
+ console.info("New message: " + JSON.stringify(msg));
var room = msg.room;
var user = msg.user;
var message = msg.message;
@@ -793,7 +1968,7 @@ var SessionInternal = (function () {
}
};
SessionInternal.prototype.onRoomClosed = function (msg) {
- console.log("Room closed: " + JSON.stringify(msg));
+ console.info("Room closed: " + JSON.stringify(msg));
var room = msg.room;
if (room !== undefined) {
this.ee.emitEvent('room-closed', [{
@@ -813,7 +1988,7 @@ var SessionInternal = (function () {
;
return;
}
- console.log('Lost connection in room ' + this.id);
+ console.warn('Lost connection in Session ' + this.id);
var room = this.id;
if (room !== undefined) {
this.ee.emitEvent('lost-connection', [{ room: room }]);
@@ -839,7 +2014,7 @@ var SessionInternal = (function () {
*/
SessionInternal.prototype.leave = function (forced, jsonRpcClient) {
forced = !!forced;
- console.log("Leaving room (forced=" + forced + ")");
+ console.info("Leaving Session (forced=" + forced + ")");
if (this.connected && !forced) {
this.openVidu.sendRequest('leaveRoom', function (error, response) {
if (error) {
@@ -868,7 +2043,7 @@ var SessionInternal = (function () {
delete this.participants[connection.connectionId];
connection.dispose();
if (connection === this.localParticipant) {
- console.log("Unpublishing my media (I'm " + connection.connectionId + ")");
+ console.info("Unpublishing my media (I'm " + connection.connectionId + ")");
delete this.localParticipant;
this.openVidu.sendRequest('unpublishVideo', function (error, response) {
if (error) {
@@ -892,7 +2067,7 @@ var SessionInternal = (function () {
if (connection === this.localParticipant) {
delete this.participants[connection.connectionId];
connection.dispose();
- console.log("Unpublishing my media (I'm " + connection.connectionId + ")");
+ console.info("Unpublishing my media (I'm " + connection.connectionId + ")");
delete this.localParticipant;
this.openVidu.sendRequest('unpublishVideo', function (error, response) {
if (error) {
@@ -940,24 +2115,24 @@ exports.SessionInternal = SessionInternal;
/***/ }),
-/***/ 1138:
+/***/ 1077:
/***/ (function(module, exports, __webpack_require__) {
-module.exports = __webpack_require__(563);
+module.exports = __webpack_require__(530);
/***/ }),
-/***/ 291:
+/***/ 277:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_http__ = __webpack_require__(80);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_http__ = __webpack_require__(73);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_Observable__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_Observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_Observable__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__authentication_service__ = __webpack_require__(47);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_Rx__ = __webpack_require__(502);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__authentication_service__ = __webpack_require__(42);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_Rx__ = __webpack_require__(483);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_Rx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_Rx__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LessonService; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
@@ -1066,15 +2241,15 @@ var LessonService = (function () {
/***/ }),
-/***/ 292:
+/***/ 278:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_http__ = __webpack_require__(80);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_http__ = __webpack_require__(73);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_Observable__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_Observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_Observable__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__authentication_service__ = __webpack_require__(47);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__authentication_service__ = __webpack_require__(42);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VideoSessionService; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -1137,15 +2312,15 @@ var VideoSessionService = (function () {
/***/ }),
-/***/ 325:
+/***/ 307:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var EventEmitter = __webpack_require__(147);
-var kurentoUtils = __webpack_require__(816);
-var adapter = __webpack_require__(561);
+var EventEmitter = __webpack_require__(135);
+var kurentoUtils = __webpack_require__(1056);
+var adapter = __webpack_require__(528);
if (window) {
window["adapter"] = adapter;
}
@@ -1158,7 +2333,7 @@ function show(id) {
function hide(id) {
document.getElementById(jq(id)).style.display = 'none';
}
-var Stream = (function () {
+var Stream = /** @class */ (function () {
function Stream(openVidu, local, room, options) {
var _this = this;
this.openVidu = openVidu;
@@ -1191,22 +2366,22 @@ var Stream = (function () {
this.mediaConstraints = options.mediaConstraints;
this.audioOnly = options.audioOnly || false;
this.addEventListener('src-added', function (srcEvent) {
- _this.videoSrc = srcEvent.src;
+ _this.videoSrcObject = srcEvent.srcObject;
if (_this.video)
- _this.video.src = srcEvent.src;
- console.warn("Videosrc [" + srcEvent.src + "] added to stream [" + _this.getId() + "]");
+ _this.video.srcObject = srcEvent.srcObject;
+ console.debug("Video srcObject [" + srcEvent.srcObject + "] added to stream [" + _this.getId() + "]");
});
}
Stream.prototype.emitSrcEvent = function (wrstream) {
this.ee.emitEvent('src-added', [{
- src: URL.createObjectURL(wrstream)
+ srcObject: wrstream
}]);
};
Stream.prototype.emitStreamReadyEvent = function () {
this.ee.emitEvent('stream-ready'), [{}];
};
- Stream.prototype.getVideoSrc = function () {
- return this.videoSrc;
+ Stream.prototype.getVideoSrcObject = function () {
+ return this.videoSrcObject;
};
Stream.prototype.removeVideo = function (parentElement) {
if (typeof parentElement === "string") {
@@ -1260,11 +2435,11 @@ var Stream = (function () {
return this.dataChannelOpened;
};
Stream.prototype.onDataChannelOpen = function (event) {
- console.log('Data channel is opened');
+ console.debug('Data channel is opened');
this.dataChannelOpened = true;
};
Stream.prototype.onDataChannelClosed = function (event) {
- console.log('Data channel is closed');
+ console.debug('Data channel is closed');
this.dataChannelOpened = false;
};
Stream.prototype.sendData = function (data) {
@@ -1274,7 +2449,7 @@ var Stream = (function () {
if (!this.dataChannelOpened) {
throw new Error('Data channel is not opened');
}
- console.log("Sending through data channel: " + data);
+ console.info("Sending through data channel: " + data);
this.wp.send(data);
};
Stream.prototype.getWrStream = function () {
@@ -1307,17 +2482,21 @@ var Stream = (function () {
};
Stream.prototype.playOnlyVideo = function (parentElement, thumbnailId) {
// TO-DO: check somehow if the stream is audio only, so the element created is instead of
+ var _this = this;
this.video = document.createElement('video');
- this.video.id = 'native-video-' + this.getId();
+ this.video.id = (this.local ? 'local-' : 'remote-') + 'video-' + this.getId();
this.video.autoplay = true;
this.video.controls = false;
- this.video.src = this.videoSrc;
+ this.video.srcObject = this.videoSrcObject;
this.videoElements.push({
thumb: thumbnailId,
video: this.video
});
if (this.local) {
this.video.muted = true;
+ this.video.onplay = function () {
+ console.info("Local 'Stream' with id [" + _this.getId() + "] video is now playing");
+ };
}
else {
this.video.title = this.getId();
@@ -1370,12 +2549,7 @@ var Stream = (function () {
return this.connection;
};
Stream.prototype.getId = function () {
- if (this.connection) {
- return this.connection.connectionId + "_" + this.id;
- }
- else {
- return this.id + "_webcam";
- }
+ return this.connection.connectionId + "_" + this.id;
};
Stream.prototype.getRTCPeerConnection = function () {
return this.getWebRtcPeer().peerConnection;
@@ -1459,7 +2633,7 @@ var Stream = (function () {
return console.error("(publish) SDP offer error: "
+ JSON.stringify(error));
}
- console.log("Sending SDP offer to publish as "
+ console.debug("Sending SDP offer to publish as "
+ this.getId(), sdpOfferParam);
this.openVidu.sendRequest("publishVideo", {
sdpOffer: sdpOfferParam,
@@ -1470,10 +2644,8 @@ var Stream = (function () {
console.error("Error on publishVideo: " + JSON.stringify(error));
}
else {
- _this.room.emitEvent('stream-published', [{
- stream: _this
- }]);
_this.processSdpAnswer(response.sdpAnswer);
+ console.info("'Publisher' succesfully published to session");
}
});
};
@@ -1483,7 +2655,7 @@ var Stream = (function () {
return console.error("(subscribe) SDP offer error: "
+ JSON.stringify(error));
}
- console.log("Sending SDP offer to subscribe to "
+ console.debug("Sending SDP offer to subscribe to "
+ this.getId(), sdpOfferParam);
this.openVidu.sendRequest("receiveVideoFrom", {
sender: this.getId(),
@@ -1518,7 +2690,7 @@ var Stream = (function () {
options.dataChannels = true;
}
if (this.displayMyRemote()) {
- this.wp = new kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, function (error) {
+ this.wp = kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, function (error) {
if (error) {
return console.error(error);
}
@@ -1526,7 +2698,7 @@ var Stream = (function () {
});
}
else {
- this.wp = new kurentoUtils.WebRtcPeer.WebRtcPeerSendonly(options, function (error) {
+ this.wp = kurentoUtils.WebRtcPeer.WebRtcPeerSendonly(options, function (error) {
if (error) {
return console.error(error);
}
@@ -1539,20 +2711,20 @@ var Stream = (function () {
audio: this.recvAudio,
video: !this.audioOnly
};
- console.log("Constraints of generate SDP offer (subscribing)", offerConstraints);
+ console.debug("'Session.subscribe(Stream)' called. Constraints of generate SDP offer", offerConstraints);
var options = {
onicecandidate: this.connection.sendIceCandidate.bind(this.connection),
mediaConstraints: offerConstraints
};
- this.wp = new kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(options, function (error) {
+ this.wp = kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(options, function (error) {
if (error) {
return console.error(error);
}
_this.wp.generateOffer(sdpOfferCallback.bind(_this));
});
}
- console.log("Waiting for SDP offer to be generated ("
- + (this.local ? "local" : "remote") + " peer: " + this.getId() + ")");
+ console.debug("Waiting for SDP offer to be generated ("
+ + (this.local ? "local" : "remote") + " 'Stream': " + this.getId() + ")");
};
Stream.prototype.publish = function () {
var _this = this;
@@ -1581,7 +2753,7 @@ var Stream = (function () {
type: 'answer',
sdp: sdpAnswer,
});
- console.log(this.getId() + ": set peer connection with recvd SDP answer", sdpAnswer);
+ console.debug(this.getId() + ": set peer connection with recvd SDP answer", sdpAnswer);
var participantId = this.getId();
var pc = this.wp.peerConnection;
pc.setRemoteDescription(answer, function () {
@@ -1589,7 +2761,7 @@ var Stream = (function () {
// except when showMyRemote is true
if (!_this.local || _this.displayMyRemote()) {
_this.wrStream = pc.getRemoteStreams()[0];
- console.log("Peer remote stream", _this.wrStream);
+ console.debug("Peer remote stream", _this.wrStream);
if (_this.wrStream != undefined) {
_this.emitSrcEvent(_this.wrStream);
_this.speechEvent = kurentoUtils.WebRtcPeer.hark(_this.wrStream, { threshold: _this.room.thresholdSpeaker });
@@ -1610,9 +2782,14 @@ var Stream = (function () {
var videoElement = _a[_i];
var thumbnailId = videoElement.thumb;
var video = videoElement.video;
- video.src = URL.createObjectURL(_this.wrStream);
+ video.srcObject = _this.wrStream;
video.onplay = function () {
- console.log(_this.getId() + ': ' + 'Video playing');
+ console.info("Remote 'Stream' with id [" + _this.getId() + "] video is now playing");
+ if (_this.local && _this.displayMyRemote()) {
+ _this.ee.emitEvent('remote-video-is-playing', [{
+ element: _this.video
+ }]);
+ }
//show(thumbnailId);
//this.hideSpinner(this.getId());
};
@@ -1643,7 +2820,7 @@ var Stream = (function () {
if (this.speechEvent) {
this.speechEvent.stop();
}
- console.log(this.getId() + ": Stream '" + this.id + "' unpublished");
+ console.info(this.getId() + ": Stream '" + this.id + "' unpublished");
};
Stream.prototype.dispose = function () {
function disposeElement(element) {
@@ -1670,7 +2847,7 @@ var Stream = (function () {
if (this.speechEvent) {
this.speechEvent.stop();
}
- console.log(this.getId() + ": Stream '" + this.id + "' disposed");
+ console.info((this.local ? "Local " : "Remote ") + "'Stream' with id [" + this.getId() + "]' has been succesfully disposed");
};
return Stream;
}());
@@ -1679,16 +2856,16 @@ exports.Stream = Stream;
/***/ }),
-/***/ 47:
+/***/ 42:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_rxjs_Rx__ = __webpack_require__(502);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_rxjs_Rx__ = __webpack_require__(483);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_rxjs_Rx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_rxjs_Rx__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_http__ = __webpack_require__(80);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__angular_router__ = __webpack_require__(84);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_map__ = __webpack_require__(38);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_http__ = __webpack_require__(73);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__angular_router__ = __webpack_require__(77);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_map__ = __webpack_require__(32);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_map__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AuthenticationService; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
@@ -1815,13 +2992,13 @@ function utf8_to_b64(str) {
/***/ }),
-/***/ 477:
+/***/ 459:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(84);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__ = __webpack_require__(47);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(77);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__ = __webpack_require__(42);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AuthGuard; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -1860,18 +3037,18 @@ var AuthGuard = (function () {
/***/ }),
-/***/ 478:
+/***/ 460:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(84);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_material__ = __webpack_require__(272);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__models_lesson__ = __webpack_require__(484);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__services_lesson_service__ = __webpack_require__(291);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__services_video_session_service__ = __webpack_require__(292);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__services_authentication_service__ = __webpack_require__(47);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__join_session_dialog_component__ = __webpack_require__(479);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(77);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_material__ = __webpack_require__(258);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__models_lesson__ = __webpack_require__(466);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__services_lesson_service__ = __webpack_require__(277);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__services_video_session_service__ = __webpack_require__(278);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__services_authentication_service__ = __webpack_require__(42);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__join_session_dialog_component__ = __webpack_require__(461);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DashboardComponent; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -1967,8 +3144,8 @@ var DashboardComponent = (function () {
DashboardComponent = __decorate([
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["_5" /* Component */])({
selector: 'app-dashboard',
- template: __webpack_require__(822),
- styles: [__webpack_require__(796)],
+ template: __webpack_require__(778),
+ styles: [__webpack_require__(762)],
}),
__metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_4__services_lesson_service__["a" /* LessonService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_4__services_lesson_service__["a" /* LessonService */]) === 'function' && _a) || Object, (typeof (_b = typeof __WEBPACK_IMPORTED_MODULE_5__services_video_session_service__["a" /* VideoSessionService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_5__services_video_session_service__["a" /* VideoSessionService */]) === 'function' && _b) || Object, (typeof (_c = typeof __WEBPACK_IMPORTED_MODULE_6__services_authentication_service__["a" /* AuthenticationService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_6__services_authentication_service__["a" /* AuthenticationService */]) === 'function' && _c) || Object, (typeof (_d = typeof __WEBPACK_IMPORTED_MODULE_1__angular_router__["a" /* Router */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__angular_router__["a" /* Router */]) === 'function' && _d) || Object, (typeof (_e = typeof __WEBPACK_IMPORTED_MODULE_2__angular_material__["b" /* MdSnackBar */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_2__angular_material__["b" /* MdSnackBar */]) === 'function' && _e) || Object, (typeof (_f = typeof __WEBPACK_IMPORTED_MODULE_2__angular_material__["c" /* MdDialog */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_2__angular_material__["c" /* MdDialog */]) === 'function' && _f) || Object])
], DashboardComponent);
@@ -1979,7 +3156,7 @@ var DashboardComponent = (function () {
/***/ }),
-/***/ 479:
+/***/ 461:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -2054,18 +3231,18 @@ var JoinSessionDialogComponent = (function () {
/***/ }),
-/***/ 480:
+/***/ 462:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(84);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_common__ = __webpack_require__(14);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__angular_material__ = __webpack_require__(272);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__models_lesson__ = __webpack_require__(484);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__models_user__ = __webpack_require__(738);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__services_lesson_service__ = __webpack_require__(291);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__services_authentication_service__ = __webpack_require__(47);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(77);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_common__ = __webpack_require__(11);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__angular_material__ = __webpack_require__(258);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__models_lesson__ = __webpack_require__(466);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__models_user__ = __webpack_require__(705);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__services_lesson_service__ = __webpack_require__(277);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__services_authentication_service__ = __webpack_require__(42);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LessonDetailsComponent; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -2240,8 +3417,8 @@ var LessonDetailsComponent = (function () {
LessonDetailsComponent = __decorate([
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["_5" /* Component */])({
selector: 'app-lesson-details',
- template: __webpack_require__(824),
- styles: [__webpack_require__(798)],
+ template: __webpack_require__(780),
+ styles: [__webpack_require__(764)],
}),
__metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_6__services_lesson_service__["a" /* LessonService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_6__services_lesson_service__["a" /* LessonService */]) === 'function' && _a) || Object, (typeof (_b = typeof __WEBPACK_IMPORTED_MODULE_7__services_authentication_service__["a" /* AuthenticationService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_7__services_authentication_service__["a" /* AuthenticationService */]) === 'function' && _b) || Object, (typeof (_c = typeof __WEBPACK_IMPORTED_MODULE_1__angular_router__["a" /* Router */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__angular_router__["a" /* Router */]) === 'function' && _c) || Object, (typeof (_d = typeof __WEBPACK_IMPORTED_MODULE_1__angular_router__["c" /* ActivatedRoute */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__angular_router__["c" /* ActivatedRoute */]) === 'function' && _d) || Object, (typeof (_e = typeof __WEBPACK_IMPORTED_MODULE_2__angular_common__["a" /* Location */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_2__angular_common__["a" /* Location */]) === 'function' && _e) || Object, (typeof (_f = typeof __WEBPACK_IMPORTED_MODULE_3__angular_material__["b" /* MdSnackBar */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_3__angular_material__["b" /* MdSnackBar */]) === 'function' && _f) || Object])
], LessonDetailsComponent);
@@ -2252,14 +3429,14 @@ var LessonDetailsComponent = (function () {
/***/ }),
-/***/ 481:
+/***/ 463:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(84);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__ = __webpack_require__(47);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_user_service__ = __webpack_require__(485);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(77);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__ = __webpack_require__(42);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_user_service__ = __webpack_require__(467);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PresentationComponent; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -2365,8 +3542,8 @@ var PresentationComponent = (function () {
PresentationComponent = __decorate([
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["_5" /* Component */])({
selector: 'app-presentation',
- template: __webpack_require__(825),
- styles: [__webpack_require__(799)]
+ template: __webpack_require__(781),
+ styles: [__webpack_require__(765)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__["a" /* AuthenticationService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__["a" /* AuthenticationService */]) === 'function' && _a) || Object, (typeof (_b = typeof __WEBPACK_IMPORTED_MODULE_3__services_user_service__["a" /* UserService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_3__services_user_service__["a" /* UserService */]) === 'function' && _b) || Object, (typeof (_c = typeof __WEBPACK_IMPORTED_MODULE_1__angular_router__["a" /* Router */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__angular_router__["a" /* Router */]) === 'function' && _c) || Object])
], PresentationComponent);
@@ -2377,12 +3554,12 @@ var PresentationComponent = (function () {
/***/ }),
-/***/ 482:
+/***/ 464:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__services_authentication_service__ = __webpack_require__(47);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__services_authentication_service__ = __webpack_require__(42);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ProfileComponent; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -2405,8 +3582,8 @@ var ProfileComponent = (function () {
ProfileComponent = __decorate([
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["_5" /* Component */])({
selector: 'app-profile',
- template: __webpack_require__(826),
- styles: [__webpack_require__(800)]
+ template: __webpack_require__(782),
+ styles: [__webpack_require__(766)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_1__services_authentication_service__["a" /* AuthenticationService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__services_authentication_service__["a" /* AuthenticationService */]) === 'function' && _a) || Object])
], ProfileComponent);
@@ -2417,16 +3594,16 @@ var ProfileComponent = (function () {
/***/ }),
-/***/ 483:
+/***/ 465:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(14);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_openvidu_browser__ = __webpack_require__(1120);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(11);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_openvidu_browser__ = __webpack_require__(1058);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_openvidu_browser___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_openvidu_browser__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_video_session_service__ = __webpack_require__(292);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__services_authentication_service__ = __webpack_require__(47);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__services_video_session_service__ = __webpack_require__(278);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__services_authentication_service__ = __webpack_require__(42);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VideoSessionComponent; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -2640,8 +3817,8 @@ var VideoSessionComponent = (function () {
VideoSessionComponent = __decorate([
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["_5" /* Component */])({
selector: 'app-video-session',
- template: __webpack_require__(827),
- styles: [__webpack_require__(801)]
+ template: __webpack_require__(783),
+ styles: [__webpack_require__(767)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_1__angular_common__["a" /* Location */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__angular_common__["a" /* Location */]) === 'function' && _a) || Object, (typeof (_b = typeof __WEBPACK_IMPORTED_MODULE_4__services_authentication_service__["a" /* AuthenticationService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_4__services_authentication_service__["a" /* AuthenticationService */]) === 'function' && _b) || Object, (typeof (_c = typeof __WEBPACK_IMPORTED_MODULE_3__services_video_session_service__["a" /* VideoSessionService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_3__services_video_session_service__["a" /* VideoSessionService */]) === 'function' && _c) || Object])
], VideoSessionComponent);
@@ -2652,7 +3829,7 @@ var VideoSessionComponent = (function () {
/***/ }),
-/***/ 484:
+/***/ 466:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -2668,12 +3845,12 @@ var Lesson = (function () {
/***/ }),
-/***/ 485:
+/***/ 467:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_http__ = __webpack_require__(80);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_http__ = __webpack_require__(73);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_Observable__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_Observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_Observable__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UserService; });
@@ -2720,14 +3897,850 @@ var UserService = (function () {
/***/ }),
-/***/ 554:
+/***/ 522:
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(global) {/*
+ * (C) Copyright 2013-2015 Kurento (http://kurento.org/)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var BrowserWebSocket = global.WebSocket || global.MozWebSocket;
+var Logger = console;
+/**
+ * Get either the `WebSocket` or `MozWebSocket` globals
+ * in the browser or try to resolve WebSocket-compatible
+ * interface exposed by `ws` for Node-like environment.
+ */
+/*var WebSocket = BrowserWebSocket;
+if (!WebSocket && typeof window === 'undefined') {
+ try {
+ WebSocket = require('ws');
+ } catch (e) { }
+}*/
+//var SockJS = require('sockjs-client');
+var MAX_RETRIES = 2000; // Forever...
+var RETRY_TIME_MS = 3000; // FIXME: Implement exponential wait times...
+var CONNECTING = 0;
+var OPEN = 1;
+var CLOSING = 2;
+var CLOSED = 3;
+/*
+config = {
+ uri : wsUri,
+ useSockJS : true (use SockJS) / false (use WebSocket) by default,
+ onconnected : callback method to invoke when connection is successful,
+ ondisconnect : callback method to invoke when the connection is lost,
+ onreconnecting : callback method to invoke when the client is reconnecting,
+ onreconnected : callback method to invoke when the client succesfully reconnects,
+ };
+*/
+function WebSocketWithReconnection(config) {
+ var closing = false;
+ var registerMessageHandler;
+ var wsUri = config.uri;
+ var useSockJS = config.useSockJS;
+ var reconnecting = false;
+ var forcingDisconnection = false;
+ var ws;
+ if (useSockJS) {
+ ws = new SockJS(wsUri);
+ }
+ else {
+ ws = new WebSocket(wsUri);
+ }
+ ws.onopen = function () {
+ logConnected(ws, wsUri);
+ if (config.onconnected) {
+ config.onconnected();
+ }
+ };
+ ws.onerror = function (error) {
+ Logger.error("Could not connect to " + wsUri + " (invoking onerror if defined)", error);
+ if (config.onerror) {
+ config.onerror(error);
+ }
+ };
+ function logConnected(ws, wsUri) {
+ try {
+ Logger.debug("WebSocket connected to " + wsUri);
+ }
+ catch (e) {
+ Logger.error(e);
+ }
+ }
+ var reconnectionOnClose = function () {
+ if (ws.readyState === CLOSED) {
+ if (closing) {
+ Logger.debug("Connection closed by user");
+ }
+ else {
+ Logger.debug("Connection closed unexpectecly. Reconnecting...");
+ reconnectToSameUri(MAX_RETRIES, 1);
+ }
+ }
+ else {
+ Logger.debug("Close callback from previous websocket. Ignoring it");
+ }
+ };
+ ws.onclose = reconnectionOnClose;
+ function reconnectToSameUri(maxRetries, numRetries) {
+ Logger.debug("reconnectToSameUri (attempt #" + numRetries + ", max=" + maxRetries + ")");
+ if (numRetries === 1) {
+ if (reconnecting) {
+ Logger.warn("Trying to reconnectToNewUri when reconnecting... Ignoring this reconnection.");
+ return;
+ }
+ else {
+ reconnecting = true;
+ }
+ if (config.onreconnecting) {
+ config.onreconnecting();
+ }
+ }
+ if (forcingDisconnection) {
+ reconnectToNewUri(maxRetries, numRetries, wsUri);
+ }
+ else {
+ if (config.newWsUriOnReconnection) {
+ config.newWsUriOnReconnection(function (error, newWsUri) {
+ if (error) {
+ Logger.debug(error);
+ setTimeout(function () {
+ reconnectToSameUri(maxRetries, numRetries + 1);
+ }, RETRY_TIME_MS);
+ }
+ else {
+ reconnectToNewUri(maxRetries, numRetries, newWsUri);
+ }
+ });
+ }
+ else {
+ reconnectToNewUri(maxRetries, numRetries, wsUri);
+ }
+ }
+ }
+ // TODO Test retries. How to force not connection?
+ function reconnectToNewUri(maxRetries, numRetries, reconnectWsUri) {
+ Logger.debug("Reconnection attempt #" + numRetries);
+ ws.close();
+ wsUri = reconnectWsUri || wsUri;
+ var newWs;
+ if (useSockJS) {
+ newWs = new SockJS(wsUri);
+ }
+ else {
+ newWs = new WebSocket(wsUri);
+ }
+ newWs.onopen = function () {
+ Logger.debug("Reconnected after " + numRetries + " attempts...");
+ logConnected(newWs, wsUri);
+ reconnecting = false;
+ registerMessageHandler();
+ if (config.onreconnected()) {
+ config.onreconnected();
+ }
+ newWs.onclose = reconnectionOnClose;
+ };
+ var onErrorOrClose = function (error) {
+ Logger.warn("Reconnection error: ", error);
+ if (numRetries === maxRetries) {
+ if (config.ondisconnect) {
+ config.ondisconnect();
+ }
+ }
+ else {
+ setTimeout(function () {
+ reconnectToSameUri(maxRetries, numRetries + 1);
+ }, RETRY_TIME_MS);
+ }
+ };
+ newWs.onerror = onErrorOrClose;
+ ws = newWs;
+ }
+ this.close = function () {
+ closing = true;
+ ws.close();
+ };
+ // This method is only for testing
+ this.forceClose = function (millis) {
+ Logger.debug("Testing: Force WebSocket close");
+ if (millis) {
+ Logger.debug("Testing: Change wsUri for " + millis + " millis to simulate net failure");
+ var goodWsUri = wsUri;
+ wsUri = "wss://21.234.12.34.4:443/";
+ forcingDisconnection = true;
+ setTimeout(function () {
+ Logger.debug("Testing: Recover good wsUri " + goodWsUri);
+ wsUri = goodWsUri;
+ forcingDisconnection = false;
+ }, millis);
+ }
+ ws.close();
+ };
+ this.reconnectWs = function () {
+ Logger.debug("reconnectWs");
+ reconnectToSameUri(MAX_RETRIES, 1, wsUri);
+ };
+ this.send = function (message) {
+ ws.send(message);
+ };
+ this.addEventListener = function (type, callback) {
+ registerMessageHandler = function () {
+ ws.addEventListener(type, callback);
+ };
+ registerMessageHandler();
+ };
+}
+module.exports = WebSocketWithReconnection;
+
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33)))
+
+/***/ }),
+
+/***/ 523:
+/***/ (function(module, exports, __webpack_require__) {
+
+/*
+ * (C) Copyright 2014 Kurento (http://kurento.org/)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+var defineProperty_IE8 = false;
+if (Object.defineProperty) {
+ try {
+ Object.defineProperty({}, "x", {});
+ }
+ catch (e) {
+ defineProperty_IE8 = true;
+ }
+}
+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
+if (!Function.prototype.bind) {
+ Function.prototype.bind = function (oThis) {
+ if (typeof this !== 'function') {
+ // closest thing possible to the ECMAScript 5
+ // internal IsCallable function
+ throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
+ }
+ var aArgs = Array.prototype.slice.call(arguments, 1), fToBind = this, fNOP = function () { }, fBound = function () {
+ return fToBind.apply(this instanceof fNOP && oThis
+ ? this
+ : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));
+ };
+ fNOP.prototype = this.prototype;
+ fBound.prototype = new fNOP();
+ return fBound;
+ };
+}
+var EventEmitter = __webpack_require__(480).EventEmitter;
+var inherits = __webpack_require__(481);
+var packers = __webpack_require__(1054);
+var Mapper = __webpack_require__(1048);
+var BASE_TIMEOUT = 5000;
+function unifyResponseMethods(responseMethods) {
+ if (!responseMethods)
+ return {};
+ for (var key in responseMethods) {
+ var value = responseMethods[key];
+ if (typeof value == 'string')
+ responseMethods[key] =
+ {
+ response: value
+ };
+ }
+ ;
+ return responseMethods;
+}
+;
+function unifyTransport(transport) {
+ if (!transport)
+ return;
+ // Transport as a function
+ if (transport instanceof Function)
+ return { send: transport };
+ // WebSocket & DataChannel
+ if (transport.send instanceof Function)
+ return transport;
+ // Message API (Inter-window & WebWorker)
+ if (transport.postMessage instanceof Function) {
+ transport.send = transport.postMessage;
+ return transport;
+ }
+ // Stream API
+ if (transport.write instanceof Function) {
+ transport.send = transport.write;
+ return transport;
+ }
+ // Transports that only can receive messages, but not send
+ if (transport.onmessage !== undefined)
+ return;
+ if (transport.pause instanceof Function)
+ return;
+ throw new SyntaxError("Transport is not a function nor a valid object");
+}
+;
+/**
+ * Representation of a RPC notification
+ *
+ * @class
+ *
+ * @constructor
+ *
+ * @param {String} method -method of the notification
+ * @param params - parameters of the notification
+ */
+function RpcNotification(method, params) {
+ if (defineProperty_IE8) {
+ this.method = method;
+ this.params = params;
+ }
+ else {
+ Object.defineProperty(this, 'method', { value: method, enumerable: true });
+ Object.defineProperty(this, 'params', { value: params, enumerable: true });
+ }
+}
+;
+/**
+ * @class
+ *
+ * @constructor
+ *
+ * @param {object} packer
+ *
+ * @param {object} [options]
+ *
+ * @param {object} [transport]
+ *
+ * @param {Function} [onRequest]
+ */
+function RpcBuilder(packer, options, transport, onRequest) {
+ var self = this;
+ if (!packer)
+ throw new SyntaxError('Packer is not defined');
+ if (!packer.pack || !packer.unpack)
+ throw new SyntaxError('Packer is invalid');
+ var responseMethods = unifyResponseMethods(packer.responseMethods);
+ if (options instanceof Function) {
+ if (transport != undefined)
+ throw new SyntaxError("There can't be parameters after onRequest");
+ onRequest = options;
+ transport = undefined;
+ options = undefined;
+ }
+ ;
+ if (options && options.send instanceof Function) {
+ if (transport && !(transport instanceof Function))
+ throw new SyntaxError("Only a function can be after transport");
+ onRequest = transport;
+ transport = options;
+ options = undefined;
+ }
+ ;
+ if (transport instanceof Function) {
+ if (onRequest != undefined)
+ throw new SyntaxError("There can't be parameters after onRequest");
+ onRequest = transport;
+ transport = undefined;
+ }
+ ;
+ if (transport && transport.send instanceof Function)
+ if (onRequest && !(onRequest instanceof Function))
+ throw new SyntaxError("Only a function can be after transport");
+ options = options || {};
+ EventEmitter.call(this);
+ if (onRequest)
+ this.on('request', onRequest);
+ if (defineProperty_IE8)
+ this.peerID = options.peerID;
+ else
+ Object.defineProperty(this, 'peerID', { value: options.peerID });
+ var max_retries = options.max_retries || 0;
+ function transportMessage(event) {
+ self.decode(event.data || event);
+ }
+ ;
+ this.getTransport = function () {
+ return transport;
+ };
+ this.setTransport = function (value) {
+ // Remove listener from old transport
+ if (transport) {
+ // W3C transports
+ if (transport.removeEventListener)
+ transport.removeEventListener('message', transportMessage);
+ else if (transport.removeListener)
+ transport.removeListener('data', transportMessage);
+ }
+ ;
+ // Set listener on new transport
+ if (value) {
+ // W3C transports
+ if (value.addEventListener)
+ value.addEventListener('message', transportMessage);
+ else if (value.addListener)
+ value.addListener('data', transportMessage);
+ }
+ ;
+ transport = unifyTransport(value);
+ };
+ if (!defineProperty_IE8)
+ Object.defineProperty(this, 'transport', {
+ get: this.getTransport.bind(this),
+ set: this.setTransport.bind(this)
+ });
+ this.setTransport(transport);
+ var request_timeout = options.request_timeout || BASE_TIMEOUT;
+ var ping_request_timeout = options.ping_request_timeout || request_timeout;
+ var response_timeout = options.response_timeout || BASE_TIMEOUT;
+ var duplicates_timeout = options.duplicates_timeout || BASE_TIMEOUT;
+ var requestID = 0;
+ var requests = new Mapper();
+ var responses = new Mapper();
+ var processedResponses = new Mapper();
+ var message2Key = {};
+ /**
+ * Store the response to prevent to process duplicate request later
+ */
+ function storeResponse(message, id, dest) {
+ var response = {
+ message: message,
+ /** Timeout to auto-clean old responses */
+ timeout: setTimeout(function () {
+ responses.remove(id, dest);
+ }, response_timeout)
+ };
+ responses.set(response, id, dest);
+ }
+ ;
+ /**
+ * Store the response to ignore duplicated messages later
+ */
+ function storeProcessedResponse(ack, from) {
+ var timeout = setTimeout(function () {
+ processedResponses.remove(ack, from);
+ }, duplicates_timeout);
+ processedResponses.set(timeout, ack, from);
+ }
+ ;
+ /**
+ * Representation of a RPC request
+ *
+ * @class
+ * @extends RpcNotification
+ *
+ * @constructor
+ *
+ * @param {String} method -method of the notification
+ * @param params - parameters of the notification
+ * @param {Integer} id - identifier of the request
+ * @param [from] - source of the notification
+ */
+ function RpcRequest(method, params, id, from, transport) {
+ RpcNotification.call(this, method, params);
+ this.getTransport = function () {
+ return transport;
+ };
+ this.setTransport = function (value) {
+ transport = unifyTransport(value);
+ };
+ if (!defineProperty_IE8)
+ Object.defineProperty(this, 'transport', {
+ get: this.getTransport.bind(this),
+ set: this.setTransport.bind(this)
+ });
+ var response = responses.get(id, from);
+ /**
+ * @constant {Boolean} duplicated
+ */
+ if (!(transport || self.getTransport())) {
+ if (defineProperty_IE8)
+ this.duplicated = Boolean(response);
+ else
+ Object.defineProperty(this, 'duplicated', {
+ value: Boolean(response)
+ });
+ }
+ var responseMethod = responseMethods[method];
+ this.pack = packer.pack.bind(packer, this, id);
+ /**
+ * Generate a response to this request
+ *
+ * @param {Error} [error]
+ * @param {*} [result]
+ *
+ * @returns {string}
+ */
+ this.reply = function (error, result, transport) {
+ // Fix optional parameters
+ if (error instanceof Function || error && error.send instanceof Function) {
+ if (result != undefined)
+ throw new SyntaxError("There can't be parameters after callback");
+ transport = error;
+ result = null;
+ error = undefined;
+ }
+ else if (result instanceof Function
+ || result && result.send instanceof Function) {
+ if (transport != undefined)
+ throw new SyntaxError("There can't be parameters after callback");
+ transport = result;
+ result = null;
+ }
+ ;
+ transport = unifyTransport(transport);
+ // Duplicated request, remove old response timeout
+ if (response)
+ clearTimeout(response.timeout);
+ if (from != undefined) {
+ if (error)
+ error.dest = from;
+ if (result)
+ result.dest = from;
+ }
+ ;
+ var message;
+ // New request or overriden one, create new response with provided data
+ if (error || result != undefined) {
+ if (self.peerID != undefined) {
+ if (error)
+ error.from = self.peerID;
+ else
+ result.from = self.peerID;
+ }
+ // Protocol indicates that responses has own request methods
+ if (responseMethod) {
+ if (responseMethod.error == undefined && error)
+ message =
+ {
+ error: error
+ };
+ else {
+ var method = error
+ ? responseMethod.error
+ : responseMethod.response;
+ message =
+ {
+ method: method,
+ params: error || result
+ };
+ }
+ }
+ else
+ message =
+ {
+ error: error,
+ result: result
+ };
+ message = packer.pack(message, id);
+ }
+ else if (response)
+ message = response.message;
+ else
+ message = packer.pack({ result: null }, id);
+ // Store the response to prevent to process a duplicated request later
+ storeResponse(message, id, from);
+ // Return the stored response so it can be directly send back
+ transport = transport || this.getTransport() || self.getTransport();
+ if (transport)
+ return transport.send(message);
+ return message;
+ };
+ }
+ ;
+ inherits(RpcRequest, RpcNotification);
+ function cancel(message) {
+ var key = message2Key[message];
+ if (!key)
+ return;
+ delete message2Key[message];
+ var request = requests.pop(key.id, key.dest);
+ if (!request)
+ return;
+ clearTimeout(request.timeout);
+ // Start duplicated responses timeout
+ storeProcessedResponse(key.id, key.dest);
+ }
+ ;
+ /**
+ * Allow to cancel a request and don't wait for a response
+ *
+ * If `message` is not given, cancel all the request
+ */
+ this.cancel = function (message) {
+ if (message)
+ return cancel(message);
+ for (var message in message2Key)
+ cancel(message);
+ };
+ this.close = function () {
+ // Prevent to receive new messages
+ var transport = this.getTransport();
+ if (transport && transport.close)
+ transport.close();
+ // Request & processed responses
+ this.cancel();
+ processedResponses.forEach(clearTimeout);
+ // Responses
+ responses.forEach(function (response) {
+ clearTimeout(response.timeout);
+ });
+ };
+ /**
+ * Generates and encode a JsonRPC 2.0 message
+ *
+ * @param {String} method -method of the notification
+ * @param params - parameters of the notification
+ * @param [dest] - destination of the notification
+ * @param {object} [transport] - transport where to send the message
+ * @param [callback] - function called when a response to this request is
+ * received. If not defined, a notification will be send instead
+ *
+ * @returns {string} A raw JsonRPC 2.0 request or notification string
+ */
+ this.encode = function (method, params, dest, transport, callback) {
+ // Fix optional parameters
+ if (params instanceof Function) {
+ if (dest != undefined)
+ throw new SyntaxError("There can't be parameters after callback");
+ callback = params;
+ transport = undefined;
+ dest = undefined;
+ params = undefined;
+ }
+ else if (dest instanceof Function) {
+ if (transport != undefined)
+ throw new SyntaxError("There can't be parameters after callback");
+ callback = dest;
+ transport = undefined;
+ dest = undefined;
+ }
+ else if (transport instanceof Function) {
+ if (callback != undefined)
+ throw new SyntaxError("There can't be parameters after callback");
+ callback = transport;
+ transport = undefined;
+ }
+ ;
+ if (self.peerID != undefined) {
+ params = params || {};
+ params.from = self.peerID;
+ }
+ ;
+ if (dest != undefined) {
+ params = params || {};
+ params.dest = dest;
+ }
+ ;
+ // Encode message
+ var message = {
+ method: method,
+ params: params
+ };
+ if (callback) {
+ var id = requestID++;
+ var retried = 0;
+ message = packer.pack(message, id);
+ function dispatchCallback(error, result) {
+ self.cancel(message);
+ callback(error, result);
+ }
+ ;
+ var request = {
+ message: message,
+ callback: dispatchCallback,
+ responseMethods: responseMethods[method] || {}
+ };
+ var encode_transport = unifyTransport(transport);
+ function sendRequest(transport) {
+ var rt = (method === 'ping' ? ping_request_timeout : request_timeout);
+ request.timeout = setTimeout(timeout, rt * Math.pow(2, retried++));
+ message2Key[message] = { id: id, dest: dest };
+ requests.set(request, id, dest);
+ transport = transport || encode_transport || self.getTransport();
+ if (transport)
+ return transport.send(message);
+ return message;
+ }
+ ;
+ function retry(transport) {
+ transport = unifyTransport(transport);
+ console.warn(retried + ' retry for request message:', message);
+ var timeout = processedResponses.pop(id, dest);
+ clearTimeout(timeout);
+ return sendRequest(transport);
+ }
+ ;
+ function timeout() {
+ if (retried < max_retries)
+ return retry(transport);
+ var error = new Error('Request has timed out');
+ error.request = message;
+ error.retry = retry;
+ dispatchCallback(error);
+ }
+ ;
+ return sendRequest(transport);
+ }
+ ;
+ // Return the packed message
+ message = packer.pack(message);
+ transport = transport || this.getTransport();
+ if (transport)
+ return transport.send(message);
+ return message;
+ };
+ /**
+ * Decode and process a JsonRPC 2.0 message
+ *
+ * @param {string} message - string with the content of the message
+ *
+ * @returns {RpcNotification|RpcRequest|undefined} - the representation of the
+ * notification or the request. If a response was processed, it will return
+ * `undefined` to notify that it was processed
+ *
+ * @throws {TypeError} - Message is not defined
+ */
+ this.decode = function (message, transport) {
+ if (!message)
+ throw new TypeError("Message is not defined");
+ try {
+ message = packer.unpack(message);
+ }
+ catch (e) {
+ // Ignore invalid messages
+ return console.debug(e, message);
+ }
+ ;
+ var id = message.id;
+ var ack = message.ack;
+ var method = message.method;
+ var params = message.params || {};
+ var from = params.from;
+ var dest = params.dest;
+ // Ignore messages send by us
+ if (self.peerID != undefined && from == self.peerID)
+ return;
+ // Notification
+ if (id == undefined && ack == undefined) {
+ var notification = new RpcNotification(method, params);
+ if (self.emit('request', notification))
+ return;
+ return notification;
+ }
+ ;
+ function processRequest() {
+ // If we have a transport and it's a duplicated request, reply inmediatly
+ transport = unifyTransport(transport) || self.getTransport();
+ if (transport) {
+ var response = responses.get(id, from);
+ if (response)
+ return transport.send(response.message);
+ }
+ ;
+ var idAck = (id != undefined) ? id : ack;
+ var request = new RpcRequest(method, params, idAck, from, transport);
+ if (self.emit('request', request))
+ return;
+ return request;
+ }
+ ;
+ function processResponse(request, error, result) {
+ request.callback(error, result);
+ }
+ ;
+ function duplicatedResponse(timeout) {
+ console.warn("Response already processed", message);
+ // Update duplicated responses timeout
+ clearTimeout(timeout);
+ storeProcessedResponse(ack, from);
+ }
+ ;
+ // Request, or response with own method
+ if (method) {
+ // Check if it's a response with own method
+ if (dest == undefined || dest == self.peerID) {
+ var request = requests.get(ack, from);
+ if (request) {
+ var responseMethods = request.responseMethods;
+ if (method == responseMethods.error)
+ return processResponse(request, params);
+ if (method == responseMethods.response)
+ return processResponse(request, null, params);
+ return processRequest();
+ }
+ var processed = processedResponses.get(ack, from);
+ if (processed)
+ return duplicatedResponse(processed);
+ }
+ // Request
+ return processRequest();
+ }
+ ;
+ var error = message.error;
+ var result = message.result;
+ // Ignore responses not send to us
+ if (error && error.dest && error.dest != self.peerID)
+ return;
+ if (result && result.dest && result.dest != self.peerID)
+ return;
+ // Response
+ var request = requests.get(ack, from);
+ if (!request) {
+ var processed = processedResponses.get(ack, from);
+ if (processed)
+ return duplicatedResponse(processed);
+ return console.warn("No callback was defined for this message", message);
+ }
+ ;
+ // Process response
+ processResponse(request, error, result);
+ };
+}
+;
+inherits(RpcBuilder, EventEmitter);
+RpcBuilder.RpcNotification = RpcNotification;
+module.exports = RpcBuilder;
+var clients = __webpack_require__(1049);
+var transports = __webpack_require__(1051);
+RpcBuilder.clients = clients;
+RpcBuilder.clients.transports = transports;
+RpcBuilder.packers = packers;
+
+
+/***/ }),
+
+/***/ 524:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var EventEmitter = __webpack_require__(147);
-var Publisher = (function () {
+var EventEmitter = __webpack_require__(135);
+var Publisher = /** @class */ (function () {
function Publisher(stream, parentId) {
var _this = this;
this.ee = new EventEmitter();
@@ -2758,9 +4771,18 @@ var Publisher = (function () {
this.stream.removeVideo(this.element);
return this;
};
+ Publisher.prototype.subscribeToRemote = function () {
+ this.stream.subscribeToMyRemote();
+ };
Publisher.prototype.on = function (eventName, callback) {
var _this = this;
this.ee.addListener(eventName, function (event) {
+ if (event) {
+ console.info("Event '" + eventName + "' triggered by 'Publisher'", event);
+ }
+ else {
+ console.info("Event '" + eventName + "' triggered by 'Publisher'");
+ }
callback(event);
});
if (eventName == 'videoElementCreated') {
@@ -2771,7 +4793,6 @@ var Publisher = (function () {
}
else {
this.stream.addEventListener('video-element-created-by-stream', function (element) {
- console.warn('Publisher emitting videoElementCreated');
_this.id = element.id;
_this.ee.emitEvent('videoElementCreated', [{
element: element.element
@@ -2779,6 +4800,26 @@ var Publisher = (function () {
});
}
}
+ if (eventName == 'remoteVideoPlaying') {
+ var video = this.stream.getVideoElement();
+ if (this.stream.displayMyRemote() && video &&
+ video.currentTime > 0 &&
+ video.paused == false &&
+ video.ended == false &&
+ video.readyState == 4) {
+ this.ee.emitEvent('remoteVideoPlaying', [{
+ element: this.stream.getVideoElement()
+ }]);
+ }
+ else {
+ this.stream.addEventListener('remote-video-is-playing', function (element) {
+ console.warn('Publisher emitting remoteVideoPlaying');
+ _this.ee.emitEvent('remoteVideoPlaying', [{
+ element: element.element
+ }]);
+ });
+ }
+ }
if (eventName == 'streamCreated') {
if (this.stream.isReady) {
this.ee.emitEvent('streamCreated', [{ stream: this.stream }]);
@@ -2818,15 +4859,15 @@ exports.Publisher = Publisher;
/***/ }),
-/***/ 555:
+/***/ 525:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var Subscriber_1 = __webpack_require__(556);
-var EventEmitter = __webpack_require__(147);
-var Session = (function () {
+var Subscriber_1 = __webpack_require__(526);
+var EventEmitter = __webpack_require__(135);
+var Session = /** @class */ (function () {
function Session(session, openVidu) {
var _this = this;
this.session = session;
@@ -2893,6 +4934,12 @@ var Session = (function () {
};
Session.prototype.on = function (eventName, callback) {
this.session.addEventListener(eventName, function (event) {
+ if (event) {
+ console.info("Event '" + eventName + "' triggered by 'Session'", event);
+ }
+ else {
+ console.info("Event '" + eventName + "' triggered by 'Session'");
+ }
callback(event);
});
};
@@ -2968,14 +5015,14 @@ exports.Session = Session;
/***/ }),
-/***/ 556:
+/***/ 526:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var EventEmitter = __webpack_require__(147);
-var Subscriber = (function () {
+var EventEmitter = __webpack_require__(135);
+var Subscriber = /** @class */ (function () {
function Subscriber(stream, parentId) {
this.ee = new EventEmitter();
this.stream = stream;
@@ -2986,6 +5033,12 @@ var Subscriber = (function () {
Subscriber.prototype.on = function (eventName, callback) {
var _this = this;
this.ee.addListener(eventName, function (event) {
+ if (event) {
+ console.info("Event '" + eventName + "' triggered by 'Subscriber'", event);
+ }
+ else {
+ console.info("Event '" + eventName + "' triggered by 'Subscriber'");
+ }
callback(event);
});
if (eventName == 'videoElementCreated') {
@@ -3012,14 +5065,14 @@ exports.Subscriber = Subscriber;
/***/ }),
-/***/ 557:
+/***/ 527:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var Stream_1 = __webpack_require__(325);
-var Connection = (function () {
+var Stream_1 = __webpack_require__(307);
+var Connection = /** @class */ (function () {
function Connection(openVidu, local, room, options) {
this.openVidu = openVidu;
this.local = local;
@@ -3027,31 +5080,14 @@ var Connection = (function () {
this.options = options;
this.streams = {};
this.streamsOpts = [];
+ console.info("'Connection' created (" + (local ? "local" : "remote") + ")" + (local ? "" : ", with 'connectionId' [" + (options ? options.id : '') + "] "));
if (options) {
this.connectionId = options.id;
this.data = options.metadata;
if (options.streams) {
- for (var _i = 0, _a = options.streams; _i < _a.length; _i++) {
- var streamOptions = _a[_i];
- var streamOpts = {
- id: streamOptions.id,
- connection: this,
- recvVideo: (streamOptions.recvVideo == undefined ? true : streamOptions.recvVideo),
- recvAudio: (streamOptions.recvAudio == undefined ? true : streamOptions.recvAudio),
- audio: streamOptions.audio,
- video: streamOptions.video,
- data: streamOptions.data,
- mediaConstraints: streamOptions.mediaConstraints,
- audioOnly: streamOptions.audioOnly
- };
- var stream = new Stream_1.Stream(openVidu, false, room, streamOpts);
- this.addStream(stream);
- this.streamsOpts.push(streamOpts);
- }
+ this.initStreams(options);
}
}
- console.log("New " + (local ? "local " : "remote ") + "participant " + this.connectionId
- + ", streams opts: ", this.streamsOpts);
}
Connection.prototype.addStream = function (stream) {
this.streams[stream.getIdInParticipant()] = stream;
@@ -3079,6 +5115,26 @@ var Connection = (function () {
}
});
};
+ Connection.prototype.initStreams = function (options) {
+ for (var _i = 0, _a = options.streams; _i < _a.length; _i++) {
+ var streamOptions = _a[_i];
+ var streamOpts = {
+ id: streamOptions.id,
+ connection: this,
+ recvVideo: (streamOptions.recvVideo == undefined ? true : streamOptions.recvVideo),
+ recvAudio: (streamOptions.recvAudio == undefined ? true : streamOptions.recvAudio),
+ audio: streamOptions.audio,
+ video: streamOptions.video,
+ data: streamOptions.data,
+ mediaConstraints: streamOptions.mediaConstraints,
+ audioOnly: streamOptions.audioOnly,
+ };
+ var stream = new Stream_1.Stream(this.openVidu, false, this.room, streamOpts);
+ this.addStream(stream);
+ this.streamsOpts.push(streamOpts);
+ }
+ console.info("Remote 'Connection' with 'connectionId' [" + this.connectionId + "] is now configured for receiving Streams with options: ", this.streamsOpts);
+ };
return Connection;
}());
exports.Connection = Connection;
@@ -3086,7 +5142,7 @@ exports.Connection = Connection;
/***/ }),
-/***/ 562:
+/***/ 529:
/***/ (function(module, exports) {
function webpackEmptyContext(req) {
@@ -3095,20 +5151,20 @@ function webpackEmptyContext(req) {
webpackEmptyContext.keys = function() { return []; };
webpackEmptyContext.resolve = webpackEmptyContext;
module.exports = webpackEmptyContext;
-webpackEmptyContext.id = 562;
+webpackEmptyContext.id = 529;
/***/ }),
-/***/ 563:
+/***/ 530:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_platform_browser_dynamic__ = __webpack_require__(704);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__app_app_module__ = __webpack_require__(735);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__environments_environment__ = __webpack_require__(739);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_platform_browser_dynamic__ = __webpack_require__(671);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__app_app_module__ = __webpack_require__(702);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__environments_environment__ = __webpack_require__(706);
@@ -3121,13 +5177,13 @@ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__angular_platform_browser_dyna
/***/ }),
-/***/ 734:
+/***/ 701:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(84);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__ = __webpack_require__(47);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_router__ = __webpack_require__(77);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__ = __webpack_require__(42);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AppComponent; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -3152,8 +5208,8 @@ var AppComponent = (function () {
AppComponent = __decorate([
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["_5" /* Component */])({
selector: 'app-root',
- template: __webpack_require__(821),
- styles: [__webpack_require__(795)]
+ template: __webpack_require__(777),
+ styles: [__webpack_require__(761)]
}),
__metadata('design:paramtypes', [(typeof (_a = typeof __WEBPACK_IMPORTED_MODULE_1__angular_router__["a" /* Router */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_1__angular_router__["a" /* Router */]) === 'function' && _a) || Object, (typeof (_b = typeof __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__["a" /* AuthenticationService */] !== 'undefined' && __WEBPACK_IMPORTED_MODULE_2__services_authentication_service__["a" /* AuthenticationService */]) === 'function' && _b) || Object])
], AppComponent);
@@ -3164,32 +5220,32 @@ var AppComponent = (function () {
/***/ }),
-/***/ 735:
+/***/ 702:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_platform_browser__ = __webpack_require__(51);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_platform_browser__ = __webpack_require__(46);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_forms__ = __webpack_require__(43);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__angular_http__ = __webpack_require__(80);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__app_routing__ = __webpack_require__(736);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__angular_material__ = __webpack_require__(272);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__angular_flex_layout__ = __webpack_require__(653);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_hammerjs__ = __webpack_require__(803);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_forms__ = __webpack_require__(38);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__angular_http__ = __webpack_require__(73);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__app_routing__ = __webpack_require__(703);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__angular_material__ = __webpack_require__(258);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__angular_flex_layout__ = __webpack_require__(620);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_hammerjs__ = __webpack_require__(769);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_hammerjs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_hammerjs__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__app_component__ = __webpack_require__(734);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__components_presentation_presentation_component__ = __webpack_require__(481);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_dashboard_dahsboard_component__ = __webpack_require__(478);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__components_lesson_details_lesson_details_component__ = __webpack_require__(480);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__components_profile_profile_component__ = __webpack_require__(482);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__components_video_session_video_session_component__ = __webpack_require__(483);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__components_error_message_error_message_component__ = __webpack_require__(737);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__components_dashboard_join_session_dialog_component__ = __webpack_require__(479);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__services_authentication_service__ = __webpack_require__(47);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__services_user_service__ = __webpack_require__(485);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__services_lesson_service__ = __webpack_require__(291);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__services_video_session_service__ = __webpack_require__(292);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__auth_guard__ = __webpack_require__(477);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__app_component__ = __webpack_require__(701);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__components_presentation_presentation_component__ = __webpack_require__(463);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_dashboard_dahsboard_component__ = __webpack_require__(460);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__components_lesson_details_lesson_details_component__ = __webpack_require__(462);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__components_profile_profile_component__ = __webpack_require__(464);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__components_video_session_video_session_component__ = __webpack_require__(465);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__components_error_message_error_message_component__ = __webpack_require__(704);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__components_dashboard_join_session_dialog_component__ = __webpack_require__(461);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__services_authentication_service__ = __webpack_require__(42);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__services_user_service__ = __webpack_require__(467);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__services_lesson_service__ = __webpack_require__(277);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__services_video_session_service__ = __webpack_require__(278);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__auth_guard__ = __webpack_require__(459);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AppModule; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -3264,17 +5320,17 @@ var AppModule = (function () {
/***/ }),
-/***/ 736:
+/***/ 703:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_router__ = __webpack_require__(84);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_presentation_presentation_component__ = __webpack_require__(481);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_dashboard_dahsboard_component__ = __webpack_require__(478);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_lesson_details_lesson_details_component__ = __webpack_require__(480);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_profile_profile_component__ = __webpack_require__(482);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_video_session_video_session_component__ = __webpack_require__(483);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__auth_guard__ = __webpack_require__(477);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_router__ = __webpack_require__(77);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_presentation_presentation_component__ = __webpack_require__(463);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_dashboard_dahsboard_component__ = __webpack_require__(460);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_lesson_details_lesson_details_component__ = __webpack_require__(462);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_profile_profile_component__ = __webpack_require__(464);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_video_session_video_session_component__ = __webpack_require__(465);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__auth_guard__ = __webpack_require__(459);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return routing; });
@@ -3315,7 +5371,7 @@ var routing = __WEBPACK_IMPORTED_MODULE_0__angular_router__["b" /* RouterModule
/***/ }),
-/***/ 737:
+/***/ 704:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -3365,8 +5421,8 @@ var ErrorMessageComponent = (function () {
ErrorMessageComponent = __decorate([
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["_5" /* Component */])({
selector: 'app-error-message',
- template: __webpack_require__(823),
- styles: [__webpack_require__(797)]
+ template: __webpack_require__(779),
+ styles: [__webpack_require__(763)]
}),
__metadata('design:paramtypes', [])
], ErrorMessageComponent);
@@ -3376,7 +5432,7 @@ var ErrorMessageComponent = (function () {
/***/ }),
-/***/ 738:
+/***/ 705:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
@@ -3395,24 +5451,27 @@ var User = (function () {
/***/ }),
-/***/ 739:
+/***/ 706:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return environment; });
+// The file contents for the current environment will overwrite these during build.
+// The build system defaults to the dev environment which uses `environment.ts`, but if you do
+// `ng build --env=prod` then `environment.prod.ts` will be used instead.
+// The list of which env maps to which file can be found in `.angular-cli.json`.
var environment = {
production: false,
- envName: 'container',
- URL_BACK: window.location.origin
+ URL_BACK: 'https://localhost:5000'
};
//# sourceMappingURL=environment.js.map
/***/ }),
-/***/ 795:
+/***/ 761:
/***/ (function(module, exports, __webpack_require__) {
-exports = module.exports = __webpack_require__(49)();
+exports = module.exports = __webpack_require__(44)();
// imports
@@ -3427,10 +5486,10 @@ module.exports = module.exports.toString();
/***/ }),
-/***/ 796:
+/***/ 762:
/***/ (function(module, exports, __webpack_require__) {
-exports = module.exports = __webpack_require__(49)();
+exports = module.exports = __webpack_require__(44)();
// imports
@@ -3445,10 +5504,10 @@ module.exports = module.exports.toString();
/***/ }),
-/***/ 797:
+/***/ 763:
/***/ (function(module, exports, __webpack_require__) {
-exports = module.exports = __webpack_require__(49)();
+exports = module.exports = __webpack_require__(44)();
// imports
@@ -3463,10 +5522,10 @@ module.exports = module.exports.toString();
/***/ }),
-/***/ 798:
+/***/ 764:
/***/ (function(module, exports, __webpack_require__) {
-exports = module.exports = __webpack_require__(49)();
+exports = module.exports = __webpack_require__(44)();
// imports
@@ -3481,10 +5540,10 @@ module.exports = module.exports.toString();
/***/ }),
-/***/ 799:
+/***/ 765:
/***/ (function(module, exports, __webpack_require__) {
-exports = module.exports = __webpack_require__(49)();
+exports = module.exports = __webpack_require__(44)();
// imports
@@ -3499,10 +5558,10 @@ module.exports = module.exports.toString();
/***/ }),
-/***/ 800:
+/***/ 766:
/***/ (function(module, exports, __webpack_require__) {
-exports = module.exports = __webpack_require__(49)();
+exports = module.exports = __webpack_require__(44)();
// imports
@@ -3517,10 +5576,10 @@ module.exports = module.exports.toString();
/***/ }),
-/***/ 801:
+/***/ 767:
/***/ (function(module, exports, __webpack_require__) {
-exports = module.exports = __webpack_require__(49)();
+exports = module.exports = __webpack_require__(44)();
// imports
@@ -3535,54 +5594,54 @@ module.exports = module.exports.toString();
/***/ }),
-/***/ 821:
+/***/ 777:
/***/ (function(module, exports) {
module.exports = "\n\n \n Lessons \n Profile \n Logout \n \n\n \n\n \n \n \n\n \n\n \n"
/***/ }),
-/***/ 822:
+/***/ 778:
/***/ (function(module, exports) {
module.exports = "\n\n\n
\n\n
\n
MY LESSONS
\n
add_circle_outline \n
\n\n
\n\n
\n \n {{lesson.title}} \n {{lesson.teacher.nickName}} \n mode_edit \n play_circle_filled \n
\n \n\n
\n\n
\n\n
\n
\n"
/***/ }),
-/***/ 823:
+/***/ 779:
/***/ (function(module, exports) {
module.exports = "\n clear \n {{this.errorTitle}} \n \n \n"
/***/ }),
-/***/ 824:
+/***/ 780:
/***/ (function(module, exports) {
module.exports = "\n
\n\n
\n keyboard_arrow_left \n
{{lesson.title}} \n mode_edit \n \n\n
\n\n
\n\n
\n
\n\n
\n
\n
\n
{{authenticationService.getCurrentUser().nickName}}
\n
{{authenticationService.getCurrentUser().name}}
\n
\n
\n
\n
\n
\n
\n
\n
\n
{{attender.nickName}}
\n
{{attender.name}}
\n
\n
\n
\n clear \n cached \n
\n
\n
\n \n
\n
\n"
/***/ }),
-/***/ 825:
+/***/ 781:
/***/ (function(module, exports) {
module.exports = "\n
\n\n
OpenVidu Classroom Demo \n\n
\n\n
\n \n\n \n\n \n\n \n
\n \n Email \n Password \n \n \n teacher@gmail.com \n pass \n \n \n student1@gmail.com \n pass \n \n \n student2@gmail.com \n pass \n \n
\n
\n\n \n\n \n Not registered yet?Sign up
\n Already registered?Log in
\n \n\n \n\n
\n\n
\n
\n"
/***/ }),
-/***/ 826:
+/***/ 782:
/***/ (function(module, exports) {
module.exports = "\n
\n\n
MY PROFILE
\n
\n \n Name \n {{authenticationService.getCurrentUser().nickName}} \n \n \n Email \n {{authenticationService.getCurrentUser().name}} \n \n
\n \n
\n
\n"
/***/ }),
-/***/ 827:
+/***/ 783:
/***/ (function(module, exports) {
module.exports = "\n
\n
"
/***/ })
-},[1138]);
+},[1077]);
//# sourceMappingURL=main.bundle.js.map
\ No newline at end of file
diff --git a/src/main/resources/static/main.bundle.js.map b/src/main/resources/static/main.bundle.js.map
index 259bbfc..b48b73a 100644
--- a/src/main/resources/static/main.bundle.js.map
+++ b/src/main/resources/static/main.bundle.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/OpenVidu.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/index.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/OpenViduInternal.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/SessionInternal.ts","webpack:///./src/app/services/lesson.service.ts","webpack:///./src/app/services/video-session.service.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Stream.ts","webpack:///./src/app/services/authentication.service.ts","webpack:///./src/app/auth.guard.ts","webpack:///./src/app/components/dashboard/dahsboard.component.ts","webpack:///./src/app/components/dashboard/join-session-dialog.component.ts","webpack:///./src/app/components/lesson-details/lesson-details.component.ts","webpack:///./src/app/components/presentation/presentation.component.ts","webpack:///./src/app/components/profile/profile.component.ts","webpack:///./src/app/components/video-session/video-session.component.ts","webpack:///./src/app/models/lesson.ts","webpack:///./src/app/services/user.service.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Publisher.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Session.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Subscriber.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Connection.ts","webpack:///./src async","webpack:///./src/main.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.routing.ts","webpack:///./src/app/components/error-message/error-message.component.ts","webpack:///./src/app/models/user.ts","webpack:///./src/environments/environment.ts","webpack:///./src/app/app.component.css","webpack:///./src/app/components/dashboard/dashboard.component.css","webpack:///./src/app/components/error-message/error-message.component.css","webpack:///./src/app/components/lesson-details/lesson-details.component.css","webpack:///./src/app/components/presentation/presentation.component.css","webpack:///./src/app/components/profile/profile.component.css","webpack:///./src/app/components/video-session/video-session.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/components/dashboard/dashboard.component.html","webpack:///./src/app/components/error-message/error-message.component.html","webpack:///./src/app/components/lesson-details/lesson-details.component.html","webpack:///./src/app/components/presentation/presentation.component.html","webpack:///./src/app/components/profile/profile.component.html","webpack:///./src/app/components/video-session/video-session.component.html"],"names":[],"mappings":"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","file":"main.bundle.js","sourcesContent":["/*\n * (C) Copyright 2016 OpenVidu (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { OpenViduInternal } from '../OpenViduInternal/OpenViduInternal';\n\nimport { Session } from './Session';\nimport { Publisher } from './Publisher';\n\nimport * as adapter from 'webrtc-adapter';\n\nif (window) {\n window[\"adapter\"] = adapter;\n}\n\nexport class OpenVidu {\n\n openVidu: OpenViduInternal;\n\n constructor() {\n this.openVidu = new OpenViduInternal();\n };\n\n initSession(apiKey: string, sessionId: string): Session;\n initSession(sessionId: string): Session;\n\n initSession(param1, param2?): any {\n if (this.checkSystemRequirements()) {\n if (typeof param2 == \"string\") {\n return new Session(this.openVidu.initSession(param2), this);\n } else {\n return new Session(this.openVidu.initSession(param1), this);\n }\n } else {\n alert(\"Browser not supported\");\n }\n }\n\n initPublisher(parentId: string): Publisher;\n initPublisher(parentId: string, cameraOptions: any): Publisher;\n initPublisher(parentId: string, cameraOptions: any, callback: any): Publisher;\n\n initPublisher(parentId: string, cameraOptions?: any, callback?: Function): any {\n if (this.checkSystemRequirements()) {\n if (cameraOptions != null) {\n let cameraOptionsAux = {\n audio: cameraOptions.audio != null ? cameraOptions.audio : true,\n video: cameraOptions.video != null ? cameraOptions.video : true,\n data: true,\n mediaConstraints: this.openVidu.generateMediaConstraints(cameraOptions.quality)\n };\n cameraOptions = cameraOptionsAux;\n } else {\n cameraOptions = {\n audio: true,\n video: true,\n data: true,\n mediaConstraints: {\n audio: true,\n video: { width: { ideal: 1280 } }\n }\n }\n }\n\n return new Publisher(this.openVidu.initPublisherTagged(parentId, cameraOptions, callback), parentId);\n\n } else {\n alert(\"Browser not supported\");\n }\n }\n\n checkSystemRequirements(): number {\n let browser = adapter.browserDetails.browser;\n let version = adapter.browserDetails.version;\n\n //Bug fix: 'navigator.userAgent' in Firefox for Ubuntu 14.04 does not return \"Firefox/[version]\" in the string, so version returned is null\n if ((browser == 'firefox') && (version == null)) {\n return 1;\n }\n if (((browser == 'chrome') && (version >= 28)) || ((browser == 'edge') && (version >= 12)) || ((browser == 'firefox') && (version >= 22))) {\n return 1;\n } else {\n return 0;\n }\n }\n\n getDevices(callback) {\n navigator.mediaDevices.enumerateDevices().then((deviceInfos) => {\n callback(null, deviceInfos);\n }).catch((error) => {\n console.log(\"Error getting devices: \" + error);\n callback(error, null);\n });\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/OpenVidu.ts","export * from './OpenVidu';\nexport * from './Session';\nexport * from './Publisher';\nexport * from './Subscriber';\nexport * from '../OpenViduInternal/Stream';\nexport * from '../OpenViduInternal/Connection';\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/index.ts","/*\n * (C) Copyright 2016 OpenVidu (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { SessionInternal, SessionOptions } from './SessionInternal';\nimport { Stream } from './Stream';\nimport * as RpcBuilder from 'kurento-jsonrpc';\n\nexport type Callback = (error?: any, openVidu?: T) => void;\n\nexport class OpenViduInternal {\n\n private wsUri;\n private session: SessionInternal;\n private jsonRpcClient: any;\n private rpcParams: any;\n private callback: Callback;\n private camera: Stream;\n private remoteStreams: Stream[] = [];\n\n private secret: string;\n\n constructor() { };\n\n\n /* NEW METHODS */\n initSession(sessionId) {\n console.log(\"Session initialized!\");\n this.session = new SessionInternal(this, sessionId);\n return this.session;\n }\n\n initPublisherTagged(parentId: string, cameraOptions: any, callback?) {\n console.log(\"Publisher tagged initialized!\");\n\n this.getCamera(cameraOptions);\n\n if (callback == null) {\n this.camera.requestCameraAccess((error, camera) => {\n if (error) {\n console.log(\"Error accessing the camera\");\n }\n else {\n this.camera.setVideoElement(this.cameraReady(camera!, parentId));\n }\n });\n return this.camera;\n } else {\n this.camera.requestCameraAccess((error, camera) => {\n if (error) {\n callback(error);\n }\n else {\n this.camera.setVideoElement(this.cameraReady(camera!, parentId));\n callback(undefined);\n }\n });\n return this.camera;\n }\n }\n\n cameraReady(camera: Stream, parentId: string) {\n this.camera = camera;\n let videoElement = this.camera.playOnlyVideo(parentId, null);\n this.camera.emitStreamReadyEvent();\n return videoElement;\n }\n\n initPublisher(cameraOptions: any, callback) {\n console.log(\"Publisher initialized!\");\n\n this.getCamera(cameraOptions);\n this.camera.requestCameraAccess((error, camera) => {\n if (error) callback(error);\n else callback(undefined);\n });\n }\n\n getLocalStream() {\n return this.camera;\n }\n\n getRemoteStreams() {\n return this.remoteStreams;\n }\n /* NEW METHODS */\n\n getWsUri() {\n return this.wsUri;\n }\n\n setWsUri(wsUri: string) {\n this.wsUri = wsUri;\n }\n\n getSecret() {\n return this.secret;\n }\n\n setSecret(secret: string) {\n this.secret = secret;\n }\n\n getOpenViduServerURL() {\n return 'https://' + this.wsUri.split(\"wss://\")[1].split(\"/room\")[0];\n }\n\n getRoom() {\n return this.session;\n }\n\n connect(callback: Callback): void {\n\n this.callback = callback;\n\n this.initJsonRpcClient(this.wsUri);\n }\n\n private initJsonRpcClient(wsUri: string): void {\n\n let config = {\n heartbeat: 3000,\n sendCloseMessage: false,\n ws: {\n uri: wsUri,\n useSockJS: false,\n onconnected: this.connectCallback.bind(this),\n ondisconnect: this.disconnectCallback.bind(this),\n onreconnecting: this.reconnectingCallback.bind(this),\n onreconnected: this.reconnectedCallback.bind(this)\n },\n rpc: {\n requestTimeout: 15000,\n //notifications\n participantJoined: this.onParticipantJoined.bind(this),\n participantPublished: this.onParticipantPublished.bind(this),\n participantUnpublished: this.onParticipantLeft.bind(this),\n participantLeft: this.onParticipantLeft.bind(this),\n participantEvicted: this.onParticipantEvicted.bind(this),\n sendMessage: this.onNewMessage.bind(this),\n iceCandidate: this.iceCandidateEvent.bind(this),\n mediaError: this.onMediaError.bind(this),\n custonNotification: this.customNotification.bind(this)\n }\n };\n\n this.jsonRpcClient = new RpcBuilder.clients.JsonRpcClient(config);\n }\n\n\n private customNotification(params) {\n if (this.isRoomAvailable()) {\n this.session.emitEvent(\"custom-message-received\", [{ params: params }]);\n }\n }\n\n private connectCallback(error) {\n if (error) {\n this.callback(error);\n } else {\n this.callback(null);\n }\n }\n\n private isRoomAvailable() {\n if (this.session !== undefined && this.session instanceof SessionInternal) {\n return true;\n } else {\n console.warn('Room instance not found');\n return false;\n }\n }\n\n private disconnectCallback() {\n console.log('Websocket connection lost');\n if (this.isRoomAvailable()) {\n this.session.onLostConnection();\n } else {\n alert('Connection error. Please reload page.');\n }\n }\n\n private reconnectingCallback() {\n console.log('Websocket connection lost (reconnecting)');\n if (this.isRoomAvailable()) {\n this.session.onLostConnection();\n } else {\n alert('Connection error. Please reload page.');\n }\n }\n\n private reconnectedCallback() {\n console.log('Websocket reconnected');\n }\n\n private onParticipantJoined(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantJoined(params);\n }\n }\n\n private onParticipantPublished(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantPublished(params);\n }\n }\n\n private onParticipantLeft(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantLeft(params);\n }\n }\n\n private onParticipantEvicted(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantEvicted(params);\n }\n }\n\n private onNewMessage(params) {\n if (this.isRoomAvailable()) {\n this.session.onNewMessage(params);\n }\n }\n\n private iceCandidateEvent(params) {\n if (this.isRoomAvailable()) {\n this.session.recvIceCandidate(params);\n }\n }\n\n private onRoomClosed(params) {\n if (this.isRoomAvailable()) {\n this.session.onRoomClosed(params);\n }\n }\n\n private onMediaError(params) {\n if (this.isRoomAvailable()) {\n this.session.onMediaError(params);\n }\n }\n\n\n setRpcParams(params: any) {\n this.rpcParams = params;\n }\n\n sendRequest(method, params, callback?) {\n\n if (params && params instanceof Function) {\n callback = params;\n params = undefined;\n }\n\n params = params || {};\n\n if (this.rpcParams && this.rpcParams !== null && this.rpcParams !== undefined) {\n for (let index in this.rpcParams) {\n if (this.rpcParams.hasOwnProperty(index)) {\n params[index] = this.rpcParams[index];\n console.log('RPC param added to request {' + index + ': ' + this.rpcParams[index] + '}');\n }\n }\n }\n\n console.log('Sending request: { method:\"' + method + '\", params: ' + JSON.stringify(params) + ' }');\n\n this.jsonRpcClient.send(method, params, callback);\n }\n\n close(forced) {\n if (this.isRoomAvailable()) {\n this.session.leave(forced, this.jsonRpcClient);\n }\n };\n\n disconnectParticipant(stream) {\n if (this.isRoomAvailable()) {\n this.session.disconnect(stream);\n }\n }\n\n getCamera(options?) {\n\n if (this.camera) {\n return this.camera;\n }\n\n options = options || {\n audio: true,\n video: true,\n data: true,\n mediaConstraints: {\n audio: true,\n video: { width: { ideal: 1280 } }\n }\n }\n\n options.connection = this.session.getLocalParticipant();\n this.camera = new Stream(this, true, this.session, options);\n return this.camera;\n };\n\n /*joinSession(options: SessionOptions, callback: Callback) {\n \n this.session.configure(options);\n \n this.session.connect2();\n \n this.session.addEventListener('room-connected', roomEvent => callback(undefined,this.session));\n \n this.session.addEventListener('error-room', error => callback(error));\n \n return this.session;\n };*/\n\n //CHAT\n sendMessage(room, user, message) {\n this.sendRequest('sendMessage', {\n message: message,\n userMessage: user,\n roomMessage: room\n }, function (error, response) {\n if (error) {\n console.error(error);\n }\n });\n };\n\n sendCustomRequest(params, callback) {\n this.sendRequest('customRequest', params, callback);\n };\n\n\n\n\n toggleLocalVideoTrack(activate: boolean) {\n this.getCamera().getWebRtcPeer().videoEnabled = activate;\n }\n\n toggleLocalAudioTrack(activate: boolean) {\n this.getCamera().getWebRtcPeer().audioEnabled = activate;\n }\n\n publishLocalVideoAudio() {\n this.toggleLocalVideoTrack(true);\n this.toggleLocalAudioTrack(true);\n }\n\n unpublishLocalVideoAudio() {\n this.toggleLocalVideoTrack(false);\n this.toggleLocalAudioTrack(false);\n }\n\n generateMediaConstraints(quality: string) {\n let mediaConstraints = {\n audio: true,\n video: {}\n }\n let w, h;\n switch (quality) {\n case 'LOW':\n w = 320;\n h = 240;\n break;\n case 'MEDIUM':\n w = 640;\n h = 480;\n break;\n case 'HIGH':\n w = 1280;\n h = 720;\n break;\n default:\n w = 640;\n h = 480;\n }\n mediaConstraints.video['width'] = { exact: w };\n mediaConstraints.video['height'] = { exact: h };\n //mediaConstraints.video['frameRate'] = { ideal: Number((document.getElementById('frameRate')).value) };\n\n return mediaConstraints;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/OpenViduInternal.ts","import { Stream } from './Stream';\nimport { OpenViduInternal } from './OpenViduInternal';\nimport { Connection, ConnectionOptions } from './Connection';\nimport EventEmitter = require('wolfy87-eventemitter');\n\nconst SECRET_PARAM = '?secret=';\n\nexport interface SessionOptions {\n sessionId: string;\n participantId: string;\n metadata: string;\n subscribeToStreams?: boolean;\n updateSpeakerInterval?: number;\n thresholdSpeaker?: number;\n}\n\nexport class SessionInternal {\n\n private id: string;\n private sessionId: string;\n private ee = new EventEmitter();\n private streams = {};\n private participants = {};\n private participantsSpeaking: Connection[] = [];\n private connected = false;\n public localParticipant: Connection;\n private subscribeToStreams: boolean;\n private updateSpeakerInterval: number;\n public thresholdSpeaker: number;\n private options: SessionOptions;\n\n constructor(private openVidu: OpenViduInternal, sessionId: string) {\n this.sessionId = this.getUrlWithoutSecret(sessionId);\n this.localParticipant = new Connection(this.openVidu, true, this);\n if (!this.openVidu.getWsUri()) {\n this.processOpenViduUrl(sessionId);\n }\n }\n\n private processOpenViduUrl(url: string) {\n this.openVidu.setSecret(this.getSecretFromUrl(url));\n this.openVidu.setWsUri(this.getFinalUrl(url));\n }\n\n private getSecretFromUrl(url: string): string {\n let secret = '';\n if (url.indexOf(SECRET_PARAM) !== -1) {\n secret = url.substring(url.lastIndexOf(SECRET_PARAM) + SECRET_PARAM.length, url.length);\n }\n return secret;\n }\n\n private getUrlWithoutSecret(url: string): string {\n if (url.indexOf(SECRET_PARAM) !== -1) {\n url = url.substring(0, url.lastIndexOf(SECRET_PARAM));\n }\n return url;\n }\n\n private getFinalUrl(url: string): string {\n url = this.getUrlWithoutSecret(url).substring(0, url.lastIndexOf('/')) + '/room';\n if (url.indexOf(\".ngrok.io\") !== -1) {\n // OpenVidu server URL referes to a ngrok IP: secure wss protocol and delete port of URL\n url = url.replace(\"ws://\", \"wss://\");\n let regex = /\\.ngrok\\.io:\\d+/;\n url = url.replace(regex, \".ngrok.io\");\n } else if ((url.indexOf(\"localhost\") !== -1) || (url.indexOf(\"127.0.0.1\") != -1)) {\n // OpenVidu server URL referes to localhost IP\n\n }\n return url;\n }\n\n\n\n /* NEW METHODS */\n connect(token, callback) {\n\n this.openVidu.connect((error) => {\n if (error) {\n callback('ERROR CONNECTING TO OPENVIDU');\n }\n else {\n\n if (!token) {\n token = this.randomToken();\n }\n\n let joinParams = {\n token: token,\n session: this.sessionId,\n metadata: this.options.metadata,\n secret: this.openVidu.getSecret(),\n dataChannels: false\n }\n\n if (this.localParticipant) {\n if (Object.keys(this.localParticipant.getStreams()).some(streamId =>\n this.streams[streamId].isDataChannelEnabled())) {\n joinParams.dataChannels = true;\n }\n }\n\n this.openVidu.sendRequest('joinRoom', joinParams, (error, response) => {\n\n if (error) {\n callback(error);\n } else {\n\n this.connected = true;\n\n let exParticipants = response.value;\n\n // IMPORTANT: Update connectionId with value send by server\n this.localParticipant.connectionId = response.id;\n this.participants[response.id] = this.localParticipant;\n\n let roomEvent = {\n participants: new Array(),\n streams: new Array()\n }\n\n let length = exParticipants.length;\n for (let i = 0; i < length; i++) {\n\n let connection = new Connection(this.openVidu, false, this,\n exParticipants[i]);\n connection.creationTime = new Date().getTime();\n\n this.participants[connection.connectionId] = connection;\n\n roomEvent.participants.push(connection);\n\n let streams = connection.getStreams();\n for (let key in streams) {\n roomEvent.streams.push(streams[key]);\n if (this.subscribeToStreams) {\n streams[key].subscribe();\n }\n }\n }\n\n // Update local Connection object properties with values returned by server\n this.localParticipant.data = response.metadata;\n this.localParticipant.creationTime = new Date().getTime();\n\n // Updates the value of property 'connection' in Session object\n this.ee.emitEvent('update-connection-object', [{ connection: this.localParticipant }]);\n // Own connection created event\n this.ee.emitEvent('connectionCreated', [{ connection: this.localParticipant }]);\n\n // One connection created event for each existing connection in the session\n for (let part of roomEvent.participants) {\n this.ee.emitEvent('connectionCreated', [{ connection: part }]);\n }\n\n //if (this.subscribeToStreams) {\n for (let stream of roomEvent.streams) {\n this.ee.emitEvent('streamCreated', [{ stream }]);\n\n // Adding the remote stream to the OpenVidu object\n this.openVidu.getRemoteStreams().push(stream);\n }\n //}\n\n callback(undefined);\n }\n });\n }\n });\n }\n\n publish() {\n this.openVidu.getCamera().publish();\n }\n /* NEW METHODS */\n\n\n\n\n\n configure(options: SessionOptions) {\n this.options = options;\n this.id = options.sessionId;\n this.subscribeToStreams = options.subscribeToStreams == null ? true : options.subscribeToStreams;\n this.updateSpeakerInterval = options.updateSpeakerInterval || 1500;\n this.thresholdSpeaker = options.thresholdSpeaker || -50;\n this.activateUpdateMainSpeaker();\n }\n\n getId() {\n return this.id;\n }\n\n getSessionId() {\n return this.sessionId;\n }\n\n private activateUpdateMainSpeaker() {\n\n setInterval(() => {\n if (this.participantsSpeaking.length > 0) {\n this.ee.emitEvent('update-main-speaker', [{\n participantId: this.participantsSpeaking[this.participantsSpeaking.length - 1]\n }]);\n }\n }, this.updateSpeakerInterval);\n }\n\n getLocalParticipant() {\n return this.localParticipant;\n }\n\n addEventListener(eventName, listener) {\n this.ee.on(eventName, listener);\n }\n\n addOnceEventListener(eventName, listener) {\n this.ee.once(eventName, listener);\n }\n\n removeListener(eventName, listener) {\n this.ee.off(eventName, listener);\n }\n\n removeEvent(eventName) {\n this.ee.removeEvent(eventName);\n }\n\n emitEvent(eventName, eventsArray) {\n this.ee.emitEvent(eventName, eventsArray);\n }\n\n\n subscribe(stream: Stream) {\n stream.subscribe();\n }\n\n unsuscribe(stream) {\n console.log(\"Unsubscribing from \" + stream.getId());\n this.openVidu.sendRequest('unsubscribeFromVideo', {\n sender: stream.getId()\n },\n function (error, response) {\n if (error) {\n console.error(error);\n } else {\n console.info(\"Unsubscribed correctly from \" + stream.getId());\n }\n });\n }\n\n onParticipantPublished(options) {\n\n options.metadata = this.participants[options.id].data;\n\n let connection = new Connection(this.openVidu, false, this, options);\n\n let pid = connection.connectionId;\n if (!(pid in this.participants)) {\n console.info(\"Publisher not found in participants list by its id\", pid);\n } else {\n console.log(\"Publisher found in participants list by its id\", pid);\n }\n //replacing old connection (this one has streams)\n connection.creationTime = this.participants[pid].creationTime;\n this.participants[pid] = connection;\n\n this.ee.emitEvent('participant-published', [{ connection }]);\n\n let streams = connection.getStreams();\n for (let key in streams) {\n let stream = streams[key];\n\n if (this.subscribeToStreams) {\n stream.subscribe();\n }\n this.ee.emitEvent('streamCreated', [{ stream }]);\n // Adding the remote stream to the OpenVidu object\n this.openVidu.getRemoteStreams().push(stream);\n }\n }\n\n onParticipantJoined(msg) {\n\n let connection = new Connection(this.openVidu, false, this, msg);\n connection.creationTime = new Date().getTime();\n\n let pid = connection.connectionId;\n if (!(pid in this.participants)) {\n console.log(\"New participant to participants list with id\", pid);\n this.participants[pid] = connection;\n } else {\n //use existing so that we don't lose streams info\n console.info(\"Participant already exists in participants list with \" +\n \"the same id, old:\", this.participants[pid], \", joined now:\", connection);\n connection = this.participants[pid];\n }\n\n this.ee.emitEvent('participant-joined', [{\n connection: connection\n }]);\n\n this.ee.emitEvent('connectionCreated', [{\n connection: connection\n }]);\n\n }\n\n onParticipantLeft(msg) {\n\n let connection = this.participants[msg.name];\n\n if (connection !== undefined) {\n delete this.participants[msg.name];\n\n this.ee.emitEvent('participant-left', [{\n connection: connection\n }]);\n\n let streams = connection.getStreams();\n for (let key in streams) {\n this.ee.emitEvent('streamDestroyed', [{\n stream: streams[key],\n preventDefault: () => { this.ee.removeEvent('stream-destroyed-default'); }\n }]);\n this.ee.emitEvent('stream-destroyed-default', [{\n stream: streams[key]\n }]);\n\n // Deleting the removed stream from the OpenVidu object\n let index = this.openVidu.getRemoteStreams().indexOf(streams[key]);\n this.openVidu.getRemoteStreams().splice(index, 1);\n }\n\n connection.dispose();\n\n this.ee.emitEvent('connectionDestroyed', [{\n connection: connection\n }]);\n\n } else {\n console.warn(\"Participant \" + msg.name\n + \" unknown. Participants: \"\n + JSON.stringify(this.participants));\n }\n };\n\n onParticipantEvicted(msg) {\n this.ee.emitEvent('participant-evicted', [{\n localParticipant: this.localParticipant\n }]);\n };\n\n onNewMessage(msg) {\n\n console.log(\"New message: \" + JSON.stringify(msg));\n let room = msg.room;\n let user = msg.user;\n let message = msg.message;\n\n if (user !== undefined) {\n this.ee.emitEvent('newMessage', [{\n room: room,\n user: user,\n message: message\n }]);\n } else {\n console.warn(\"User undefined in new message:\", msg);\n }\n }\n\n recvIceCandidate(msg) {\n\n let candidate = {\n candidate: msg.candidate,\n sdpMid: msg.sdpMid,\n sdpMLineIndex: msg.sdpMLineIndex\n }\n\n let connection = this.participants[msg.endpointName];\n if (!connection) {\n console.error(\"Participant not found for endpoint \" +\n msg.endpointName + \". Ice candidate will be ignored.\",\n candidate);\n return;\n }\n\n let streams = connection.getStreams();\n for (let key in streams) {\n let stream = streams[key];\n stream.getWebRtcPeer().addIceCandidate(candidate, function (error) {\n if (error) {\n console.error(\"Error adding candidate for \" + key\n + \" stream of endpoint \" + msg.endpointName\n + \": \" + error);\n }\n });\n }\n }\n\n onRoomClosed(msg) {\n\n console.log(\"Room closed: \" + JSON.stringify(msg));\n let room = msg.room;\n if (room !== undefined) {\n this.ee.emitEvent('room-closed', [{\n room: room\n }]);\n } else {\n console.warn(\"Room undefined in on room closed\", msg);\n }\n }\n\n onLostConnection() {\n\n if (!this.connected) {\n console.warn('Not connected to room: if you are not debugging, this is probably a certificate error');\n if (window.confirm('If you are not debugging, this is probably a certificate error at \\\"' + this.openVidu.getOpenViduServerURL() + '\\\"\\n\\nClick OK to navigate and accept it')) {\n location.assign(this.openVidu.getOpenViduServerURL() + '/accept-certificate');\n };\n return;\n }\n\n console.log('Lost connection in room ' + this.id);\n let room = this.id;\n if (room !== undefined) {\n this.ee.emitEvent('lost-connection', [{ room }]);\n } else {\n console.warn('Room undefined when lost connection');\n }\n }\n\n onMediaError(params) {\n\n console.error(\"Media error: \" + JSON.stringify(params));\n let error = params.error;\n if (error) {\n this.ee.emitEvent('error-media', [{\n error: error\n }]);\n } else {\n console.warn(\"Received undefined media error. Params:\", params);\n }\n }\n\n /*\n * forced means the user was evicted, no need to send the 'leaveRoom' request\n */\n leave(forced, jsonRpcClient) {\n\n forced = !!forced;\n\n console.log(\"Leaving room (forced=\" + forced + \")\");\n\n if (this.connected && !forced) {\n this.openVidu.sendRequest('leaveRoom', function (error, response) {\n if (error) {\n console.error(error);\n }\n jsonRpcClient.close();\n });\n } else {\n jsonRpcClient.close();\n }\n this.connected = false;\n if (this.participants) {\n for (let pid in this.participants) {\n this.participants[pid].dispose();\n delete this.participants[pid];\n }\n }\n }\n\n disconnect(stream: Stream) {\n\n let connection = stream.getParticipant();\n if (!connection) {\n console.error(\"Stream to disconnect has no participant\", stream);\n return;\n }\n\n delete this.participants[connection.connectionId];\n connection.dispose();\n\n if (connection === this.localParticipant) {\n\n console.log(\"Unpublishing my media (I'm \" + connection.connectionId + \")\");\n delete this.localParticipant;\n this.openVidu.sendRequest('unpublishVideo', function (error, response) {\n if (error) {\n console.error(error);\n } else {\n console.info(\"Media unpublished correctly\");\n }\n });\n\n } else {\n this.unsuscribe(stream);\n }\n }\n\n unpublish(stream: Stream) {\n\n let connection = stream.getParticipant();\n if (!connection) {\n console.error(\"Stream to disconnect has no participant\", stream);\n return;\n }\n\n if (connection === this.localParticipant) {\n\n delete this.participants[connection.connectionId];\n connection.dispose();\n\n console.log(\"Unpublishing my media (I'm \" + connection.connectionId + \")\");\n delete this.localParticipant;\n this.openVidu.sendRequest('unpublishVideo', function (error, response) {\n if (error) {\n console.error(error);\n } else {\n console.info(\"Media unpublished correctly\");\n }\n });\n }\n }\n\n getStreams() {\n return this.streams;\n }\n\n addParticipantSpeaking(participantId) {\n this.participantsSpeaking.push(participantId);\n }\n\n removeParticipantSpeaking(participantId) {\n let pos = -1;\n for (let i = 0; i < this.participantsSpeaking.length; i++) {\n if (this.participantsSpeaking[i] == participantId) {\n pos = i;\n break;\n }\n }\n if (pos != -1) {\n this.participantsSpeaking.splice(pos, 1);\n }\n }\n\n stringClientMetadata(metadata): string {\n if (!(typeof metadata === 'string')) {\n return JSON.stringify(metadata);\n } else {\n return metadata;\n }\n }\n \n private randomToken(): string {\n return Math.random().toString(36).slice(2) + Math.random().toString(36).slice(2);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/SessionInternal.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions, Response } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\nimport { environment } from '../../environments/environment';\n\nimport { Lesson } from '../models/lesson';\nimport { User } from '../models/user';\nimport { AuthenticationService } from './authentication.service';\n\nimport 'rxjs/Rx';\n\n@Injectable()\nexport class LessonService {\n\n private url = 'api-lessons';\n\n constructor(private http: Http, private authenticationService: AuthenticationService) { }\n\n getLessons(user: User) {\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.get(this.url + '/user/' + user.id, options) // Must send userId\n .map((response: Response) => response.json() as Lesson[])\n .catch(error => this.handleError(error));\n }\n\n getLesson(lessonId: number) {\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.get(this.url + '/lesson/' + lessonId, options) // Must send userId\n .map((response: Response) => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // POST new lesson. On success returns the created lesson\n newLesson(lesson: Lesson) {\n let body = JSON.stringify(lesson);\n let headers = new Headers({\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + '/new', body, options)\n .map(response => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // PUT existing lesson. On success returns the updated lesson\n editLesson(lesson: Lesson) {\n let body = JSON.stringify(lesson);\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.put(this.url + '/edit', body, options)\n .map(response => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // DELETE existing lesson. On success returns the deleted lesson (simplified version)\n deleteLesson(lessonId: number) {\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.delete(this.url + '/delete/' + lessonId, options)\n .map(response => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // PUT existing lesson, modifying its attenders (adding them). On success returns the updated lesson.attenders array\n addLessonAttenders(lessonId: number, userEmails: string[]) {\n let body = JSON.stringify(userEmails);\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.put(this.url + '/edit/add-attenders/lesson/' + lessonId, body, options)\n .map(response => response.json())\n .catch(error => this.handleError(error));\n }\n\n // PUT existing lesson, modifying its attenders (deleting them). On success returns the updated lesson.attenders array\n deleteLessonAttenders(lesson: Lesson) {\n let body = JSON.stringify(lesson);\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.put(this.url + '/edit/delete-attenders', body, options)\n .map(response => response.json() as User[])\n .catch(error => this.handleError(error));\n }\n\n obtainLocalLesson(id: number) {\n return this.authenticationService.getCurrentUser().lessons.find(lesson => lesson.id == id);\n }\n\n private handleError(error: any) {\n console.error(error);\n return Observable.throw('Server error (' + error.status + '): ' + error.text())\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/lesson.service.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\n\nimport { Lesson } from '../models/lesson';\n\nimport { AuthenticationService } from './authentication.service';\n\n@Injectable()\nexport class VideoSessionService {\n\n lesson: Lesson;\n cameraOptions: any;\n\n private url = 'api-sessions';\n\n constructor(private http: Http, private authenticationService: AuthenticationService) { }\n\n // Returns {0: sessionId}\n createSession(lessonId: number) {\n let body = JSON.stringify(lessonId);\n return this.http.post(this.url + '/create-session', body)\n .map(response => response.json())\n .catch(error => this.handleError(error));\n }\n\n // Returns {0: sessionId, 1: token}\n generateToken(lessonId: number) {\n let body = JSON.stringify(lessonId);\n let headers = new Headers({ 'Content-Type': 'application/json' });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + '/generate-token', body, options)\n .map(response => response.json())\n .catch(error => this.handleError(error));\n }\n\n removeUser(lessonId: number) {\n let body = JSON.stringify(lessonId);\n let headers = new Headers({ 'Content-Type': 'application/json' });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + '/remove-user', body, options)\n .map(response => response)\n .catch(error => this.handleError(error));\n }\n\n private handleError(error: any) {\n console.error(error);\n return Observable.throw('Server error (' + error.status + '): ' + error.text())\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/video-session.service.ts","/*\n * options: name: XXX data: true (Maybe this is based on webrtc) audio: true,\n * video: true, url: \"file:///...\" > Player screen: true > Desktop (implicit\n * video:true, audio:false) audio: true, video: true > Webcam\n *\n * stream.hasAudio(); stream.hasVideo(); stream.hasData();\n */\nimport { Connection } from './Connection';\nimport { SessionInternal } from './SessionInternal';\nimport { OpenViduInternal, Callback } from './OpenViduInternal';\nimport EventEmitter = require('wolfy87-eventemitter');\nimport * as kurentoUtils from 'kurento-utils';\n\nimport * as adapter from 'webrtc-adapter';\ndeclare var navigator: any;\ndeclare var RTCSessionDescription: any;\n\nif (window) {\n window[\"adapter\"] = adapter;\n}\n\nfunction jq(id: string): string {\n return id.replace(/(@|:|\\.|\\[|\\]|,)/g, \"\\\\$1\");\n}\n\nfunction show(id: string) {\n document.getElementById(jq(id))!.style.display = 'block';\n}\n\nfunction hide(id: string) {\n document.getElementById(jq(id))!.style.display = 'none';\n}\n\nexport interface StreamOptions {\n id: string;\n connection: Connection;\n recvVideo: any;\n recvAudio: any;\n video: boolean;\n audio: boolean;\n data: boolean;\n mediaConstraints: any;\n audioOnly: boolean;\n}\n\nexport interface VideoOptions {\n thumb: string;\n video: HTMLVideoElement;\n}\n\nexport class Stream {\n\n public connection: Connection;\n\n private ee = new EventEmitter();\n private wrStream: any;\n private wp: any;\n private id: string;\n private video: HTMLVideoElement;\n private videoElements: VideoOptions[] = [];\n private elements: HTMLDivElement[] = [];\n private speechEvent: any;\n private recvVideo: any;\n private recvAudio: any;\n private sendVideo: boolean;\n private sendAudio: boolean;\n private mediaConstraints: any;\n private showMyRemote = false;\n private localMirrored = false;\n private chanId = 0;\n private dataChannel: boolean;\n private dataChannelOpened = false;\n\n private audioOnly = false;\n\n private videoSrc: string;\n private parentId: string;\n public isReady: boolean = false;\n public isVideoELementCreated: boolean = false;\n public accessIsAllowed: boolean = false;\n public accessIsDenied: boolean = false;\n\n constructor(private openVidu: OpenViduInternal, private local: boolean, private room: SessionInternal, options: StreamOptions) {\n\n if (options.id) {\n this.id = options.id;\n } else {\n this.id = \"webcam\";\n }\n\n this.connection = options.connection;\n this.recvVideo = options.recvVideo;\n this.recvAudio = options.recvAudio;\n this.dataChannel = options.data || false;\n this.sendVideo = options.video;\n this.sendAudio = options.audio;\n this.mediaConstraints = options.mediaConstraints;\n this.audioOnly = options.audioOnly || false;\n\n this.addEventListener('src-added', (srcEvent) => {\n this.videoSrc = srcEvent.src;\n if (this.video) this.video.src = srcEvent.src;\n console.warn(\"Videosrc [\" + srcEvent.src + \"] added to stream [\" + this.getId() + \"]\");\n });\n }\n\n emitSrcEvent(wrstream) {\n this.ee.emitEvent('src-added', [{\n src: URL.createObjectURL(wrstream)\n }]);\n }\n\n emitStreamReadyEvent() {\n this.ee.emitEvent('stream-ready'), [{}];\n }\n\n getVideoSrc() {\n return this.videoSrc;\n }\n\n removeVideo(parentElement: string);\n removeVideo(parentElement: Element);\n removeVideo();\n\n removeVideo(parentElement?) {\n if (typeof parentElement === \"string\") {\n document.getElementById(parentElement)!.removeChild(this.video);\n } else if (parentElement instanceof Element) {\n parentElement.removeChild(this.video);\n }\n else if (!parentElement) {\n if (document.getElementById(this.parentId)) {\n document.getElementById(this.parentId)!.removeChild(this.video);\n }\n }\n }\n\n getVideoElement(): HTMLVideoElement {\n return this.video;\n }\n\n setVideoElement(video: HTMLVideoElement) {\n this.video = video;\n }\n\n\n\n\n\n\n getRecvVideo() {\n return this.recvVideo;\n }\n\n getRecvAudio() {\n return this.recvAudio;\n }\n\n\n subscribeToMyRemote() {\n this.showMyRemote = true;\n }\n\n displayMyRemote() {\n return this.showMyRemote;\n }\n\n mirrorLocalStream(wr) {\n this.showMyRemote = true;\n this.localMirrored = true;\n if (wr) {\n this.wrStream = wr;\n this.emitSrcEvent(this.wrStream);\n }\n }\n\n isLocalMirrored() {\n return this.localMirrored;\n }\n\n getChannelName() {\n return this.getId() + '_' + this.chanId++;\n }\n\n\n isDataChannelEnabled() {\n return this.dataChannel;\n }\n\n\n isDataChannelOpened() {\n return this.dataChannelOpened;\n }\n\n onDataChannelOpen(event) {\n console.log('Data channel is opened');\n this.dataChannelOpened = true;\n }\n\n onDataChannelClosed(event) {\n console.log('Data channel is closed');\n this.dataChannelOpened = false;\n }\n\n sendData(data) {\n if (this.wp === undefined) {\n throw new Error('WebRTC peer has not been created yet');\n }\n if (!this.dataChannelOpened) {\n throw new Error('Data channel is not opened');\n }\n console.log(\"Sending through data channel: \" + data);\n this.wp.send(data);\n }\n\n getWrStream() {\n return this.wrStream;\n }\n\n getWebRtcPeer() {\n return this.wp;\n }\n\n addEventListener(eventName: string, listener: any) {\n this.ee.addListener(eventName, listener);\n }\n\n addOnceEventListener(eventName: string, listener: any) {\n this.ee.addOnceListener(eventName, listener);\n }\n\n removeListener(eventName) {\n this.ee.removeAllListeners(eventName);\n }\n\n showSpinner(spinnerParentId: string) {\n let progress = document.createElement('div');\n progress.id = 'progress-' + this.getId();\n progress.style.background = \"center transparent url('img/spinner.gif') no-repeat\";\n let spinnerParent = document.getElementById(spinnerParentId);\n if (spinnerParent) {\n spinnerParent.appendChild(progress);\n }\n }\n\n hideSpinner(spinnerId?: string) {\n spinnerId = (spinnerId === undefined) ? this.getId() : spinnerId;\n hide('progress-' + spinnerId);\n }\n\n playOnlyVideo(parentElement, thumbnailId) {\n\n // TO-DO: check somehow if the stream is audio only, so the element created is instead of \n\n this.video = document.createElement('video');\n\n this.video.id = 'native-video-' + this.getId();\n this.video.autoplay = true;\n this.video.controls = false;\n this.video.src = this.videoSrc;\n\n this.videoElements.push({\n thumb: thumbnailId,\n video: this.video\n });\n\n if (this.local) {\n this.video.muted = true;\n } else {\n this.video.title = this.getId();\n }\n\n if (typeof parentElement === \"string\") {\n this.parentId = parentElement;\n\n let parentElementDom = document.getElementById(parentElement);\n if (parentElementDom) {\n this.video = parentElementDom.appendChild(this.video);\n this.ee.emitEvent('video-element-created-by-stream', [{\n element: this.video\n }]);\n this.isVideoELementCreated = true;\n }\n } else {\n this.parentId = parentElement.id;\n this.video = parentElement.appendChild(this.video);\n }\n\n this.ee.emitEvent('stream-created-by-publisher');\n\n this.isReady = true;\n\n return this.video;\n }\n\n playThumbnail(thumbnailId) {\n\n let container = document.createElement('div');\n container.className = \"participant\";\n container.id = this.getId();\n let thumbnail = document.getElementById(thumbnailId);\n if (thumbnail) {\n thumbnail.appendChild(container);\n }\n\n this.elements.push(container);\n\n let name = document.createElement('div');\n container.appendChild(name);\n let userName = this.getId().replace('_webcam', '');\n if (userName.length >= 16) {\n userName = userName.substring(0, 16) + \"...\";\n }\n name.appendChild(document.createTextNode(userName));\n name.id = \"name-\" + this.getId();\n name.className = \"name\";\n name.title = this.getId();\n\n this.showSpinner(thumbnailId);\n\n return this.playOnlyVideo(container, thumbnailId);\n }\n\n getIdInParticipant() {\n return this.id;\n }\n\n getParticipant() {\n return this.connection;\n }\n\n getId() {\n if (this.connection) {\n return this.connection.connectionId + \"_\" + this.id;\n } else {\n return this.id + \"_webcam\";\n }\n }\n\n getRTCPeerConnection() {\n return this.getWebRtcPeer().peerConnection;\n }\n\n requestCameraAccess(callback: Callback) {\n\n this.connection.addStream(this);\n\n let constraints = this.mediaConstraints;\n\n /*let constraints2 = {\n audio: true,\n video: {\n width: {\n ideal: 1280\n },\n frameRate: {\n ideal: 15\n }\n }\n };*/\n\n this.userMediaHasVideo((hasVideo) => {\n if (!hasVideo) {\n constraints.video = false;\n this.sendVideo = false;\n this.audioOnly = true;\n this.requestCameraAccesAux(constraints, callback);\n } else {\n this.requestCameraAccesAux(constraints, callback);\n }\n });\n }\n\n private requestCameraAccesAux(constraints, callback) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(userStream => {\n this.cameraAccessSuccess(userStream, callback);\n })\n .catch(error => {\n // Try to ask for microphone only\n navigator.mediaDevices.getUserMedia({ audio: true, video: false })\n .then(userStream => {\n constraints.video = false;\n this.sendVideo = false;\n this.audioOnly = true;\n this.cameraAccessSuccess(userStream, callback);\n })\n .catch(error => {\n this.accessIsDenied = true;\n this.accessIsAllowed = false;\n this.ee.emitEvent('access-denied-by-publisher');\n\n console.error(\"Access denied\", error);\n callback(error, this);\n });\n });\n }\n\n private cameraAccessSuccess(userStream, callback) {\n this.accessIsAllowed = true;\n this.accessIsDenied = false;\n this.ee.emitEvent('access-allowed-by-publisher');\n\n if (userStream.getAudioTracks()[0] != null) {\n userStream.getAudioTracks()[0].enabled = this.sendAudio;\n }\n if (userStream.getVideoTracks()[0] != null) {\n userStream.getVideoTracks()[0].enabled = this.sendVideo;\n }\n\n this.wrStream = userStream;\n this.emitSrcEvent(this.wrStream);\n\n callback(undefined, this);\n }\n\n private userMediaHasVideo(callback) {\n navigator.mediaDevices.enumerateDevices().then(function (mediaDevices) {\n var videoInput = mediaDevices.filter(function (deviceInfo) {\n return deviceInfo.kind === 'videoinput';\n })[0];\n callback(videoInput != null);\n });\n }\n\n publishVideoCallback(error, sdpOfferParam, wp) {\n\n if (error) {\n return console.error(\"(publish) SDP offer error: \"\n + JSON.stringify(error));\n }\n\n console.log(\"Sending SDP offer to publish as \"\n + this.getId(), sdpOfferParam);\n\n this.openVidu.sendRequest(\"publishVideo\", {\n sdpOffer: sdpOfferParam,\n doLoopback: this.displayMyRemote() || false,\n audioOnly: this.audioOnly\n }, (error, response) => {\n if (error) {\n console.error(\"Error on publishVideo: \" + JSON.stringify(error));\n } else {\n this.room.emitEvent('stream-published', [{\n stream: this\n }]);\n this.processSdpAnswer(response.sdpAnswer);\n }\n });\n }\n\n startVideoCallback(error, sdpOfferParam, wp) {\n if (error) {\n return console.error(\"(subscribe) SDP offer error: \"\n + JSON.stringify(error));\n }\n console.log(\"Sending SDP offer to subscribe to \"\n + this.getId(), sdpOfferParam);\n this.openVidu.sendRequest(\"receiveVideoFrom\", {\n sender: this.getId(),\n sdpOffer: sdpOfferParam\n }, (error, response) => {\n if (error) {\n console.error(\"Error on recvVideoFrom: \" + JSON.stringify(error));\n } else {\n this.processSdpAnswer(response.sdpAnswer);\n }\n });\n }\n\n private initWebRtcPeer(sdpOfferCallback) {\n if (this.local) {\n\n let userMediaConstraints = {\n audio: this.sendAudio,\n video: this.sendVideo\n }\n\n let options: any = {\n videoStream: this.wrStream,\n mediaConstraints: userMediaConstraints,\n onicecandidate: this.connection.sendIceCandidate.bind(this.connection),\n }\n\n if (this.dataChannel) {\n options.dataChannelConfig = {\n id: this.getChannelName(),\n onopen: this.onDataChannelOpen,\n onclose: this.onDataChannelClosed\n };\n options.dataChannels = true;\n }\n\n if (this.displayMyRemote()) {\n this.wp = new kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, error => {\n if (error) {\n return console.error(error);\n }\n this.wp.generateOffer(sdpOfferCallback.bind(this));\n });\n } else {\n this.wp = new kurentoUtils.WebRtcPeer.WebRtcPeerSendonly(options, error => {\n if (error) {\n return console.error(error);\n }\n this.wp.generateOffer(sdpOfferCallback.bind(this));\n });\n }\n } else {\n let offerConstraints = {\n audio: this.recvAudio,\n video: !this.audioOnly\n };\n console.log(\"Constraints of generate SDP offer (subscribing)\",\n offerConstraints);\n let options = {\n onicecandidate: this.connection.sendIceCandidate.bind(this.connection),\n mediaConstraints: offerConstraints\n }\n this.wp = new kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(options, error => {\n if (error) {\n return console.error(error);\n }\n this.wp.generateOffer(sdpOfferCallback.bind(this));\n });\n }\n console.log(\"Waiting for SDP offer to be generated (\"\n + (this.local ? \"local\" : \"remote\") + \" peer: \" + this.getId() + \")\");\n }\n\n publish() {\n\n // FIXME: Throw error when stream is not local\n if (this.isReady) {\n this.initWebRtcPeer(this.publishVideoCallback);\n } else {\n this.ee.once('stream-ready', streamEvent => {\n this.publish();\n });\n }\n\n // FIXME: Now we have coupled connecting to a room and adding a\n // stream to this room. But in the new API, there are two steps.\n // This is the second step. For now, it do nothing.\n\n }\n\n subscribe() {\n\n // FIXME: In the current implementation all participants are subscribed\n // automatically to all other participants. We use this method only to\n // negotiate SDP\n\n this.initWebRtcPeer(this.startVideoCallback);\n }\n\n processSdpAnswer(sdpAnswer) {\n\n let answer = new RTCSessionDescription({\n type: 'answer',\n sdp: sdpAnswer,\n });\n console.log(this.getId() + \": set peer connection with recvd SDP answer\",\n sdpAnswer);\n let participantId = this.getId();\n let pc = this.wp.peerConnection;\n pc.setRemoteDescription(answer, () => {\n // Avoids to subscribe to your own stream remotely \n // except when showMyRemote is true\n if (!this.local || this.displayMyRemote()) {\n this.wrStream = pc.getRemoteStreams()[0];\n console.log(\"Peer remote stream\", this.wrStream);\n\n if (this.wrStream != undefined) {\n\n this.emitSrcEvent(this.wrStream);\n\n this.speechEvent = kurentoUtils.WebRtcPeer.hark(this.wrStream, { threshold: this.room.thresholdSpeaker });\n\n this.speechEvent.on('speaking', () => {\n this.room.addParticipantSpeaking(participantId);\n this.room.emitEvent('stream-speaking', [{\n participantId: participantId\n }]);\n });\n\n this.speechEvent.on('stopped_speaking', () => {\n this.room.removeParticipantSpeaking(participantId);\n this.room.emitEvent('stream-stopped-speaking', [{\n participantId: participantId\n }]);\n });\n }\n for (let videoElement of this.videoElements) {\n let thumbnailId = videoElement.thumb;\n let video = videoElement.video;\n video.src = URL.createObjectURL(this.wrStream);\n video.onplay = () => {\n console.log(this.getId() + ': ' + 'Video playing');\n //show(thumbnailId);\n //this.hideSpinner(this.getId());\n };\n }\n this.room.emitEvent('stream-subscribed', [{\n stream: this\n }]);\n }\n }, error => {\n console.error(this.getId() + \": Error setting SDP to the peer connection: \"\n + JSON.stringify(error));\n });\n }\n\n unpublish() {\n if (this.wp) {\n this.wp.dispose();\n } else {\n if (this.wrStream) {\n this.wrStream.getAudioTracks().forEach(function (track) {\n track.stop && track.stop()\n })\n this.wrStream.getVideoTracks().forEach(function (track) {\n track.stop && track.stop()\n })\n }\n }\n\n if (this.speechEvent) {\n this.speechEvent.stop();\n }\n\n console.log(this.getId() + \": Stream '\" + this.id + \"' unpublished\");\n }\n\n dispose() {\n\n function disposeElement(element) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n\n this.elements.forEach(e => disposeElement(e));\n\n //this.videoElements.forEach(ve => disposeElement(ve.video));\n\n disposeElement(\"progress-\" + this.getId());\n\n if (this.wp) {\n this.wp.dispose();\n } else {\n if (this.wrStream) {\n this.wrStream.getAudioTracks().forEach(function (track) {\n track.stop && track.stop()\n })\n this.wrStream.getVideoTracks().forEach(function (track) {\n track.stop && track.stop()\n })\n }\n }\n\n if (this.speechEvent) {\n this.speechEvent.stop();\n }\n\n console.log(this.getId() + \": Stream '\" + this.id + \"' disposed\");\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Stream.ts","import { Observable } from 'rxjs/Rx';\nimport { Injectable } from '@angular/core';\nimport { Http, RequestOptions, Headers, Response } from '@angular/http';\nimport { Router } from '@angular/router';\n\nimport { environment } from '../../environments/environment';\n\nimport 'rxjs/add/operator/map';\n\nimport { User } from '../models/user';\n\n@Injectable()\nexport class AuthenticationService {\n\n private urlLogIn = 'api-logIn';\n private urlLogOut = 'api-logOut';\n\n public token: string;\n private user: User;\n private role: string;\n\n constructor(private http: Http, private router: Router) {\n this.reqIsLogged();\n\n // set token if saved in local storage\n // let auth_token = JSON.parse(localStorage.getItem('auth_token'));\n // this.token = auth_token && auth_token.token;\n }\n\n logIn(user: string, pass: string) {\n\n console.log('Login service started...');\n\n let userPass = utf8_to_b64(user + ':' + pass);\n let headers = new Headers({\n 'Authorization': 'Basic ' + userPass,\n 'X-Requested-With': 'XMLHttpRequest'\n });\n let options = new RequestOptions({ headers });\n\n return this.http.get(this.urlLogIn, options)\n .map(response => {\n this.processLogInResponse(response);\n return this.user;\n })\n .catch(error => Observable.throw(error));\n }\n\n logOut() {\n\n console.log('Logging out...');\n\n return this.http.get(this.urlLogOut).map(\n response => {\n\n console.log('Logout succesful!');\n\n this.user = null;\n this.role = null;\n\n // clear token remove user from local storage to log user out and navigates to welcome page\n this.token = null;\n localStorage.removeItem('login');\n localStorage.removeItem('rol');\n this.router.navigate(['']);\n\n return response;\n })\n .catch(error => Observable.throw(error));\n }\n\n directLogOut() {\n this.logOut().subscribe(\n response => { },\n error => console.log(\"Error when trying to log out: \" + error)\n );\n }\n\n private processLogInResponse(response) {\n // Correctly logged in\n console.log('Login succesful processing...');\n\n this.user = (response.json() as User);\n\n localStorage.setItem('login', 'OPENVIDUAPP');\n if (this.user.roles.indexOf('ROLE_TEACHER') !== -1) {\n this.role = 'ROLE_TEACHER';\n localStorage.setItem('rol', 'ROLE_TEACHER');\n }\n if (this.user.roles.indexOf('ROLE_STUDENT') !== -1) {\n this.role = 'ROLE_STUDENT';\n localStorage.setItem('rol', 'ROLE_STUDENT');\n }\n }\n\n reqIsLogged() {\n\n console.log('ReqIsLogged called');\n\n let headers = new Headers({\n 'X-Requested-With': 'XMLHttpRequest'\n });\n let options = new RequestOptions({ headers });\n\n this.http.get(this.urlLogIn, options).subscribe(\n response => this.processLogInResponse(response),\n error => {\n if (error.status != 401) {\n console.error('Error when asking if logged: ' + JSON.stringify(error));\n this.logOut();\n }\n }\n );\n }\n\n checkCredentials() {\n if (!this.isLoggedIn()) {\n this.logOut();\n }\n }\n\n isLoggedIn() {\n return ((this.user != null) && (this.user !== undefined));\n }\n\n getCurrentUser() {\n return this.user;\n }\n\n isTeacher() {\n return ((this.user.roles.indexOf('ROLE_TEACHER')) !== -1) && (localStorage.getItem('rol') === 'ROLE_TEACHER');\n }\n\n isStudent() {\n return ((this.user.roles.indexOf('ROLE_STUDENT')) !== -1) && (localStorage.getItem('rol') === 'ROLE_STUDENT');\n }\n\n updateUserLessons(lessons) {\n this.getCurrentUser().lessons = lessons;\n }\n}\n\nfunction utf8_to_b64(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {\n return String.fromCharCode('0x' + p1);\n }));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/authentication.service.ts","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\n\nimport { AuthenticationService } from './services/authentication.service';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\n constructor(private router: Router, private authenticationService: AuthenticationService) { }\n\n canActivate() {\n if (localStorage.getItem('login') && localStorage.getItem('rol') && this.authenticationService.isLoggedIn()) {\n // logged in so return true\n return true;\n }\n\n // not logged in so redirect to login page\n this.router.navigate(['']);\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth.guard.ts","import { Component, OnInit, EventEmitter } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MdDialog, MdDialogRef, MdSnackBar } from '@angular/material';\n\nimport { Lesson } from '../../models/lesson';\n\nimport { LessonService } from '../../services/lesson.service';\nimport { VideoSessionService } from '../../services/video-session.service';\nimport { AuthenticationService } from '../../services/authentication.service';\n\nimport { JoinSessionDialogComponent } from './join-session-dialog.component';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css'],\n})\nexport class DashboardComponent implements OnInit {\n\n lessons: Lesson[];\n\n addingLesson: false;\n lessonTitle: string;\n sumbitNewLesson: boolean;\n\n constructor(\n private lessonService: LessonService,\n private videoSessionService: VideoSessionService,\n private authenticationService: AuthenticationService,\n private router: Router,\n public snackBar: MdSnackBar,\n public dialog: MdDialog\n ) { }\n\n ngOnInit(): void {\n this.authenticationService.checkCredentials();\n this.getLessons();\n }\n\n logout() {\n this.authenticationService.logOut();\n }\n\n getLessons(): void {\n this.lessonService.getLessons(this.authenticationService.getCurrentUser()).subscribe(\n lessons => {\n console.log('User\\'s lessons: ');\n console.log(lessons);\n this.lessons = lessons;\n this.authenticationService.updateUserLessons(this.lessons);\n },\n error => console.log(error));\n }\n\n goToLesson(lesson: Lesson) {\n let dialogRef: MdDialogRef;\n dialogRef = this.dialog.open(JoinSessionDialogComponent);\n dialogRef.componentInstance.myReference = dialogRef;\n\n dialogRef.afterClosed().subscribe(cameraOptions => {\n if (cameraOptions != null) {\n console.log('Joining session with options:');\n console.log(cameraOptions);\n this.videoSessionService.lesson = lesson;\n this.videoSessionService.cameraOptions = cameraOptions;\n this.router.navigate(['/lesson/' + lesson.id]);\n }\n });\n }\n\n goToLessonDetails(lesson: Lesson) {\n this.router.navigate(['/lesson-details/' + lesson.id]);\n }\n\n newLesson() {\n this.sumbitNewLesson = true;\n this.lessonService.newLesson(new Lesson(this.lessonTitle)).subscribe(\n lesson => {\n console.log('New lesson added: ');\n console.log(lesson);\n this.lessons.push(lesson);\n this.authenticationService.updateUserLessons(this.lessons);\n this.sumbitNewLesson = false;\n this.snackBar.open('Lesson added!', undefined, { duration: 3000 });\n this.addingLesson = false;\n },\n error => {\n console.log(error);\n this.sumbitNewLesson = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n }\n );\n }\n\n createSession(lessonId: number){\n this.videoSessionService.createSession(lessonId).subscribe(\n response => {\n console.log(response.text());\n },\n error => {\n console.log(error);\n }\n )\n }\n\n generateToken(lessonId: number) {\n this.videoSessionService.generateToken(lessonId).subscribe(\n response => {\n console.log(response.text());\n },\n error => {\n console.log(error);\n }\n )\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/dashboard/dahsboard.component.ts","import { Component } from '@angular/core';\nimport { MdDialogRef } from '@angular/material';\n\n@Component({\n selector: 'app-join-session-dialog',\n template: `\n \n
\n Video options\n \n
\n
\n `,\n styles: [`\n #quality-div {\n margin-top: 20px;\n }\n #join-div {\n margin-top: 25px;\n margin-bottom: 20px;\n }\n #quality-tag {\n display: block;\n }\n h5 {\n margin-bottom: 10px;\n text-align: left;\n }\n #joinWithVideo {\n margin-right: 50px;\n }\n md-dialog-actions {\n display: block;\n }\n #join-btn {\n float: right;\n }\n `],\n})\nexport class JoinSessionDialogComponent {\n\n public myReference: MdDialogRef;\n private quality = 'medium';\n private joinWithVideo = true;\n private joinWithAudio = true;\n\n constructor() { }\n\n joinSession() {\n let cameraOptions = {\n audio: this.joinWithAudio,\n video: this.joinWithVideo,\n data: true,\n mediaConstraints: this.generateMediaConstraints()\n };\n this.myReference.close(cameraOptions);\n }\n\n generateMediaConstraints() {\n let mediaConstraints = {\n audio: true,\n video: {}\n }\n let w = 640;\n let h = 480;\n switch (this.quality) {\n case 'low':\n w = 320;\n h = 240;\n break;\n case 'medium':\n w = 640;\n h = 480;\n break;\n case 'high':\n w = 1280;\n h = 720;\n break;\n case 'veryhigh':\n w = 1920;\n h = 1080;\n break;\n }\n mediaConstraints.video['width'] = { exact: w };\n mediaConstraints.video['height'] = { exact: h };\n //mediaConstraints.video['frameRate'] = { ideal: Number((document.getElementById('frameRate')).value) };\n\n return mediaConstraints;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/dashboard/join-session-dialog.component.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { MdSnackBar } from '@angular/material';\n\nimport { Lesson } from '../../models/lesson';\nimport { User } from '../../models/user';\n\nimport { LessonService } from '../../services/lesson.service';\nimport { AuthenticationService } from '../../services/authentication.service';\n\n@Component({\n selector: 'app-lesson-details',\n templateUrl: './lesson-details.component.html',\n styleUrls: ['./lesson-details.component.css'],\n})\nexport class LessonDetailsComponent implements OnInit {\n\n lesson: Lesson;\n\n editingTitle = false;\n titleEdited: string;\n sumbitEditLesson = false;\n emailAttender: string;\n sumbitAddAttenders = false;\n arrayOfAttDels = [];\n\n // Feedback message parameters\n addAttendersCorrect = false;\n addAttendersError = false;\n attErrorTitle: string;\n attErrorContent: string;\n attCorrectTitle: string;\n attCorrectContent: string;\n\n constructor(\n private lessonService: LessonService,\n private authenticationService: AuthenticationService,\n private router: Router,\n private route: ActivatedRoute,\n private location: Location,\n public snackBar: MdSnackBar\n ) { }\n\n ngOnInit(): void {\n this.route.params\n .map((params: Params) => this.lessonService.obtainLocalLesson(+params['id']))\n .subscribe(lesson => this.lesson = lesson);\n }\n\n editLesson() {\n if (this.titleEdited !== this.lesson.title) {\n this.sumbitEditLesson = true;\n let l = new Lesson(this.titleEdited);\n l.id = this.lesson.id;\n this.lessonService.editLesson(l).subscribe(\n lesson => {\n // Lesson has been updated\n console.log('Lesson edited: ');\n console.log(lesson);\n this.lesson = lesson;\n this.sumbitEditLesson = false;\n this.editingTitle = false;\n this.snackBar.open('Lesson edited!', undefined, { duration: 3000 });\n },\n error => {\n console.log(error);\n this.sumbitEditLesson = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n });\n } else {\n this.editingTitle = false; // The user has not modified the title\n }\n }\n\n deleteLesson() {\n this.sumbitEditLesson = true;\n this.lessonService.deleteLesson(this.lesson.id).subscribe(\n lesson => {\n // Lesson has been deleted\n console.log('Lesson deleted');\n console.log(lesson);\n this.sumbitEditLesson = false;\n this.router.navigate(['/lessons']);\n this.snackBar.open('Lesson deleted!', undefined, { duration: 3000 });\n },\n error => {\n console.log(error);\n this.sumbitEditLesson = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n });\n }\n\n addLessonAttenders() {\n this.sumbitAddAttenders = true;\n this.lessonService.addLessonAttenders(this.lesson.id, [this.emailAttender]).subscribe(\n response => { // response: attendersAdded, attendersAlreadyAdded, emailsInvalid, emailsValidNotRegistered\n console.log('Attender added');\n console.log(response);\n this.sumbitAddAttenders = false;\n let newAttenders = response.attendersAdded as User[];\n this.lesson.attenders = this.lesson.attenders.concat(newAttenders);\n this.handleAttendersMessage(response);\n },\n error => {\n console.log(error);\n this.sumbitAddAttenders = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n });\n }\n\n deleteLessonAttender(i: number, attender: User) {\n this.arrayOfAttDels[i] = true;\n let l = new Lesson(this.lesson.title);\n l.id = this.lesson.id;\n for (let i = 0; i < this.lesson.attenders.length; i++) {\n if (this.lesson.attenders[i].id !== attender.id) {\n l.attenders.push(new User(this.lesson.attenders[i])); //Inserting a new User object equal to the attender but \"lessons\" array empty\n }\n }\n this.lessonService.deleteLessonAttenders(l).subscribe(\n attenders => {\n console.log('Attender removed');\n console.log(attenders);\n this.arrayOfAttDels[i] = false;\n this.lesson.attenders = attenders;\n this.snackBar.open('Attender removed!', undefined, { duration: 3000 });\n },\n error => {\n console.log(error);\n this.arrayOfAttDels[i] = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n });\n }\n\n // Creates an error message when there is any problem during the process of adding Users to a Lesson\n // It also generates a correct feedback message when any student has been correctly added to the Lesson\n handleAttendersMessage(response) {\n let isError: boolean = false;\n let isCorrect: boolean = false;\n this.attErrorContent = \"\";\n this.attCorrectContent = \"\";\n\n if (response.attendersAdded.length > 0) {\n for (let user of response.attendersAdded) {\n this.attCorrectContent += \"\" + user.name + \" \";\n }\n isCorrect = true;\n }\n if (response.attendersAlreadyAdded.length > 0) {\n this.attErrorContent += \"The following users were already added to the lesson \";\n for (let user of response.attendersAlreadyAdded) {\n this.attErrorContent += \"\" + user.name + \" \";\n }\n isError = true;\n }\n if (response.emailsValidNotRegistered.length > 0) {\n this.attErrorContent += \"The following users are not registered \";\n for (let email of response.emailsValidNotRegistered) {\n this.attErrorContent += \"\" + email + \" \";\n }\n isError = true;\n }\n if (response.emailsInvalid) {\n if (response.emailsInvalid.length > 0) {\n this.attErrorContent += \"These are not valid emails \";\n for (let email of response.emailsInvalid) {\n this.attErrorContent += \"\" + email + \" \";\n }\n isError = true;\n }\n }\n if (isError) {\n this.attErrorTitle = \"There have been some problems\";\n this.addAttendersError = true;\n } else if (response.attendersAdded.length == 0) {\n this.attErrorTitle = \"No emails there!\";\n this.addAttendersError = true;\n }\n if (isCorrect) {\n this.attCorrectTitle = \"The following users where properly added\";\n this.addAttendersCorrect = true;\n }\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/lesson-details/lesson-details.component.ts","import { Component, OnInit, AfterViewChecked } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthenticationService } from '../../services/authentication.service';\nimport { UserService } from '../../services/user.service';\n\n@Component({\n selector: 'app-presentation',\n templateUrl: './presentation.component.html',\n styleUrls: ['./presentation.component.css']\n})\n\nexport class PresentationComponent implements OnInit, AfterViewChecked {\n\n private email: string;\n private password: string;\n private confirmPassword: string;\n private nickName: string;\n private roleUserSignup = 'student';\n\n private loginView = true;\n private fieldsIncorrect: boolean;\n private submitProcessing: boolean;\n\n private tableShow = false;\n\n // Error message content\n private errorTitle: string;\n private errorContent: string;\n private customClass: string;\n\n constructor(\n private authenticationService: AuthenticationService,\n private userService: UserService,\n private router: Router) { }\n\n ngOnInit() { }\n\n // If the user is loggedIn, navigates to dashboard\n ngAfterViewChecked() {\n if (this.authenticationService.isLoggedIn()) {\n this.router.navigate(['/lessons']);\n }\n }\n\n setLoginView(option: boolean) {\n this.fieldsIncorrect = false;\n this.loginView = option;\n }\n\n onSubmit() {\n console.log('Submit: email = ' + this.email + ' , password = ' + this.password + ', confirmPassword = ' + this.confirmPassword);\n this.submitProcessing = true;\n\n if (this.loginView) {\n // If login view is activated\n console.log('Logging in...');\n this.logIn(this.email, this.password);\n } else {\n // If signup view is activated\n console.log('Signing up...');\n this.signUp();\n }\n }\n\n logIn(user: string, pass: string) {\n this.authenticationService.logIn(user, pass).subscribe(\n result => {\n this.submitProcessing = false;\n\n console.log('Login succesful! LOGGED AS ' + this.authenticationService.getCurrentUser().name);\n\n // Login successful\n this.fieldsIncorrect = false;\n this.router.navigate(['/lessons']);\n },\n error => {\n\n console.log('Login failed (error): ' + error);\n\n this.errorTitle = 'Invalid field';\n this.errorContent = 'Please check your email or password';\n this.customClass = 'fail';\n\n // Login failed\n this.handleError();\n }\n );\n }\n\n signUp() {\n\n // Passwords don't match\n if (this.password !== this.confirmPassword) {\n this.errorTitle = 'Your passwords don\\'t match!';\n this.errorContent = '';\n this.customClass = 'fail';\n this.handleError();\n }\n\n else {\n\n let userNameFixed = this.email;\n let userPasswordFixed = this.password;\n\n this.userService.newUser(userNameFixed, userPasswordFixed, this.nickName, this.roleUserSignup).subscribe(\n result => {\n\n // Sign up succesful\n this.logIn(userNameFixed, userPasswordFixed);\n console.log('Sign up succesful!');\n },\n error => {\n\n console.log('Sign up failed (error): ' + error);\n if (error === 409) { // CONFLICT: Email already in use\n this.errorTitle = 'Invalid email';\n this.errorContent = 'That email is already in use';\n this.customClass = 'fail';\n } else if (error === 403) { // FORBIDDEN: Invalid email format\n this.errorTitle = 'Invalid email format';\n this.errorContent = 'Our server has rejected that email';\n this.customClass = 'fail';\n }\n\n // Sign up failed\n this.handleError();\n }\n );\n }\n }\n\n handleError() {\n this.submitProcessing = false;\n this.fieldsIncorrect = true;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/presentation/presentation.component.ts","import { Component, OnInit } from '@angular/core';\n\nimport { AuthenticationService } from '../../services/authentication.service';\nimport { User } from '../../models/user';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.css']\n})\nexport class ProfileComponent implements OnInit {\n\n private user: User;\n\n constructor(private authenticationService: AuthenticationService) { }\n\n ngOnInit() {\n this.user = this.authenticationService.getCurrentUser();\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/profile/profile.component.ts","import { Component, OnInit } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { OpenVidu, Session, Publisher } from 'openvidu-browser';\n\nimport { VideoSessionService } from '../../services/video-session.service';\nimport { AuthenticationService } from '../../services/authentication.service';\n\nimport { Lesson } from '../../models/lesson';\n\n@Component({\n selector: 'app-video-session',\n templateUrl: './video-session.component.html',\n styleUrls: ['./video-session.component.css']\n})\nexport class VideoSessionComponent implements OnInit {\n\n lesson: Lesson;\n\n OV: OpenVidu;\n session: Session;\n publisher: Publisher;\n\n sessionId: string;\n token: string;\n\n cameraOptions: any;\n\n localVideoActivated: boolean;\n localAudioActivated: boolean;\n videoIcon: string;\n audioIcon: string;\n fullscreenIcon: string;\n\n constructor(\n private location: Location,\n private authenticationService: AuthenticationService,\n private videoSessionService: VideoSessionService) { }\n\n\n OPEN_VIDU_CONNECTION() {\n\n // 0) Obtain 'sessionId' and 'token' from server\n // In this case, the method ngOnInit takes care of it\n\n\n // 1) Initialize OpenVidu and your Session\n this.OV = new OpenVidu();\n this.session = this.OV.initSession(this.sessionId);\n\n\n // 2) Specify the actions when events take place\n this.session.on('streamCreated', (event) => {\n console.warn(\"STREAM CREATED!\");\n console.warn(event.stream);\n this.session.subscribe(event.stream, 'subscriber', {\n insertMode: 'append',\n width: '100%',\n height: '100%'\n });\n });\n\n this.session.on('streamDestroyed', (event) => {\n console.warn(\"STREAM DESTROYED!\");\n console.warn(event.stream);\n });\n\n this.session.on('connectionCreated', (event) => {\n if (event.connection.connectionId == this.session.connection.connectionId) {\n console.warn(\"YOUR OWN CONNECTION CREATED!\");\n } else {\n console.warn(\"OTHER USER'S CONNECTION CREATED!\");\n }\n console.warn(event.connection);\n });\n\n this.session.on('connectionDestroyed', (event) => {\n console.warn(\"OTHER USER'S CONNECTION DESTROYED!\");\n console.warn(event.connection);\n });\n\n\n\n // 3) Connect to the session\n this.session.connect(this.token, \"CLIENT:\" + this.authenticationService.getCurrentUser().name, (error) => {\n\n // If the connection is successful, initialize a publisher and publish to the session\n if (!error) {\n\n if (this.authenticationService.isTeacher()) {\n\n // 4) Get your own camera stream with the desired resolution and publish it, only if the user is supposed to do so\n this.publisher = this.OV.initPublisher('publisher', this.cameraOptions);\n\n this.publisher.on('accessAllowed', () => {\n console.warn(\"CAMERA ACCESS ALLOWED!\");\n });\n this.publisher.on('accessDenied', () => {\n console.warn(\"CAMERA ACCESS DENIED!\");\n });\n this.publisher.on('streamCreated', (event) => {\n console.warn(\"STREAM CREATED BY PUBLISHER!\");\n console.warn(event.stream);\n })\n\n // 5) Publish your stream\n this.session.publish(this.publisher);\n\n }\n\n } else {\n console.log('There was an error connecting to the session:', error.code, error.message);\n }\n });\n }\n\n\n ngOnInit() {\n\n // Specific aspects of this concrete application\n this.previousConnectionStuff();\n\n\n if (this.authenticationService.isTeacher()) {\n\n // If the user is the teacher: creates the session and gets a token (with PUBLISHER role)\n this.videoSessionService.createSession(this.lesson.id).subscribe(\n sessionId => { // {0: sessionId}\n this.sessionId = sessionId[0];\n this.videoSessionService.generateToken(this.lesson.id).subscribe(\n sessionIdAndToken => {\n this.token = sessionIdAndToken[1];\n console.warn(\"Token: \" + this.token);\n console.warn(\"SessionId: \" + this.sessionId);\n this.OPEN_VIDU_CONNECTION();\n },\n error => {\n console.log(error);\n });\n },\n error => {\n console.log(error);\n }\n );\n }\n else {\n\n // If the user is a student: gets a token (with SUBSCRIBER role)\n this.videoSessionService.generateToken(this.lesson.id).subscribe(\n sessionIdAndToken => { // {0: sessionId, 1: token}\n this.sessionId = sessionIdAndToken[0];\n this.token = sessionIdAndToken[1];\n console.warn(\"Token: \" + this.token);\n console.warn(\"SessionId: \" + this.sessionId);\n this.OPEN_VIDU_CONNECTION();\n },\n error => {\n console.log(error);\n });\n }\n\n\n // Specific aspects of this concrete application\n this.afterConnectionStuff();\n }\n\n ngAfterViewInit() {\n this.toggleScrollPage(\"hidden\");\n }\n\n ngOnDestroy() {\n this.videoSessionService.removeUser(this.lesson.id).subscribe(\n response => {\n console.warn(\"You have succesfully left the lesson\");\n },\n error => {\n console.log(error);\n });\n this.toggleScrollPage(\"auto\");\n this.exitFullScreen();\n if (this.OV) this.session.disconnect();\n }\n\n toggleScrollPage(scroll: string) {\n let content = document.getElementsByClassName(\"mat-sidenav-content\")[0];\n content.style.overflow = scroll;\n }\n\n toggleLocalVideo() {\n this.localVideoActivated = !this.localVideoActivated;\n this.publisher.publishVideo(this.localVideoActivated);\n this.videoIcon = this.localVideoActivated ? 'videocam' : 'videocam_off';\n }\n\n toggleLocalAudio() {\n this.localAudioActivated = !this.localAudioActivated;\n this.publisher.publishAudio(this.localAudioActivated);\n this.audioIcon = this.localAudioActivated ? 'mic' : 'mic_off';\n }\n\n toggleFullScreen() {\n let document: any = window.document;\n let fs = document.getElementsByTagName('html')[0];\n if (!document.fullscreenElement &&\n !document.mozFullScreenElement &&\n !document.webkitFullscreenElement &&\n !document.msFullscreenElement) {\n console.log(\"enter FULLSCREEN!\");\n this.fullscreenIcon = 'fullscreen_exit';\n if (fs.requestFullscreen) {\n fs.requestFullscreen();\n } else if (fs.msRequestFullscreen) {\n fs.msRequestFullscreen();\n } else if (fs.mozRequestFullScreen) {\n fs.mozRequestFullScreen();\n } else if (fs.webkitRequestFullscreen) {\n fs.webkitRequestFullscreen();\n }\n } else {\n console.log(\"exit FULLSCREEN!\");\n this.fullscreenIcon = 'fullscreen';\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n }\n }\n }\n\n exitFullScreen() {\n let document: any = window.document;\n let fs = document.getElementsByTagName('html')[0];\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n }\n }\n\n previousConnectionStuff() {\n this.lesson = this.videoSessionService.lesson;\n this.cameraOptions = this.videoSessionService.cameraOptions;\n }\n\n afterConnectionStuff() {\n this.localVideoActivated = this.cameraOptions.video;\n this.localAudioActivated = this.cameraOptions.audio;\n this.videoIcon = this.localVideoActivated ? \"videocam\" : \"videocam_off\";\n this.audioIcon = this.localAudioActivated ? \"mic\" : \"mic_off\";\n this.fullscreenIcon = \"fullscreen\";\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/video-session/video-session.component.ts","import { User } from './user';\n\nexport class Lesson {\n\n public id?: number;\n public title: string;\n public teacher: User;\n public attenders: User[];\n\n constructor(title: string) {\n this.title = title;\n this.attenders = [];\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/lesson.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions, Response } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\n\nimport { User } from '../models/user';\n\n@Injectable()\nexport class UserService {\n\n private url = 'api-users';\n\n constructor(private http: Http) { }\n\n newUser(name: string, pass: string, nickName: string, role: string) {\n let body = JSON.stringify([name, pass, nickName, role]);\n let headers = new Headers({\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + \"/new\", body, options)\n .map(response => response.json() as User)\n .catch(error => this.handleError(error));\n }\n\n private handleError(error: any) {\n return Observable.throw(error.status);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/user.service.ts","/*\n * options: name: XXX data: true (Maybe this is based on webrtc) audio: true,\n * video: true, url: \"file:///...\" > Player screen: true > Desktop (implicit\n * video:true, audio:false) audio: true, video: true > Webcam\n *\n * stream.hasAudio(); stream.hasVideo(); stream.hasData();\n */\nimport { Stream, StreamOptions, VideoOptions } from '../OpenViduInternal/Stream';\nimport { Session } from './Session';\n\nimport EventEmitter = require('wolfy87-eventemitter');\n\nexport class Publisher {\n\n private ee = new EventEmitter();\n\n accessAllowed = false;\n element: Element;\n id: string;\n stream: Stream;\n session: Session; //Initialized by Session.publish(Publisher)\n\n constructor(stream: Stream, parentId: string) {\n this.stream = stream;\n\n this.stream.addEventListener('camera-access-changed', (event) => {\n this.accessAllowed = event.accessAllowed;\n if (this.accessAllowed) {\n this.ee.emitEvent('accessAllowed');\n } else {\n this.ee.emitEvent('accessDenied');\n }\n });\n\n if (document.getElementById(parentId) != null) {\n this.element = document.getElementById(parentId)!!;\n }\n }\n\n publishAudio(value: boolean) {\n this.stream.getWebRtcPeer().audioEnabled = value;\n }\n\n publishVideo(value: boolean) {\n this.stream.getWebRtcPeer().videoEnabled = value;\n }\n\n destroy() {\n this.session.unpublish(this);\n this.stream.dispose();\n this.stream.removeVideo(this.element);\n return this;\n }\n\n on(eventName: string, callback) {\n this.ee.addListener(eventName, event => {\n callback(event);\n });\n if (eventName == 'videoElementCreated') {\n if (this.stream.isVideoELementCreated) {\n this.ee.emitEvent('videoElementCreated', [{\n element: this.stream.getVideoElement()\n }]);\n } else {\n this.stream.addEventListener('video-element-created-by-stream', (element) => {\n console.warn('Publisher emitting videoElementCreated');\n this.id = element.id;\n this.ee.emitEvent('videoElementCreated', [{\n element: element.element\n }]);\n });\n }\n }\n if (eventName == 'streamCreated') {\n if (this.stream.isReady) {\n this.ee.emitEvent('streamCreated', [{ stream: this.stream }]);\n } else {\n this.stream.addEventListener('stream-created-by-publisher', () => {\n console.warn('Publisher emitting streamCreated');\n this.ee.emitEvent('streamCreated', [{ stream: this.stream }]);\n });\n }\n }\n if (eventName == 'accessAllowed') {\n if (this.stream.accessIsAllowed) {\n this.ee.emitEvent('accessAllowed');\n } else {\n this.stream.addEventListener('access-allowed-by-publisher', () => {\n this.ee.emitEvent('accessAllowed');\n });\n }\n }\n if (eventName == 'accessDenied') {\n if (this.stream.accessIsDenied) {\n this.ee.emitEvent('accessDenied');\n } else {\n this.stream.addEventListener('access-denied-by-publisher', () => {\n this.ee.emitEvent('accessDenied');\n });\n }\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Publisher.ts","import { SessionInternal, SessionOptions } from '../OpenViduInternal/SessionInternal';\nimport { Stream } from '../OpenViduInternal/Stream';\nimport { Connection } from \"../OpenViduInternal/Connection\";\n\nimport { OpenVidu } from './OpenVidu';\nimport { Publisher } from './Publisher';\nimport { Subscriber } from './Subscriber';\n\nimport EventEmitter = require('wolfy87-eventemitter');\n\nexport class Session {\n\n sessionId: String;\n //capabilities: Capabilities\n connection: Connection;\n\n private ee = new EventEmitter();\n\n constructor(private session: SessionInternal, private openVidu: OpenVidu) {\n this.sessionId = session.getSessionId();\n\n // Listens to the deactivation of the default behaviour upon the deletion of a Stream object\n this.session.addEventListener('stream-destroyed-default', event => {\n event.stream.removeVideo();\n });\n\n // Listens to the deactivation of the default behaviour upon the disconnection of a Session\n this.session.addEventListener('session-disconnected-default', () => {\n let s: Stream;\n for (s of this.openVidu.openVidu.getRemoteStreams()) {\n s.removeVideo();\n }\n if (this.connection) {\n for (let streamId in this.connection.getStreams()) {\n this.connection.getStreams()[streamId].removeVideo();\n }\n }\n });\n\n // Sets or updates the value of 'connection' property. Triggered by SessionInternal when succesful connection\n this.session.addEventListener('update-connection-object', event => {\n this.connection = event.connection;\n });\n }\n\n connect(token: string, callback: any);\n connect(token: string, metadata: any, callback: any);\n\n connect(param1, param2, param3?) {\n // Early configuration to deactivate automatic subscription to streams\n if (param3) {\n this.session.configure({\n sessionId: this.session.getSessionId(),\n participantId: param1,\n metadata: this.session.stringClientMetadata(param2),\n subscribeToStreams: false\n });\n this.session.connect(param1, param3);\n } else {\n this.session.configure({\n sessionId: this.session.getSessionId(),\n participantId: param1,\n metadata: '',\n subscribeToStreams: false\n });\n this.session.connect(param1, param2);\n }\n }\n\n disconnect() {\n this.openVidu.openVidu.close(false);\n this.session.emitEvent('sessionDisconnected', [{\n preventDefault: () => { this.session.removeEvent('session-disconnected-default'); }\n }]);\n this.session.emitEvent('session-disconnected-default', [{}]);\n }\n\n publish(publisher: Publisher) {\n publisher.session = this;\n publisher.stream.publish();\n }\n\n unpublish(publisher: Publisher) {\n this.session.unpublish(publisher.stream);\n }\n\n on(eventName: string, callback) {\n this.session.addEventListener(eventName, event => {\n callback(event);\n });\n }\n\n once(eventName: string, callback) {\n this.session.addOnceEventListener(eventName, event => {\n callback(event);\n });\n }\n\n off(eventName: string, eventHandler) {\n this.session.removeListener(eventName, eventHandler);\n }\n\n subscribe(stream: Stream, htmlId: string, videoOptions: any): Subscriber;\n subscribe(stream: Stream, htmlId: string): Subscriber;\n\n subscribe(param1, param2, param3?): Subscriber {\n // Subscription\n this.session.subscribe(param1);\n let subscriber = new Subscriber(param1, param2);\n param1.playOnlyVideo(param2, null);\n return subscriber;\n }\n\n unsubscribe(subscriber: Subscriber) {\n this.session.unsuscribe(subscriber.stream);\n subscriber.stream.removeVideo();\n }\n\n\n\n\n /* Shortcut event API */\n\n onStreamCreated(callback) {\n this.session.addEventListener(\"streamCreated\", streamEvent => {\n callback(streamEvent.stream);\n });\n }\n\n onStreamDestroyed(callback) {\n this.session.addEventListener(\"streamDestroyed\", streamEvent => {\n callback(streamEvent.stream);\n });\n }\n\n onParticipantJoined(callback) {\n this.session.addEventListener(\"participant-joined\", participantEvent => {\n callback(participantEvent.connection);\n });\n }\n\n onParticipantLeft(callback) {\n this.session.addEventListener(\"participant-left\", participantEvent => {\n callback(participantEvent.connection);\n });\n }\n\n onParticipantPublished(callback) {\n this.session.addEventListener(\"participant-published\", participantEvent => {\n callback(participantEvent.connection);\n });\n }\n\n onParticipantEvicted(callback) {\n this.session.addEventListener(\"participant-evicted\", participantEvent => {\n callback(participantEvent.connection);\n });\n }\n\n onRoomClosed(callback) {\n this.session.addEventListener(\"room-closed\", roomEvent => {\n callback(roomEvent.room);\n });\n }\n\n onLostConnection(callback) {\n this.session.addEventListener(\"lost-connection\", roomEvent => {\n callback(roomEvent.room);\n });\n }\n\n onMediaError(callback) {\n this.session.addEventListener(\"error-media\", errorEvent => {\n callback(errorEvent.error)\n });\n }\n\n /* Shortcut event API */\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Session.ts","import { Stream, StreamOptions, VideoOptions } from '../OpenViduInternal/Stream';\n\nimport EventEmitter = require('wolfy87-eventemitter');\n\nexport class Subscriber {\n\n private ee = new EventEmitter();\n\n element: Element;\n id: string;\n stream: Stream;\n\n constructor(stream: Stream, parentId: string) {\n this.stream = stream;\n if (document.getElementById(parentId) != null) {\n this.element = document.getElementById(parentId)!!;\n }\n }\n\n on(eventName: string, callback) {\n this.ee.addListener(eventName, event => {\n callback(event);\n });\n if (eventName == 'videoElementCreated') {\n if (this.stream.isReady) {\n this.ee.emitEvent('videoElementCreated', [{\n element: this.stream.getVideoElement()\n }]);\n } else {\n this.stream.addEventListener('video-element-created-by-stream', element => {\n console.warn(\"Subscriber emitting videoElementCreated\");\n this.id = element.id;\n this.ee.emitEvent('videoElementCreated', [{\n element: element\n }]);\n });\n }\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Subscriber.ts","import { Stream, StreamOptions } from './Stream';\nimport { OpenViduInternal } from './OpenViduInternal';\nimport { SessionInternal } from './SessionInternal';\n\ntype ObjMap = { [s: string]: T; }\n\nexport interface ConnectionOptions {\n id: string;\n metadata: string;\n streams?: StreamOptions[];\n audioOnly: boolean;\n}\n\nexport class Connection {\n\n public connectionId: string;\n public data: string;\n public creationTime: number;\n private streams: ObjMap = {};\n private streamsOpts: StreamOptions[] = [];\n\n constructor( private openVidu: OpenViduInternal, private local: boolean, private room: SessionInternal, private options?: ConnectionOptions ) {\n\n if ( options ) {\n\n this.connectionId = options.id;\n this.data = options.metadata;\n\n if ( options.streams ) {\n\n for ( let streamOptions of options.streams ) {\n\n let streamOpts = {\n id: streamOptions.id,\n connection: this,\n recvVideo: ( streamOptions.recvVideo == undefined ? true : streamOptions.recvVideo ),\n recvAudio: ( streamOptions.recvAudio == undefined ? true : streamOptions.recvAudio ),\n audio: streamOptions.audio,\n video: streamOptions.video,\n data: streamOptions.data,\n mediaConstraints: streamOptions.mediaConstraints,\n audioOnly: streamOptions.audioOnly\n }\n let stream = new Stream( openVidu, false, room, streamOpts );\n\n this.addStream( stream );\n this.streamsOpts.push( streamOpts );\n }\n }\n }\n \n console.log( \"New \" + ( local ? \"local \" : \"remote \" ) + \"participant \" + this.connectionId\n + \", streams opts: \", this.streamsOpts );\n }\n\n addStream( stream: Stream ) {\n this.streams[stream.getIdInParticipant()] = stream;\n this.room.getStreams()[stream.getIdInParticipant()] = stream;\n }\n\n getStreams() {\n return this.streams;\n }\n\n dispose() {\n for ( let key in this.streams ) {\n this.streams[key].dispose();\n }\n }\n\n sendIceCandidate( candidate ) {\n\n console.debug(( this.local ? \"Local\" : \"Remote\" ), \"candidate for\",\n this.connectionId, JSON.stringify( candidate ) );\n\n this.openVidu.sendRequest( \"onIceCandidate\", {\n endpointName: this.connectionId,\n candidate: candidate.candidate,\n sdpMid: candidate.sdpMid,\n sdpMLineIndex: candidate.sdpMLineIndex\n }, function( error, response ) {\n if ( error ) {\n console.error( \"Error sending ICE candidate: \"\n + JSON.stringify( error ) );\n }\n });\n }\n}\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Connection.ts","function webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 562;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src async\n// module id = 562\n// module chunks = 1","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthenticationService } from './services/authentication.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n\n constructor(private router: Router, private authenticationService: AuthenticationService) { }\n\n isVideoSessionUrl() {\n return (this.router.url.substring(0, '/lesson/'.length) === '/lesson/');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HttpModule } from '@angular/http';\n\nimport { routing } from './app.routing';\n\nimport { MaterialModule } from '@angular/material';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport 'hammerjs';\n\nimport { AppComponent } from './app.component';\nimport { PresentationComponent } from './components/presentation/presentation.component';\nimport { DashboardComponent } from './components/dashboard/dahsboard.component';\nimport { LessonDetailsComponent } from './components/lesson-details/lesson-details.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { VideoSessionComponent } from './components/video-session/video-session.component';\nimport { ErrorMessageComponent } from './components/error-message/error-message.component';\nimport { JoinSessionDialogComponent } from './components/dashboard/join-session-dialog.component';\n\nimport { AuthenticationService } from './services/authentication.service';\nimport { UserService } from './services/user.service';\nimport { LessonService } from './services/lesson.service';\nimport { VideoSessionService } from './services/video-session.service';\nimport { AuthGuard } from './auth.guard';\n\n\n@NgModule({\n declarations: [\n AppComponent,\n PresentationComponent,\n DashboardComponent,\n LessonDetailsComponent,\n ProfileComponent,\n VideoSessionComponent,\n ErrorMessageComponent,\n JoinSessionDialogComponent,\n ],\n imports: [\n BrowserModule,\n FormsModule,\n HttpModule,\n MaterialModule,\n FlexLayoutModule.forRoot(),\n routing,\n ],\n providers: [\n AuthenticationService,\n UserService,\n LessonService,\n VideoSessionService,\n AuthGuard,\n ],\n entryComponents: [\n JoinSessionDialogComponent,\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { ModuleWithProviders } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { PresentationComponent } from './components/presentation/presentation.component';\nimport { DashboardComponent } from './components/dashboard/dahsboard.component';\nimport { LessonDetailsComponent } from './components/lesson-details/lesson-details.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { VideoSessionComponent } from './components/video-session/video-session.component';\n\nimport { AuthGuard } from './auth.guard';\n\nconst appRoutes: Routes = [\n {\n path: '',\n component: PresentationComponent,\n pathMatch: 'full',\n },\n {\n path: 'lessons',\n component: DashboardComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'lesson-details/:id',\n component: LessonDetailsComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'profile',\n component: ProfileComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'lesson/:id',\n component: VideoSessionComponent,\n canActivate: [AuthGuard]\n },\n];\n\nexport const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, {useHash: true});\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.routing.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-error-message',\n templateUrl: './error-message.component.html',\n styleUrls: ['./error-message.component.css']\n})\nexport class ErrorMessageComponent {\n\n @Input()\n errorTitle: string;\n @Input()\n errorContent: string;\n @Input()\n customClass: string;\n @Input()\n closable: boolean;\n @Input()\n timeable: number;\n\n @Output()\n eventShowable = new EventEmitter();\n\n constructor() { }\n\n public closeAlert() {\n this.eventShowable.emit(false);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/error-message/error-message.component.ts","import { Lesson } from './lesson';\n\nexport class User {\n\n public id?: number;\n public name: string;\n public nickName: string;\n public roles: string[];\n public lessons: Lesson[];\n\n constructor(u: User) {\n this.id = u.id;\n this.name = u.name;\n this.nickName = u.nickName;\n this.roles = u.roles;\n this.lessons = [];\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/user.ts","export const environment = { \n production: false,\n envName: 'container',\n URL_BACK: window.location.origin\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"md-sidenav {\\n width: 250px;\\n}\\n\\nmd-sidenav-container {\\n height: 100%;\\n}\\n\\nfooter.page-footer {\\n margin: 0;\\n}\\n\\nfooter h2 {\\n margin-top: 10px;\\n}\\n\\n.sidenav-button {\\n width: 100%;\\n}\\n\\nheader .fill-remaining-space {\\n -webkit-box-flex: 1;\\n -ms-flex: 1 1 auto;\\n flex: 1 1 auto;\\n}\\n\\nheader #navbar-logo {\\n font-weight: bold;\\n}\\n\\nfooter ul {\\n padding-left: 0;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.css\n// module id = 795\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"md-card {\\n margin-top: 20px;\\n}\\n\\nmd-card md-icon {\\n text-align: center;\\n}\\n\\nspan.teacher {\\n font-size: 12px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/dashboard/dashboard.component.css\n// module id = 796\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".fail {\\n background-color: rgba(167, 56, 65, 0.2);\\n color: #a73841;\\n}\\n\\n.warning {\\n background-color: rgba(175, 110, 0, 0.2);\\n color: #af6e00;\\n}\\n\\n.correct {\\n background-color: rgba(55, 86, 70, 0.25);\\n color: #375546;\\n}\\n\\nmd-icon {\\n cursor: pointer;\\n float: right;\\n}\\n\\nmd-card {\\n max-width: 400px;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n box-shadow: none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/error-message/error-message.component.css\n// module id = 797\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".attender-email {\\n font-size: 11px;\\n}\\n\\n.no-margin-bottom {\\n margin-bottom: 0 !important;\\n}\\n\\n.attender-row {\\n width: 100%;\\n margin-top: 20px;\\n min-height: 27px;\\n}\\n\\n#new-attender-title {\\n margin-bottom: 5px;\\n}\\n\\n\\n/*Rotating animation*/\\n\\n@-webkit-keyframes rotating\\n/* Safari and Chrome */\\n\\n{\\n from {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n to {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n\\n@keyframes rotating {\\n from {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n to {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n\\n.rotating {\\n -webkit-animation: rotating 1s linear infinite;\\n animation: rotating 1s linear infinite;\\n cursor: default !important;\\n}\\n\\n.rotating:hover {\\n color: inherit !important;\\n}\\n\\n\\n/*End rotating animation*/\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/lesson-details/lesson-details.component.css\n// module id = 798\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"h1 {\\n text-align: center;\\n display: block;\\n}\\n\\nmd-input-container {\\n width: 100%;\\n}\\n\\nmd-card-actions {\\n padding-left: 10px;\\n padding-right: 10px;\\n color: #9e9e9e;\\n}\\n\\n.btn-container {\\n text-align: center;\\n padding-top: 20px;\\n}\\n\\n.card-button {\\n margin-left: 10px !important;\\n}\\n\\n.radio-button-div {\\n text-align: center;\\n margin-bottom: 10px;\\n}\\n\\n#sign-up-as {\\n color: #9e9e9e;\\n display: block;\\n margin-top: 15px;\\n margin-bottom: 10px;\\n}\\n\\ntable {\\n margin: 0 auto;\\n margin-top: 20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/presentation/presentation.component.css\n// module id = 799\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"table {\\n margin-top: 15px;\\n border-collapse: separate;\\n border-spacing: 15px 17px;\\n}\\n\\nth {\\n text-align: left;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/profile/profile.component.css\n// module id = 800\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"h1 {\\n text-align: center;\\n margin: 0;\\n color: white;\\n}\\n\\n#header-div {\\n position: absolute;\\n z-index: 1000;\\n width: 100%;\\n background: rgba(0, 0, 0, 0.4);\\n}\\n\\nmd-icon {\\n font-size: 38px;\\n width: 38px;\\n height: 38px;\\n color: white;\\n transition: color .2s linear;\\n}\\n\\nmd-icon:hover {\\n color: #ffd740;\\n}\\n\\n#back-btn {\\n float: left;\\n}\\n\\n.right-btn {\\n float: right;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/video-session/video-session.component.css\n// module id = 801\n// module chunks = 1","module.exports = \"\\n\\n \\n Lessons \\n Profile \\n Logout \\n \\n\\n \\n\\n \\n \\n \\n\\n \\n\\n \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.html\n// module id = 821\n// module chunks = 1","module.exports = \"\\n\\n\\n
\\n\\n
\\n
MY LESSONS
\\n
add_circle_outline \\n
\\n\\n
\\n\\n
\\n \\n {{lesson.title}} \\n {{lesson.teacher.nickName}} \\n mode_edit \\n play_circle_filled \\n
\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/dashboard/dashboard.component.html\n// module id = 822\n// module chunks = 1","module.exports = \"\\n clear \\n {{this.errorTitle}} \\n \\n \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/error-message/error-message.component.html\n// module id = 823\n// module chunks = 1","module.exports = \"\\n
\\n\\n
\\n keyboard_arrow_left \\n
{{lesson.title}} \\n mode_edit \\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
{{authenticationService.getCurrentUser().nickName}}
\\n
{{authenticationService.getCurrentUser().name}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{attender.nickName}}
\\n
{{attender.name}}
\\n
\\n
\\n
\\n clear \\n cached \\n
\\n
\\n
\\n \\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/lesson-details/lesson-details.component.html\n// module id = 824\n// module chunks = 1","module.exports = \"\\n
\\n\\n
OpenVidu Classroom Demo \\n\\n
\\n\\n
\\n \\n\\n \\n\\n \\n\\n \\n
\\n \\n Email \\n Password \\n \\n \\n teacher@gmail.com \\n pass \\n \\n \\n student1@gmail.com \\n pass \\n \\n \\n student2@gmail.com \\n pass \\n \\n
\\n
\\n\\n \\n\\n \\n Not registered yet?Sign up
\\n Already registered?Log in
\\n \\n\\n \\n\\n
\\n\\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/presentation/presentation.component.html\n// module id = 825\n// module chunks = 1","module.exports = \"\\n
\\n\\n
MY PROFILE
\\n
\\n \\n Name \\n {{authenticationService.getCurrentUser().nickName}} \\n \\n \\n Email \\n {{authenticationService.getCurrentUser().name}} \\n \\n
\\n \\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/profile/profile.component.html\n// module id = 826\n// module chunks = 1","module.exports = \"\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/video-session/video-session.component.html\n// module id = 827\n// module chunks = 1"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/Mapper.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/jsonrpcclient.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/transports/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/JsonRPC.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/XmlRPC.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-utils-js/WebRtcPeer.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-utils-js/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/OpenVidu.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/index.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/OpenViduInternal.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/SessionInternal.ts","webpack:///./src/app/services/lesson.service.ts","webpack:///./src/app/services/video-session.service.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Stream.ts","webpack:///./src/app/services/authentication.service.ts","webpack:///./src/app/auth.guard.ts","webpack:///./src/app/components/dashboard/dahsboard.component.ts","webpack:///./src/app/components/dashboard/join-session-dialog.component.ts","webpack:///./src/app/components/lesson-details/lesson-details.component.ts","webpack:///./src/app/components/presentation/presentation.component.ts","webpack:///./src/app/components/profile/profile.component.ts","webpack:///./src/app/components/video-session/video-session.component.ts","webpack:///./src/app/models/lesson.ts","webpack:///./src/app/services/user.service.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/transports/webSocketWithReconnection.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Publisher.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Session.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Subscriber.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Connection.ts","webpack:///./src async","webpack:///./src/main.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.routing.ts","webpack:///./src/app/components/error-message/error-message.component.ts","webpack:///./src/app/models/user.ts","webpack:///./src/environments/environment.ts","webpack:///./src/app/app.component.css","webpack:///./src/app/components/dashboard/dashboard.component.css","webpack:///./src/app/components/error-message/error-message.component.css","webpack:///./src/app/components/lesson-details/lesson-details.component.css","webpack:///./src/app/components/presentation/presentation.component.css","webpack:///./src/app/components/profile/profile.component.css","webpack:///./src/app/components/video-session/video-session.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/components/dashboard/dashboard.component.html","webpack:///./src/app/components/error-message/error-message.component.html","webpack:///./src/app/components/lesson-details/lesson-details.component.html","webpack:///./src/app/components/presentation/presentation.component.html","webpack:///./src/app/components/profile/profile.component.html","webpack:///./src/app/components/video-session/video-session.component.html"],"names":[],"mappings":"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","file":"main.bundle.js","sourcesContent":["function Mapper()\n{\n var sources = {};\n\n\n this.forEach = function(callback)\n {\n for(var key in sources)\n {\n var source = sources[key];\n\n for(var key2 in source)\n callback(source[key2]);\n };\n };\n\n this.get = function(id, source)\n {\n var ids = sources[source];\n if(ids == undefined)\n return undefined;\n\n return ids[id];\n };\n\n this.remove = function(id, source)\n {\n var ids = sources[source];\n if(ids == undefined)\n return;\n\n delete ids[id];\n\n // Check it's empty\n for(var i in ids){return false}\n\n delete sources[source];\n };\n\n this.set = function(value, id, source)\n {\n if(value == undefined)\n return this.remove(id, source);\n\n var ids = sources[source];\n if(ids == undefined)\n sources[source] = ids = {};\n\n ids[id] = value;\n };\n};\n\n\nMapper.prototype.pop = function(id, source)\n{\n var value = this.get(id, source);\n if(value == undefined)\n return undefined;\n\n this.remove(id, source);\n\n return value;\n};\n\n\nmodule.exports = Mapper;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/Mapper.js","/*\n * (C) Copyright 2014 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nvar JsonRpcClient = require('./jsonrpcclient');\n\n\nexports.JsonRpcClient = JsonRpcClient;\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/index.js","/*\n * (C) Copyright 2014 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nvar RpcBuilder = require('../');\nvar WebSocketWithReconnection = require('./transports/webSocketWithReconnection');\n\nDate.now = Date.now || function() {\n return +new Date;\n};\n\nvar PING_INTERVAL = 5000;\n\nvar RECONNECTING = 'RECONNECTING';\nvar CONNECTED = 'CONNECTED';\nvar DISCONNECTED = 'DISCONNECTED';\n\nvar Logger = console;\n\n/**\n *\n * heartbeat: interval in ms for each heartbeat message,\n * sendCloseMessage : true / false, before closing the connection, it sends a closeSession message\n * \n * ws : {\n * \turi : URI to conntect to,\n * useSockJS : true (use SockJS) / false (use WebSocket) by default,\n * \tonconnected : callback method to invoke when connection is successful,\n * \tondisconnect : callback method to invoke when the connection is lost,\n * \tonreconnecting : callback method to invoke when the client is reconnecting,\n * \tonreconnected : callback method to invoke when the client succesfully reconnects,\n * \tonerror : callback method to invoke when there is an error\n * },\n * rpc : {\n * \trequestTimeout : timeout for a request,\n * \tsessionStatusChanged: callback method for changes in session status,\n * \tmediaRenegotiation: mediaRenegotiation\n * }\n * \n */\nfunction JsonRpcClient(configuration) {\n\n var self = this;\n\n var wsConfig = configuration.ws;\n\n var notReconnectIfNumLessThan = -1;\n\n var pingNextNum = 0;\n var enabledPings = true;\n var pingPongStarted = false;\n var pingInterval;\n\n var status = DISCONNECTED;\n\n var onreconnecting = wsConfig.onreconnecting;\n var onreconnected = wsConfig.onreconnected;\n var onconnected = wsConfig.onconnected;\n var onerror = wsConfig.onerror;\n\n configuration.rpc.pull = function(params, request) {\n request.reply(null, \"push\");\n }\n\n wsConfig.onreconnecting = function() {\n Logger.debug(\"--------- ONRECONNECTING -----------\");\n if (status === RECONNECTING) {\n Logger.error(\"Websocket already in RECONNECTING state when receiving a new ONRECONNECTING message. Ignoring it\");\n return;\n }\n\n status = RECONNECTING;\n if (onreconnecting) {\n onreconnecting();\n }\n }\n\n wsConfig.onreconnected = function() {\n Logger.debug(\"--------- ONRECONNECTED -----------\");\n if (status === CONNECTED) {\n Logger.error(\"Websocket already in CONNECTED state when receiving a new ONRECONNECTED message. Ignoring it\");\n return;\n }\n status = CONNECTED;\n\n enabledPings = true;\n updateNotReconnectIfLessThan();\n usePing();\n\n if (onreconnected) {\n onreconnected();\n }\n }\n\n wsConfig.onconnected = function() {\n Logger.debug(\"--------- ONCONNECTED -----------\");\n if (status === CONNECTED) {\n Logger.error(\"Websocket already in CONNECTED state when receiving a new ONCONNECTED message. Ignoring it\");\n return;\n }\n status = CONNECTED;\n\n enabledPings = true;\n usePing();\n\n if (onconnected) {\n onconnected();\n }\n }\n\n wsConfig.onerror = function(error) {\n Logger.debug(\"--------- ONERROR -----------\");\n\n status = DISCONNECTED;\n\n if (onerror) {\n onerror(error);\n }\n }\n\n var ws = new WebSocketWithReconnection(wsConfig);\n\n Logger.debug('Connecting websocket to URI: ' + wsConfig.uri);\n\n var rpcBuilderOptions = {\n request_timeout: configuration.rpc.requestTimeout,\n ping_request_timeout: configuration.rpc.heartbeatRequestTimeout\n };\n\n var rpc = new RpcBuilder(RpcBuilder.packers.JsonRPC, rpcBuilderOptions, ws,\n function(request) {\n\n Logger.debug('Received request: ' + JSON.stringify(request));\n\n try {\n var func = configuration.rpc[request.method];\n\n if (func === undefined) {\n Logger.error(\"Method \" + request.method + \" not registered in client\");\n } else {\n func(request.params, request);\n }\n } catch (err) {\n Logger.error('Exception processing request: ' + JSON.stringify(request));\n Logger.error(err);\n }\n });\n\n this.send = function(method, params, callback) {\n if (method !== 'ping') {\n Logger.debug('Request: method:' + method + \" params:\" + JSON.stringify(params));\n }\n\n var requestTime = Date.now();\n\n rpc.encode(method, params, function(error, result) {\n if (error) {\n try {\n Logger.error(\"ERROR:\" + error.message + \" in Request: method:\" +\n method + \" params:\" + JSON.stringify(params) + \" request:\" +\n error.request);\n if (error.data) {\n Logger.error(\"ERROR DATA:\" + JSON.stringify(error.data));\n }\n } catch (e) {}\n error.requestTime = requestTime;\n }\n if (callback) {\n if (result != undefined && result.value !== 'pong') {\n Logger.debug('Response: ' + JSON.stringify(result));\n }\n callback(error, result);\n }\n });\n }\n\n function updateNotReconnectIfLessThan() {\n Logger.debug(\"notReconnectIfNumLessThan = \" + pingNextNum + ' (old=' +\n notReconnectIfNumLessThan + ')');\n notReconnectIfNumLessThan = pingNextNum;\n }\n\n function sendPing() {\n if (enabledPings) {\n var params = null;\n if (pingNextNum == 0 || pingNextNum == notReconnectIfNumLessThan) {\n params = {\n interval: configuration.heartbeat || PING_INTERVAL\n };\n }\n pingNextNum++;\n\n self.send('ping', params, (function(pingNum) {\n return function(error, result) {\n if (error) {\n Logger.debug(\"Error in ping request #\" + pingNum + \" (\" +\n error.message + \")\");\n if (pingNum > notReconnectIfNumLessThan) {\n enabledPings = false;\n updateNotReconnectIfLessThan();\n Logger.debug(\"Server did not respond to ping message #\" +\n pingNum + \". Reconnecting... \");\n ws.reconnectWs();\n }\n }\n }\n })(pingNextNum));\n } else {\n Logger.debug(\"Trying to send ping, but ping is not enabled\");\n }\n }\n\n /*\n * If configuration.hearbeat has any value, the ping-pong will work with the interval\n * of configuration.hearbeat\n */\n function usePing() {\n if (!pingPongStarted) {\n Logger.debug(\"Starting ping (if configured)\")\n pingPongStarted = true;\n\n if (configuration.heartbeat != undefined) {\n pingInterval = setInterval(sendPing, configuration.heartbeat);\n sendPing();\n }\n }\n }\n\n this.close = function() {\n Logger.debug(\"Closing jsonRpcClient explicitly by client\");\n\n if (pingInterval != undefined) {\n Logger.debug(\"Clearing ping interval\");\n clearInterval(pingInterval);\n }\n pingPongStarted = false;\n enabledPings = false;\n\n if (configuration.sendCloseMessage) {\n Logger.debug(\"Sending close message\")\n this.send('closeSession', null, function(error, result) {\n if (error) {\n Logger.error(\"Error sending close message: \" + JSON.stringify(error));\n }\n ws.close();\n });\n } else {\n\t\t\tws.close();\n }\n }\n\n // This method is only for testing\n this.forceClose = function(millis) {\n ws.forceClose(millis);\n }\n\n this.reconnect = function() {\n ws.reconnectWs();\n }\n}\n\n\nmodule.exports = JsonRpcClient;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/jsonrpcclient.js","/*\n * (C) Copyright 2014 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nvar WebSocketWithReconnection = require('./webSocketWithReconnection');\n\n\nexports.WebSocketWithReconnection = WebSocketWithReconnection;\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/transports/index.js","/**\n * JsonRPC 2.0 packer\n */\n\n/**\n * Pack a JsonRPC 2.0 message\n *\n * @param {Object} message - object to be packaged. It requires to have all the\n * fields needed by the JsonRPC 2.0 message that it's going to be generated\n *\n * @return {String} - the stringified JsonRPC 2.0 message\n */\nfunction pack(message, id)\n{\n var result =\n {\n jsonrpc: \"2.0\"\n };\n\n // Request\n if(message.method)\n {\n result.method = message.method;\n\n if(message.params)\n result.params = message.params;\n\n // Request is a notification\n if(id != undefined)\n result.id = id;\n }\n\n // Response\n else if(id != undefined)\n {\n if(message.error)\n {\n if(message.result !== undefined)\n throw new TypeError(\"Both result and error are defined\");\n\n result.error = message.error;\n }\n else if(message.result !== undefined)\n result.result = message.result;\n else\n throw new TypeError(\"No result or error is defined\");\n\n result.id = id;\n };\n\n return JSON.stringify(result);\n};\n\n/**\n * Unpack a JsonRPC 2.0 message\n *\n * @param {String} message - string with the content of the JsonRPC 2.0 message\n *\n * @throws {TypeError} - Invalid JsonRPC version\n *\n * @return {Object} - object filled with the JsonRPC 2.0 message content\n */\nfunction unpack(message)\n{\n var result = message;\n\n if(typeof message === 'string' || message instanceof String) {\n result = JSON.parse(message);\n }\n\n // Check if it's a valid message\n\n var version = result.jsonrpc;\n if(version !== '2.0')\n throw new TypeError(\"Invalid JsonRPC version '\" + version + \"': \" + message);\n\n // Response\n if(result.method == undefined)\n {\n if(result.id == undefined)\n throw new TypeError(\"Invalid message: \"+message);\n\n var result_defined = result.result !== undefined;\n var error_defined = result.error !== undefined;\n\n // Check only result or error is defined, not both or none\n if(result_defined && error_defined)\n throw new TypeError(\"Both result and error are defined: \"+message);\n\n if(!result_defined && !error_defined)\n throw new TypeError(\"No result or error is defined: \"+message);\n\n result.ack = result.id;\n delete result.id;\n }\n\n // Return unpacked message\n return result;\n};\n\n\nexports.pack = pack;\nexports.unpack = unpack;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/JsonRPC.js","function pack(message)\n{\n throw new TypeError(\"Not yet implemented\");\n};\n\nfunction unpack(message)\n{\n throw new TypeError(\"Not yet implemented\");\n};\n\n\nexports.pack = pack;\nexports.unpack = unpack;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/XmlRPC.js","var JsonRPC = require('./JsonRPC');\nvar XmlRPC = require('./XmlRPC');\n\n\nexports.JsonRPC = JsonRPC;\nexports.XmlRPC = XmlRPC;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/index.js","/*\n * (C) Copyright 2014-2015 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar freeice = require('freeice')\nvar inherits = require('inherits')\nvar UAParser = require('ua-parser-js')\nvar uuid = require('uuid')\nvar hark = require('hark')\n\nvar EventEmitter = require('events').EventEmitter\nvar recursive = require('merge').recursive.bind(undefined, true)\nvar sdpTranslator = require('sdp-translator')\nvar logger = window.Logger || console\n\n// var gUM = navigator.mediaDevices.getUserMedia || function (constraints) {\n// return new Promise(navigator.getUserMedia(constraints, function (stream) {\n// videoStream = stream\n// start()\n// }).eror(callback));\n// }\n\ntry {\n require('kurento-browser-extensions')\n} catch (error) {\n if (typeof getScreenConstraints === 'undefined') {\n logger.warn('screen sharing is not available')\n\n getScreenConstraints = function getScreenConstraints(sendSource, callback) {\n callback(new Error(\"This library is not enabled for screen sharing\"))\n }\n }\n}\n\nvar MEDIA_CONSTRAINTS = {\n audio: true,\n video: {\n width: 640,\n framerate: 15\n }\n}\n\n// Somehow, the UAParser constructor gets an empty window object.\n// We need to pass the user agent string in order to get information\nvar ua = (window && window.navigator) ? window.navigator.userAgent : ''\nvar parser = new UAParser(ua)\nvar browser = parser.getBrowser()\n\nvar usePlanB = false\nif (browser.name === 'Chrome' || browser.name === 'Chromium') {\n logger.debug(browser.name + \": using SDP PlanB\")\n usePlanB = true\n}\n\nfunction noop(error) {\n if (error) logger.error(error)\n}\n\nfunction trackStop(track) {\n track.stop && track.stop()\n}\n\nfunction streamStop(stream) {\n stream.getTracks().forEach(trackStop)\n}\n\n/**\n * Returns a string representation of a SessionDescription object.\n */\nvar dumpSDP = function (description) {\n if (typeof description === 'undefined' || description === null) {\n return ''\n }\n\n return 'type: ' + description.type + '\\r\\n' + description.sdp\n}\n\nfunction bufferizeCandidates(pc, onerror) {\n var candidatesQueue = []\n\n pc.addEventListener('signalingstatechange', function () {\n if (this.signalingState === 'stable') {\n while (candidatesQueue.length) {\n var entry = candidatesQueue.shift()\n\n this.addIceCandidate(entry.candidate, entry.callback, entry.callback)\n }\n }\n })\n\n return function (candidate, callback) {\n callback = callback || onerror\n\n switch (pc.signalingState) {\n case 'closed':\n callback(new Error('PeerConnection object is closed'))\n break\n case 'stable':\n if (pc.remoteDescription) {\n pc.addIceCandidate(candidate, callback, callback)\n break\n }\n default:\n candidatesQueue.push({\n candidate: candidate,\n callback: callback\n })\n }\n }\n}\n\n/* Simulcast utilities */\n\nfunction removeFIDFromOffer(sdp) {\n var n = sdp.indexOf(\"a=ssrc-group:FID\");\n\n if (n > 0) {\n return sdp.slice(0, n);\n } else {\n return sdp;\n }\n}\n\nfunction getSimulcastInfo(videoStream) {\n var videoTracks = videoStream.getVideoTracks();\n if (!videoTracks.length) {\n logger.warn('No video tracks available in the video stream')\n return ''\n }\n var lines = [\n 'a=x-google-flag:conference',\n 'a=ssrc-group:SIM 1 2 3',\n 'a=ssrc:1 cname:localVideo',\n 'a=ssrc:1 msid:' + videoStream.id + ' ' + videoTracks[0].id,\n 'a=ssrc:1 mslabel:' + videoStream.id,\n 'a=ssrc:1 label:' + videoTracks[0].id,\n 'a=ssrc:2 cname:localVideo',\n 'a=ssrc:2 msid:' + videoStream.id + ' ' + videoTracks[0].id,\n 'a=ssrc:2 mslabel:' + videoStream.id,\n 'a=ssrc:2 label:' + videoTracks[0].id,\n 'a=ssrc:3 cname:localVideo',\n 'a=ssrc:3 msid:' + videoStream.id + ' ' + videoTracks[0].id,\n 'a=ssrc:3 mslabel:' + videoStream.id,\n 'a=ssrc:3 label:' + videoTracks[0].id\n ];\n\n lines.push('');\n\n return lines.join('\\n');\n}\n\n/**\n * Wrapper object of an RTCPeerConnection. This object is aimed to simplify the\n * development of WebRTC-based applications.\n *\n * @constructor module:kurentoUtils.WebRtcPeer\n *\n * @param {String} mode Mode in which the PeerConnection will be configured.\n * Valid values are: 'recv', 'send', and 'sendRecv'\n * @param localVideo Video tag for the local stream\n * @param remoteVideo Video tag for the remote stream\n * @param {MediaStream} videoStream Stream to be used as primary source\n * (typically video and audio, or only video if combined with audioStream) for\n * localVideo and to be added as stream to the RTCPeerConnection\n * @param {MediaStream} audioStream Stream to be used as second source\n * (typically for audio) for localVideo and to be added as stream to the\n * RTCPeerConnection\n */\nfunction WebRtcPeer(mode, options, callback) {\n if (!(this instanceof WebRtcPeer)) {\n return new WebRtcPeer(mode, options, callback)\n }\n\n WebRtcPeer.super_.call(this)\n\n if (options instanceof Function) {\n callback = options\n options = undefined\n }\n\n options = options || {}\n callback = (callback || noop).bind(this)\n\n var self = this\n var localVideo = options.localVideo\n var remoteVideo = options.remoteVideo\n var videoStream = options.videoStream\n var audioStream = options.audioStream\n var mediaConstraints = options.mediaConstraints\n\n var connectionConstraints = options.connectionConstraints\n var pc = options.peerConnection\n var sendSource = options.sendSource || 'webcam'\n\n var dataChannelConfig = options.dataChannelConfig\n var useDataChannels = options.dataChannels || false\n var dataChannel\n\n var guid = uuid.v4()\n var configuration = recursive({\n iceServers: freeice()\n },\n options.configuration)\n\n var onicecandidate = options.onicecandidate\n if (onicecandidate) this.on('icecandidate', onicecandidate)\n\n var oncandidategatheringdone = options.oncandidategatheringdone\n if (oncandidategatheringdone) {\n this.on('candidategatheringdone', oncandidategatheringdone)\n }\n\n var simulcast = options.simulcast\n var multistream = options.multistream\n var interop = new sdpTranslator.Interop()\n var candidatesQueueOut = []\n var candidategatheringdone = false\n\n Object.defineProperties(this, {\n 'peerConnection': {\n get: function () {\n return pc\n }\n },\n\n 'id': {\n value: options.id || guid,\n writable: false\n },\n\n 'remoteVideo': {\n get: function () {\n return remoteVideo\n }\n },\n\n 'localVideo': {\n get: function () {\n return localVideo\n }\n },\n\n 'dataChannel': {\n get: function () {\n return dataChannel\n }\n },\n\n /**\n * @member {(external:ImageData|undefined)} currentFrame\n */\n 'currentFrame': {\n get: function () {\n // [ToDo] Find solution when we have a remote stream but we didn't set\n // a remoteVideo tag\n if (!remoteVideo) return;\n\n if (remoteVideo.readyState < remoteVideo.HAVE_CURRENT_DATA)\n throw new Error('No video stream data available')\n\n var canvas = document.createElement('canvas')\n canvas.width = remoteVideo.videoWidth\n canvas.height = remoteVideo.videoHeight\n\n canvas.getContext('2d').drawImage(remoteVideo, 0, 0)\n\n return canvas\n }\n }\n })\n\n // Init PeerConnection\n if (!pc) {\n pc = new RTCPeerConnection(configuration);\n if (useDataChannels && !dataChannel) {\n var dcId = 'WebRtcPeer-' + self.id\n var dcOptions = undefined\n if (dataChannelConfig) {\n dcId = dataChannelConfig.id || dcId\n dcOptions = dataChannelConfig.options\n }\n dataChannel = pc.createDataChannel(dcId, dcOptions);\n if (dataChannelConfig) {\n dataChannel.onopen = dataChannelConfig.onopen;\n dataChannel.onclose = dataChannelConfig.onclose;\n dataChannel.onmessage = dataChannelConfig.onmessage;\n dataChannel.onbufferedamountlow = dataChannelConfig.onbufferedamountlow;\n dataChannel.onerror = dataChannelConfig.onerror || noop;\n }\n }\n }\n\n pc.addEventListener('icecandidate', function (event) {\n var candidate = event.candidate\n\n if (EventEmitter.listenerCount(self, 'icecandidate') ||\n EventEmitter.listenerCount(\n self, 'candidategatheringdone')) {\n if (candidate) {\n var cand\n\n if (multistream && usePlanB) {\n cand = interop.candidateToUnifiedPlan(candidate)\n } else {\n cand = candidate\n }\n\n self.emit('icecandidate', cand)\n candidategatheringdone = false\n } else if (!candidategatheringdone) {\n self.emit('candidategatheringdone')\n candidategatheringdone = true\n }\n } else if (!candidategatheringdone) {\n // Not listening to 'icecandidate' or 'candidategatheringdone' events, queue\n // the candidate until one of them is listened\n candidatesQueueOut.push(candidate)\n\n if (!candidate) candidategatheringdone = true\n }\n })\n\n pc.ontrack = options.onaddstream\n pc.onnegotiationneeded = options.onnegotiationneeded\n this.on('newListener', function (event, listener) {\n if (event === 'icecandidate' || event === 'candidategatheringdone') {\n while (candidatesQueueOut.length) {\n var candidate = candidatesQueueOut.shift()\n\n if (!candidate === (event === 'candidategatheringdone')) {\n listener(candidate)\n }\n }\n }\n })\n\n var addIceCandidate = bufferizeCandidates(pc)\n\n /**\n * Callback function invoked when an ICE candidate is received. Developers are\n * expected to invoke this function in order to complete the SDP negotiation.\n *\n * @function module:kurentoUtils.WebRtcPeer.prototype.addIceCandidate\n *\n * @param iceCandidate - Literal object with the ICE candidate description\n * @param callback - Called when the ICE candidate has been added.\n */\n this.addIceCandidate = function (iceCandidate, callback) {\n var candidate\n\n if (multistream && usePlanB) {\n candidate = interop.candidateToPlanB(iceCandidate)\n } else {\n candidate = new RTCIceCandidate(iceCandidate)\n }\n\n logger.debug('Remote ICE candidate received', iceCandidate)\n callback = (callback || noop).bind(this)\n addIceCandidate(candidate, callback)\n }\n\n this.generateOffer = function (callback) {\n callback = callback.bind(this)\n\n var offerAudio = true\n var offerVideo = true\n // Constraints must have both blocks\n if (mediaConstraints) {\n offerAudio = (typeof mediaConstraints.audio === 'boolean') ?\n mediaConstraints.audio : true\n offerVideo = (typeof mediaConstraints.video === 'boolean') ?\n mediaConstraints.video : true\n }\n\n var browserDependantConstraints = {\n offerToReceiveAudio: (mode !== 'sendonly' && offerAudio),\n offerToReceiveVideo: (mode !== 'sendonly' && offerVideo)\n }\n\n //FIXME: clarify possible constraints passed to createOffer()\n /*var constraints = recursive(browserDependantConstraints,\n connectionConstraints)*/\n\n var constraints = browserDependantConstraints;\n\n logger.debug('constraints: ' + JSON.stringify(constraints))\n\n pc.createOffer(constraints).then(function (offer) {\n logger.debug('Created SDP offer')\n offer = mangleSdpToAddSimulcast(offer)\n return pc.setLocalDescription(offer)\n }).then(function () {\n var localDescription = pc.localDescription\n logger.debug('Local description set', localDescription.sdp)\n if (multistream && usePlanB) {\n localDescription = interop.toUnifiedPlan(localDescription)\n logger.debug('offer::origPlanB->UnifiedPlan', dumpSDP(\n localDescription))\n }\n callback(null, localDescription.sdp, self.processAnswer.bind(\n self))\n }).catch(callback)\n }\n\n this.getLocalSessionDescriptor = function () {\n return pc.localDescription\n }\n\n this.getRemoteSessionDescriptor = function () {\n return pc.remoteDescription\n }\n\n function setRemoteVideo() {\n if (remoteVideo) {\n var stream = pc.getRemoteStreams()[0]\n var url = stream ? URL.createObjectURL(stream) : ''\n\n remoteVideo.pause()\n remoteVideo.src = url\n remoteVideo.load()\n\n logger.debug('Remote URL:', url)\n }\n }\n\n this.showLocalVideo = function () {\n localVideo.src = URL.createObjectURL(videoStream)\n localVideo.muted = true\n }\n\n this.send = function (data) {\n if (dataChannel && dataChannel.readyState === 'open') {\n dataChannel.send(data)\n } else {\n logger.warn(\n 'Trying to send data over a non-existing or closed data channel')\n }\n }\n\n /**\n * Callback function invoked when a SDP answer is received. Developers are\n * expected to invoke this function in order to complete the SDP negotiation.\n *\n * @function module:kurentoUtils.WebRtcPeer.prototype.processAnswer\n *\n * @param sdpAnswer - Description of sdpAnswer\n * @param callback -\n * Invoked after the SDP answer is processed, or there is an error.\n */\n this.processAnswer = function (sdpAnswer, callback) {\n callback = (callback || noop).bind(this)\n\n var answer = new RTCSessionDescription({\n type: 'answer',\n sdp: sdpAnswer\n })\n\n if (multistream && usePlanB) {\n var planBAnswer = interop.toPlanB(answer)\n logger.debug('asnwer::planB', dumpSDP(planBAnswer))\n answer = planBAnswer\n }\n\n logger.debug('SDP answer received, setting remote description')\n\n if (pc.signalingState === 'closed') {\n return callback('PeerConnection is closed')\n }\n\n pc.setRemoteDescription(answer, function () {\n setRemoteVideo()\n\n callback()\n },\n callback)\n }\n\n /**\n * Callback function invoked when a SDP offer is received. Developers are\n * expected to invoke this function in order to complete the SDP negotiation.\n *\n * @function module:kurentoUtils.WebRtcPeer.prototype.processOffer\n *\n * @param sdpOffer - Description of sdpOffer\n * @param callback - Called when the remote description has been set\n * successfully.\n */\n this.processOffer = function (sdpOffer, callback) {\n callback = callback.bind(this)\n\n var offer = new RTCSessionDescription({\n type: 'offer',\n sdp: sdpOffer\n })\n\n if (multistream && usePlanB) {\n var planBOffer = interop.toPlanB(offer)\n logger.debug('offer::planB', dumpSDP(planBOffer))\n offer = planBOffer\n }\n\n logger.debug('SDP offer received, setting remote description')\n\n if (pc.signalingState === 'closed') {\n return callback('PeerConnection is closed')\n }\n\n pc.setRemoteDescription(offer).then(function () {\n return setRemoteVideo()\n }).then(function () {\n return pc.createAnswer()\n }).then(function (answer) {\n answer = mangleSdpToAddSimulcast(answer)\n logger.debug('Created SDP answer')\n return pc.setLocalDescription(answer)\n }).then(function () {\n var localDescription = pc.localDescription\n if (multistream && usePlanB) {\n localDescription = interop.toUnifiedPlan(localDescription)\n logger.debug('answer::origPlanB->UnifiedPlan', dumpSDP(\n localDescription))\n }\n logger.debug('Local description set', localDescription.sdp)\n callback(null, localDescription.sdp)\n }).catch(callback)\n }\n\n function mangleSdpToAddSimulcast(answer) {\n if (simulcast) {\n if (browser.name === 'Chrome' || browser.name === 'Chromium') {\n logger.debug('Adding multicast info')\n answer = new RTCSessionDescription({\n 'type': answer.type,\n 'sdp': removeFIDFromOffer(answer.sdp) + getSimulcastInfo(\n videoStream)\n })\n } else {\n logger.warn('Simulcast is only available in Chrome browser.')\n }\n }\n\n return answer\n }\n\n /**\n * This function creates the RTCPeerConnection object taking into account the\n * properties received in the constructor. It starts the SDP negotiation\n * process: generates the SDP offer and invokes the onsdpoffer callback. This\n * callback is expected to send the SDP offer, in order to obtain an SDP\n * answer from another peer.\n */\n function start() {\n if (pc.signalingState === 'closed') {\n callback(\n 'The peer connection object is in \"closed\" state. This is most likely due to an invocation of the dispose method before accepting in the dialogue'\n )\n }\n\n if (videoStream && localVideo) {\n self.showLocalVideo()\n }\n\n if (videoStream) {\n pc.addStream(videoStream)\n }\n\n if (audioStream) {\n pc.addStream(audioStream)\n }\n\n // [Hack] https://code.google.com/p/chromium/issues/detail?id=443558\n var browser = parser.getBrowser()\n if (mode === 'sendonly' &&\n (browser.name === 'Chrome' || browser.name === 'Chromium') &&\n browser.major === 39) {\n mode = 'sendrecv'\n }\n\n callback()\n }\n\n if (mode !== 'recvonly' && !videoStream && !audioStream) {\n function getMedia(constraints) {\n if (constraints === undefined) {\n constraints = MEDIA_CONSTRAINTS\n }\n\n navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {\n videoStream = stream\n start()\n }).catch(callback);\n }\n if (sendSource === 'webcam') {\n getMedia(mediaConstraints)\n } else {\n getScreenConstraints(sendSource, function (error, constraints_) {\n if (error)\n return callback(error)\n\n constraints = [mediaConstraints]\n constraints.unshift(constraints_)\n getMedia(recursive.apply(undefined, constraints))\n }, guid)\n }\n } else {\n setTimeout(start, 0)\n }\n\n this.on('_dispose', function () {\n if (localVideo) {\n localVideo.pause()\n localVideo.src = ''\n localVideo.load()\n //Unmute local video in case the video tag is later used for remote video\n localVideo.muted = false\n }\n if (remoteVideo) {\n remoteVideo.pause()\n remoteVideo.src = ''\n remoteVideo.load()\n }\n self.removeAllListeners()\n\n if (window.cancelChooseDesktopMedia !== undefined) {\n window.cancelChooseDesktopMedia(guid)\n }\n })\n}\ninherits(WebRtcPeer, EventEmitter)\n\nfunction createEnableDescriptor(type) {\n var method = 'get' + type + 'Tracks'\n\n return {\n enumerable: true,\n get: function () {\n // [ToDo] Should return undefined if not all tracks have the same value?\n\n if (!this.peerConnection) return\n\n var streams = this.peerConnection.getLocalStreams()\n if (!streams.length) return\n\n for (var i = 0, stream; stream = streams[i]; i++) {\n var tracks = stream[method]()\n for (var j = 0, track; track = tracks[j]; j++)\n if (!track.enabled) return false\n }\n\n return true\n },\n set: function (value) {\n function trackSetEnable(track) {\n track.enabled = value\n }\n\n this.peerConnection.getLocalStreams().forEach(function (stream) {\n stream[method]().forEach(trackSetEnable)\n })\n }\n }\n}\n\nObject.defineProperties(WebRtcPeer.prototype, {\n 'enabled': {\n enumerable: true,\n get: function () {\n return this.audioEnabled && this.videoEnabled\n },\n set: function (value) {\n this.audioEnabled = this.videoEnabled = value\n }\n },\n 'audioEnabled': createEnableDescriptor('Audio'),\n 'videoEnabled': createEnableDescriptor('Video')\n})\n\nWebRtcPeer.prototype.getLocalStream = function (index) {\n if (this.peerConnection) {\n return this.peerConnection.getLocalStreams()[index || 0]\n }\n}\n\nWebRtcPeer.prototype.getRemoteStream = function (index) {\n if (this.peerConnection) {\n return this.peerConnection.getRemoteStreams()[index || 0]\n }\n}\n\n/**\n * @description This method frees the resources used by WebRtcPeer.\n *\n * @function module:kurentoUtils.WebRtcPeer.prototype.dispose\n */\nWebRtcPeer.prototype.dispose = function () {\n logger.debug('Disposing WebRtcPeer')\n\n var pc = this.peerConnection\n var dc = this.dataChannel\n try {\n if (dc) {\n if (dc.signalingState === 'closed') return\n\n dc.close()\n }\n\n if (pc) {\n if (pc.signalingState === 'closed') return\n\n pc.getLocalStreams().forEach(streamStop)\n\n // FIXME This is not yet implemented in firefox\n // if(videoStream) pc.removeStream(videoStream);\n // if(audioStream) pc.removeStream(audioStream);\n\n pc.close()\n }\n } catch (err) {\n logger.warn('Exception disposing webrtc peer ' + err)\n }\n\n this.emit('_dispose')\n}\n\n//\n// Specialized child classes\n//\n\nfunction WebRtcPeerRecvonly(options, callback) {\n if (!(this instanceof WebRtcPeerRecvonly)) {\n return new WebRtcPeerRecvonly(options, callback)\n }\n\n WebRtcPeerRecvonly.super_.call(this, 'recvonly', options, callback)\n}\ninherits(WebRtcPeerRecvonly, WebRtcPeer)\n\nfunction WebRtcPeerSendonly(options, callback) {\n if (!(this instanceof WebRtcPeerSendonly)) {\n return new WebRtcPeerSendonly(options, callback)\n }\n\n WebRtcPeerSendonly.super_.call(this, 'sendonly', options, callback)\n}\ninherits(WebRtcPeerSendonly, WebRtcPeer)\n\nfunction WebRtcPeerSendrecv(options, callback) {\n if (!(this instanceof WebRtcPeerSendrecv)) {\n return new WebRtcPeerSendrecv(options, callback)\n }\n\n WebRtcPeerSendrecv.super_.call(this, 'sendrecv', options, callback)\n}\ninherits(WebRtcPeerSendrecv, WebRtcPeer)\n\nfunction harkUtils(stream, options) {\n return hark(stream, options);\n}\n\nexports.bufferizeCandidates = bufferizeCandidates\n\nexports.WebRtcPeerRecvonly = WebRtcPeerRecvonly\nexports.WebRtcPeerSendonly = WebRtcPeerSendonly\nexports.WebRtcPeerSendrecv = WebRtcPeerSendrecv\nexports.hark = harkUtils\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-utils-js/WebRtcPeer.js","/*\n * (C) Copyright 2014 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n/**\n * This module contains a set of reusable components that have been found useful\n * during the development of the WebRTC applications with Kurento.\n * \n * @module kurentoUtils\n * \n * @copyright 2014 Kurento (http://kurento.org/)\n * @license ALv2\n */\n\nvar WebRtcPeer = require('./WebRtcPeer');\n\nexports.WebRtcPeer = WebRtcPeer;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-utils-js/index.js","/*\n * (C) Copyright 2017 OpenVidu (http://openvidu.io/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { OpenViduInternal } from '../OpenViduInternal/OpenViduInternal';\n\nimport { Session } from './Session';\nimport { Publisher } from './Publisher';\n\nimport * as adapter from 'webrtc-adapter';\n\nif (window) {\n window[\"adapter\"] = adapter;\n}\n\nexport class OpenVidu {\n\n openVidu: OpenViduInternal;\n\n constructor() {\n this.openVidu = new OpenViduInternal();\n console.info(\"'OpenVidu' initialized\");\n };\n\n initSession(apiKey: string, sessionId: string): Session;\n initSession(sessionId: string): Session;\n\n initSession(param1, param2?): any {\n if (this.checkSystemRequirements()) {\n if (typeof param2 == \"string\") {\n return new Session(this.openVidu.initSession(param2), this);\n } else {\n return new Session(this.openVidu.initSession(param1), this);\n }\n } else {\n alert(\"Browser not supported\");\n }\n }\n\n initPublisher(parentId: string): Publisher;\n initPublisher(parentId: string, cameraOptions: any): Publisher;\n initPublisher(parentId: string, cameraOptions: any, callback: any): Publisher;\n\n initPublisher(parentId: string, cameraOptions?: any, callback?: Function): any {\n if (this.checkSystemRequirements()) {\n if (cameraOptions != null) {\n let cameraOptionsAux = {\n audio: cameraOptions.audio != null ? cameraOptions.audio : true,\n video: cameraOptions.video != null ? cameraOptions.video : true,\n data: true,\n mediaConstraints: this.openVidu.generateMediaConstraints(cameraOptions.quality)\n };\n cameraOptions = cameraOptionsAux;\n } else {\n cameraOptions = {\n audio: true,\n video: true,\n data: true,\n mediaConstraints: {\n audio: true,\n video: { width: { ideal: 1280 } }\n }\n }\n }\n var publisher = new Publisher(this.openVidu.initPublisherTagged(parentId, cameraOptions, callback), parentId);\n \n console.info(\"'Publisher' initialized\");\n return publisher;\n\n } else {\n alert(\"Browser not supported\");\n }\n }\n\n checkSystemRequirements(): number {\n let browser = adapter.browserDetails.browser;\n let version = adapter.browserDetails.version;\n\n //Bug fix: 'navigator.userAgent' in Firefox for Ubuntu 14.04 does not return \"Firefox/[version]\" in the string, so version returned is null\n if ((browser == 'firefox') && (version == null)) {\n return 1;\n }\n if (((browser == 'chrome') && (version >= 28)) || ((browser == 'edge') && (version >= 12)) || ((browser == 'firefox') && (version >= 22))) {\n return 1;\n } else {\n return 0;\n }\n }\n\n getDevices(callback) {\n navigator.mediaDevices.enumerateDevices().then((deviceInfos) => {\n callback(null, deviceInfos);\n }).catch((error) => {\n console.error(\"Error getting devices\", error);\n callback(error, null);\n });\n }\n\n enableProdMode() {\n console.log = function() {};\n console.debug = function() {};\n console.info = function() {};\n console.warn = function() {};\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/OpenVidu.ts","export * from './OpenVidu';\nexport * from './Session';\nexport * from './Publisher';\nexport * from './Subscriber';\nexport * from '../OpenViduInternal/Stream';\nexport * from '../OpenViduInternal/Connection';\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/index.ts","/*\n * (C) Copyright 2017 OpenVidu (http://openvidu.io/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { SessionInternal, SessionOptions } from './SessionInternal';\nimport { Stream } from './Stream';\nimport * as RpcBuilder from '../KurentoUtils/kurento-jsonrpc';\n\nexport type Callback = (error?: any, openVidu?: T) => void;\n\nexport class OpenViduInternal {\n\n private wsUri;\n private session: SessionInternal;\n private jsonRpcClient: any;\n private rpcParams: any;\n private callback: Callback;\n private camera: Stream;\n private remoteStreams: Stream[] = [];\n\n private secret: string;\n\n constructor() { };\n\n\n /* NEW METHODS */\n initSession(sessionId) {\n console.info(\"'Session' initialized with 'sessionId' [\" + sessionId + \"]\");\n this.session = new SessionInternal(this, sessionId);\n return this.session;\n }\n\n initPublisherTagged(parentId: string, cameraOptions: any, callback?) {\n\n this.getCamera(cameraOptions);\n\n if (callback == null) {\n this.camera.requestCameraAccess((error, camera) => {\n if (error) {\n console.error(\"Error accessing the camera\", error);\n }\n else {\n this.camera.setVideoElement(this.cameraReady(camera!, parentId));\n }\n });\n return this.camera;\n } else {\n this.camera.requestCameraAccess((error, camera) => {\n if (error) {\n callback(error);\n }\n else {\n this.camera.setVideoElement(this.cameraReady(camera!, parentId));\n callback(undefined);\n }\n });\n return this.camera;\n }\n }\n\n cameraReady(camera: Stream, parentId: string) {\n this.camera = camera;\n let videoElement = this.camera.playOnlyVideo(parentId, null);\n this.camera.emitStreamReadyEvent();\n return videoElement;\n }\n\n initPublisher(cameraOptions: any, callback) {\n this.getCamera(cameraOptions);\n this.camera.requestCameraAccess((error, camera) => {\n if (error) callback(error);\n else callback(undefined);\n });\n }\n\n getLocalStream() {\n return this.camera;\n }\n\n getRemoteStreams() {\n return this.remoteStreams;\n }\n /* NEW METHODS */\n\n getWsUri() {\n return this.wsUri;\n }\n\n setWsUri(wsUri: string) {\n this.wsUri = wsUri;\n }\n\n getSecret() {\n return this.secret;\n }\n\n setSecret(secret: string) {\n this.secret = secret;\n }\n\n getOpenViduServerURL() {\n return 'https://' + this.wsUri.split(\"wss://\")[1].split(\"/room\")[0];\n }\n\n getRoom() {\n return this.session;\n }\n\n connect(callback: Callback): void {\n\n this.callback = callback;\n\n this.initJsonRpcClient(this.wsUri);\n }\n\n private initJsonRpcClient(wsUri: string): void {\n\n let config = {\n heartbeat: 3000,\n sendCloseMessage: false,\n ws: {\n uri: wsUri,\n useSockJS: false,\n onconnected: this.connectCallback.bind(this),\n ondisconnect: this.disconnectCallback.bind(this),\n onreconnecting: this.reconnectingCallback.bind(this),\n onreconnected: this.reconnectedCallback.bind(this)\n },\n rpc: {\n requestTimeout: 15000,\n //notifications\n participantJoined: this.onParticipantJoined.bind(this),\n participantPublished: this.onParticipantPublished.bind(this),\n participantUnpublished: this.onParticipantLeft.bind(this),\n participantLeft: this.onParticipantLeft.bind(this),\n participantEvicted: this.onParticipantEvicted.bind(this),\n sendMessage: this.onNewMessage.bind(this),\n iceCandidate: this.iceCandidateEvent.bind(this),\n mediaError: this.onMediaError.bind(this),\n custonNotification: this.customNotification.bind(this)\n }\n };\n\n this.jsonRpcClient = new RpcBuilder.clients.JsonRpcClient(config);\n }\n\n\n private customNotification(params) {\n if (this.isRoomAvailable()) {\n this.session.emitEvent(\"custom-message-received\", [{ params: params }]);\n }\n }\n\n private connectCallback(error) {\n if (error) {\n this.callback(error);\n } else {\n this.callback(null);\n }\n }\n\n private isRoomAvailable() {\n if (this.session !== undefined && this.session instanceof SessionInternal) {\n return true;\n } else {\n console.warn('Room instance not found');\n return false;\n }\n }\n\n private disconnectCallback() {\n console.warn('Websocket connection lost');\n if (this.isRoomAvailable()) {\n this.session.onLostConnection();\n } else {\n alert('Connection error. Please reload page.');\n }\n }\n\n private reconnectingCallback() {\n console.warn('Websocket connection lost (reconnecting)');\n if (this.isRoomAvailable()) {\n this.session.onLostConnection();\n } else {\n alert('Connection error. Please reload page.');\n }\n }\n\n private reconnectedCallback() {\n console.warn('Websocket reconnected');\n }\n\n private onParticipantJoined(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantJoined(params);\n }\n }\n\n private onParticipantPublished(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantPublished(params);\n }\n }\n\n private onParticipantLeft(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantLeft(params);\n }\n }\n\n private onParticipantEvicted(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantEvicted(params);\n }\n }\n\n private onNewMessage(params) {\n if (this.isRoomAvailable()) {\n this.session.onNewMessage(params);\n }\n }\n\n private iceCandidateEvent(params) {\n if (this.isRoomAvailable()) {\n this.session.recvIceCandidate(params);\n }\n }\n\n private onRoomClosed(params) {\n if (this.isRoomAvailable()) {\n this.session.onRoomClosed(params);\n }\n }\n\n private onMediaError(params) {\n if (this.isRoomAvailable()) {\n this.session.onMediaError(params);\n }\n }\n\n\n setRpcParams(params: any) {\n this.rpcParams = params;\n }\n\n sendRequest(method, params, callback?) {\n\n if (params && params instanceof Function) {\n callback = params;\n params = undefined;\n }\n\n params = params || {};\n\n if (this.rpcParams && this.rpcParams !== null && this.rpcParams !== undefined) {\n for (let index in this.rpcParams) {\n if (this.rpcParams.hasOwnProperty(index)) {\n params[index] = this.rpcParams[index];\n console.debug('RPC param added to request {' + index + ': ' + this.rpcParams[index] + '}');\n }\n }\n }\n\n console.debug('Sending request: {method:\"' + method + '\", params: ' + JSON.stringify(params) + '}');\n\n this.jsonRpcClient.send(method, params, callback);\n }\n\n close(forced) {\n if (this.isRoomAvailable()) {\n this.session.leave(forced, this.jsonRpcClient);\n }\n };\n\n disconnectParticipant(stream) {\n if (this.isRoomAvailable()) {\n this.session.disconnect(stream);\n }\n }\n\n getCamera(options?) {\n\n if (this.camera) {\n return this.camera;\n }\n\n options = options || {\n audio: true,\n video: true,\n data: true,\n mediaConstraints: {\n audio: true,\n video: { width: { ideal: 1280 } }\n }\n }\n\n options.connection = this.session.getLocalParticipant();\n this.camera = new Stream(this, true, this.session, options);\n return this.camera;\n };\n\n /*joinSession(options: SessionOptions, callback: Callback) {\n \n this.session.configure(options);\n \n this.session.connect2();\n \n this.session.addEventListener('room-connected', roomEvent => callback(undefined,this.session));\n \n this.session.addEventListener('error-room', error => callback(error));\n \n return this.session;\n };*/\n\n //CHAT\n sendMessage(room, user, message) {\n this.sendRequest('sendMessage', {\n message: message,\n userMessage: user,\n roomMessage: room\n }, function (error, response) {\n if (error) {\n console.error(error);\n }\n });\n };\n\n sendCustomRequest(params, callback) {\n this.sendRequest('customRequest', params, callback);\n };\n\n\n\n\n toggleLocalVideoTrack(activate: boolean) {\n this.getCamera().getWebRtcPeer().videoEnabled = activate;\n }\n\n toggleLocalAudioTrack(activate: boolean) {\n this.getCamera().getWebRtcPeer().audioEnabled = activate;\n }\n\n publishLocalVideoAudio() {\n this.toggleLocalVideoTrack(true);\n this.toggleLocalAudioTrack(true);\n }\n\n unpublishLocalVideoAudio() {\n this.toggleLocalVideoTrack(false);\n this.toggleLocalAudioTrack(false);\n }\n\n generateMediaConstraints(quality: string) {\n let mediaConstraints = {\n audio: true,\n video: {}\n }\n let w, h;\n switch (quality) {\n case 'LOW':\n w = 320;\n h = 240;\n break;\n case 'MEDIUM':\n w = 640;\n h = 480;\n break;\n case 'HIGH':\n w = 1280;\n h = 720;\n break;\n default:\n w = 640;\n h = 480;\n }\n mediaConstraints.video['width'] = { exact: w };\n mediaConstraints.video['height'] = { exact: h };\n //mediaConstraints.video['frameRate'] = { ideal: Number((document.getElementById('frameRate')).value) };\n\n return mediaConstraints;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/OpenViduInternal.ts","import { Stream } from './Stream';\nimport { OpenViduInternal } from './OpenViduInternal';\nimport { Connection, ConnectionOptions } from './Connection';\nimport EventEmitter = require('wolfy87-eventemitter');\n\nconst SECRET_PARAM = '?secret=';\n\nexport interface SessionOptions {\n sessionId: string;\n participantId: string;\n metadata: string;\n subscribeToStreams?: boolean;\n updateSpeakerInterval?: number;\n thresholdSpeaker?: number;\n}\n\nexport class SessionInternal {\n\n private id: string;\n private sessionId: string;\n private ee = new EventEmitter();\n private streams = {};\n private participants = {};\n private participantsSpeaking: Connection[] = [];\n private connected = false;\n public localParticipant: Connection;\n private subscribeToStreams: boolean;\n private updateSpeakerInterval: number;\n public thresholdSpeaker: number;\n private options: SessionOptions;\n\n constructor(private openVidu: OpenViduInternal, sessionId: string) {\n this.sessionId = this.getUrlWithoutSecret(sessionId);\n this.localParticipant = new Connection(this.openVidu, true, this);\n if (!this.openVidu.getWsUri()) {\n this.processOpenViduUrl(sessionId);\n }\n }\n\n private processOpenViduUrl(url: string) {\n this.openVidu.setSecret(this.getSecretFromUrl(url));\n this.openVidu.setWsUri(this.getFinalUrl(url));\n }\n\n private getSecretFromUrl(url: string): string {\n let secret = '';\n if (url.indexOf(SECRET_PARAM) !== -1) {\n secret = url.substring(url.lastIndexOf(SECRET_PARAM) + SECRET_PARAM.length, url.length);\n }\n return secret;\n }\n\n private getUrlWithoutSecret(url: string): string {\n if (url.indexOf(SECRET_PARAM) !== -1) {\n url = url.substring(0, url.lastIndexOf(SECRET_PARAM));\n }\n return url;\n }\n\n private getFinalUrl(url: string): string {\n url = this.getUrlWithoutSecret(url).substring(0, url.lastIndexOf('/')) + '/room';\n if (url.indexOf(\".ngrok.io\") !== -1) {\n // OpenVidu server URL referes to a ngrok IP: secure wss protocol and delete port of URL\n url = url.replace(\"ws://\", \"wss://\");\n let regex = /\\.ngrok\\.io:\\d+/;\n url = url.replace(regex, \".ngrok.io\");\n } else if ((url.indexOf(\"localhost\") !== -1) || (url.indexOf(\"127.0.0.1\") != -1)) {\n // OpenVidu server URL referes to localhost IP\n\n }\n return url;\n }\n\n\n\n /* NEW METHODS */\n connect(token, callback) {\n\n this.openVidu.connect((error) => {\n if (error) {\n callback('ERROR CONNECTING TO OPENVIDU');\n }\n else {\n\n if (!token) {\n token = this.randomToken();\n }\n\n let joinParams = {\n token: token,\n session: this.sessionId,\n metadata: this.options.metadata,\n secret: this.openVidu.getSecret(),\n dataChannels: false\n }\n\n if (this.localParticipant) {\n if (Object.keys(this.localParticipant.getStreams()).some(streamId =>\n this.streams[streamId].isDataChannelEnabled())) {\n joinParams.dataChannels = true;\n }\n }\n\n this.openVidu.sendRequest('joinRoom', joinParams, (error, response) => {\n\n if (error) {\n callback(error);\n } else {\n\n this.connected = true;\n\n let exParticipants = response.value;\n\n // IMPORTANT: Update connectionId with value send by server\n this.localParticipant.connectionId = response.id;\n this.participants[response.id] = this.localParticipant;\n\n let roomEvent = {\n participants: new Array(),\n streams: new Array()\n }\n\n let length = exParticipants.length;\n for (let i = 0; i < length; i++) {\n\n let connection = new Connection(this.openVidu, false, this,\n exParticipants[i]);\n connection.creationTime = new Date().getTime();\n\n this.participants[connection.connectionId] = connection;\n\n roomEvent.participants.push(connection);\n\n let streams = connection.getStreams();\n for (let key in streams) {\n roomEvent.streams.push(streams[key]);\n if (this.subscribeToStreams) {\n streams[key].subscribe();\n }\n }\n }\n\n // Update local Connection object properties with values returned by server\n this.localParticipant.data = response.metadata;\n this.localParticipant.creationTime = new Date().getTime();\n\n // Updates the value of property 'connection' in Session object\n this.ee.emitEvent('update-connection-object', [{ connection: this.localParticipant }]);\n // Own connection created event\n this.ee.emitEvent('connectionCreated', [{ connection: this.localParticipant }]);\n\n // One connection created event for each existing connection in the session\n for (let part of roomEvent.participants) {\n this.ee.emitEvent('connectionCreated', [{ connection: part }]);\n }\n\n //if (this.subscribeToStreams) {\n for (let stream of roomEvent.streams) {\n this.ee.emitEvent('streamCreated', [{ stream }]);\n\n // Adding the remote stream to the OpenVidu object\n this.openVidu.getRemoteStreams().push(stream);\n }\n //}\n\n callback(undefined);\n }\n });\n }\n });\n }\n\n publish() {\n this.openVidu.getCamera().publish();\n }\n /* NEW METHODS */\n\n\n\n\n\n configure(options: SessionOptions) {\n this.options = options;\n this.id = options.sessionId;\n this.subscribeToStreams = options.subscribeToStreams == null ? true : options.subscribeToStreams;\n this.updateSpeakerInterval = options.updateSpeakerInterval || 1500;\n this.thresholdSpeaker = options.thresholdSpeaker || -50;\n this.activateUpdateMainSpeaker();\n }\n\n getId() {\n return this.id;\n }\n\n getSessionId() {\n return this.sessionId;\n }\n\n private activateUpdateMainSpeaker() {\n\n setInterval(() => {\n if (this.participantsSpeaking.length > 0) {\n this.ee.emitEvent('update-main-speaker', [{\n participantId: this.participantsSpeaking[this.participantsSpeaking.length - 1]\n }]);\n }\n }, this.updateSpeakerInterval);\n }\n\n getLocalParticipant() {\n return this.localParticipant;\n }\n\n addEventListener(eventName, listener) {\n this.ee.on(eventName, listener);\n }\n\n addOnceEventListener(eventName, listener) {\n this.ee.once(eventName, listener);\n }\n\n removeListener(eventName, listener) {\n this.ee.off(eventName, listener);\n }\n\n removeEvent(eventName) {\n this.ee.removeEvent(eventName);\n }\n\n emitEvent(eventName, eventsArray) {\n this.ee.emitEvent(eventName, eventsArray);\n }\n\n\n subscribe(stream: Stream) {\n stream.subscribe();\n }\n\n unsuscribe(stream) {\n console.info(\"Unsubscribing from \" + stream.getId());\n this.openVidu.sendRequest('unsubscribeFromVideo', {\n sender: stream.getId()\n },\n function (error, response) {\n if (error) {\n console.error(\"Error unsubscribing from Subscriber\", error);\n } else {\n console.info(\"Unsubscribed correctly from \" + stream.getId());\n }\n });\n }\n\n onParticipantPublished(options) {\n\n options.metadata = this.participants[options.id].data;\n\n // Get the existing Connection created on 'onParticipantJoined' for\n // existing participants or create a new one for new participants\n let connection = this.participants[options.id];\n if (connection) {\n // Update existing Connection\n connection.options = options;\n connection.initStreams(options);\n } else {\n // Create new Connection\n connection = new Connection(this.openVidu, false, this, options);\n }\n\n let pid = connection.connectionId;\n if (!(pid in this.participants)) {\n console.debug(\"Remote Connection not found in connections list by its id [\" + pid + \"]\");\n } else {\n console.debug(\"Remote Connection found in connections list by its id [\" + pid + \"]\");\n }\n\n connection.creationTime = this.participants[pid].creationTime;\n this.participants[pid] = connection;\n\n this.ee.emitEvent('participant-published', [{ connection }]);\n\n let streams = connection.getStreams();\n for (let key in streams) {\n let stream = streams[key];\n\n if (this.subscribeToStreams) {\n stream.subscribe();\n }\n this.ee.emitEvent('streamCreated', [{ stream }]);\n // Adding the remote stream to the OpenVidu object\n this.openVidu.getRemoteStreams().push(stream);\n }\n }\n\n onParticipantJoined(msg) {\n\n let connection = new Connection(this.openVidu, false, this, msg);\n connection.creationTime = new Date().getTime();\n\n let pid = connection.connectionId;\n if (!(pid in this.participants)) {\n this.participants[pid] = connection;\n } else {\n //use existing so that we don't lose streams info\n console.warn(\"Connection already exists in connections list with \" +\n \"the same connectionId, old:\", this.participants[pid], \", joined now:\", connection);\n connection = this.participants[pid];\n }\n\n this.ee.emitEvent('participant-joined', [{\n connection: connection\n }]);\n\n this.ee.emitEvent('connectionCreated', [{\n connection: connection\n }]);\n\n }\n\n onParticipantLeft(msg) {\n\n let connection = this.participants[msg.name];\n\n if (connection !== undefined) {\n delete this.participants[msg.name];\n\n this.ee.emitEvent('participant-left', [{\n connection: connection\n }]);\n\n let streams = connection.getStreams();\n for (let key in streams) {\n this.ee.emitEvent('streamDestroyed', [{\n stream: streams[key],\n preventDefault: () => { this.ee.removeEvent('stream-destroyed-default'); }\n }]);\n this.ee.emitEvent('stream-destroyed-default', [{\n stream: streams[key]\n }]);\n\n // Deleting the removed stream from the OpenVidu object\n let index = this.openVidu.getRemoteStreams().indexOf(streams[key]);\n this.openVidu.getRemoteStreams().splice(index, 1);\n }\n\n connection.dispose();\n\n this.ee.emitEvent('connectionDestroyed', [{\n connection: connection\n }]);\n\n } else {\n console.warn(\"Participant \" + msg.name\n + \" unknown. Participants: \"\n + JSON.stringify(this.participants));\n }\n };\n\n onParticipantEvicted(msg) {\n this.ee.emitEvent('participant-evicted', [{\n localParticipant: this.localParticipant\n }]);\n };\n\n onNewMessage(msg) {\n\n console.info(\"New message: \" + JSON.stringify(msg));\n let room = msg.room;\n let user = msg.user;\n let message = msg.message;\n\n if (user !== undefined) {\n this.ee.emitEvent('newMessage', [{\n room: room,\n user: user,\n message: message\n }]);\n } else {\n console.warn(\"User undefined in new message:\", msg);\n }\n }\n\n recvIceCandidate(msg) {\n\n let candidate = {\n candidate: msg.candidate,\n sdpMid: msg.sdpMid,\n sdpMLineIndex: msg.sdpMLineIndex\n }\n\n let connection = this.participants[msg.endpointName];\n if (!connection) {\n console.error(\"Participant not found for endpoint \" +\n msg.endpointName + \". Ice candidate will be ignored.\",\n candidate);\n return;\n }\n\n let streams = connection.getStreams();\n for (let key in streams) {\n let stream = streams[key];\n stream.getWebRtcPeer().addIceCandidate(candidate, function (error) {\n if (error) {\n console.error(\"Error adding candidate for \" + key\n + \" stream of endpoint \" + msg.endpointName\n + \": \" + error);\n }\n });\n }\n }\n\n onRoomClosed(msg) {\n\n console.info(\"Room closed: \" + JSON.stringify(msg));\n let room = msg.room;\n if (room !== undefined) {\n this.ee.emitEvent('room-closed', [{\n room: room\n }]);\n } else {\n console.warn(\"Room undefined in on room closed\", msg);\n }\n }\n\n onLostConnection() {\n\n if (!this.connected) {\n console.warn('Not connected to room: if you are not debugging, this is probably a certificate error');\n if (window.confirm('If you are not debugging, this is probably a certificate error at \\\"' + this.openVidu.getOpenViduServerURL() + '\\\"\\n\\nClick OK to navigate and accept it')) {\n location.assign(this.openVidu.getOpenViduServerURL() + '/accept-certificate');\n };\n return;\n }\n\n console.warn('Lost connection in Session ' + this.id);\n let room = this.id;\n if (room !== undefined) {\n this.ee.emitEvent('lost-connection', [{ room }]);\n } else {\n console.warn('Room undefined when lost connection');\n }\n }\n\n onMediaError(params) {\n\n console.error(\"Media error: \" + JSON.stringify(params));\n let error = params.error;\n if (error) {\n this.ee.emitEvent('error-media', [{\n error: error\n }]);\n } else {\n console.warn(\"Received undefined media error. Params:\", params);\n }\n }\n\n /*\n * forced means the user was evicted, no need to send the 'leaveRoom' request\n */\n leave(forced, jsonRpcClient) {\n\n forced = !!forced;\n\n console.info(\"Leaving Session (forced=\" + forced + \")\");\n\n if (this.connected && !forced) {\n this.openVidu.sendRequest('leaveRoom', function (error, response) {\n if (error) {\n console.error(error);\n }\n jsonRpcClient.close();\n });\n } else {\n jsonRpcClient.close();\n }\n this.connected = false;\n if (this.participants) {\n for (let pid in this.participants) {\n this.participants[pid].dispose();\n delete this.participants[pid];\n }\n }\n }\n\n disconnect(stream: Stream) {\n\n let connection = stream.getParticipant();\n if (!connection) {\n console.error(\"Stream to disconnect has no participant\", stream);\n return;\n }\n\n delete this.participants[connection.connectionId];\n connection.dispose();\n\n if (connection === this.localParticipant) {\n\n console.info(\"Unpublishing my media (I'm \" + connection.connectionId + \")\");\n delete this.localParticipant;\n this.openVidu.sendRequest('unpublishVideo', function (error, response) {\n if (error) {\n console.error(error);\n } else {\n console.info(\"Media unpublished correctly\");\n }\n });\n\n } else {\n this.unsuscribe(stream);\n }\n }\n\n unpublish(stream: Stream) {\n\n let connection = stream.getParticipant();\n if (!connection) {\n console.error(\"Stream to disconnect has no participant\", stream);\n return;\n }\n\n if (connection === this.localParticipant) {\n\n delete this.participants[connection.connectionId];\n connection.dispose();\n\n console.info(\"Unpublishing my media (I'm \" + connection.connectionId + \")\");\n delete this.localParticipant;\n this.openVidu.sendRequest('unpublishVideo', function (error, response) {\n if (error) {\n console.error(error);\n } else {\n console.info(\"Media unpublished correctly\");\n }\n });\n }\n }\n\n getStreams() {\n return this.streams;\n }\n\n addParticipantSpeaking(participantId) {\n this.participantsSpeaking.push(participantId);\n }\n\n removeParticipantSpeaking(participantId) {\n let pos = -1;\n for (let i = 0; i < this.participantsSpeaking.length; i++) {\n if (this.participantsSpeaking[i] == participantId) {\n pos = i;\n break;\n }\n }\n if (pos != -1) {\n this.participantsSpeaking.splice(pos, 1);\n }\n }\n\n stringClientMetadata(metadata): string {\n if (!(typeof metadata === 'string')) {\n return JSON.stringify(metadata);\n } else {\n return metadata;\n }\n }\n \n private randomToken(): string {\n return Math.random().toString(36).slice(2) + Math.random().toString(36).slice(2);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/SessionInternal.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions, Response } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\nimport { environment } from '../../environments/environment';\n\nimport { Lesson } from '../models/lesson';\nimport { User } from '../models/user';\nimport { AuthenticationService } from './authentication.service';\n\nimport 'rxjs/Rx';\n\n@Injectable()\nexport class LessonService {\n\n private url = 'api-lessons';\n\n constructor(private http: Http, private authenticationService: AuthenticationService) { }\n\n getLessons(user: User) {\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.get(this.url + '/user/' + user.id, options) // Must send userId\n .map((response: Response) => response.json() as Lesson[])\n .catch(error => this.handleError(error));\n }\n\n getLesson(lessonId: number) {\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.get(this.url + '/lesson/' + lessonId, options) // Must send userId\n .map((response: Response) => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // POST new lesson. On success returns the created lesson\n newLesson(lesson: Lesson) {\n let body = JSON.stringify(lesson);\n let headers = new Headers({\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + '/new', body, options)\n .map(response => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // PUT existing lesson. On success returns the updated lesson\n editLesson(lesson: Lesson) {\n let body = JSON.stringify(lesson);\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.put(this.url + '/edit', body, options)\n .map(response => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // DELETE existing lesson. On success returns the deleted lesson (simplified version)\n deleteLesson(lessonId: number) {\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.delete(this.url + '/delete/' + lessonId, options)\n .map(response => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // PUT existing lesson, modifying its attenders (adding them). On success returns the updated lesson.attenders array\n addLessonAttenders(lessonId: number, userEmails: string[]) {\n let body = JSON.stringify(userEmails);\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.put(this.url + '/edit/add-attenders/lesson/' + lessonId, body, options)\n .map(response => response.json())\n .catch(error => this.handleError(error));\n }\n\n // PUT existing lesson, modifying its attenders (deleting them). On success returns the updated lesson.attenders array\n deleteLessonAttenders(lesson: Lesson) {\n let body = JSON.stringify(lesson);\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.put(this.url + '/edit/delete-attenders', body, options)\n .map(response => response.json() as User[])\n .catch(error => this.handleError(error));\n }\n\n obtainLocalLesson(id: number) {\n return this.authenticationService.getCurrentUser().lessons.find(lesson => lesson.id == id);\n }\n\n private handleError(error: any) {\n console.error(error);\n return Observable.throw('Server error (' + error.status + '): ' + error.text())\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/lesson.service.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\n\nimport { Lesson } from '../models/lesson';\n\nimport { AuthenticationService } from './authentication.service';\n\n@Injectable()\nexport class VideoSessionService {\n\n lesson: Lesson;\n cameraOptions: any;\n\n private url = 'api-sessions';\n\n constructor(private http: Http, private authenticationService: AuthenticationService) { }\n\n // Returns {0: sessionId}\n createSession(lessonId: number) {\n let body = JSON.stringify(lessonId);\n return this.http.post(this.url + '/create-session', body)\n .map(response => response.json())\n .catch(error => this.handleError(error));\n }\n\n // Returns {0: sessionId, 1: token}\n generateToken(lessonId: number) {\n let body = JSON.stringify(lessonId);\n let headers = new Headers({ 'Content-Type': 'application/json' });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + '/generate-token', body, options)\n .map(response => response.json())\n .catch(error => this.handleError(error));\n }\n\n removeUser(lessonId: number) {\n let body = JSON.stringify(lessonId);\n let headers = new Headers({ 'Content-Type': 'application/json' });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + '/remove-user', body, options)\n .map(response => response)\n .catch(error => this.handleError(error));\n }\n\n private handleError(error: any) {\n console.error(error);\n return Observable.throw('Server error (' + error.status + '): ' + error.text())\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/video-session.service.ts","/*\n * options: name: XXX data: true (Maybe this is based on webrtc) audio: true,\n * video: true, url: \"file:///...\" > Player screen: true > Desktop (implicit\n * video:true, audio:false) audio: true, video: true > Webcam\n *\n * stream.hasAudio(); stream.hasVideo(); stream.hasData();\n */\nimport { Connection } from './Connection';\nimport { SessionInternal } from './SessionInternal';\nimport { OpenViduInternal, Callback } from './OpenViduInternal';\nimport EventEmitter = require('wolfy87-eventemitter');\nimport * as kurentoUtils from '../KurentoUtils/kurento-utils-js';\n\nimport * as adapter from 'webrtc-adapter';\ndeclare var navigator: any;\ndeclare var RTCSessionDescription: any;\n\nif (window) {\n window[\"adapter\"] = adapter;\n}\n\nfunction jq(id: string): string {\n return id.replace(/(@|:|\\.|\\[|\\]|,)/g, \"\\\\$1\");\n}\n\nfunction show(id: string) {\n document.getElementById(jq(id))!.style.display = 'block';\n}\n\nfunction hide(id: string) {\n document.getElementById(jq(id))!.style.display = 'none';\n}\n\nexport interface StreamOptions {\n id: string;\n connection: Connection;\n recvVideo: any;\n recvAudio: any;\n video: boolean;\n audio: boolean;\n data: boolean;\n mediaConstraints: any;\n audioOnly: boolean;\n}\n\nexport interface VideoOptions {\n thumb: string;\n video: HTMLVideoElement;\n}\n\nexport class Stream {\n\n public connection: Connection;\n\n private ee = new EventEmitter();\n private wrStream: any;\n private wp: any;\n private id: string;\n private video: HTMLVideoElement;\n private videoElements: VideoOptions[] = [];\n private elements: HTMLDivElement[] = [];\n private speechEvent: any;\n private recvVideo: any;\n private recvAudio: any;\n private sendVideo: boolean;\n private sendAudio: boolean;\n private mediaConstraints: any;\n private showMyRemote = false;\n private localMirrored = false;\n private chanId = 0;\n private dataChannel: boolean;\n private dataChannelOpened = false;\n\n private audioOnly = false;\n\n private videoSrcObject: MediaStream | null;\n private parentId: string;\n public isReady: boolean = false;\n public isVideoELementCreated: boolean = false;\n public accessIsAllowed: boolean = false;\n public accessIsDenied: boolean = false;\n\n constructor(private openVidu: OpenViduInternal, private local: boolean, private room: SessionInternal, options: StreamOptions) {\n\n if (options.id) {\n this.id = options.id;\n } else {\n this.id = \"webcam\";\n }\n\n this.connection = options.connection;\n this.recvVideo = options.recvVideo;\n this.recvAudio = options.recvAudio;\n this.dataChannel = options.data || false;\n this.sendVideo = options.video;\n this.sendAudio = options.audio;\n this.mediaConstraints = options.mediaConstraints;\n this.audioOnly = options.audioOnly || false;\n\n this.addEventListener('src-added', (srcEvent) => {\n this.videoSrcObject = srcEvent.srcObject;\n if (this.video) this.video.srcObject = srcEvent.srcObject;\n console.debug(\"Video srcObject [\" + srcEvent.srcObject + \"] added to stream [\" + this.getId() + \"]\");\n });\n }\n\n emitSrcEvent(wrstream) {\n this.ee.emitEvent('src-added', [{\n srcObject: wrstream\n }]);\n }\n\n emitStreamReadyEvent() {\n this.ee.emitEvent('stream-ready'), [{}];\n }\n\n getVideoSrcObject() {\n return this.videoSrcObject;\n }\n\n removeVideo(parentElement: string);\n removeVideo(parentElement: Element);\n removeVideo();\n\n removeVideo(parentElement?) {\n if (typeof parentElement === \"string\") {\n document.getElementById(parentElement)!.removeChild(this.video);\n } else if (parentElement instanceof Element) {\n parentElement.removeChild(this.video);\n }\n else if (!parentElement) {\n if (document.getElementById(this.parentId)) {\n document.getElementById(this.parentId)!.removeChild(this.video);\n }\n }\n }\n\n getVideoElement(): HTMLVideoElement {\n return this.video;\n }\n\n setVideoElement(video: HTMLVideoElement) {\n this.video = video;\n }\n\n\n\n\n\n\n getRecvVideo() {\n return this.recvVideo;\n }\n\n getRecvAudio() {\n return this.recvAudio;\n }\n\n\n subscribeToMyRemote() {\n this.showMyRemote = true;\n }\n\n displayMyRemote() {\n return this.showMyRemote;\n }\n\n mirrorLocalStream(wr) {\n this.showMyRemote = true;\n this.localMirrored = true;\n if (wr) {\n this.wrStream = wr;\n this.emitSrcEvent(this.wrStream);\n }\n }\n\n isLocalMirrored() {\n return this.localMirrored;\n }\n\n getChannelName() {\n return this.getId() + '_' + this.chanId++;\n }\n\n\n isDataChannelEnabled() {\n return this.dataChannel;\n }\n\n\n isDataChannelOpened() {\n return this.dataChannelOpened;\n }\n\n onDataChannelOpen(event) {\n console.debug('Data channel is opened');\n this.dataChannelOpened = true;\n }\n\n onDataChannelClosed(event) {\n console.debug('Data channel is closed');\n this.dataChannelOpened = false;\n }\n\n sendData(data) {\n if (this.wp === undefined) {\n throw new Error('WebRTC peer has not been created yet');\n }\n if (!this.dataChannelOpened) {\n throw new Error('Data channel is not opened');\n }\n console.info(\"Sending through data channel: \" + data);\n this.wp.send(data);\n }\n\n getWrStream() {\n return this.wrStream;\n }\n\n getWebRtcPeer() {\n return this.wp;\n }\n\n addEventListener(eventName: string, listener: any) {\n this.ee.addListener(eventName, listener);\n }\n\n addOnceEventListener(eventName: string, listener: any) {\n this.ee.addOnceListener(eventName, listener);\n }\n\n removeListener(eventName) {\n this.ee.removeAllListeners(eventName);\n }\n\n showSpinner(spinnerParentId: string) {\n let progress = document.createElement('div');\n progress.id = 'progress-' + this.getId();\n progress.style.background = \"center transparent url('img/spinner.gif') no-repeat\";\n let spinnerParent = document.getElementById(spinnerParentId);\n if (spinnerParent) {\n spinnerParent.appendChild(progress);\n }\n }\n\n hideSpinner(spinnerId?: string) {\n spinnerId = (spinnerId === undefined) ? this.getId() : spinnerId;\n hide('progress-' + spinnerId);\n }\n\n playOnlyVideo(parentElement, thumbnailId) {\n\n // TO-DO: check somehow if the stream is audio only, so the element created is instead of \n\n this.video = document.createElement('video');\n\n this.video.id = (this.local ? 'local-' : 'remote-') + 'video-' + this.getId();\n this.video.autoplay = true;\n this.video.controls = false;\n this.video.srcObject = this.videoSrcObject;\n\n this.videoElements.push({\n thumb: thumbnailId,\n video: this.video\n });\n\n if (this.local) {\n this.video.muted = true;\n this.video.onplay = () => {\n console.info(\"Local 'Stream' with id [\" + this.getId() + \"] video is now playing\");\n };\n } else {\n this.video.title = this.getId();\n }\n\n if (typeof parentElement === \"string\") {\n this.parentId = parentElement;\n\n let parentElementDom = document.getElementById(parentElement);\n if (parentElementDom) {\n this.video = parentElementDom.appendChild(this.video);\n this.ee.emitEvent('video-element-created-by-stream', [{\n element: this.video\n }]);\n this.isVideoELementCreated = true;\n }\n } else {\n this.parentId = parentElement.id;\n this.video = parentElement.appendChild(this.video);\n }\n\n this.ee.emitEvent('stream-created-by-publisher');\n\n this.isReady = true;\n\n return this.video;\n }\n\n playThumbnail(thumbnailId) {\n\n let container = document.createElement('div');\n container.className = \"participant\";\n container.id = this.getId();\n let thumbnail = document.getElementById(thumbnailId);\n if (thumbnail) {\n thumbnail.appendChild(container);\n }\n\n this.elements.push(container);\n\n let name = document.createElement('div');\n container.appendChild(name);\n let userName = this.getId().replace('_webcam', '');\n if (userName.length >= 16) {\n userName = userName.substring(0, 16) + \"...\";\n }\n name.appendChild(document.createTextNode(userName));\n name.id = \"name-\" + this.getId();\n name.className = \"name\";\n name.title = this.getId();\n\n this.showSpinner(thumbnailId);\n\n return this.playOnlyVideo(container, thumbnailId);\n }\n\n getIdInParticipant() {\n return this.id;\n }\n\n getParticipant() {\n return this.connection;\n }\n\n getId() {\n return this.connection.connectionId + \"_\" + this.id;\n }\n\n getRTCPeerConnection() {\n return this.getWebRtcPeer().peerConnection;\n }\n\n requestCameraAccess(callback: Callback) {\n\n this.connection.addStream(this);\n\n let constraints = this.mediaConstraints;\n\n /*let constraints2 = {\n audio: true,\n video: {\n width: {\n ideal: 1280\n },\n frameRate: {\n ideal: 15\n }\n }\n };*/\n\n this.userMediaHasVideo((hasVideo) => {\n if (!hasVideo) {\n constraints.video = false;\n this.sendVideo = false;\n this.audioOnly = true;\n this.requestCameraAccesAux(constraints, callback);\n } else {\n this.requestCameraAccesAux(constraints, callback);\n }\n });\n }\n\n private requestCameraAccesAux(constraints, callback) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(userStream => {\n this.cameraAccessSuccess(userStream, callback);\n })\n .catch(error => {\n // Try to ask for microphone only\n navigator.mediaDevices.getUserMedia({ audio: true, video: false })\n .then(userStream => {\n constraints.video = false;\n this.sendVideo = false;\n this.audioOnly = true;\n this.cameraAccessSuccess(userStream, callback);\n })\n .catch(error => {\n this.accessIsDenied = true;\n this.accessIsAllowed = false;\n this.ee.emitEvent('access-denied-by-publisher');\n\n console.error(\"Access denied\", error);\n callback(error, this);\n });\n });\n }\n\n private cameraAccessSuccess(userStream, callback) {\n this.accessIsAllowed = true;\n this.accessIsDenied = false;\n this.ee.emitEvent('access-allowed-by-publisher');\n\n if (userStream.getAudioTracks()[0] != null) {\n userStream.getAudioTracks()[0].enabled = this.sendAudio;\n }\n if (userStream.getVideoTracks()[0] != null) {\n userStream.getVideoTracks()[0].enabled = this.sendVideo;\n }\n\n this.wrStream = userStream;\n this.emitSrcEvent(this.wrStream);\n\n callback(undefined, this);\n }\n\n private userMediaHasVideo(callback) {\n navigator.mediaDevices.enumerateDevices().then(function (mediaDevices) {\n var videoInput = mediaDevices.filter(function (deviceInfo) {\n return deviceInfo.kind === 'videoinput';\n })[0];\n callback(videoInput != null);\n });\n }\n\n publishVideoCallback(error, sdpOfferParam, wp) {\n\n if (error) {\n return console.error(\"(publish) SDP offer error: \"\n + JSON.stringify(error));\n }\n\n console.debug(\"Sending SDP offer to publish as \"\n + this.getId(), sdpOfferParam);\n\n this.openVidu.sendRequest(\"publishVideo\", {\n sdpOffer: sdpOfferParam,\n doLoopback: this.displayMyRemote() || false,\n audioOnly: this.audioOnly\n }, (error, response) => {\n if (error) {\n console.error(\"Error on publishVideo: \" + JSON.stringify(error));\n } else {\n this.processSdpAnswer(response.sdpAnswer);\n console.info(\"'Publisher' succesfully published to session\");\n }\n });\n }\n\n startVideoCallback(error, sdpOfferParam, wp) {\n if (error) {\n return console.error(\"(subscribe) SDP offer error: \"\n + JSON.stringify(error));\n }\n console.debug(\"Sending SDP offer to subscribe to \"\n + this.getId(), sdpOfferParam);\n this.openVidu.sendRequest(\"receiveVideoFrom\", {\n sender: this.getId(),\n sdpOffer: sdpOfferParam\n }, (error, response) => {\n if (error) {\n console.error(\"Error on recvVideoFrom: \" + JSON.stringify(error));\n } else {\n this.processSdpAnswer(response.sdpAnswer);\n }\n });\n }\n\n private initWebRtcPeer(sdpOfferCallback) {\n if (this.local) {\n\n let userMediaConstraints = {\n audio: this.sendAudio,\n video: this.sendVideo\n }\n\n let options: any = {\n videoStream: this.wrStream,\n mediaConstraints: userMediaConstraints,\n onicecandidate: this.connection.sendIceCandidate.bind(this.connection),\n }\n\n if (this.dataChannel) {\n options.dataChannelConfig = {\n id: this.getChannelName(),\n onopen: this.onDataChannelOpen,\n onclose: this.onDataChannelClosed\n };\n options.dataChannels = true;\n }\n\n if (this.displayMyRemote()) {\n this.wp = kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, error => {\n if (error) {\n return console.error(error);\n }\n this.wp.generateOffer(sdpOfferCallback.bind(this));\n });\n } else {\n this.wp = kurentoUtils.WebRtcPeer.WebRtcPeerSendonly(options, error => {\n if (error) {\n return console.error(error);\n }\n this.wp.generateOffer(sdpOfferCallback.bind(this));\n });\n }\n } else {\n let offerConstraints = {\n audio: this.recvAudio,\n video: !this.audioOnly\n };\n console.debug(\"'Session.subscribe(Stream)' called. Constraints of generate SDP offer\",\n offerConstraints);\n let options = {\n onicecandidate: this.connection.sendIceCandidate.bind(this.connection),\n mediaConstraints: offerConstraints\n }\n this.wp = kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(options, error => {\n if (error) {\n return console.error(error);\n }\n this.wp.generateOffer(sdpOfferCallback.bind(this));\n });\n }\n console.debug(\"Waiting for SDP offer to be generated (\"\n + (this.local ? \"local\" : \"remote\") + \" 'Stream': \" + this.getId() + \")\");\n }\n\n publish() {\n\n // FIXME: Throw error when stream is not local\n if (this.isReady) {\n this.initWebRtcPeer(this.publishVideoCallback);\n } else {\n this.ee.once('stream-ready', streamEvent => {\n this.publish();\n });\n }\n\n // FIXME: Now we have coupled connecting to a room and adding a\n // stream to this room. But in the new API, there are two steps.\n // This is the second step. For now, it do nothing.\n\n }\n\n subscribe() {\n\n // FIXME: In the current implementation all participants are subscribed\n // automatically to all other participants. We use this method only to\n // negotiate SDP\n\n this.initWebRtcPeer(this.startVideoCallback);\n }\n\n processSdpAnswer(sdpAnswer) {\n\n let answer = new RTCSessionDescription({\n type: 'answer',\n sdp: sdpAnswer,\n });\n console.debug(this.getId() + \": set peer connection with recvd SDP answer\",\n sdpAnswer);\n let participantId = this.getId();\n let pc = this.wp.peerConnection;\n pc.setRemoteDescription(answer, () => {\n // Avoids to subscribe to your own stream remotely \n // except when showMyRemote is true\n if (!this.local || this.displayMyRemote()) {\n this.wrStream = pc.getRemoteStreams()[0];\n console.debug(\"Peer remote stream\", this.wrStream);\n\n if (this.wrStream != undefined) {\n\n this.emitSrcEvent(this.wrStream);\n\n this.speechEvent = kurentoUtils.WebRtcPeer.hark(this.wrStream, { threshold: this.room.thresholdSpeaker });\n\n this.speechEvent.on('speaking', () => {\n this.room.addParticipantSpeaking(participantId);\n this.room.emitEvent('stream-speaking', [{\n participantId: participantId\n }]);\n });\n\n this.speechEvent.on('stopped_speaking', () => {\n this.room.removeParticipantSpeaking(participantId);\n this.room.emitEvent('stream-stopped-speaking', [{\n participantId: participantId\n }]);\n });\n }\n for (let videoElement of this.videoElements) {\n let thumbnailId = videoElement.thumb;\n let video = videoElement.video;\n video.srcObject = this.wrStream;\n video.onplay = () => {\n console.info(\"Remote 'Stream' with id [\" + this.getId() + \"] video is now playing\");\n if (this.local && this.displayMyRemote()) {\n this.ee.emitEvent('remote-video-is-playing', [{\n element: this.video\n }]);\n }\n //show(thumbnailId);\n //this.hideSpinner(this.getId());\n };\n }\n this.room.emitEvent('stream-subscribed', [{\n stream: this\n }]);\n }\n }, error => {\n console.error(this.getId() + \": Error setting SDP to the peer connection: \"\n + JSON.stringify(error));\n });\n }\n\n unpublish() {\n if (this.wp) {\n this.wp.dispose();\n } else {\n if (this.wrStream) {\n this.wrStream.getAudioTracks().forEach(function (track) {\n track.stop && track.stop()\n })\n this.wrStream.getVideoTracks().forEach(function (track) {\n track.stop && track.stop()\n })\n }\n }\n\n if (this.speechEvent) {\n this.speechEvent.stop();\n }\n\n console.info(this.getId() + \": Stream '\" + this.id + \"' unpublished\");\n }\n\n dispose() {\n\n function disposeElement(element) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n\n this.elements.forEach(e => disposeElement(e));\n\n //this.videoElements.forEach(ve => disposeElement(ve.video));\n\n disposeElement(\"progress-\" + this.getId());\n\n if (this.wp) {\n this.wp.dispose();\n } else {\n if (this.wrStream) {\n this.wrStream.getAudioTracks().forEach(function (track) {\n track.stop && track.stop()\n })\n this.wrStream.getVideoTracks().forEach(function (track) {\n track.stop && track.stop()\n })\n }\n }\n\n if (this.speechEvent) {\n this.speechEvent.stop();\n }\n\n console.info((this.local ? \"Local \" : \"Remote \") + \"'Stream' with id [\" + this.getId() + \"]' has been succesfully disposed\");\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Stream.ts","import { Observable } from 'rxjs/Rx';\nimport { Injectable } from '@angular/core';\nimport { Http, RequestOptions, Headers, Response } from '@angular/http';\nimport { Router } from '@angular/router';\n\nimport { environment } from '../../environments/environment';\n\nimport 'rxjs/add/operator/map';\n\nimport { User } from '../models/user';\n\n@Injectable()\nexport class AuthenticationService {\n\n private urlLogIn = 'api-logIn';\n private urlLogOut = 'api-logOut';\n\n public token: string;\n private user: User;\n private role: string;\n\n constructor(private http: Http, private router: Router) {\n this.reqIsLogged();\n\n // set token if saved in local storage\n // let auth_token = JSON.parse(localStorage.getItem('auth_token'));\n // this.token = auth_token && auth_token.token;\n }\n\n logIn(user: string, pass: string) {\n\n console.log('Login service started...');\n\n let userPass = utf8_to_b64(user + ':' + pass);\n let headers = new Headers({\n 'Authorization': 'Basic ' + userPass,\n 'X-Requested-With': 'XMLHttpRequest'\n });\n let options = new RequestOptions({ headers });\n\n return this.http.get(this.urlLogIn, options)\n .map(response => {\n this.processLogInResponse(response);\n return this.user;\n })\n .catch(error => Observable.throw(error));\n }\n\n logOut() {\n\n console.log('Logging out...');\n\n return this.http.get(this.urlLogOut).map(\n response => {\n\n console.log('Logout succesful!');\n\n this.user = null;\n this.role = null;\n\n // clear token remove user from local storage to log user out and navigates to welcome page\n this.token = null;\n localStorage.removeItem('login');\n localStorage.removeItem('rol');\n this.router.navigate(['']);\n\n return response;\n })\n .catch(error => Observable.throw(error));\n }\n\n directLogOut() {\n this.logOut().subscribe(\n response => { },\n error => console.log(\"Error when trying to log out: \" + error)\n );\n }\n\n private processLogInResponse(response) {\n // Correctly logged in\n console.log('Login succesful processing...');\n\n this.user = (response.json() as User);\n\n localStorage.setItem('login', 'OPENVIDUAPP');\n if (this.user.roles.indexOf('ROLE_TEACHER') !== -1) {\n this.role = 'ROLE_TEACHER';\n localStorage.setItem('rol', 'ROLE_TEACHER');\n }\n if (this.user.roles.indexOf('ROLE_STUDENT') !== -1) {\n this.role = 'ROLE_STUDENT';\n localStorage.setItem('rol', 'ROLE_STUDENT');\n }\n }\n\n reqIsLogged() {\n\n console.log('ReqIsLogged called');\n\n let headers = new Headers({\n 'X-Requested-With': 'XMLHttpRequest'\n });\n let options = new RequestOptions({ headers });\n\n this.http.get(this.urlLogIn, options).subscribe(\n response => this.processLogInResponse(response),\n error => {\n if (error.status != 401) {\n console.error('Error when asking if logged: ' + JSON.stringify(error));\n this.logOut();\n }\n }\n );\n }\n\n checkCredentials() {\n if (!this.isLoggedIn()) {\n this.logOut();\n }\n }\n\n isLoggedIn() {\n return ((this.user != null) && (this.user !== undefined));\n }\n\n getCurrentUser() {\n return this.user;\n }\n\n isTeacher() {\n return ((this.user.roles.indexOf('ROLE_TEACHER')) !== -1) && (localStorage.getItem('rol') === 'ROLE_TEACHER');\n }\n\n isStudent() {\n return ((this.user.roles.indexOf('ROLE_STUDENT')) !== -1) && (localStorage.getItem('rol') === 'ROLE_STUDENT');\n }\n\n updateUserLessons(lessons) {\n this.getCurrentUser().lessons = lessons;\n }\n}\n\nfunction utf8_to_b64(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {\n return String.fromCharCode('0x' + p1);\n }));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/authentication.service.ts","import { Injectable } from '@angular/core';\nimport { Router, CanActivate } from '@angular/router';\n\nimport { AuthenticationService } from './services/authentication.service';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n\n constructor(private router: Router, private authenticationService: AuthenticationService) { }\n\n canActivate() {\n if (localStorage.getItem('login') && localStorage.getItem('rol') && this.authenticationService.isLoggedIn()) {\n // logged in so return true\n return true;\n }\n\n // not logged in so redirect to login page\n this.router.navigate(['']);\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth.guard.ts","import { Component, OnInit, EventEmitter } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MdDialog, MdDialogRef, MdSnackBar } from '@angular/material';\n\nimport { Lesson } from '../../models/lesson';\n\nimport { LessonService } from '../../services/lesson.service';\nimport { VideoSessionService } from '../../services/video-session.service';\nimport { AuthenticationService } from '../../services/authentication.service';\n\nimport { JoinSessionDialogComponent } from './join-session-dialog.component';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css'],\n})\nexport class DashboardComponent implements OnInit {\n\n lessons: Lesson[];\n\n addingLesson: false;\n lessonTitle: string;\n sumbitNewLesson: boolean;\n\n constructor(\n private lessonService: LessonService,\n private videoSessionService: VideoSessionService,\n private authenticationService: AuthenticationService,\n private router: Router,\n public snackBar: MdSnackBar,\n public dialog: MdDialog\n ) { }\n\n ngOnInit(): void {\n this.authenticationService.checkCredentials();\n this.getLessons();\n }\n\n logout() {\n this.authenticationService.logOut();\n }\n\n getLessons(): void {\n this.lessonService.getLessons(this.authenticationService.getCurrentUser()).subscribe(\n lessons => {\n console.log('User\\'s lessons: ');\n console.log(lessons);\n this.lessons = lessons;\n this.authenticationService.updateUserLessons(this.lessons);\n },\n error => console.log(error));\n }\n\n goToLesson(lesson: Lesson) {\n let dialogRef: MdDialogRef;\n dialogRef = this.dialog.open(JoinSessionDialogComponent);\n dialogRef.componentInstance.myReference = dialogRef;\n\n dialogRef.afterClosed().subscribe(cameraOptions => {\n if (cameraOptions != null) {\n console.log('Joining session with options:');\n console.log(cameraOptions);\n this.videoSessionService.lesson = lesson;\n this.videoSessionService.cameraOptions = cameraOptions;\n this.router.navigate(['/lesson/' + lesson.id]);\n }\n });\n }\n\n goToLessonDetails(lesson: Lesson) {\n this.router.navigate(['/lesson-details/' + lesson.id]);\n }\n\n newLesson() {\n this.sumbitNewLesson = true;\n this.lessonService.newLesson(new Lesson(this.lessonTitle)).subscribe(\n lesson => {\n console.log('New lesson added: ');\n console.log(lesson);\n this.lessons.push(lesson);\n this.authenticationService.updateUserLessons(this.lessons);\n this.sumbitNewLesson = false;\n this.snackBar.open('Lesson added!', undefined, { duration: 3000 });\n this.addingLesson = false;\n },\n error => {\n console.log(error);\n this.sumbitNewLesson = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n }\n );\n }\n\n createSession(lessonId: number){\n this.videoSessionService.createSession(lessonId).subscribe(\n response => {\n console.log(response.text());\n },\n error => {\n console.log(error);\n }\n )\n }\n\n generateToken(lessonId: number) {\n this.videoSessionService.generateToken(lessonId).subscribe(\n response => {\n console.log(response.text());\n },\n error => {\n console.log(error);\n }\n )\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/dashboard/dahsboard.component.ts","import { Component } from '@angular/core';\nimport { MdDialogRef } from '@angular/material';\n\n@Component({\n selector: 'app-join-session-dialog',\n template: `\n \n
\n Video options\n \n
\n
\n `,\n styles: [`\n #quality-div {\n margin-top: 20px;\n }\n #join-div {\n margin-top: 25px;\n margin-bottom: 20px;\n }\n #quality-tag {\n display: block;\n }\n h5 {\n margin-bottom: 10px;\n text-align: left;\n }\n #joinWithVideo {\n margin-right: 50px;\n }\n md-dialog-actions {\n display: block;\n }\n #join-btn {\n float: right;\n }\n `],\n})\nexport class JoinSessionDialogComponent {\n\n public myReference: MdDialogRef;\n private quality = 'medium';\n private joinWithVideo = true;\n private joinWithAudio = true;\n\n constructor() { }\n\n joinSession() {\n let cameraOptions = {\n audio: this.joinWithAudio,\n video: this.joinWithVideo,\n data: true,\n mediaConstraints: this.generateMediaConstraints()\n };\n this.myReference.close(cameraOptions);\n }\n\n generateMediaConstraints() {\n let mediaConstraints = {\n audio: true,\n video: {}\n }\n let w = 640;\n let h = 480;\n switch (this.quality) {\n case 'low':\n w = 320;\n h = 240;\n break;\n case 'medium':\n w = 640;\n h = 480;\n break;\n case 'high':\n w = 1280;\n h = 720;\n break;\n case 'veryhigh':\n w = 1920;\n h = 1080;\n break;\n }\n mediaConstraints.video['width'] = { exact: w };\n mediaConstraints.video['height'] = { exact: h };\n //mediaConstraints.video['frameRate'] = { ideal: Number((document.getElementById('frameRate')).value) };\n\n return mediaConstraints;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/dashboard/join-session-dialog.component.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { Location } from '@angular/common';\nimport { MdSnackBar } from '@angular/material';\n\nimport { Lesson } from '../../models/lesson';\nimport { User } from '../../models/user';\n\nimport { LessonService } from '../../services/lesson.service';\nimport { AuthenticationService } from '../../services/authentication.service';\n\n@Component({\n selector: 'app-lesson-details',\n templateUrl: './lesson-details.component.html',\n styleUrls: ['./lesson-details.component.css'],\n})\nexport class LessonDetailsComponent implements OnInit {\n\n lesson: Lesson;\n\n editingTitle = false;\n titleEdited: string;\n sumbitEditLesson = false;\n emailAttender: string;\n sumbitAddAttenders = false;\n arrayOfAttDels = [];\n\n // Feedback message parameters\n addAttendersCorrect = false;\n addAttendersError = false;\n attErrorTitle: string;\n attErrorContent: string;\n attCorrectTitle: string;\n attCorrectContent: string;\n\n constructor(\n private lessonService: LessonService,\n private authenticationService: AuthenticationService,\n private router: Router,\n private route: ActivatedRoute,\n private location: Location,\n public snackBar: MdSnackBar\n ) { }\n\n ngOnInit(): void {\n this.route.params\n .map((params: Params) => this.lessonService.obtainLocalLesson(+params['id']))\n .subscribe(lesson => this.lesson = lesson);\n }\n\n editLesson() {\n if (this.titleEdited !== this.lesson.title) {\n this.sumbitEditLesson = true;\n let l = new Lesson(this.titleEdited);\n l.id = this.lesson.id;\n this.lessonService.editLesson(l).subscribe(\n lesson => {\n // Lesson has been updated\n console.log('Lesson edited: ');\n console.log(lesson);\n this.lesson = lesson;\n this.sumbitEditLesson = false;\n this.editingTitle = false;\n this.snackBar.open('Lesson edited!', undefined, { duration: 3000 });\n },\n error => {\n console.log(error);\n this.sumbitEditLesson = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n });\n } else {\n this.editingTitle = false; // The user has not modified the title\n }\n }\n\n deleteLesson() {\n this.sumbitEditLesson = true;\n this.lessonService.deleteLesson(this.lesson.id).subscribe(\n lesson => {\n // Lesson has been deleted\n console.log('Lesson deleted');\n console.log(lesson);\n this.sumbitEditLesson = false;\n this.router.navigate(['/lessons']);\n this.snackBar.open('Lesson deleted!', undefined, { duration: 3000 });\n },\n error => {\n console.log(error);\n this.sumbitEditLesson = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n });\n }\n\n addLessonAttenders() {\n this.sumbitAddAttenders = true;\n this.lessonService.addLessonAttenders(this.lesson.id, [this.emailAttender]).subscribe(\n response => { // response: attendersAdded, attendersAlreadyAdded, emailsInvalid, emailsValidNotRegistered\n console.log('Attender added');\n console.log(response);\n this.sumbitAddAttenders = false;\n let newAttenders = response.attendersAdded as User[];\n this.lesson.attenders = this.lesson.attenders.concat(newAttenders);\n this.handleAttendersMessage(response);\n },\n error => {\n console.log(error);\n this.sumbitAddAttenders = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n });\n }\n\n deleteLessonAttender(i: number, attender: User) {\n this.arrayOfAttDels[i] = true;\n let l = new Lesson(this.lesson.title);\n l.id = this.lesson.id;\n for (let i = 0; i < this.lesson.attenders.length; i++) {\n if (this.lesson.attenders[i].id !== attender.id) {\n l.attenders.push(new User(this.lesson.attenders[i])); //Inserting a new User object equal to the attender but \"lessons\" array empty\n }\n }\n this.lessonService.deleteLessonAttenders(l).subscribe(\n attenders => {\n console.log('Attender removed');\n console.log(attenders);\n this.arrayOfAttDels[i] = false;\n this.lesson.attenders = attenders;\n this.snackBar.open('Attender removed!', undefined, { duration: 3000 });\n },\n error => {\n console.log(error);\n this.arrayOfAttDels[i] = false;\n this.snackBar.open('There has been a problem...', undefined, { duration: 3000 });\n });\n }\n\n // Creates an error message when there is any problem during the process of adding Users to a Lesson\n // It also generates a correct feedback message when any student has been correctly added to the Lesson\n handleAttendersMessage(response) {\n let isError: boolean = false;\n let isCorrect: boolean = false;\n this.attErrorContent = \"\";\n this.attCorrectContent = \"\";\n\n if (response.attendersAdded.length > 0) {\n for (let user of response.attendersAdded) {\n this.attCorrectContent += \"\" + user.name + \" \";\n }\n isCorrect = true;\n }\n if (response.attendersAlreadyAdded.length > 0) {\n this.attErrorContent += \"The following users were already added to the lesson \";\n for (let user of response.attendersAlreadyAdded) {\n this.attErrorContent += \"\" + user.name + \" \";\n }\n isError = true;\n }\n if (response.emailsValidNotRegistered.length > 0) {\n this.attErrorContent += \"The following users are not registered \";\n for (let email of response.emailsValidNotRegistered) {\n this.attErrorContent += \"\" + email + \" \";\n }\n isError = true;\n }\n if (response.emailsInvalid) {\n if (response.emailsInvalid.length > 0) {\n this.attErrorContent += \"These are not valid emails \";\n for (let email of response.emailsInvalid) {\n this.attErrorContent += \"\" + email + \" \";\n }\n isError = true;\n }\n }\n if (isError) {\n this.attErrorTitle = \"There have been some problems\";\n this.addAttendersError = true;\n } else if (response.attendersAdded.length == 0) {\n this.attErrorTitle = \"No emails there!\";\n this.addAttendersError = true;\n }\n if (isCorrect) {\n this.attCorrectTitle = \"The following users where properly added\";\n this.addAttendersCorrect = true;\n }\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/lesson-details/lesson-details.component.ts","import { Component, OnInit, AfterViewChecked } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthenticationService } from '../../services/authentication.service';\nimport { UserService } from '../../services/user.service';\n\n@Component({\n selector: 'app-presentation',\n templateUrl: './presentation.component.html',\n styleUrls: ['./presentation.component.css']\n})\n\nexport class PresentationComponent implements OnInit, AfterViewChecked {\n\n private email: string;\n private password: string;\n private confirmPassword: string;\n private nickName: string;\n private roleUserSignup = 'student';\n\n private loginView = true;\n private fieldsIncorrect: boolean;\n private submitProcessing: boolean;\n\n private tableShow = false;\n\n // Error message content\n private errorTitle: string;\n private errorContent: string;\n private customClass: string;\n\n constructor(\n private authenticationService: AuthenticationService,\n private userService: UserService,\n private router: Router) { }\n\n ngOnInit() { }\n\n // If the user is loggedIn, navigates to dashboard\n ngAfterViewChecked() {\n if (this.authenticationService.isLoggedIn()) {\n this.router.navigate(['/lessons']);\n }\n }\n\n setLoginView(option: boolean) {\n this.fieldsIncorrect = false;\n this.loginView = option;\n }\n\n onSubmit() {\n console.log('Submit: email = ' + this.email + ' , password = ' + this.password + ', confirmPassword = ' + this.confirmPassword);\n this.submitProcessing = true;\n\n if (this.loginView) {\n // If login view is activated\n console.log('Logging in...');\n this.logIn(this.email, this.password);\n } else {\n // If signup view is activated\n console.log('Signing up...');\n this.signUp();\n }\n }\n\n logIn(user: string, pass: string) {\n this.authenticationService.logIn(user, pass).subscribe(\n result => {\n this.submitProcessing = false;\n\n console.log('Login succesful! LOGGED AS ' + this.authenticationService.getCurrentUser().name);\n\n // Login successful\n this.fieldsIncorrect = false;\n this.router.navigate(['/lessons']);\n },\n error => {\n\n console.log('Login failed (error): ' + error);\n\n this.errorTitle = 'Invalid field';\n this.errorContent = 'Please check your email or password';\n this.customClass = 'fail';\n\n // Login failed\n this.handleError();\n }\n );\n }\n\n signUp() {\n\n // Passwords don't match\n if (this.password !== this.confirmPassword) {\n this.errorTitle = 'Your passwords don\\'t match!';\n this.errorContent = '';\n this.customClass = 'fail';\n this.handleError();\n }\n\n else {\n\n let userNameFixed = this.email;\n let userPasswordFixed = this.password;\n\n this.userService.newUser(userNameFixed, userPasswordFixed, this.nickName, this.roleUserSignup).subscribe(\n result => {\n\n // Sign up succesful\n this.logIn(userNameFixed, userPasswordFixed);\n console.log('Sign up succesful!');\n },\n error => {\n\n console.log('Sign up failed (error): ' + error);\n if (error === 409) { // CONFLICT: Email already in use\n this.errorTitle = 'Invalid email';\n this.errorContent = 'That email is already in use';\n this.customClass = 'fail';\n } else if (error === 403) { // FORBIDDEN: Invalid email format\n this.errorTitle = 'Invalid email format';\n this.errorContent = 'Our server has rejected that email';\n this.customClass = 'fail';\n }\n\n // Sign up failed\n this.handleError();\n }\n );\n }\n }\n\n handleError() {\n this.submitProcessing = false;\n this.fieldsIncorrect = true;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/presentation/presentation.component.ts","import { Component, OnInit } from '@angular/core';\n\nimport { AuthenticationService } from '../../services/authentication.service';\nimport { User } from '../../models/user';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.css']\n})\nexport class ProfileComponent implements OnInit {\n\n private user: User;\n\n constructor(private authenticationService: AuthenticationService) { }\n\n ngOnInit() {\n this.user = this.authenticationService.getCurrentUser();\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/profile/profile.component.ts","import { Component, OnInit } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { OpenVidu, Session, Publisher } from 'openvidu-browser';\n\nimport { VideoSessionService } from '../../services/video-session.service';\nimport { AuthenticationService } from '../../services/authentication.service';\n\nimport { Lesson } from '../../models/lesson';\n\n@Component({\n selector: 'app-video-session',\n templateUrl: './video-session.component.html',\n styleUrls: ['./video-session.component.css']\n})\nexport class VideoSessionComponent implements OnInit {\n\n lesson: Lesson;\n\n OV: OpenVidu;\n session: Session;\n publisher: Publisher;\n\n sessionId: string;\n token: string;\n\n cameraOptions: any;\n\n localVideoActivated: boolean;\n localAudioActivated: boolean;\n videoIcon: string;\n audioIcon: string;\n fullscreenIcon: string;\n\n constructor(\n private location: Location,\n private authenticationService: AuthenticationService,\n private videoSessionService: VideoSessionService) { }\n\n\n OPEN_VIDU_CONNECTION() {\n\n // 0) Obtain 'sessionId' and 'token' from server\n // In this case, the method ngOnInit takes care of it\n\n\n // 1) Initialize OpenVidu and your Session\n this.OV = new OpenVidu();\n this.session = this.OV.initSession(this.sessionId);\n\n\n // 2) Specify the actions when events take place\n this.session.on('streamCreated', (event) => {\n console.warn(\"STREAM CREATED!\");\n console.warn(event.stream);\n this.session.subscribe(event.stream, 'subscriber', {\n insertMode: 'append',\n width: '100%',\n height: '100%'\n });\n });\n\n this.session.on('streamDestroyed', (event) => {\n console.warn(\"STREAM DESTROYED!\");\n console.warn(event.stream);\n });\n\n this.session.on('connectionCreated', (event) => {\n if (event.connection.connectionId == this.session.connection.connectionId) {\n console.warn(\"YOUR OWN CONNECTION CREATED!\");\n } else {\n console.warn(\"OTHER USER'S CONNECTION CREATED!\");\n }\n console.warn(event.connection);\n });\n\n this.session.on('connectionDestroyed', (event) => {\n console.warn(\"OTHER USER'S CONNECTION DESTROYED!\");\n console.warn(event.connection);\n });\n\n\n\n // 3) Connect to the session\n this.session.connect(this.token, \"CLIENT:\" + this.authenticationService.getCurrentUser().name, (error) => {\n\n // If the connection is successful, initialize a publisher and publish to the session\n if (!error) {\n\n if (this.authenticationService.isTeacher()) {\n\n // 4) Get your own camera stream with the desired resolution and publish it, only if the user is supposed to do so\n this.publisher = this.OV.initPublisher('publisher', this.cameraOptions);\n\n this.publisher.on('accessAllowed', () => {\n console.warn(\"CAMERA ACCESS ALLOWED!\");\n });\n this.publisher.on('accessDenied', () => {\n console.warn(\"CAMERA ACCESS DENIED!\");\n });\n this.publisher.on('streamCreated', (event) => {\n console.warn(\"STREAM CREATED BY PUBLISHER!\");\n console.warn(event.stream);\n })\n\n // 5) Publish your stream\n this.session.publish(this.publisher);\n\n }\n\n } else {\n console.log('There was an error connecting to the session:', error.code, error.message);\n }\n });\n }\n\n\n ngOnInit() {\n\n // Specific aspects of this concrete application\n this.previousConnectionStuff();\n\n\n if (this.authenticationService.isTeacher()) {\n\n // If the user is the teacher: creates the session and gets a token (with PUBLISHER role)\n this.videoSessionService.createSession(this.lesson.id).subscribe(\n sessionId => { // {0: sessionId}\n this.sessionId = sessionId[0];\n this.videoSessionService.generateToken(this.lesson.id).subscribe(\n sessionIdAndToken => {\n this.token = sessionIdAndToken[1];\n console.warn(\"Token: \" + this.token);\n console.warn(\"SessionId: \" + this.sessionId);\n this.OPEN_VIDU_CONNECTION();\n },\n error => {\n console.log(error);\n });\n },\n error => {\n console.log(error);\n }\n );\n }\n else {\n\n // If the user is a student: gets a token (with SUBSCRIBER role)\n this.videoSessionService.generateToken(this.lesson.id).subscribe(\n sessionIdAndToken => { // {0: sessionId, 1: token}\n this.sessionId = sessionIdAndToken[0];\n this.token = sessionIdAndToken[1];\n console.warn(\"Token: \" + this.token);\n console.warn(\"SessionId: \" + this.sessionId);\n this.OPEN_VIDU_CONNECTION();\n },\n error => {\n console.log(error);\n });\n }\n\n\n // Specific aspects of this concrete application\n this.afterConnectionStuff();\n }\n\n ngAfterViewInit() {\n this.toggleScrollPage(\"hidden\");\n }\n\n ngOnDestroy() {\n this.videoSessionService.removeUser(this.lesson.id).subscribe(\n response => {\n console.warn(\"You have succesfully left the lesson\");\n },\n error => {\n console.log(error);\n });\n this.toggleScrollPage(\"auto\");\n this.exitFullScreen();\n if (this.OV) this.session.disconnect();\n }\n\n toggleScrollPage(scroll: string) {\n let content = document.getElementsByClassName(\"mat-sidenav-content\")[0];\n content.style.overflow = scroll;\n }\n\n toggleLocalVideo() {\n this.localVideoActivated = !this.localVideoActivated;\n this.publisher.publishVideo(this.localVideoActivated);\n this.videoIcon = this.localVideoActivated ? 'videocam' : 'videocam_off';\n }\n\n toggleLocalAudio() {\n this.localAudioActivated = !this.localAudioActivated;\n this.publisher.publishAudio(this.localAudioActivated);\n this.audioIcon = this.localAudioActivated ? 'mic' : 'mic_off';\n }\n\n toggleFullScreen() {\n let document: any = window.document;\n let fs = document.getElementsByTagName('html')[0];\n if (!document.fullscreenElement &&\n !document.mozFullScreenElement &&\n !document.webkitFullscreenElement &&\n !document.msFullscreenElement) {\n console.log(\"enter FULLSCREEN!\");\n this.fullscreenIcon = 'fullscreen_exit';\n if (fs.requestFullscreen) {\n fs.requestFullscreen();\n } else if (fs.msRequestFullscreen) {\n fs.msRequestFullscreen();\n } else if (fs.mozRequestFullScreen) {\n fs.mozRequestFullScreen();\n } else if (fs.webkitRequestFullscreen) {\n fs.webkitRequestFullscreen();\n }\n } else {\n console.log(\"exit FULLSCREEN!\");\n this.fullscreenIcon = 'fullscreen';\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n }\n }\n }\n\n exitFullScreen() {\n let document: any = window.document;\n let fs = document.getElementsByTagName('html')[0];\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n }\n }\n\n previousConnectionStuff() {\n this.lesson = this.videoSessionService.lesson;\n this.cameraOptions = this.videoSessionService.cameraOptions;\n }\n\n afterConnectionStuff() {\n this.localVideoActivated = this.cameraOptions.video;\n this.localAudioActivated = this.cameraOptions.audio;\n this.videoIcon = this.localVideoActivated ? \"videocam\" : \"videocam_off\";\n this.audioIcon = this.localAudioActivated ? \"mic\" : \"mic_off\";\n this.fullscreenIcon = \"fullscreen\";\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/video-session/video-session.component.ts","import { User } from './user';\n\nexport class Lesson {\n\n public id?: number;\n public title: string;\n public teacher: User;\n public attenders: User[];\n\n constructor(title: string) {\n this.title = title;\n this.attenders = [];\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/lesson.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions, Response } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\n\nimport { User } from '../models/user';\n\n@Injectable()\nexport class UserService {\n\n private url = 'api-users';\n\n constructor(private http: Http) { }\n\n newUser(name: string, pass: string, nickName: string, role: string) {\n let body = JSON.stringify([name, pass, nickName, role]);\n let headers = new Headers({\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + \"/new\", body, options)\n .map(response => response.json() as User)\n .catch(error => this.handleError(error));\n }\n\n private handleError(error: any) {\n return Observable.throw(error.status);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/user.service.ts","/*\n * (C) Copyright 2013-2015 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\"use strict\";\n\nvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\n\nvar Logger = console;\n\n/**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */\n\n/*var WebSocket = BrowserWebSocket;\nif (!WebSocket && typeof window === 'undefined') {\n try {\n WebSocket = require('ws');\n } catch (e) { }\n}*/\n\n//var SockJS = require('sockjs-client');\n\nvar MAX_RETRIES = 2000; // Forever...\nvar RETRY_TIME_MS = 3000; // FIXME: Implement exponential wait times...\n\nvar CONNECTING = 0;\nvar OPEN = 1;\nvar CLOSING = 2;\nvar CLOSED = 3;\n\n/*\nconfig = {\n\t\turi : wsUri,\n\t\tuseSockJS : true (use SockJS) / false (use WebSocket) by default,\n\t\tonconnected : callback method to invoke when connection is successful,\n\t\tondisconnect : callback method to invoke when the connection is lost,\n\t\tonreconnecting : callback method to invoke when the client is reconnecting,\n\t\tonreconnected : callback method to invoke when the client succesfully reconnects,\n\t};\n*/\nfunction WebSocketWithReconnection(config) {\n\n var closing = false;\n var registerMessageHandler;\n var wsUri = config.uri;\n var useSockJS = config.useSockJS;\n var reconnecting = false;\n\n var forcingDisconnection = false;\n\n var ws;\n\n if (useSockJS) {\n ws = new SockJS(wsUri);\n } else {\n ws = new WebSocket(wsUri);\n }\n\n ws.onopen = function() {\n logConnected(ws, wsUri);\n if (config.onconnected) {\n config.onconnected();\n }\n };\n\n ws.onerror = function(error) {\n Logger.error(\"Could not connect to \" + wsUri + \" (invoking onerror if defined)\", error);\n if (config.onerror) {\n config.onerror(error);\n }\n };\n\n function logConnected(ws, wsUri) {\n try {\n Logger.debug(\"WebSocket connected to \" + wsUri);\n } catch (e) {\n Logger.error(e);\n }\n }\n\n var reconnectionOnClose = function() {\n if (ws.readyState === CLOSED) {\n if (closing) {\n Logger.debug(\"Connection closed by user\");\n } else {\n Logger.debug(\"Connection closed unexpectecly. Reconnecting...\");\n reconnectToSameUri(MAX_RETRIES, 1);\n }\n } else {\n Logger.debug(\"Close callback from previous websocket. Ignoring it\");\n }\n };\n\n ws.onclose = reconnectionOnClose;\n\n function reconnectToSameUri(maxRetries, numRetries) {\n Logger.debug(\"reconnectToSameUri (attempt #\" + numRetries + \", max=\" + maxRetries + \")\");\n\n if (numRetries === 1) {\n if (reconnecting) {\n Logger.warn(\"Trying to reconnectToNewUri when reconnecting... Ignoring this reconnection.\")\n return;\n } else {\n reconnecting = true;\n }\n\n if (config.onreconnecting) {\n config.onreconnecting();\n }\n }\n\n if (forcingDisconnection) {\n reconnectToNewUri(maxRetries, numRetries, wsUri);\n\n } else {\n if (config.newWsUriOnReconnection) {\n config.newWsUriOnReconnection(function(error, newWsUri) {\n\n if (error) {\n Logger.debug(error);\n setTimeout(function() {\n reconnectToSameUri(maxRetries, numRetries + 1);\n }, RETRY_TIME_MS);\n } else {\n reconnectToNewUri(maxRetries, numRetries, newWsUri);\n }\n })\n } else {\n reconnectToNewUri(maxRetries, numRetries, wsUri);\n }\n }\n }\n\n // TODO Test retries. How to force not connection?\n function reconnectToNewUri(maxRetries, numRetries, reconnectWsUri) {\n Logger.debug(\"Reconnection attempt #\" + numRetries);\n\n ws.close();\n\n wsUri = reconnectWsUri || wsUri;\n\n var newWs;\n if (useSockJS) {\n newWs = new SockJS(wsUri);\n } else {\n newWs = new WebSocket(wsUri);\n }\n\n newWs.onopen = function() {\n Logger.debug(\"Reconnected after \" + numRetries + \" attempts...\");\n logConnected(newWs, wsUri);\n reconnecting = false;\n registerMessageHandler();\n if (config.onreconnected()) {\n config.onreconnected();\n }\n\n newWs.onclose = reconnectionOnClose;\n };\n\n var onErrorOrClose = function(error) {\n Logger.warn(\"Reconnection error: \", error);\n\n if (numRetries === maxRetries) {\n if (config.ondisconnect) {\n config.ondisconnect();\n }\n } else {\n setTimeout(function() {\n reconnectToSameUri(maxRetries, numRetries + 1);\n }, RETRY_TIME_MS);\n }\n };\n\n newWs.onerror = onErrorOrClose;\n\n ws = newWs;\n }\n\n this.close = function() {\n closing = true;\n ws.close();\n };\n\n\n // This method is only for testing\n this.forceClose = function(millis) {\n Logger.debug(\"Testing: Force WebSocket close\");\n\n if (millis) {\n Logger.debug(\"Testing: Change wsUri for \" + millis + \" millis to simulate net failure\");\n var goodWsUri = wsUri;\n wsUri = \"wss://21.234.12.34.4:443/\";\n\n forcingDisconnection = true;\n\n setTimeout(function() {\n Logger.debug(\"Testing: Recover good wsUri \" + goodWsUri);\n wsUri = goodWsUri;\n\n forcingDisconnection = false;\n\n }, millis);\n }\n\n ws.close();\n };\n\n this.reconnectWs = function() {\n Logger.debug(\"reconnectWs\");\n reconnectToSameUri(MAX_RETRIES, 1, wsUri);\n };\n\n this.send = function(message) {\n ws.send(message);\n };\n\n this.addEventListener = function(type, callback) {\n registerMessageHandler = function() {\n ws.addEventListener(type, callback);\n };\n\n registerMessageHandler();\n };\n}\n\nmodule.exports = WebSocketWithReconnection;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/transports/webSocketWithReconnection.js","/*\n * (C) Copyright 2014 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n\nvar defineProperty_IE8 = false\nif(Object.defineProperty)\n{\n try\n {\n Object.defineProperty({}, \"x\", {});\n }\n catch(e)\n {\n defineProperty_IE8 = true\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind\nif (!Function.prototype.bind) {\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP && oThis\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n fNOP.prototype = this.prototype;\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\n\n\nvar EventEmitter = require('events').EventEmitter;\n\nvar inherits = require('inherits');\n\nvar packers = require('./packers');\nvar Mapper = require('./Mapper');\n\n\nvar BASE_TIMEOUT = 5000;\n\n\nfunction unifyResponseMethods(responseMethods)\n{\n if(!responseMethods) return {};\n\n for(var key in responseMethods)\n {\n var value = responseMethods[key];\n\n if(typeof value == 'string')\n responseMethods[key] =\n {\n response: value\n }\n };\n\n return responseMethods;\n};\n\nfunction unifyTransport(transport)\n{\n if(!transport) return;\n\n // Transport as a function\n if(transport instanceof Function)\n return {send: transport};\n\n // WebSocket & DataChannel\n if(transport.send instanceof Function)\n return transport;\n\n // Message API (Inter-window & WebWorker)\n if(transport.postMessage instanceof Function)\n {\n transport.send = transport.postMessage;\n return transport;\n }\n\n // Stream API\n if(transport.write instanceof Function)\n {\n transport.send = transport.write;\n return transport;\n }\n\n // Transports that only can receive messages, but not send\n if(transport.onmessage !== undefined) return;\n if(transport.pause instanceof Function) return;\n\n throw new SyntaxError(\"Transport is not a function nor a valid object\");\n};\n\n\n/**\n * Representation of a RPC notification\n *\n * @class\n *\n * @constructor\n *\n * @param {String} method -method of the notification\n * @param params - parameters of the notification\n */\nfunction RpcNotification(method, params)\n{\n if(defineProperty_IE8)\n {\n this.method = method\n this.params = params\n }\n else\n {\n Object.defineProperty(this, 'method', {value: method, enumerable: true});\n Object.defineProperty(this, 'params', {value: params, enumerable: true});\n }\n};\n\n\n/**\n * @class\n *\n * @constructor\n *\n * @param {object} packer\n *\n * @param {object} [options]\n *\n * @param {object} [transport]\n *\n * @param {Function} [onRequest]\n */\nfunction RpcBuilder(packer, options, transport, onRequest)\n{\n var self = this;\n\n if(!packer)\n throw new SyntaxError('Packer is not defined');\n\n if(!packer.pack || !packer.unpack)\n throw new SyntaxError('Packer is invalid');\n\n var responseMethods = unifyResponseMethods(packer.responseMethods);\n\n\n if(options instanceof Function)\n {\n if(transport != undefined)\n throw new SyntaxError(\"There can't be parameters after onRequest\");\n\n onRequest = options;\n transport = undefined;\n options = undefined;\n };\n\n if(options && options.send instanceof Function)\n {\n if(transport && !(transport instanceof Function))\n throw new SyntaxError(\"Only a function can be after transport\");\n\n onRequest = transport;\n transport = options;\n options = undefined;\n };\n\n if(transport instanceof Function)\n {\n if(onRequest != undefined)\n throw new SyntaxError(\"There can't be parameters after onRequest\");\n\n onRequest = transport;\n transport = undefined;\n };\n\n if(transport && transport.send instanceof Function)\n if(onRequest && !(onRequest instanceof Function))\n throw new SyntaxError(\"Only a function can be after transport\");\n\n options = options || {};\n\n\n EventEmitter.call(this);\n\n if(onRequest)\n this.on('request', onRequest);\n\n\n if(defineProperty_IE8)\n this.peerID = options.peerID\n else\n Object.defineProperty(this, 'peerID', {value: options.peerID});\n\n var max_retries = options.max_retries || 0;\n\n\n function transportMessage(event)\n {\n self.decode(event.data || event);\n };\n\n this.getTransport = function()\n {\n return transport;\n }\n this.setTransport = function(value)\n {\n // Remove listener from old transport\n if(transport)\n {\n // W3C transports\n if(transport.removeEventListener)\n transport.removeEventListener('message', transportMessage);\n\n // Node.js Streams API\n else if(transport.removeListener)\n transport.removeListener('data', transportMessage);\n };\n\n // Set listener on new transport\n if(value)\n {\n // W3C transports\n if(value.addEventListener)\n value.addEventListener('message', transportMessage);\n\n // Node.js Streams API\n else if(value.addListener)\n value.addListener('data', transportMessage);\n };\n\n transport = unifyTransport(value);\n }\n\n if(!defineProperty_IE8)\n Object.defineProperty(this, 'transport',\n {\n get: this.getTransport.bind(this),\n set: this.setTransport.bind(this)\n })\n\n this.setTransport(transport);\n\n\n var request_timeout = options.request_timeout || BASE_TIMEOUT;\n var ping_request_timeout = options.ping_request_timeout || request_timeout;\n var response_timeout = options.response_timeout || BASE_TIMEOUT;\n var duplicates_timeout = options.duplicates_timeout || BASE_TIMEOUT;\n\n\n var requestID = 0;\n\n var requests = new Mapper();\n var responses = new Mapper();\n var processedResponses = new Mapper();\n\n var message2Key = {};\n\n\n /**\n * Store the response to prevent to process duplicate request later\n */\n function storeResponse(message, id, dest)\n {\n var response =\n {\n message: message,\n /** Timeout to auto-clean old responses */\n timeout: setTimeout(function()\n {\n responses.remove(id, dest);\n },\n response_timeout)\n };\n\n responses.set(response, id, dest);\n };\n\n /**\n * Store the response to ignore duplicated messages later\n */\n function storeProcessedResponse(ack, from)\n {\n var timeout = setTimeout(function()\n {\n processedResponses.remove(ack, from);\n },\n duplicates_timeout);\n\n processedResponses.set(timeout, ack, from);\n };\n\n\n /**\n * Representation of a RPC request\n *\n * @class\n * @extends RpcNotification\n *\n * @constructor\n *\n * @param {String} method -method of the notification\n * @param params - parameters of the notification\n * @param {Integer} id - identifier of the request\n * @param [from] - source of the notification\n */\n function RpcRequest(method, params, id, from, transport)\n {\n RpcNotification.call(this, method, params);\n\n this.getTransport = function()\n {\n return transport;\n }\n this.setTransport = function(value)\n {\n transport = unifyTransport(value);\n }\n\n if(!defineProperty_IE8)\n Object.defineProperty(this, 'transport',\n {\n get: this.getTransport.bind(this),\n set: this.setTransport.bind(this)\n })\n\n var response = responses.get(id, from);\n\n /**\n * @constant {Boolean} duplicated\n */\n if(!(transport || self.getTransport()))\n {\n if(defineProperty_IE8)\n this.duplicated = Boolean(response)\n else\n Object.defineProperty(this, 'duplicated',\n {\n value: Boolean(response)\n });\n }\n\n var responseMethod = responseMethods[method];\n\n this.pack = packer.pack.bind(packer, this, id)\n\n /**\n * Generate a response to this request\n *\n * @param {Error} [error]\n * @param {*} [result]\n *\n * @returns {string}\n */\n this.reply = function(error, result, transport)\n {\n // Fix optional parameters\n if(error instanceof Function || error && error.send instanceof Function)\n {\n if(result != undefined)\n throw new SyntaxError(\"There can't be parameters after callback\");\n\n transport = error;\n result = null;\n error = undefined;\n }\n\n else if(result instanceof Function\n || result && result.send instanceof Function)\n {\n if(transport != undefined)\n throw new SyntaxError(\"There can't be parameters after callback\");\n\n transport = result;\n result = null;\n };\n\n transport = unifyTransport(transport);\n\n // Duplicated request, remove old response timeout\n if(response)\n clearTimeout(response.timeout);\n\n if(from != undefined)\n {\n if(error)\n error.dest = from;\n\n if(result)\n result.dest = from;\n };\n\n var message;\n\n // New request or overriden one, create new response with provided data\n if(error || result != undefined)\n {\n if(self.peerID != undefined)\n {\n if(error)\n error.from = self.peerID;\n else\n result.from = self.peerID;\n }\n\n // Protocol indicates that responses has own request methods\n if(responseMethod)\n {\n if(responseMethod.error == undefined && error)\n message =\n {\n error: error\n };\n\n else\n {\n var method = error\n ? responseMethod.error\n : responseMethod.response;\n\n message =\n {\n method: method,\n params: error || result\n };\n }\n }\n else\n message =\n {\n error: error,\n result: result\n };\n\n message = packer.pack(message, id);\n }\n\n // Duplicate & not-overriden request, re-send old response\n else if(response)\n message = response.message;\n\n // New empty reply, response null value\n else\n message = packer.pack({result: null}, id);\n\n // Store the response to prevent to process a duplicated request later\n storeResponse(message, id, from);\n\n // Return the stored response so it can be directly send back\n transport = transport || this.getTransport() || self.getTransport();\n\n if(transport)\n return transport.send(message);\n\n return message;\n }\n };\n inherits(RpcRequest, RpcNotification);\n\n\n function cancel(message)\n {\n var key = message2Key[message];\n if(!key) return;\n\n delete message2Key[message];\n\n var request = requests.pop(key.id, key.dest);\n if(!request) return;\n\n clearTimeout(request.timeout);\n\n // Start duplicated responses timeout\n storeProcessedResponse(key.id, key.dest);\n };\n\n /**\n * Allow to cancel a request and don't wait for a response\n *\n * If `message` is not given, cancel all the request\n */\n this.cancel = function(message)\n {\n if(message) return cancel(message);\n\n for(var message in message2Key)\n cancel(message);\n };\n\n\n this.close = function()\n {\n // Prevent to receive new messages\n var transport = this.getTransport();\n if(transport && transport.close)\n transport.close();\n\n // Request & processed responses\n this.cancel();\n\n processedResponses.forEach(clearTimeout);\n\n // Responses\n responses.forEach(function(response)\n {\n clearTimeout(response.timeout);\n });\n };\n\n\n /**\n * Generates and encode a JsonRPC 2.0 message\n *\n * @param {String} method -method of the notification\n * @param params - parameters of the notification\n * @param [dest] - destination of the notification\n * @param {object} [transport] - transport where to send the message\n * @param [callback] - function called when a response to this request is\n * received. If not defined, a notification will be send instead\n *\n * @returns {string} A raw JsonRPC 2.0 request or notification string\n */\n this.encode = function(method, params, dest, transport, callback)\n {\n // Fix optional parameters\n if(params instanceof Function)\n {\n if(dest != undefined)\n throw new SyntaxError(\"There can't be parameters after callback\");\n\n callback = params;\n transport = undefined;\n dest = undefined;\n params = undefined;\n }\n\n else if(dest instanceof Function)\n {\n if(transport != undefined)\n throw new SyntaxError(\"There can't be parameters after callback\");\n\n callback = dest;\n transport = undefined;\n dest = undefined;\n }\n\n else if(transport instanceof Function)\n {\n if(callback != undefined)\n throw new SyntaxError(\"There can't be parameters after callback\");\n\n callback = transport;\n transport = undefined;\n };\n\n if(self.peerID != undefined)\n {\n params = params || {};\n\n params.from = self.peerID;\n };\n\n if(dest != undefined)\n {\n params = params || {};\n\n params.dest = dest;\n };\n\n // Encode message\n var message =\n {\n method: method,\n params: params\n };\n\n if(callback)\n {\n var id = requestID++;\n var retried = 0;\n\n message = packer.pack(message, id);\n\n function dispatchCallback(error, result)\n {\n self.cancel(message);\n\n callback(error, result);\n };\n\n var request =\n {\n message: message,\n callback: dispatchCallback,\n responseMethods: responseMethods[method] || {}\n };\n\n var encode_transport = unifyTransport(transport);\n\n function sendRequest(transport)\n {\n var rt = (method === 'ping' ? ping_request_timeout : request_timeout);\n request.timeout = setTimeout(timeout, rt*Math.pow(2, retried++));\n message2Key[message] = {id: id, dest: dest};\n requests.set(request, id, dest);\n\n transport = transport || encode_transport || self.getTransport();\n if(transport)\n return transport.send(message);\n\n return message;\n };\n\n function retry(transport)\n {\n transport = unifyTransport(transport);\n\n console.warn(retried+' retry for request message:',message);\n\n var timeout = processedResponses.pop(id, dest);\n clearTimeout(timeout);\n\n return sendRequest(transport);\n };\n\n function timeout()\n {\n if(retried < max_retries)\n return retry(transport);\n\n var error = new Error('Request has timed out');\n error.request = message;\n\n error.retry = retry;\n\n dispatchCallback(error)\n };\n\n return sendRequest(transport);\n };\n\n // Return the packed message\n message = packer.pack(message);\n\n transport = transport || this.getTransport();\n if(transport)\n return transport.send(message);\n\n return message;\n };\n\n /**\n * Decode and process a JsonRPC 2.0 message\n *\n * @param {string} message - string with the content of the message\n *\n * @returns {RpcNotification|RpcRequest|undefined} - the representation of the\n * notification or the request. If a response was processed, it will return\n * `undefined` to notify that it was processed\n *\n * @throws {TypeError} - Message is not defined\n */\n this.decode = function(message, transport)\n {\n if(!message)\n throw new TypeError(\"Message is not defined\");\n\n try\n {\n message = packer.unpack(message);\n }\n catch(e)\n {\n // Ignore invalid messages\n return console.debug(e, message);\n };\n\n var id = message.id;\n var ack = message.ack;\n var method = message.method;\n var params = message.params || {};\n\n var from = params.from;\n var dest = params.dest;\n\n // Ignore messages send by us\n if(self.peerID != undefined && from == self.peerID) return;\n\n // Notification\n if(id == undefined && ack == undefined)\n {\n var notification = new RpcNotification(method, params);\n\n if(self.emit('request', notification)) return;\n return notification;\n };\n\n\n function processRequest()\n {\n // If we have a transport and it's a duplicated request, reply inmediatly\n transport = unifyTransport(transport) || self.getTransport();\n if(transport)\n {\n var response = responses.get(id, from);\n if(response)\n return transport.send(response.message);\n };\n\n var idAck = (id != undefined) ? id : ack;\n var request = new RpcRequest(method, params, idAck, from, transport);\n\n if(self.emit('request', request)) return;\n return request;\n };\n\n function processResponse(request, error, result)\n {\n request.callback(error, result);\n };\n\n function duplicatedResponse(timeout)\n {\n console.warn(\"Response already processed\", message);\n\n // Update duplicated responses timeout\n clearTimeout(timeout);\n storeProcessedResponse(ack, from);\n };\n\n\n // Request, or response with own method\n if(method)\n {\n // Check if it's a response with own method\n if(dest == undefined || dest == self.peerID)\n {\n var request = requests.get(ack, from);\n if(request)\n {\n var responseMethods = request.responseMethods;\n\n if(method == responseMethods.error)\n return processResponse(request, params);\n\n if(method == responseMethods.response)\n return processResponse(request, null, params);\n\n return processRequest();\n }\n\n var processed = processedResponses.get(ack, from);\n if(processed)\n return duplicatedResponse(processed);\n }\n\n // Request\n return processRequest();\n };\n\n var error = message.error;\n var result = message.result;\n\n // Ignore responses not send to us\n if(error && error.dest && error.dest != self.peerID) return;\n if(result && result.dest && result.dest != self.peerID) return;\n\n // Response\n var request = requests.get(ack, from);\n if(!request)\n {\n var processed = processedResponses.get(ack, from);\n if(processed)\n return duplicatedResponse(processed);\n\n return console.warn(\"No callback was defined for this message\", message);\n };\n\n // Process response\n processResponse(request, error, result);\n };\n};\ninherits(RpcBuilder, EventEmitter);\n\n\nRpcBuilder.RpcNotification = RpcNotification;\n\n\nmodule.exports = RpcBuilder;\n\nvar clients = require('./clients');\nvar transports = require('./clients/transports');\n\nRpcBuilder.clients = clients;\nRpcBuilder.clients.transports = transports;\nRpcBuilder.packers = packers;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/index.js","/*\n * options: name: XXX data: true (Maybe this is based on webrtc) audio: true,\n * video: true, url: \"file:///...\" > Player screen: true > Desktop (implicit\n * video:true, audio:false) audio: true, video: true > Webcam\n *\n * stream.hasAudio(); stream.hasVideo(); stream.hasData();\n */\nimport { Stream, StreamOptions, VideoOptions } from '../OpenViduInternal/Stream';\nimport { Session } from './Session';\n\nimport EventEmitter = require('wolfy87-eventemitter');\n\nexport class Publisher {\n\n private ee = new EventEmitter();\n\n accessAllowed = false;\n element: Element;\n id: string;\n stream: Stream;\n session: Session; //Initialized by Session.publish(Publisher)\n\n constructor(stream: Stream, parentId: string) {\n this.stream = stream;\n\n this.stream.addEventListener('camera-access-changed', (event) => {\n this.accessAllowed = event.accessAllowed;\n if (this.accessAllowed) {\n this.ee.emitEvent('accessAllowed');\n } else {\n this.ee.emitEvent('accessDenied');\n }\n });\n\n if (document.getElementById(parentId) != null) {\n this.element = document.getElementById(parentId)!!;\n }\n }\n\n publishAudio(value: boolean) {\n this.stream.getWebRtcPeer().audioEnabled = value;\n }\n\n publishVideo(value: boolean) {\n this.stream.getWebRtcPeer().videoEnabled = value;\n }\n\n destroy() {\n this.session.unpublish(this);\n this.stream.dispose();\n this.stream.removeVideo(this.element);\n return this;\n }\n\n subscribeToRemote() {\n this.stream.subscribeToMyRemote();\n }\n\n on(eventName: string, callback) {\n this.ee.addListener(eventName, event => {\n if (event) {\n console.info(\"Event '\" + eventName + \"' triggered by 'Publisher'\", event);\n } else {\n console.info(\"Event '\" + eventName + \"' triggered by 'Publisher'\");\n }\n callback(event);\n });\n if (eventName == 'videoElementCreated') {\n if (this.stream.isVideoELementCreated) {\n this.ee.emitEvent('videoElementCreated', [{\n element: this.stream.getVideoElement()\n }]);\n } else {\n this.stream.addEventListener('video-element-created-by-stream', (element) => {\n this.id = element.id;\n this.ee.emitEvent('videoElementCreated', [{\n element: element.element\n }]);\n });\n }\n }\n if (eventName == 'remoteVideoPlaying') {\n var video = this.stream.getVideoElement();\n if (this.stream.displayMyRemote() && video &&\n video.currentTime > 0 && \n video.paused == false && \n video.ended == false &&\n video.readyState == 4) {\n this.ee.emitEvent('remoteVideoPlaying', [{\n element: this.stream.getVideoElement()\n }]);\n } else {\n this.stream.addEventListener('remote-video-is-playing', (element) => {\n console.warn('Publisher emitting remoteVideoPlaying');\n this.ee.emitEvent('remoteVideoPlaying', [{\n element: element.element\n }]);\n });\n }\n }\n if (eventName == 'streamCreated') {\n if (this.stream.isReady) {\n this.ee.emitEvent('streamCreated', [{ stream: this.stream }]);\n } else {\n this.stream.addEventListener('stream-created-by-publisher', () => {\n console.warn('Publisher emitting streamCreated');\n this.ee.emitEvent('streamCreated', [{ stream: this.stream }]);\n });\n }\n }\n if (eventName == 'accessAllowed') {\n if (this.stream.accessIsAllowed) {\n this.ee.emitEvent('accessAllowed');\n } else {\n this.stream.addEventListener('access-allowed-by-publisher', () => {\n this.ee.emitEvent('accessAllowed');\n });\n }\n }\n if (eventName == 'accessDenied') {\n if (this.stream.accessIsDenied) {\n this.ee.emitEvent('accessDenied');\n } else {\n this.stream.addEventListener('access-denied-by-publisher', () => {\n this.ee.emitEvent('accessDenied');\n });\n }\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Publisher.ts","import { SessionInternal, SessionOptions } from '../OpenViduInternal/SessionInternal';\nimport { Stream } from '../OpenViduInternal/Stream';\nimport { Connection } from \"../OpenViduInternal/Connection\";\n\nimport { OpenVidu } from './OpenVidu';\nimport { Publisher } from './Publisher';\nimport { Subscriber } from './Subscriber';\n\nimport EventEmitter = require('wolfy87-eventemitter');\n\nexport class Session {\n\n sessionId: String;\n //capabilities: Capabilities\n connection: Connection;\n\n private ee = new EventEmitter();\n\n constructor(private session: SessionInternal, private openVidu: OpenVidu) {\n this.sessionId = session.getSessionId();\n\n // Listens to the deactivation of the default behaviour upon the deletion of a Stream object\n this.session.addEventListener('stream-destroyed-default', event => {\n event.stream.removeVideo();\n });\n\n // Listens to the deactivation of the default behaviour upon the disconnection of a Session\n this.session.addEventListener('session-disconnected-default', () => {\n let s: Stream;\n for (s of this.openVidu.openVidu.getRemoteStreams()) {\n s.removeVideo();\n }\n if (this.connection) {\n for (let streamId in this.connection.getStreams()) {\n this.connection.getStreams()[streamId].removeVideo();\n }\n }\n });\n\n // Sets or updates the value of 'connection' property. Triggered by SessionInternal when succesful connection\n this.session.addEventListener('update-connection-object', event => {\n this.connection = event.connection;\n });\n }\n\n connect(token: string, callback: any);\n connect(token: string, metadata: any, callback: any);\n\n connect(param1, param2, param3?) {\n // Early configuration to deactivate automatic subscription to streams\n if (param3) {\n this.session.configure({\n sessionId: this.session.getSessionId(),\n participantId: param1,\n metadata: this.session.stringClientMetadata(param2),\n subscribeToStreams: false\n });\n this.session.connect(param1, param3);\n } else {\n this.session.configure({\n sessionId: this.session.getSessionId(),\n participantId: param1,\n metadata: '',\n subscribeToStreams: false\n });\n this.session.connect(param1, param2);\n }\n }\n\n disconnect() {\n this.openVidu.openVidu.close(false);\n this.session.emitEvent('sessionDisconnected', [{\n preventDefault: () => { this.session.removeEvent('session-disconnected-default'); }\n }]);\n this.session.emitEvent('session-disconnected-default', [{}]);\n }\n\n publish(publisher: Publisher) {\n publisher.session = this;\n publisher.stream.publish();\n }\n\n unpublish(publisher: Publisher) {\n this.session.unpublish(publisher.stream);\n }\n\n on(eventName: string, callback) {\n this.session.addEventListener(eventName, event => {\n if (event) {\n console.info(\"Event '\" + eventName + \"' triggered by 'Session'\", event);\n } else {\n console.info(\"Event '\" + eventName + \"' triggered by 'Session'\");\n }\n callback(event);\n });\n }\n\n once(eventName: string, callback) {\n this.session.addOnceEventListener(eventName, event => {\n callback(event);\n });\n }\n\n off(eventName: string, eventHandler) {\n this.session.removeListener(eventName, eventHandler);\n }\n\n subscribe(stream: Stream, htmlId: string, videoOptions: any): Subscriber;\n subscribe(stream: Stream, htmlId: string): Subscriber;\n\n subscribe(param1, param2, param3?): Subscriber {\n // Subscription\n this.session.subscribe(param1);\n let subscriber = new Subscriber(param1, param2);\n param1.playOnlyVideo(param2, null);\n return subscriber;\n }\n\n unsubscribe(subscriber: Subscriber) {\n this.session.unsuscribe(subscriber.stream);\n subscriber.stream.removeVideo();\n }\n\n\n\n\n /* Shortcut event API */\n\n onStreamCreated(callback) {\n this.session.addEventListener(\"streamCreated\", streamEvent => {\n callback(streamEvent.stream);\n });\n }\n\n onStreamDestroyed(callback) {\n this.session.addEventListener(\"streamDestroyed\", streamEvent => {\n callback(streamEvent.stream);\n });\n }\n\n onParticipantJoined(callback) {\n this.session.addEventListener(\"participant-joined\", participantEvent => {\n callback(participantEvent.connection);\n });\n }\n\n onParticipantLeft(callback) {\n this.session.addEventListener(\"participant-left\", participantEvent => {\n callback(participantEvent.connection);\n });\n }\n\n onParticipantPublished(callback) {\n this.session.addEventListener(\"participant-published\", participantEvent => {\n callback(participantEvent.connection);\n });\n }\n\n onParticipantEvicted(callback) {\n this.session.addEventListener(\"participant-evicted\", participantEvent => {\n callback(participantEvent.connection);\n });\n }\n\n onRoomClosed(callback) {\n this.session.addEventListener(\"room-closed\", roomEvent => {\n callback(roomEvent.room);\n });\n }\n\n onLostConnection(callback) {\n this.session.addEventListener(\"lost-connection\", roomEvent => {\n callback(roomEvent.room);\n });\n }\n\n onMediaError(callback) {\n this.session.addEventListener(\"error-media\", errorEvent => {\n callback(errorEvent.error)\n });\n }\n\n /* Shortcut event API */\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Session.ts","import { Stream, StreamOptions, VideoOptions } from '../OpenViduInternal/Stream';\n\nimport EventEmitter = require('wolfy87-eventemitter');\n\nexport class Subscriber {\n\n private ee = new EventEmitter();\n\n element: Element;\n id: string;\n stream: Stream;\n\n constructor(stream: Stream, parentId: string) {\n this.stream = stream;\n if (document.getElementById(parentId) != null) {\n this.element = document.getElementById(parentId)!!;\n }\n }\n\n on(eventName: string, callback) {\n this.ee.addListener(eventName, event => {\n if (event) {\n console.info(\"Event '\" + eventName + \"' triggered by 'Subscriber'\", event);\n } else {\n console.info(\"Event '\" + eventName + \"' triggered by 'Subscriber'\");\n }\n callback(event);\n });\n if (eventName == 'videoElementCreated') {\n if (this.stream.isReady) {\n this.ee.emitEvent('videoElementCreated', [{\n element: this.stream.getVideoElement()\n }]);\n } else {\n this.stream.addEventListener('video-element-created-by-stream', element => {\n console.warn(\"Subscriber emitting videoElementCreated\");\n this.id = element.id;\n this.ee.emitEvent('videoElementCreated', [{\n element: element\n }]);\n });\n }\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Subscriber.ts","import { Stream, StreamOptions } from './Stream';\nimport { OpenViduInternal } from './OpenViduInternal';\nimport { SessionInternal } from './SessionInternal';\n\ntype ObjMap = { [s: string]: T; }\n\nexport interface ConnectionOptions {\n id: string;\n metadata: string;\n streams?: StreamOptions[];\n audioOnly: boolean;\n}\n\nexport class Connection {\n\n public connectionId: string;\n public data: string;\n public creationTime: number;\n private streams: ObjMap = {};\n private streamsOpts: StreamOptions[] = [];\n\n constructor( private openVidu: OpenViduInternal, private local: boolean, private room: SessionInternal, private options?: ConnectionOptions ) {\n\n console.info( \"'Connection' created (\" + ( local ? \"local\" : \"remote\" ) + \")\" + ( local ? \"\" : \", with 'connectionId' [\" + (options ? options.id : '') + \"] \" ));\n\n if ( options ) {\n\n this.connectionId = options.id;\n this.data = options.metadata;\n\n if ( options.streams ) {\n this.initStreams(options);\n }\n }\n \n }\n\n addStream( stream: Stream ) {\n this.streams[stream.getIdInParticipant()] = stream;\n this.room.getStreams()[stream.getIdInParticipant()] = stream;\n }\n\n getStreams() {\n return this.streams;\n }\n\n dispose() {\n for ( let key in this.streams ) {\n this.streams[key].dispose();\n }\n }\n\n sendIceCandidate( candidate ) {\n\n console.debug(( this.local ? \"Local\" : \"Remote\" ), \"candidate for\",\n this.connectionId, JSON.stringify( candidate ) );\n\n this.openVidu.sendRequest( \"onIceCandidate\", {\n endpointName: this.connectionId,\n candidate: candidate.candidate,\n sdpMid: candidate.sdpMid,\n sdpMLineIndex: candidate.sdpMLineIndex\n }, function( error, response ) {\n if ( error ) {\n console.error( \"Error sending ICE candidate: \"\n + JSON.stringify( error ) );\n }\n });\n }\n\n initStreams(options) {\n for ( let streamOptions of options.streams ) {\n \n let streamOpts = {\n id: streamOptions.id,\n connection: this,\n recvVideo: ( streamOptions.recvVideo == undefined ? true : streamOptions.recvVideo ),\n recvAudio: ( streamOptions.recvAudio == undefined ? true : streamOptions.recvAudio ),\n audio: streamOptions.audio,\n video: streamOptions.video,\n data: streamOptions.data,\n mediaConstraints: streamOptions.mediaConstraints,\n audioOnly: streamOptions.audioOnly,\n }\n let stream = new Stream(this.openVidu, false, this.room, streamOpts );\n\n this.addStream( stream );\n this.streamsOpts.push( streamOpts );\n }\n\n console.info(\"Remote 'Connection' with 'connectionId' [\" + this.connectionId + \"] is now configured for receiving Streams with options: \", this.streamsOpts );\n }\n}\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Connection.ts","function webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 529;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src async\n// module id = 529\n// module chunks = 1","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthenticationService } from './services/authentication.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n\n constructor(private router: Router, private authenticationService: AuthenticationService) { }\n\n isVideoSessionUrl() {\n return (this.router.url.substring(0, '/lesson/'.length) === '/lesson/');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HttpModule } from '@angular/http';\n\nimport { routing } from './app.routing';\n\nimport { MaterialModule } from '@angular/material';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport 'hammerjs';\n\nimport { AppComponent } from './app.component';\nimport { PresentationComponent } from './components/presentation/presentation.component';\nimport { DashboardComponent } from './components/dashboard/dahsboard.component';\nimport { LessonDetailsComponent } from './components/lesson-details/lesson-details.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { VideoSessionComponent } from './components/video-session/video-session.component';\nimport { ErrorMessageComponent } from './components/error-message/error-message.component';\nimport { JoinSessionDialogComponent } from './components/dashboard/join-session-dialog.component';\n\nimport { AuthenticationService } from './services/authentication.service';\nimport { UserService } from './services/user.service';\nimport { LessonService } from './services/lesson.service';\nimport { VideoSessionService } from './services/video-session.service';\nimport { AuthGuard } from './auth.guard';\n\n\n@NgModule({\n declarations: [\n AppComponent,\n PresentationComponent,\n DashboardComponent,\n LessonDetailsComponent,\n ProfileComponent,\n VideoSessionComponent,\n ErrorMessageComponent,\n JoinSessionDialogComponent,\n ],\n imports: [\n BrowserModule,\n FormsModule,\n HttpModule,\n MaterialModule,\n FlexLayoutModule.forRoot(),\n routing,\n ],\n providers: [\n AuthenticationService,\n UserService,\n LessonService,\n VideoSessionService,\n AuthGuard,\n ],\n entryComponents: [\n JoinSessionDialogComponent,\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { ModuleWithProviders } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { PresentationComponent } from './components/presentation/presentation.component';\nimport { DashboardComponent } from './components/dashboard/dahsboard.component';\nimport { LessonDetailsComponent } from './components/lesson-details/lesson-details.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { VideoSessionComponent } from './components/video-session/video-session.component';\n\nimport { AuthGuard } from './auth.guard';\n\nconst appRoutes: Routes = [\n {\n path: '',\n component: PresentationComponent,\n pathMatch: 'full',\n },\n {\n path: 'lessons',\n component: DashboardComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'lesson-details/:id',\n component: LessonDetailsComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'profile',\n component: ProfileComponent,\n canActivate: [AuthGuard]\n },\n {\n path: 'lesson/:id',\n component: VideoSessionComponent,\n canActivate: [AuthGuard]\n },\n];\n\nexport const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, {useHash: true});\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.routing.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-error-message',\n templateUrl: './error-message.component.html',\n styleUrls: ['./error-message.component.css']\n})\nexport class ErrorMessageComponent {\n\n @Input()\n errorTitle: string;\n @Input()\n errorContent: string;\n @Input()\n customClass: string;\n @Input()\n closable: boolean;\n @Input()\n timeable: number;\n\n @Output()\n eventShowable = new EventEmitter();\n\n constructor() { }\n\n public closeAlert() {\n this.eventShowable.emit(false);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/error-message/error-message.component.ts","import { Lesson } from './lesson';\n\nexport class User {\n\n public id?: number;\n public name: string;\n public nickName: string;\n public roles: string[];\n public lessons: Lesson[];\n\n constructor(u: User) {\n this.id = u.id;\n this.name = u.name;\n this.nickName = u.nickName;\n this.roles = u.roles;\n this.lessons = [];\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/user.ts","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false,\n URL_BACK: 'https://localhost:5000'\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"md-sidenav {\\n width: 250px;\\n}\\n\\nmd-sidenav-container {\\n height: 100%;\\n}\\n\\nfooter.page-footer {\\n margin: 0;\\n}\\n\\nfooter h2 {\\n margin-top: 10px;\\n}\\n\\n.sidenav-button {\\n width: 100%;\\n}\\n\\nheader .fill-remaining-space {\\n -webkit-box-flex: 1;\\n -ms-flex: 1 1 auto;\\n flex: 1 1 auto;\\n}\\n\\nheader #navbar-logo {\\n font-weight: bold;\\n}\\n\\nfooter ul {\\n padding-left: 0;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.css\n// module id = 761\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"md-card {\\n margin-top: 20px;\\n}\\n\\nmd-card md-icon {\\n text-align: center;\\n}\\n\\nspan.teacher {\\n font-size: 12px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/dashboard/dashboard.component.css\n// module id = 762\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".fail {\\n background-color: rgba(167, 56, 65, 0.2);\\n color: #a73841;\\n}\\n\\n.warning {\\n background-color: rgba(175, 110, 0, 0.2);\\n color: #af6e00;\\n}\\n\\n.correct {\\n background-color: rgba(55, 86, 70, 0.25);\\n color: #375546;\\n}\\n\\nmd-icon {\\n cursor: pointer;\\n float: right;\\n}\\n\\nmd-card {\\n max-width: 400px;\\n margin-top: 20px;\\n margin-bottom: 20px;\\n box-shadow: none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/error-message/error-message.component.css\n// module id = 763\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".attender-email {\\n font-size: 11px;\\n}\\n\\n.no-margin-bottom {\\n margin-bottom: 0 !important;\\n}\\n\\n.attender-row {\\n width: 100%;\\n margin-top: 20px;\\n min-height: 27px;\\n}\\n\\n#new-attender-title {\\n margin-bottom: 5px;\\n}\\n\\n\\n/*Rotating animation*/\\n\\n@-webkit-keyframes rotating\\n/* Safari and Chrome */\\n\\n{\\n from {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n to {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n\\n@keyframes rotating {\\n from {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n to {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n\\n.rotating {\\n -webkit-animation: rotating 1s linear infinite;\\n animation: rotating 1s linear infinite;\\n cursor: default !important;\\n}\\n\\n.rotating:hover {\\n color: inherit !important;\\n}\\n\\n\\n/*End rotating animation*/\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/lesson-details/lesson-details.component.css\n// module id = 764\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"h1 {\\n text-align: center;\\n display: block;\\n}\\n\\nmd-input-container {\\n width: 100%;\\n}\\n\\nmd-card-actions {\\n padding-left: 10px;\\n padding-right: 10px;\\n color: #9e9e9e;\\n}\\n\\n.btn-container {\\n text-align: center;\\n padding-top: 20px;\\n}\\n\\n.card-button {\\n margin-left: 10px !important;\\n}\\n\\n.radio-button-div {\\n text-align: center;\\n margin-bottom: 10px;\\n}\\n\\n#sign-up-as {\\n color: #9e9e9e;\\n display: block;\\n margin-top: 15px;\\n margin-bottom: 10px;\\n}\\n\\ntable {\\n margin: 0 auto;\\n margin-top: 20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/presentation/presentation.component.css\n// module id = 765\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"table {\\n margin-top: 15px;\\n border-collapse: separate;\\n border-spacing: 15px 17px;\\n}\\n\\nth {\\n text-align: left;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/profile/profile.component.css\n// module id = 766\n// module chunks = 1","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"h1 {\\n text-align: center;\\n margin: 0;\\n color: white;\\n}\\n\\n#header-div {\\n position: absolute;\\n z-index: 1000;\\n width: 100%;\\n background: rgba(0, 0, 0, 0.4);\\n}\\n\\nmd-icon {\\n font-size: 38px;\\n width: 38px;\\n height: 38px;\\n color: white;\\n transition: color .2s linear;\\n}\\n\\nmd-icon:hover {\\n color: #ffd740;\\n}\\n\\n#back-btn {\\n float: left;\\n}\\n\\n.right-btn {\\n float: right;\\n}\\n\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/video-session/video-session.component.css\n// module id = 767\n// module chunks = 1","module.exports = \"\\n\\n \\n Lessons \\n Profile \\n Logout \\n \\n\\n \\n\\n \\n \\n \\n\\n \\n\\n \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.html\n// module id = 777\n// module chunks = 1","module.exports = \"\\n\\n\\n
\\n\\n
\\n
MY LESSONS
\\n
add_circle_outline \\n
\\n\\n
\\n\\n
\\n \\n {{lesson.title}} \\n {{lesson.teacher.nickName}} \\n mode_edit \\n play_circle_filled \\n
\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/dashboard/dashboard.component.html\n// module id = 778\n// module chunks = 1","module.exports = \"\\n clear \\n {{this.errorTitle}} \\n \\n \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/error-message/error-message.component.html\n// module id = 779\n// module chunks = 1","module.exports = \"\\n
\\n\\n
\\n keyboard_arrow_left \\n
{{lesson.title}} \\n mode_edit \\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
{{authenticationService.getCurrentUser().nickName}}
\\n
{{authenticationService.getCurrentUser().name}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
{{attender.nickName}}
\\n
{{attender.name}}
\\n
\\n
\\n
\\n clear \\n cached \\n
\\n
\\n
\\n \\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/lesson-details/lesson-details.component.html\n// module id = 780\n// module chunks = 1","module.exports = \"\\n
\\n\\n
OpenVidu Classroom Demo \\n\\n
\\n\\n
\\n \\n\\n \\n\\n \\n\\n \\n
\\n \\n Email \\n Password \\n \\n \\n teacher@gmail.com \\n pass \\n \\n \\n student1@gmail.com \\n pass \\n \\n \\n student2@gmail.com \\n pass \\n \\n
\\n
\\n\\n \\n\\n \\n Not registered yet?Sign up
\\n Already registered?Log in
\\n \\n\\n \\n\\n
\\n\\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/presentation/presentation.component.html\n// module id = 781\n// module chunks = 1","module.exports = \"\\n
\\n\\n
MY PROFILE
\\n
\\n \\n Name \\n {{authenticationService.getCurrentUser().nickName}} \\n \\n \\n Email \\n {{authenticationService.getCurrentUser().name}} \\n \\n
\\n \\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/profile/profile.component.html\n// module id = 782\n// module chunks = 1","module.exports = \"\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/components/video-session/video-session.component.html\n// module id = 783\n// module chunks = 1"],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/main/resources/static/polyfills.bundle.js b/src/main/resources/static/polyfills.bundle.js
index 105ae0c..a7637ca 100644
--- a/src/main/resources/static/polyfills.bundle.js
+++ b/src/main/resources/static/polyfills.bundle.js
@@ -1,46 +1,6 @@
webpackJsonp([0,4],{
-/***/ 10:
-/***/ (function(module, exports) {
-
-var g;
-
-// This works in non-strict mode
-g = (function() {
- return this;
-})();
-
-try {
- // This works if eval is allowed (see CSP)
- g = g || Function("return this")() || (1,eval)("this");
-} catch(e) {
- // This works if the window reference is available
- if(typeof window === "object")
- g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
-
-
-/***/ }),
-
-/***/ 11:
-/***/ (function(module, exports, __webpack_require__) {
-
-var isObject = __webpack_require__(27);
-module.exports = function (it) {
- if (!isObject(it)) throw TypeError(it + ' is not an object!');
- return it;
-};
-
-
-/***/ }),
-
-/***/ 1137:
+/***/ 1076:
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global, process) {/**
@@ -2139,210 +2099,19 @@ if (_global['PromiseRejectionEvent']) {
})));
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10), __webpack_require__(13)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33), __webpack_require__(776)))
/***/ }),
-/***/ 1139:
+/***/ 1078:
/***/ (function(module, exports, __webpack_require__) {
-module.exports = __webpack_require__(564);
-
-
-/***/ }),
-
-/***/ 13:
-/***/ (function(module, exports) {
-
-// shim for using process in browser
-var process = module.exports = {};
-
-// cached from whatever global is present so that test runners that stub it
-// don't break things. But we need to wrap it in a try catch in case it is
-// wrapped in strict mode code which doesn't define any globals. It's inside a
-// function because try/catches deoptimize in certain engines.
-
-var cachedSetTimeout;
-var cachedClearTimeout;
-
-function defaultSetTimout() {
- throw new Error('setTimeout has not been defined');
-}
-function defaultClearTimeout () {
- throw new Error('clearTimeout has not been defined');
-}
-(function () {
- try {
- if (typeof setTimeout === 'function') {
- cachedSetTimeout = setTimeout;
- } else {
- cachedSetTimeout = defaultSetTimout;
- }
- } catch (e) {
- cachedSetTimeout = defaultSetTimout;
- }
- try {
- if (typeof clearTimeout === 'function') {
- cachedClearTimeout = clearTimeout;
- } else {
- cachedClearTimeout = defaultClearTimeout;
- }
- } catch (e) {
- cachedClearTimeout = defaultClearTimeout;
- }
-} ())
-function runTimeout(fun) {
- if (cachedSetTimeout === setTimeout) {
- //normal enviroments in sane situations
- return setTimeout(fun, 0);
- }
- // if setTimeout wasn't available but was latter defined
- if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
- cachedSetTimeout = setTimeout;
- return setTimeout(fun, 0);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedSetTimeout(fun, 0);
- } catch(e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedSetTimeout.call(null, fun, 0);
- } catch(e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
- return cachedSetTimeout.call(this, fun, 0);
- }
- }
-
-
-}
-function runClearTimeout(marker) {
- if (cachedClearTimeout === clearTimeout) {
- //normal enviroments in sane situations
- return clearTimeout(marker);
- }
- // if clearTimeout wasn't available but was latter defined
- if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
- cachedClearTimeout = clearTimeout;
- return clearTimeout(marker);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedClearTimeout(marker);
- } catch (e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedClearTimeout.call(null, marker);
- } catch (e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
- // Some versions of I.E. have different rules for clearTimeout vs setTimeout
- return cachedClearTimeout.call(this, marker);
- }
- }
-
-
-
-}
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
- if (!draining || !currentQueue) {
- return;
- }
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
-}
-
-function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = runTimeout(cleanUpNextTick);
- draining = true;
-
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- runClearTimeout(timeout);
-}
-
-process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- runTimeout(drainQueue);
- }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
- this.fun = fun;
- this.array = array;
-}
-Item.prototype.run = function () {
- this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
-
-function noop() {}
-
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
-process.prependListener = noop;
-process.prependOnceListener = noop;
-
-process.listeners = function (name) { return [] }
-
-process.binding = function (name) {
- throw new Error('process.binding is not supported');
-};
-
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
-};
-process.umask = function() { return 0; };
+module.exports = __webpack_require__(531);
/***/ }),
-/***/ 131:
+/***/ 122:
/***/ (function(module, exports) {
module.exports = function (it) {
@@ -2353,20 +2122,20 @@ module.exports = function (it) {
/***/ }),
-/***/ 132:
+/***/ 123:
/***/ (function(module, exports) {
-var core = module.exports = { version: '2.5.0' };
+var core = module.exports = { version: '2.5.1' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
/***/ }),
-/***/ 133:
+/***/ 124:
/***/ (function(module, exports, __webpack_require__) {
// optional / simple context binding
-var aFunction = __webpack_require__(131);
+var aFunction = __webpack_require__(122);
module.exports = function (fn, that, length) {
aFunction(fn);
if (that === undefined) return fn;
@@ -2389,18 +2158,18 @@ module.exports = function (fn, that, length) {
/***/ }),
-/***/ 134:
+/***/ 125:
/***/ (function(module, exports, __webpack_require__) {
-var pIE = __webpack_require__(495);
-var createDesc = __webpack_require__(197);
-var toIObject = __webpack_require__(304);
-var toPrimitive = __webpack_require__(307);
-var has = __webpack_require__(48);
-var IE8_DOM_DEFINE = __webpack_require__(490);
+var pIE = __webpack_require__(477);
+var createDesc = __webpack_require__(185);
+var toIObject = __webpack_require__(290);
+var toPrimitive = __webpack_require__(293);
+var has = __webpack_require__(43);
+var IE8_DOM_DEFINE = __webpack_require__(472);
var gOPD = Object.getOwnPropertyDescriptor;
-exports.f = __webpack_require__(86) ? gOPD : function getOwnPropertyDescriptor(O, P) {
+exports.f = __webpack_require__(79) ? gOPD : function getOwnPropertyDescriptor(O, P) {
O = toIObject(O);
P = toPrimitive(P, true);
if (IE8_DOM_DEFINE) try {
@@ -2412,18 +2181,18 @@ exports.f = __webpack_require__(86) ? gOPD : function getOwnPropertyDescriptor(O
/***/ }),
-/***/ 135:
+/***/ 126:
/***/ (function(module, exports, __webpack_require__) {
-var global = __webpack_require__(37);
-var hide = __webpack_require__(195);
-var has = __webpack_require__(48);
-var SRC = __webpack_require__(198)('src');
+var global = __webpack_require__(31);
+var hide = __webpack_require__(183);
+var has = __webpack_require__(43);
+var SRC = __webpack_require__(186)('src');
var TO_STRING = 'toString';
var $toString = Function[TO_STRING];
var TPL = ('' + $toString).split(TO_STRING);
-__webpack_require__(132).inspectSource = function (it) {
+__webpack_require__(123).inspectSource = function (it) {
return $toString.call(it);
};
@@ -2450,10 +2219,10 @@ __webpack_require__(132).inspectSource = function (it) {
/***/ }),
-/***/ 136:
+/***/ 127:
/***/ (function(module, exports, __webpack_require__) {
-var isObject = __webpack_require__(27);
+var isObject = __webpack_require__(23);
module.exports = function (it, TYPE) {
if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
return it;
@@ -2462,65 +2231,115 @@ module.exports = function (it, TYPE) {
/***/ }),
-/***/ 194:
+/***/ 18:
/***/ (function(module, exports, __webpack_require__) {
-var ctx = __webpack_require__(133);
-var call = __webpack_require__(754);
-var isArrayIter = __webpack_require__(752);
-var anObject = __webpack_require__(11);
-var toLength = __webpack_require__(305);
-var getIterFn = __webpack_require__(765);
-var BREAK = {};
-var RETURN = {};
-var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
- var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
- var f = ctx(fn, that, entries ? 2 : 1);
- var index = 0;
- var length, step, iterator, result;
- if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
- // fast case for arrays with default iterator
- if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
- result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if (result === BREAK || result === RETURN) return result;
- } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
- result = call(iterator, f, step.value, entries);
- if (result === BREAK || result === RETURN) return result;
- }
-};
-exports.BREAK = BREAK;
-exports.RETURN = RETURN;
-
-
-/***/ }),
-
-/***/ 195:
-/***/ (function(module, exports, __webpack_require__) {
+var global = __webpack_require__(31);
+var core = __webpack_require__(123);
+var hide = __webpack_require__(183);
+var redefine = __webpack_require__(126);
+var ctx = __webpack_require__(124);
+var PROTOTYPE = 'prototype';
-var dP = __webpack_require__(70);
-var createDesc = __webpack_require__(197);
-module.exports = __webpack_require__(86) ? function (object, key, value) {
- return dP.f(object, key, createDesc(1, value));
-} : function (object, key, value) {
- object[key] = value;
- return object;
+var $export = function (type, name, source) {
+ var IS_FORCED = type & $export.F;
+ var IS_GLOBAL = type & $export.G;
+ var IS_STATIC = type & $export.S;
+ var IS_PROTO = type & $export.P;
+ var IS_BIND = type & $export.B;
+ var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
+ var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
+ var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
+ var key, own, out, exp;
+ if (IS_GLOBAL) source = name;
+ for (key in source) {
+ // contains in native
+ own = !IS_FORCED && target && target[key] !== undefined;
+ // export native or passed
+ out = (own ? target : source)[key];
+ // bind timers to global for call from export context
+ exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+ // extend global
+ if (target) redefine(target, key, out, type & $export.U);
+ // export
+ if (exports[key] != out) hide(exports, key, exp);
+ if (IS_PROTO && expProto[key] != out) expProto[key] = out;
+ }
};
+global.core = core;
+// type bitmap
+$export.F = 1; // forced
+$export.G = 2; // global
+$export.S = 4; // static
+$export.P = 8; // proto
+$export.B = 16; // bind
+$export.W = 32; // wrap
+$export.U = 64; // safe
+$export.R = 128; // real proto method for `library`
+module.exports = $export;
/***/ }),
-/***/ 196:
+/***/ 182:
/***/ (function(module, exports, __webpack_require__) {
-var META = __webpack_require__(198)('meta');
-var isObject = __webpack_require__(27);
-var has = __webpack_require__(48);
-var setDesc = __webpack_require__(70).f;
+var ctx = __webpack_require__(124);
+var call = __webpack_require__(721);
+var isArrayIter = __webpack_require__(719);
+var anObject = __webpack_require__(9);
+var toLength = __webpack_require__(291);
+var getIterFn = __webpack_require__(732);
+var BREAK = {};
+var RETURN = {};
+var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
+ var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
+ var f = ctx(fn, that, entries ? 2 : 1);
+ var index = 0;
+ var length, step, iterator, result;
+ if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
+ // fast case for arrays with default iterator
+ if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
+ result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if (result === BREAK || result === RETURN) return result;
+ } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
+ result = call(iterator, f, step.value, entries);
+ if (result === BREAK || result === RETURN) return result;
+ }
+};
+exports.BREAK = BREAK;
+exports.RETURN = RETURN;
+
+
+/***/ }),
+
+/***/ 183:
+/***/ (function(module, exports, __webpack_require__) {
+
+var dP = __webpack_require__(64);
+var createDesc = __webpack_require__(185);
+module.exports = __webpack_require__(79) ? function (object, key, value) {
+ return dP.f(object, key, createDesc(1, value));
+} : function (object, key, value) {
+ object[key] = value;
+ return object;
+};
+
+
+/***/ }),
+
+/***/ 184:
+/***/ (function(module, exports, __webpack_require__) {
+
+var META = __webpack_require__(186)('meta');
+var isObject = __webpack_require__(23);
+var has = __webpack_require__(43);
+var setDesc = __webpack_require__(64).f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
return true;
};
-var FREEZE = !__webpack_require__(53)(function () {
+var FREEZE = !__webpack_require__(48)(function () {
return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
@@ -2569,7 +2388,7 @@ var meta = module.exports = {
/***/ }),
-/***/ 197:
+/***/ 185:
/***/ (function(module, exports) {
module.exports = function (bitmap, value) {
@@ -2584,7 +2403,7 @@ module.exports = function (bitmap, value) {
/***/ }),
-/***/ 198:
+/***/ 186:
/***/ (function(module, exports) {
var id = 0;
@@ -2596,57 +2415,7 @@ module.exports = function (key) {
/***/ }),
-/***/ 22:
-/***/ (function(module, exports, __webpack_require__) {
-
-var global = __webpack_require__(37);
-var core = __webpack_require__(132);
-var hide = __webpack_require__(195);
-var redefine = __webpack_require__(135);
-var ctx = __webpack_require__(133);
-var PROTOTYPE = 'prototype';
-
-var $export = function (type, name, source) {
- var IS_FORCED = type & $export.F;
- var IS_GLOBAL = type & $export.G;
- var IS_STATIC = type & $export.S;
- var IS_PROTO = type & $export.P;
- var IS_BIND = type & $export.B;
- var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
- var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
- var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
- var key, own, out, exp;
- if (IS_GLOBAL) source = name;
- for (key in source) {
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- // export native or passed
- out = (own ? target : source)[key];
- // bind timers to global for call from export context
- exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- // extend global
- if (target) redefine(target, key, out, type & $export.U);
- // export
- if (exports[key] != out) hide(exports, key, exp);
- if (IS_PROTO && expProto[key] != out) expProto[key] = out;
- }
-};
-global.core = core;
-// type bitmap
-$export.F = 1; // forced
-$export.G = 2; // global
-$export.S = 4; // static
-$export.P = 8; // proto
-$export.B = 16; // bind
-$export.W = 32; // wrap
-$export.U = 64; // safe
-$export.R = 128; // real proto method for `library`
-module.exports = $export;
-
-
-/***/ }),
-
-/***/ 27:
+/***/ 23:
/***/ (function(module, exports) {
module.exports = function (it) {
@@ -2656,7 +2425,7 @@ module.exports = function (it) {
/***/ }),
-/***/ 293:
+/***/ 279:
/***/ (function(module, exports) {
module.exports = function (it, Constructor, name, forbiddenField) {
@@ -2668,7 +2437,7 @@ module.exports = function (it, Constructor, name, forbiddenField) {
/***/ }),
-/***/ 294:
+/***/ 280:
/***/ (function(module, exports) {
var toString = {}.toString;
@@ -2680,23 +2449,23 @@ module.exports = function (it) {
/***/ }),
-/***/ 295:
+/***/ 281:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var global = __webpack_require__(37);
-var $export = __webpack_require__(22);
-var redefine = __webpack_require__(135);
-var redefineAll = __webpack_require__(300);
-var meta = __webpack_require__(196);
-var forOf = __webpack_require__(194);
-var anInstance = __webpack_require__(293);
-var isObject = __webpack_require__(27);
-var fails = __webpack_require__(53);
-var $iterDetect = __webpack_require__(756);
-var setToStringTag = __webpack_require__(301);
-var inheritIfRequired = __webpack_require__(750);
+var global = __webpack_require__(31);
+var $export = __webpack_require__(18);
+var redefine = __webpack_require__(126);
+var redefineAll = __webpack_require__(286);
+var meta = __webpack_require__(184);
+var forOf = __webpack_require__(182);
+var anInstance = __webpack_require__(279);
+var isObject = __webpack_require__(23);
+var fails = __webpack_require__(48);
+var $iterDetect = __webpack_require__(723);
+var setToStringTag = __webpack_require__(287);
+var inheritIfRequired = __webpack_require__(717);
module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
var Base = global[NAME];
@@ -2773,7 +2542,7 @@ module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
/***/ }),
-/***/ 296:
+/***/ 282:
/***/ (function(module, exports) {
// IE 8- don't enum bug keys
@@ -2784,11 +2553,11 @@ module.exports = (
/***/ }),
-/***/ 297:
+/***/ 283:
/***/ (function(module, exports, __webpack_require__) {
// fallback for non-array-like ES3 and non-enumerable old V8 strings
-var cof = __webpack_require__(294);
+var cof = __webpack_require__(280);
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
return cof(it) == 'String' ? it.split('') : Object(it);
@@ -2797,7 +2566,7 @@ module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
/***/ }),
-/***/ 298:
+/***/ 284:
/***/ (function(module, exports) {
module.exports = {};
@@ -2805,27 +2574,27 @@ module.exports = {};
/***/ }),
-/***/ 299:
+/***/ 285:
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-var anObject = __webpack_require__(11);
-var dPs = __webpack_require__(760);
-var enumBugKeys = __webpack_require__(296);
-var IE_PROTO = __webpack_require__(302)('IE_PROTO');
+var anObject = __webpack_require__(9);
+var dPs = __webpack_require__(727);
+var enumBugKeys = __webpack_require__(282);
+var IE_PROTO = __webpack_require__(288)('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';
// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
// Thrash, waste and sodomy: IE GC bug
- var iframe = __webpack_require__(489)('iframe');
+ var iframe = __webpack_require__(471)('iframe');
var i = enumBugKeys.length;
var lt = '<';
var gt = '>';
var iframeDocument;
iframe.style.display = 'none';
- __webpack_require__(749).appendChild(iframe);
+ __webpack_require__(716).appendChild(iframe);
iframe.src = 'javascript:'; // eslint-disable-line no-script-url
// createDict = iframe.contentWindow.Object;
// html.removeChild(iframe);
@@ -2853,10 +2622,10 @@ module.exports = Object.create || function create(O, Properties) {
/***/ }),
-/***/ 300:
+/***/ 286:
/***/ (function(module, exports, __webpack_require__) {
-var redefine = __webpack_require__(135);
+var redefine = __webpack_require__(126);
module.exports = function (target, src, safe) {
for (var key in src) redefine(target, key, src[key], safe);
return target;
@@ -2865,12 +2634,12 @@ module.exports = function (target, src, safe) {
/***/ }),
-/***/ 301:
+/***/ 287:
/***/ (function(module, exports, __webpack_require__) {
-var def = __webpack_require__(70).f;
-var has = __webpack_require__(48);
-var TAG = __webpack_require__(55)('toStringTag');
+var def = __webpack_require__(64).f;
+var has = __webpack_require__(43);
+var TAG = __webpack_require__(50)('toStringTag');
module.exports = function (it, tag, stat) {
if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
@@ -2879,11 +2648,11 @@ module.exports = function (it, tag, stat) {
/***/ }),
-/***/ 302:
+/***/ 288:
/***/ (function(module, exports, __webpack_require__) {
-var shared = __webpack_require__(303)('keys');
-var uid = __webpack_require__(198);
+var shared = __webpack_require__(289)('keys');
+var uid = __webpack_require__(186);
module.exports = function (key) {
return shared[key] || (shared[key] = uid(key));
};
@@ -2891,10 +2660,10 @@ module.exports = function (key) {
/***/ }),
-/***/ 303:
+/***/ 289:
/***/ (function(module, exports, __webpack_require__) {
-var global = __webpack_require__(37);
+var global = __webpack_require__(31);
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});
module.exports = function (key) {
@@ -2904,12 +2673,12 @@ module.exports = function (key) {
/***/ }),
-/***/ 304:
+/***/ 290:
/***/ (function(module, exports, __webpack_require__) {
// to indexed object, toObject with fallback for non-array-like ES3 strings
-var IObject = __webpack_require__(297);
-var defined = __webpack_require__(488);
+var IObject = __webpack_require__(283);
+var defined = __webpack_require__(470);
module.exports = function (it) {
return IObject(defined(it));
};
@@ -2917,11 +2686,11 @@ module.exports = function (it) {
/***/ }),
-/***/ 305:
+/***/ 291:
/***/ (function(module, exports, __webpack_require__) {
// 7.1.15 ToLength
-var toInteger = __webpack_require__(497);
+var toInteger = __webpack_require__(479);
var min = Math.min;
module.exports = function (it) {
return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
@@ -2930,11 +2699,11 @@ module.exports = function (it) {
/***/ }),
-/***/ 306:
+/***/ 292:
/***/ (function(module, exports, __webpack_require__) {
// 7.1.13 ToObject(argument)
-var defined = __webpack_require__(488);
+var defined = __webpack_require__(470);
module.exports = function (it) {
return Object(defined(it));
};
@@ -2942,11 +2711,11 @@ module.exports = function (it) {
/***/ }),
-/***/ 307:
+/***/ 293:
/***/ (function(module, exports, __webpack_require__) {
// 7.1.1 ToPrimitive(input [, PreferredType])
-var isObject = __webpack_require__(27);
+var isObject = __webpack_require__(23);
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
@@ -2961,7 +2730,7 @@ module.exports = function (it, S) {
/***/ }),
-/***/ 37:
+/***/ 31:
/***/ (function(module, exports) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
@@ -2974,7 +2743,35 @@ if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
/***/ }),
-/***/ 48:
+/***/ 33:
+/***/ (function(module, exports) {
+
+var g;
+
+// This works in non-strict mode
+g = (function() {
+ return this;
+})();
+
+try {
+ // This works if eval is allowed (see CSP)
+ g = g || Function("return this")() || (1,eval)("this");
+} catch(e) {
+ // This works if the window reference is available
+ if(typeof window === "object")
+ g = window;
+}
+
+// g can still be undefined, but nothing to do about it...
+// We return undefined, instead of nothing here, so it's
+// easier to handle this case. if(!global) { ...}
+
+module.exports = g;
+
+
+/***/ }),
+
+/***/ 43:
/***/ (function(module, exports) {
var hasOwnProperty = {}.hasOwnProperty;
@@ -2985,7 +2782,7 @@ module.exports = function (it, key) {
/***/ }),
-/***/ 486:
+/***/ 468:
/***/ (function(module, exports, __webpack_require__) {
// 0 -> Array#forEach
@@ -2995,11 +2792,11 @@ module.exports = function (it, key) {
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
-var ctx = __webpack_require__(133);
-var IObject = __webpack_require__(297);
-var toObject = __webpack_require__(306);
-var toLength = __webpack_require__(305);
-var asc = __webpack_require__(745);
+var ctx = __webpack_require__(124);
+var IObject = __webpack_require__(283);
+var toObject = __webpack_require__(292);
+var toLength = __webpack_require__(291);
+var asc = __webpack_require__(712);
module.exports = function (TYPE, $create) {
var IS_MAP = TYPE == 1;
var IS_FILTER = TYPE == 2;
@@ -3036,23 +2833,23 @@ module.exports = function (TYPE, $create) {
/***/ }),
-/***/ 487:
+/***/ 469:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var dP = __webpack_require__(70).f;
-var create = __webpack_require__(299);
-var redefineAll = __webpack_require__(300);
-var ctx = __webpack_require__(133);
-var anInstance = __webpack_require__(293);
-var forOf = __webpack_require__(194);
-var $iterDefine = __webpack_require__(755);
-var step = __webpack_require__(757);
-var setSpecies = __webpack_require__(763);
-var DESCRIPTORS = __webpack_require__(86);
-var fastKey = __webpack_require__(196).fastKey;
-var validate = __webpack_require__(136);
+var dP = __webpack_require__(64).f;
+var create = __webpack_require__(285);
+var redefineAll = __webpack_require__(286);
+var ctx = __webpack_require__(124);
+var anInstance = __webpack_require__(279);
+var forOf = __webpack_require__(182);
+var $iterDefine = __webpack_require__(722);
+var step = __webpack_require__(724);
+var setSpecies = __webpack_require__(730);
+var DESCRIPTORS = __webpack_require__(79);
+var fastKey = __webpack_require__(184).fastKey;
+var validate = __webpack_require__(127);
var SIZE = DESCRIPTORS ? '_s' : 'size';
var getEntry = function (that, key) {
@@ -3188,7 +2985,7 @@ module.exports = {
/***/ }),
-/***/ 488:
+/***/ 470:
/***/ (function(module, exports) {
// 7.2.1 RequireObjectCoercible(argument)
@@ -3200,11 +2997,11 @@ module.exports = function (it) {
/***/ }),
-/***/ 489:
+/***/ 471:
/***/ (function(module, exports, __webpack_require__) {
-var isObject = __webpack_require__(27);
-var document = __webpack_require__(37).document;
+var isObject = __webpack_require__(23);
+var document = __webpack_require__(31).document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
@@ -3214,28 +3011,28 @@ module.exports = function (it) {
/***/ }),
-/***/ 490:
+/***/ 472:
/***/ (function(module, exports, __webpack_require__) {
-module.exports = !__webpack_require__(86) && !__webpack_require__(53)(function () {
- return Object.defineProperty(__webpack_require__(489)('div'), 'a', { get: function () { return 7; } }).a != 7;
+module.exports = !__webpack_require__(79) && !__webpack_require__(48)(function () {
+ return Object.defineProperty(__webpack_require__(471)('div'), 'a', { get: function () { return 7; } }).a != 7;
});
/***/ }),
-/***/ 491:
+/***/ 473:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var create = __webpack_require__(299);
-var descriptor = __webpack_require__(197);
-var setToStringTag = __webpack_require__(301);
+var create = __webpack_require__(285);
+var descriptor = __webpack_require__(185);
+var setToStringTag = __webpack_require__(287);
var IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-__webpack_require__(195)(IteratorPrototype, __webpack_require__(55)('iterator'), function () { return this; });
+__webpack_require__(183)(IteratorPrototype, __webpack_require__(50)('iterator'), function () { return this; });
module.exports = function (Constructor, NAME, next) {
Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
@@ -3245,7 +3042,7 @@ module.exports = function (Constructor, NAME, next) {
/***/ }),
-/***/ 492:
+/***/ 474:
/***/ (function(module, exports) {
exports.f = Object.getOwnPropertySymbols;
@@ -3253,13 +3050,13 @@ exports.f = Object.getOwnPropertySymbols;
/***/ }),
-/***/ 493:
+/***/ 475:
/***/ (function(module, exports, __webpack_require__) {
-var has = __webpack_require__(48);
-var toIObject = __webpack_require__(304);
-var arrayIndexOf = __webpack_require__(743)(false);
-var IE_PROTO = __webpack_require__(302)('IE_PROTO');
+var has = __webpack_require__(43);
+var toIObject = __webpack_require__(290);
+var arrayIndexOf = __webpack_require__(710)(false);
+var IE_PROTO = __webpack_require__(288)('IE_PROTO');
module.exports = function (object, names) {
var O = toIObject(object);
@@ -3277,12 +3074,12 @@ module.exports = function (object, names) {
/***/ }),
-/***/ 494:
+/***/ 476:
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
-var $keys = __webpack_require__(493);
-var enumBugKeys = __webpack_require__(296);
+var $keys = __webpack_require__(475);
+var enumBugKeys = __webpack_require__(282);
module.exports = Object.keys || function keys(O) {
return $keys(O, enumBugKeys);
@@ -3291,7 +3088,7 @@ module.exports = Object.keys || function keys(O) {
/***/ }),
-/***/ 495:
+/***/ 477:
/***/ (function(module, exports) {
exports.f = {}.propertyIsEnumerable;
@@ -3299,13 +3096,13 @@ exports.f = {}.propertyIsEnumerable;
/***/ }),
-/***/ 496:
+/***/ 478:
/***/ (function(module, exports, __webpack_require__) {
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
-var isObject = __webpack_require__(27);
-var anObject = __webpack_require__(11);
+var isObject = __webpack_require__(23);
+var anObject = __webpack_require__(9);
var check = function (O, proto) {
anObject(O);
if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
@@ -3314,7 +3111,7 @@ module.exports = {
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function (test, buggy, set) {
try {
- set = __webpack_require__(133)(Function.call, __webpack_require__(134).f(Object.prototype, '__proto__').set, 2);
+ set = __webpack_require__(124)(Function.call, __webpack_require__(125).f(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch (e) { buggy = true; }
@@ -3331,7 +3128,7 @@ module.exports = {
/***/ }),
-/***/ 497:
+/***/ 479:
/***/ (function(module, exports) {
// 7.1.4 ToInteger
@@ -3344,7 +3141,7 @@ module.exports = function (it) {
/***/ }),
-/***/ 53:
+/***/ 48:
/***/ (function(module, exports) {
module.exports = function (exec) {
@@ -3358,13 +3155,13 @@ module.exports = function (exec) {
/***/ }),
-/***/ 54:
+/***/ 49:
/***/ (function(module, exports, __webpack_require__) {
-var Map = __webpack_require__(766);
-var $export = __webpack_require__(22);
-var shared = __webpack_require__(303)('metadata');
-var store = shared.store || (shared.store = new (__webpack_require__(782))());
+var Map = __webpack_require__(733);
+var $export = __webpack_require__(18);
+var shared = __webpack_require__(289)('metadata');
+var store = shared.store || (shared.store = new (__webpack_require__(749))());
var getOrCreateMetadataMap = function (target, targetKey, create) {
var targetMetadata = store.get(target);
@@ -3416,12 +3213,12 @@ module.exports = {
/***/ }),
-/***/ 55:
+/***/ 50:
/***/ (function(module, exports, __webpack_require__) {
-var store = __webpack_require__(303)('wks');
-var uid = __webpack_require__(198);
-var Symbol = __webpack_require__(37).Symbol;
+var store = __webpack_require__(289)('wks');
+var uid = __webpack_require__(186);
+var Symbol = __webpack_require__(31).Symbol;
var USE_SYMBOL = typeof Symbol == 'function';
var $exports = module.exports = function (name) {
@@ -3434,16 +3231,16 @@ $exports.store = store;
/***/ }),
-/***/ 564:
+/***/ 531:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_es6_reflect__ = __webpack_require__(740);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_es6_reflect__ = __webpack_require__(707);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_es6_reflect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_es6_reflect__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_es7_reflect__ = __webpack_require__(741);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_es7_reflect__ = __webpack_require__(708);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_es7_reflect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_es7_reflect__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_zone_js_dist_zone__ = __webpack_require__(1137);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_zone_js_dist_zone__ = __webpack_require__(1076);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_zone_js_dist_zone___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_zone_js_dist_zone__);
/**
* This file includes polyfills needed by Angular and is loaded before the app.
@@ -3475,15 +3272,15 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/***/ }),
-/***/ 70:
+/***/ 64:
/***/ (function(module, exports, __webpack_require__) {
-var anObject = __webpack_require__(11);
-var IE8_DOM_DEFINE = __webpack_require__(490);
-var toPrimitive = __webpack_require__(307);
+var anObject = __webpack_require__(9);
+var IE8_DOM_DEFINE = __webpack_require__(472);
+var toPrimitive = __webpack_require__(293);
var dP = Object.defineProperty;
-exports.f = __webpack_require__(86) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
+exports.f = __webpack_require__(79) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
@@ -3498,49 +3295,49 @@ exports.f = __webpack_require__(86) ? Object.defineProperty : function definePro
/***/ }),
-/***/ 740:
+/***/ 707:
/***/ (function(module, exports, __webpack_require__) {
-__webpack_require__(767);
-__webpack_require__(768);
-__webpack_require__(769);
-__webpack_require__(770);
-__webpack_require__(771);
-__webpack_require__(774);
-__webpack_require__(772);
-__webpack_require__(773);
-__webpack_require__(775);
-__webpack_require__(776);
-__webpack_require__(777);
-__webpack_require__(778);
-__webpack_require__(780);
-__webpack_require__(779);
-module.exports = __webpack_require__(132).Reflect;
+__webpack_require__(734);
+__webpack_require__(735);
+__webpack_require__(736);
+__webpack_require__(737);
+__webpack_require__(738);
+__webpack_require__(741);
+__webpack_require__(739);
+__webpack_require__(740);
+__webpack_require__(742);
+__webpack_require__(743);
+__webpack_require__(744);
+__webpack_require__(745);
+__webpack_require__(747);
+__webpack_require__(746);
+module.exports = __webpack_require__(123).Reflect;
/***/ }),
-/***/ 741:
+/***/ 708:
/***/ (function(module, exports, __webpack_require__) {
-__webpack_require__(783);
-__webpack_require__(784);
-__webpack_require__(786);
-__webpack_require__(785);
-__webpack_require__(788);
-__webpack_require__(787);
-__webpack_require__(789);
-__webpack_require__(790);
-__webpack_require__(791);
-module.exports = __webpack_require__(132).Reflect;
+__webpack_require__(750);
+__webpack_require__(751);
+__webpack_require__(753);
+__webpack_require__(752);
+__webpack_require__(755);
+__webpack_require__(754);
+__webpack_require__(756);
+__webpack_require__(757);
+__webpack_require__(758);
+module.exports = __webpack_require__(123).Reflect;
/***/ }),
-/***/ 742:
+/***/ 709:
/***/ (function(module, exports, __webpack_require__) {
-var forOf = __webpack_require__(194);
+var forOf = __webpack_require__(182);
module.exports = function (iter, ITERATOR) {
var result = [];
@@ -3551,14 +3348,14 @@ module.exports = function (iter, ITERATOR) {
/***/ }),
-/***/ 743:
+/***/ 710:
/***/ (function(module, exports, __webpack_require__) {
// false -> Array#indexOf
// true -> Array#includes
-var toIObject = __webpack_require__(304);
-var toLength = __webpack_require__(305);
-var toAbsoluteIndex = __webpack_require__(764);
+var toIObject = __webpack_require__(290);
+var toLength = __webpack_require__(291);
+var toAbsoluteIndex = __webpack_require__(731);
module.exports = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIObject($this);
@@ -3581,12 +3378,12 @@ module.exports = function (IS_INCLUDES) {
/***/ }),
-/***/ 744:
+/***/ 711:
/***/ (function(module, exports, __webpack_require__) {
-var isObject = __webpack_require__(27);
-var isArray = __webpack_require__(753);
-var SPECIES = __webpack_require__(55)('species');
+var isObject = __webpack_require__(23);
+var isArray = __webpack_require__(720);
+var SPECIES = __webpack_require__(50)('species');
module.exports = function (original) {
var C;
@@ -3604,11 +3401,11 @@ module.exports = function (original) {
/***/ }),
-/***/ 745:
+/***/ 712:
/***/ (function(module, exports, __webpack_require__) {
// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
-var speciesConstructor = __webpack_require__(744);
+var speciesConstructor = __webpack_require__(711);
module.exports = function (original, length) {
return new (speciesConstructor(original))(length);
@@ -3617,14 +3414,14 @@ module.exports = function (original, length) {
/***/ }),
-/***/ 746:
+/***/ 713:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var aFunction = __webpack_require__(131);
-var isObject = __webpack_require__(27);
-var invoke = __webpack_require__(751);
+var aFunction = __webpack_require__(122);
+var isObject = __webpack_require__(23);
+var invoke = __webpack_require__(718);
var arraySlice = [].slice;
var factories = {};
@@ -3650,12 +3447,12 @@ module.exports = Function.bind || function bind(that /* , ...args */) {
/***/ }),
-/***/ 747:
+/***/ 714:
/***/ (function(module, exports, __webpack_require__) {
// getting tag from 19.1.3.6 Object.prototype.toString()
-var cof = __webpack_require__(294);
-var TAG = __webpack_require__(55)('toStringTag');
+var cof = __webpack_require__(280);
+var TAG = __webpack_require__(50)('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';
@@ -3680,20 +3477,20 @@ module.exports = function (it) {
/***/ }),
-/***/ 748:
+/***/ 715:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var redefineAll = __webpack_require__(300);
-var getWeak = __webpack_require__(196).getWeak;
-var anObject = __webpack_require__(11);
-var isObject = __webpack_require__(27);
-var anInstance = __webpack_require__(293);
-var forOf = __webpack_require__(194);
-var createArrayMethod = __webpack_require__(486);
-var $has = __webpack_require__(48);
-var validate = __webpack_require__(136);
+var redefineAll = __webpack_require__(286);
+var getWeak = __webpack_require__(184).getWeak;
+var anObject = __webpack_require__(9);
+var isObject = __webpack_require__(23);
+var anInstance = __webpack_require__(279);
+var forOf = __webpack_require__(182);
+var createArrayMethod = __webpack_require__(468);
+var $has = __webpack_require__(43);
+var validate = __webpack_require__(127);
var arrayFind = createArrayMethod(5);
var arrayFindIndex = createArrayMethod(6);
var id = 0;
@@ -3773,20 +3570,20 @@ module.exports = {
/***/ }),
-/***/ 749:
+/***/ 716:
/***/ (function(module, exports, __webpack_require__) {
-var document = __webpack_require__(37).document;
+var document = __webpack_require__(31).document;
module.exports = document && document.documentElement;
/***/ }),
-/***/ 750:
+/***/ 717:
/***/ (function(module, exports, __webpack_require__) {
-var isObject = __webpack_require__(27);
-var setPrototypeOf = __webpack_require__(496).set;
+var isObject = __webpack_require__(23);
+var setPrototypeOf = __webpack_require__(478).set;
module.exports = function (that, target, C) {
var S = target.constructor;
var P;
@@ -3798,7 +3595,7 @@ module.exports = function (that, target, C) {
/***/ }),
-/***/ 751:
+/***/ 718:
/***/ (function(module, exports) {
// fast apply, http://jsperf.lnkit.com/fast-apply/5
@@ -3821,12 +3618,12 @@ module.exports = function (fn, args, that) {
/***/ }),
-/***/ 752:
+/***/ 719:
/***/ (function(module, exports, __webpack_require__) {
// check on default Array iterator
-var Iterators = __webpack_require__(298);
-var ITERATOR = __webpack_require__(55)('iterator');
+var Iterators = __webpack_require__(284);
+var ITERATOR = __webpack_require__(50)('iterator');
var ArrayProto = Array.prototype;
module.exports = function (it) {
@@ -3836,11 +3633,11 @@ module.exports = function (it) {
/***/ }),
-/***/ 753:
+/***/ 720:
/***/ (function(module, exports, __webpack_require__) {
// 7.2.2 IsArray(argument)
-var cof = __webpack_require__(294);
+var cof = __webpack_require__(280);
module.exports = Array.isArray || function isArray(arg) {
return cof(arg) == 'Array';
};
@@ -3848,11 +3645,11 @@ module.exports = Array.isArray || function isArray(arg) {
/***/ }),
-/***/ 754:
+/***/ 721:
/***/ (function(module, exports, __webpack_require__) {
// call something on iterator step with safe closing on error
-var anObject = __webpack_require__(11);
+var anObject = __webpack_require__(9);
module.exports = function (iterator, fn, value, entries) {
try {
return entries ? fn(anObject(value)[0], value[1]) : fn(value);
@@ -3867,21 +3664,21 @@ module.exports = function (iterator, fn, value, entries) {
/***/ }),
-/***/ 755:
+/***/ 722:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var LIBRARY = __webpack_require__(758);
-var $export = __webpack_require__(22);
-var redefine = __webpack_require__(135);
-var hide = __webpack_require__(195);
-var has = __webpack_require__(48);
-var Iterators = __webpack_require__(298);
-var $iterCreate = __webpack_require__(491);
-var setToStringTag = __webpack_require__(301);
-var getPrototypeOf = __webpack_require__(87);
-var ITERATOR = __webpack_require__(55)('iterator');
+var LIBRARY = __webpack_require__(725);
+var $export = __webpack_require__(18);
+var redefine = __webpack_require__(126);
+var hide = __webpack_require__(183);
+var has = __webpack_require__(43);
+var Iterators = __webpack_require__(284);
+var $iterCreate = __webpack_require__(473);
+var setToStringTag = __webpack_require__(287);
+var getPrototypeOf = __webpack_require__(80);
+var ITERATOR = __webpack_require__(50)('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
@@ -3945,10 +3742,10 @@ module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE
/***/ }),
-/***/ 756:
+/***/ 723:
/***/ (function(module, exports, __webpack_require__) {
-var ITERATOR = __webpack_require__(55)('iterator');
+var ITERATOR = __webpack_require__(50)('iterator');
var SAFE_CLOSING = false;
try {
@@ -3974,7 +3771,7 @@ module.exports = function (exec, skipClosing) {
/***/ }),
-/***/ 757:
+/***/ 724:
/***/ (function(module, exports) {
module.exports = function (done, value) {
@@ -3984,7 +3781,7 @@ module.exports = function (done, value) {
/***/ }),
-/***/ 758:
+/***/ 725:
/***/ (function(module, exports) {
module.exports = false;
@@ -3992,21 +3789,21 @@ module.exports = false;
/***/ }),
-/***/ 759:
+/***/ 726:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// 19.1.2.1 Object.assign(target, source, ...)
-var getKeys = __webpack_require__(494);
-var gOPS = __webpack_require__(492);
-var pIE = __webpack_require__(495);
-var toObject = __webpack_require__(306);
-var IObject = __webpack_require__(297);
+var getKeys = __webpack_require__(476);
+var gOPS = __webpack_require__(474);
+var pIE = __webpack_require__(477);
+var toObject = __webpack_require__(292);
+var IObject = __webpack_require__(283);
var $assign = Object.assign;
// should work with symbols and should have deterministic property order (V8 bug)
-module.exports = !$assign || __webpack_require__(53)(function () {
+module.exports = !$assign || __webpack_require__(48)(function () {
var A = {};
var B = {};
// eslint-disable-next-line no-undef
@@ -4034,14 +3831,14 @@ module.exports = !$assign || __webpack_require__(53)(function () {
/***/ }),
-/***/ 760:
+/***/ 727:
/***/ (function(module, exports, __webpack_require__) {
-var dP = __webpack_require__(70);
-var anObject = __webpack_require__(11);
-var getKeys = __webpack_require__(494);
+var dP = __webpack_require__(64);
+var anObject = __webpack_require__(9);
+var getKeys = __webpack_require__(476);
-module.exports = __webpack_require__(86) ? Object.defineProperties : function defineProperties(O, Properties) {
+module.exports = __webpack_require__(79) ? Object.defineProperties : function defineProperties(O, Properties) {
anObject(O);
var keys = getKeys(Properties);
var length = keys.length;
@@ -4054,12 +3851,12 @@ module.exports = __webpack_require__(86) ? Object.defineProperties : function de
/***/ }),
-/***/ 761:
+/***/ 728:
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-var $keys = __webpack_require__(493);
-var hiddenKeys = __webpack_require__(296).concat('length', 'prototype');
+var $keys = __webpack_require__(475);
+var hiddenKeys = __webpack_require__(282).concat('length', 'prototype');
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return $keys(O, hiddenKeys);
@@ -4068,14 +3865,14 @@ exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
/***/ }),
-/***/ 762:
+/***/ 729:
/***/ (function(module, exports, __webpack_require__) {
// all object keys, includes non-enumerable and symbols
-var gOPN = __webpack_require__(761);
-var gOPS = __webpack_require__(492);
-var anObject = __webpack_require__(11);
-var Reflect = __webpack_require__(37).Reflect;
+var gOPN = __webpack_require__(728);
+var gOPS = __webpack_require__(474);
+var anObject = __webpack_require__(9);
+var Reflect = __webpack_require__(31).Reflect;
module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
var keys = gOPN.f(anObject(it));
var getSymbols = gOPS.f;
@@ -4085,15 +3882,15 @@ module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
/***/ }),
-/***/ 763:
+/***/ 730:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var global = __webpack_require__(37);
-var dP = __webpack_require__(70);
-var DESCRIPTORS = __webpack_require__(86);
-var SPECIES = __webpack_require__(55)('species');
+var global = __webpack_require__(31);
+var dP = __webpack_require__(64);
+var DESCRIPTORS = __webpack_require__(79);
+var SPECIES = __webpack_require__(50)('species');
module.exports = function (KEY) {
var C = global[KEY];
@@ -4106,10 +3903,10 @@ module.exports = function (KEY) {
/***/ }),
-/***/ 764:
+/***/ 731:
/***/ (function(module, exports, __webpack_require__) {
-var toInteger = __webpack_require__(497);
+var toInteger = __webpack_require__(479);
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
@@ -4120,13 +3917,13 @@ module.exports = function (index, length) {
/***/ }),
-/***/ 765:
+/***/ 732:
/***/ (function(module, exports, __webpack_require__) {
-var classof = __webpack_require__(747);
-var ITERATOR = __webpack_require__(55)('iterator');
-var Iterators = __webpack_require__(298);
-module.exports = __webpack_require__(132).getIteratorMethod = function (it) {
+var classof = __webpack_require__(714);
+var ITERATOR = __webpack_require__(50)('iterator');
+var Iterators = __webpack_require__(284);
+module.exports = __webpack_require__(123).getIteratorMethod = function (it) {
if (it != undefined) return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
@@ -4135,17 +3932,17 @@ module.exports = __webpack_require__(132).getIteratorMethod = function (it) {
/***/ }),
-/***/ 766:
+/***/ 733:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var strong = __webpack_require__(487);
-var validate = __webpack_require__(136);
+var strong = __webpack_require__(469);
+var validate = __webpack_require__(127);
var MAP = 'Map';
// 23.1 Map Objects
-module.exports = __webpack_require__(295)(MAP, function (get) {
+module.exports = __webpack_require__(281)(MAP, function (get) {
return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.1.3.6 Map.prototype.get(key)
@@ -4162,17 +3959,17 @@ module.exports = __webpack_require__(295)(MAP, function (get) {
/***/ }),
-/***/ 767:
+/***/ 734:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
-var $export = __webpack_require__(22);
-var aFunction = __webpack_require__(131);
-var anObject = __webpack_require__(11);
-var rApply = (__webpack_require__(37).Reflect || {}).apply;
+var $export = __webpack_require__(18);
+var aFunction = __webpack_require__(122);
+var anObject = __webpack_require__(9);
+var rApply = (__webpack_require__(31).Reflect || {}).apply;
var fApply = Function.apply;
// MS Edge argumentsList argument is optional
-$export($export.S + $export.F * !__webpack_require__(53)(function () {
+$export($export.S + $export.F * !__webpack_require__(48)(function () {
rApply(function () { /* empty */ });
}), 'Reflect', {
apply: function apply(target, thisArgument, argumentsList) {
@@ -4185,18 +3982,18 @@ $export($export.S + $export.F * !__webpack_require__(53)(function () {
/***/ }),
-/***/ 768:
+/***/ 735:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
-var $export = __webpack_require__(22);
-var create = __webpack_require__(299);
-var aFunction = __webpack_require__(131);
-var anObject = __webpack_require__(11);
-var isObject = __webpack_require__(27);
-var fails = __webpack_require__(53);
-var bind = __webpack_require__(746);
-var rConstruct = (__webpack_require__(37).Reflect || {}).construct;
+var $export = __webpack_require__(18);
+var create = __webpack_require__(285);
+var aFunction = __webpack_require__(122);
+var anObject = __webpack_require__(9);
+var isObject = __webpack_require__(23);
+var fails = __webpack_require__(48);
+var bind = __webpack_require__(713);
+var rConstruct = (__webpack_require__(31).Reflect || {}).construct;
// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
@@ -4239,17 +4036,17 @@ $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
/***/ }),
-/***/ 769:
+/***/ 736:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
-var dP = __webpack_require__(70);
-var $export = __webpack_require__(22);
-var anObject = __webpack_require__(11);
-var toPrimitive = __webpack_require__(307);
+var dP = __webpack_require__(64);
+var $export = __webpack_require__(18);
+var anObject = __webpack_require__(9);
+var toPrimitive = __webpack_require__(293);
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
-$export($export.S + $export.F * __webpack_require__(53)(function () {
+$export($export.S + $export.F * __webpack_require__(48)(function () {
// eslint-disable-next-line no-undef
Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });
}), 'Reflect', {
@@ -4269,13 +4066,13 @@ $export($export.S + $export.F * __webpack_require__(53)(function () {
/***/ }),
-/***/ 770:
+/***/ 737:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.4 Reflect.deleteProperty(target, propertyKey)
-var $export = __webpack_require__(22);
-var gOPD = __webpack_require__(134).f;
-var anObject = __webpack_require__(11);
+var $export = __webpack_require__(18);
+var gOPD = __webpack_require__(125).f;
+var anObject = __webpack_require__(9);
$export($export.S, 'Reflect', {
deleteProperty: function deleteProperty(target, propertyKey) {
@@ -4287,14 +4084,14 @@ $export($export.S, 'Reflect', {
/***/ }),
-/***/ 771:
+/***/ 738:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// 26.1.5 Reflect.enumerate(target)
-var $export = __webpack_require__(22);
-var anObject = __webpack_require__(11);
+var $export = __webpack_require__(18);
+var anObject = __webpack_require__(9);
var Enumerate = function (iterated) {
this._t = anObject(iterated); // target
this._i = 0; // next index
@@ -4302,7 +4099,7 @@ var Enumerate = function (iterated) {
var key;
for (key in iterated) keys.push(key);
};
-__webpack_require__(491)(Enumerate, 'Object', function () {
+__webpack_require__(473)(Enumerate, 'Object', function () {
var that = this;
var keys = that._k;
var key;
@@ -4321,13 +4118,13 @@ $export($export.S, 'Reflect', {
/***/ }),
-/***/ 772:
+/***/ 739:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
-var gOPD = __webpack_require__(134);
-var $export = __webpack_require__(22);
-var anObject = __webpack_require__(11);
+var gOPD = __webpack_require__(125);
+var $export = __webpack_require__(18);
+var anObject = __webpack_require__(9);
$export($export.S, 'Reflect', {
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
@@ -4338,13 +4135,13 @@ $export($export.S, 'Reflect', {
/***/ }),
-/***/ 773:
+/***/ 740:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.8 Reflect.getPrototypeOf(target)
-var $export = __webpack_require__(22);
-var getProto = __webpack_require__(87);
-var anObject = __webpack_require__(11);
+var $export = __webpack_require__(18);
+var getProto = __webpack_require__(80);
+var anObject = __webpack_require__(9);
$export($export.S, 'Reflect', {
getPrototypeOf: function getPrototypeOf(target) {
@@ -4355,16 +4152,16 @@ $export($export.S, 'Reflect', {
/***/ }),
-/***/ 774:
+/***/ 741:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.6 Reflect.get(target, propertyKey [, receiver])
-var gOPD = __webpack_require__(134);
-var getPrototypeOf = __webpack_require__(87);
-var has = __webpack_require__(48);
-var $export = __webpack_require__(22);
-var isObject = __webpack_require__(27);
-var anObject = __webpack_require__(11);
+var gOPD = __webpack_require__(125);
+var getPrototypeOf = __webpack_require__(80);
+var has = __webpack_require__(43);
+var $export = __webpack_require__(18);
+var isObject = __webpack_require__(23);
+var anObject = __webpack_require__(9);
function get(target, propertyKey /* , receiver */) {
var receiver = arguments.length < 3 ? target : arguments[2];
@@ -4383,11 +4180,11 @@ $export($export.S, 'Reflect', { get: get });
/***/ }),
-/***/ 775:
+/***/ 742:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.9 Reflect.has(target, propertyKey)
-var $export = __webpack_require__(22);
+var $export = __webpack_require__(18);
$export($export.S, 'Reflect', {
has: function has(target, propertyKey) {
@@ -4398,12 +4195,12 @@ $export($export.S, 'Reflect', {
/***/ }),
-/***/ 776:
+/***/ 743:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.10 Reflect.isExtensible(target)
-var $export = __webpack_require__(22);
-var anObject = __webpack_require__(11);
+var $export = __webpack_require__(18);
+var anObject = __webpack_require__(9);
var $isExtensible = Object.isExtensible;
$export($export.S, 'Reflect', {
@@ -4416,23 +4213,23 @@ $export($export.S, 'Reflect', {
/***/ }),
-/***/ 777:
+/***/ 744:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.11 Reflect.ownKeys(target)
-var $export = __webpack_require__(22);
+var $export = __webpack_require__(18);
-$export($export.S, 'Reflect', { ownKeys: __webpack_require__(762) });
+$export($export.S, 'Reflect', { ownKeys: __webpack_require__(729) });
/***/ }),
-/***/ 778:
+/***/ 745:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.12 Reflect.preventExtensions(target)
-var $export = __webpack_require__(22);
-var anObject = __webpack_require__(11);
+var $export = __webpack_require__(18);
+var anObject = __webpack_require__(9);
var $preventExtensions = Object.preventExtensions;
$export($export.S, 'Reflect', {
@@ -4450,12 +4247,12 @@ $export($export.S, 'Reflect', {
/***/ }),
-/***/ 779:
+/***/ 746:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.14 Reflect.setPrototypeOf(target, proto)
-var $export = __webpack_require__(22);
-var setProto = __webpack_require__(496);
+var $export = __webpack_require__(18);
+var setProto = __webpack_require__(478);
if (setProto) $export($export.S, 'Reflect', {
setPrototypeOf: function setPrototypeOf(target, proto) {
@@ -4472,18 +4269,18 @@ if (setProto) $export($export.S, 'Reflect', {
/***/ }),
-/***/ 780:
+/***/ 747:
/***/ (function(module, exports, __webpack_require__) {
// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
-var dP = __webpack_require__(70);
-var gOPD = __webpack_require__(134);
-var getPrototypeOf = __webpack_require__(87);
-var has = __webpack_require__(48);
-var $export = __webpack_require__(22);
-var createDesc = __webpack_require__(197);
-var anObject = __webpack_require__(11);
-var isObject = __webpack_require__(27);
+var dP = __webpack_require__(64);
+var gOPD = __webpack_require__(125);
+var getPrototypeOf = __webpack_require__(80);
+var has = __webpack_require__(43);
+var $export = __webpack_require__(18);
+var createDesc = __webpack_require__(185);
+var anObject = __webpack_require__(9);
+var isObject = __webpack_require__(23);
function set(target, propertyKey, V /* , receiver */) {
var receiver = arguments.length < 4 ? target : arguments[3];
@@ -4510,17 +4307,17 @@ $export($export.S, 'Reflect', { set: set });
/***/ }),
-/***/ 781:
+/***/ 748:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var strong = __webpack_require__(487);
-var validate = __webpack_require__(136);
+var strong = __webpack_require__(469);
+var validate = __webpack_require__(127);
var SET = 'Set';
// 23.2 Set Objects
-module.exports = __webpack_require__(295)(SET, function (get) {
+module.exports = __webpack_require__(281)(SET, function (get) {
return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.2.3.1 Set.prototype.add(value)
@@ -4532,19 +4329,19 @@ module.exports = __webpack_require__(295)(SET, function (get) {
/***/ }),
-/***/ 782:
+/***/ 749:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var each = __webpack_require__(486)(0);
-var redefine = __webpack_require__(135);
-var meta = __webpack_require__(196);
-var assign = __webpack_require__(759);
-var weak = __webpack_require__(748);
-var isObject = __webpack_require__(27);
-var fails = __webpack_require__(53);
-var validate = __webpack_require__(136);
+var each = __webpack_require__(468)(0);
+var redefine = __webpack_require__(126);
+var meta = __webpack_require__(184);
+var assign = __webpack_require__(726);
+var weak = __webpack_require__(715);
+var isObject = __webpack_require__(23);
+var fails = __webpack_require__(48);
+var validate = __webpack_require__(127);
var WEAK_MAP = 'WeakMap';
var getWeak = meta.getWeak;
var isExtensible = Object.isExtensible;
@@ -4574,7 +4371,7 @@ var methods = {
};
// 23.3 WeakMap Objects
-var $WeakMap = module.exports = __webpack_require__(295)(WEAK_MAP, wrapper, methods, weak, true, true);
+var $WeakMap = module.exports = __webpack_require__(281)(WEAK_MAP, wrapper, methods, weak, true, true);
// IE11 WeakMap frozen keys fix
if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {
@@ -4599,11 +4396,11 @@ if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp)
/***/ }),
-/***/ 783:
+/***/ 750:
/***/ (function(module, exports, __webpack_require__) {
-var metadata = __webpack_require__(54);
-var anObject = __webpack_require__(11);
+var metadata = __webpack_require__(49);
+var anObject = __webpack_require__(9);
var toMetaKey = metadata.key;
var ordinaryDefineOwnMetadata = metadata.set;
@@ -4614,11 +4411,11 @@ metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValu
/***/ }),
-/***/ 784:
+/***/ 751:
/***/ (function(module, exports, __webpack_require__) {
-var metadata = __webpack_require__(54);
-var anObject = __webpack_require__(11);
+var metadata = __webpack_require__(49);
+var anObject = __webpack_require__(9);
var toMetaKey = metadata.key;
var getOrCreateMetadataMap = metadata.map;
var store = metadata.store;
@@ -4636,14 +4433,14 @@ metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* ,
/***/ }),
-/***/ 785:
+/***/ 752:
/***/ (function(module, exports, __webpack_require__) {
-var Set = __webpack_require__(781);
-var from = __webpack_require__(742);
-var metadata = __webpack_require__(54);
-var anObject = __webpack_require__(11);
-var getPrototypeOf = __webpack_require__(87);
+var Set = __webpack_require__(748);
+var from = __webpack_require__(709);
+var metadata = __webpack_require__(49);
+var anObject = __webpack_require__(9);
+var getPrototypeOf = __webpack_require__(80);
var ordinaryOwnMetadataKeys = metadata.keys;
var toMetaKey = metadata.key;
@@ -4662,12 +4459,12 @@ metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey *
/***/ }),
-/***/ 786:
+/***/ 753:
/***/ (function(module, exports, __webpack_require__) {
-var metadata = __webpack_require__(54);
-var anObject = __webpack_require__(11);
-var getPrototypeOf = __webpack_require__(87);
+var metadata = __webpack_require__(49);
+var anObject = __webpack_require__(9);
+var getPrototypeOf = __webpack_require__(80);
var ordinaryHasOwnMetadata = metadata.has;
var ordinaryGetOwnMetadata = metadata.get;
var toMetaKey = metadata.key;
@@ -4686,11 +4483,11 @@ metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , target
/***/ }),
-/***/ 787:
+/***/ 754:
/***/ (function(module, exports, __webpack_require__) {
-var metadata = __webpack_require__(54);
-var anObject = __webpack_require__(11);
+var metadata = __webpack_require__(49);
+var anObject = __webpack_require__(9);
var ordinaryOwnMetadataKeys = metadata.keys;
var toMetaKey = metadata.key;
@@ -4701,11 +4498,11 @@ metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targe
/***/ }),
-/***/ 788:
+/***/ 755:
/***/ (function(module, exports, __webpack_require__) {
-var metadata = __webpack_require__(54);
-var anObject = __webpack_require__(11);
+var metadata = __webpack_require__(49);
+var anObject = __webpack_require__(9);
var ordinaryGetOwnMetadata = metadata.get;
var toMetaKey = metadata.key;
@@ -4717,12 +4514,12 @@ metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* ,
/***/ }),
-/***/ 789:
+/***/ 756:
/***/ (function(module, exports, __webpack_require__) {
-var metadata = __webpack_require__(54);
-var anObject = __webpack_require__(11);
-var getPrototypeOf = __webpack_require__(87);
+var metadata = __webpack_require__(49);
+var anObject = __webpack_require__(9);
+var getPrototypeOf = __webpack_require__(80);
var ordinaryHasOwnMetadata = metadata.has;
var toMetaKey = metadata.key;
@@ -4740,11 +4537,11 @@ metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , target
/***/ }),
-/***/ 790:
+/***/ 757:
/***/ (function(module, exports, __webpack_require__) {
-var metadata = __webpack_require__(54);
-var anObject = __webpack_require__(11);
+var metadata = __webpack_require__(49);
+var anObject = __webpack_require__(9);
var ordinaryHasOwnMetadata = metadata.has;
var toMetaKey = metadata.key;
@@ -4756,12 +4553,12 @@ metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* ,
/***/ }),
-/***/ 791:
+/***/ 758:
/***/ (function(module, exports, __webpack_require__) {
-var $metadata = __webpack_require__(54);
-var anObject = __webpack_require__(11);
-var aFunction = __webpack_require__(131);
+var $metadata = __webpack_require__(49);
+var anObject = __webpack_require__(9);
+var aFunction = __webpack_require__(122);
var toMetaKey = $metadata.key;
var ordinaryDefineOwnMetadata = $metadata.set;
@@ -4778,24 +4575,215 @@ $metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {
/***/ }),
-/***/ 86:
+/***/ 776:
+/***/ (function(module, exports) {
+
+// shim for using process in browser
+var process = module.exports = {};
+
+// cached from whatever global is present so that test runners that stub it
+// don't break things. But we need to wrap it in a try catch in case it is
+// wrapped in strict mode code which doesn't define any globals. It's inside a
+// function because try/catches deoptimize in certain engines.
+
+var cachedSetTimeout;
+var cachedClearTimeout;
+
+function defaultSetTimout() {
+ throw new Error('setTimeout has not been defined');
+}
+function defaultClearTimeout () {
+ throw new Error('clearTimeout has not been defined');
+}
+(function () {
+ try {
+ if (typeof setTimeout === 'function') {
+ cachedSetTimeout = setTimeout;
+ } else {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ } catch (e) {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ try {
+ if (typeof clearTimeout === 'function') {
+ cachedClearTimeout = clearTimeout;
+ } else {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+ } catch (e) {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+} ())
+function runTimeout(fun) {
+ if (cachedSetTimeout === setTimeout) {
+ //normal enviroments in sane situations
+ return setTimeout(fun, 0);
+ }
+ // if setTimeout wasn't available but was latter defined
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
+ cachedSetTimeout = setTimeout;
+ return setTimeout(fun, 0);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedSetTimeout(fun, 0);
+ } catch(e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedSetTimeout.call(null, fun, 0);
+ } catch(e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+ return cachedSetTimeout.call(this, fun, 0);
+ }
+ }
+
+
+}
+function runClearTimeout(marker) {
+ if (cachedClearTimeout === clearTimeout) {
+ //normal enviroments in sane situations
+ return clearTimeout(marker);
+ }
+ // if clearTimeout wasn't available but was latter defined
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
+ cachedClearTimeout = clearTimeout;
+ return clearTimeout(marker);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedClearTimeout(marker);
+ } catch (e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedClearTimeout.call(null, marker);
+ } catch (e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+ return cachedClearTimeout.call(this, marker);
+ }
+ }
+
+
+
+}
+var queue = [];
+var draining = false;
+var currentQueue;
+var queueIndex = -1;
+
+function cleanUpNextTick() {
+ if (!draining || !currentQueue) {
+ return;
+ }
+ draining = false;
+ if (currentQueue.length) {
+ queue = currentQueue.concat(queue);
+ } else {
+ queueIndex = -1;
+ }
+ if (queue.length) {
+ drainQueue();
+ }
+}
+
+function drainQueue() {
+ if (draining) {
+ return;
+ }
+ var timeout = runTimeout(cleanUpNextTick);
+ draining = true;
+
+ var len = queue.length;
+ while(len) {
+ currentQueue = queue;
+ queue = [];
+ while (++queueIndex < len) {
+ if (currentQueue) {
+ currentQueue[queueIndex].run();
+ }
+ }
+ queueIndex = -1;
+ len = queue.length;
+ }
+ currentQueue = null;
+ draining = false;
+ runClearTimeout(timeout);
+}
+
+process.nextTick = function (fun) {
+ var args = new Array(arguments.length - 1);
+ if (arguments.length > 1) {
+ for (var i = 1; i < arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ }
+ queue.push(new Item(fun, args));
+ if (queue.length === 1 && !draining) {
+ runTimeout(drainQueue);
+ }
+};
+
+// v8 likes predictible objects
+function Item(fun, array) {
+ this.fun = fun;
+ this.array = array;
+}
+Item.prototype.run = function () {
+ this.fun.apply(null, this.array);
+};
+process.title = 'browser';
+process.browser = true;
+process.env = {};
+process.argv = [];
+process.version = ''; // empty string to avoid regexp issues
+process.versions = {};
+
+function noop() {}
+
+process.on = noop;
+process.addListener = noop;
+process.once = noop;
+process.off = noop;
+process.removeListener = noop;
+process.removeAllListeners = noop;
+process.emit = noop;
+process.prependListener = noop;
+process.prependOnceListener = noop;
+
+process.listeners = function (name) { return [] }
+
+process.binding = function (name) {
+ throw new Error('process.binding is not supported');
+};
+
+process.cwd = function () { return '/' };
+process.chdir = function (dir) {
+ throw new Error('process.chdir is not supported');
+};
+process.umask = function() { return 0; };
+
+
+/***/ }),
+
+/***/ 79:
/***/ (function(module, exports, __webpack_require__) {
// Thank's IE8 for his funny defineProperty
-module.exports = !__webpack_require__(53)(function () {
+module.exports = !__webpack_require__(48)(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
/***/ }),
-/***/ 87:
+/***/ 80:
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-var has = __webpack_require__(48);
-var toObject = __webpack_require__(306);
-var IE_PROTO = __webpack_require__(302)('IE_PROTO');
+var has = __webpack_require__(43);
+var toObject = __webpack_require__(292);
+var IE_PROTO = __webpack_require__(288)('IE_PROTO');
var ObjectProto = Object.prototype;
module.exports = Object.getPrototypeOf || function (O) {
@@ -4807,7 +4795,19 @@ module.exports = Object.getPrototypeOf || function (O) {
};
+/***/ }),
+
+/***/ 9:
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__(23);
+module.exports = function (it) {
+ if (!isObject(it)) throw TypeError(it + ' is not an object!');
+ return it;
+};
+
+
/***/ })
-},[1139]);
+},[1078]);
//# sourceMappingURL=polyfills.bundle.js.map
\ No newline at end of file
diff --git a/src/main/resources/static/polyfills.bundle.js.map b/src/main/resources/static/polyfills.bundle.js.map
index 2b3c021..9353a86 100644
--- a/src/main/resources/static/polyfills.bundle.js.map
+++ b/src/main/resources/static/polyfills.bundle.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///(webpack)/buildin/global.js","webpack:///./~/core-js/modules/_an-object.js","webpack:///./~/zone.js/dist/zone.js","webpack:///./~/process/browser.js","webpack:///./~/core-js/modules/_a-function.js","webpack:///./~/core-js/modules/_core.js","webpack:///./~/core-js/modules/_ctx.js","webpack:///./~/core-js/modules/_object-gopd.js","webpack:///./~/core-js/modules/_redefine.js","webpack:///./~/core-js/modules/_validate-collection.js","webpack:///./~/core-js/modules/_for-of.js","webpack:///./~/core-js/modules/_hide.js","webpack:///./~/core-js/modules/_meta.js","webpack:///./~/core-js/modules/_property-desc.js","webpack:///./~/core-js/modules/_uid.js","webpack:///./~/core-js/modules/_export.js","webpack:///./~/core-js/modules/_is-object.js","webpack:///./~/core-js/modules/_an-instance.js","webpack:///./~/core-js/modules/_cof.js","webpack:///./~/core-js/modules/_collection.js","webpack:///./~/core-js/modules/_enum-bug-keys.js","webpack:///./~/core-js/modules/_iobject.js","webpack:///./~/core-js/modules/_iterators.js","webpack:///./~/core-js/modules/_object-create.js","webpack:///./~/core-js/modules/_redefine-all.js","webpack:///./~/core-js/modules/_set-to-string-tag.js","webpack:///./~/core-js/modules/_shared-key.js","webpack:///./~/core-js/modules/_shared.js","webpack:///./~/core-js/modules/_to-iobject.js","webpack:///./~/core-js/modules/_to-length.js","webpack:///./~/core-js/modules/_to-object.js","webpack:///./~/core-js/modules/_to-primitive.js","webpack:///./~/core-js/modules/_global.js","webpack:///./~/core-js/modules/_has.js","webpack:///./~/core-js/modules/_array-methods.js","webpack:///./~/core-js/modules/_collection-strong.js","webpack:///./~/core-js/modules/_defined.js","webpack:///./~/core-js/modules/_dom-create.js","webpack:///./~/core-js/modules/_ie8-dom-define.js","webpack:///./~/core-js/modules/_iter-create.js","webpack:///./~/core-js/modules/_object-gops.js","webpack:///./~/core-js/modules/_object-keys-internal.js","webpack:///./~/core-js/modules/_object-keys.js","webpack:///./~/core-js/modules/_object-pie.js","webpack:///./~/core-js/modules/_set-proto.js","webpack:///./~/core-js/modules/_to-integer.js","webpack:///./~/core-js/modules/_fails.js","webpack:///./~/core-js/modules/_metadata.js","webpack:///./~/core-js/modules/_wks.js","webpack:///./src/polyfills.ts","webpack:///./~/core-js/modules/_object-dp.js","webpack:///./~/core-js/es6/reflect.js","webpack:///./~/core-js/es7/reflect.js","webpack:///./~/core-js/modules/_array-from-iterable.js","webpack:///./~/core-js/modules/_array-includes.js","webpack:///./~/core-js/modules/_array-species-constructor.js","webpack:///./~/core-js/modules/_array-species-create.js","webpack:///./~/core-js/modules/_bind.js","webpack:///./~/core-js/modules/_classof.js","webpack:///./~/core-js/modules/_collection-weak.js","webpack:///./~/core-js/modules/_html.js","webpack:///./~/core-js/modules/_inherit-if-required.js","webpack:///./~/core-js/modules/_invoke.js","webpack:///./~/core-js/modules/_is-array-iter.js","webpack:///./~/core-js/modules/_is-array.js","webpack:///./~/core-js/modules/_iter-call.js","webpack:///./~/core-js/modules/_iter-define.js","webpack:///./~/core-js/modules/_iter-detect.js","webpack:///./~/core-js/modules/_iter-step.js","webpack:///./~/core-js/modules/_library.js","webpack:///./~/core-js/modules/_object-assign.js","webpack:///./~/core-js/modules/_object-dps.js","webpack:///./~/core-js/modules/_object-gopn.js","webpack:///./~/core-js/modules/_own-keys.js","webpack:///./~/core-js/modules/_set-species.js","webpack:///./~/core-js/modules/_to-absolute-index.js","webpack:///./~/core-js/modules/core.get-iterator-method.js","webpack:///./~/core-js/modules/es6.map.js","webpack:///./~/core-js/modules/es6.reflect.apply.js","webpack:///./~/core-js/modules/es6.reflect.construct.js","webpack:///./~/core-js/modules/es6.reflect.define-property.js","webpack:///./~/core-js/modules/es6.reflect.delete-property.js","webpack:///./~/core-js/modules/es6.reflect.enumerate.js","webpack:///./~/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:///./~/core-js/modules/es6.reflect.get-prototype-of.js","webpack:///./~/core-js/modules/es6.reflect.get.js","webpack:///./~/core-js/modules/es6.reflect.has.js","webpack:///./~/core-js/modules/es6.reflect.is-extensible.js","webpack:///./~/core-js/modules/es6.reflect.own-keys.js","webpack:///./~/core-js/modules/es6.reflect.prevent-extensions.js","webpack:///./~/core-js/modules/es6.reflect.set-prototype-of.js","webpack:///./~/core-js/modules/es6.reflect.set.js","webpack:///./~/core-js/modules/es6.set.js","webpack:///./~/core-js/modules/es6.weak-map.js","webpack:///./~/core-js/modules/es7.reflect.define-metadata.js","webpack:///./~/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./~/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./~/core-js/modules/es7.reflect.get-metadata.js","webpack:///./~/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./~/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./~/core-js/modules/es7.reflect.has-metadata.js","webpack:///./~/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./~/core-js/modules/es7.reflect.metadata.js","webpack:///./~/core-js/modules/_descriptors.js","webpack:///./~/core-js/modules/_object-gpo.js"],"names":[],"mappings":";;;;;AAAA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,wBAAwB,oCAAoC;AACpL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oDAAoD;AAC9F;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,8BAA8B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB,EAAE;AACjF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAiC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,8FAA8F,aAAa,EAAE;AAC7G;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,uDAAuD,uDAAuD;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE,qCAAqC,yBAAyB;AAC9D,+BAA+B,mBAAmB;AAClD,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,kCAAkC,sCAAsC;AACxE,iCAAiC,0CAA0C;AAC3E;AACA,iDAAiD,2FAA2F,EAAE;AAC9I,oDAAoD,qEAAqE,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D,0BAA0B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,+BAA+B,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uFAAuF;AACvF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,uBAAuB;AAC1C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA,MAAM,EAAE;AACR,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,MAAM,EAAE;AACR,iGAAiG;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,0CAA0C;AACxG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;;;;;;AC9iED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACvLtC;AACA;AACA;AACA;;;;;;;;ACHA,6BAA6B;AAC7B,uCAAuC;;;;;;;;ACDvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;AC9BD;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA,GAAG,4CAA4C,gCAAgC;AAC/E;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,uBAAuB;AACzG,iEAAiE;AACjE,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;;AC1CA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACJA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO,mCAAmC,gCAAgC,aAAa;AACvF,8BAA8B,mCAAmC,aAAa;AAC9E;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qDAAqD;AACrD;AACA,kDAAkD,iBAAiB,EAAE;AACrE;AACA,wDAAwD,aAAa,EAAE,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;;;;;;ACpFA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;;AAEA;AACA,oEAAoE,iCAAiC;AACrG;;;;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA,kDAAkD;AAClD;AACA,uCAAuC;AACvC;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;;;;;;;ACLA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;;ACLzC,uBAAuB;AACvB;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA;AACA;AACA,wCAAwC;AACxC;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,+BAA+B;AAC/B,mCAAmC;AACnC,SAAS,iCAAiC;AAC1C;AACA;AACA;AACA;AACA;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,6BAA6B;AAC7B,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA,sEAAsE,mBAAmB,UAAU,EAAE,EAAE;AACvG,CAAC;;;;;;;;;ACFD;AACA;AACA;AACA;AACA;;AAEA;AACA,8FAAkF,aAAa,EAAE;;AAEjG;AACA,qDAAqD,4BAA4B;AACjF;AACA;;;;;;;;ACZA;;;;;;;;ACAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACNA,cAAc;;;;;;;;ACAd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;ACVA;AAAA;AAAA;;;;;;;;;;;;;;GAcG;AA6ByB;AACA;AAWF;AAI1B;;GAEG;AAEH;;;GAGG;AACH,oDAAoD;;;;;;;;ACnEpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;;ACtBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACpFA;AACA;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACfA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA,8BAA8B,aAAa;;AAE3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E,6CAA6C,oCAAoC;AACjF,KAAK,4BAA4B,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;ACrEA;AACA;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;ACrBA;AACA,UAAU;AACV;;;;;;;;ACFA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU,EAAE;AAChD,mBAAmB,sCAAsC;AACzD,CAAC,qCAAqC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;ACjCD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC,GAAG;AACH;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,mEAAmE;AAC5F,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;;;;;;;AClBD;AACA;AACA;AACA;AACA,mDAAgD;AAChD;AACA;AACA;AACA,sBAAsB,cAAc;AACpC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACfD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAoD;;AAEpD;AACA;AACA;AACA,gBAAgB;AAChB,mCAAmC,cAAc;AACjD,CAAC;AACD;AACA,0BAA0B,cAAc;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;AC9CD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,MAAM,WAAW,OAAO,WAAW;AACnE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;ACtBD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACVD;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,cAAc;AACd,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,GAAG;AACH,UAAU;AACV,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACzBD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACTD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,WAAW;;;;;;;;ACpB1C;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACPD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACVD;AACA;;AAEA,+BAA+B,oCAAkC;;;;;;;;ACHjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;ACfD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;ACdD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,WAAW;;;;;;;;;AC9B1C;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,mEAAmE;AAC5F,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACbD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,4EAA4E,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;;;;;;;;AC1DA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;ACPH;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;ACdH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;AClBH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;AChBH;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;ACPH;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,CAAC,EAAE;;;;;;;;ACRH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;ACfH;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,CAAC,EAAE;;;;;;;;ACRH;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;ACdH;AACA;AACA,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;;ACHD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH","file":"polyfills.bundle.js","sourcesContent":["var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 10\n// module chunks = 0 3","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-object.js\n// module id = 11\n// module chunks = 0","/**\n* @license\n* Copyright Google Inc. All Rights Reserved.\n*\n* Use of this source code is governed by an MIT-style license that can be\n* found in the LICENSE file at https://angular.io/license\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(factory());\n}(this, (function () { 'use strict';\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nvar Zone$1 = (function (global) {\n if (global['Zone']) {\n throw new Error('Zone already loaded.');\n }\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var Zone = (function () {\n function Zone(parent, zoneSpec) {\n this._properties = null;\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global.Promise !== ZoneAwarePromise) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: true,\n configurable: true\n });\n \n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = undefined; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this);\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this);\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this)\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this);\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = null;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n // if the task's state is notScheduled, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard && task._transitionTo(notScheduled, running, notScheduled);\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task.zone = this;\n task = this._zoneDelegate.scheduleTask(this, task);\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, null));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n task._transitionTo(canceling, scheduled, running);\n this._zoneDelegate.cancelTask(this, task);\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n Zone.__symbol__ = __symbol__;\n return Zone;\n }());\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) {\n return delegate.hasTask(target, hasTaskState);\n },\n onScheduleTask: function (delegate, _, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) {\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n },\n onCancelTask: function (delegate, _, target, task) {\n return delegate.cancelTask(target, task);\n }\n };\n var ZoneDelegate = (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { microTask: 0, macroTask: 0, eventTask: 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt =\n zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n return this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n };\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts.microTask > 0,\n macroTask: counts.macroTask > 0,\n eventTask: counts.eventTask > 0,\n change: type\n };\n // TODO(misko): what should happen if it throws?\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n this.zone = null;\n this.runCount = 0;\n this._zoneDelegates = null;\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n this.callback = callback;\n var self = this;\n this.invoke = function () {\n _numberOfNestedTaskFrames++;\n try {\n self.runCount++;\n return self.zone.runTask(self, this, arguments);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n }\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ?\n ' or \\'' + fromState2 + '\\'' :\n '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId;\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n data: this.data,\n zone: this.zone.name,\n invoke: this.invoke,\n scheduleFn: this.scheduleFn,\n cancelFn: this.cancelFn,\n runCount: this.runCount,\n callback: this.callback\n };\n };\n return ZoneTask;\n }());\n var ZoneFrame = (function () {\n function ZoneFrame(parent, zone) {\n this.parent = parent;\n this.zone = zone;\n }\n return ZoneFrame;\n }());\n function __symbol__(name) {\n return '__zone_symbol__' + name;\n }\n \n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _currentZoneFrame = new ZoneFrame(null, new Zone(null, null));\n var _currentTask = null;\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var _uncaughtPromiseErrors = [];\n var _numberOfNestedTaskFrames = 0;\n function scheduleQueueDrain() {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (global[symbolPromise]) {\n global[symbolPromise].resolve(0)[symbolThen](drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n }\n function scheduleMicroTask(task) {\n scheduleQueueDrain();\n _microTaskQueue.push(task);\n }\n function consoleError(e) {\n if (Zone[__symbol__('ignoreConsoleErrorUncaughtError')]) {\n return;\n }\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n console.error(e);\n }\n function handleUnhandledRejection(e) {\n consoleError(e);\n try {\n var handler = Zone[__symbol__('unhandledPromiseRejectionHandler')];\n if (handler && typeof handler === 'function') {\n handler.apply(this, [e]);\n }\n }\n catch (err) {\n }\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n consoleError(error);\n }\n }\n }\n while (_uncaughtPromiseErrors.length) {\n var _loop_1 = function() {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n }\n _isDrainingMicrotaskQueue = false;\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError('Promise resolved with itself');\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.apply(value, [\n onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))\n ]);\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n value[__symbol__('currentTask')] = Zone.currentTask;\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n throw new Error('Uncaught (in promise): ' + value +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n var error_1 = err;\n error_1.rejection = value;\n error_1.promise = promise;\n error_1.zone = Zone.current;\n error_1.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error_1);\n scheduleQueueDrain();\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[__symbol__('rejectionHandledHandler')];\n if (handler && typeof handler === 'function') {\n handler.apply(this, [{ rejection: promise[symbolValue], promise: promise }]);\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var delegate = promise[symbolState] ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n resolvePromise(chainPromise, true, zone.run(delegate, undefined, [promise[symbolValue]]));\n }\n catch (error) {\n resolvePromise(chainPromise, false, error);\n }\n });\n }\n var ZoneAwarePromise = (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return 'function ZoneAwarePromise() { [native code] }';\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n _a = [res, rej], resolve = _a[0], reject = _a[1];\n var _a;\n });\n function onResolve(value) {\n promise && (promise = null || resolve(value));\n }\n function onReject(error) {\n promise && (promise = null || reject(error));\n }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n var count = 0;\n var resolvedValues = [];\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then((function (index) { return function (value) {\n resolvedValues[index] = value;\n count--;\n if (!count) {\n resolve(resolvedValues);\n }\n }; })(count), reject);\n count++;\n }\n if (!count)\n resolve(resolvedValues);\n return promise;\n };\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var chainPromise = new this.constructor(null);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var Ctor = resultPromise.constructor;\n if (!Ctor[symbolThenPatched]) {\n patchThen(Ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch = global['fetch'];\n if (typeof fetch == 'function') {\n global['fetch'] = zoneify(fetch);\n }\n }\n // This is not part of public API, but it is usefull for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n /*\n * This code patches Error so that:\n * - It ignores un-needed stack frames.\n * - It Shows the associated Zone for reach frame.\n */\n var FrameType;\n (function (FrameType) {\n /// Skip this frame when printing out stack\n FrameType[FrameType[\"blackList\"] = 0] = \"blackList\";\n /// This frame marks zone transition\n FrameType[FrameType[\"transition\"] = 1] = \"transition\";\n })(FrameType || (FrameType = {}));\n var NativeError = global[__symbol__('Error')] = global.Error;\n // Store the frames which should be removed from the stack frames\n var blackListedStackFrames = {};\n // We must find the frame where Error was created, otherwise we assume we don't understand stack\n var zoneAwareFrame;\n global.Error = ZoneAwareError;\n // How should the stack frames be parsed.\n var frameParserStrategy = null;\n var stackRewrite = 'stackRewrite';\n // fix #595, create property descriptor\n // for error properties\n var createProperty = function (props, key) {\n // if property is already defined, skip it.\n if (props[key]) {\n return;\n }\n // define a local property\n // in case error property is not settable\n var name = __symbol__(key);\n props[key] = {\n configurable: true,\n enumerable: true,\n get: function () {\n // if local property has no value\n // use internal error's property value\n if (!this[name]) {\n var error_2 = this[__symbol__('error')];\n if (error_2) {\n this[name] = error_2[key];\n }\n }\n return this[name];\n },\n set: function (value) {\n // setter will set value to local property value\n this[name] = value;\n }\n };\n };\n // fix #595, create property descriptor\n // for error method properties\n var createMethodProperty = function (props, key) {\n if (props[key]) {\n return;\n }\n props[key] = {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function () {\n var error = this[__symbol__('error')];\n var errorMethod = (error && error[key]) || this[key];\n if (errorMethod) {\n return errorMethod.apply(error, arguments);\n }\n }\n };\n };\n var createErrorProperties = function () {\n var props = Object.create(null);\n var error = new NativeError();\n var keys = Object.getOwnPropertyNames(error);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(error, key)) {\n createProperty(props, key);\n }\n }\n var proto = NativeError.prototype;\n if (proto) {\n var pKeys = Object.getOwnPropertyNames(proto);\n for (var i = 0; i < pKeys.length; i++) {\n var key = pKeys[i];\n // skip constructor\n if (key !== 'constructor' && key !== 'toString' && key !== 'toSource') {\n createProperty(props, key);\n }\n }\n }\n // some other properties are not\n // in NativeError\n createProperty(props, 'originalStack');\n createProperty(props, 'zoneAwareStack');\n // define toString, toSource as method property\n createMethodProperty(props, 'toString');\n createMethodProperty(props, 'toSource');\n return props;\n };\n var errorProperties = createErrorProperties();\n // for derived Error class which extends ZoneAwareError\n // we should not override the derived class's property\n // so we create a new props object only copy the properties\n // from errorProperties which not exist in derived Error's prototype\n var getErrorPropertiesForPrototype = function (prototype) {\n // if the prototype is ZoneAwareError.prototype\n // we just return the prebuilt errorProperties.\n if (prototype === ZoneAwareError.prototype) {\n return errorProperties;\n }\n var newProps = Object.create(null);\n var cKeys = Object.getOwnPropertyNames(errorProperties);\n var keys = Object.getOwnPropertyNames(prototype);\n cKeys.forEach(function (cKey) {\n if (keys.filter(function (key) {\n return key === cKey;\n })\n .length === 0) {\n newProps[cKey] = errorProperties[cKey];\n }\n });\n return newProps;\n };\n /**\n * This is ZoneAwareError which processes the stack frame and cleans up extra frames as well as\n * adds zone information to it.\n */\n function ZoneAwareError() {\n // make sure we have a valid this\n // if this is undefined(call Error without new) or this is global\n // or this is some other objects, we should force to create a\n // valid ZoneAwareError by call Object.create()\n if (!(this instanceof ZoneAwareError)) {\n return ZoneAwareError.apply(Object.create(ZoneAwareError.prototype), arguments);\n }\n // Create an Error.\n var error = NativeError.apply(this, arguments);\n this[__symbol__('error')] = error;\n // Save original stack trace\n error.originalStack = error.stack;\n // Process the stack trace and rewrite the frames.\n if (ZoneAwareError[stackRewrite] && error.originalStack) {\n var frames_1 = error.originalStack.split('\\n');\n var zoneFrame = _currentZoneFrame;\n var i = 0;\n // Find the first frame\n while (frames_1[i] !== zoneAwareFrame && i < frames_1.length) {\n i++;\n }\n for (; i < frames_1.length && zoneFrame; i++) {\n var frame = frames_1[i];\n if (frame.trim()) {\n var frameType = blackListedStackFrames.hasOwnProperty(frame) && blackListedStackFrames[frame];\n if (frameType === FrameType.blackList) {\n frames_1.splice(i, 1);\n i--;\n }\n else if (frameType === FrameType.transition) {\n if (zoneFrame.parent) {\n // This is the special frame where zone changed. Print and process it accordingly\n frames_1[i] += \" [\" + zoneFrame.parent.zone.name + \" => \" + zoneFrame.zone.name + \"]\";\n zoneFrame = zoneFrame.parent;\n }\n else {\n zoneFrame = null;\n }\n }\n else {\n frames_1[i] += \" [\" + zoneFrame.zone.name + \"]\";\n }\n }\n }\n error.stack = error.zoneAwareStack = frames_1.join('\\n');\n }\n // use defineProperties here instead of copy property value\n // because of issue #595 which will break angular2.\n Object.defineProperties(this, getErrorPropertiesForPrototype(Object.getPrototypeOf(this)));\n return this;\n }\n // Copy the prototype so that instanceof operator works as expected\n ZoneAwareError.prototype = NativeError.prototype;\n ZoneAwareError[Zone.__symbol__('blacklistedStackFrames')] = blackListedStackFrames;\n ZoneAwareError[stackRewrite] = false;\n // those properties need special handling\n var specialPropertyNames = ['stackTraceLimit', 'captureStackTrace', 'prepareStackTrace'];\n // those properties of NativeError should be set to ZoneAwareError\n var nativeErrorProperties = Object.keys(NativeError);\n if (nativeErrorProperties) {\n nativeErrorProperties.forEach(function (prop) {\n if (specialPropertyNames.filter(function (sp) { return sp === prop; }).length === 0) {\n Object.defineProperty(ZoneAwareError, prop, {\n get: function () {\n return NativeError[prop];\n },\n set: function (value) {\n NativeError[prop] = value;\n }\n });\n }\n });\n }\n if (NativeError.hasOwnProperty('stackTraceLimit')) {\n // Extend default stack limit as we will be removing few frames.\n NativeError.stackTraceLimit = Math.max(NativeError.stackTraceLimit, 15);\n // make sure that ZoneAwareError has the same property which forwards to NativeError.\n Object.defineProperty(ZoneAwareError, 'stackTraceLimit', {\n get: function () {\n return NativeError.stackTraceLimit;\n },\n set: function (value) {\n return NativeError.stackTraceLimit = value;\n }\n });\n }\n if (NativeError.hasOwnProperty('captureStackTrace')) {\n Object.defineProperty(ZoneAwareError, 'captureStackTrace', {\n // add named function here because we need to remove this\n // stack frame when prepareStackTrace below\n value: function zoneCaptureStackTrace(targetObject, constructorOpt) {\n NativeError.captureStackTrace(targetObject, constructorOpt);\n }\n });\n }\n Object.defineProperty(ZoneAwareError, 'prepareStackTrace', {\n get: function () {\n return NativeError.prepareStackTrace;\n },\n set: function (value) {\n if (!value || typeof value !== 'function') {\n return NativeError.prepareStackTrace = value;\n }\n return NativeError.prepareStackTrace = function (error, structuredStackTrace) {\n // remove additional stack information from ZoneAwareError.captureStackTrace\n if (structuredStackTrace) {\n for (var i = 0; i < structuredStackTrace.length; i++) {\n var st = structuredStackTrace[i];\n // remove the first function which name is zoneCaptureStackTrace\n if (st.getFunctionName() === 'zoneCaptureStackTrace') {\n structuredStackTrace.splice(i, 1);\n break;\n }\n }\n }\n return value.apply(this, [error, structuredStackTrace]);\n };\n }\n });\n // Now we need to populet the `blacklistedStackFrames` as well as find the\n // run/runGuraded/runTask frames. This is done by creating a detect zone and then threading\n // the execution through all of the above methods so that we can look at the stack trace and\n // find the frames of interest.\n var detectZone = Zone.current.fork({\n name: 'detect',\n onInvoke: function (parentZoneDelegate, currentZone, targetZone, delegate, applyThis, applyArgs, source) {\n // Here only so that it will show up in the stack frame so that it can be black listed.\n return parentZoneDelegate.invoke(targetZone, delegate, applyThis, applyArgs, source);\n },\n onHandleError: function (parentZD, current, target, error) {\n if (error.originalStack && Error === ZoneAwareError) {\n var frames_2 = error.originalStack.split(/\\n/);\n var runFrame = false, runGuardedFrame = false, runTaskFrame = false;\n while (frames_2.length) {\n var frame = frames_2.shift();\n // On safari it is possible to have stack frame with no line number.\n // This check makes sure that we don't filter frames on name only (must have\n // linenumber)\n if (/:\\d+:\\d+/.test(frame)) {\n // Get rid of the path so that we don't accidintely find function name in path.\n // In chrome the seperator is `(` and `@` in FF and safari\n // Chrome: at Zone.run (zone.js:100)\n // Chrome: at Zone.run (http://localhost:9876/base/build/lib/zone.js:100:24)\n // FireFox: Zone.prototype.run@http://localhost:9876/base/build/lib/zone.js:101:24\n // Safari: run@http://localhost:9876/base/build/lib/zone.js:101:24\n var fnName = frame.split('(')[0].split('@')[0];\n var frameType = FrameType.transition;\n if (fnName.indexOf('ZoneAwareError') !== -1) {\n zoneAwareFrame = frame;\n }\n if (fnName.indexOf('runGuarded') !== -1) {\n runGuardedFrame = true;\n }\n else if (fnName.indexOf('runTask') !== -1) {\n runTaskFrame = true;\n }\n else if (fnName.indexOf('run') !== -1) {\n runFrame = true;\n }\n else {\n frameType = FrameType.blackList;\n }\n blackListedStackFrames[frame] = frameType;\n // Once we find all of the frames we can stop looking.\n if (runFrame && runGuardedFrame && runTaskFrame) {\n ZoneAwareError[stackRewrite] = true;\n break;\n }\n }\n }\n }\n return false;\n }\n });\n // carefully constructor a stack frame which contains all of the frames of interest which\n // need to be detected and blacklisted.\n var detectRunFn = function () {\n detectZone.run(function () {\n detectZone.runGuarded(function () {\n throw new Error('blacklistStackFrames');\n });\n });\n };\n // Cause the error to extract the stack frames.\n detectZone.runTask(detectZone.scheduleMacroTask('detect', detectRunFn, null, function () { return null; }, null));\n return global['Zone'] = Zone;\n})(typeof window === 'object' && window || typeof self === 'object' && self || global);\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis}\n */\nvar zoneSymbol = function (n) { return (\"__zone_symbol__\" + n); };\nvar _global$1 = typeof window === 'object' && window || typeof self === 'object' && self || global;\nfunction bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = Zone.current.wrap(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function(i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n prototype[name_1] = (function (delegate) {\n return function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n}\nvar isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\nvar isNode = (!('nw' in _global$1) && typeof process !== 'undefined' &&\n {}.toString.call(process) === '[object process]');\nvar isBrowser = !isNode && !isWebWorker && !!(typeof window !== 'undefined' && window['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\nvar isMix = typeof process !== 'undefined' &&\n {}.toString.call(process) === '[object process]' && !isWebWorker &&\n !!(typeof window !== 'undefined' && window['HTMLElement']);\nfunction patchProperty(obj, prop) {\n var desc = Object.getOwnPropertyDescriptor(obj, prop) || { enumerable: true, configurable: true };\n var originalDesc = Object.getOwnPropertyDescriptor(obj, 'original' + prop);\n if (!originalDesc && desc.get) {\n Object.defineProperty(obj, 'original' + prop, { enumerable: false, configurable: true, get: desc.get });\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var _prop = zoneSymbol('_' + prop);\n desc.set = function (fn) {\n if (this[_prop]) {\n this.removeEventListener(eventName, this[_prop]);\n }\n if (typeof fn === 'function') {\n var wrapFn = function (event) {\n var result;\n result = fn.apply(this, arguments);\n if (result != undefined && !result)\n event.preventDefault();\n };\n this[_prop] = wrapFn;\n this.addEventListener(eventName, wrapFn, false);\n }\n else {\n this[_prop] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n var r = this[_prop] || null;\n // result will be null when use inline event attribute,\n // such as OK \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n if (r === null) {\n if (originalDesc && originalDesc.get) {\n r = originalDesc.get.apply(this, arguments);\n if (r) {\n desc.set.apply(this, [r]);\n if (typeof this['removeAttribute'] === 'function') {\n this.removeAttribute(prop);\n }\n }\n }\n }\n return this[_prop] || null;\n };\n Object.defineProperty(obj, prop, desc);\n}\n\nfunction patchOnProperties(obj, properties) {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j]);\n }\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i]);\n }\n }\n}\n\nvar EVENT_TASKS = zoneSymbol('eventTasks');\n// For EventTarget\nvar ADD_EVENT_LISTENER = 'addEventListener';\nvar REMOVE_EVENT_LISTENER = 'removeEventListener';\nfunction findExistingRegisteredTask(target, handler, name, capture, remove) {\n var eventTasks = target[EVENT_TASKS];\n if (eventTasks) {\n for (var i = 0; i < eventTasks.length; i++) {\n var eventTask = eventTasks[i];\n var data = eventTask.data;\n var listener = data.handler;\n if ((data.handler === handler || listener.listener === handler) &&\n data.useCapturing === capture && data.eventName === name) {\n if (remove) {\n eventTasks.splice(i, 1);\n }\n return eventTask;\n }\n }\n }\n return null;\n}\nfunction attachRegisteredEvent(target, eventTask, isPrepend) {\n var eventTasks = target[EVENT_TASKS];\n if (!eventTasks) {\n eventTasks = target[EVENT_TASKS] = [];\n }\n if (isPrepend) {\n eventTasks.unshift(eventTask);\n }\n else {\n eventTasks.push(eventTask);\n }\n}\nvar defaultListenerMetaCreator = function (self, args) {\n return {\n useCapturing: args[2],\n eventName: args[0],\n handler: args[1],\n target: self || _global$1,\n name: args[0],\n invokeAddFunc: function (addFnSymbol, delegate) {\n if (delegate && delegate.invoke) {\n return this.target[addFnSymbol](this.eventName, delegate.invoke, this.useCapturing);\n }\n else {\n return this.target[addFnSymbol](this.eventName, delegate, this.useCapturing);\n }\n },\n invokeRemoveFunc: function (removeFnSymbol, delegate) {\n if (delegate && delegate.invoke) {\n return this.target[removeFnSymbol](this.eventName, delegate.invoke, this.useCapturing);\n }\n else {\n return this.target[removeFnSymbol](this.eventName, delegate, this.useCapturing);\n }\n }\n };\n};\nfunction makeZoneAwareAddListener(addFnName, removeFnName, useCapturingParam, allowDuplicates, isPrepend, metaCreator) {\n if (useCapturingParam === void 0) { useCapturingParam = true; }\n if (allowDuplicates === void 0) { allowDuplicates = false; }\n if (isPrepend === void 0) { isPrepend = false; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n var addFnSymbol = zoneSymbol(addFnName);\n var removeFnSymbol = zoneSymbol(removeFnName);\n var defaultUseCapturing = useCapturingParam ? false : undefined;\n function scheduleEventListener(eventTask) {\n var meta = eventTask.data;\n attachRegisteredEvent(meta.target, eventTask, isPrepend);\n return meta.invokeAddFunc(addFnSymbol, eventTask);\n }\n function cancelEventListener(eventTask) {\n var meta = eventTask.data;\n findExistingRegisteredTask(meta.target, eventTask.invoke, meta.eventName, meta.useCapturing, true);\n return meta.invokeRemoveFunc(removeFnSymbol, eventTask);\n }\n return function zoneAwareAddListener(self, args) {\n var data = metaCreator(self, args);\n data.useCapturing = data.useCapturing || defaultUseCapturing;\n // - Inside a Web Worker, `this` is undefined, the context is `global`\n // - When `addEventListener` is called on the global context in strict mode, `this` is undefined\n // see https://github.com/angular/zone.js/issues/190\n var delegate = null;\n if (typeof data.handler == 'function') {\n delegate = data.handler;\n }\n else if (data.handler && data.handler.handleEvent) {\n delegate = function (event) { return data.handler.handleEvent(event); };\n }\n var validZoneHandler = false;\n try {\n // In cross site contexts (such as WebDriver frameworks like Selenium),\n // accessing the handler object here will cause an exception to be thrown which\n // will fail tests prematurely.\n validZoneHandler = data.handler && data.handler.toString() === '[object FunctionWrapper]';\n }\n catch (error) {\n // Returning nothing here is fine, because objects in a cross-site context are unusable\n return;\n }\n // Ignore special listeners of IE11 & Edge dev tools, see\n // https://github.com/angular/zone.js/issues/150\n if (!delegate || validZoneHandler) {\n return data.invokeAddFunc(addFnSymbol, data.handler);\n }\n if (!allowDuplicates) {\n var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.useCapturing, false);\n if (eventTask) {\n // we already registered, so this will have noop.\n return data.invokeAddFunc(addFnSymbol, eventTask);\n }\n }\n var zone = Zone.current;\n var source = data.target.constructor['name'] + '.' + addFnName + ':' + data.eventName;\n zone.scheduleEventTask(source, delegate, data, scheduleEventListener, cancelEventListener);\n };\n}\nfunction makeZoneAwareRemoveListener(fnName, useCapturingParam, metaCreator) {\n if (useCapturingParam === void 0) { useCapturingParam = true; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n var symbol = zoneSymbol(fnName);\n var defaultUseCapturing = useCapturingParam ? false : undefined;\n return function zoneAwareRemoveListener(self, args) {\n var data = metaCreator(self, args);\n data.useCapturing = data.useCapturing || defaultUseCapturing;\n // - Inside a Web Worker, `this` is undefined, the context is `global`\n // - When `addEventListener` is called on the global context in strict mode, `this` is undefined\n // see https://github.com/angular/zone.js/issues/190\n var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.useCapturing, true);\n if (eventTask) {\n eventTask.zone.cancelTask(eventTask);\n }\n else {\n data.invokeRemoveFunc(symbol, data.handler);\n }\n };\n}\n\n\nvar zoneAwareAddEventListener = makeZoneAwareAddListener(ADD_EVENT_LISTENER, REMOVE_EVENT_LISTENER);\nvar zoneAwareRemoveEventListener = makeZoneAwareRemoveListener(REMOVE_EVENT_LISTENER);\nfunction patchEventTargetMethods(obj, addFnName, removeFnName, metaCreator) {\n if (addFnName === void 0) { addFnName = ADD_EVENT_LISTENER; }\n if (removeFnName === void 0) { removeFnName = REMOVE_EVENT_LISTENER; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n if (obj && obj[addFnName]) {\n patchMethod(obj, addFnName, function () { return makeZoneAwareAddListener(addFnName, removeFnName, true, false, false, metaCreator); });\n patchMethod(obj, removeFnName, function () { return makeZoneAwareRemoveListener(removeFnName, true, metaCreator); });\n return true;\n }\n else {\n return false;\n }\n}\nvar originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n var OriginalClass = _global$1[className];\n if (!OriginalClass)\n return;\n _global$1[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global$1[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n Object.defineProperty(_global$1[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = Zone.current.wrap(fn, className + '.' + prop);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global$1[className][prop] = OriginalClass[prop];\n }\n }\n}\n\nfunction createNamedFn(name, delegate) {\n try {\n return (Function('f', \"return function \" + name + \"(){return f(this, arguments)}\"))(delegate);\n }\n catch (error) {\n // if we fail, we must be CSP, just return delegate.\n return function () {\n return delegate(this, arguments);\n };\n }\n}\nfunction patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && Object.getOwnPropertyNames(proto).indexOf(name) === -1) {\n proto = Object.getPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n proto[name] = createNamedFn(name, patchFn(delegate, delegateName, name));\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\n\n\nfunction findEventTask(target, evtName) {\n var eventTasks = target[zoneSymbol('eventTasks')];\n var result = [];\n if (eventTasks) {\n for (var i = 0; i < eventTasks.length; i++) {\n var eventTask = eventTasks[i];\n var data = eventTask.data;\n var eventName = data && data.eventName;\n if (eventName === evtName) {\n result.push(eventTask);\n }\n }\n }\n return result;\n}\nZone[zoneSymbol('patchEventTargetMethods')] = patchEventTargetMethods;\nZone[zoneSymbol('patchOnProperties')] = patchOnProperties;\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n data.args[0] = function () {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n delete tasksByHandleId[data.handleId];\n }\n };\n data.handleId = setNative.apply(window, data.args);\n tasksByHandleId[data.handleId] = task;\n return task;\n }\n function clearTask(task) {\n delete tasksByHandleId[task.data.handleId];\n return clearNative(task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var zone = Zone.current;\n var options = {\n handleId: null,\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : null,\n args: args\n };\n var task = zone.scheduleMacroTask(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var task = typeof args[0] === 'number' ? tasksByHandleId[args[0]] : args[0];\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\nvar _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty;\nvar _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nvar _create = Object.create;\nvar unconfigurablesKey = zoneSymbol('unconfigurables');\nfunction propertyPatch() {\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n}\n\nfunction _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n}\n\nfunction isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n}\nfunction rewriteDescriptor(obj, prop, desc) {\n desc.configurable = true;\n if (!desc.configurable) {\n if (!obj[unconfigurablesKey]) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n obj[unconfigurablesKey][prop] = true;\n }\n return desc;\n}\nfunction _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = descJson.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\nvar NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\nvar EVENT_TARGET = 'EventTarget';\nfunction eventTargetPatch(_global) {\n var apis = [];\n var isWtf = _global['wtf'];\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555.split(',').map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n patchEventTargetMethods(type && type.prototype);\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// we have to patch the instance since the proto is non-configurable\nfunction apply(_global) {\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n patchEventTargetMethods(WS.prototype);\n }\n _global.WebSocket = function (a, b) {\n var socket = arguments.length > 1 ? new WS(a, b) : new WS(a);\n var proxySocket;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = Object.getOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = Object.create(socket);\n ['addEventListener', 'removeEventListener', 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n return socket[propName].apply(socket, arguments);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n patchOnProperties(proxySocket, ['close', 'error', 'message', 'open']);\n return proxySocket;\n };\n for (var prop in WS) {\n _global.WebSocket[prop] = WS[prop];\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar eventNames = 'copy cut paste abort blur focus canplay canplaythrough change click contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop durationchange emptied ended input invalid keydown keypress keyup load loadeddata loadedmetadata loadstart message mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup pause play playing progress ratechange reset scroll seeked seeking select show stalled submit suspend timeupdate volumechange waiting mozfullscreenchange mozfullscreenerror mozpointerlockchange mozpointerlockerror error webglcontextrestored webglcontextlost webglcontextcreationerror'\n .split(' ');\nfunction propertyDescriptorPatch(_global) {\n if (isNode && !isMix) {\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n if (canPatchViaPropertyDescriptor()) {\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n patchOnProperties(HTMLElement.prototype, eventNames);\n }\n patchOnProperties(XMLHttpRequest.prototype, null);\n if (typeof IDBIndex !== 'undefined') {\n patchOnProperties(IDBIndex.prototype, null);\n patchOnProperties(IDBRequest.prototype, null);\n patchOnProperties(IDBOpenDBRequest.prototype, null);\n patchOnProperties(IDBDatabase.prototype, null);\n patchOnProperties(IDBTransaction.prototype, null);\n patchOnProperties(IDBCursor.prototype, null);\n }\n if (supportsWebSocket) {\n patchOnProperties(WebSocket.prototype, null);\n }\n }\n else {\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents();\n patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(_global);\n }\n }\n}\nfunction canPatchViaPropertyDescriptor() {\n if ((isBrowser || isMix) && !Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = Object.getOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n }\n var xhrDesc = Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype, 'onreadystatechange');\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', xhrDesc || {});\n return result;\n}\n\nvar unboundKey = zoneSymbol('unbound');\n// Whenever any eventListener fires, we check the eventListener target and all parents\n// for `onwhatever` properties and replace them with zone-bound functions\n// - Chrome (for now)\nfunction patchViaCapturingAllTheEvents() {\n var _loop_1 = function(i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = Zone.current.wrap(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\n }\n \n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction registerElementPatch(_global) {\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var _registerElement = document.registerElement;\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n document.registerElement = function (name, opts) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = 'Document.registerElement::' + callback;\n if (opts.prototype.hasOwnProperty(callback)) {\n var descriptor = Object.getOwnPropertyDescriptor(opts.prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = Zone.current.wrap(descriptor.value, source);\n _redefineProperty(opts.prototype, callback, descriptor);\n }\n else {\n opts.prototype[callback] = Zone.current.wrap(opts.prototype[callback], source);\n }\n }\n else if (opts.prototype[callback]) {\n opts.prototype[callback] = Zone.current.wrap(opts.prototype[callback], source);\n }\n });\n }\n return _registerElement.apply(document, [name, opts]);\n };\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar set = 'set';\nvar clear = 'clear';\nvar blockingMethods = ['alert', 'prompt', 'confirm'];\nvar _global = typeof window === 'object' && window || typeof self === 'object' && self || global;\npatchTimer(_global, set, clear, 'Timeout');\npatchTimer(_global, set, clear, 'Interval');\npatchTimer(_global, set, clear, 'Immediate');\npatchTimer(_global, 'request', 'cancel', 'AnimationFrame');\npatchTimer(_global, 'mozRequest', 'mozCancel', 'AnimationFrame');\npatchTimer(_global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\nfor (var i = 0; i < blockingMethods.length; i++) {\n var name_1 = blockingMethods[i];\n patchMethod(_global, name_1, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, _global, args, name);\n };\n });\n}\neventTargetPatch(_global);\npropertyDescriptorPatch(_global);\npatchClass('MutationObserver');\npatchClass('WebKitMutationObserver');\npatchClass('FileReader');\npropertyPatch();\nregisterElementPatch(_global);\n// Treat XMLHTTPRequest as a macrotask.\npatchXHR(_global);\nvar XHR_TASK = zoneSymbol('xhrTask');\nvar XHR_SYNC = zoneSymbol('xhrSync');\nvar XHR_LISTENER = zoneSymbol('xhrListener');\nvar XHR_SCHEDULED = zoneSymbol('xhrScheduled');\nfunction patchXHR(window) {\n function findPendingTask(target) {\n var pendingTask = target[XHR_TASK];\n return pendingTask;\n }\n function scheduleTask(task) {\n self[XHR_SCHEDULED] = false;\n var data = task.data;\n // remove existing event listener\n var listener = data.target[XHR_LISTENER];\n if (listener) {\n data.target.removeEventListener('readystatechange', listener);\n }\n var newListener = data.target[XHR_LISTENER] = function () {\n if (data.target.readyState === data.target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && self[XHR_SCHEDULED] && task.state === 'scheduled') {\n task.invoke();\n }\n }\n };\n data.target.addEventListener('readystatechange', newListener);\n var storedTask = data.target[XHR_TASK];\n if (!storedTask) {\n data.target[XHR_TASK] = task;\n }\n sendNative.apply(data.target, data.args);\n self[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(window.XMLHttpRequest.prototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n return openNative.apply(self, args);\n }; });\n var sendNative = patchMethod(window.XMLHttpRequest.prototype, 'send', function () { return function (self, args) {\n var zone = Zone.current;\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, isPeriodic: false, delay: null, args: args, aborted: false };\n return zone.scheduleMacroTask('XMLHttpRequest.send', placeholderCallback, options, scheduleTask, clearTask);\n }\n }; });\n var abortNative = patchMethod(window.XMLHttpRequest.prototype, 'abort', function (delegate) { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no task\n // to cancel. Do nothing.\n }; });\n}\n/// GEO_LOCATION\nif (_global['navigator'] && _global['navigator'].geolocation) {\n patchPrototype(_global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n}\n// handle unhandled promise rejection\nfunction findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTask(_global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = _global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n}\nif (_global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] = findPromiseRejectionHandler('rejectionhandled');\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/zone.js/dist/zone.js\n// module id = 1137\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 13\n// module chunks = 0 3","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_a-function.js\n// module id = 131\n// module chunks = 0","var core = module.exports = { version: '2.5.0' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_core.js\n// module id = 132\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ctx.js\n// module id = 133\n// module chunks = 0","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopd.js\n// module id = 134\n// module chunks = 0","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine.js\n// module id = 135\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_validate-collection.js\n// module id = 136\n// module chunks = 0","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_for-of.js\n// module id = 194\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_hide.js\n// module id = 195\n// module chunks = 0","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_meta.js\n// module id = 196\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_property-desc.js\n// module id = 197\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_uid.js\n// module id = 198\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_export.js\n// module id = 22\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-object.js\n// module id = 27\n// module chunks = 0","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-instance.js\n// module id = 293\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_cof.js\n// module id = 294\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection.js\n// module id = 295\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_enum-bug-keys.js\n// module id = 296\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iobject.js\n// module id = 297\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iterators.js\n// module id = 298\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-create.js\n// module id = 299\n// module chunks = 0","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine-all.js\n// module id = 300\n// module chunks = 0","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-to-string-tag.js\n// module id = 301\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared-key.js\n// module id = 302\n// module chunks = 0","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared.js\n// module id = 303\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-iobject.js\n// module id = 304\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-length.js\n// module id = 305\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-object.js\n// module id = 306\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-primitive.js\n// module id = 307\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_global.js\n// module id = 37\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_has.js\n// module id = 48\n// module chunks = 0","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-methods.js\n// module id = 486\n// module chunks = 0","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-strong.js\n// module id = 487\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_defined.js\n// module id = 488\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_dom-create.js\n// module id = 489\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ie8-dom-define.js\n// module id = 490\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-create.js\n// module id = 491\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gops.js\n// module id = 492\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys-internal.js\n// module id = 493\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys.js\n// module id = 494\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-pie.js\n// module id = 495\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-proto.js\n// module id = 496\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-integer.js\n// module id = 497\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_fails.js\n// module id = 53\n// module chunks = 0","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_metadata.js\n// module id = 54\n// module chunks = 0","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_wks.js\n// module id = 55\n// module chunks = 0","/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\n * file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\n// import 'core-js/es6/symbol';\n// import 'core-js/es6/object';\n// import 'core-js/es6/function';\n// import 'core-js/es6/parse-int';\n// import 'core-js/es6/parse-float';\n// import 'core-js/es6/number';\n// import 'core-js/es6/math';\n// import 'core-js/es6/string';\n// import 'core-js/es6/date';\n// import 'core-js/es6/array';\n// import 'core-js/es6/regexp';\n// import 'core-js/es6/map';\n// import 'core-js/es6/set';\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\n\n/** IE10 and IE11 requires the following to support `@angular/animation`. */\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\n\n\n/** Evergreen browsers require these. **/\nimport 'core-js/es6/reflect';\nimport 'core-js/es7/reflect';\n\n\n/** ALL Firefox browsers require the following to support `@angular/animation`. **/\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\n\n\n\n/***************************************************************************************************\n * Zone JS is required by Angular itself.\n */\nimport 'zone.js/dist/zone'; // Included with Angular CLI.\n\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n\n/**\n * Date, currency, decimal and percent pipes.\n * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10\n */\n// import 'intl'; // Run `npm install --save intl`.\n\n\n\n// WEBPACK FOOTER //\n// ./src/polyfills.ts","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dp.js\n// module id = 70\n// module chunks = 0","require('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core').Reflect;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es6/reflect.js\n// module id = 740\n// module chunks = 0","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es7/reflect.js\n// module id = 741\n// module chunks = 0","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-from-iterable.js\n// module id = 742\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-includes.js\n// module id = 743\n// module chunks = 0","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-species-constructor.js\n// module id = 744\n// module chunks = 0","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-species-create.js\n// module id = 745\n// module chunks = 0","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_bind.js\n// module id = 746\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_classof.js\n// module id = 747\n// module chunks = 0","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-weak.js\n// module id = 748\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_html.js\n// module id = 749\n// module chunks = 0","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_inherit-if-required.js\n// module id = 750\n// module chunks = 0","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_invoke.js\n// module id = 751\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array-iter.js\n// module id = 752\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array.js\n// module id = 753\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-call.js\n// module id = 754\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-define.js\n// module id = 755\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-detect.js\n// module id = 756\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-step.js\n// module id = 757\n// module chunks = 0","module.exports = false;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_library.js\n// module id = 758\n// module chunks = 0","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-assign.js\n// module id = 759\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dps.js\n// module id = 760\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopn.js\n// module id = 761\n// module chunks = 0","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_own-keys.js\n// module id = 762\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-species.js\n// module id = 763\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-absolute-index.js\n// module id = 764\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/core.get-iterator-method.js\n// module id = 765\n// module chunks = 0","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.map.js\n// module id = 766\n// module chunks = 0","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.apply.js\n// module id = 767\n// module chunks = 0","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.construct.js\n// module id = 768\n// module chunks = 0","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.define-property.js\n// module id = 769\n// module chunks = 0","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.delete-property.js\n// module id = 770\n// module chunks = 0","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.enumerate.js\n// module id = 771\n// module chunks = 0","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.get-own-property-descriptor.js\n// module id = 772\n// module chunks = 0","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.get-prototype-of.js\n// module id = 773\n// module chunks = 0","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.get.js\n// module id = 774\n// module chunks = 0","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.has.js\n// module id = 775\n// module chunks = 0","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.is-extensible.js\n// module id = 776\n// module chunks = 0","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.own-keys.js\n// module id = 777\n// module chunks = 0","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.prevent-extensions.js\n// module id = 778\n// module chunks = 0","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.set-prototype-of.js\n// module id = 779\n// module chunks = 0","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.set.js\n// module id = 780\n// module chunks = 0","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.set.js\n// module id = 781\n// module chunks = 0","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.weak-map.js\n// module id = 782\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.define-metadata.js\n// module id = 783\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.delete-metadata.js\n// module id = 784\n// module chunks = 0","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-metadata-keys.js\n// module id = 785\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-metadata.js\n// module id = 786\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-own-metadata-keys.js\n// module id = 787\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-own-metadata.js\n// module id = 788\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.has-metadata.js\n// module id = 789\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.has-own-metadata.js\n// module id = 790\n// module chunks = 0","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.metadata.js\n// module id = 791\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_descriptors.js\n// module id = 86\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gpo.js\n// module id = 87\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///./~/zone.js/dist/zone.js","webpack:///./~/core-js/modules/_a-function.js","webpack:///./~/core-js/modules/_core.js","webpack:///./~/core-js/modules/_ctx.js","webpack:///./~/core-js/modules/_object-gopd.js","webpack:///./~/core-js/modules/_redefine.js","webpack:///./~/core-js/modules/_validate-collection.js","webpack:///./~/core-js/modules/_export.js","webpack:///./~/core-js/modules/_for-of.js","webpack:///./~/core-js/modules/_hide.js","webpack:///./~/core-js/modules/_meta.js","webpack:///./~/core-js/modules/_property-desc.js","webpack:///./~/core-js/modules/_uid.js","webpack:///./~/core-js/modules/_is-object.js","webpack:///./~/core-js/modules/_an-instance.js","webpack:///./~/core-js/modules/_cof.js","webpack:///./~/core-js/modules/_collection.js","webpack:///./~/core-js/modules/_enum-bug-keys.js","webpack:///./~/core-js/modules/_iobject.js","webpack:///./~/core-js/modules/_iterators.js","webpack:///./~/core-js/modules/_object-create.js","webpack:///./~/core-js/modules/_redefine-all.js","webpack:///./~/core-js/modules/_set-to-string-tag.js","webpack:///./~/core-js/modules/_shared-key.js","webpack:///./~/core-js/modules/_shared.js","webpack:///./~/core-js/modules/_to-iobject.js","webpack:///./~/core-js/modules/_to-length.js","webpack:///./~/core-js/modules/_to-object.js","webpack:///./~/core-js/modules/_to-primitive.js","webpack:///./~/core-js/modules/_global.js","webpack:///(webpack)/buildin/global.js","webpack:///./~/core-js/modules/_has.js","webpack:///./~/core-js/modules/_array-methods.js","webpack:///./~/core-js/modules/_collection-strong.js","webpack:///./~/core-js/modules/_defined.js","webpack:///./~/core-js/modules/_dom-create.js","webpack:///./~/core-js/modules/_ie8-dom-define.js","webpack:///./~/core-js/modules/_iter-create.js","webpack:///./~/core-js/modules/_object-gops.js","webpack:///./~/core-js/modules/_object-keys-internal.js","webpack:///./~/core-js/modules/_object-keys.js","webpack:///./~/core-js/modules/_object-pie.js","webpack:///./~/core-js/modules/_set-proto.js","webpack:///./~/core-js/modules/_to-integer.js","webpack:///./~/core-js/modules/_fails.js","webpack:///./~/core-js/modules/_metadata.js","webpack:///./~/core-js/modules/_wks.js","webpack:///./src/polyfills.ts","webpack:///./~/core-js/modules/_object-dp.js","webpack:///./~/core-js/es6/reflect.js","webpack:///./~/core-js/es7/reflect.js","webpack:///./~/core-js/modules/_array-from-iterable.js","webpack:///./~/core-js/modules/_array-includes.js","webpack:///./~/core-js/modules/_array-species-constructor.js","webpack:///./~/core-js/modules/_array-species-create.js","webpack:///./~/core-js/modules/_bind.js","webpack:///./~/core-js/modules/_classof.js","webpack:///./~/core-js/modules/_collection-weak.js","webpack:///./~/core-js/modules/_html.js","webpack:///./~/core-js/modules/_inherit-if-required.js","webpack:///./~/core-js/modules/_invoke.js","webpack:///./~/core-js/modules/_is-array-iter.js","webpack:///./~/core-js/modules/_is-array.js","webpack:///./~/core-js/modules/_iter-call.js","webpack:///./~/core-js/modules/_iter-define.js","webpack:///./~/core-js/modules/_iter-detect.js","webpack:///./~/core-js/modules/_iter-step.js","webpack:///./~/core-js/modules/_library.js","webpack:///./~/core-js/modules/_object-assign.js","webpack:///./~/core-js/modules/_object-dps.js","webpack:///./~/core-js/modules/_object-gopn.js","webpack:///./~/core-js/modules/_own-keys.js","webpack:///./~/core-js/modules/_set-species.js","webpack:///./~/core-js/modules/_to-absolute-index.js","webpack:///./~/core-js/modules/core.get-iterator-method.js","webpack:///./~/core-js/modules/es6.map.js","webpack:///./~/core-js/modules/es6.reflect.apply.js","webpack:///./~/core-js/modules/es6.reflect.construct.js","webpack:///./~/core-js/modules/es6.reflect.define-property.js","webpack:///./~/core-js/modules/es6.reflect.delete-property.js","webpack:///./~/core-js/modules/es6.reflect.enumerate.js","webpack:///./~/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:///./~/core-js/modules/es6.reflect.get-prototype-of.js","webpack:///./~/core-js/modules/es6.reflect.get.js","webpack:///./~/core-js/modules/es6.reflect.has.js","webpack:///./~/core-js/modules/es6.reflect.is-extensible.js","webpack:///./~/core-js/modules/es6.reflect.own-keys.js","webpack:///./~/core-js/modules/es6.reflect.prevent-extensions.js","webpack:///./~/core-js/modules/es6.reflect.set-prototype-of.js","webpack:///./~/core-js/modules/es6.reflect.set.js","webpack:///./~/core-js/modules/es6.set.js","webpack:///./~/core-js/modules/es6.weak-map.js","webpack:///./~/core-js/modules/es7.reflect.define-metadata.js","webpack:///./~/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./~/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./~/core-js/modules/es7.reflect.get-metadata.js","webpack:///./~/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./~/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./~/core-js/modules/es7.reflect.has-metadata.js","webpack:///./~/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./~/core-js/modules/es7.reflect.metadata.js","webpack:///./~/process/browser.js","webpack:///./~/core-js/modules/_descriptors.js","webpack:///./~/core-js/modules/_object-gpo.js","webpack:///./~/core-js/modules/_an-object.js"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,uCAAuC,kBAAkB;AACzD,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,wBAAwB,oCAAoC;AACpL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oDAAoD;AAC9F;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,8BAA8B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB,EAAE;AACjF;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAiC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,8FAA8F,aAAa,EAAE;AAC7G;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,uDAAuD,uDAAuD;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE,qCAAqC,yBAAyB;AAC9D,+BAA+B,mBAAmB;AAClD,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,kCAAkC,sCAAsC;AACxE,iCAAiC,0CAA0C;AAC3E;AACA,iDAAiD,2FAA2F,EAAE;AAC9I,oDAAoD,qEAAqE,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D,0BAA0B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,EAAE;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,+BAA+B,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uFAAuF;AACvF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,uBAAuB;AAC1C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA,MAAM,EAAE;AACR,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,MAAM,EAAE;AACR,iGAAiG;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,EAAE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,0CAA0C;AACxG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;;;;;;;;;;;;;;;;AC9iED;AACA;AACA;AACA;;;;;;;;ACHA,6BAA6B;AAC7B,uCAAuC;;;;;;;;ACDvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;AC9BD;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,uBAAuB;AACzG,iEAAiE;AACjE,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA,GAAG,4CAA4C,gCAAgC;AAC/E;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACJA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO,mCAAmC,gCAAgC,aAAa;AACvF,8BAA8B,mCAAmC,aAAa;AAC9E;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qDAAqD;AACrD;AACA,kDAAkD,iBAAiB,EAAE;AACrE;AACA,wDAAwD,aAAa,EAAE,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;;;;;;ACpFA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;;AAEA;AACA,oEAAoE,iCAAiC;AACrG;;;;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA,kDAAkD;AAClD;AACA,uCAAuC;AACvC;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;;;;;;;ACLA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;;ACLzC;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;ACpBA,uBAAuB;AACvB;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA;AACA;AACA,wCAAwC;AACxC;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,+BAA+B;AAC/B,mCAAmC;AACnC,SAAS,iCAAiC;AAC1C;AACA;AACA;AACA;AACA;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,6BAA6B;AAC7B,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;AC/IA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA,sEAAsE,mBAAmB,UAAU,EAAE,EAAE;AACvG,CAAC;;;;;;;;;ACFD;AACA;AACA;AACA;AACA;;AAEA;AACA,8FAAkF,aAAa,EAAE;;AAEjG;AACA,qDAAqD,4BAA4B;AACjF;AACA;;;;;;;;ACZA;;;;;;;;ACAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACNA,cAAc;;;;;;;;ACAd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClDA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;ACVA;AAAA;AAAA;;;;;;;;;;;;;;GAcG;AA6ByB;AACA;AAWF;AAI1B;;GAEG;AAEH;;;GAGG;AACH,oDAAoD;;;;;;;;ACnEpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;;ACtBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB,EAAE;;AAE/C;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACpFA;AACA;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACfA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA,8BAA8B,aAAa;;AAE3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E,6CAA6C,oCAAoC;AACjF,KAAK,4BAA4B,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;ACrEA;AACA;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;ACrBA;AACA,UAAU;AACV;;;;;;;;ACFA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU,EAAE;AAChD,mBAAmB,sCAAsC;AACzD,CAAC,qCAAqC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;ACjCD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC,GAAG;AACH;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,mEAAmE;AAC5F,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;;;;;;;AClBD;AACA;AACA;AACA;AACA,mDAAgD;AAChD;AACA;AACA;AACA,sBAAsB,cAAc;AACpC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACfD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAoD;;AAEpD;AACA;AACA;AACA,gBAAgB;AAChB,mCAAmC,cAAc;AACjD,CAAC;AACD;AACA,0BAA0B,cAAc;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;AC9CD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,MAAM,WAAW,OAAO,WAAW;AACnE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;ACtBD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACVD;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,cAAc;AACd,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,GAAG;AACH,UAAU;AACV,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACzBD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACTD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,WAAW;;;;;;;;ACpB1C;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACPD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACVD;AACA;;AAEA,+BAA+B,oCAAkC;;;;;;;;ACHjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;ACfD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;ACdD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,WAAW;;;;;;;;;AC9B1C;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,mEAAmE;AAC5F,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACbD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,4EAA4E,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;;;;;;;;AC1DA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;ACPH;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;ACdH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;AClBH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;AChBH;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;ACPH;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,CAAC,EAAE;;;;;;;;ACRH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,CAAC,EAAE;;;;;;;;ACfH;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA,CAAC,EAAE;;;;;;;;ACRH;AACA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;;;;;;;ACdH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACvLtC;AACA;AACA,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;;ACHD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACZA;AACA;AACA;AACA;AACA","file":"polyfills.bundle.js","sourcesContent":["/**\n* @license\n* Copyright Google Inc. All Rights Reserved.\n*\n* Use of this source code is governed by an MIT-style license that can be\n* found in the LICENSE file at https://angular.io/license\n*/\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(factory());\n}(this, (function () { 'use strict';\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nvar Zone$1 = (function (global) {\n if (global['Zone']) {\n throw new Error('Zone already loaded.');\n }\n var NO_ZONE = { name: 'NO ZONE' };\n var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling';\n var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n var Zone = (function () {\n function Zone(parent, zoneSpec) {\n this._properties = null;\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n Zone.assertZonePatched = function () {\n if (global.Promise !== ZoneAwarePromise) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n };\n Object.defineProperty(Zone, \"root\", {\n get: function () {\n var zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Zone, \"current\", {\n get: function () {\n return _currentZoneFrame.zone;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone, \"currentTask\", {\n get: function () {\n return _currentTask;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: true,\n configurable: true\n });\n \n Object.defineProperty(Zone.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: true,\n configurable: true\n });\n \n Zone.prototype.get = function (key) {\n var zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n };\n Zone.prototype.getZoneWith = function (key) {\n var current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n };\n Zone.prototype.fork = function (zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n };\n Zone.prototype.wrap = function (callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n var _callback = this._zoneDelegate.intercept(this, callback, source);\n var zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n };\n Zone.prototype.run = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = undefined; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this);\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {\n if (applyThis === void 0) { applyThis = null; }\n if (applyArgs === void 0) { applyArgs = null; }\n if (source === void 0) { source = null; }\n _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this);\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n };\n Zone.prototype.runTask = function (task, applyThis, applyArgs) {\n if (task.zone != this)\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n var reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n var previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = new ZoneFrame(_currentZoneFrame, this);\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = null;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n // if the task's state is notScheduled, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard && task._transitionTo(notScheduled, running, notScheduled);\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n };\n Zone.prototype.scheduleTask = function (task) {\n task._transitionTo(scheduling, notScheduled);\n var zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task.zone = this;\n task = this._zoneDelegate.scheduleTask(this, task);\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n };\n Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, null));\n };\n Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n };\n Zone.prototype.cancelTask = function (task) {\n task._transitionTo(canceling, scheduled, running);\n this._zoneDelegate.cancelTask(this, task);\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n };\n Zone.prototype._updateTaskCount = function (task, count) {\n var zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (var i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n };\n Zone.__symbol__ = __symbol__;\n return Zone;\n }());\n var DELEGATE_ZS = {\n name: '',\n onHasTask: function (delegate, _, target, hasTaskState) {\n return delegate.hasTask(target, hasTaskState);\n },\n onScheduleTask: function (delegate, _, target, task) {\n return delegate.scheduleTask(target, task);\n },\n onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) {\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n },\n onCancelTask: function (delegate, _, target, task) {\n return delegate.cancelTask(target, task);\n }\n };\n var ZoneDelegate = (function () {\n function ZoneDelegate(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { microTask: 0, macroTask: 0, eventTask: 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt =\n zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n var parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n };\n ZoneDelegate.prototype.intercept = function (targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n };\n ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ?\n this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.handleError = function (targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n };\n ZoneDelegate.prototype.scheduleTask = function (targetZone, task) {\n var returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n };\n ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ?\n this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n };\n ZoneDelegate.prototype.cancelTask = function (targetZone, task) {\n var value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n value = task.cancelFn(task);\n }\n return value;\n };\n ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) {\n return this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n };\n ZoneDelegate.prototype._updateTaskCount = function (type, count) {\n var counts = this._taskCounts;\n var prev = counts[type];\n var next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n var isEmpty = {\n microTask: counts.microTask > 0,\n macroTask: counts.macroTask > 0,\n eventTask: counts.eventTask > 0,\n change: type\n };\n // TODO(misko): what should happen if it throws?\n this.hasTask(this.zone, isEmpty);\n }\n };\n return ZoneDelegate;\n }());\n var ZoneTask = (function () {\n function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {\n this.zone = null;\n this.runCount = 0;\n this._zoneDelegates = null;\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n this.callback = callback;\n var self = this;\n this.invoke = function () {\n _numberOfNestedTaskFrames++;\n try {\n self.runCount++;\n return self.zone.runTask(self, this, arguments);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n };\n }\n Object.defineProperty(ZoneTask.prototype, \"state\", {\n get: function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n ZoneTask.prototype.cancelScheduleRequest = function () {\n this._transitionTo(notScheduled, scheduling);\n };\n ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(this.type + \" '\" + this.source + \"': can not transition to '\" + toState + \"', expecting state '\" + fromState1 + \"'\" + (fromState2 ?\n ' or \\'' + fromState2 + '\\'' :\n '') + \", was '\" + this._state + \"'.\");\n }\n };\n ZoneTask.prototype.toString = function () {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId;\n }\n else {\n return Object.prototype.toString.call(this);\n }\n };\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n ZoneTask.prototype.toJSON = function () {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n data: this.data,\n zone: this.zone.name,\n invoke: this.invoke,\n scheduleFn: this.scheduleFn,\n cancelFn: this.cancelFn,\n runCount: this.runCount,\n callback: this.callback\n };\n };\n return ZoneTask;\n }());\n var ZoneFrame = (function () {\n function ZoneFrame(parent, zone) {\n this.parent = parent;\n this.zone = zone;\n }\n return ZoneFrame;\n }());\n function __symbol__(name) {\n return '__zone_symbol__' + name;\n }\n \n var symbolSetTimeout = __symbol__('setTimeout');\n var symbolPromise = __symbol__('Promise');\n var symbolThen = __symbol__('then');\n var _currentZoneFrame = new ZoneFrame(null, new Zone(null, null));\n var _currentTask = null;\n var _microTaskQueue = [];\n var _isDrainingMicrotaskQueue = false;\n var _uncaughtPromiseErrors = [];\n var _numberOfNestedTaskFrames = 0;\n function scheduleQueueDrain() {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n if (global[symbolPromise]) {\n global[symbolPromise].resolve(0)[symbolThen](drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\n }\n }\n function scheduleMicroTask(task) {\n scheduleQueueDrain();\n _microTaskQueue.push(task);\n }\n function consoleError(e) {\n if (Zone[__symbol__('ignoreConsoleErrorUncaughtError')]) {\n return;\n }\n var rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n console.error(e);\n }\n function handleUnhandledRejection(e) {\n consoleError(e);\n try {\n var handler = Zone[__symbol__('unhandledPromiseRejectionHandler')];\n if (handler && typeof handler === 'function') {\n handler.apply(this, [e]);\n }\n }\n catch (err) {\n }\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n var queue = _microTaskQueue;\n _microTaskQueue = [];\n for (var i = 0; i < queue.length; i++) {\n var task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n consoleError(error);\n }\n }\n }\n while (_uncaughtPromiseErrors.length) {\n var _loop_1 = function() {\n var uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(function () {\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n };\n while (_uncaughtPromiseErrors.length) {\n _loop_1();\n }\n }\n _isDrainingMicrotaskQueue = false;\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n var symbolState = __symbol__('state');\n var symbolValue = __symbol__('value');\n var source = 'Promise.then';\n var UNRESOLVED = null;\n var RESOLVED = true;\n var REJECTED = false;\n var REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return function (v) {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n var once = function () {\n var wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n var onceWrapper = once();\n if (promise === value) {\n throw new TypeError('Promise resolved with itself');\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n var then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.apply(value, [\n onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))\n ]);\n }\n catch (err) {\n onceWrapper(function () {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n var queue = promise[symbolValue];\n promise[symbolValue] = value;\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n value[__symbol__('currentTask')] = Zone.currentTask;\n }\n for (var i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n try {\n throw new Error('Uncaught (in promise): ' + value +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n var error_1 = err;\n error_1.rejection = value;\n error_1.promise = promise;\n error_1.zone = Zone.current;\n error_1.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(error_1);\n scheduleQueueDrain();\n }\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n var handler = Zone[__symbol__('rejectionHandledHandler')];\n if (handler && typeof handler === 'function') {\n handler.apply(this, [{ rejection: promise[symbolValue], promise: promise }]);\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (var i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n var delegate = promise[symbolState] ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected : forwardRejection;\n zone.scheduleMicroTask(source, function () {\n try {\n resolvePromise(chainPromise, true, zone.run(delegate, undefined, [promise[symbolValue]]));\n }\n catch (error) {\n resolvePromise(chainPromise, false, error);\n }\n });\n }\n var ZoneAwarePromise = (function () {\n function ZoneAwarePromise(executor) {\n var promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n ZoneAwarePromise.toString = function () {\n return 'function ZoneAwarePromise() { [native code] }';\n };\n ZoneAwarePromise.resolve = function (value) {\n return resolvePromise(new this(null), RESOLVED, value);\n };\n ZoneAwarePromise.reject = function (error) {\n return resolvePromise(new this(null), REJECTED, error);\n };\n ZoneAwarePromise.race = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n _a = [res, rej], resolve = _a[0], reject = _a[1];\n var _a;\n });\n function onResolve(value) {\n promise && (promise = null || resolve(value));\n }\n function onReject(error) {\n promise && (promise = null || reject(error));\n }\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n };\n ZoneAwarePromise.all = function (values) {\n var resolve;\n var reject;\n var promise = new this(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n var count = 0;\n var resolvedValues = [];\n for (var _i = 0, values_2 = values; _i < values_2.length; _i++) {\n var value = values_2[_i];\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then((function (index) { return function (value) {\n resolvedValues[index] = value;\n count--;\n if (!count) {\n resolve(resolvedValues);\n }\n }; })(count), reject);\n count++;\n }\n if (!count)\n resolve(resolvedValues);\n return promise;\n };\n ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) {\n var chainPromise = new this.constructor(null);\n var zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n };\n ZoneAwarePromise.prototype.catch = function (onRejected) {\n return this.then(null, onRejected);\n };\n return ZoneAwarePromise;\n }());\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n var NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n var symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n var proto = Ctor.prototype;\n var originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n var _this = this;\n var wrapped = new ZoneAwarePromise(function (resolve, reject) {\n originalThen.call(_this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n function zoneify(fn) {\n return function () {\n var resultPromise = fn.apply(this, arguments);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n var Ctor = resultPromise.constructor;\n if (!Ctor[symbolThenPatched]) {\n patchThen(Ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n var fetch = global['fetch'];\n if (typeof fetch == 'function') {\n global['fetch'] = zoneify(fetch);\n }\n }\n // This is not part of public API, but it is usefull for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n /*\n * This code patches Error so that:\n * - It ignores un-needed stack frames.\n * - It Shows the associated Zone for reach frame.\n */\n var FrameType;\n (function (FrameType) {\n /// Skip this frame when printing out stack\n FrameType[FrameType[\"blackList\"] = 0] = \"blackList\";\n /// This frame marks zone transition\n FrameType[FrameType[\"transition\"] = 1] = \"transition\";\n })(FrameType || (FrameType = {}));\n var NativeError = global[__symbol__('Error')] = global.Error;\n // Store the frames which should be removed from the stack frames\n var blackListedStackFrames = {};\n // We must find the frame where Error was created, otherwise we assume we don't understand stack\n var zoneAwareFrame;\n global.Error = ZoneAwareError;\n // How should the stack frames be parsed.\n var frameParserStrategy = null;\n var stackRewrite = 'stackRewrite';\n // fix #595, create property descriptor\n // for error properties\n var createProperty = function (props, key) {\n // if property is already defined, skip it.\n if (props[key]) {\n return;\n }\n // define a local property\n // in case error property is not settable\n var name = __symbol__(key);\n props[key] = {\n configurable: true,\n enumerable: true,\n get: function () {\n // if local property has no value\n // use internal error's property value\n if (!this[name]) {\n var error_2 = this[__symbol__('error')];\n if (error_2) {\n this[name] = error_2[key];\n }\n }\n return this[name];\n },\n set: function (value) {\n // setter will set value to local property value\n this[name] = value;\n }\n };\n };\n // fix #595, create property descriptor\n // for error method properties\n var createMethodProperty = function (props, key) {\n if (props[key]) {\n return;\n }\n props[key] = {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function () {\n var error = this[__symbol__('error')];\n var errorMethod = (error && error[key]) || this[key];\n if (errorMethod) {\n return errorMethod.apply(error, arguments);\n }\n }\n };\n };\n var createErrorProperties = function () {\n var props = Object.create(null);\n var error = new NativeError();\n var keys = Object.getOwnPropertyNames(error);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(error, key)) {\n createProperty(props, key);\n }\n }\n var proto = NativeError.prototype;\n if (proto) {\n var pKeys = Object.getOwnPropertyNames(proto);\n for (var i = 0; i < pKeys.length; i++) {\n var key = pKeys[i];\n // skip constructor\n if (key !== 'constructor' && key !== 'toString' && key !== 'toSource') {\n createProperty(props, key);\n }\n }\n }\n // some other properties are not\n // in NativeError\n createProperty(props, 'originalStack');\n createProperty(props, 'zoneAwareStack');\n // define toString, toSource as method property\n createMethodProperty(props, 'toString');\n createMethodProperty(props, 'toSource');\n return props;\n };\n var errorProperties = createErrorProperties();\n // for derived Error class which extends ZoneAwareError\n // we should not override the derived class's property\n // so we create a new props object only copy the properties\n // from errorProperties which not exist in derived Error's prototype\n var getErrorPropertiesForPrototype = function (prototype) {\n // if the prototype is ZoneAwareError.prototype\n // we just return the prebuilt errorProperties.\n if (prototype === ZoneAwareError.prototype) {\n return errorProperties;\n }\n var newProps = Object.create(null);\n var cKeys = Object.getOwnPropertyNames(errorProperties);\n var keys = Object.getOwnPropertyNames(prototype);\n cKeys.forEach(function (cKey) {\n if (keys.filter(function (key) {\n return key === cKey;\n })\n .length === 0) {\n newProps[cKey] = errorProperties[cKey];\n }\n });\n return newProps;\n };\n /**\n * This is ZoneAwareError which processes the stack frame and cleans up extra frames as well as\n * adds zone information to it.\n */\n function ZoneAwareError() {\n // make sure we have a valid this\n // if this is undefined(call Error without new) or this is global\n // or this is some other objects, we should force to create a\n // valid ZoneAwareError by call Object.create()\n if (!(this instanceof ZoneAwareError)) {\n return ZoneAwareError.apply(Object.create(ZoneAwareError.prototype), arguments);\n }\n // Create an Error.\n var error = NativeError.apply(this, arguments);\n this[__symbol__('error')] = error;\n // Save original stack trace\n error.originalStack = error.stack;\n // Process the stack trace and rewrite the frames.\n if (ZoneAwareError[stackRewrite] && error.originalStack) {\n var frames_1 = error.originalStack.split('\\n');\n var zoneFrame = _currentZoneFrame;\n var i = 0;\n // Find the first frame\n while (frames_1[i] !== zoneAwareFrame && i < frames_1.length) {\n i++;\n }\n for (; i < frames_1.length && zoneFrame; i++) {\n var frame = frames_1[i];\n if (frame.trim()) {\n var frameType = blackListedStackFrames.hasOwnProperty(frame) && blackListedStackFrames[frame];\n if (frameType === FrameType.blackList) {\n frames_1.splice(i, 1);\n i--;\n }\n else if (frameType === FrameType.transition) {\n if (zoneFrame.parent) {\n // This is the special frame where zone changed. Print and process it accordingly\n frames_1[i] += \" [\" + zoneFrame.parent.zone.name + \" => \" + zoneFrame.zone.name + \"]\";\n zoneFrame = zoneFrame.parent;\n }\n else {\n zoneFrame = null;\n }\n }\n else {\n frames_1[i] += \" [\" + zoneFrame.zone.name + \"]\";\n }\n }\n }\n error.stack = error.zoneAwareStack = frames_1.join('\\n');\n }\n // use defineProperties here instead of copy property value\n // because of issue #595 which will break angular2.\n Object.defineProperties(this, getErrorPropertiesForPrototype(Object.getPrototypeOf(this)));\n return this;\n }\n // Copy the prototype so that instanceof operator works as expected\n ZoneAwareError.prototype = NativeError.prototype;\n ZoneAwareError[Zone.__symbol__('blacklistedStackFrames')] = blackListedStackFrames;\n ZoneAwareError[stackRewrite] = false;\n // those properties need special handling\n var specialPropertyNames = ['stackTraceLimit', 'captureStackTrace', 'prepareStackTrace'];\n // those properties of NativeError should be set to ZoneAwareError\n var nativeErrorProperties = Object.keys(NativeError);\n if (nativeErrorProperties) {\n nativeErrorProperties.forEach(function (prop) {\n if (specialPropertyNames.filter(function (sp) { return sp === prop; }).length === 0) {\n Object.defineProperty(ZoneAwareError, prop, {\n get: function () {\n return NativeError[prop];\n },\n set: function (value) {\n NativeError[prop] = value;\n }\n });\n }\n });\n }\n if (NativeError.hasOwnProperty('stackTraceLimit')) {\n // Extend default stack limit as we will be removing few frames.\n NativeError.stackTraceLimit = Math.max(NativeError.stackTraceLimit, 15);\n // make sure that ZoneAwareError has the same property which forwards to NativeError.\n Object.defineProperty(ZoneAwareError, 'stackTraceLimit', {\n get: function () {\n return NativeError.stackTraceLimit;\n },\n set: function (value) {\n return NativeError.stackTraceLimit = value;\n }\n });\n }\n if (NativeError.hasOwnProperty('captureStackTrace')) {\n Object.defineProperty(ZoneAwareError, 'captureStackTrace', {\n // add named function here because we need to remove this\n // stack frame when prepareStackTrace below\n value: function zoneCaptureStackTrace(targetObject, constructorOpt) {\n NativeError.captureStackTrace(targetObject, constructorOpt);\n }\n });\n }\n Object.defineProperty(ZoneAwareError, 'prepareStackTrace', {\n get: function () {\n return NativeError.prepareStackTrace;\n },\n set: function (value) {\n if (!value || typeof value !== 'function') {\n return NativeError.prepareStackTrace = value;\n }\n return NativeError.prepareStackTrace = function (error, structuredStackTrace) {\n // remove additional stack information from ZoneAwareError.captureStackTrace\n if (structuredStackTrace) {\n for (var i = 0; i < structuredStackTrace.length; i++) {\n var st = structuredStackTrace[i];\n // remove the first function which name is zoneCaptureStackTrace\n if (st.getFunctionName() === 'zoneCaptureStackTrace') {\n structuredStackTrace.splice(i, 1);\n break;\n }\n }\n }\n return value.apply(this, [error, structuredStackTrace]);\n };\n }\n });\n // Now we need to populet the `blacklistedStackFrames` as well as find the\n // run/runGuraded/runTask frames. This is done by creating a detect zone and then threading\n // the execution through all of the above methods so that we can look at the stack trace and\n // find the frames of interest.\n var detectZone = Zone.current.fork({\n name: 'detect',\n onInvoke: function (parentZoneDelegate, currentZone, targetZone, delegate, applyThis, applyArgs, source) {\n // Here only so that it will show up in the stack frame so that it can be black listed.\n return parentZoneDelegate.invoke(targetZone, delegate, applyThis, applyArgs, source);\n },\n onHandleError: function (parentZD, current, target, error) {\n if (error.originalStack && Error === ZoneAwareError) {\n var frames_2 = error.originalStack.split(/\\n/);\n var runFrame = false, runGuardedFrame = false, runTaskFrame = false;\n while (frames_2.length) {\n var frame = frames_2.shift();\n // On safari it is possible to have stack frame with no line number.\n // This check makes sure that we don't filter frames on name only (must have\n // linenumber)\n if (/:\\d+:\\d+/.test(frame)) {\n // Get rid of the path so that we don't accidintely find function name in path.\n // In chrome the seperator is `(` and `@` in FF and safari\n // Chrome: at Zone.run (zone.js:100)\n // Chrome: at Zone.run (http://localhost:9876/base/build/lib/zone.js:100:24)\n // FireFox: Zone.prototype.run@http://localhost:9876/base/build/lib/zone.js:101:24\n // Safari: run@http://localhost:9876/base/build/lib/zone.js:101:24\n var fnName = frame.split('(')[0].split('@')[0];\n var frameType = FrameType.transition;\n if (fnName.indexOf('ZoneAwareError') !== -1) {\n zoneAwareFrame = frame;\n }\n if (fnName.indexOf('runGuarded') !== -1) {\n runGuardedFrame = true;\n }\n else if (fnName.indexOf('runTask') !== -1) {\n runTaskFrame = true;\n }\n else if (fnName.indexOf('run') !== -1) {\n runFrame = true;\n }\n else {\n frameType = FrameType.blackList;\n }\n blackListedStackFrames[frame] = frameType;\n // Once we find all of the frames we can stop looking.\n if (runFrame && runGuardedFrame && runTaskFrame) {\n ZoneAwareError[stackRewrite] = true;\n break;\n }\n }\n }\n }\n return false;\n }\n });\n // carefully constructor a stack frame which contains all of the frames of interest which\n // need to be detected and blacklisted.\n var detectRunFn = function () {\n detectZone.run(function () {\n detectZone.runGuarded(function () {\n throw new Error('blacklistStackFrames');\n });\n });\n };\n // Cause the error to extract the stack frames.\n detectZone.runTask(detectZone.scheduleMacroTask('detect', detectRunFn, null, function () { return null; }, null));\n return global['Zone'] = Zone;\n})(typeof window === 'object' && window || typeof self === 'object' && self || global);\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis}\n */\nvar zoneSymbol = function (n) { return (\"__zone_symbol__\" + n); };\nvar _global$1 = typeof window === 'object' && window || typeof self === 'object' && self || global;\nfunction bindArguments(args, source) {\n for (var i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = Zone.current.wrap(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n var source = prototype.constructor['name'];\n var _loop_1 = function(i) {\n var name_1 = fnNames[i];\n var delegate = prototype[name_1];\n if (delegate) {\n prototype[name_1] = (function (delegate) {\n return function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name_1));\n };\n })(delegate);\n }\n };\n for (var i = 0; i < fnNames.length; i++) {\n _loop_1(i);\n }\n}\nvar isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\nvar isNode = (!('nw' in _global$1) && typeof process !== 'undefined' &&\n {}.toString.call(process) === '[object process]');\nvar isBrowser = !isNode && !isWebWorker && !!(typeof window !== 'undefined' && window['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\nvar isMix = typeof process !== 'undefined' &&\n {}.toString.call(process) === '[object process]' && !isWebWorker &&\n !!(typeof window !== 'undefined' && window['HTMLElement']);\nfunction patchProperty(obj, prop) {\n var desc = Object.getOwnPropertyDescriptor(obj, prop) || { enumerable: true, configurable: true };\n var originalDesc = Object.getOwnPropertyDescriptor(obj, 'original' + prop);\n if (!originalDesc && desc.get) {\n Object.defineProperty(obj, 'original' + prop, { enumerable: false, configurable: true, get: desc.get });\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n // substr(2) cuz 'onclick' -> 'click', etc\n var eventName = prop.substr(2);\n var _prop = zoneSymbol('_' + prop);\n desc.set = function (fn) {\n if (this[_prop]) {\n this.removeEventListener(eventName, this[_prop]);\n }\n if (typeof fn === 'function') {\n var wrapFn = function (event) {\n var result;\n result = fn.apply(this, arguments);\n if (result != undefined && !result)\n event.preventDefault();\n };\n this[_prop] = wrapFn;\n this.addEventListener(eventName, wrapFn, false);\n }\n else {\n this[_prop] = null;\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n var r = this[_prop] || null;\n // result will be null when use inline event attribute,\n // such as OK \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n if (r === null) {\n if (originalDesc && originalDesc.get) {\n r = originalDesc.get.apply(this, arguments);\n if (r) {\n desc.set.apply(this, [r]);\n if (typeof this['removeAttribute'] === 'function') {\n this.removeAttribute(prop);\n }\n }\n }\n }\n return this[_prop] || null;\n };\n Object.defineProperty(obj, prop, desc);\n}\n\nfunction patchOnProperties(obj, properties) {\n var onProperties = [];\n for (var prop in obj) {\n if (prop.substr(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (var j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j]);\n }\n if (properties) {\n for (var i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i]);\n }\n }\n}\n\nvar EVENT_TASKS = zoneSymbol('eventTasks');\n// For EventTarget\nvar ADD_EVENT_LISTENER = 'addEventListener';\nvar REMOVE_EVENT_LISTENER = 'removeEventListener';\nfunction findExistingRegisteredTask(target, handler, name, capture, remove) {\n var eventTasks = target[EVENT_TASKS];\n if (eventTasks) {\n for (var i = 0; i < eventTasks.length; i++) {\n var eventTask = eventTasks[i];\n var data = eventTask.data;\n var listener = data.handler;\n if ((data.handler === handler || listener.listener === handler) &&\n data.useCapturing === capture && data.eventName === name) {\n if (remove) {\n eventTasks.splice(i, 1);\n }\n return eventTask;\n }\n }\n }\n return null;\n}\nfunction attachRegisteredEvent(target, eventTask, isPrepend) {\n var eventTasks = target[EVENT_TASKS];\n if (!eventTasks) {\n eventTasks = target[EVENT_TASKS] = [];\n }\n if (isPrepend) {\n eventTasks.unshift(eventTask);\n }\n else {\n eventTasks.push(eventTask);\n }\n}\nvar defaultListenerMetaCreator = function (self, args) {\n return {\n useCapturing: args[2],\n eventName: args[0],\n handler: args[1],\n target: self || _global$1,\n name: args[0],\n invokeAddFunc: function (addFnSymbol, delegate) {\n if (delegate && delegate.invoke) {\n return this.target[addFnSymbol](this.eventName, delegate.invoke, this.useCapturing);\n }\n else {\n return this.target[addFnSymbol](this.eventName, delegate, this.useCapturing);\n }\n },\n invokeRemoveFunc: function (removeFnSymbol, delegate) {\n if (delegate && delegate.invoke) {\n return this.target[removeFnSymbol](this.eventName, delegate.invoke, this.useCapturing);\n }\n else {\n return this.target[removeFnSymbol](this.eventName, delegate, this.useCapturing);\n }\n }\n };\n};\nfunction makeZoneAwareAddListener(addFnName, removeFnName, useCapturingParam, allowDuplicates, isPrepend, metaCreator) {\n if (useCapturingParam === void 0) { useCapturingParam = true; }\n if (allowDuplicates === void 0) { allowDuplicates = false; }\n if (isPrepend === void 0) { isPrepend = false; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n var addFnSymbol = zoneSymbol(addFnName);\n var removeFnSymbol = zoneSymbol(removeFnName);\n var defaultUseCapturing = useCapturingParam ? false : undefined;\n function scheduleEventListener(eventTask) {\n var meta = eventTask.data;\n attachRegisteredEvent(meta.target, eventTask, isPrepend);\n return meta.invokeAddFunc(addFnSymbol, eventTask);\n }\n function cancelEventListener(eventTask) {\n var meta = eventTask.data;\n findExistingRegisteredTask(meta.target, eventTask.invoke, meta.eventName, meta.useCapturing, true);\n return meta.invokeRemoveFunc(removeFnSymbol, eventTask);\n }\n return function zoneAwareAddListener(self, args) {\n var data = metaCreator(self, args);\n data.useCapturing = data.useCapturing || defaultUseCapturing;\n // - Inside a Web Worker, `this` is undefined, the context is `global`\n // - When `addEventListener` is called on the global context in strict mode, `this` is undefined\n // see https://github.com/angular/zone.js/issues/190\n var delegate = null;\n if (typeof data.handler == 'function') {\n delegate = data.handler;\n }\n else if (data.handler && data.handler.handleEvent) {\n delegate = function (event) { return data.handler.handleEvent(event); };\n }\n var validZoneHandler = false;\n try {\n // In cross site contexts (such as WebDriver frameworks like Selenium),\n // accessing the handler object here will cause an exception to be thrown which\n // will fail tests prematurely.\n validZoneHandler = data.handler && data.handler.toString() === '[object FunctionWrapper]';\n }\n catch (error) {\n // Returning nothing here is fine, because objects in a cross-site context are unusable\n return;\n }\n // Ignore special listeners of IE11 & Edge dev tools, see\n // https://github.com/angular/zone.js/issues/150\n if (!delegate || validZoneHandler) {\n return data.invokeAddFunc(addFnSymbol, data.handler);\n }\n if (!allowDuplicates) {\n var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.useCapturing, false);\n if (eventTask) {\n // we already registered, so this will have noop.\n return data.invokeAddFunc(addFnSymbol, eventTask);\n }\n }\n var zone = Zone.current;\n var source = data.target.constructor['name'] + '.' + addFnName + ':' + data.eventName;\n zone.scheduleEventTask(source, delegate, data, scheduleEventListener, cancelEventListener);\n };\n}\nfunction makeZoneAwareRemoveListener(fnName, useCapturingParam, metaCreator) {\n if (useCapturingParam === void 0) { useCapturingParam = true; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n var symbol = zoneSymbol(fnName);\n var defaultUseCapturing = useCapturingParam ? false : undefined;\n return function zoneAwareRemoveListener(self, args) {\n var data = metaCreator(self, args);\n data.useCapturing = data.useCapturing || defaultUseCapturing;\n // - Inside a Web Worker, `this` is undefined, the context is `global`\n // - When `addEventListener` is called on the global context in strict mode, `this` is undefined\n // see https://github.com/angular/zone.js/issues/190\n var eventTask = findExistingRegisteredTask(data.target, data.handler, data.eventName, data.useCapturing, true);\n if (eventTask) {\n eventTask.zone.cancelTask(eventTask);\n }\n else {\n data.invokeRemoveFunc(symbol, data.handler);\n }\n };\n}\n\n\nvar zoneAwareAddEventListener = makeZoneAwareAddListener(ADD_EVENT_LISTENER, REMOVE_EVENT_LISTENER);\nvar zoneAwareRemoveEventListener = makeZoneAwareRemoveListener(REMOVE_EVENT_LISTENER);\nfunction patchEventTargetMethods(obj, addFnName, removeFnName, metaCreator) {\n if (addFnName === void 0) { addFnName = ADD_EVENT_LISTENER; }\n if (removeFnName === void 0) { removeFnName = REMOVE_EVENT_LISTENER; }\n if (metaCreator === void 0) { metaCreator = defaultListenerMetaCreator; }\n if (obj && obj[addFnName]) {\n patchMethod(obj, addFnName, function () { return makeZoneAwareAddListener(addFnName, removeFnName, true, false, false, metaCreator); });\n patchMethod(obj, removeFnName, function () { return makeZoneAwareRemoveListener(removeFnName, true, metaCreator); });\n return true;\n }\n else {\n return false;\n }\n}\nvar originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n var OriginalClass = _global$1[className];\n if (!OriginalClass)\n return;\n _global$1[className] = function () {\n var a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n var instance = new OriginalClass(function () { });\n var prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global$1[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n Object.defineProperty(_global$1[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = Zone.current.wrap(fn, className + '.' + prop);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global$1[className][prop] = OriginalClass[prop];\n }\n }\n}\n\nfunction createNamedFn(name, delegate) {\n try {\n return (Function('f', \"return function \" + name + \"(){return f(this, arguments)}\"))(delegate);\n }\n catch (error) {\n // if we fail, we must be CSP, just return delegate.\n return function () {\n return delegate(this, arguments);\n };\n }\n}\nfunction patchMethod(target, name, patchFn) {\n var proto = target;\n while (proto && Object.getOwnPropertyNames(proto).indexOf(name) === -1) {\n proto = Object.getPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n var delegateName = zoneSymbol(name);\n var delegate;\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n proto[name] = createNamedFn(name, patchFn(delegate, delegateName, name));\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\n\n\nfunction findEventTask(target, evtName) {\n var eventTasks = target[zoneSymbol('eventTasks')];\n var result = [];\n if (eventTasks) {\n for (var i = 0; i < eventTasks.length; i++) {\n var eventTask = eventTasks[i];\n var data = eventTask.data;\n var eventName = data && data.eventName;\n if (eventName === evtName) {\n result.push(eventTask);\n }\n }\n }\n return result;\n}\nZone[zoneSymbol('patchEventTargetMethods')] = patchEventTargetMethods;\nZone[zoneSymbol('patchOnProperties')] = patchOnProperties;\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n var setNative = null;\n var clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n var tasksByHandleId = {};\n function scheduleTask(task) {\n var data = task.data;\n data.args[0] = function () {\n try {\n task.invoke.apply(this, arguments);\n }\n finally {\n delete tasksByHandleId[data.handleId];\n }\n };\n data.handleId = setNative.apply(window, data.args);\n tasksByHandleId[data.handleId] = task;\n return task;\n }\n function clearTask(task) {\n delete tasksByHandleId[task.data.handleId];\n return clearNative(task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, function (delegate) { return function (self, args) {\n if (typeof args[0] === 'function') {\n var zone = Zone.current;\n var options = {\n handleId: null,\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : null,\n args: args\n };\n var task = zone.scheduleMacroTask(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n var handle = task.data.handleId;\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n }; });\n clearNative =\n patchMethod(window, cancelName, function (delegate) { return function (self, args) {\n var task = typeof args[0] === 'number' ? tasksByHandleId[args[0]] : args[0];\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n }; });\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * This is necessary for Chrome and Chrome mobile, to enable\n * things like redefining `createdCallback` on an element.\n */\nvar _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty;\nvar _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] =\n Object.getOwnPropertyDescriptor;\nvar _create = Object.create;\nvar unconfigurablesKey = zoneSymbol('unconfigurables');\nfunction propertyPatch() {\n Object.defineProperty = function (obj, prop, desc) {\n if (isUnconfigurable(obj, prop)) {\n throw new TypeError('Cannot assign to read only property \\'' + prop + '\\' of ' + obj);\n }\n var originalConfigurableFlag = desc.configurable;\n if (prop !== 'prototype') {\n desc = rewriteDescriptor(obj, prop, desc);\n }\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n };\n Object.defineProperties = function (obj, props) {\n Object.keys(props).forEach(function (prop) {\n Object.defineProperty(obj, prop, props[prop]);\n });\n return obj;\n };\n Object.create = function (obj, proto) {\n if (typeof proto === 'object' && !Object.isFrozen(proto)) {\n Object.keys(proto).forEach(function (prop) {\n proto[prop] = rewriteDescriptor(obj, prop, proto[prop]);\n });\n }\n return _create(obj, proto);\n };\n Object.getOwnPropertyDescriptor = function (obj, prop) {\n var desc = _getOwnPropertyDescriptor(obj, prop);\n if (isUnconfigurable(obj, prop)) {\n desc.configurable = false;\n }\n return desc;\n };\n}\n\nfunction _redefineProperty(obj, prop, desc) {\n var originalConfigurableFlag = desc.configurable;\n desc = rewriteDescriptor(obj, prop, desc);\n return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag);\n}\n\nfunction isUnconfigurable(obj, prop) {\n return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop];\n}\nfunction rewriteDescriptor(obj, prop, desc) {\n desc.configurable = true;\n if (!desc.configurable) {\n if (!obj[unconfigurablesKey]) {\n _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} });\n }\n obj[unconfigurablesKey][prop] = true;\n }\n return desc;\n}\nfunction _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n if (desc.configurable) {\n // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's\n // retry with the original flag value\n if (typeof originalConfigurableFlag == 'undefined') {\n delete desc.configurable;\n }\n else {\n desc.configurable = originalConfigurableFlag;\n }\n try {\n return _defineProperty(obj, prop, desc);\n }\n catch (error) {\n var descJson = null;\n try {\n descJson = JSON.stringify(desc);\n }\n catch (error) {\n descJson = descJson.toString();\n }\n console.log(\"Attempting to configure '\" + prop + \"' with descriptor '\" + descJson + \"' on object '\" + obj + \"' and got error, giving up: \" + error);\n }\n }\n else {\n throw error;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video';\nvar NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket'\n .split(',');\nvar EVENT_TARGET = 'EventTarget';\nfunction eventTargetPatch(_global) {\n var apis = [];\n var isWtf = _global['wtf'];\n if (isWtf) {\n // Workaround for: https://github.com/google/tracing-framework/issues/555\n apis = WTF_ISSUE_555.split(',').map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET);\n }\n else if (_global[EVENT_TARGET]) {\n apis.push(EVENT_TARGET);\n }\n else {\n // Note: EventTarget is not available in all browsers,\n // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget\n apis = NO_EVENT_TARGET;\n }\n for (var i = 0; i < apis.length; i++) {\n var type = _global[apis[i]];\n patchEventTargetMethods(type && type.prototype);\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// we have to patch the instance since the proto is non-configurable\nfunction apply(_global) {\n var WS = _global.WebSocket;\n // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener\n // On older Chrome, no need since EventTarget was already patched\n if (!_global.EventTarget) {\n patchEventTargetMethods(WS.prototype);\n }\n _global.WebSocket = function (a, b) {\n var socket = arguments.length > 1 ? new WS(a, b) : new WS(a);\n var proxySocket;\n // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance\n var onmessageDesc = Object.getOwnPropertyDescriptor(socket, 'onmessage');\n if (onmessageDesc && onmessageDesc.configurable === false) {\n proxySocket = Object.create(socket);\n ['addEventListener', 'removeEventListener', 'send', 'close'].forEach(function (propName) {\n proxySocket[propName] = function () {\n return socket[propName].apply(socket, arguments);\n };\n });\n }\n else {\n // we can patch the real socket\n proxySocket = socket;\n }\n patchOnProperties(proxySocket, ['close', 'error', 'message', 'open']);\n return proxySocket;\n };\n for (var prop in WS) {\n _global.WebSocket[prop] = WS[prop];\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar eventNames = 'copy cut paste abort blur focus canplay canplaythrough change click contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop durationchange emptied ended input invalid keydown keypress keyup load loadeddata loadedmetadata loadstart message mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup pause play playing progress ratechange reset scroll seeked seeking select show stalled submit suspend timeupdate volumechange waiting mozfullscreenchange mozfullscreenerror mozpointerlockchange mozpointerlockerror error webglcontextrestored webglcontextlost webglcontextcreationerror'\n .split(' ');\nfunction propertyDescriptorPatch(_global) {\n if (isNode && !isMix) {\n return;\n }\n var supportsWebSocket = typeof WebSocket !== 'undefined';\n if (canPatchViaPropertyDescriptor()) {\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n patchOnProperties(HTMLElement.prototype, eventNames);\n }\n patchOnProperties(XMLHttpRequest.prototype, null);\n if (typeof IDBIndex !== 'undefined') {\n patchOnProperties(IDBIndex.prototype, null);\n patchOnProperties(IDBRequest.prototype, null);\n patchOnProperties(IDBOpenDBRequest.prototype, null);\n patchOnProperties(IDBDatabase.prototype, null);\n patchOnProperties(IDBTransaction.prototype, null);\n patchOnProperties(IDBCursor.prototype, null);\n }\n if (supportsWebSocket) {\n patchOnProperties(WebSocket.prototype, null);\n }\n }\n else {\n // Safari, Android browsers (Jelly Bean)\n patchViaCapturingAllTheEvents();\n patchClass('XMLHttpRequest');\n if (supportsWebSocket) {\n apply(_global);\n }\n }\n}\nfunction canPatchViaPropertyDescriptor() {\n if ((isBrowser || isMix) && !Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') &&\n typeof Element !== 'undefined') {\n // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364\n // IDL interface attributes are not configurable\n var desc = Object.getOwnPropertyDescriptor(Element.prototype, 'onclick');\n if (desc && !desc.configurable)\n return false;\n }\n var xhrDesc = Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype, 'onreadystatechange');\n // add enumerable and configurable here because in opera\n // by default XMLHttpRequest.prototype.onreadystatechange is undefined\n // without adding enumerable and configurable will cause onreadystatechange\n // non-configurable\n Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', {\n enumerable: true,\n configurable: true,\n get: function () {\n return true;\n }\n });\n var req = new XMLHttpRequest();\n var result = !!req.onreadystatechange;\n // restore original desc\n Object.defineProperty(XMLHttpRequest.prototype, 'onreadystatechange', xhrDesc || {});\n return result;\n}\n\nvar unboundKey = zoneSymbol('unbound');\n// Whenever any eventListener fires, we check the eventListener target and all parents\n// for `onwhatever` properties and replace them with zone-bound functions\n// - Chrome (for now)\nfunction patchViaCapturingAllTheEvents() {\n var _loop_1 = function(i) {\n var property = eventNames[i];\n var onproperty = 'on' + property;\n self.addEventListener(property, function (event) {\n var elt = event.target, bound, source;\n if (elt) {\n source = elt.constructor['name'] + '.' + onproperty;\n }\n else {\n source = 'unknown.' + onproperty;\n }\n while (elt) {\n if (elt[onproperty] && !elt[onproperty][unboundKey]) {\n bound = Zone.current.wrap(elt[onproperty], source);\n bound[unboundKey] = elt[onproperty];\n elt[onproperty] = bound;\n }\n elt = elt.parentElement;\n }\n }, true);\n };\n for (var i = 0; i < eventNames.length; i++) {\n _loop_1(i);\n }\n \n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction registerElementPatch(_global) {\n if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) {\n return;\n }\n var _registerElement = document.registerElement;\n var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback'];\n document.registerElement = function (name, opts) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n var source = 'Document.registerElement::' + callback;\n if (opts.prototype.hasOwnProperty(callback)) {\n var descriptor = Object.getOwnPropertyDescriptor(opts.prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = Zone.current.wrap(descriptor.value, source);\n _redefineProperty(opts.prototype, callback, descriptor);\n }\n else {\n opts.prototype[callback] = Zone.current.wrap(opts.prototype[callback], source);\n }\n }\n else if (opts.prototype[callback]) {\n opts.prototype[callback] = Zone.current.wrap(opts.prototype[callback], source);\n }\n });\n }\n return _registerElement.apply(document, [name, opts]);\n };\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar set = 'set';\nvar clear = 'clear';\nvar blockingMethods = ['alert', 'prompt', 'confirm'];\nvar _global = typeof window === 'object' && window || typeof self === 'object' && self || global;\npatchTimer(_global, set, clear, 'Timeout');\npatchTimer(_global, set, clear, 'Interval');\npatchTimer(_global, set, clear, 'Immediate');\npatchTimer(_global, 'request', 'cancel', 'AnimationFrame');\npatchTimer(_global, 'mozRequest', 'mozCancel', 'AnimationFrame');\npatchTimer(_global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\nfor (var i = 0; i < blockingMethods.length; i++) {\n var name_1 = blockingMethods[i];\n patchMethod(_global, name_1, function (delegate, symbol, name) {\n return function (s, args) {\n return Zone.current.run(delegate, _global, args, name);\n };\n });\n}\neventTargetPatch(_global);\npropertyDescriptorPatch(_global);\npatchClass('MutationObserver');\npatchClass('WebKitMutationObserver');\npatchClass('FileReader');\npropertyPatch();\nregisterElementPatch(_global);\n// Treat XMLHTTPRequest as a macrotask.\npatchXHR(_global);\nvar XHR_TASK = zoneSymbol('xhrTask');\nvar XHR_SYNC = zoneSymbol('xhrSync');\nvar XHR_LISTENER = zoneSymbol('xhrListener');\nvar XHR_SCHEDULED = zoneSymbol('xhrScheduled');\nfunction patchXHR(window) {\n function findPendingTask(target) {\n var pendingTask = target[XHR_TASK];\n return pendingTask;\n }\n function scheduleTask(task) {\n self[XHR_SCHEDULED] = false;\n var data = task.data;\n // remove existing event listener\n var listener = data.target[XHR_LISTENER];\n if (listener) {\n data.target.removeEventListener('readystatechange', listener);\n }\n var newListener = data.target[XHR_LISTENER] = function () {\n if (data.target.readyState === data.target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && self[XHR_SCHEDULED] && task.state === 'scheduled') {\n task.invoke();\n }\n }\n };\n data.target.addEventListener('readystatechange', newListener);\n var storedTask = data.target[XHR_TASK];\n if (!storedTask) {\n data.target[XHR_TASK] = task;\n }\n sendNative.apply(data.target, data.args);\n self[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n var data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n var openNative = patchMethod(window.XMLHttpRequest.prototype, 'open', function () { return function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n return openNative.apply(self, args);\n }; });\n var sendNative = patchMethod(window.XMLHttpRequest.prototype, 'send', function () { return function (self, args) {\n var zone = Zone.current;\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n var options = { target: self, isPeriodic: false, delay: null, args: args, aborted: false };\n return zone.scheduleMacroTask('XMLHttpRequest.send', placeholderCallback, options, scheduleTask, clearTask);\n }\n }; });\n var abortNative = patchMethod(window.XMLHttpRequest.prototype, 'abort', function (delegate) { return function (self, args) {\n var task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no task\n // to cancel. Do nothing.\n }; });\n}\n/// GEO_LOCATION\nif (_global['navigator'] && _global['navigator'].geolocation) {\n patchPrototype(_global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n}\n// handle unhandled promise rejection\nfunction findPromiseRejectionHandler(evtName) {\n return function (e) {\n var eventTasks = findEventTask(_global, evtName);\n eventTasks.forEach(function (eventTask) {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n var PromiseRejectionEvent = _global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n}\nif (_global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] = findPromiseRejectionHandler('rejectionhandled');\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/zone.js/dist/zone.js\n// module id = 1076\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_a-function.js\n// module id = 122\n// module chunks = 0","var core = module.exports = { version: '2.5.1' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_core.js\n// module id = 123\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ctx.js\n// module id = 124\n// module chunks = 0","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopd.js\n// module id = 125\n// module chunks = 0","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine.js\n// module id = 126\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_validate-collection.js\n// module id = 127\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_export.js\n// module id = 18\n// module chunks = 0","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_for-of.js\n// module id = 182\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_hide.js\n// module id = 183\n// module chunks = 0","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_meta.js\n// module id = 184\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_property-desc.js\n// module id = 185\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_uid.js\n// module id = 186\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-object.js\n// module id = 23\n// module chunks = 0","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-instance.js\n// module id = 279\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_cof.js\n// module id = 280\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection.js\n// module id = 281\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_enum-bug-keys.js\n// module id = 282\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iobject.js\n// module id = 283\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iterators.js\n// module id = 284\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-create.js\n// module id = 285\n// module chunks = 0","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_redefine-all.js\n// module id = 286\n// module chunks = 0","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-to-string-tag.js\n// module id = 287\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared-key.js\n// module id = 288\n// module chunks = 0","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_shared.js\n// module id = 289\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-iobject.js\n// module id = 290\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-length.js\n// module id = 291\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-object.js\n// module id = 292\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-primitive.js\n// module id = 293\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_global.js\n// module id = 31\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 33\n// module chunks = 0 3","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_has.js\n// module id = 43\n// module chunks = 0","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-methods.js\n// module id = 468\n// module chunks = 0","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-strong.js\n// module id = 469\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_defined.js\n// module id = 470\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_dom-create.js\n// module id = 471\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_ie8-dom-define.js\n// module id = 472\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-create.js\n// module id = 473\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gops.js\n// module id = 474\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys-internal.js\n// module id = 475\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-keys.js\n// module id = 476\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-pie.js\n// module id = 477\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-proto.js\n// module id = 478\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-integer.js\n// module id = 479\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_fails.js\n// module id = 48\n// module chunks = 0","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_metadata.js\n// module id = 49\n// module chunks = 0","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_wks.js\n// module id = 50\n// module chunks = 0","/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\n * file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\n// import 'core-js/es6/symbol';\n// import 'core-js/es6/object';\n// import 'core-js/es6/function';\n// import 'core-js/es6/parse-int';\n// import 'core-js/es6/parse-float';\n// import 'core-js/es6/number';\n// import 'core-js/es6/math';\n// import 'core-js/es6/string';\n// import 'core-js/es6/date';\n// import 'core-js/es6/array';\n// import 'core-js/es6/regexp';\n// import 'core-js/es6/map';\n// import 'core-js/es6/set';\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\n\n/** IE10 and IE11 requires the following to support `@angular/animation`. */\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\n\n\n/** Evergreen browsers require these. **/\nimport 'core-js/es6/reflect';\nimport 'core-js/es7/reflect';\n\n\n/** ALL Firefox browsers require the following to support `@angular/animation`. **/\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\n\n\n\n/***************************************************************************************************\n * Zone JS is required by Angular itself.\n */\nimport 'zone.js/dist/zone'; // Included with Angular CLI.\n\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n\n/**\n * Date, currency, decimal and percent pipes.\n * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10\n */\n// import 'intl'; // Run `npm install --save intl`.\n\n\n\n// WEBPACK FOOTER //\n// ./src/polyfills.ts","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dp.js\n// module id = 64\n// module chunks = 0","require('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core').Reflect;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es6/reflect.js\n// module id = 707\n// module chunks = 0","require('../modules/es7.reflect.define-metadata');\nrequire('../modules/es7.reflect.delete-metadata');\nrequire('../modules/es7.reflect.get-metadata');\nrequire('../modules/es7.reflect.get-metadata-keys');\nrequire('../modules/es7.reflect.get-own-metadata');\nrequire('../modules/es7.reflect.get-own-metadata-keys');\nrequire('../modules/es7.reflect.has-metadata');\nrequire('../modules/es7.reflect.has-own-metadata');\nrequire('../modules/es7.reflect.metadata');\nmodule.exports = require('../modules/_core').Reflect;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/es7/reflect.js\n// module id = 708\n// module chunks = 0","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-from-iterable.js\n// module id = 709\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-includes.js\n// module id = 710\n// module chunks = 0","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-species-constructor.js\n// module id = 711\n// module chunks = 0","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_array-species-create.js\n// module id = 712\n// module chunks = 0","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_bind.js\n// module id = 713\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_classof.js\n// module id = 714\n// module chunks = 0","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_collection-weak.js\n// module id = 715\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_html.js\n// module id = 716\n// module chunks = 0","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_inherit-if-required.js\n// module id = 717\n// module chunks = 0","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_invoke.js\n// module id = 718\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array-iter.js\n// module id = 719\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_is-array.js\n// module id = 720\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-call.js\n// module id = 721\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-define.js\n// module id = 722\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-detect.js\n// module id = 723\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_iter-step.js\n// module id = 724\n// module chunks = 0","module.exports = false;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_library.js\n// module id = 725\n// module chunks = 0","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-assign.js\n// module id = 726\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-dps.js\n// module id = 727\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gopn.js\n// module id = 728\n// module chunks = 0","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_own-keys.js\n// module id = 729\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_set-species.js\n// module id = 730\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_to-absolute-index.js\n// module id = 731\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/core.get-iterator-method.js\n// module id = 732\n// module chunks = 0","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.map.js\n// module id = 733\n// module chunks = 0","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.apply.js\n// module id = 734\n// module chunks = 0","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.construct.js\n// module id = 735\n// module chunks = 0","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.define-property.js\n// module id = 736\n// module chunks = 0","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.delete-property.js\n// module id = 737\n// module chunks = 0","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.enumerate.js\n// module id = 738\n// module chunks = 0","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.get-own-property-descriptor.js\n// module id = 739\n// module chunks = 0","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.get-prototype-of.js\n// module id = 740\n// module chunks = 0","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.get.js\n// module id = 741\n// module chunks = 0","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.has.js\n// module id = 742\n// module chunks = 0","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.is-extensible.js\n// module id = 743\n// module chunks = 0","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.own-keys.js\n// module id = 744\n// module chunks = 0","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.prevent-extensions.js\n// module id = 745\n// module chunks = 0","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.set-prototype-of.js\n// module id = 746\n// module chunks = 0","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.reflect.set.js\n// module id = 747\n// module chunks = 0","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.set.js\n// module id = 748\n// module chunks = 0","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es6.weak-map.js\n// module id = 749\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.define-metadata.js\n// module id = 750\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.delete-metadata.js\n// module id = 751\n// module chunks = 0","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-metadata-keys.js\n// module id = 752\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-metadata.js\n// module id = 753\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-own-metadata-keys.js\n// module id = 754\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.get-own-metadata.js\n// module id = 755\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.has-metadata.js\n// module id = 756\n// module chunks = 0","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.has-own-metadata.js\n// module id = 757\n// module chunks = 0","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es7.reflect.metadata.js\n// module id = 758\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 776\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_descriptors.js\n// module id = 79\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_object-gpo.js\n// module id = 80\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/_an-object.js\n// module id = 9\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/main/resources/static/styles.bundle.js b/src/main/resources/static/styles.bundle.js
index 171f095..90b612f 100644
--- a/src/main/resources/static/styles.bundle.js
+++ b/src/main/resources/static/styles.bundle.js
@@ -1,6 +1,6 @@
webpackJsonp([2,4],{
-/***/ 1123:
+/***/ 1061:
/***/ (function(module, exports) {
/*
@@ -253,15 +253,15 @@ function updateLink(linkElement, obj) {
/***/ }),
-/***/ 1140:
+/***/ 1079:
/***/ (function(module, exports, __webpack_require__) {
-module.exports = __webpack_require__(565);
+module.exports = __webpack_require__(532);
/***/ }),
-/***/ 49:
+/***/ 44:
/***/ (function(module, exports) {
/*
@@ -318,16 +318,16 @@ module.exports = function() {
/***/ }),
-/***/ 565:
+/***/ 532:
/***/ (function(module, exports, __webpack_require__) {
// style-loader: Adds some css to the DOM by adding a