{"version":3,"file":"chunk-o5mr0tu9.js","sources":["node_modules/parseuri/index.js","node_modules/socket.io-client/node_modules/ms/index.js","node_modules/socket.io-client/node_modules/debug/src/debug.js","node_modules/socket.io-client/node_modules/debug/src/browser.js","node_modules/socket.io-client/lib/url.js","node_modules/component-emitter/index.js","node_modules/socket.io-client/node_modules/isarray/index.js","node_modules/socket.io-client/node_modules/socket.io-parser/is-buffer.js","node_modules/socket.io-client/node_modules/socket.io-parser/binary.js","node_modules/socket.io-client/node_modules/socket.io-parser/index.js","node_modules/has-cors/index.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/globalThis.browser.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/xmlhttprequest.browser.js","node_modules/socket.io-client/node_modules/engine.io-parser/lib/keys.js","node_modules/has-binary2/node_modules/isarray/index.js","node_modules/has-binary2/index.js","node_modules/arraybuffer.slice/index.js","node_modules/after/index.js","node_modules/socket.io-client/node_modules/engine.io-parser/lib/utf8.js","node_modules/socket.io-client/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","node_modules/blob/index.js","node_modules/socket.io-client/node_modules/engine.io-parser/lib/browser.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js","node_modules/parseqs/index.js","node_modules/component-inherit/index.js","node_modules/yeast/index.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling-xhr.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/polling-jsonp.js","node_modules/socket.io-client/node_modules/ws/browser.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/websocket.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/index.js","node_modules/indexof/index.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js","node_modules/socket.io-client/node_modules/engine.io-client/lib/index.js","node_modules/to-array/index.js","node_modules/socket.io-client/lib/on.js","node_modules/component-bind/index.js","node_modules/socket.io-client/lib/socket.js","node_modules/backo2/index.js","node_modules/socket.io-client/lib/manager.js","node_modules/socket.io-client/lib/index.js","packages/sports/web/app/src/statistics/event-header.html","packages/sports/web/app/src/statistics/event-header.component.ts","packages/sports/web/app/src/statistics/models.ts","packages/sports/web/app/src/statistics/perform/perform-statistics-item.component.ts","packages/sports/web/app/src/statistics/perform/perform-statistics-item.html","packages/sports/web/app/src/statistics/statistics-navigation.html","packages/sports/web/app/src/statistics/statistics-navigation.component.ts","packages/sports/web/app/src/statistics/live/live-statistics-card/live-statistics-card.html","packages/sports/web/app/src/statistics/live/live-statistics-card/live-statistics-card.component.ts","packages/sports/web/app/src/statistics/live/live-basketball-statistics.html","packages/sports/web/app/src/statistics/live/live-basketball-statistics.component.ts","packages/sports/web/app/src/statistics/live/live-football-statistics.html","packages/sports/web/app/src/statistics/live/live-football-statistics.component.ts","packages/sports/web/app/src/statistics/live/live-tennis-statistics.html","packages/sports/web/app/src/statistics/live/live-tennis-statistics.component.ts","packages/sports/web/app/src/cds/running-ball-api.service.ts","packages/sports/web/app/src/statistics/perform/perform-socket.service.ts","packages/sports/web/app/src/statistics/perform/perform-statistics.service.ts","packages/sports/web/app/src/statistics/perform/perform-statistics.html","packages/sports/web/app/src/statistics/perform/perform-statistics.component.ts","packages/sports/web/app/src/statistics/statistics.service.ts","packages/sports/web/app/src/statistics/stats-center.html","packages/sports/web/app/src/statistics/stats-center.component.ts","packages/sports/web/app/src/statistics/pre-match/empty-stats.component.ts","packages/sports/web/app/src/statistics/pre-match/empty-stats.html","packages/sports/web/app/src/statistics/pre-match/head-to-head.component.ts","packages/sports/web/app/src/statistics/pre-match/head-to-head.html","packages/sports/web/app/src/statistics/pre-match/head-to-head-event-details.html","packages/sports/web/app/src/statistics/pre-match/head-to-head-event-details.component.ts","packages/sports/web/app/src/statistics/gauge/gauge.component.ts","packages/sports/web/app/src/statistics/gauge/gauge.html","packages/sports/web/app/src/statistics/pre-match/football/football-head-to-head.html","packages/sports/web/app/src/statistics/pre-match/football/football-head-to-head.component.ts","packages/sports/web/app/src/statistics/pre-match/league-table.component.ts","packages/sports/web/app/src/statistics/pre-match/league-table.html","packages/sports/web/app/src/statistics/pre-match/football/football-league-table.html","packages/sports/web/app/src/statistics/pre-match/football/football-league-table.component.ts","packages/sports/web/app/src/statistics/pre-match/last-matches.component.ts","packages/sports/web/app/src/statistics/pre-match/last-matches.html","packages/sports/web/app/src/statistics/pre-match/football/football-last-matches.html","packages/sports/web/app/src/statistics/pre-match/football/football-last-matches.component.ts","packages/sports/web/app/src/statistics/pre-match/tennis/tennis-head-to-head.html","packages/sports/web/app/src/statistics/pre-match/tennis/tennis-head-to-head.component.ts","packages/sports/web/app/src/statistics/pre-match/tennis/tennis-last-matches.html","packages/sports/web/app/src/statistics/pre-match/tennis/tennis-last-matches.component.ts","packages/sports/web/app/src/statistics/pre-match/basketball/basketball-last-matches.html","packages/sports/web/app/src/statistics/pre-match/basketball/basketball-last-matches.component.ts","packages/sports/web/app/src/statistics/pre-match/basketball/basketball-head-to-head.html","packages/sports/web/app/src/statistics/pre-match/basketball/basketball-head-to-head.component.ts","packages/sports/web/app/src/statistics/pre-match/basketball/basketball-league-table.html","packages/sports/web/app/src/statistics/pre-match/basketball/basketball-league-table.component.ts","packages/sports/web/app/src/statistics/pre-match/pre-match-statistics.html","packages/sports/web/app/src/statistics/pre-match/pre-match-statistics.component.ts","packages/sports/web/app/src/statistics/statistics-expander-indicators.component.ts","packages/sports/web/app/src/statistics/statistics-expander-indicators.html","packages/sports/web/app/src/statistics/statistics-expander.html","packages/sports/web/app/src/statistics/statistics-expander.component.ts","packages/sports/web/app/src/statistics/statistics-shared.module.ts"],"sourcesContent":["/**\n * Parses an URI\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\n\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nvar parts = ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'];\nmodule.exports = function parseuri(str) {\n var src = str,\n b = str.indexOf('['),\n e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n var m = re.exec(str || ''),\n uri = {},\n i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n};\nfunction pathNames(obj, path) {\n var regx = /\\/{2,9}/g,\n names = path.replace(regx, \"/\").split(\"/\");\n if (path.substr(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(path.length - 1, 1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n var data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') || plural(ms, h, 'hour') || plural(ms, m, 'minute') || plural(ms, s, 'second') || ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}","/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0,\n i;\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n var prevTime;\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n args[0] = exports.coerce(args[0]);\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n exports.instances.push(debug);\n return debug;\n}\nfunction destroy() {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n exports.names = [];\n exports.skips = [];\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 ||\n // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n if (!useColors) return;\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit');\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch (e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}","/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n * Defaults to window.location.\n * @api public\n */\n\nfunction url(uri, loc) {\n var obj = uri;\n\n // default to window.location\n loc = loc || typeof location !== 'undefined' && location;\n if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n // relative path support\n if ('string' === typeof uri) {\n if ('/' === uri.charAt(0)) {\n if ('/' === uri.charAt(1)) {\n uri = loc.protocol + uri;\n } else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n debug('protocol-less url %s', uri);\n if ('undefined' !== typeof loc) {\n uri = loc.protocol + '//' + uri;\n } else {\n uri = 'https://' + uri;\n }\n }\n\n // parse\n debug('parse %s', uri);\n obj = parseuri(uri);\n }\n\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = '80';\n } else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = '443';\n }\n }\n obj.path = obj.path || '/';\n var ipv6 = obj.host.indexOf(':') !== -1;\n var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n // define unique id\n obj.id = obj.protocol + '://' + host + ':' + obj.port;\n // define href\n obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : ':' + obj.port);\n return obj;\n}","/**\n * Expose `Emitter`.\n */\n\nif (typeof module !== 'undefined') {\n module.exports = Emitter;\n}\n\n/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nfunction Emitter(obj) {\n if (obj) return mixin(obj);\n}\n;\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function (event, fn) {\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function (event) {\n this._callbacks = this._callbacks || {};\n var args = new Array(arguments.length - 1),\n callbacks = this._callbacks['$' + event];\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n return this;\n};\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function (event) {\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function (event) {\n return !!this.listeners(event).length;\n};","var toString = {}.toString;\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","module.exports = isBuf;\nvar withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function';\nvar withNativeArrayBuffer = typeof ArrayBuffer === 'function';\nvar isView = function (obj) {\n return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : obj.buffer instanceof ArrayBuffer;\n};\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n return withNativeBuffer && Buffer.isBuffer(obj) || withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj));\n}","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' || typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof File === 'function' || typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]';\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function (packet) {\n var buffers = [];\n var packetData = packet.data;\n var pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return {\n packet: pack,\n buffers: buffers\n };\n};\nfunction _deconstructPacket(data, buffers) {\n if (!data) return data;\n if (isBuf(data)) {\n var placeholder = {\n _placeholder: true,\n num: buffers.length\n };\n buffers.push(data);\n return placeholder;\n } else if (isArray(data)) {\n var newData = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n } else if (typeof data === 'object' && !(data instanceof Date)) {\n var newData = {};\n for (var key in data) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n return newData;\n }\n return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function (packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n};\nfunction _reconstructPacket(data, buffers) {\n if (!data) return data;\n if (data && data._placeholder === true) {\n var isIndexValid = typeof data.num === \"number\" && data.num >= 0 && data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else {\n throw new Error(\"illegal attachments\");\n }\n } else if (isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n } else if (typeof data === 'object') {\n for (var key in data) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function (data, callback) {\n function _removeBlobs(obj, curKey, containingObject) {\n if (!obj) return obj;\n\n // convert any blob\n if (withNativeBlob && obj instanceof Blob || withNativeFile && obj instanceof File) {\n pendingBlobs++;\n\n // async filereader\n var fileReader = new FileReader();\n fileReader.onload = function () {\n // this.result == arraybuffer\n if (containingObject) {\n containingObject[curKey] = this.result;\n } else {\n bloblessData = this.result;\n }\n\n // if nothing pending its callback time\n if (! --pendingBlobs) {\n callback(bloblessData);\n }\n };\n fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n } else if (isArray(obj)) {\n // handle array\n for (var i = 0; i < obj.length; i++) {\n _removeBlobs(obj[i], i, obj);\n }\n } else if (typeof obj === 'object' && !isBuf(obj)) {\n // and object\n for (var key in obj) {\n _removeBlobs(obj[key], key, obj);\n }\n }\n }\n var pendingBlobs = 0;\n var bloblessData = data;\n _removeBlobs(bloblessData);\n if (!pendingBlobs) {\n callback(bloblessData);\n }\n};","/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar binary = require('./binary');\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = ['CONNECT', 'DISCONNECT', 'EVENT', 'ACK', 'ERROR', 'BINARY_EVENT', 'BINARY_ACK'];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\nvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function (obj, callback) {\n debug('encoding packet %j', obj);\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n encodeAsBinary(obj, callback);\n } else {\n var encoding = encodeAsString(obj);\n callback([encoding]);\n }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n // first is type\n var str = '' + obj.type;\n\n // attachments if we have them\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n str += obj.attachments + '-';\n }\n\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && '/' !== obj.nsp) {\n str += obj.nsp + ',';\n }\n\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n\n // json data\n if (null != obj.data) {\n var payload = tryStringify(obj.data);\n if (payload !== false) {\n str += payload;\n } else {\n return ERROR_PACKET;\n }\n }\n debug('encoded %j as %s', obj, str);\n return str;\n}\nfunction tryStringify(str) {\n try {\n return JSON.stringify(str);\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n function writeEncoding(bloblessData) {\n var deconstruction = binary.deconstructPacket(bloblessData);\n var pack = encodeAsString(deconstruction.packet);\n var buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n callback(buffers); // write all the buffers\n }\n binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function (obj) {\n var packet;\n if (typeof obj === 'string') {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = decodeString(obj);\n if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n\n // no attachments, labeled binary but no binary data to follow\n if (this.reconstructor.reconPack.attachments === 0) {\n this.emit('decoded', packet);\n }\n } else {\n // non-binary full packet\n this.emit('decoded', packet);\n }\n } else if (isBuf(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error('got binary data when not reconstructing a packet');\n } else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n this.emit('decoded', packet);\n }\n }\n } else {\n throw new Error('Unknown type: ' + obj);\n }\n};\nfunction isPayloadValid(type, payload) {\n switch (type) {\n case 0:\n // CONNECT\n return typeof payload === \"object\";\n case 1:\n // DISCONNECT\n return payload === undefined;\n case 4:\n // ERROR\n return typeof payload === \"string\" || typeof payload === \"object\";\n case 2: // EVENT\n case 5:\n // BINARY_EVENT\n return isArray(payload) && (typeof payload[0] === \"string\" || typeof payload[0] === \"number\");\n case 3: // ACK\n case 6:\n // BINARY_ACK\n return isArray(payload);\n }\n}\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n var i = 0;\n // look up type\n var p = {\n type: Number(str.charAt(0))\n };\n if (null == exports.types[p.type]) {\n return error('unknown packet type ' + p.type);\n }\n\n // look up attachments if type binary\n if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n var start = i + 1;\n while (str.charAt(++i) !== '-' && i != str.length) {}\n var buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== '-') {\n throw new Error('Illegal attachments');\n }\n p.attachments = Number(buf);\n }\n\n // look up namespace (if any)\n if ('/' === str.charAt(i + 1)) {\n var start = i + 1;\n while (++i) {\n var c = str.charAt(i);\n if (',' === c) break;\n if (i === str.length) break;\n }\n p.nsp = str.substring(start, i);\n } else {\n p.nsp = '/';\n }\n\n // look up id\n var next = str.charAt(i + 1);\n if ('' !== next && Number(next) == next) {\n var start = i + 1;\n while (++i) {\n var c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length) break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n\n // look up json data\n if (str.charAt(++i)) {\n var payload = tryParse(str.substr(i));\n if (isPayloadValid(p.type, payload)) {\n p.data = payload;\n } else {\n throw new Error(\"invalid payload\");\n }\n }\n debug('decoded %s as %j', str, p);\n return p;\n}\nfunction tryParse(str) {\n try {\n return JSON.parse(str);\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function () {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n this.reconPack = packet;\n this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function (binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function () {\n this.reconPack = null;\n this.buffers = [];\n};\nfunction error(msg) {\n return {\n type: exports.ERROR,\n data: 'parser error: ' + msg\n };\n}","/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n module.exports = typeof XMLHttpRequest !== 'undefined' && 'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n}","module.exports = function () {\n if (typeof self !== 'undefined') {\n return self;\n } else if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this')(); // eslint-disable-line no-new-func\n }\n}();","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\nvar globalThis = require('../globalThis');\nmodule.exports = function (opts) {\n var xdomain = opts.xdomain;\n\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n var xscheme = opts.xscheme;\n\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n var enablesXDR = opts.enablesXDR;\n\n // XMLHttpRequest can be disabled on IE\n try {\n if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) {}\n\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e) {}\n if (!xdomain) {\n try {\n return new globalThis[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n } catch (e) {}\n }\n};","/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys(obj) {\n var arr = [];\n var has = Object.prototype.hasOwnProperty;\n for (var i in obj) {\n if (has.call(obj, i)) {\n arr.push(i);\n }\n }\n return arr;\n};","var toString = {}.toString;\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' || typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof File === 'function' || typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n if (isArray(obj)) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (typeof Buffer === 'function' && Buffer.isBuffer && Buffer.isBuffer(obj) || typeof ArrayBuffer === 'function' && obj instanceof ArrayBuffer || withNativeBlob && obj instanceof Blob || withNativeFile && obj instanceof File) {\n return true;\n }\n\n // see: https://github.com/Automattic/has-binary/pull/4\n if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function (arraybuffer, start, end) {\n var bytes = arraybuffer.byteLength;\n start = start || 0;\n end = end || bytes;\n if (arraybuffer.slice) {\n return arraybuffer.slice(start, end);\n }\n if (start < 0) {\n start += bytes;\n }\n if (end < 0) {\n end += bytes;\n }\n if (end > bytes) {\n end = bytes;\n }\n if (start >= bytes || start >= end || bytes === 0) {\n return new ArrayBuffer(0);\n }\n var abv = new Uint8Array(arraybuffer);\n var result = new Uint8Array(end - start);\n for (var i = start, ii = 0; i < end; i++, ii++) {\n result[ii] = abv[i];\n }\n return result.buffer;\n};","module.exports = after;\nfunction after(count, callback, err_cb) {\n var bail = false;\n err_cb = err_cb || noop;\n proxy.count = count;\n return count === 0 ? callback() : proxy;\n function proxy(err, result) {\n if (proxy.count <= 0) {\n throw new Error('after called too many times');\n }\n --proxy.count;\n\n // after first error, rest are passed to err_cb\n if (err) {\n bail = true;\n callback(err);\n // future error callbacks will go to error handler\n callback = err_cb;\n } else if (proxy.count === 0 && !bail) {\n callback(null, result);\n }\n }\n}\nfunction noop() {}","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n\nvar stringFromCharCode = String.fromCharCode;\n\n// Taken from https://mths.be/punycode\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n var value;\n var extra;\n while (counter < length) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\n\n// Taken from https://mths.be/punycode\nfunction ucs2encode(array) {\n var length = array.length;\n var index = -1;\n var value;\n var output = '';\n while (++index < length) {\n value = array[index];\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n output += stringFromCharCode(value);\n }\n return output;\n}\nfunction checkScalarValue(codePoint, strict) {\n if (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n if (strict) {\n throw Error('Lone surrogate U+' + codePoint.toString(16).toUpperCase() + ' is not a scalar value');\n }\n return false;\n }\n return true;\n}\n/*--------------------------------------------------------------------------*/\n\nfunction createByte(codePoint, shift) {\n return stringFromCharCode(codePoint >> shift & 0x3F | 0x80);\n}\nfunction encodeCodePoint(codePoint, strict) {\n if ((codePoint & 0xFFFFFF80) == 0) {\n // 1-byte sequence\n return stringFromCharCode(codePoint);\n }\n var symbol = '';\n if ((codePoint & 0xFFFFF800) == 0) {\n // 2-byte sequence\n symbol = stringFromCharCode(codePoint >> 6 & 0x1F | 0xC0);\n } else if ((codePoint & 0xFFFF0000) == 0) {\n // 3-byte sequence\n if (!checkScalarValue(codePoint, strict)) {\n codePoint = 0xFFFD;\n }\n symbol = stringFromCharCode(codePoint >> 12 & 0x0F | 0xE0);\n symbol += createByte(codePoint, 6);\n } else if ((codePoint & 0xFFE00000) == 0) {\n // 4-byte sequence\n symbol = stringFromCharCode(codePoint >> 18 & 0x07 | 0xF0);\n symbol += createByte(codePoint, 12);\n symbol += createByte(codePoint, 6);\n }\n symbol += stringFromCharCode(codePoint & 0x3F | 0x80);\n return symbol;\n}\nfunction utf8encode(string, opts) {\n opts = opts || {};\n var strict = false !== opts.strict;\n var codePoints = ucs2decode(string);\n var length = codePoints.length;\n var index = -1;\n var codePoint;\n var byteString = '';\n while (++index < length) {\n codePoint = codePoints[index];\n byteString += encodeCodePoint(codePoint, strict);\n }\n return byteString;\n}\n\n/*--------------------------------------------------------------------------*/\n\nfunction readContinuationByte() {\n if (byteIndex >= byteCount) {\n throw Error('Invalid byte index');\n }\n var continuationByte = byteArray[byteIndex] & 0xFF;\n byteIndex++;\n if ((continuationByte & 0xC0) == 0x80) {\n return continuationByte & 0x3F;\n }\n\n // If we end up here, it’s not a continuation byte\n throw Error('Invalid continuation byte');\n}\nfunction decodeSymbol(strict) {\n var byte1;\n var byte2;\n var byte3;\n var byte4;\n var codePoint;\n if (byteIndex > byteCount) {\n throw Error('Invalid byte index');\n }\n if (byteIndex == byteCount) {\n return false;\n }\n\n // Read first byte\n byte1 = byteArray[byteIndex] & 0xFF;\n byteIndex++;\n\n // 1-byte sequence (no continuation bytes)\n if ((byte1 & 0x80) == 0) {\n return byte1;\n }\n\n // 2-byte sequence\n if ((byte1 & 0xE0) == 0xC0) {\n byte2 = readContinuationByte();\n codePoint = (byte1 & 0x1F) << 6 | byte2;\n if (codePoint >= 0x80) {\n return codePoint;\n } else {\n throw Error('Invalid continuation byte');\n }\n }\n\n // 3-byte sequence (may include unpaired surrogates)\n if ((byte1 & 0xF0) == 0xE0) {\n byte2 = readContinuationByte();\n byte3 = readContinuationByte();\n codePoint = (byte1 & 0x0F) << 12 | byte2 << 6 | byte3;\n if (codePoint >= 0x0800) {\n return checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n } else {\n throw Error('Invalid continuation byte');\n }\n }\n\n // 4-byte sequence\n if ((byte1 & 0xF8) == 0xF0) {\n byte2 = readContinuationByte();\n byte3 = readContinuationByte();\n byte4 = readContinuationByte();\n codePoint = (byte1 & 0x07) << 0x12 | byte2 << 0x0C | byte3 << 0x06 | byte4;\n if (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n return codePoint;\n }\n }\n throw Error('Invalid UTF-8 detected');\n}\nvar byteArray;\nvar byteCount;\nvar byteIndex;\nfunction utf8decode(byteString, opts) {\n opts = opts || {};\n var strict = false !== opts.strict;\n byteArray = ucs2decode(byteString);\n byteCount = byteArray.length;\n byteIndex = 0;\n var codePoints = [];\n var tmp;\n while ((tmp = decodeSymbol(strict)) !== false) {\n codePoints.push(tmp);\n }\n return ucs2encode(codePoints);\n}\nmodule.exports = {\n version: '2.1.2',\n encode: utf8encode,\n decode: utf8decode\n};","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function (chars) {\n \"use strict\";\n\n exports.encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = \"\";\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64 += chars[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n };\n exports.decode = function (base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = chars.indexOf(base64[i]);\n encoded2 = chars.indexOf(base64[i + 1]);\n encoded3 = chars.indexOf(base64[i + 2]);\n encoded4 = chars.indexOf(base64[i + 3]);\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return arraybuffer;\n };\n})(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\");","/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\n\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : false;\n\n/**\r\n * Check if Blob constructor is supported\r\n */\n\nvar blobSupported = function () {\n try {\n var a = new Blob(['hi']);\n return a.size === 2;\n } catch (e) {\n return false;\n }\n}();\n\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\n\nvar blobSupportsArrayBufferView = blobSupported && function () {\n try {\n var b = new Blob([new Uint8Array([1, 2])]);\n return b.size === 2;\n } catch (e) {\n return false;\n }\n}();\n\n/**\r\n * Check if BlobBuilder is supported\r\n */\n\nvar blobBuilderSupported = BlobBuilder && BlobBuilder.prototype.append && BlobBuilder.prototype.getBlob;\n\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\n\nfunction mapArrayBufferViews(ary) {\n return ary.map(function (chunk) {\n if (chunk.buffer instanceof ArrayBuffer) {\n var buf = chunk.buffer;\n\n // if this is a subarray, make a copy so we only\n // include the subarray region from the underlying buffer\n if (chunk.byteLength !== buf.byteLength) {\n var copy = new Uint8Array(chunk.byteLength);\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n buf = copy.buffer;\n }\n return buf;\n }\n return chunk;\n });\n}\nfunction BlobBuilderConstructor(ary, options) {\n options = options || {};\n var bb = new BlobBuilder();\n mapArrayBufferViews(ary).forEach(function (part) {\n bb.append(part);\n });\n return options.type ? bb.getBlob(options.type) : bb.getBlob();\n}\n;\nfunction BlobConstructor(ary, options) {\n return new Blob(mapArrayBufferViews(ary), options || {});\n}\n;\nif (typeof Blob !== 'undefined') {\n BlobBuilderConstructor.prototype = Blob.prototype;\n BlobConstructor.prototype = Blob.prototype;\n}\nmodule.exports = function () {\n if (blobSupported) {\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\n } else if (blobBuilderSupported) {\n return BlobBuilderConstructor;\n } else {\n return undefined;\n }\n}();","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\nvar base64encoder;\nif (typeof ArrayBuffer !== 'undefined') {\n base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n open: 0 // non-ws\n ,\n close: 1 // non-ws\n ,\n ping: 2,\n pong: 3,\n message: 4,\n upgrade: 5,\n noop: 6\n};\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = {\n type: 'error',\n data: 'parser error'\n};\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n * <packet type id> [ <data> ]\n *\n * Example:\n *\n * 5hello world\n * 3\n * 4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = false;\n }\n if (typeof utf8encode === 'function') {\n callback = utf8encode;\n utf8encode = null;\n }\n var data = packet.data === undefined ? undefined : packet.data.buffer || packet.data;\n if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) {\n return encodeArrayBuffer(packet, supportsBinary, callback);\n } else if (typeof Blob !== 'undefined' && data instanceof Blob) {\n return encodeBlob(packet, supportsBinary, callback);\n }\n\n // might be an object with { base64: true, data: dataAsBase64String }\n if (data && data.base64) {\n return encodeBase64Object(packet, callback);\n }\n\n // Sending data as a utf-8 string\n var encoded = packets[packet.type];\n\n // data fragment is optional\n if (undefined !== packet.data) {\n encoded += utf8encode ? utf8.encode(String(packet.data), {\n strict: false\n }) : String(packet.data);\n }\n return callback('' + encoded);\n};\nfunction encodeBase64Object(packet, callback) {\n // packet data is an object { base64: true, data: dataAsBase64String }\n var message = 'b' + exports.packets[packet.type] + packet.data.data;\n return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n var data = packet.data;\n var contentArray = new Uint8Array(data);\n var resultBuffer = new Uint8Array(1 + data.byteLength);\n resultBuffer[0] = packets[packet.type];\n for (var i = 0; i < contentArray.length; i++) {\n resultBuffer[i + 1] = contentArray[i];\n }\n return callback(resultBuffer.buffer);\n}\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n var fr = new FileReader();\n fr.onload = function () {\n exports.encodePacket({\n type: packet.type,\n data: fr.result\n }, supportsBinary, true, callback);\n };\n return fr.readAsArrayBuffer(packet.data);\n}\nfunction encodeBlob(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n if (dontSendBlobs) {\n return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n }\n var length = new Uint8Array(1);\n length[0] = packets[packet.type];\n var blob = new Blob([length.buffer, packet.data]);\n return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function (packet, callback) {\n var message = 'b' + exports.packets[packet.type];\n if (typeof Blob !== 'undefined' && packet.data instanceof Blob) {\n var fr = new FileReader();\n fr.onload = function () {\n var b64 = fr.result.split(',')[1];\n callback(message + b64);\n };\n return fr.readAsDataURL(packet.data);\n }\n var b64data;\n try {\n b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n } catch (e) {\n // iPhone Safari doesn't let you apply with typed arrays\n var typed = new Uint8Array(packet.data);\n var basic = new Array(typed.length);\n for (var i = 0; i < typed.length; i++) {\n basic[i] = typed[i];\n }\n b64data = String.fromCharCode.apply(null, basic);\n }\n message += btoa(b64data);\n return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n if (data === undefined) {\n return err;\n }\n // String data\n if (typeof data === 'string') {\n if (data.charAt(0) === 'b') {\n return exports.decodeBase64Packet(data.substr(1), binaryType);\n }\n if (utf8decode) {\n data = tryDecode(data);\n if (data === false) {\n return err;\n }\n }\n var type = data.charAt(0);\n if (Number(type) != type || !packetslist[type]) {\n return err;\n }\n if (data.length > 1) {\n return {\n type: packetslist[type],\n data: data.substring(1)\n };\n } else {\n return {\n type: packetslist[type]\n };\n }\n }\n var asArray = new Uint8Array(data);\n var type = asArray[0];\n var rest = sliceBuffer(data, 1);\n if (Blob && binaryType === 'blob') {\n rest = new Blob([rest]);\n }\n return {\n type: packetslist[type],\n data: rest\n };\n};\nfunction tryDecode(data) {\n try {\n data = utf8.decode(data, {\n strict: false\n });\n } catch (e) {\n return false;\n }\n return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function (msg, binaryType) {\n var type = packetslist[msg.charAt(0)];\n if (!base64encoder) {\n return {\n type: type,\n data: {\n base64: true,\n data: msg.substr(1)\n }\n };\n }\n var data = base64encoder.decode(msg.substr(1));\n if (binaryType === 'blob' && Blob) {\n data = new Blob([data]);\n }\n return {\n type: type,\n data: data\n };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n * <length>:data\n *\n * Example:\n *\n * 11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = null;\n }\n var isBinary = hasBinary(packets);\n if (supportsBinary && isBinary) {\n if (Blob && !dontSendBlobs) {\n return exports.encodePayloadAsBlob(packets, callback);\n }\n return exports.encodePayloadAsArrayBuffer(packets, callback);\n }\n if (!packets.length) {\n return callback('0:');\n }\n function setLengthHeader(message) {\n return message.length + ':' + message;\n }\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function (message) {\n doneCallback(null, setLengthHeader(message));\n });\n }\n map(packets, encodeOne, function (err, results) {\n return callback(results.join(''));\n });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n var result = new Array(ary.length);\n var next = after(ary.length, done);\n var eachWithIndex = function (i, el, cb) {\n each(el, function (error, msg) {\n result[i] = msg;\n cb(error, result);\n });\n };\n for (var i = 0; i < ary.length; i++) {\n eachWithIndex(i, ary[i], next);\n }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n if (typeof data !== 'string') {\n return exports.decodePayloadAsBinary(data, binaryType, callback);\n }\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n var packet;\n if (data === '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n var length = '',\n n,\n msg;\n for (var i = 0, l = data.length; i < l; i++) {\n var chr = data.charAt(i);\n if (chr !== ':') {\n length += chr;\n continue;\n }\n if (length === '' || length != (n = Number(length))) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n msg = data.substr(i + 1, n);\n if (length != msg.length) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n if (msg.length) {\n packet = exports.decodePacket(msg, binaryType, false);\n if (err.type === packet.type && err.data === packet.data) {\n // parser error in individual packet - ignoring payload\n return callback(err, 0, 1);\n }\n var ret = callback(packet, i + n, l);\n if (false === ret) return;\n }\n\n // advance cursor\n i += n;\n length = '';\n }\n if (length !== '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n * 255><data>\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function (packets, callback) {\n if (!packets.length) {\n return callback(new ArrayBuffer(0));\n }\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function (data) {\n return doneCallback(null, data);\n });\n }\n map(packets, encodeOne, function (err, encodedPackets) {\n var totalLength = encodedPackets.reduce(function (acc, p) {\n var len;\n if (typeof p === 'string') {\n len = p.length;\n } else {\n len = p.byteLength;\n }\n return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n }, 0);\n var resultArray = new Uint8Array(totalLength);\n var bufferIndex = 0;\n encodedPackets.forEach(function (p) {\n var isString = typeof p === 'string';\n var ab = p;\n if (isString) {\n var view = new Uint8Array(p.length);\n for (var i = 0; i < p.length; i++) {\n view[i] = p.charCodeAt(i);\n }\n ab = view.buffer;\n }\n if (isString) {\n // not true binary\n resultArray[bufferIndex++] = 0;\n } else {\n // true binary\n resultArray[bufferIndex++] = 1;\n }\n var lenStr = ab.byteLength.toString();\n for (var i = 0; i < lenStr.length; i++) {\n resultArray[bufferIndex++] = parseInt(lenStr[i]);\n }\n resultArray[bufferIndex++] = 255;\n var view = new Uint8Array(ab);\n for (var i = 0; i < view.length; i++) {\n resultArray[bufferIndex++] = view[i];\n }\n });\n return callback(resultArray.buffer);\n });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function (packets, callback) {\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function (encoded) {\n var binaryIdentifier = new Uint8Array(1);\n binaryIdentifier[0] = 1;\n if (typeof encoded === 'string') {\n var view = new Uint8Array(encoded.length);\n for (var i = 0; i < encoded.length; i++) {\n view[i] = encoded.charCodeAt(i);\n }\n encoded = view.buffer;\n binaryIdentifier[0] = 0;\n }\n var len = encoded instanceof ArrayBuffer ? encoded.byteLength : encoded.size;\n var lenStr = len.toString();\n var lengthAry = new Uint8Array(lenStr.length + 1);\n for (var i = 0; i < lenStr.length; i++) {\n lengthAry[i] = parseInt(lenStr[i]);\n }\n lengthAry[lenStr.length] = 255;\n if (Blob) {\n var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n doneCallback(null, blob);\n }\n });\n }\n map(packets, encodeOne, function (err, results) {\n return callback(new Blob(results));\n });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n var bufferTail = data;\n var buffers = [];\n while (bufferTail.byteLength > 0) {\n var tailArray = new Uint8Array(bufferTail);\n var isString = tailArray[0] === 0;\n var msgLength = '';\n for (var i = 1;; i++) {\n if (tailArray[i] === 255) break;\n\n // 310 = char length of Number.MAX_VALUE\n if (msgLength.length > 310) {\n return callback(err, 0, 1);\n }\n msgLength += tailArray[i];\n }\n bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n msgLength = parseInt(msgLength);\n var msg = sliceBuffer(bufferTail, 0, msgLength);\n if (isString) {\n try {\n msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n } catch (e) {\n // iPhone Safari doesn't let you apply to typed arrays\n var typed = new Uint8Array(msg);\n msg = '';\n for (var i = 0; i < typed.length; i++) {\n msg += String.fromCharCode(typed[i]);\n }\n }\n }\n buffers.push(msg);\n bufferTail = sliceBuffer(bufferTail, msgLength);\n }\n var total = buffers.length;\n buffers.forEach(function (buffer, i) {\n callback(exports.decodePacket(buffer, binaryType, true), i, total);\n });\n};","/**\n * Module dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport(opts) {\n this.path = opts.path;\n this.hostname = opts.hostname;\n this.port = opts.port;\n this.secure = opts.secure;\n this.query = opts.query;\n this.timestampParam = opts.timestampParam;\n this.timestampRequests = opts.timestampRequests;\n this.readyState = '';\n this.agent = opts.agent || false;\n this.socket = opts.socket;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n this.forceNode = opts.forceNode;\n\n // results of ReactNative environment detection\n this.isReactNative = opts.isReactNative;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n var err = new Error(msg);\n err.type = 'TransportError';\n err.description = desc;\n this.emit('error', err);\n return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n if ('closed' === this.readyState || '' === this.readyState) {\n this.readyState = 'opening';\n this.doOpen();\n }\n return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n if ('open' === this.readyState) {\n this.write(packets);\n } else {\n throw new Error('Transport not open');\n }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n this.readyState = 'open';\n this.writable = true;\n this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n var packet = parser.decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n this.readyState = 'closed';\n this.emit('close');\n};","/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\n\nexports.encode = function (obj) {\n var str = '';\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length) str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n};\n\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\n\nexports.decode = function (qs) {\n var qry = {};\n var pairs = qs.split('&');\n for (var i = 0, l = pairs.length; i < l; i++) {\n var pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n};","module.exports = function (a, b) {\n var fn = function () {};\n fn.prototype = b.prototype;\n a.prototype = new fn();\n a.prototype.constructor = a;\n};","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''),\n length = 64,\n map = {},\n seed = 0,\n i = 0,\n prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n var encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n var decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n var now = encode(+new Date());\n if (now !== prev) return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = function () {\n var XMLHttpRequest = require('./xmlhttprequest');\n var xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n}();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling(opts) {\n var forceBase64 = opts && opts.forceBase64;\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n var self = this;\n this.readyState = 'pausing';\n function pause() {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n if (this.polling || !this.writable) {\n var total = 0;\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function () {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function () {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function (packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState && packet.type === 'open') {\n self.onOpen();\n }\n\n // if its a close packet, we close the ongoing requests\n if ('close' === packet.type) {\n self.onClose();\n return false;\n }\n\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n\n // decode payload\n parser.decodePayload(data, this.socket.binaryType, callback);\n\n // if an event did not trigger closing\n if ('closed' !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit('pollComplete');\n if ('open' === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n var self = this;\n function close() {\n debug('writing close packet');\n self.write([{\n type: 'close'\n }]);\n }\n if ('open' === this.readyState) {\n debug('transport open - closing');\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug('transport not open - deferring close');\n this.once('open', close);\n }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n var callbackfn = function () {\n self.writable = true;\n self.emit('drain');\n };\n parser.encodePayload(packets, this.supportsBinary, function (data) {\n self.doWrite(data, callbackfn);\n });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'https' : 'http';\n var port = '';\n\n // cache busting is forced\n if (false !== this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n query = parseqs.encode(query);\n\n // avoid port if default for schema\n if (this.port && ('https' === schema && Number(this.port) !== 443 || 'http' === schema && Number(this.port) !== 80)) {\n port = ':' + this.port;\n }\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};","/* global attachEvent */\n\n/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('./xmlhttprequest');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty() {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR(opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n this.xd = typeof location !== 'undefined' && opts.hostname !== location.hostname || port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n opts.withCredentials = this.withCredentials;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({\n method: 'POST',\n data: data,\n isBinary: isBinary\n });\n var self = this;\n req.on('success', fn);\n req.on('error', function (err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function (data) {\n self.onData(data);\n });\n req.on('error', function (err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request(opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n this.requestTimeout = opts.requestTimeout;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n var opts = {\n agent: this.agent,\n xdomain: this.xd,\n xscheme: this.xs,\n enablesXDR: this.enablesXDR\n };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (var i in this.extraHeaders) {\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e) {}\n\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = this.withCredentials;\n }\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n if (this.hasXDR()) {\n xhr.onload = function () {\n self.onLoad();\n };\n xhr.onerror = function () {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n try {\n var contentType = xhr.getResponseHeader('Content-Type');\n if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n xhr.responseType = 'arraybuffer';\n }\n } catch (e) {}\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function () {\n self.onError(typeof xhr.status === 'number' ? xhr.status : 0);\n }, 0);\n }\n };\n }\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function () {\n self.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== 'undefined') {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n this.emit('success');\n this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n this.emit('data', data);\n this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n this.emit('error', err);\n this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n if (typeof document !== 'undefined') {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\nif (typeof document !== 'undefined') {\n if (typeof attachEvent === 'function') {\n attachEvent('onunload', unloadHandler);\n } else if (typeof addEventListener === 'function') {\n var terminationEvent = 'onpagehide' in globalThis ? 'pagehide' : 'unload';\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}","/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty() {}\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling(opts) {\n Polling.call(this, opts);\n this.query = this.query || {};\n\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n callbacks = globalThis.___eio = globalThis.___eio || [];\n }\n\n // callback identifier\n this.index = callbacks.length;\n\n // add callback to jsonp global\n var self = this;\n callbacks.push(function (msg) {\n self.onData(msg);\n });\n\n // append to query string\n this.query.j = this.index;\n\n // prevent spurious errors from being emitted when the window is unloaded\n if (typeof addEventListener === 'function') {\n addEventListener('beforeunload', function () {\n if (self.script) self.script.onerror = empty;\n }, false);\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n var self = this;\n var script = document.createElement('script');\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n script.async = true;\n script.src = this.uri();\n script.onerror = function (e) {\n self.onError('jsonp poll error', e);\n };\n var insertAt = document.getElementsByTagName('script')[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n if (isUAgecko) {\n setTimeout(function () {\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n var self = this;\n if (!this.form) {\n var form = document.createElement('form');\n var area = document.createElement('textarea');\n var id = this.iframeId = 'eio_iframe_' + this.index;\n var iframe;\n form.className = 'socketio';\n form.style.position = 'absolute';\n form.style.top = '-1000px';\n form.style.left = '-1000px';\n form.target = id;\n form.method = 'POST';\n form.setAttribute('accept-charset', 'utf-8');\n area.name = 'd';\n form.appendChild(area);\n document.body.appendChild(form);\n this.form = form;\n this.area = area;\n }\n this.form.action = this.uri();\n function complete() {\n initIframe();\n fn();\n }\n function initIframe() {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError('jsonp polling iframe removal error', e);\n }\n }\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n iframe = document.createElement(html);\n } catch (e) {\n iframe = document.createElement('iframe');\n iframe.name = self.iframeId;\n iframe.src = 'javascript:0';\n }\n iframe.id = self.iframeId;\n self.form.appendChild(iframe);\n self.iframe = iframe;\n }\n initIframe();\n\n // escape \\n to prevent it from being converted into \\r\\n by some UAs\n // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n data = data.replace(rEscapedNewline, '\\\\\\n');\n this.area.value = data.replace(rNewline, '\\\\n');\n try {\n this.form.submit();\n } catch (e) {}\n if (this.iframe.attachEvent) {\n this.iframe.onreadystatechange = function () {\n if (self.iframe.readyState === 'complete') {\n complete();\n }\n };\n } else {\n this.iframe.onload = complete;\n }\n};","'use strict';\n\nmodule.exports = function () {\n throw new Error('ws does not work in the browser. Browser clients must use the native ' + 'WebSocket object');\n};","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parser = require('engine.io-parser');\nvar parseqs = require('parseqs');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:websocket');\nvar BrowserWebSocket, NodeWebSocket;\nif (typeof WebSocket !== 'undefined') {\n BrowserWebSocket = WebSocket;\n} else if (typeof self !== 'undefined') {\n BrowserWebSocket = self.WebSocket || self.MozWebSocket;\n}\nif (typeof window === 'undefined') {\n try {\n NodeWebSocket = require('ws');\n } catch (e) {}\n}\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\nvar WebSocketImpl = BrowserWebSocket || NodeWebSocket;\n\n/**\n * Module exports.\n */\n\nmodule.exports = WS;\n\n/**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n\nfunction WS(opts) {\n var forceBase64 = opts && opts.forceBase64;\n if (forceBase64) {\n this.supportsBinary = false;\n }\n this.perMessageDeflate = opts.perMessageDeflate;\n this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n this.protocols = opts.protocols;\n if (!this.usingBrowserWebSocket) {\n WebSocketImpl = NodeWebSocket;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(WS, Transport);\n\n/**\n * Transport name.\n *\n * @api public\n */\n\nWS.prototype.name = 'websocket';\n\n/*\n * WebSockets support binary\n */\n\nWS.prototype.supportsBinary = true;\n\n/**\n * Opens socket.\n *\n * @api private\n */\n\nWS.prototype.doOpen = function () {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n var uri = this.uri();\n var protocols = this.protocols;\n var opts = {};\n if (!this.isReactNative) {\n opts.agent = this.agent;\n opts.perMessageDeflate = this.perMessageDeflate;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n }\n if (this.extraHeaders) {\n opts.headers = this.extraHeaders;\n }\n if (this.localAddress) {\n opts.localAddress = this.localAddress;\n }\n try {\n this.ws = this.usingBrowserWebSocket && !this.isReactNative ? protocols ? new WebSocketImpl(uri, protocols) : new WebSocketImpl(uri) : new WebSocketImpl(uri, protocols, opts);\n } catch (err) {\n return this.emit('error', err);\n }\n if (this.ws.binaryType === undefined) {\n this.supportsBinary = false;\n }\n if (this.ws.supports && this.ws.supports.binary) {\n this.supportsBinary = true;\n this.ws.binaryType = 'nodebuffer';\n } else {\n this.ws.binaryType = 'arraybuffer';\n }\n this.addEventListeners();\n};\n\n/**\n * Adds event listeners to the socket\n *\n * @api private\n */\n\nWS.prototype.addEventListeners = function () {\n var self = this;\n this.ws.onopen = function () {\n self.onOpen();\n };\n this.ws.onclose = function () {\n self.onClose();\n };\n this.ws.onmessage = function (ev) {\n self.onData(ev.data);\n };\n this.ws.onerror = function (e) {\n self.onError('websocket error', e);\n };\n};\n\n/**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n\nWS.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n var total = packets.length;\n for (var i = 0, l = total; i < l; i++) {\n (function (packet) {\n parser.encodePacket(packet, self.supportsBinary, function (data) {\n if (!self.usingBrowserWebSocket) {\n // always create a new object (GH-437)\n var opts = {};\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (self.perMessageDeflate) {\n var len = 'string' === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < self.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (self.usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n self.ws.send(data);\n } else {\n self.ws.send(data, opts);\n }\n } catch (e) {\n debug('websocket closed before onclose event');\n }\n --total || done();\n });\n })(packets[i]);\n }\n function done() {\n self.emit('flush');\n\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n setTimeout(function () {\n self.writable = true;\n self.emit('drain');\n }, 0);\n }\n};\n\n/**\n * Called upon close\n *\n * @api private\n */\n\nWS.prototype.onClose = function () {\n Transport.prototype.onClose.call(this);\n};\n\n/**\n * Closes socket.\n *\n * @api private\n */\n\nWS.prototype.doClose = function () {\n if (typeof this.ws !== 'undefined') {\n this.ws.close();\n }\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nWS.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'wss' : 'ws';\n var port = '';\n\n // avoid port if default for schema\n if (this.port && ('wss' === schema && Number(this.port) !== 443 || 'ws' === schema && Number(this.port) !== 80)) {\n port = ':' + this.port;\n }\n\n // append timestamp to URI\n if (this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n query = parseqs.encode(query);\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n/**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n\nWS.prototype.check = function () {\n return !!WebSocketImpl && !('__initialize' in WebSocketImpl && this.name === WS.prototype.name);\n};","/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = require('./xmlhttprequest');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling(opts) {\n var xhr;\n var xd = false;\n var xs = false;\n var jsonp = false !== opts.jsonp;\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n xd = opts.hostname !== location.hostname || port !== opts.port;\n xs = opts.secure !== isSSL;\n }\n opts.xdomain = xd;\n opts.xscheme = xs;\n xhr = new XMLHttpRequest(opts);\n if ('open' in xhr && !opts.forceJSONP) {\n return new XHR(opts);\n } else {\n if (!jsonp) throw new Error('JSONP disabled');\n return new JSONP(opts);\n }\n}","var indexOf = [].indexOf;\nmodule.exports = function (arr, obj) {\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket(uri, opts) {\n if (!(this instanceof Socket)) return new Socket(uri, opts);\n opts = opts || {};\n if (uri && 'object' === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parseuri(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n opts.port = uri.port;\n if (uri.query) opts.query = uri.query;\n } else if (opts.host) {\n opts.hostname = parseuri(opts.host).host;\n }\n this.secure = null != opts.secure ? opts.secure : typeof location !== 'undefined' && 'https:' === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? '443' : '80';\n }\n this.agent = opts.agent || false;\n this.hostname = opts.hostname || (typeof location !== 'undefined' ? location.hostname : 'localhost');\n this.port = opts.port || (typeof location !== 'undefined' && location.port ? location.port : this.secure ? 443 : 80);\n this.query = opts.query || {};\n if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n this.upgrade = false !== opts.upgrade;\n this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n this.forceJSONP = !!opts.forceJSONP;\n this.jsonp = false !== opts.jsonp;\n this.forceBase64 = !!opts.forceBase64;\n this.enablesXDR = !!opts.enablesXDR;\n this.withCredentials = false !== opts.withCredentials;\n this.timestampParam = opts.timestampParam || 't';\n this.timestampRequests = opts.timestampRequests;\n this.transports = opts.transports || ['polling', 'websocket'];\n this.transportOptions = opts.transportOptions || {};\n this.readyState = '';\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.policyPort = opts.policyPort || 843;\n this.rememberUpgrade = opts.rememberUpgrade || false;\n this.binaryType = null;\n this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n this.perMessageDeflate = false !== opts.perMessageDeflate ? opts.perMessageDeflate || {} : false;\n if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n this.perMessageDeflate.threshold = 1024;\n }\n\n // SSL options for Node.js client\n this.pfx = opts.pfx || undefined;\n this.key = opts.key || undefined;\n this.passphrase = opts.passphrase || undefined;\n this.cert = opts.cert || undefined;\n this.ca = opts.ca || undefined;\n this.ciphers = opts.ciphers || undefined;\n this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n this.forceNode = !!opts.forceNode;\n\n // detect ReactNative environment\n this.isReactNative = typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative';\n\n // other options for Node.js or ReactNative client\n if (typeof self === 'undefined' || this.isReactNative) {\n if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n this.extraHeaders = opts.extraHeaders;\n }\n if (opts.localAddress) {\n this.localAddress = opts.localAddress;\n }\n }\n\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n\n // set on heartbeat\n this.pingIntervalTimer = null;\n this.pingTimeoutTimer = null;\n this.open();\n}\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n debug('creating transport \"%s\"', name);\n var query = clone(this.query);\n\n // append engine.io protocol identifier\n query.EIO = parser.protocol;\n\n // transport name\n query.transport = name;\n\n // per-transport options\n var options = this.transportOptions[name] || {};\n\n // session id if we already have one\n if (this.id) query.sid = this.id;\n var transport = new transports[name]({\n query: query,\n socket: this,\n agent: options.agent || this.agent,\n hostname: options.hostname || this.hostname,\n port: options.port || this.port,\n secure: options.secure || this.secure,\n path: options.path || this.path,\n forceJSONP: options.forceJSONP || this.forceJSONP,\n jsonp: options.jsonp || this.jsonp,\n forceBase64: options.forceBase64 || this.forceBase64,\n enablesXDR: options.enablesXDR || this.enablesXDR,\n withCredentials: options.withCredentials || this.withCredentials,\n timestampRequests: options.timestampRequests || this.timestampRequests,\n timestampParam: options.timestampParam || this.timestampParam,\n policyPort: options.policyPort || this.policyPort,\n pfx: options.pfx || this.pfx,\n key: options.key || this.key,\n passphrase: options.passphrase || this.passphrase,\n cert: options.cert || this.cert,\n ca: options.ca || this.ca,\n ciphers: options.ciphers || this.ciphers,\n rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n extraHeaders: options.extraHeaders || this.extraHeaders,\n forceNode: options.forceNode || this.forceNode,\n localAddress: options.localAddress || this.localAddress,\n requestTimeout: options.requestTimeout || this.requestTimeout,\n protocols: options.protocols || void 0,\n isReactNative: this.isReactNative\n });\n return transport;\n};\nfunction clone(obj) {\n var o = {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n o[i] = obj[i];\n }\n }\n return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n var transport;\n if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n transport = 'websocket';\n } else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n var self = this;\n setTimeout(function () {\n self.emit('error', 'No transports available');\n }, 0);\n return;\n } else {\n transport = this.transports[0];\n }\n this.readyState = 'opening';\n\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n } catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n debug('setting transport %s', transport.name);\n var self = this;\n if (this.transport) {\n debug('clearing existing transport %s', this.transport.name);\n this.transport.removeAllListeners();\n }\n\n // set up transport\n this.transport = transport;\n\n // set up transport listeners\n transport.on('drain', function () {\n self.onDrain();\n }).on('packet', function (packet) {\n self.onPacket(packet);\n }).on('error', function (e) {\n self.onError(e);\n }).on('close', function () {\n self.onClose('transport close');\n });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n debug('probing transport \"%s\"', name);\n var transport = this.createTransport(name, {\n probe: 1\n });\n var failed = false;\n var self = this;\n Socket.priorWebsocketSuccess = false;\n function onTransportOpen() {\n if (self.onlyBinaryUpgrades) {\n var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n failed = failed || upgradeLosesBinary;\n }\n if (failed) return;\n debug('probe transport \"%s\" opened', name);\n transport.send([{\n type: 'ping',\n data: 'probe'\n }]);\n transport.once('packet', function (msg) {\n if (failed) return;\n if ('pong' === msg.type && 'probe' === msg.data) {\n debug('probe transport \"%s\" pong', name);\n self.upgrading = true;\n self.emit('upgrading', transport);\n if (!transport) return;\n Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n debug('pausing current transport \"%s\"', self.transport.name);\n self.transport.pause(function () {\n if (failed) return;\n if ('closed' === self.readyState) return;\n debug('changing transport and sending upgrade packet');\n cleanup();\n self.setTransport(transport);\n transport.send([{\n type: 'upgrade'\n }]);\n self.emit('upgrade', transport);\n transport = null;\n self.upgrading = false;\n self.flush();\n });\n } else {\n debug('probe transport \"%s\" failed', name);\n var err = new Error('probe error');\n err.transport = transport.name;\n self.emit('upgradeError', err);\n }\n });\n }\n function freezeTransport() {\n if (failed) return;\n\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n\n // Handle any error that happens while probing\n function onerror(err) {\n var error = new Error('probe error: ' + err);\n error.transport = transport.name;\n freezeTransport();\n debug('probe transport \"%s\" failed because of error: %s', name, err);\n self.emit('upgradeError', error);\n }\n function onTransportClose() {\n onerror('transport closed');\n }\n\n // When the socket is closed while we're probing\n function onclose() {\n onerror('socket closed');\n }\n\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n freezeTransport();\n }\n }\n\n // Remove all listeners on the transport and on self\n function cleanup() {\n transport.removeListener('open', onTransportOpen);\n transport.removeListener('error', onerror);\n transport.removeListener('close', onTransportClose);\n self.removeListener('close', onclose);\n self.removeListener('upgrading', onupgrade);\n }\n transport.once('open', onTransportOpen);\n transport.once('error', onerror);\n transport.once('close', onTransportClose);\n this.once('close', onclose);\n this.once('upgrading', onupgrade);\n transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n debug('socket open');\n this.readyState = 'open';\n Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n this.emit('open');\n this.flush();\n\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n debug('starting upgrade probes');\n for (var i = 0, l = this.upgrades.length; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n this.emit('packet', packet);\n\n // Socket is live - any packet counts\n this.emit('heartbeat');\n switch (packet.type) {\n case 'open':\n this.onHandshake(JSON.parse(packet.data));\n break;\n case 'pong':\n this.setPing();\n this.emit('pong');\n break;\n case 'error':\n var err = new Error('server error');\n err.code = packet.data;\n this.onError(err);\n break;\n case 'message':\n this.emit('data', packet.data);\n this.emit('message', packet.data);\n break;\n }\n } else {\n debug('packet received with socket readyState \"%s\"', this.readyState);\n }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n this.emit('handshake', data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.onOpen();\n // In case open handler closes socket\n if ('closed' === this.readyState) return;\n this.setPing();\n\n // Prolong liveness of socket on heartbeat\n this.removeListener('heartbeat', this.onHeartbeat);\n this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n clearTimeout(this.pingTimeoutTimer);\n var self = this;\n self.pingTimeoutTimer = setTimeout(function () {\n if ('closed' === self.readyState) return;\n self.onClose('ping timeout');\n }, timeout || self.pingInterval + self.pingTimeout);\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n var self = this;\n clearTimeout(self.pingIntervalTimer);\n self.pingIntervalTimer = setTimeout(function () {\n debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n self.ping();\n self.onHeartbeat(self.pingTimeout);\n }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n var self = this;\n this.sendPacket('ping', function () {\n self.emit('ping');\n });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n this.writeBuffer.splice(0, this.prevBufferLen);\n\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emit('drain');\n } else {\n this.flush();\n }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n if ('closed' !== this.readyState && this.transport.writable && !this.upgrading && this.writeBuffer.length) {\n debug('flushing %d packets in socket', this.writeBuffer.length);\n this.transport.send(this.writeBuffer);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = this.writeBuffer.length;\n this.emit('flush');\n }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write = Socket.prototype.send = function (msg, options, fn) {\n this.sendPacket('message', msg, options, fn);\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n if ('function' === typeof data) {\n fn = data;\n data = undefined;\n }\n if ('function' === typeof options) {\n fn = options;\n options = null;\n }\n if ('closing' === this.readyState || 'closed' === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n var packet = {\n type: type,\n data: data,\n options: options\n };\n this.emit('packetCreate', packet);\n this.writeBuffer.push(packet);\n if (fn) this.once('flush', fn);\n this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.readyState = 'closing';\n var self = this;\n if (this.writeBuffer.length) {\n this.once('drain', function () {\n if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n });\n } else if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n }\n function close() {\n self.onClose('forced close');\n debug('socket closing - telling transport to close');\n self.transport.close();\n }\n function cleanupAndClose() {\n self.removeListener('upgrade', cleanupAndClose);\n self.removeListener('upgradeError', cleanupAndClose);\n close();\n }\n function waitForUpgrade() {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n self.once('upgrade', cleanupAndClose);\n self.once('upgradeError', cleanupAndClose);\n }\n return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n debug('socket error %j', err);\n Socket.priorWebsocketSuccess = false;\n this.emit('error', err);\n this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n debug('socket close with reason: \"%s\"', reason);\n var self = this;\n\n // clear timers\n clearTimeout(this.pingIntervalTimer);\n clearTimeout(this.pingTimeoutTimer);\n\n // stop event from firing again for transport\n this.transport.removeAllListeners('close');\n\n // ensure transport won't stay open\n this.transport.close();\n\n // ignore further transport communication\n this.transport.removeAllListeners();\n\n // set ready state\n this.readyState = 'closed';\n\n // clear session id\n this.id = null;\n\n // emit close event\n this.emit('close', reason, desc);\n\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n self.writeBuffer = [];\n self.prevBufferLen = 0;\n }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n var filteredUpgrades = [];\n for (var i = 0, j = upgrades.length; i < j; i++) {\n if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n};","module.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');","module.exports = toArray;\nfunction toArray(list, index) {\n var array = [];\n index = index || 0;\n for (var i = index || 0; i < list.length; i++) {\n array[i - index] = list[i];\n }\n return array;\n}","/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on(obj, ev, fn) {\n obj.on(ev, fn);\n return {\n destroy: function () {\n obj.removeListener(ev, fn);\n }\n };\n}","/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function (obj, fn) {\n if ('string' == typeof fn) fn = obj[fn];\n if ('function' != typeof fn) throw new Error('bind() requires a function');\n var args = slice.call(arguments, 2);\n return function () {\n return fn.apply(obj, args.concat(slice.call(arguments)));\n };\n};","/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\nvar hasBin = require('has-binary2');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n connecting: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1,\n ping: 1,\n pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket(io, nsp, opts) {\n this.io = io;\n this.nsp = nsp;\n this.json = this; // compat\n this.ids = 0;\n this.acks = {};\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.connected = false;\n this.disconnected = true;\n this.flags = {};\n if (opts && opts.query) {\n this.query = opts.query;\n }\n if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n if (this.subs) return;\n var io = this.io;\n this.subs = [on(io, 'open', bind(this, 'onopen')), on(io, 'packet', bind(this, 'onpacket')), on(io, 'close', bind(this, 'onclose'))];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open = Socket.prototype.connect = function () {\n if (this.connected) return this;\n this.subEvents();\n if (!this.io.reconnecting) this.io.open(); // ensure open\n if ('open' === this.io.readyState) this.onopen();\n this.emit('connecting');\n return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n var args = toArray(arguments);\n args.unshift('message');\n this.emit.apply(this, args);\n return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n if (events.hasOwnProperty(ev)) {\n emit.apply(this, arguments);\n return this;\n }\n var args = toArray(arguments);\n var packet = {\n type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n data: args\n };\n packet.options = {};\n packet.options.compress = !this.flags || false !== this.flags.compress;\n\n // event ack callback\n if ('function' === typeof args[args.length - 1]) {\n debug('emitting packet with ack id %d', this.ids);\n this.acks[this.ids] = args.pop();\n packet.id = this.ids++;\n }\n if (this.connected) {\n this.packet(packet);\n } else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n packet.nsp = this.nsp;\n this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n debug('transport is open - connecting');\n\n // write connect packet if necessary\n if ('/' !== this.nsp) {\n if (this.query) {\n var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n debug('sending connect packet with query %s', query);\n this.packet({\n type: parser.CONNECT,\n query: query\n });\n } else {\n this.packet({\n type: parser.CONNECT\n });\n }\n }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n debug('close (%s)', reason);\n this.connected = false;\n this.disconnected = true;\n delete this.id;\n this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n var sameNamespace = packet.nsp === this.nsp;\n var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n if (!sameNamespace && !rootNamespaceError) return;\n switch (packet.type) {\n case parser.CONNECT:\n this.onconnect();\n break;\n case parser.EVENT:\n this.onevent(packet);\n break;\n case parser.BINARY_EVENT:\n this.onevent(packet);\n break;\n case parser.ACK:\n this.onack(packet);\n break;\n case parser.BINARY_ACK:\n this.onack(packet);\n break;\n case parser.DISCONNECT:\n this.ondisconnect();\n break;\n case parser.ERROR:\n this.emit('error', packet.data);\n break;\n }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n var args = packet.data || [];\n debug('emitting event %j', args);\n if (null != packet.id) {\n debug('attaching ack callback to event');\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n emit.apply(this, args);\n } else {\n this.receiveBuffer.push(args);\n }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n var self = this;\n var sent = false;\n return function () {\n // prevent double callbacks\n if (sent) return;\n sent = true;\n var args = toArray(arguments);\n debug('sending ack %j', args);\n self.packet({\n type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n id: id,\n data: args\n });\n };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n var ack = this.acks[packet.id];\n if ('function' === typeof ack) {\n debug('calling ack %s with %j', packet.id, packet.data);\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n } else {\n debug('bad ack %s', packet.id);\n }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n this.connected = true;\n this.disconnected = false;\n this.emit('connect');\n this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n var i;\n for (i = 0; i < this.receiveBuffer.length; i++) {\n emit.apply(this, this.receiveBuffer[i]);\n }\n this.receiveBuffer = [];\n for (i = 0; i < this.sendBuffer.length; i++) {\n this.packet(this.sendBuffer[i]);\n }\n this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n debug('server disconnect (%s)', this.nsp);\n this.destroy();\n this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n for (var i = 0; i < this.subs.length; i++) {\n this.subs[i].destroy();\n }\n this.subs = null;\n }\n this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close = Socket.prototype.disconnect = function () {\n if (this.connected) {\n debug('performing disconnect (%s)', this.nsp);\n this.packet({\n type: parser.DISCONNECT\n });\n }\n\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose('io client disconnect');\n }\n return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n this.flags.compress = compress;\n return this;\n};\n\n/**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.binary = function (binary) {\n this.flags.binary = binary;\n return this;\n};","/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};","/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager(uri, opts) {\n if (!(this instanceof Manager)) return new Manager(uri, opts);\n if (uri && 'object' === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || '/socket.io';\n this.nsps = {};\n this.subs = [];\n this.opts = opts;\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor(opts.randomizationFactor || 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this.readyState = 'closed';\n this.uri = uri;\n this.connecting = [];\n this.lastPing = null;\n this.encoding = false;\n this.packetBuffer = [];\n var _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this.autoConnect = opts.autoConnect !== false;\n if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n this.emit.apply(this, arguments);\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n }\n }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].id = this.generateId(nsp);\n }\n }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n return (nsp === '/' ? '' : nsp + '#') + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n if (!arguments.length) return this._reconnection;\n this._reconnection = !!v;\n return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n if (!arguments.length) return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n if (!arguments.length) return this._reconnectionDelay;\n this._reconnectionDelay = v;\n this.backoff && this.backoff.setMin(v);\n return this;\n};\nManager.prototype.randomizationFactor = function (v) {\n if (!arguments.length) return this._randomizationFactor;\n this._randomizationFactor = v;\n this.backoff && this.backoff.setJitter(v);\n return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n if (!arguments.length) return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n this.backoff && this.backoff.setMax(v);\n return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n if (!arguments.length) return this._timeout;\n this._timeout = v;\n return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n // Only try to reconnect if it's the first time we're connecting\n if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open = Manager.prototype.connect = function (fn, opts) {\n debug('readyState %s', this.readyState);\n if (~this.readyState.indexOf('open')) return this;\n debug('opening %s', this.uri);\n this.engine = eio(this.uri, this.opts);\n var socket = this.engine;\n var self = this;\n this.readyState = 'opening';\n this.skipReconnect = false;\n\n // emit `open`\n var openSub = on(socket, 'open', function () {\n self.onopen();\n fn && fn();\n });\n\n // emit `connect_error`\n var errorSub = on(socket, 'error', function (data) {\n debug('connect_error');\n self.cleanup();\n self.readyState = 'closed';\n self.emitAll('connect_error', data);\n if (fn) {\n var err = new Error('Connection error');\n err.data = data;\n fn(err);\n } else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n\n // emit `connect_timeout`\n if (false !== this._timeout) {\n var timeout = this._timeout;\n debug('connect attempt will timeout after %d', timeout);\n if (timeout === 0) {\n openSub.destroy(); // prevents a race condition with the 'open' event\n }\n\n // set timer\n var timer = setTimeout(function () {\n debug('connect attempt timed out after %d', timeout);\n openSub.destroy();\n socket.close();\n socket.emit('error', 'timeout');\n self.emitAll('connect_timeout', timeout);\n }, timeout);\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n this.subs.push(openSub);\n this.subs.push(errorSub);\n return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n debug('open');\n\n // clear old subs\n this.cleanup();\n\n // mark as open\n this.readyState = 'open';\n this.emit('open');\n\n // add new subs\n var socket = this.engine;\n this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n this.lastPing = new Date();\n this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n debug('error', err);\n this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n var socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n var self = this;\n socket.on('connecting', onConnecting);\n socket.on('connect', function () {\n socket.id = self.generateId(nsp);\n });\n if (this.autoConnect) {\n // manually call here since connecting event is fired before listening\n onConnecting();\n }\n }\n function onConnecting() {\n if (!~indexOf(self.connecting, socket)) {\n self.connecting.push(socket);\n }\n }\n return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n var index = indexOf(this.connecting, socket);\n if (~index) this.connecting.splice(index, 1);\n if (this.connecting.length) return;\n this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n debug('writing packet %j', packet);\n var self = this;\n if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n if (!self.encoding) {\n // encode, then write to engine with result\n self.encoding = true;\n this.encoder.encode(packet, function (encodedPackets) {\n for (var i = 0; i < encodedPackets.length; i++) {\n self.engine.write(encodedPackets[i], packet.options);\n }\n self.encoding = false;\n self.processPacketQueue();\n });\n } else {\n // add packet to the queue\n self.packetBuffer.push(packet);\n }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n if (this.packetBuffer.length > 0 && !this.encoding) {\n var pack = this.packetBuffer.shift();\n this.packet(pack);\n }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n debug('cleanup');\n var subsLength = this.subs.length;\n for (var i = 0; i < subsLength; i++) {\n var sub = this.subs.shift();\n sub.destroy();\n }\n this.packetBuffer = [];\n this.encoding = false;\n this.lastPing = null;\n this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close = Manager.prototype.disconnect = function () {\n debug('disconnect');\n this.skipReconnect = true;\n this.reconnecting = false;\n if ('opening' === this.readyState) {\n // `onclose` will not fire because\n // an open event never happened\n this.cleanup();\n }\n this.backoff.reset();\n this.readyState = 'closed';\n if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n debug('onclose');\n this.cleanup();\n this.backoff.reset();\n this.readyState = 'closed';\n this.emit('close', reason);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n if (this.reconnecting || this.skipReconnect) return this;\n var self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n debug('reconnect failed');\n this.backoff.reset();\n this.emitAll('reconnect_failed');\n this.reconnecting = false;\n } else {\n var delay = this.backoff.duration();\n debug('will wait %dms before reconnect attempt', delay);\n this.reconnecting = true;\n var timer = setTimeout(function () {\n if (self.skipReconnect) return;\n debug('attempting reconnect');\n self.emitAll('reconnect_attempt', self.backoff.attempts);\n self.emitAll('reconnecting', self.backoff.attempts);\n\n // check again for the case socket closed in above events\n if (self.skipReconnect) return;\n self.open(function (err) {\n if (err) {\n debug('reconnect attempt error');\n self.reconnecting = false;\n self.reconnect();\n self.emitAll('reconnect_error', err.data);\n } else {\n debug('reconnect success');\n self.onreconnect();\n }\n });\n }, delay);\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n var attempt = this.backoff.attempts;\n this.reconnecting = false;\n this.backoff.reset();\n this.updateSocketIds();\n this.emitAll('reconnect', attempt);\n};","/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n * `io('http://localhost/a');`\n * `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup(uri, opts) {\n if (typeof uri === 'object') {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n var parsed = url(uri);\n var source = parsed.source;\n var id = parsed.id;\n var path = parsed.path;\n var sameNamespace = cache[id] && path in cache[id].nsps;\n var newConnection = opts.forceNew || opts['force new connection'] || false === opts.multiplex || sameNamespace;\n var io;\n if (newConnection) {\n debug('ignoring socket cache for %s', source);\n io = Manager(source, opts);\n } else {\n if (!cache[id]) {\n debug('new io instance for %s', source);\n cache[id] = Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.query;\n }\n return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');","<div class=\"indicator indicator-left\" *ngIf=\"indicator\" [ngStyle]=\"{ 'background-color': teamColors && teamColors[0] }\"></div>\n<div class=\"participant participant-left\">\n <div class=\"participant-title\">{{ event.participants[0].name }}</div>\n <div class=\"serving\" *ngIf=\"score.currentlyServing === 1\"></div>\n</div>\n\n<div class=\"info\" *ngIf=\"!inColumn\">\n <div class=\"score\" *ngIf=\"event.sport.id === sportType.Tennis && tennisScore && event.scoreboard.started\">\n <div class=\"header\">\n <div class=\"set-score\">{{ sitecoreEventDetails.eventDetails.Sets }} {{ tennisScore.setScore }}</div>\n <div class=\"event-time\">\n <div class=\"set-point\">{{ tennisScore.period }} {{ tennisScore.setPoint }}</div>\n </div>\n </div>\n </div>\n <div class=\"score\" *ngIf=\"event.sport.id === sportType.Soccer\">\n <span class=\"score-counter\">{{ score.participant1 }}</span>\n <span class=\"score-separator\">-</span>\n <span class=\"score-counter\">{{ score.participant2 }}</span>\n </div>\n <div class=\"score\" *ngIf=\"event.sport.id === sportType.Basketball\">\n <span class=\"score-counter\">{{ periodGameScore.participant1.total }}</span>\n <span class=\"score-separator\">-</span>\n <span class=\"score-counter\">{{ periodGameScore.participant2.total }}</span>\n </div>\n <ms-event-timer class=\"timer\" *ngIf=\"isTimerVisible\" [live]=\"event.live\" [start]=\"event.startDate\" [scoreboard]=\"event.scoreboard\">\n </ms-event-timer>\n</div>\n<div class=\"participant participant-right\">\n <div class=\"participant-title\">{{ event.participants[1].name }}</div>\n <div class=\"serving\" *ngIf=\"score.currentlyServing === 2\"></div>\n</div>\n<div class=\"indicator indicator-right\" *ngIf=\"indicator\" [ngStyle]=\"{ 'background-color': teamColors && teamColors[1] }\"></div>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport {\n EventModel,\n EventScoreboard,\n PairGameScore,\n PeriodGameScore,\n SetGameScore,\n isBespokeSport,\n} from '@frontend/sports/betting-offer/feature/model';\nimport { ScoreboardBackgroundConfig, SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\n\n@Component({\n selector: 'ms-event-header',\n templateUrl: 'event-header.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EventHeaderComponent implements OnChanges {\n @Input() event: EventModel;\n @Input() indicator = true;\n @Input() teamColors: string[];\n @Input() isTimerVisible: boolean;\n @Input() scoreboard: EventScoreboard;\n\n @HostBinding('class') className = 'event-header';\n @HostBinding('style.background-image') bgImage?: string;\n\n @Input() inColumn = false;\n\n sportType = SportConstant;\n\n constructor(\n public sitecoreEventDetails: SitecoreEventDetailsConfig,\n private scoreboardBackgrounds: ScoreboardBackgroundConfig,\n ) {}\n\n ngOnChanges(): void {\n if (this.inColumn) {\n this.bgImage = undefined;\n } else {\n const isBespokesport = isBespokeSport(this.event.sport.id, this.event.sport.isEsport);\n const bgImageSrc = this.scoreboardBackgrounds.backgrounds.find((x) => x.sportId === this.event.sport.id);\n if (isBespokesport && bgImageSrc) {\n this.bgImage = `url(${bgImageSrc.src})`;\n } else {\n this.bgImage = undefined;\n }\n }\n }\n\n get score(): PairGameScore {\n return this.scoreboard.getScore<PairGameScore>()!;\n }\n\n get tennisScore(): SetGameScore {\n return this.scoreboard.getScore<SetGameScore>()!;\n }\n\n get periodGameScore(): PeriodGameScore {\n return this.event.scoreboard.getScore<PeriodGameScore>()!;\n }\n}\n","export interface LiveSoccerStatisticsItem {\n value1: number;\n value2: number;\n wholeValue?: number;\n IsDisabledWithNoData?: boolean;\n}\n\nexport interface LiveSoccerStatistics {\n dangerousAttacks: LiveSoccerStatisticsItem | null;\n attacks: LiveSoccerStatisticsItem | null;\n totalShots: LiveSoccerStatisticsItem | null;\n shotsOnTarget: LiveSoccerStatisticsItem | null;\n freeKicks: LiveSoccerStatisticsItem | null;\n}\n\nexport interface SummaryStatistics {\n redcards?: number;\n yellowcards?: number;\n corners?: number;\n}\n\nexport interface StatisticsCard {\n cardName: string;\n class?: string;\n participant1: number;\n participant2: number;\n shirtColor1?: string;\n shirtColor2?: string;\n suffix?: string;\n icon?: string;\n}\n\nexport class PerformStatisticsItem {\n title: string;\n values: LiveSoccerStatisticsItem;\n colors: string[];\n}\n\nexport class StatisticsTab {\n id: number;\n title: string;\n active: boolean;\n enabled: boolean;\n forceDisabled? = false;\n}\n\nexport enum LiveTennisStatsTabType {\n FirstSet = 1,\n SecondSet = 2,\n ThirdSet = 3,\n FourthSet = 4,\n FifthhSet = 5,\n RegularTime = 6,\n}\n\nexport class LiveTennisStatsTab extends StatisticsTab {\n period: string;\n flash?: boolean;\n}\n\nexport enum LiveBasketBallStatsTabType {\n FirstQuarter = 1,\n SecondQuarter = 3,\n ThirdQuarter = 5,\n FourthQuarter = 7,\n RegularTime = 9,\n}\n\nexport class LiveStatisticsTab extends StatisticsTab {\n period: string;\n flash?: boolean;\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\n\nimport { LiveSoccerStatisticsItem } from '../models';\n\ninterface BarStyles {\n width?: string;\n backgroundColor?: string;\n}\n\n@Component({\n selector: 'ms-perform-statistics-item',\n templateUrl: 'perform-statistics-item.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PerformStatisticsItemComponent implements OnChanges {\n @Input() statistics: LiveSoccerStatisticsItem;\n @Input() title: string;\n @Input() teamColors: string[];\n\n @HostBinding('class') className = 'perform-statistics-item';\n\n styles1: BarStyles = {};\n styles2: BarStyles = {};\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.statistics.IsDisabledWithNoData) {\n this.updateBars(0, 0);\n\n return;\n }\n if (changes['statistics']) {\n this.calculateDimensions();\n }\n }\n\n private calculateDimensions(): void {\n const leftValue = this.statistics.value1;\n const rightValue = this.statistics.value2;\n let firstPlayerPercentage = 0;\n let secondPlayerPercentage = 0;\n if (leftValue || rightValue) {\n if (this.statistics.wholeValue) {\n firstPlayerPercentage = (leftValue / this.statistics.wholeValue) * 100;\n secondPlayerPercentage = (rightValue / this.statistics.wholeValue) * 100;\n } else {\n const percentagePart = 100 / (leftValue + rightValue);\n firstPlayerPercentage = percentagePart * leftValue;\n secondPlayerPercentage = percentagePart * rightValue;\n }\n this.updateBars(firstPlayerPercentage, secondPlayerPercentage);\n } else {\n this.updateBars(0, 0);\n }\n }\n\n private updateBars(left: number, right: number): void {\n this.styles1.width = `${left}%`;\n this.styles2.width = `${right}%`;\n\n if (this.teamColors) {\n this.styles1.backgroundColor = this.teamColors[0];\n this.styles2.backgroundColor = this.teamColors[1];\n }\n }\n}\n","<div class=\"title\" [ngClass]=\"statistics.IsDisabledWithNoData ? 'title-disabled' : ''\">{{ title }}</div>\n<div class=\"bar\">\n <div class=\"count count-left\">{{ !statistics.IsDisabledWithNoData ? statistics.value1 : '' }}</div>\n <div class=\"bar-container bar-left\"><div class=\"bar-fill\" [ngStyle]=\"styles1\"></div></div>\n <div class=\"bar-container bar-right\"><div class=\"bar-fill\" [ngStyle]=\"styles2\"></div></div>\n <div class=\"count count-right\">{{ !statistics.IsDisabledWithNoData ? statistics.value2 : '' }}</div>\n</div>\n","<ul class=\"tab-list\">\n <li class=\"tab-container\" *ngFor=\"let tab of tabs; let i = index; last as isLast\" (click)=\"setActive(tab)\">\n <div class=\"tab-title\" [class.disabled]=\"!tab.enabled && tab.forceDisabled\" [class.active]=\"tab.active\">\n <span class=\"title\">{{ tab.title }}</span>\n <span class=\"title-linecolor\"></span>\n </div>\n\n <div class=\"stats-separator\" *ngIf=\"!isLast\"></div>\n </li>\n</ul>\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, OnChanges, Output } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { EpcotModule } from '../common/epcot-config.service';\nimport { StatisticsTab } from './models';\n\n@Component({\n selector: 'ms-statistics-navigation',\n templateUrl: 'statistics-navigation.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StatisticsNavigationComponent implements OnChanges {\n @Input() tabs: StatisticsTab[];\n @Input() event: EventModel;\n @Output() change = new EventEmitter<StatisticsTab>();\n @HostBinding('class') className = 'statistics-navigation';\n module = EpcotModule.Statsindicator;\n initialActiveTab = '';\n constructor(private trackingService: TrackingService) {}\n ngOnChanges(): void {\n this.initialActiveTab = this.tabs.find((t) => t.active)?.title || '';\n }\n\n setActive(activeTab: StatisticsTab): void {\n if (!activeTab.enabled && activeTab.forceDisabled) {\n return;\n }\n this.tabs.forEach((tab) => (tab.active = tab === activeTab));\n this.change.emit(activeTab);\n this.trackStatsNavigation(activeTab.title);\n this.initialActiveTab = activeTab.title;\n }\n\n private trackStatsNavigation(title: string): void {\n this.trackingService.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'scoreboard',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'stats',\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: title,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: this.initialActiveTab,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.event.name,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n });\n }\n}\n","<div class=\"stat-card\">\n <div class=\"card-name\">{{ card.cardName }}</div>\n <div class=\"stats\">\n <div class=\"participant participant-left\">\n <div class=\"score\">\n <span>{{ card.participant1 }}</span> <span class=\"shirt-color\" [ngStyle]=\"player1Jersey\"></span>\n </div>\n @if (card.suffix) {\n <div>{{ card.suffix }}</div>\n }\n </div>\n <div class=\"card-icon\" [ngClass]=\"card.icon\"><vn-icon size=\"12\" [name]=\"card.class\"></vn-icon></div>\n <div class=\"participant\">\n <div class=\"score\">\n <span>{{ card.participant2 }}</span> <span class=\"shirt-color\" [ngStyle]=\"player2Jersey\"></span>\n </div>\n @if (card.suffix) {\n <div>{{ card.suffix }}</div>\n }\n </div>\n </div>\n</div>\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\n\nimport { StatisticsCard } from '../../models';\n\ninterface ShirtColor {\n backgroundColor?: string;\n}\n\n@Component({\n selector: 'ms-live-statistics-card',\n templateUrl: 'live-statistics-card.html',\n})\nexport class LiveStatisticsCardComponent implements OnInit, OnChanges {\n @Input() card: StatisticsCard;\n\n player1Jersey: ShirtColor = {};\n player2Jersey: ShirtColor = {};\n\n ngOnInit(): void {\n this.setJersyColors();\n }\n\n ngOnChanges(): void {\n this.setJersyColors();\n }\n\n private setJersyColors(): void {\n this.player1Jersey.backgroundColor = this.card.shirtColor1;\n this.player2Jersey.backgroundColor = this.card.shirtColor2;\n }\n}\n","@if (statistics) {\n @if (expand) {\n <ms-statistics-navigation [tabs]=\"tabList\" [event]=\"event\" (change)=\"tabChange($event)\"> </ms-statistics-navigation>\n }\n <div class=\"basketball-cards\">\n @if (expand) {\n <div class=\"points-card\"><ms-live-statistics-card [card]=\"pointsCard\"></ms-live-statistics-card></div>\n }\n <div class=\"live-stats\">\n <div class=\"live-stat-card\" *ngFor=\"let card of cards\"><ms-live-statistics-card [card]=\"card\"></ms-live-statistics-card></div>\n </div>\n </div>\n @if (expand) {\n <div class=\"perform-statistics\">\n @for (performRaceStat of performRaceStats; track performRaceStat) {\n <ms-perform-statistics-item\n [statistics]=\"performRaceStat.values\"\n [teamColors]=\"performRaceStat.colors\"\n [title]=\"performRaceStat.title\">\n </ms-perform-statistics-item>\n }\n </div>\n }\n}\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\nimport { BasketballStatistics, EventModel, EventParticipant, EventScoreboard, PeriodGameScore } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore, SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { EventDetailsModel } from '@frontend/sports/types/configuration/client-configuration';\n\nimport { LiveBasketBallStatsTabType, LiveStatisticsTab, PerformStatisticsItem, StatisticsCard } from '../models';\n\n@Component({\n selector: 'ms-live-basketball-statistics',\n templateUrl: 'live-basketball-statistics.html',\n})\nexport class LiveBasketballStatisticsComponent implements OnInit, OnChanges {\n @Input() scoreboard: EventScoreboard;\n @Input() event: EventModel;\n @Input() expand = false;\n @Input() showVisitStatCenter: boolean;\n @Input() hasStats: boolean;\n @Input() teamColors: string[];\n @HostBinding()\n get class(): string {\n if (!this.expand) {\n return 'live-basketball-statistics live-basketball-statistics-collapsed';\n } else if (!this.hasStats) {\n return 'live-basketball-statistics no-pre-match-expanded';\n }\n\n return 'live-basketball-statistics';\n }\n\n get statistics(): BasketballStatistics {\n return this.scoreboard.statistics as BasketballStatistics;\n }\n\n tab: LiveStatisticsTab;\n tabList: LiveStatisticsTab[];\n tabType = LiveBasketBallStatsTabType;\n cards: StatisticsCard[];\n pointsCard: StatisticsCard = {\n cardName: this.sitecore.statistics.Points,\n class: 'sports-sb-score-b',\n participant1: 0,\n participant2: 0,\n };\n\n races: StatisticsCard[];\n performRaceStats: PerformStatisticsItem[];\n constructor(\n public sitecore: Sitecore,\n public sitecoreEventDetails: SitecoreEventDetailsConfig,\n ) {}\n\n ngOnInit(): void {\n this.initTabs();\n this.setTabs();\n this.setCards();\n this.setCardsCount();\n this.setTeamColors();\n this.setPerformStats();\n }\n\n initTabs(): void {\n const gameType = (this.scoreboard.score as PeriodGameScore).matchType;\n if (gameType === 2) {\n // Quarters game\n this.tabList = [\n this.getTab('FirstQuarter', 'firstQuarter', this.tabType.FirstQuarter),\n this.getTab('SecondQuarter', 'secondQuarter', this.tabType.SecondQuarter),\n this.getTab('ThirdQuarter', 'thirdQuarter', this.tabType.ThirdQuarter),\n this.getTab('FourthQuarter', 'fourthQuarter', this.tabType.FourthQuarter),\n this.getTab('regularTime', 'regularTime', this.tabType.RegularTime),\n ];\n } else {\n // halves game\n this.tabList = [\n this.getTab('FirstQuarter', 'firstQuarter', this.tabType.FirstQuarter),\n this.getTab('SecondQuarter', 'secondQuarter', this.tabType.SecondQuarter),\n this.getTab('regularTime', 'regularTime', this.tabType.RegularTime),\n ];\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const scoreboardChange = changes['scoreboard'];\n\n if (scoreboardChange && !scoreboardChange.firstChange) {\n this.setTabs();\n this.setCardsCount();\n this.setPerformStats();\n }\n }\n\n private getValue(target: { [key: string]: any }, participant: number): number {\n if (!target || !this.tab || !this.tab.period) {\n return 0;\n }\n\n if (this.tab.period in target) {\n return target[this.tab.period][`participant${participant + 1}`] || 0;\n }\n\n return 0;\n }\n\n private setCardsCount(): void {\n this.event.participants.map((item: EventParticipant, index: number) => {\n this.cards[0][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.threePointers ? this.statistics.threePointers : [],\n index,\n );\n this.cards[1][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.twoPointers ? this.statistics.twoPointers : [],\n index,\n );\n\n if (this.statistics.freeThrows && this.statistics.freeThrowsTotal) {\n const totalFreeThrows = this.getValue(this.statistics.freeThrowsTotal, index);\n const freeThrowsScored = this.getValue(this.statistics.freeThrows, index);\n this.cards[2][`participant${index + 1}` as 'participant1' | 'participant2'] =\n totalFreeThrows === 0 || freeThrowsScored === 0 ? 0 : Number(((freeThrowsScored / totalFreeThrows) * 100).toFixed());\n }\n\n this.cards[3][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.fouls ? this.statistics.fouls : [],\n index,\n );\n if (this.statistics.rebounds) {\n this.cards[4][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(this.statistics.rebounds, index);\n }\n if (this.statistics.assists) {\n this.cards[5][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(this.statistics.assists, index);\n }\n this.pointsCard[`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.points ? this.statistics.points : [],\n index,\n );\n this.races[0][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.raceTo10 ? this.statistics.raceTo10 : [],\n index,\n );\n this.races[1][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.raceTo20 ? this.statistics.raceTo20 : [],\n index,\n );\n });\n }\n\n private setCards(): void {\n this.cards = [\n { cardName: this.sitecoreEventDetails.eventDetails.ThreePointers, class: 'sports-sb-3point-b', participant1: 0, participant2: 0 },\n { cardName: this.sitecoreEventDetails.eventDetails.TwoPointers, class: 'sports-sb-2point-b', participant1: 0, participant2: 0 },\n {\n cardName: this.sitecoreEventDetails.eventDetails.FreeThrows,\n class: 'sports-sb-freethrow-b',\n participant1: 0,\n participant2: 0,\n suffix: '%',\n },\n { cardName: this.sitecoreEventDetails.eventDetails.FoulsCommitted, class: 'sports-sb-foul', participant1: 0, participant2: 0 },\n ];\n\n if (this.statistics.rebounds) {\n this.cards.push({\n cardName: this.sitecoreEventDetails.eventDetails.ReBounds,\n class: 'sports-sb-rebound',\n participant1: 0,\n participant2: 0,\n });\n }\n if (this.statistics.assists) {\n this.cards.push({\n cardName: this.sitecoreEventDetails.eventDetails.Assists,\n class: 'sports-sb-assist-b',\n participant1: 0,\n participant2: 0,\n });\n }\n\n this.races = [\n { cardName: this.sitecore.statistics.RaceTo10, participant1: 0, participant2: 0 },\n { cardName: this.sitecore.statistics.RaceTo20, participant1: 0, participant2: 0 },\n ];\n }\n\n private setTeamColors(): void {\n const homeTeamColor = this.teamColors[0];\n const awayTeamColor = this.teamColors[1];\n this.pointsCard.shirtColor1 = homeTeamColor;\n this.pointsCard.shirtColor2 = awayTeamColor;\n this.races.map((race: StatisticsCard) => {\n race.shirtColor1 = homeTeamColor;\n race.shirtColor2 = awayTeamColor;\n });\n this.cards.map((card: StatisticsCard) => {\n card.shirtColor1 = homeTeamColor;\n card.shirtColor2 = awayTeamColor;\n });\n }\n\n private setTabs(): void {\n if (!this.scoreboard.statistics) {\n return;\n }\n\n const periods = this.statistics.points || {};\n const previous = this.tabList ? this.tabList.slice() : [];\n const previousActive = previous\n .filter((tab) => tab.active)\n .map((tab) => tab.id)\n .pop();\n\n this.tab = previousActive\n ? (previous.filter((tab) => tab.id === previousActive && tab.enabled).pop() as LiveStatisticsTab)\n : (previous.filter((tab) => this.scoreboard.period && tab.id === this.scoreboard.period.id && tab.enabled).pop() as LiveStatisticsTab);\n\n if (!this.tab) {\n this.tab = previous.filter((tab) => tab.enabled).pop() as LiveStatisticsTab;\n }\n\n this.tabList.forEach((tab, index) => {\n tab.active = tab === this.tab;\n tab.enabled =\n tab.id === this.tabType.RegularTime && this.scoreboard.period && this.scoreboard.period.id === this.tabType.FirstQuarter\n ? false\n : tab.period in periods;\n tab.flash = tab.enabled !== previous[index].enabled;\n });\n }\n\n private getTab(title: keyof EventDetailsModel, period: string, type: LiveBasketBallStatsTabType): LiveStatisticsTab {\n const periods = this.statistics.points || {};\n\n return {\n id: type,\n title: this.sitecoreEventDetails.eventDetails[title],\n enabled: period in periods,\n active: false,\n period,\n forceDisabled: true,\n };\n }\n\n tabChange(actvieTab: LiveStatisticsTab): void {\n this.tab = actvieTab;\n this.setCardsCount();\n this.setPerformStats();\n }\n\n private setPerformStats(): void {\n this.performRaceStats = [];\n\n if (!(this.races && this.races.length > 0)) {\n return;\n }\n\n this.races.forEach((card) => {\n const perfStat = new PerformStatisticsItem();\n perfStat.title = card.cardName;\n perfStat.colors = [];\n if (card.shirtColor1) {\n perfStat.colors.push(card.shirtColor1);\n }\n if (card.shirtColor2) {\n perfStat.colors.push(card.shirtColor2);\n }\n perfStat.values = { value1: card.participant1, value2: card.participant2 };\n this.performRaceStats.push(perfStat);\n });\n\n if (!(this.performRaceStats && this.performRaceStats.length > 0)) {\n return;\n }\n\n if (this.performRaceStats[0] && this.performRaceStats[0].values) {\n this.performRaceStats[0].values.wholeValue = 10;\n this.performRaceStats[0].values.IsDisabledWithNoData = Boolean(this.tab && this.tab.id === this.tabType.RegularTime);\n }\n\n if (this.performRaceStats[1] && this.performRaceStats[1].values) {\n this.performRaceStats[1].values.wholeValue = 20;\n this.performRaceStats[1].values.IsDisabledWithNoData = Boolean(this.tab && this.tab.id === this.tabType.RegularTime);\n }\n }\n}\n","@if (statistics) {\n @if (expand) {\n <ms-statistics-navigation [tabs]=\"tabList\" [event]=\"event\" (change)=\"tabChange($event)\"> </ms-statistics-navigation>\n }\n <div class=\"live-stats\">\n @for (card of cards; track card) {\n <div class=\"live-stat-card\"><ms-live-statistics-card [card]=\"card\"></ms-live-statistics-card></div>\n }\n </div>\n}\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\nimport { EventModel, EventParticipant, EventScoreboard, FootballStats } from '@frontend/sports/betting-offer/feature/model';\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { EventDetailsModel } from '@frontend/sports/types/configuration/client-configuration';\n\nimport { LiveStatisticsTab, StatisticsCard } from '../models';\n\nexport enum LiveStatisticsTabType {\n FirstHalf = 1,\n SecondHalf = 2,\n RegularTime = 3,\n ExtraTime = 4,\n}\n\n@Component({\n selector: 'ms-live-football-statistics',\n templateUrl: 'live-football-statistics.html',\n})\nexport class LiveFootballStatisticsComponent implements OnInit, OnChanges {\n @Input() scoreboard: EventScoreboard;\n @Input() event: EventModel;\n @Input() expand: boolean;\n @Input() hasStats: boolean;\n @Input() showVisitStatCenter: boolean;\n @Input() teamColors: string[];\n @HostBinding()\n get class(): string {\n if (!this.expand) {\n return 'live-football-statistics live-football-statistics-collapsed';\n } else if (!this.hasStats && this.expand) {\n return 'live-football-statistics no-pre-match-expanded';\n }\n\n return 'live-football-statistics';\n }\n\n get statistics(): FootballStats {\n return this.scoreboard.statistics as FootballStats;\n }\n\n tab: LiveStatisticsTab;\n tabList: LiveStatisticsTab[];\n tabType = LiveStatisticsTabType;\n cards: StatisticsCard[];\n\n constructor(public sitecoreEventDetails: SitecoreEventDetailsConfig) {}\n\n ngOnInit(): void {\n this.tabList = [\n this.getTab('firstHalf', this.tabType.FirstHalf),\n this.getTab('secondHalf', this.tabType.SecondHalf),\n this.getTab('regularTime', this.tabType.RegularTime),\n ];\n this.updateTabsWhenExtraTime();\n this.setTabs();\n this.setCards();\n this.setCardsCount();\n this.setTeamColors();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const scoreboardChange = changes['scoreboard'];\n this.updateTabsWhenExtraTime();\n if (scoreboardChange && !scoreboardChange.firstChange) {\n this.setTabs();\n this.setCards();\n this.setCardsCount();\n this.setTeamColors();\n }\n }\n\n getValue(target: { [key: string]: any }, participant: number): number {\n if (!target || !this.tab || !this.tab.period) {\n return 0;\n }\n\n if (this.tab.period in target) {\n return target[this.tab.period][`participant${participant + 1}`] || 0;\n }\n return 0;\n }\n\n private updateTabsWhenExtraTime(): void {\n if (!!this.scoreboard.period && !!this.scoreboard.period.id && this.scoreboard.period.id >= 4) {\n this.tabList = [this.getTab('regularTime', this.tabType.RegularTime), this.getTab('extraTime', this.tabType.ExtraTime)];\n this.tabList.forEach((tab, index) => {\n tab.active = tab.id === LiveStatisticsTabType.ExtraTime;\n });\n }\n }\n\n private setCardsCount(): void {\n this.event.participants.map((item: EventParticipant, index: number) => {\n this.cards[0][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.yellowcards ? this.statistics.yellowcards : [],\n index,\n );\n this.cards[1][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.goals ? this.statistics.goals : [],\n index,\n );\n this.cards[2][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.corners ? this.statistics.corners : [],\n index,\n );\n this.cards[3][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.redcards ? this.statistics.redcards : [],\n index,\n );\n this.cards[4][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.penalties ? this.statistics.penalties : [],\n index,\n );\n this.cards[5][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.substitutions ? this.statistics.substitutions : [],\n index,\n );\n });\n }\n\n private setCards(): void {\n this.cards = [];\n this.cards = [\n {\n cardName: this.sitecoreEventDetails.eventDetails.YellowCards,\n class: 'sports-sb-card',\n icon: 'yellow',\n participant1: 0,\n participant2: 0,\n },\n { cardName: this.sitecoreEventDetails.eventDetails.Goals, class: 'sports-4', participant1: 0, participant2: 0 },\n { cardName: this.sitecoreEventDetails.eventDetails.Corners, class: 'sports-sb-corner', participant1: 0, participant2: 0 },\n { cardName: this.sitecoreEventDetails.eventDetails.RedCards, class: 'sports-sb-card', icon: 'red', participant1: 0, participant2: 0 },\n { cardName: this.sitecoreEventDetails.eventDetails.Penalties, class: 'sports-sb-penalty-f', participant1: 0, participant2: 0 },\n { cardName: this.sitecoreEventDetails.eventDetails.Substitutions, class: 'sports-sb-substitution', participant1: 0, participant2: 0 },\n ];\n }\n\n private setTeamColors(): void {\n const homeTeamColor = this.teamColors[0];\n const awayTeamColor = this.teamColors[1];\n this.cards.map((card: StatisticsCard) => {\n card.shirtColor1 = homeTeamColor;\n card.shirtColor2 = awayTeamColor;\n });\n }\n\n private setTabs(): void {\n if (!this.scoreboard.statistics) {\n return;\n }\n\n const periods = this.statistics.goals || {};\n const previous = this.tabList ? this.tabList.slice() : [];\n const previousActive = previous\n .filter((tab) => tab.active)\n .map((tab) => tab.id)\n .pop();\n\n this.tab = previous.filter((tab) => (tab.id === previousActive && tab.enabled) || tab.enabled).pop() as LiveStatisticsTab;\n\n this.tabList.forEach((tab, index) => {\n tab.active = tab === this.tab;\n tab.enabled = tab.period in periods;\n tab.flash = tab.enabled !== previous[index].enabled;\n });\n }\n\n private getTab(period: keyof EventDetailsModel, type: LiveStatisticsTabType): LiveStatisticsTab {\n const periods = this.statistics.goals || {};\n\n return {\n id: type,\n title: this.sitecoreEventDetails.eventDetails[period],\n enabled: period in periods,\n active: false,\n period,\n forceDisabled: true,\n };\n }\n\n tabChange(actvieTab: LiveStatisticsTab): void {\n this.tab = actvieTab;\n this.setCardsCount();\n }\n}\n","<ng-container *ngIf=\"statistics\">\n <ms-statistics-navigation *ngIf=\"expand\" [tabs]=\"tabList\" [event]=\"event\" (change)=\"tabChange($event)\"> </ms-statistics-navigation>\n <div class=\"perform-statistics\" [ngClass]=\"!hasStats ? 'perform-statistics-no-prematch' : ''\">\n <ms-perform-statistics-item\n *ngFor=\"let performStat of performStats\"\n [statistics]=\"performStat.values\"\n [teamColors]=\"performStat.colors\"\n [title]=\"performStat.title\">\n </ms-perform-statistics-item>\n <div *ngIf=\"expand\">\n <ms-perform-statistics-item\n *ngFor=\"let performStat of performRaceStats\"\n [statistics]=\"performStat.values\"\n [teamColors]=\"performStat.colors\"\n [title]=\"performStat.title\">\n </ms-perform-statistics-item>\n </div>\n </div>\n</ng-container>\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\nimport { EventModel, EventParticipant, EventScoreboard, TennisScore, TennisStats } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore, SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SitecoreStatistics } from '@frontend/sports/types/components/sitecore';\n\nimport { LiveTennisStatsTab, LiveTennisStatsTabType, PerformStatisticsItem, StatisticsCard } from '../models';\n\n@Component({\n selector: 'ms-live-tennis-statistics',\n templateUrl: 'live-tennis-statistics.html',\n})\nexport class LiveTennisStatisticsComponent implements OnChanges, OnInit {\n @Input() participants: EventParticipant[];\n @Input() scoreboard: EventScoreboard;\n @Input() event: EventModel;\n @Input() inColumn = false;\n @Input() expand = false;\n @Input() showVisitStatCenter: boolean;\n @Input() hasStats: boolean;\n @Input() teamColors: string[];\n\n @HostBinding()\n get class(): string {\n if (!this.expand) {\n return 'live-tennis-statistics-collapsed';\n } else if (this.showVisitStatCenter) {\n return 'live-tennis-statistics no-pre-match-expanded';\n }\n\n return 'live-tennis-statistics';\n }\n\n cards: StatisticsCard[];\n races: StatisticsCard[];\n tab: LiveTennisStatsTab;\n tabList: LiveTennisStatsTab[];\n tabType = LiveTennisStatsTabType;\n performStats: PerformStatisticsItem[];\n performRaceStats: PerformStatisticsItem[];\n\n get statistics(): TennisStats {\n return this.scoreboard.statistics as TennisStats;\n }\n\n get score(): TennisScore {\n return this.scoreboard.getScore<TennisScore>()!;\n }\n\n constructor(\n public sitecore: Sitecore,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n ) {}\n\n ngOnInit(): void {\n this.initTabs();\n this.setTabs();\n this.setCards();\n this.setCardsCount();\n this.setTeamColors();\n this.setPerformStats();\n }\n\n initTabs(): void {\n if (this.scoreboard.period!.id! > 3 && this.scoreboard.period!.id! < 6) {\n this.tabList = [\n this.getTab('firstSet', this.tabType.FirstSet),\n this.getTab('secondSet', this.tabType.SecondSet),\n this.getTab('thirdSet', this.tabType.ThirdSet),\n this.getTab('fourthSet', this.tabType.FourthSet),\n this.getTab('fifthSet', this.tabType.FifthhSet),\n this.getTab('regularTime', this.tabType.RegularTime),\n ];\n } else {\n this.tabList = [\n this.getTab('firstSet', this.tabType.FirstSet),\n this.getTab('secondSet', this.tabType.SecondSet),\n this.getTab('thirdSet', this.tabType.ThirdSet),\n this.getTab('regularTime', this.tabType.RegularTime),\n ];\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const scoreboardChange = changes['scoreboard'];\n const isNewEvent =\n changes['event'] &&\n changes['event'].currentValue &&\n changes['event'].previousValue &&\n changes['event'].currentValue.id !== changes['event'].previousValue.id;\n\n if (isNewEvent) {\n this.initTabs();\n }\n\n if (scoreboardChange && !scoreboardChange.firstChange) {\n this.setTabs();\n this.setCardsCount();\n this.setPerformStats();\n }\n }\n\n private getValue(target: { [key: string]: any }, participant: number): number {\n if (!target || !this.tab || !this.tab.period) {\n return 0;\n }\n\n if (this.tab.period in target) {\n return target[this.tab.period][`participant${participant + 1}`] || 0;\n }\n\n return 0;\n }\n\n private setCardsCount(): void {\n this.participants.map((item: EventParticipant, index: number) => {\n this.cards[0][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.aces ? this.statistics.aces : [],\n index,\n );\n this.cards[1][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.doubleFaults ? this.statistics.doubleFaults : [],\n index,\n );\n this.cards[2][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.breaks ? this.statistics.breaks : [],\n index,\n );\n this.cards[3][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.winPointsPercentage ? this.statistics.winPointsPercentage : [],\n index,\n );\n\n this.races[0][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.raceTo15 ? this.statistics.raceTo15 : [],\n index,\n );\n this.races[1][`participant${index + 1}` as 'participant1' | 'participant2'] = this.getValue(\n this.statistics.raceTo20 ? this.statistics.raceTo20 : [],\n index,\n );\n });\n }\n\n private setCards(): void {\n this.cards = [\n { cardName: this.sitecoreEventDetails.eventDetails['Statistics.Aces'], participant1: 0, participant2: 0 },\n { cardName: this.sitecoreEventDetails.eventDetails['Statistics.DoubleFaults'], participant1: 0, participant2: 0 },\n { cardName: this.sitecoreEventDetails.eventDetails['Statistics.Breaks'], participant1: 0, participant2: 0 },\n { cardName: `${this.sitecoreEventDetails.eventDetails['Statistics.ServicePointsWon']} %`, participant1: 0, participant2: 0 },\n ];\n this.races = [\n { cardName: this.sitecore.statistics.RaceTo15, participant1: 0, participant2: 0 },\n { cardName: this.sitecore.statistics.RaceTo20, participant1: 0, participant2: 0 },\n ];\n }\n\n private setTeamColors(): void {\n const homeTeamColor = this.teamColors[0];\n const awayTeamColor = this.teamColors[1];\n this.cards.map((card: StatisticsCard) => {\n card.shirtColor1 = homeTeamColor;\n card.shirtColor2 = awayTeamColor;\n });\n }\n\n private setTabs(): void {\n if (!this.scoreboard.statistics) {\n return;\n }\n\n const periods = this.statistics.aces || {};\n const previous = this.tabList ? this.tabList.slice() : [];\n const previousActive = previous\n .filter((tab) => tab.active)\n .map((tab) => tab.id)\n .pop();\n\n if (previousActive) {\n this.tab = previous.filter((tab) => tab.id === previousActive && tab.enabled).pop() as LiveTennisStatsTab;\n } else {\n this.tab = previous\n .filter((tab) => this.scoreboard.period && tab.id === this.scoreboard.period.id && tab.enabled)\n .pop() as LiveTennisStatsTab;\n if (this.tab) {\n this.tab.title =\n this.tab.id !== this.tabType.RegularTime\n ? `${this.sitecore.statistics[this.tab.period as keyof SitecoreStatistics]} SET`\n : this.tab.title;\n }\n }\n\n if (!this.tab) {\n this.tab = previous.filter((tab) => tab.enabled).pop() as LiveTennisStatsTab;\n }\n\n this.tabList.forEach((tab, index) => {\n tab.active = tab === this.tab;\n tab.enabled =\n tab.id === this.tabType.RegularTime && this.scoreboard.period && this.scoreboard.period.id === this.tabType.FirstSet\n ? false\n : tab.period in periods;\n tab.flash = tab.enabled !== previous[index].enabled;\n });\n }\n\n private getTab(period: string, type: LiveTennisStatsTabType): LiveTennisStatsTab {\n const periods = this.statistics.aces || {};\n\n return {\n id: type,\n title: this.sitecore.statistics[period as keyof SitecoreStatistics],\n enabled: period in periods,\n active: false,\n period,\n forceDisabled: true,\n };\n }\n\n tabChange(actvieTab: LiveTennisStatsTab): void {\n this.UpdateActiveTabTitle(actvieTab);\n this.tab = actvieTab;\n this.setCardsCount();\n this.setPerformStats();\n }\n\n private UpdateActiveTabTitle(actvieTab: LiveTennisStatsTab): void {\n if (this.tab && actvieTab.id === this.tab.id) {\n return;\n }\n\n actvieTab.title =\n actvieTab.id !== this.tabType.RegularTime\n ? `${this.sitecore.statistics[actvieTab.period as keyof SitecoreStatistics]} SET`\n : actvieTab.title;\n\n const previousActiveTab = this.tabList.find((t) => t.id === this.tab.id);\n if (previousActiveTab) {\n previousActiveTab.title = this.sitecore.statistics[previousActiveTab.period as keyof SitecoreStatistics];\n }\n }\n\n private setPerformStats(): void {\n this.performStats = [];\n this.performRaceStats = [];\n this.performStats = this.setPerformStatsData(this.cards);\n this.performRaceStats = this.setPerformStatsData(this.races);\n\n if (!(this.performRaceStats && this.performRaceStats.length > 0)) {\n return;\n }\n\n if (this.performRaceStats[0] && this.performRaceStats[0].values) {\n this.performRaceStats[0].values.wholeValue = 15;\n this.performRaceStats[0].values.IsDisabledWithNoData = Boolean(this.tab && this.tab.id === this.tabType.RegularTime);\n }\n\n if (this.performRaceStats[1] && this.performRaceStats[1].values) {\n this.performRaceStats[1].values.wholeValue = 20;\n this.performRaceStats[1].values.IsDisabledWithNoData = Boolean(this.tab && this.tab.id === this.tabType.RegularTime);\n }\n }\n\n private setPerformStatsData(cards: StatisticsCard[]): PerformStatisticsItem[] {\n const perfStats: PerformStatisticsItem[] = [];\n if (!cards) {\n return perfStats;\n }\n\n cards.forEach((card) => {\n const perfStat = new PerformStatisticsItem();\n perfStat.title = card.cardName;\n perfStat.colors = [];\n if (card.shirtColor1) {\n perfStat.colors.push(card.shirtColor1);\n }\n if (card.shirtColor2) {\n perfStat.colors.push(card.shirtColor2);\n }\n perfStat.values = { value1: card.participant1, value2: card.participant2 };\n perfStats.push(perfStat);\n });\n\n return perfStats;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { ConnectionInformationResponse } from '@cds/running-ball';\nimport { BaseCdsApi, BaseCdsApiFactory, CDS_API_FACTORY } from '@frontend/sports/content-distribution/feature';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class RunningBallApi {\n private cdsApi: BaseCdsApi;\n\n constructor(@Inject(CDS_API_FACTORY) cdsApiServiceFactory: BaseCdsApiFactory) {\n this.cdsApi = cdsApiServiceFactory({ endpoint: '/runningball' });\n }\n\n getConnectionInfo(fixtureId: string): Observable<ConnectionInformationResponse | undefined> {\n return this.cdsApi.get<ConnectionInformationResponse>(`/connectionInformation`, { fixtureId });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { BehaviorSubject } from 'rxjs';\nimport { connect } from 'socket.io-client';\n\nexport class PerformSocket {\n onMessage: BehaviorSubject<{ ActiveMQMessage: string } | null>;\n\n constructor(private socket: SocketIOClient.Socket) {\n this.onMessage = new BehaviorSubject<{ ActiveMQMessage: string } | null>(null);\n\n this.socket.on('message', (data: any) => {\n this.onMessage.next(data);\n });\n }\n\n disconnect(): void {\n this.socket.disconnect();\n }\n\n connect(): void {\n if (this.socket.disconnected) {\n this.socket.connect();\n }\n }\n}\n\n@Injectable()\nexport class SocketService {\n private readonly logger: SportsRemoteLogger;\n\n constructor(loggerFactory: LoggerFactory) {\n this.logger = loggerFactory.getLogger('SocketService');\n }\n\n connect(url: string): PerformSocket | null {\n try {\n let failedAttempts = 0;\n\n const ioSocket: SocketIOClient.Socket = connect(url, {\n autoConnect: false,\n transports: ['websocket'],\n });\n\n ioSocket.on('connect', () => {\n failedAttempts = 0;\n });\n\n ioSocket.on('reconnect_error', (error: any) => {\n failedAttempts++;\n\n if (failedAttempts % 10 === 0) {\n this.logger.error(`Statistics: ${failedAttempts} failed attempts to connect to ${url}: ${error}`);\n }\n });\n\n return new PerformSocket(ioSocket);\n } catch (error) {\n this.logger.error(`Statistics: Error occured while connecting to ${url}: ${error}`);\n\n return null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ConnectionInformationResponse, RunningBallEventStatus } from '@cds/running-ball';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { publishReplay, refCount } from 'rxjs/operators';\n\nimport { RunningBallApi } from '../../cds/running-ball-api.service';\nimport { LiveSoccerStatistics, LiveSoccerStatisticsItem } from '../models';\nimport { PerformSocket, SocketService } from './perform-socket.service';\n\n@Injectable()\nexport class PerformStatisticsService {\n private promise: Promise<Observable<LiveSoccerStatistics> | null> | null;\n private cache: {\n eventId: number;\n socket: PerformSocket | null;\n stream: Observable<LiveSoccerStatistics> | null;\n };\n\n constructor(\n private runningBallApi: RunningBallApi,\n private socketService: SocketService,\n ) {}\n\n async getStatistics(eventId: number): Promise<Observable<LiveSoccerStatistics> | null> {\n if (!this.promise) {\n this.promise = this.getStatisticsInternal(eventId).then((data) => {\n this.promise = null;\n\n return data;\n });\n }\n\n return this.promise;\n }\n\n private async getStatisticsInternal(eventId: number): Promise<Observable<LiveSoccerStatistics> | null> {\n if (this.isStreamInCache(eventId)) {\n return this.cache.stream;\n }\n\n const connection = await this.getConnection(eventId);\n if (!connection || connection.error || connection.status === RunningBallEventStatus.NotFound) {\n // cache that stats are not available for this event so we don't need to call cds again\n this.addToCache(eventId, null, null);\n\n return null;\n }\n\n const socket = this.socketService.connect(this.getUrl(connection));\n if (!socket) {\n return null;\n }\n\n const stream = this.createStream(socket);\n this.addToCache(eventId, stream, socket);\n\n return stream;\n }\n\n private getConnection(eventId: number): Promise<ConnectionInformationResponse | undefined> {\n return firstValueFrom(this.runningBallApi.getConnectionInfo(eventId.toString()));\n }\n\n private addToCache(eventId: number, stream: Observable<LiveSoccerStatistics> | null, socket: PerformSocket | null): void {\n if (this.cache && this.cache.socket) {\n // disconnect previous socket in case it wasn't disconnected\n this.cache.socket.disconnect();\n }\n\n this.cache = {\n eventId,\n socket,\n stream,\n };\n }\n\n private isStreamInCache(eventId: number): boolean {\n return this.cache && this.cache.eventId === eventId;\n }\n\n private createStream(socket: PerformSocket): Observable<LiveSoccerStatistics> {\n return new Observable<LiveSoccerStatistics>((observer) => {\n const messageSubscription = socket.onMessage.subscribe((data: any) => {\n const statistics = this.parseStatistics(data);\n if (statistics) {\n observer.next(statistics);\n }\n });\n\n socket.connect();\n\n const unsubscribe = () => {\n messageSubscription.unsubscribe();\n socket.disconnect();\n };\n\n return unsubscribe;\n }).pipe(publishReplay(1), refCount());\n }\n\n private getUrl(connInfo: ConnectionInformationResponse): string {\n return `https://${connInfo.ipAddress}/?token=${connInfo.token}`;\n }\n\n private parseStatistics = (data: { ActiveMQMessage: string }): LiveSoccerStatistics | null => {\n if (!data || !data.ActiveMQMessage) {\n return null;\n }\n\n const parsedData = JSON.parse(data.ActiveMQMessage);\n if (parsedData.MLU && parsedData.MLU.ST && parsedData.MLU.SI === 1) {\n return {\n attacks: this.parseStatisticValue(parsedData.MLU.ST.AT),\n dangerousAttacks: this.parseStatisticValue(parsedData.MLU.ST.DAT),\n totalShots: this.parseStatisticValue(parsedData.MLU.ST.SH),\n shotsOnTarget: this.parseStatisticValue(parsedData.MLU.ST.SHG),\n freeKicks: this.parseStatisticValue(parsedData.MLU.ST.FK),\n };\n }\n\n return null;\n };\n\n getZeroStats(): LiveSoccerStatistics {\n return {\n attacks: this.getZeroStatsItem(),\n dangerousAttacks: this.getZeroStatsItem(),\n totalShots: this.getZeroStatsItem(),\n shotsOnTarget: this.getZeroStatsItem(),\n freeKicks: this.getZeroStatsItem(),\n };\n }\n\n private parseStatisticValue = (value: string): LiveSoccerStatisticsItem => {\n if (value && value.length > 0) {\n const s = value.split(':');\n if (s.length === 2) {\n return {\n value1: parseInt(s[0]),\n value2: parseInt(s[1]),\n };\n }\n }\n\n return this.getZeroStatsItem();\n };\n\n private getZeroStatsItem(): LiveSoccerStatisticsItem {\n return {\n value1: 0,\n value2: 0,\n };\n }\n}\n","<ng-container *ngIf=\"statistics\">\n <ms-perform-statistics-item [statistics]=\"statistics.dangerousAttacks\" [teamColors]=\"teamColors\" [title]=\"sitecore.statistics.DangerousAttacks\">\n </ms-perform-statistics-item>\n <ms-perform-statistics-item [statistics]=\"statistics.totalShots\" [teamColors]=\"teamColors\" [title]=\"sitecore.statistics.TotalShots\">\n </ms-perform-statistics-item>\n <ms-perform-statistics-item [statistics]=\"statistics.shotsOnTarget\" [teamColors]=\"teamColors\" [title]=\"sitecore.statistics.ShotsOnTarget\">\n </ms-perform-statistics-item>\n <ms-perform-statistics-item [statistics]=\"statistics.freeKicks\" [teamColors]=\"teamColors\" [title]=\"sitecore.statistics.FreeKicks\">\n </ms-perform-statistics-item>\n</ng-container>\n","import { Component, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Observable, Subscription } from 'rxjs';\n\nimport { LiveSoccerStatistics } from '../models';\nimport { PerformStatisticsService } from './perform-statistics.service';\n\n@Component({\n selector: 'ms-perform-statistics',\n templateUrl: 'perform-statistics.html',\n})\nexport class PerformStatisticsComponent implements OnInit, OnDestroy, OnChanges {\n @Input() event: number;\n @Input() finished: boolean;\n @Input() teamColors: string[];\n @HostBinding('class') className = 'perform-statistics';\n @Output() statisticsMissing = new EventEmitter<void>();\n\n statistics: LiveSoccerStatistics | null;\n private subscription: Subscription | null;\n private destroyed: boolean;\n\n constructor(\n private performStatisticsService: PerformStatisticsService,\n public sitecore: Sitecore,\n ) {}\n\n ngOnInit(): void {\n this.subscribe();\n }\n\n private processStatistics = (statistics: LiveSoccerStatistics) => {\n if (statistics) {\n this.statistics = statistics;\n }\n };\n\n private subscribe(): void {\n this.performStatisticsService.getStatistics(this.event).then((stream: Observable<LiveSoccerStatistics> | null) => {\n if (!stream || this.destroyed) {\n this.statisticsMissing.emit();\n\n return;\n }\n\n this.statistics = this.performStatisticsService.getZeroStats();\n this.subscription = stream.subscribe(this.processStatistics);\n });\n }\n\n private unsubscribe(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const finished = changes['finished'];\n if (finished && !finished.isFirstChange() && finished.currentValue) {\n this.unsubscribe();\n }\n const isNewEvent = changes['event'] && changes['event'].currentValue !== changes['event'].previousValue;\n if (isNewEvent) {\n this.subscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n this.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferSource } from '@cds';\nimport { FixtureViewType } from '@cds/betting-offer';\nimport {\n FixtureOutcome,\n FixtureResultStatistics,\n FixtureStatistics,\n MatchesStatistics,\n ScoreStatistics,\n TeamStatistics,\n WonLostStatisticsType,\n} from '@cds/statistics/fixture';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { SitecoreEventDetailsConfig, StatisticsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { filter, includes, orderBy, toUpper } from 'lodash-es';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\n\nimport { StatisticsApiService } from './statistics-api.service';\nimport {\n AverageScore,\n AverageScoreItem,\n HeadToHeadSummary,\n LastEvents,\n StatisticsData,\n StatisticsHeadToHead,\n StatisticsModel,\n StatisticsModelStatus,\n} from './statistics.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StatisticsService {\n private readonly allowedStatSources = [OfferSource.V1, OfferSource.V2];\n\n private sportsWithLeagueTable = [SportConstant.Soccer, SportConstant.Basketball];\n private sportsWithDraw = [\n SportConstant.Soccer,\n SportConstant.AmericanFootball,\n SportConstant.Icehockey,\n SportConstant.Handball,\n SportConstant.Rugby,\n ];\n\n constructor(\n private statisticsApi: StatisticsApiService,\n private statisticsConfig: StatisticsConfig,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n ) {}\n\n get(event: EventModel): Observable<StatisticsModel> {\n return this.sitecoreEventDetails.whenReady.pipe(\n switchMap(() => {\n const noStatsAvailable = !event.hasLeagueStats && !event.hasFixtureStats;\n\n if (noStatsAvailable || !includes(this.allowedStatSources, event.offerSource)) {\n return of(new StatisticsModel());\n }\n\n return this.getStatsInternal(\n event.id,\n event.league.parentLeagueId || event.league.id,\n event.sport.id,\n event.viewType,\n event.league.stageId,\n event.league.groupId,\n );\n }),\n );\n }\n\n hasStatistics(event: EventModel): boolean {\n return this.hasStarted(event) && !!event.scoreboard.statistics;\n }\n\n hasPerformStatistics(event: EventModel): boolean {\n return (\n this.statisticsConfig.isPerformStatsEnabled &&\n event.sport.id === SportConstant.Soccer &&\n this.hasStarted(event) &&\n !!event.runningBallDataId\n );\n }\n\n hasLeagueStatistics(sportId: number): boolean {\n return this.sportsWithLeagueTable.indexOf(sportId) !== -1;\n }\n\n hasDraw(sportId: number): boolean {\n return this.sportsWithDraw.indexOf(sportId) !== -1;\n }\n\n private hasStarted(event: EventModel): boolean {\n return event && event.live && event.scoreboard.started;\n }\n\n private hasLastEvents(team: TeamStatistics): boolean {\n return team && team.lastEvents && this.hasItems(team.lastEvents);\n }\n\n private getResultStats(stats: StatisticsData, viewType: FixtureViewType): StatisticsModel {\n const resultStats = new StatisticsModel();\n\n if (stats.eventStats) {\n if (stats.eventStats.homeTeam && stats.eventStats.homeTeam.head2Head) {\n let head2Head = stats.eventStats.homeTeam.head2Head;\n if (viewType === FixtureViewType.American) {\n head2Head = stats.eventStats.awayTeam.head2Head;\n }\n resultStats.headToHead = this.getHeadToHeadStats(head2Head);\n }\n\n if (this.hasLastEvents(stats.eventStats.homeTeam) || this.hasLastEvents(stats.eventStats.awayTeam)) {\n resultStats.lastMatches = {\n home: stats.eventStats.homeTeam.lastEvents,\n away: stats.eventStats.awayTeam.lastEvents,\n };\n if (viewType === FixtureViewType.American) {\n resultStats.lastMatches = {\n home: stats.eventStats.awayTeam.lastEvents,\n away: stats.eventStats.homeTeam.lastEvents,\n };\n }\n resultStats.lastMatches = this.filterLastMatches(resultStats.lastMatches);\n }\n\n if (\n stats.eventStats.homeTeam?.scoreStatistics &&\n stats.eventStats.homeTeam?.matchesStatistics &&\n stats.eventStats.awayTeam?.scoreStatistics &&\n stats.eventStats.awayTeam?.matchesStatistics\n ) {\n resultStats.averageScore = this.getAverageScore(stats.eventStats);\n }\n\n resultStats.status = StatisticsModelStatus.Success;\n }\n\n if (this.hasItems(stats.leagueStats)) {\n resultStats.leagues = stats.leagueStats;\n resultStats.status = StatisticsModelStatus.Success;\n }\n\n return resultStats;\n }\n\n private getStatsInternal(\n eventId: string,\n leagueId: number,\n sportId: number,\n viewType: FixtureViewType,\n stageId?: number,\n groupId?: number,\n ): Observable<StatisticsModel> {\n return this.statisticsApi.getStats(eventId, leagueId, sportId, stageId, groupId).pipe(\n map((stats) => {\n return this.getSportStats(sportId, stats, this.getResultStats(stats, viewType));\n }),\n catchError(() => {\n const resultStats = new StatisticsModel();\n resultStats.status = StatisticsModelStatus.NoConnection;\n\n return of(resultStats);\n }),\n );\n }\n\n private filterLastMatches(matches: LastEvents): LastEvents {\n if (matches) {\n matches.home = this.filterMatches(matches.home);\n matches.away = this.filterMatches(matches.away);\n }\n\n return matches;\n }\n\n private filterMatches(matches: FixtureResultStatistics[]): FixtureResultStatistics[] {\n if (!matches || !matches.length) {\n return [];\n }\n\n const excluded = [FixtureOutcome.Unknown, FixtureOutcome.Canceled, FixtureOutcome.Postponed].map(toUpper);\n const filtered = filter(matches, (match) => !includes(excluded, toUpper(match.fixtureOutcome)));\n\n return orderBy(filtered, (match) => match.dateOfEvent, 'desc');\n }\n\n private hasItems<T>(collection: Array<T>): boolean {\n return Boolean(collection && collection.length > 0);\n }\n\n private getHeadToHeadStats(events: FixtureResultStatistics[]): StatisticsHeadToHead {\n return {\n events,\n summary: this.getHeadToHeadRatio(events),\n };\n }\n\n private getHeadToHeadRatio(events: FixtureResultStatistics[]): HeadToHeadSummary {\n const eventNr = this.filterMatches(events).length;\n\n const total = events.reduce(\n (acc, event) => {\n const outcome = (event.fixtureOutcome || '').toLowerCase() as Lowercase<FixtureOutcome>;\n if (acc[outcome]) {\n acc[outcome].push(event);\n }\n\n return acc;\n },\n {\n won: [] as FixtureResultStatistics[],\n draw: [] as FixtureResultStatistics[],\n lost: [] as FixtureResultStatistics[],\n lostafterovertime: [] as FixtureResultStatistics[],\n lostafterpenalty: [] as FixtureResultStatistics[],\n wonafterovertime: [] as FixtureResultStatistics[],\n wonafterpenalty: [] as FixtureResultStatistics[],\n } as { [key in Lowercase<FixtureOutcome>]: FixtureResultStatistics[] },\n );\n\n return {\n team1: {\n count: total.won.length + total.wonafterovertime.length + total.wonafterpenalty.length,\n ratio: this.calculateRatio(total.won.length + total.wonafterovertime.length + total.wonafterpenalty.length, eventNr),\n },\n draw: { count: total.draw.length, ratio: this.calculateRatio(total.draw.length, eventNr) },\n team2: {\n count: total.lost.length + total.lostafterovertime.length + total.lostafterpenalty.length,\n ratio: this.calculateRatio(total.lost.length + total.lostafterovertime.length + total.lostafterpenalty.length, eventNr),\n },\n };\n }\n\n private calculateRatio(fraction: number, total: number): number {\n if (total === 0) {\n return 0;\n }\n\n return Math.round((fraction / total) * 100);\n }\n\n private getSportStats(sportId: number, stats: StatisticsData, resultStats: StatisticsModel): StatisticsModel {\n if (!(stats.eventStats && stats.eventStats.homeTeam && stats.eventStats.awayTeam)) {\n return resultStats;\n }\n\n if (stats.eventStats.homeTeam) {\n resultStats.homeTeam = stats.eventStats.homeTeam;\n }\n if (stats.eventStats.awayTeam) {\n resultStats.awayTeam = stats.eventStats.awayTeam;\n }\n\n if (sportId === SportConstant.Tennis) {\n return this.getTennisStats(stats, resultStats);\n }\n\n return resultStats;\n }\n\n private getTennisStats(stats: StatisticsData, resultStats: StatisticsModel): StatisticsModel {\n let associationType = '';\n if (resultStats.homeTeam && resultStats.homeTeam.wonLostStatistics) {\n associationType = resultStats.homeTeam.wonLostStatistics.type.toString();\n } else if (resultStats.awayTeam && resultStats.awayTeam.wonLostStatistics) {\n associationType = resultStats.awayTeam.wonLostStatistics.type.toString();\n }\n\n if (!(associationType && associationType.trim().length > 0)) {\n return resultStats;\n }\n\n if (associationType === WonLostStatisticsType['TennisAtpTotal']) {\n resultStats.associationName = 'ATP';\n } else if (associationType === WonLostStatisticsType['TennisWtaTotal']) {\n resultStats.associationName = 'WTA';\n }\n\n return resultStats;\n }\n\n private getAverageScore(eventStats: FixtureStatistics): AverageScore {\n return {\n homeTeam: this.getAverageScoreItem(eventStats.homeTeam.scoreStatistics, eventStats.homeTeam.matchesStatistics),\n awayTeam: this.getAverageScoreItem(eventStats.awayTeam.scoreStatistics, eventStats.awayTeam.matchesStatistics),\n };\n }\n\n private getAverageScoreItem(scoreStatistics: ScoreStatistics, matchesStatistics: MatchesStatistics): AverageScoreItem {\n const totalHome = scoreStatistics.totalHomeScored! + scoreStatistics.totalHomeConceded!;\n const totalAway = scoreStatistics.totalAwayScored! + scoreStatistics.totalAwayConceded!;\n const total = scoreStatistics.totalScored! + scoreStatistics.totalConceded!;\n\n return {\n home: {\n scored: this.calculateAverage(scoreStatistics.totalHomeScored, matchesStatistics.totalPlayedHome),\n conceded: this.calculateAverage(scoreStatistics.totalHomeConceded, matchesStatistics.totalPlayedHome),\n total: this.calculateAverage(totalHome, matchesStatistics.totalPlayedHome),\n ratio: {\n scored: this.calculateRatio(scoreStatistics.totalHomeScored!, scoreStatistics.totalScored!),\n conceded: this.calculateRatio(scoreStatistics.totalHomeConceded!, scoreStatistics.totalConceded!),\n total: this.calculateRatio(totalHome, total),\n },\n },\n away: {\n scored: this.calculateAverage(scoreStatistics.totalAwayScored, matchesStatistics.totalPlayedAway),\n conceded: this.calculateAverage(scoreStatistics.totalAwayConceded, matchesStatistics.totalPlayedAway),\n total: this.calculateAverage(totalAway, matchesStatistics.totalPlayedAway),\n ratio: {\n scored: this.calculateRatio(scoreStatistics.totalAwayScored!, scoreStatistics.totalScored!),\n conceded: this.calculateRatio(scoreStatistics.totalAwayConceded!, scoreStatistics.totalConceded!),\n total: this.calculateRatio(totalAway, total),\n },\n },\n total: {\n scored: this.calculateAverage(scoreStatistics.totalScored, matchesStatistics.totalPlayedOverall),\n conceded: this.calculateAverage(scoreStatistics.totalConceded, matchesStatistics.totalPlayedOverall),\n total: this.calculateAverage(total, matchesStatistics.totalPlayedOverall),\n },\n };\n }\n\n private calculateAverage(fraction?: number, total?: number): number {\n if (!fraction || !total) {\n return 0;\n }\n\n return Number((fraction / total).toFixed(2));\n }\n}\n","<div class=\"stats-center\" *ngIf=\"enabled\" (click)=\"openPopup()\">{{ sitecore.statistics.StatsCenter }}</div>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { MediaConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { BetRadarStatisticsService } from '../bet-radar/bet-radar-statistics.service';\n\n@Component({\n selector: 'ms-stats-center',\n templateUrl: 'stats-center.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StatsCenterComponent implements OnChanges {\n @Input() statsId?: number;\n @Input() sportId: number;\n @Input() event: EventModel;\n @Input() inColumn: boolean;\n @HostBinding('class') className = 'stats-center-container';\n\n enabled: boolean;\n\n constructor(\n public sitecore: Sitecore,\n private trackingService: TrackingService,\n private betRadarStatistics: BetRadarStatisticsService,\n private mediaConfig: MediaConfig,\n ) {}\n\n ngOnChanges(): void {\n this.enabled = !!this.statsId && this.mediaConfig.showStatsCenterButton;\n }\n\n openPopup(): void {\n if (this.statsId) {\n this.trackingService.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Media Module',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'Media Module Interactions',\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: 'stats tab',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: 'visit stats center',\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.SPORT_EVENT_ID]: this.event.id,\n [trackingConstants.SPORT_ID]: this.event.sport.id,\n [trackingConstants.COMPONENT_MODULE_POSITION]: this.inColumn ? 'right' : 'center',\n [trackingConstants.COMPONENT_CONTENT_POSITION]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_MODULE_NAME]: 'Media',\n [trackingConstants.COMPONENT_MODULE_CUSTOM_NAME]: 'media',\n [trackingConstants.COMPONENT_MODULE_SOURCE]: 'standard module',\n });\n\n this.betRadarStatistics.open(this.statsId);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { MediaConfig } from '@frontend/sports/common/client-config-data-access';\n\n@Component({\n selector: 'ms-empty-stats',\n templateUrl: 'empty-stats.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmptyStatsComponent {\n @HostBinding()\n get class(): string {\n return this.mediaConfig.showStatsCenterButton ? 'empty-stats-container' : 'empty-stats-container without-visit-stat-center';\n }\n\n @Input() message: string;\n @Input() statsId?: number;\n @Input() sportId?: number;\n @Input() event: EventModel;\n @Input() inColumn: boolean;\n constructor(private mediaConfig: MediaConfig) {}\n}\n","<div class=\"empty-stats\">{{ message }}</div>\n<ms-stats-center [event]=\"event\" [inColumn]=\"inColumn\" [sportId]=\"sportId\" [statsId]=\"statsId\"></ms-stats-center>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { Participant, StatisticsModel } from '../statistics.models';\nimport { StatisticsService } from '../statistics.service';\n\n@Component({\n selector: 'ms-head-to-head',\n templateUrl: 'head-to-head.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeadToHeadComponent implements OnInit {\n @Input() participants: Participant[];\n @Input() sport: number;\n @Input() statistics: StatisticsModel;\n @Input() statsId?: number;\n @Input() event: EventModel;\n @Input() inColumn: boolean;\n @HostBinding('class') className = 'head-to-head';\n\n hasDraw: boolean;\n\n constructor(\n public statisticsService: StatisticsService,\n public sitecore: Sitecore,\n ) {}\n\n ngOnInit(): void {\n this.hasDraw = this.statisticsService.hasDraw(this.sport);\n }\n}\n","<ng-content></ng-content>\n","<ng-container *ngFor=\"let match of statistics.headToHead!.events\">\n <div class=\"match\" *ngIf=\"match && match.fullTimeOrSetsScore\">\n <div class=\"date\">{{ match.dateOfEvent | date: 'dd/MM/yyyy' }}</div>\n <div class=\"result\">\n <div class=\"team1\">{{ participants[0].name }}</div>\n <div class=\"score\">\n {{ match.overTimeScore ? match.overTimeScore.scored : match.fullTimeOrSetsScore.scored }}<span class=\"score-separator\">-</span>\n {{ match.overTimeScore ? match.overTimeScore.conceded : match.fullTimeOrSetsScore.conceded }}\n </div>\n <div class=\"team2\">{{ participants[1].name }}</div>\n </div>\n </div>\n</ng-container>\n<ms-stats-center [event]=\"event\" [inColumn]=\"inColumn\" [sportId]=\"sport\" [statsId]=\"statsId\"></ms-stats-center>\n","import { Component, HostBinding, Input } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\n\nimport { Participant, StatisticsModel } from '../statistics.models';\n\n@Component({\n selector: 'ms-head-to-head-event-details',\n templateUrl: 'head-to-head-event-details.html',\n})\nexport class HeadToHeadEventDetailsComponent {\n @Input() statistics: StatisticsModel;\n @Input() participants: Participant[];\n @Input() statsId: number;\n @Input() sport: number;\n @Input() event: EventModel;\n @Input() inColumn: boolean;\n @HostBinding('class') className = 'head-to-head-event-details';\n}\n","import { AfterViewInit, Component, ElementRef, Input, OnChanges, OnDestroy } from '@angular/core';\n\ninterface Step {\n x: number;\n y: number;\n alpha: number;\n}\n\n@Component({\n selector: 'ms-gauge',\n templateUrl: 'gauge.html',\n})\nexport class GaugeComponent implements OnChanges, OnDestroy, AfterViewInit {\n @Input() value: number;\n @Input() text: string;\n @Input() radius = 42;\n private readonly stroke = 3.5;\n private readonly initialStep = 0.001;\n private readonly increase = 0.017;\n private readonly duration = 1200;\n private d: any;\n private steps: Step[] = []; // path calculation params\n private alpha = 0;\n private y = 3.5;\n private x = this.radius;\n private valuen = 0.001;\n private intervalId: any = null;\n private count = 0;\n private v: number; // step increase\n gaugeScaleDValue: string;\n gaugeDialDValue: string;\n constructor(private elRef: ElementRef) {}\n\n ngOnChanges(): void {\n this.resetGauge();\n this.setUpGauge();\n }\n\n private setUpGauge(): void {\n this.gaugeScaleDValue =\n 'M' +\n this.radius +\n ',' +\n this.stroke +\n 'A' +\n (this.radius - this.stroke) +\n ',' +\n (this.radius - this.stroke) +\n ',0,1,1,' +\n (this.radius - 0.01) +\n ',' +\n this.stroke;\n this.gaugeDialDValue =\n 'M' +\n this.radius +\n ',' +\n this.stroke +\n 'A' +\n (this.radius - this.stroke) +\n ',' +\n (this.radius - this.stroke) +\n ',0,0,1,' +\n this.radius +\n ',' +\n this.stroke;\n if (!this.value) {\n return;\n }\n this.v = this.bounceValue(this.valuen) * this.value;\n do {\n this.recalculateValues(this.v);\n this.steps.push({ x: this.x, y: this.y, alpha: this.alpha });\n this.valuen += this.increase;\n this.v = this.bounceValue(this.valuen) * this.value;\n } while (this.v <= this.value);\n\n // close the circle\n if (this.value === 100) {\n this.recalculateValues(this.value - this.initialStep);\n this.steps.push({ x: this.x, y: this.y, alpha: this.alpha });\n }\n this.intervalId = setInterval(\n () => {\n this.setPath(this.steps[this.count]);\n if (this.count < this.steps.length - 1) {\n this.count++;\n } else {\n clearInterval(this.intervalId);\n }\n },\n Math.round(this.duration / this.steps.length),\n );\n }\n\n // set gauge params based on value\n private recalculateValues(val: number): void {\n const a = 3.6 * val;\n const rad = ((90 - a) * Math.PI) / 180; // to radians\n this.alpha = a > 180 ? 1 : 0;\n this.x = this.radius + (this.radius - this.stroke) * Math.cos(rad);\n this.y = this.radius - (this.radius - this.stroke) * Math.sin(rad);\n }\n\n // bounce easing algorithm\n private bounceValue(n: number): number {\n let l;\n const s = 7.5625;\n const p = 2.75;\n\n if (n < 1 / p) {\n l = s * n * n;\n } else {\n if (n < 2 / p) {\n n -= 1.5 / p;\n l = s * n * n + 0.75;\n } else {\n if (n < 2.5 / p) {\n n -= 2.25 / p;\n l = s * n * n + 0.9375;\n } else {\n n -= 2.625 / p;\n l = s * n * n + 0.984375;\n }\n }\n }\n\n return l;\n }\n\n private setPath(step: Step): void {\n this.d.value =\n 'M' +\n this.radius +\n ',' +\n this.stroke +\n 'A' +\n (this.radius - this.stroke) +\n ',' +\n (this.radius - this.stroke) +\n ',0,' +\n step.alpha +\n ',1,' +\n step.x +\n ',' +\n step.y;\n }\n\n private resetGauge(): void {\n clearInterval(this.intervalId);\n\n this.alpha = 0;\n this.y = 3.5;\n this.x = this.radius;\n this.valuen = 0.001;\n this.intervalId = null;\n this.count = 0;\n this.v = 0;\n this.gaugeScaleDValue = '';\n this.gaugeDialDValue = '';\n this.steps = [];\n\n if (this.d) {\n this.setPath({ x: this.x, y: this.y, alpha: this.alpha });\n }\n }\n\n ngAfterViewInit(): void {\n this.d = this.elRef.nativeElement.querySelectorAll('path')[1].attributes.d;\n }\n\n ngOnDestroy(): void {\n clearInterval(this.intervalId);\n }\n}\n","<div class=\"gauge\">\n <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n <path class=\"gauge-scale\" fill=\"none\" stroke-width=\"7\" [attr.d]=\"gaugeScaleDValue\"></path>\n <path class=\"gauge-dial\" fill=\"none\" stroke-width=\"7\" [attr.d]=\"gaugeDialDValue\"></path>\n </svg>\n <div class=\"gauge-value\">{{ text }}</div>\n</div>\n","<ms-head-to-head>\n <div class=\"overview\">\n <div class=\"participant-gauge\">\n <div class=\"participant\" *ngIf=\"participants?.length > 0\">{{ participants[0].name }}</div>\n <ms-gauge\n *ngIf=\"statistics.headToHead && statistics.headToHead.summary && statistics.headToHead.summary.team1\"\n [value]=\"statistics.headToHead!.summary.team1.ratio\"\n [text]=\"statistics.headToHead!.summary.team1.count\"\n [radius]=\"25\">\n </ms-gauge>\n </div>\n <div class=\"participant-gauge\" *ngIf=\"hasDraw\">\n <div class=\"participant\">{{ sitecore.statistics.Draw }}</div>\n <ms-gauge\n *ngIf=\"statistics.headToHead && statistics.headToHead.summary && statistics.headToHead.summary.draw\"\n [value]=\"statistics.headToHead!.summary.draw.ratio\"\n [text]=\"statistics.headToHead!.summary.draw.count\"\n [radius]=\"25\">\n </ms-gauge>\n </div>\n <div class=\"participant-gauge\">\n <div class=\"participant\" *ngIf=\"participants?.length > 1\">{{ participants[1].name }}</div>\n <ms-gauge\n *ngIf=\"statistics.headToHead && statistics.headToHead.summary && statistics.headToHead.summary.team2\"\n [value]=\"statistics.headToHead!.summary.team2.ratio\"\n [text]=\"statistics.headToHead!.summary.team2.count\"\n [radius]=\"25\">\n </ms-gauge>\n </div>\n </div>\n <ng-container *ngIf=\"expand\">\n <ms-head-to-head-event-details\n [participants]=\"participants\"\n [statistics]=\"statistics\"\n [statsId]=\"statsId\"\n [sport]=\"sport\"\n [event]=\"event\"\n [inColumn]=\"inColumn\"></ms-head-to-head-event-details>\n </ng-container>\n</ms-head-to-head>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { StatisticsService } from '../../statistics.service';\nimport { HeadToHeadComponent } from '../head-to-head.component';\n\n@Component({\n selector: 'ms-football-head-to-head',\n templateUrl: 'football-head-to-head.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FootballHeadToHeadComponent extends HeadToHeadComponent implements OnChanges {\n @Input() expand: boolean;\n @Input() override sport: number;\n @HostBinding('class') override className = 'football-head-to-head';\n constructor(\n public override statisticsService: StatisticsService,\n public override sitecore: Sitecore,\n ) {\n super(statisticsService, sitecore);\n super.ngOnInit();\n }\n\n ngOnChanges(): void {\n super.ngOnInit();\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { StatisticsModel } from '../statistics.models';\nimport { StatisticsService } from '../statistics.service';\n\n@Component({\n selector: 'ms-league-table',\n templateUrl: 'league-table.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LeagueTableComponent implements OnInit {\n @Input() sport: number;\n @Input() event: EventModel;\n @Input() statistics: StatisticsModel;\n @Input() statsId?: number;\n @Input() league: string;\n @Input() inColumn: boolean;\n @HostBinding('class') className = 'league-table';\n\n hasDraw: boolean;\n\n constructor(\n public statisticsService: StatisticsService,\n public sitecore: Sitecore,\n ) {}\n\n ngOnInit(): void {\n this.hasDraw = this.statisticsService.hasDraw(this.sport);\n }\n}\n","<ng-content></ng-content>\n","<ms-league-table>\n <div class=\"container\" [class.container-expand]=\"expand\">\n <div class=\"header\">\n <div class=\"league-name\" marquee>{{ league }}</div>\n <div>{{ sitecore.statistics.MatchesPlayedAbr || 'P' }}</div>\n <div>{{ sitecore.statistics.WonAbr || 'W' }}</div>\n <div *ngIf=\"hasDraw\">{{ sitecore.statistics.DrawAbr || 'D' }}</div>\n <div>{{ sitecore.statistics.LostAbr || 'L' }}</div>\n <div>{{ sitecore.statistics.GoalsScoredAbr || 'GF' }}</div>\n <div>{{ sitecore.statistics.GoalConsededAbr || 'GA' }}</div>\n <div>{{ sitecore.statistics.PointsAbr || 'PT' }}</div>\n </div>\n\n <div\n class=\"standing\"\n *ngFor=\"let current of leagueTableData; let i = index\"\n [ngClass]=\"{\n 'league-row2-opacity': i === 1 && !this.expand,\n 'last-row': i === leagueTableData.length - 1,\n 'league-row3-opacity': i === 2 && !this.expand,\n }\">\n <div class=\"team-rank\">{{ current.positionTotal }}</div>\n <div class=\"team\">{{ current.team.teamName }}</div>\n <div>{{ current.matchesTotal }}</div>\n <div>{{ current.winTotal }}</div>\n <div *ngIf=\"hasDraw\">{{ current.drawTotal }}</div>\n <div>{{ current.lossTotal }}</div>\n <div>{{ current.goalsTotal?.split(':')[0] }}</div>\n <div>{{ current.goalsTotal?.split(':')[1] }}</div>\n <div>{{ current.points }}</div>\n </div>\n </div>\n <ms-stats-center *ngIf=\"expand\" [event]=\"event\" [inColumn]=\"inColumn\" [sportId]=\"sport\" [statsId]=\"statsId\"></ms-stats-center>\n</ms-league-table>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\n\nimport { CompetitionTableRow } from '@cds/statistics/competition';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { StatisticsService } from '../../statistics.service';\nimport { LeagueTableComponent } from '../league-table.component';\n\n@Component({\n selector: 'ms-football-league-table',\n templateUrl: 'football-league-table.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FootballLeagueTableComponent extends LeagueTableComponent implements OnInit, OnChanges {\n @Input() expand: boolean;\n @Input() override statsId?: number;\n @HostBinding('class') override className = 'football-league-table';\n\n leagueTableData: CompetitionTableRow[] = [];\n bottomSpace = '';\n constructor(\n public override statisticsService: StatisticsService,\n public override sitecore: Sitecore,\n ) {\n super(statisticsService, sitecore);\n super.ngOnInit();\n }\n\n private setLeagueTableData(): void {\n if (this.statistics.leagues) {\n this.leagueTableData = this.expand ? this.statistics.leagues || [] : this.statistics.leagues.slice(0, 3);\n }\n }\n\n override ngOnInit(): void {\n this.hasDraw = this.statisticsService.hasDraw(this.sport);\n this.setLeagueTableData();\n }\n\n ngOnChanges(): void {\n this.setLeagueTableData();\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { FixtureResultStatistics } from '@cds/statistics/fixture';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Optional } from '@frontend/sports/common/core/utils/extended-types';\n\nimport { Participant, StatisticsModel } from '../statistics.models';\nimport { StatisticsService } from '../statistics.service';\n\n@Component({\n selector: 'ms-last-matches',\n templateUrl: 'last-matches.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LastMatchesComponent implements OnInit {\n @Input() participants: Participant[];\n @Input() sport: number;\n @Input() statistics: StatisticsModel;\n @Input() statsId?: number;\n @Input() event: EventModel;\n @Input() inColumn: boolean;\n @HostBinding('class') className = 'last-matches';\n\n hasDraw: boolean;\n isDataAvailableForHomeTeam = true;\n isDataAvailableForAwayTeam = true;\n strNoDataAvailableMessage = '';\n\n constructor(\n public statisticsService: StatisticsService,\n public sitecore: Sitecore,\n ) {}\n\n ngOnInit(): void {\n this.hasDraw = this.statisticsService.hasDraw(this.sport);\n this.strNoDataAvailableMessage = this.sitecore.statistics.LastMatchesPartialDataMessage;\n }\n\n hasItems(collection: Optional<FixtureResultStatistics[]>): boolean {\n return !!(collection && collection.length > 0);\n }\n\n protected checkForDataAvailability(): void {\n this.isDataAvailableForHomeTeam =\n !!this.statistics.lastMatches && this.statistics.lastMatches.home && this.statistics.lastMatches.home.length > 0;\n this.isDataAvailableForAwayTeam =\n !!this.statistics.lastMatches && this.statistics.lastMatches.away && this.statistics.lastMatches.away.length > 0;\n }\n}\n","<ng-content></ng-content>\n","<ms-last-matches>\n <div class=\"outcome\" *ngIf=\"hasItems(statistics.lastMatches?.home) || hasItems(statistics.lastMatches?.away)\">\n <div class=\"home-lastmatch\">\n <div class=\"participant\" *ngIf=\"participants?.length > 0\">\n <div class=\"participant-info\">{{ participants[0].name }}</div>\n </div>\n <ms-last-matches-performance\n *ngIf=\"isDataAvailableForHomeTeam\"\n [teamType]=\"teamType.Home\"\n [statistics]=\"statistics\"></ms-last-matches-performance>\n <div class=\"last-matches-unavailable-message\" *ngIf=\"!isDataAvailableForHomeTeam\">{{ strNoDataAvailableMessage }}</div>\n </div>\n <div class=\"away-lastmatch\">\n <div class=\"participant participant-away\" *ngIf=\"participants?.length > 1\">\n <div class=\"participant-info\">{{ participants[1].name }}</div>\n </div>\n <ms-last-matches-performance\n *ngIf=\"isDataAvailableForAwayTeam\"\n [teamType]=\"teamType.Away\"\n [statistics]=\"statistics\"></ms-last-matches-performance>\n <div class=\"last-matches-unavailable-message\" *ngIf=\"!isDataAvailableForAwayTeam\">{{ strNoDataAvailableMessage }}</div>\n </div>\n </div>\n <ms-stats-center [event]=\"event\" [inColumn]=\"inColumn\" [sportId]=\"sport\" [statsId]=\"statsId\"></ms-stats-center>\n</ms-last-matches>\n","import { ChangeDetectionStrategy, Component, HostBinding, OnChanges, OnInit } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { TeamType } from '../../statistics.models';\nimport { StatisticsService } from '../../statistics.service';\nimport { LastMatchesComponent } from '../last-matches.component';\n\n@Component({\n selector: 'ms-football-last-matches',\n templateUrl: 'football-last-matches.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FootballLastMatchesComponent extends LastMatchesComponent implements OnInit, OnChanges {\n @HostBinding('class') override className = 'football-last-matches';\n\n teamType = TeamType;\n constructor(\n public override statisticsService: StatisticsService,\n public override sitecore: Sitecore,\n ) {\n super(statisticsService, sitecore);\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.checkForDataAvailability();\n }\n\n ngOnChanges(): void {\n this.checkForDataAvailability();\n }\n}\n","<ms-head-to-head>\n <div class=\"overview\">\n <div class=\"participant-gauge\">\n <div class=\"participant\" *ngIf=\"participants?.length > 0\">{{ participants[0].name }}</div>\n <ms-gauge\n *ngIf=\"statistics.headToHead && statistics.headToHead.summary && statistics.headToHead.summary.team1\"\n [value]=\"statistics.headToHead!.summary.team1.ratio\"\n [text]=\"statistics.headToHead!.summary.team1.count\"\n [radius]=\"25\">\n </ms-gauge>\n </div>\n <div class=\"participant-gauge\">\n <div class=\"participant\" *ngIf=\"participants?.length > 1\">{{ participants[1].name }}</div>\n <ms-gauge\n *ngIf=\"statistics.headToHead && statistics.headToHead.summary && statistics.headToHead.summary.team2\"\n [value]=\"statistics.headToHead!.summary.team2.ratio\"\n [text]=\"statistics.headToHead!.summary.team2.count\"\n [radius]=\"25\">\n </ms-gauge>\n </div>\n </div>\n <ng-container *ngIf=\"expand\">\n <ms-head-to-head-event-details\n [participants]=\"participants\"\n [statistics]=\"statistics\"\n [statsId]=\"statsId\"\n [event]=\"event\"\n [sport]=\"sport\"\n [inColumn]=\"inColumn\"></ms-head-to-head-event-details>\n </ng-container>\n</ms-head-to-head>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { StatisticsService } from '../../statistics.service';\nimport { HeadToHeadComponent } from '../head-to-head.component';\n\n@Component({\n selector: 'ms-tennis-head-to-head',\n templateUrl: 'tennis-head-to-head.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TennisHeadToHeadComponent extends HeadToHeadComponent implements OnChanges {\n @Input() expand: boolean;\n @HostBinding('class') override className = 'tennis-head-to-head';\n constructor(\n public override statisticsService: StatisticsService,\n public override sitecore: Sitecore,\n ) {\n super(statisticsService, sitecore);\n super.ngOnInit();\n }\n\n ngOnChanges(): void {\n super.ngOnInit();\n }\n}\n","<ms-last-matches>\n <div class=\"outcome-container\">\n <div class=\"outcome\" *ngIf=\"hasItems(statistics.lastMatches?.home) || hasItems(statistics.lastMatches?.away)\">\n <div class=\"home-lastmatch\">\n <div class=\"participant\">\n <div class=\"participant-info\" [ngClass]=\"homeTeamRank.length > 0 ? 'participant-title-short' : 'participant-title-long'\">\n {{ participants[0].name }}\n </div>\n <div class=\"participant-rank participant-home-rank\" *ngIf=\"isRankVisible\">{{ homeTeamRank }}</div>\n </div>\n <ms-last-matches-performance\n *ngIf=\"isDataAvailableForHomeTeam\"\n [teamType]=\"teamType.Home\"\n [statistics]=\"statistics\"\n [showEventDates]=\"!hasWonLostStatistics\">\n </ms-last-matches-performance>\n <div class=\"last-matches-unavailable-message\" *ngIf=\"!isDataAvailableForHomeTeam\">{{ strNoDataAvailableMessage }}</div>\n </div>\n <div class=\"away-lastmatch\">\n <div class=\"participant participant-away\">\n <div class=\"participant-info\" [ngClass]=\"awayTeamRank.length > 0 ? 'participant-title-short' : 'participant-title-long'\">\n {{ participants[1].name }}\n </div>\n <div class=\"participant-rank participant-away-rank\" *ngIf=\"isRankVisible\">{{ awayTeamRank }}</div>\n </div>\n <ms-last-matches-performance\n *ngIf=\"isDataAvailableForAwayTeam\"\n [teamType]=\"teamType.Away\"\n [statistics]=\"statistics\"\n [showEventDates]=\"!hasWonLostStatistics\">\n </ms-last-matches-performance>\n <div class=\"last-matches-unavailable-message\" *ngIf=\"!isDataAvailableForAwayTeam\">{{ strNoDataAvailableMessage }}</div>\n </div>\n </div>\n <div class=\"won-lost-stats\" *ngIf=\"hasWonLostStatistics\">\n <div class=\"won-lost-stats-team1\">{{ homeTeamWonLostStats }}</div>\n <div>{{ sitecore.statistics.WonLostStatistics }}</div>\n <div class=\"won-lost-stats-team2\">{{ awayTeamWonLostStats }}</div>\n </div>\n </div>\n <ms-stats-center [event]=\"event\" [inColumn]=\"inColumn\" [sportId]=\"sport\" [statsId]=\"statsId\"></ms-stats-center>\n</ms-last-matches>\n","import { ChangeDetectionStrategy, Component, HostBinding, OnChanges, OnInit } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { TeamType } from '../../statistics.models';\nimport { StatisticsService } from '../../statistics.service';\nimport { LastMatchesComponent } from '../last-matches.component';\n\n@Component({\n selector: 'ms-tennis-last-matches',\n templateUrl: 'tennis-last-matches.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TennisLastMatchesComponent extends LastMatchesComponent implements OnInit, OnChanges {\n @HostBinding('class') override className = 'tennis-last-matches';\n teamType = TeamType;\n isRankVisible: boolean;\n hasWonLostStatistics: boolean;\n homeTeamRank = '';\n awayTeamRank = '';\n homeTeamWonLostStats = '';\n awayTeamWonLostStats = '';\n override ngOnInit(): void {\n super.ngOnInit();\n this.setRankAndWonAndLostStatistics();\n this.checkForDataAvailability();\n }\n\n ngOnChanges(): void {\n this.setRankAndWonAndLostStatistics();\n this.checkForDataAvailability();\n }\n\n constructor(\n public override statisticsService: StatisticsService,\n public override sitecore: Sitecore,\n ) {\n super(statisticsService, sitecore);\n }\n\n private setRankAndWonAndLostStatistics(): void {\n this.isRankVisible = Boolean(\n this.statistics.associationName &&\n this.statistics.associationName.length > 0 &&\n ((this.statistics.homeTeam && this.statistics.homeTeam.rank) || (this.statistics.awayTeam && this.statistics.awayTeam.rank)),\n );\n\n this.homeTeamRank =\n this.isRankVisible && this.statistics.homeTeam && this.statistics.homeTeam.rank\n ? `(${this.statistics.associationName} ${this.statistics.homeTeam.rank.position})`\n : '';\n this.awayTeamRank =\n this.isRankVisible && this.statistics.awayTeam && this.statistics.awayTeam.rank\n ? `(${this.statistics.associationName} ${this.statistics.awayTeam.rank.position})`\n : '';\n\n this.hasWonLostStatistics = Boolean(\n (this.statistics.homeTeam && this.statistics.homeTeam.wonLostStatistics) ||\n (this.statistics.awayTeam && this.statistics.awayTeam.wonLostStatistics),\n );\n\n this.homeTeamWonLostStats =\n this.hasWonLostStatistics && this.statistics.homeTeam && this.statistics.homeTeam.wonLostStatistics\n ? `${this.statistics.homeTeam.wonLostStatistics.wonEvents}-${this.statistics.homeTeam.wonLostStatistics.lostEvents}`\n : 'N/A';\n this.awayTeamWonLostStats =\n this.hasWonLostStatistics && this.statistics.awayTeam && this.statistics.awayTeam.wonLostStatistics\n ? `${this.statistics.awayTeam.wonLostStatistics.wonEvents}-${this.statistics.awayTeam.wonLostStatistics.lostEvents}`\n : 'N/A';\n }\n}\n","<ms-last-matches>\n <div class=\"outcome-container\">\n <div class=\"outcome\" *ngIf=\"hasItems(statistics.lastMatches?.home) || hasItems(statistics.lastMatches?.away)\">\n <div class=\"home-lastmatch\">\n <div class=\"participant\">\n <div class=\"participant-info\">{{ participants[0].name }}</div>\n </div>\n <ms-last-matches-performance\n *ngIf=\"isDataAvailableForHomeTeam\"\n [teamType]=\"teamType.Home\"\n [statistics]=\"statistics\"\n [showEventDates]=\"false\">\n </ms-last-matches-performance>\n <div class=\"last-matches-unavailable-message\" *ngIf=\"!isDataAvailableForHomeTeam\">{{ strNoDataAvailableMessage }}</div>\n </div>\n <div class=\"away-lastmatch\">\n <div class=\"participant participant-away\">\n <div class=\"participant-info\">{{ participants[1].name }}</div>\n </div>\n <ms-last-matches-performance\n *ngIf=\"isDataAvailableForAwayTeam\"\n [teamType]=\"teamType.Away\"\n [statistics]=\"statistics\"\n [showEventDates]=\"false\">\n </ms-last-matches-performance>\n <div class=\"last-matches-unavailable-message\" *ngIf=\"!isDataAvailableForAwayTeam\">{{ strNoDataAvailableMessage }}</div>\n </div>\n </div>\n <div class=\"won-lost-stats\">\n <div class=\"participant-home-avg\">{{ homeTeamAvgPoints }}</div>\n <div>{{ averagePointsLastMatchesText }}</div>\n <div class=\"participant-away-avg\">{{ awayTeamAvgPoints }}</div>\n </div>\n </div>\n <ms-stats-center [event]=\"event\" [inColumn]=\"inColumn\" [sportId]=\"sport\" [statsId]=\"statsId\"></ms-stats-center>\n</ms-last-matches>\n","import { ChangeDetectionStrategy, Component, HostBinding, OnChanges, OnInit } from '@angular/core';\n\nimport { FixtureResultStatistics } from '@cds/statistics/fixture';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { sum } from 'lodash-es';\n\nimport { TeamType } from '../../statistics.models';\nimport { StatisticsService } from '../../statistics.service';\nimport { LastMatchesComponent } from '../last-matches.component';\n\n@Component({\n selector: 'ms-basketball-last-matches',\n templateUrl: 'basketball-last-matches.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BasketballLastMatchesComponent extends LastMatchesComponent implements OnInit, OnChanges {\n @HostBinding('class') override className = 'basketball-last-matches';\n teamType = TeamType;\n homeTeamAvgPoints = '0.00';\n awayTeamAvgPoints = '0.00';\n averagePointsLastMatchesText = '';\n override ngOnInit(): void {\n super.ngOnInit();\n this.setAveragePoints();\n this.checkForDataAvailability();\n this.averagePointsLastMatchesText = this.sitecore.statistics.LastMatchesAveragePoints;\n }\n\n ngOnChanges(): void {\n this.setAveragePoints();\n this.checkForDataAvailability();\n }\n\n constructor(\n public override statisticsService: StatisticsService,\n public override sitecore: Sitecore,\n ) {\n super(statisticsService, sitecore);\n }\n\n private setAveragePoints(): void {\n if (!this.statistics.lastMatches) {\n return;\n }\n\n this.homeTeamAvgPoints = this.calculateAveragePoints(this.statistics.lastMatches.home).toFixed(2).toString();\n this.awayTeamAvgPoints = this.calculateAveragePoints(this.statistics.lastMatches.away).toFixed(2).toString();\n }\n\n private calculateAveragePoints(arrMatches: FixtureResultStatistics[]): number {\n return arrMatches && arrMatches.length > 0\n ? sum(arrMatches.map((match) => (match.overTimeScore ? match.overTimeScore.scored : match.fullTimeOrSetsScore.scored))) /\n arrMatches.length\n : 0.0;\n }\n}\n","<ms-head-to-head>\n <div class=\"overview\">\n <div class=\"participant-gauge\">\n <div class=\"participant\" *ngIf=\"participants?.length > 0\">{{ participants[0].name }}</div>\n <ms-gauge\n *ngIf=\"statistics.headToHead && statistics.headToHead.summary && statistics.headToHead.summary.team1\"\n [value]=\"statistics.headToHead!.summary.team1.ratio\"\n [text]=\"statistics.headToHead!.summary.team1.count\"\n [radius]=\"25\">\n </ms-gauge>\n </div>\n <div class=\"participant-gauge\">\n <div class=\"participant\" *ngIf=\"participants?.length > 1\">{{ participants[1].name }}</div>\n <ms-gauge\n *ngIf=\"statistics.headToHead && statistics.headToHead.summary && statistics.headToHead.summary.team2\"\n [value]=\"statistics.headToHead!.summary.team2.ratio\"\n [text]=\"statistics.headToHead!.summary.team2.count\"\n [radius]=\"25\">\n </ms-gauge>\n </div>\n </div>\n <ng-container *ngIf=\"expand\">\n <ms-head-to-head-event-details\n [participants]=\"participants\"\n [statistics]=\"statistics\"\n [statsId]=\"statsId\"\n [sport]=\"sport\"\n [event]=\"event\"\n [inColumn]=\"inColumn\"></ms-head-to-head-event-details>\n </ng-container>\n</ms-head-to-head>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { StatisticsService } from '../../statistics.service';\nimport { HeadToHeadComponent } from '../head-to-head.component';\n\n@Component({\n selector: 'ms-basketball-head-to-head',\n templateUrl: 'basketball-head-to-head.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BasketballHeadToHeadComponent extends HeadToHeadComponent {\n @Input() expand: boolean;\n\n @HostBinding('class') override className = 'basketball-head-to-head';\n constructor(\n public override statisticsService: StatisticsService,\n public override sitecore: Sitecore,\n ) {\n super(statisticsService, sitecore);\n super.ngOnInit();\n }\n}\n","<ms-league-table>\n <div class=\"container\" [class.container-expand]=\"expand\">\n <div class=\"header\">\n <div class=\"league-name\" marquee>{{ league }}</div>\n <div>{{ sitecore.statistics.MatchesPlayedAbr || 'P' }}</div>\n <div>{{ sitecore.statistics.WonAbr || 'W' }}</div>\n <div>{{ sitecore.statistics.LostAbr || 'L' }}</div>\n <div>{{ strPointsColumnText }}</div>\n </div>\n\n <div\n class=\"standing\"\n *ngFor=\"let current of leagueTableData; let i = index\"\n [ngClass]=\"{\n 'league-row2-opacity': i === 1 && !this.expand,\n 'last-row': i === leagueTableData.length - 1,\n 'league-row3-opacity': i === 2 && !this.expand,\n }\">\n <div class=\"team-rank\">{{ current.positionTotal }}</div>\n <div class=\"team\">{{ current.team.teamName }}</div>\n <div>{{ current.matchesTotal }}</div>\n <div>{{ current.winTotal }}</div>\n <div>{{ current.lossTotal }}</div>\n <div>{{ current.points }}</div>\n </div>\n </div>\n <ms-stats-center *ngIf=\"expand\" [event]=\"event\" [inColumn]=\"inColumn\" [sportId]=\"sport\" [statsId]=\"statsId\"></ms-stats-center>\n</ms-league-table>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\n\nimport { CompetitionTableRow } from '@cds/statistics/competition';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { cloneDeep } from 'lodash-es';\n\nimport { StatisticsService } from '../../statistics.service';\nimport { LeagueTableComponent } from '.././league-table.component';\n\n@Component({\n selector: 'ms-basketball-league-table',\n templateUrl: 'basketball-league-table.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BasketballLeagueTableComponent extends LeagueTableComponent implements OnInit, OnChanges {\n @Input() expand: boolean;\n @HostBinding('class') override className = 'basketball-league-table';\n\n leagueTableData: CompetitionTableRow[] = [];\n bottomSpace = '';\n strPointsColumnText = '';\n\n constructor(\n public override statisticsService: StatisticsService,\n public override sitecore: Sitecore,\n ) {\n super(statisticsService, sitecore);\n super.ngOnInit();\n }\n\n override ngOnInit(): void {\n this.hasDraw = this.statisticsService.hasDraw(this.sport);\n this.setLeagueTableData();\n }\n\n ngOnChanges(): void {\n this.setLeagueTableData();\n }\n\n private setLeagueTableData(): void {\n const leagues = cloneDeep(this.statistics.leagues);\n if (!leagues) {\n return;\n }\n\n this.leagueTableData = this.expand ? leagues : leagues.slice(0, 3);\n\n if (leagues.length && leagues[0].points) {\n this.strPointsColumnText = this.sitecore.statistics.PointsAbr;\n\n return;\n }\n\n this.leagueTableData.forEach((row) => {\n row.points = row.winTotal && row.matchesTotal ? (row.winTotal / row.matchesTotal).toFixed(3) : '0.000';\n });\n\n this.strPointsColumnText = this.sitecore.statistics.PercentageAbr;\n }\n}\n","<ng-container *ngIf=\"statistics\">\n <ms-statistics-navigation [tabs]=\"tabList\" [event]=\"event\" (change)=\"onTabChange($event)\"> </ms-statistics-navigation>\n <ng-container *ngIf=\"tab\" [ngSwitch]=\"tab?.id\">\n <ng-container *ngIf=\"event.sport.id === sportType.Tennis\">\n <ng-container *ngSwitchCase=\"tabType.HeadToHead\">\n <ms-tennis-head-to-head\n *ngIf=\"tab?.enabled; else emptyStatsOnHeadToHeadNoData\"\n [sport]=\"event.sport.id\"\n [participants]=\"event.participants\"\n [statistics]=\"statistics\"\n [expand]=\"expand\"\n [event]=\"event\"\n [inColumn]=\"inColumn\"\n [statsId]=\"event.statsId\">\n </ms-tennis-head-to-head>\n </ng-container>\n <ng-container *ngSwitchCase=\"tabType.LastMatches\">\n <ms-tennis-last-matches\n *ngIf=\"tab?.enabled; else emptyStatsOnLastMatches\"\n [sport]=\"event.sport.id\"\n [participants]=\"event.participants\"\n [statistics]=\"statistics\"\n [event]=\"event\"\n [inColumn]=\"inColumn\"\n [statsId]=\"event.statsId\"></ms-tennis-last-matches>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"event.sport.id === sportType.Soccer\">\n <ng-container *ngSwitchCase=\"tabType.HeadToHead\">\n <ms-football-head-to-head\n *ngIf=\"tab?.enabled; else emptyStatsOnHeadToHeadNoData\"\n [sport]=\"event.sport.id\"\n [participants]=\"event.participants\"\n [statistics]=\"statistics\"\n [statsId]=\"event.statsId\"\n [event]=\"event\"\n [inColumn]=\"inColumn\"\n [expand]=\"expand\">\n </ms-football-head-to-head>\n </ng-container>\n <ms-football-league-table\n *ngSwitchCase=\"tabType.LeagueTable\"\n [sport]=\"event.sport.id\"\n [league]=\"event.league.name\"\n [statistics]=\"statistics\"\n [event]=\"event\"\n [statsId]=\"event.statsId\"\n [expand]=\"expand\"\n [inColumn]=\"inColumn\"\n [statsId]=\"event.statsId\">\n </ms-football-league-table>\n <ng-container *ngSwitchCase=\"tabType.LastMatches\">\n <ms-football-last-matches\n *ngIf=\"tab?.enabled; else emptyStatsOnLastMatches\"\n [sport]=\"event.sport.id\"\n [participants]=\"event.participants\"\n [statistics]=\"statistics\"\n [event]=\"event\"\n [statsId]=\"event.statsId\"\n [inColumn]=\"inColumn\">\n </ms-football-last-matches>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"event.sport.id === sportType.Basketball\">\n <ng-container *ngSwitchCase=\"tabType.HeadToHead\">\n <ms-basketball-head-to-head\n *ngIf=\"tab?.enabled; else emptyStatsOnHeadToHeadNoData\"\n [sport]=\"event.sport.id\"\n [participants]=\"event.participants\"\n [statistics]=\"statistics\"\n [expand]=\"expand\"\n [event]=\"event\"\n [inColumn]=\"inColumn\"\n [statsId]=\"event.statsId\">\n </ms-basketball-head-to-head>\n </ng-container>\n <ms-basketball-league-table\n *ngSwitchCase=\"tabType.LeagueTable\"\n [sport]=\"event.sport.id\"\n [league]=\"event.league.name\"\n [statistics]=\"statistics\"\n [event]=\"event\"\n [expand]=\"expand\"\n [inColumn]=\"inColumn\"\n [statsId]=\"event.statsId\">\n </ms-basketball-league-table>\n <ng-container *ngSwitchCase=\"tabType.LastMatches\">\n <ms-basketball-last-matches\n *ngIf=\"tab?.enabled; else emptyStatsOnLastMatches\"\n [sport]=\"event.sport.id\"\n [participants]=\"event.participants\"\n [statistics]=\"statistics\"\n [statsId]=\"event.statsId\"\n [event]=\"event\"\n [inColumn]=\"inColumn\"></ms-basketball-last-matches>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #emptyStatsOnLastMatches>\n <ms-empty-stats\n [event]=\"event\"\n [inColumn]=\"inColumn\"\n [message]=\"sitecore.statistics.LastMatchesNoData\"\n [statsId]=\"event.statsId\"\n [sportId]=\"event.sport.id\">\n </ms-empty-stats>\n</ng-template>\n\n<ng-template #emptyStatsOnHeadToHeadNoData>\n <ms-empty-stats\n [event]=\"event\"\n [inColumn]=\"inColumn\"\n [message]=\"sitecore.statistics.HeadToHeadNoData\"\n [statsId]=\"event.statsId\"\n [sportId]=\"event.sport.id\">\n </ms-empty-stats>\n</ng-template>\n","import { MediaMatcher } from '@angular/cdk/layout';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { ColumnLayoutService } from '../../layout/column-layout.service';\nimport { ColumnSize } from '../../layout/layout.model';\nimport { StatisticsTab } from '../models';\nimport { LastEvents, PreMatchStatisticsTabType, StatisticsModel } from '../statistics.models';\nimport { StatisticsService } from '../statistics.service';\n\n@Component({\n selector: 'ms-pre-match-statistics',\n templateUrl: 'pre-match-statistics.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PreMatchStatisticsComponent implements OnDestroy, OnChanges {\n private readonly destroyRef = inject(DestroyRef);\n constructor(\n public sitecore: Sitecore,\n private statisticsService: StatisticsService,\n private deviceService: DeviceService,\n private mediaMatcher: MediaMatcher,\n private dispatcher: DispatcherService,\n private columnLayoutService: ColumnLayoutService,\n private changedetector: ChangeDetectorRef,\n ) {}\n\n @Input() statistics: StatisticsModel;\n @Input() event: EventModel;\n @Input() expand: boolean;\n @Input() inColumn: boolean;\n @Output() tabChange = new EventEmitter<StatisticsTab>();\n\n tab?: StatisticsTab;\n tabList: StatisticsTab[];\n tabType = PreMatchStatisticsTabType;\n sportType = SportConstant;\n tabTitles: string[];\n matcher: MediaQueryList;\n\n @HostBinding()\n get class(): string {\n return 'pre-match-statistics';\n }\n\n ngOnChanges(changes: ISimpleChanges<PreMatchStatisticsComponent>): void {\n if (changes.event && !changes.event.firstChange && changes.event.previousValue.id !== changes.event.currentValue.id) {\n this.dispatcher.dispatch('NEW_EVENT_SELECTED', true);\n }\n if (changes.statistics || changes.event) {\n this.setTabTitles();\n this.setTabs();\n\n if (this.hasMatches('away')) {\n this.statistics.lastMatches!.away = this.statistics.lastMatches!.away.reverse();\n }\n\n this.subscribeToLayoutChange();\n }\n }\n\n ngOnDestroy(): void {\n if (this.matcher && this.matcher.removeEventListener) {\n this.matcher.removeEventListener('change', this.receiveMediaMatchMessage);\n }\n }\n\n onTabChange(event: StatisticsTab): void {\n this.tab = event;\n this.tabChange.emit(this.tab);\n }\n\n private subscribeToLayoutChange(): void {\n if (!this.deviceService.isMobile) {\n this.columnLayoutService.rightColumnSizeChanged.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((columnSize) => {\n this.changeTabTitle(columnSize.size === ColumnSize.Default);\n });\n } else {\n this.matcher = this.mediaMatcher.matchMedia('(min-width: 0px) and (max-width: 320px)');\n this.changeTabTitle(this.matcher.matches);\n\n if (this.matcher && this.matcher.addEventListener) {\n this.matcher.addEventListener('change', this.receiveMediaMatchMessage);\n }\n }\n }\n\n private receiveMediaMatchMessage = (event: MediaQueryListEvent) => {\n if (event.matches) {\n this.setSmallScreenTabTitle();\n this.setTabs();\n } else {\n this.setTabTitles();\n this.setTabs();\n }\n };\n\n private setTabs(isLayoutChanged: boolean = false): void {\n this.tabList = [];\n this.tabList.push({\n id: this.tabType.HeadToHead,\n title: this.tabTitles[0],\n enabled: !!this.statistics.headToHead && this.statistics.headToHead.events && this.statistics.headToHead.events.length > 0,\n active: false,\n });\n if (this.statistics.leagues && this.statisticsService.hasLeagueStatistics(this.event.sport.id)) {\n this.tabList.push({\n id: this.tabType.LeagueTable,\n title: this.tabTitles[1],\n enabled: !!this.statistics.leagues && this.statistics.leagues.length > 0,\n active: false,\n });\n }\n this.tabList.push({\n id: this.tabType.LastMatches,\n title: this.tabTitles[2],\n enabled: this.hasMatches('home') || this.hasMatches('away'),\n active: false,\n });\n if (this.event.sport.id === SportConstant.Soccer) {\n const sortOrder = [PreMatchStatisticsTabType.LastMatches, PreMatchStatisticsTabType.HeadToHead, PreMatchStatisticsTabType.LeagueTable];\n this.tabList.sort(function (a, b) {\n return sortOrder.indexOf(a.id) - sortOrder.indexOf(b.id);\n });\n }\n if (isLayoutChanged) {\n const currentTabId = this.tab && this.tab.id;\n this.tabList.find((tab) => tab.id === currentTabId)!.active = true;\n this.changedetector.detectChanges();\n\n return;\n }\n\n this.tab = this.tabList.filter((tab) => tab.enabled).shift();\n\n if (this.tab) {\n this.tab.active = true;\n } else {\n if (this.tabList.length) {\n this.tab = this.tabList[0];\n this.tab.active = true;\n }\n }\n\n this.tabChange.emit(this.tab);\n }\n\n private hasMatches(source: keyof LastEvents): boolean {\n const matches = this.statistics.lastMatches;\n\n return !!matches && matches[source] && matches[source].length > 0;\n }\n\n private setSmallScreenTabTitle(): void {\n this.tabTitles = [];\n this.tabTitles.push(this.sitecore.statistics.H2H);\n this.tabTitles.push(this.sitecore.statistics.LeagueTable);\n this.tabTitles.push(this.sitecore.statistics.Last5);\n }\n\n private setTabTitles(): void {\n this.tabTitles = [];\n this.tabTitles.push(this.sitecore.statistics.HeadToHead);\n this.tabTitles.push(this.sitecore.statistics.LeagueTable);\n this.tabTitles.push(this.sitecore.statistics.LastMatches);\n }\n\n private changeTabTitle(smallScreen: boolean): void {\n if (smallScreen) {\n this.setSmallScreenTabTitle();\n } else {\n this.setTabTitles();\n }\n\n this.setTabs(true);\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { SummaryStatistics } from './models';\n\n@Component({\n selector: 'ms-statistics-expander-indicators',\n templateUrl: './statistics-expander-indicators.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StatisticsExpanderIndicatorsComponent {\n @Input() statistics: SummaryStatistics;\n @HostBinding('class') className = 'statistics-expander-indicators';\n}\n","<vn-icon name=\"sports-sb-card\" class=\"stats-icons red\" size=\"10\"></vn-icon> <span class=\"red-cards-count\">{{ statistics.redcards }}</span>\n<vn-icon name=\"sports-sb-card\" class=\"stats-icons yellow\" size=\"10\"></vn-icon> <span class=\"yellow-cards-count\">{{ statistics.yellowcards }}</span>\n<vn-icon name=\"sports-sb-corner\" size=\"10\"></vn-icon> <span class=\"corners-count\">{{ statistics.corners }}</span>\n","@if (indicator && !expand) {\n <ms-statistics-expander-indicators class=\"left\" [statistics]=\"summary1\"> </ms-statistics-expander-indicators>\n}\n<div class=\"statistics-toggle\" [ngClass]=\"isMobile ? 'statistics-toggle-mobile' : ''\" [class.expanded]=\"expand\" (click)=\"toggled()\">\n @if (expand) {\n <div>{{ sitecore.globalMessages.Less }}</div>\n } @else {\n <div>{{ sitecore.globalMessages.More }}</div>\n }\n <div>\n @if (expand) {\n <vn-icon name=\"theme-up\" size=\"11\" [ngClass]=\"epcotEnabled ? 'stats-icon-theme-up' : 'stats-theme-icon'\"></vn-icon>\n } @else {\n <vn-icon name=\"theme-down\" size=\"11\" class=\"stats-theme-icon\"></vn-icon>\n }\n </div>\n</div>\n@if (indicator && !expand) {\n <ms-statistics-expander-indicators class=\"right\" [statistics]=\"summary2\"> </ms-statistics-expander-indicators>\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel, EventStatistics } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\nimport { SummaryStatistics } from './models';\n\n@Component({\n selector: 'ms-statistics-expander',\n templateUrl: './statistics-expander.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StatisticsExpanderComponent implements OnChanges {\n @Input() statistics: EventStatistics;\n @Input() indicator: boolean;\n @Input() expandForMore: string;\n @Input() event: EventModel;\n @Input() expand: boolean;\n @Input() inColumn: boolean;\n @Output() expandChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @HostBinding()\n get class(): string {\n if (this.indicator && !this.expand) {\n return 'statistics-expander with-indicators';\n } else if (this.expand) {\n return 'statistics-expander expanded';\n } else {\n return 'statistics-expander';\n }\n }\n\n summary1: SummaryStatistics;\n summary2: SummaryStatistics;\n isMobile = false;\n epcotEnabled: boolean;\n\n constructor(\n public sitecore: Sitecore,\n private deviceService: DeviceService,\n private dispatcher: DispatcherService,\n private trackingService: TrackingService,\n private epcotConfigService: EpcotConfigService,\n ) {\n this.isMobile = this.deviceService.isMobile;\n this.epcotEnabled = this.epcotConfigService.isEnabled();\n this.dispatcher\n .on<boolean>('NEW_EVENT_SELECTED')\n .pipe(takeUntilDestroyed())\n .subscribe((state) => {\n this.expand = false;\n this.expandChange.next(this.expand);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['statistics']) {\n this.setStatistics();\n }\n }\n\n toggled(): void {\n this.expand = !this.expand;\n this.expandChange.next(this.expand);\n this.trackExpandOrCollapse(this.event.sport.id, this.event.id);\n }\n\n private trackExpandOrCollapse(sportId: number, eventId: string): void {\n this.trackingService.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Media Module',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'Media Module Interactions',\n [trackingConstants.COMPONENT_ACTION_EVENT]: this.expand ? 'expand' : 'collapse',\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: 'stats tab',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: this.expand ? 'more' : 'less',\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.SPORT_EVENT_ID]: eventId,\n [trackingConstants.COMPONENT_MODULE_POSITION]: this.inColumn ? 'right' : 'center',\n [trackingConstants.SPORT_ID]: sportId,\n [trackingConstants.COMPONENT_CONTENT_POSITION]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_MODULE_NAME]: 'Media',\n [trackingConstants.COMPONENT_MODULE_CUSTOM_NAME]: 'media',\n [trackingConstants.COMPONENT_MODULE_SOURCE]: 'standard Module',\n });\n }\n\n private setStatistics(): void {\n const types: (keyof SummaryStatistics)[] = ['redcards', 'yellowcards', 'corners'];\n\n this.summary1 = {};\n this.summary2 = {};\n\n types.forEach((type) => {\n this.summary1[type] = this.getStat(type as keyof EventStatistics, 'participant1');\n this.summary2[type] = this.getStat(type as keyof EventStatistics, 'participant2');\n });\n }\n\n private getStat(name: keyof EventStatistics, participant: string): number {\n let value = 0;\n\n if (this.statistics && this.statistics[name]) {\n ['firstHalf', 'secondHalf'].forEach((period) => {\n value += this.statistics[name][period] ? this.statistics[name][period][participant] : 0;\n });\n }\n\n return value;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DsButton } from '@frontend/ui/button';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { StatsLastMatchesPerformanceModule } from '../stats-last-matches-performance/stats-last-matches-performance.module';\nimport { TimerModule } from '../timers/timer.module';\nimport { EventHeaderComponent } from './event-header.component';\nimport { GaugeComponent } from './gauge/gauge.component';\nimport { HorizontalBarComponent } from './horizontal-bar.component';\nimport { LiveBarStatisticsCardComponent } from './live/live-bar-statistics-card/live-bar-statistics-card.component';\nimport { LiveBasketballStatisticsComponent } from './live/live-basketball-statistics.component';\nimport { LiveFootballStatisticsComponent } from './live/live-football-statistics.component';\nimport { LiveStatisticsCardComponent } from './live/live-statistics-card/live-statistics-card.component';\nimport { LiveTennisStatisticsComponent } from './live/live-tennis-statistics.component';\nimport { SocketService } from './perform/perform-socket.service';\nimport { PerformStatisticsItemComponent } from './perform/perform-statistics-item.component';\nimport { PerformStatisticsComponent } from './perform/perform-statistics.component';\nimport { PerformStatisticsService } from './perform/perform-statistics.service';\nimport { BasketballHeadToHeadComponent } from './pre-match/basketball/basketball-head-to-head.component';\nimport { BasketballLastMatchesComponent } from './pre-match/basketball/basketball-last-matches.component';\nimport { BasketballLeagueTableComponent } from './pre-match/basketball/basketball-league-table.component';\nimport { EmptyStatsComponent } from './pre-match/empty-stats.component';\nimport { FootballHeadToHeadComponent } from './pre-match/football/football-head-to-head.component';\nimport { FootballLastMatchesComponent } from './pre-match/football/football-last-matches.component';\nimport { FootballLeagueTableComponent } from './pre-match/football/football-league-table.component';\nimport { HeadToHeadEventDetailsComponent } from './pre-match/head-to-head-event-details.component';\nimport { HeadToHeadComponent } from './pre-match/head-to-head.component';\nimport { LastMatchesComponent } from './pre-match/last-matches.component';\nimport { LeagueTableComponent } from './pre-match/league-table.component';\nimport { PreMatchStatisticsComponent } from './pre-match/pre-match-statistics.component';\nimport { TennisHeadToHeadComponent } from './pre-match/tennis/tennis-head-to-head.component';\nimport { TennisLastMatchesComponent } from './pre-match/tennis/tennis-last-matches.component';\nimport { StatisticsApiService } from './statistics-api.service';\nimport { StatisticsExpanderIndicatorsComponent } from './statistics-expander-indicators.component';\nimport { StatisticsExpanderComponent } from './statistics-expander.component';\nimport { StatisticsNavigationComponent } from './statistics-navigation.component';\nimport { StatsCenterComponent } from './stats-center.component';\n\nconst declarations = [\n PerformStatisticsItemComponent,\n PerformStatisticsComponent,\n StatisticsExpanderIndicatorsComponent,\n StatisticsExpanderComponent,\n StatisticsNavigationComponent,\n LiveTennisStatisticsComponent,\n StatisticsNavigationComponent,\n PreMatchStatisticsComponent,\n LiveFootballStatisticsComponent,\n LiveBasketballStatisticsComponent,\n HeadToHeadComponent,\n LeagueTableComponent,\n LastMatchesComponent,\n EventHeaderComponent,\n FootballHeadToHeadComponent,\n FootballLeagueTableComponent,\n FootballLastMatchesComponent,\n StatisticsNavigationComponent,\n LiveStatisticsCardComponent,\n LiveBarStatisticsCardComponent,\n EmptyStatsComponent,\n StatsCenterComponent,\n TennisHeadToHeadComponent,\n TennisLastMatchesComponent,\n BasketballLastMatchesComponent,\n BasketballHeadToHeadComponent,\n BasketballLeagueTableComponent,\n HeadToHeadEventDetailsComponent,\n HorizontalBarComponent,\n GaugeComponent,\n];\n@NgModule({\n imports: [CommonModule, TimerModule, StatsLastMatchesPerformanceModule, IconCustomComponent, DsButton],\n declarations,\n exports: declarations,\n providers: [PerformStatisticsService, SocketService, StatisticsApiService],\n})\nexport class StatisticsSharedModule {}\n"],"names":["require_parseuri","__commonJSMin","exports","module","re","parts","str","src","b","e","m","uri","i","pathNames","queryKey","obj","path","regx","names","query","data","$0","$1","$2","require_ms","s","h","d","y","val","options","type","parse","fmtLong","fmtShort","match","n","ms","plural","name","require_debug","createDebug","coerce","disable","enable","enabled","selectColor","namespace","hash","prevTime","debug","self","curr","args","index","format","formatter","logFn","destroy","namespaces","split","len","instance","require_browser","log","formatArgs","save","load","useColors","localstorage","v","err","c","lastC","r","require_url","parseuri","url","loc","ipv6","host","require_component_emitter","Emitter","mixin","key","event","fn","on","callbacks","cb","require_isarray","toString","arr","require_is_buffer","isBuf","withNativeBuffer","withNativeArrayBuffer","isView","require_binary","isArray","withNativeBlob","withNativeFile","packet","buffers","packetData","pack","_deconstructPacket","placeholder","newData","_reconstructPacket","isIndexValid","callback","_removeBlobs","curKey","containingObject","pendingBlobs","fileReader","bloblessData","require_socket","binary","Encoder","Decoder","ERROR_PACKET","encodeAsBinary","encoding","encodeAsString","payload","tryStringify","writeEncoding","deconstruction","decodeString","BinaryReconstructor","isPayloadValid","p","error","start","buf","next","tryParse","binData","msg","require_has_cors","require_globalThis_browser","require_xmlhttprequest_browser","hasCORS","globalThis","opts","xdomain","xscheme","enablesXDR","require_keys","has","require_has_binary2","hasBinary","l","require_arraybuffer","arraybuffer","end","bytes","abv","result","ii","require_after","after","count","err_cb","bail","noop","proxy","require_utf8","stringFromCharCode","ucs2decode","string","output","counter","length","value","extra","ucs2encode","array","checkScalarValue","codePoint","strict","createByte","shift","encodeCodePoint","symbol","utf8encode","codePoints","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","byteArray","decodeSymbol","byte1","byte2","byte3","byte4","utf8decode","tmp","require_base64_arraybuffer","chars","base64","bufferLength","encoded1","encoded2","encoded3","encoded4","require_blob","BlobBuilder","blobSupported","a","blobSupportsArrayBufferView","blobBuilderSupported","mapArrayBufferViews","ary","chunk","copy","BlobBuilderConstructor","bb","part","BlobConstructor","keys","sliceBuffer","utf8","base64encoder","isAndroid","isPhantomJS","dontSendBlobs","packets","packetslist","Blob","supportsBinary","encodeArrayBuffer","encodeBlob","encodeBase64Object","encoded","message","contentArray","resultBuffer","encodeBlobAsArrayBuffer","fr","blob","b64","b64data","typed","basic","binaryType","tryDecode","asArray","rest","isBinary","setLengthHeader","encodeOne","doneCallback","map","results","each","done","eachWithIndex","el","chr","ret","encodedPackets","totalLength","acc","resultArray","bufferIndex","isString","ab","view","lenStr","binaryIdentifier","lengthAry","bufferTail","tailArray","msgLength","total","buffer","require_transport","parser","Transport","desc","require_parseqs","qs","qry","pairs","pair","require_component_inherit","require_yeast","alphabet","seed","prev","encode","num","decode","decoded","yeast","now","require_polling","parseqs","inherit","Polling","hasXHR2","XMLHttpRequest","xhr","forceBase64","onPause","pause","close","callbackfn","schema","port","require_polling_xhr","XHR","Request","empty","isSSL","req","contentType","fromError","unloadHandler","terminationEvent","require_polling_jsonp","JSONPPolling","rNewline","rEscapedNewline","script","insertAt","isUAgecko","iframe","form","area","id","complete","initIframe","html","require_websocket","BrowserWebSocket","NodeWebSocket","WebSocketImpl","WS","protocols","ev","require_transports","JSONP","websocket","polling","xd","xs","jsonp","require_indexof","indexOf","transports","Socket","clone","transport","o","failed","onTransportOpen","upgradeLosesBinary","cleanup","freezeTransport","onerror","onTransportClose","onclose","onupgrade","to","timeout","waitForUpgrade","cleanupAndClose","reason","upgrades","filteredUpgrades","j","require_lib","require_to_array","toArray","list","require_on","require_component_bind","slice","bind","hasBin","events","emit","io","nsp","sameNamespace","rootNamespaceError","sent","ack","compress","require_backo2","Backoff","rand","deviation","min","max","jitter","require_manager","eio","Manager","_parser","socket","openSub","errorSub","timer","onConnecting","subsLength","sub","delay","attempt","lookup","cache","parsed","source","newConnection","ɵɵelement","ɵɵproperty","ɵɵpureFunction1","_c0","ctx_r0","teamColors","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate2","sitecoreEventDetails","eventDetails","Sets","tennisScore","setScore","period","setPoint","ɵɵtextInterpolate","score","participant1","participant2","periodGameScore","live","startDate","scoreboard","ɵɵtemplate","EventHeaderComponent_div_5_div_1_Template","EventHeaderComponent_div_5_div_2_Template","EventHeaderComponent_div_5_div_3_Template","EventHeaderComponent_div_5_ms_event_timer_4_Template","sport","sportType","Tennis","started","Soccer","Basketball","isTimerVisible","EventHeaderComponent","constructor","scoreboardBackgrounds","indicator","className","inColumn","SportConstant","ngOnChanges","bgImage","undefined","isBespokesport","isBespokeSport","isEsport","bgImageSrc","backgrounds","find","x","sportId","getScore","ɵɵdirectiveInject","SitecoreEventDetailsConfig","ScoreboardBackgroundConfig","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ɵɵstyleProp","EventHeaderComponent_div_0_Template","EventHeaderComponent_div_4_Template","EventHeaderComponent_div_5_Template","EventHeaderComponent_div_9_Template","EventHeaderComponent_div_10_Template","participants","currentlyServing","F","qt","ks","_EventHeaderComponent","PerformStatisticsItem","LiveTennisStatsTabType","LiveBasketBallStatsTabType","PerformStatisticsItemComponent","styles1","styles2","changes","statistics","IsDisabledWithNoData","updateBars","calculateDimensions","leftValue","value1","rightValue","value2","firstPlayerPercentage","secondPlayerPercentage","wholeValue","percentagePart","left","right","width","backgroundColor","title","Y","_PerformStatisticsItemComponent","rt","ɵɵlistener","tab_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","setActive","StatisticsNavigationComponent_li_1_div_5_Template","ɵɵclassProp","forceDisabled","active","isLast_r4","StatisticsNavigationComponent","trackingService","change","EventEmitter","EpcotModule","Statsindicator","initialActiveTab","_a","tabs","t","activeTab","forEach","tab","trackStatsNavigation","track","trackingConstants","EVENT_TRACKING","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","COMPONENT_ACTION_EVENT","COMPONENT_POSITION_EVENT","COMPONENT_EVENT_DETAILS","COMPONENT_LOCATION_EVENT","COMPONENT_URL_CLICKED","NOT_APPLICABLE","TrackingService","StatisticsNavigationComponent_li_1_Template","ot","_StatisticsNavigationComponent","card","suffix","LiveStatisticsCardComponent","player1Jersey","player2Jersey","ngOnInit","setJersyColors","shirtColor1","shirtColor2","inputs","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","LiveStatisticsCardComponent_Conditional_9_Template","LiveStatisticsCardComponent_Conditional_17_Template","cardName","ɵɵconditional","icon","class","Tt","_LiveStatisticsCardComponent","$event","ctx_r1","tabChange","tabList","pointsCard","card_r3","performRaceStat_r4","values","colors","ɵɵrepeaterCreate","LiveBasketballStatisticsComponent_Conditional_0_Conditional_5_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","performRaceStats","LiveBasketballStatisticsComponent_Conditional_0_Conditional_0_Template","LiveBasketballStatisticsComponent_Conditional_0_Conditional_2_Template","LiveBasketballStatisticsComponent_Conditional_0_div_4_Template","LiveBasketballStatisticsComponent_Conditional_0_Conditional_5_Template","expand","cards","LiveBasketballStatisticsComponent","hasStats","sitecore","tabType","Points","initTabs","setTabs","setCards","setCardsCount","setTeamColors","setPerformStats","matchType","getTab","FirstQuarter","SecondQuarter","ThirdQuarter","FourthQuarter","RegularTime","scoreboardChange","firstChange","getValue","target","participant","item","threePointers","twoPointers","freeThrows","freeThrowsTotal","totalFreeThrows","freeThrowsScored","Number","toFixed","fouls","rebounds","assists","points","races","raceTo10","raceTo20","ThreePointers","TwoPointers","FreeThrows","FoulsCommitted","push","ReBounds","Assists","RaceTo10","RaceTo20","homeTeamColor","awayTeamColor","race","periods","previous","previousActive","filter","pop","flash","actvieTab","perfStat","Boolean","Sitecore","I","LiveBasketballStatisticsComponent_Conditional_0_Template","_LiveBasketballStatisticsComponent","LiveFootballStatisticsComponent_Conditional_0_Conditional_0_Template","LiveFootballStatisticsComponent_Conditional_0_For_3_Template","LiveStatisticsTabType","LiveFootballStatisticsComponent","FirstHalf","SecondHalf","updateTabsWhenExtraTime","ExtraTime","yellowcards","goals","corners","redcards","penalties","substitutions","YellowCards","Goals","Corners","RedCards","Penalties","Substitutions","LiveFootballStatisticsComponent_Conditional_0_Template","_LiveFootballStatisticsComponent","performStat_r3","performStat_r4","LiveTennisStatisticsComponent_ng_container_0_div_4_ms_perform_statistics_item_1_Template","ɵɵelementContainerStart","LiveTennisStatisticsComponent_ng_container_0_ms_statistics_navigation_1_Template","LiveTennisStatisticsComponent_ng_container_0_ms_perform_statistics_item_3_Template","LiveTennisStatisticsComponent_ng_container_0_div_4_Template","O","performStats","LiveTennisStatisticsComponent","showVisitStatCenter","FirstSet","SecondSet","ThirdSet","FourthSet","FifthhSet","currentValue","previousValue","aces","doubleFaults","breaks","winPointsPercentage","raceTo15","RaceTo15","UpdateActiveTabTitle","previousActiveTab","setPerformStatsData","perfStats","LiveTennisStatisticsComponent_ng_container_0_Template","_LiveTennisStatisticsComponent","RunningBallApi","cdsApiServiceFactory","cdsApi","endpoint","getConnectionInfo","fixtureId","get","ɵɵinject","CDS_API_FACTORY","_t","factory","ɵfac","providedIn","_RunningBallApi","import_socket","Na","PerformSocket","onMessage","BehaviorSubject","disconnect","connect","disconnected","SocketService","loggerFactory","logger","getLogger","failedAttempts","ioSocket","autoConnect","LoggerFactory","_SocketService","PerformStatisticsService","runningBallApi","socketService","parseStatistics","ActiveMQMessage","parsedData","JSON","MLU","ST","SI","attacks","parseStatisticValue","AT","dangerousAttacks","DAT","totalShots","SH","shotsOnTarget","SHG","freeKicks","FK","parseInt","getZeroStatsItem","getStatistics","eventId","__async","promise","getStatisticsInternal","then","isStreamInCache","stream","connection","getConnection","status","addToCache","getUrl","createStream","firstValueFrom","Observable","observer","messageSubscription","subscribe","unsubscribe","pipe","publishReplay","refCount","connInfo","ipAddress","token","getZeroStats","_PerformStatisticsService","DangerousAttacks","TotalShots","ShotsOnTarget","FreeKicks","PerformStatisticsComponent","performStatisticsService","statisticsMissing","processStatistics","destroyed","subscription","finished","isFirstChange","ngOnDestroy","PerformStatisticsComponent_ng_container_0_Template","_PerformStatisticsComponent","StatisticsService","statisticsApi","statisticsConfig","allowedStatSources","sportsWithLeagueTable","sportsWithDraw","AmericanFootball","Icehockey","Handball","Rugby","whenReady","switchMap","hasLeagueStats","hasFixtureStats","includes","offerSource","of","StatisticsModel","getStatsInternal","league","parentLeagueId","viewType","stageId","groupId","hasStatistics","hasStarted","hasPerformStatistics","isPerformStatsEnabled","runningBallDataId","hasLeagueStatistics","hasDraw","hasLastEvents","team","lastEvents","hasItems","getResultStats","stats","_b","_c","_d","resultStats","eventStats","homeTeam","head2Head","awayTeam","headToHead","getHeadToHeadStats","lastMatches","home","away","filterLastMatches","scoreStatistics","matchesStatistics","averageScore","getAverageScore","StatisticsModelStatus","Success","leagueStats","leagues","leagueId","getStats","getSportStats","catchError","NoConnection","matches","filterMatches","excluded","toUpper","filtered","fixtureOutcome","orderBy","dateOfEvent","collection","summary","getHeadToHeadRatio","eventNr","reduce","outcome","toLowerCase","won","draw","lost","lostafterovertime","lostafterpenalty","wonafterovertime","wonafterpenalty","team1","ratio","calculateRatio","team2","fraction","Math","round","getTennisStats","associationType","wonLostStatistics","trim","associationName","getAverageScoreItem","totalHome","totalHomeScored","totalHomeConceded","totalAway","totalAwayScored","totalAwayConceded","totalScored","totalConceded","scored","calculateAverage","totalPlayedHome","conceded","totalPlayedAway","totalPlayedOverall","StatisticsApiService","StatisticsConfig","_StatisticsService","openPopup","StatsCenter","StatsCenterComponent","betRadarStatistics","mediaConfig","statsId","showStatsCenterButton","SPORT_EVENT_ID","SPORT_ID","COMPONENT_MODULE_POSITION","COMPONENT_CONTENT_POSITION","COMPONENT_MODULE_NAME","COMPONENT_MODULE_CUSTOM_NAME","COMPONENT_MODULE_SOURCE","open","BetRadarStatisticsService","MediaConfig","StatsCenterComponent_div_0_Template","_StatsCenterComponent","EmptyStatsComponent","_EmptyStatsComponent","HeadToHeadComponent","statisticsService","ɵɵprojection","_HeadToHeadComponent","hs","ɵɵpipeBind2","match_r1","ɵɵtextInterpolate1","overTimeScore","fullTimeOrSetsScore","HeadToHeadEventDetailsComponent_ng_container_0_div_1_Template","HeadToHeadEventDetailsComponent","HeadToHeadEventDetailsComponent_ng_container_0_Template","vs","_HeadToHeadEventDetailsComponent","GaugeComponent","elRef","radius","stroke","initialStep","increase","duration","steps","alpha","valuen","intervalId","resetGauge","setUpGauge","gaugeScaleDValue","gaugeDialDValue","bounceValue","recalculateValues","setInterval","setPath","clearInterval","rad","PI","cos","sin","step","ngAfterViewInit","nativeElement","querySelectorAll","attributes","ElementRef","text","rs","os","Re","_GaugeComponent","FootballHeadToHeadComponent_div_5_ms_gauge_3_Template","Draw","FootballHeadToHeadComponent","FootballHeadToHeadComponent_div_3_Template","FootballHeadToHeadComponent_ms_gauge_4_Template","FootballHeadToHeadComponent_div_5_Template","FootballHeadToHeadComponent_div_7_Template","FootballHeadToHeadComponent_ms_gauge_8_Template","FootballHeadToHeadComponent_ng_container_9_Template","_FootballHeadToHeadComponent","LeagueTableComponent","_LeagueTableComponent","DrawAbr","current_r2","drawTotal","FootballLeagueTableComponent_div_18_div_9_Template","ɵɵpureFunction3","i_r3","leagueTableData","positionTotal","teamName","matchesTotal","winTotal","lossTotal","goalsTotal","FootballLeagueTableComponent","bottomSpace","setLeagueTableData","FootballLeagueTableComponent_div_9_Template","FootballLeagueTableComponent_div_18_Template","FootballLeagueTableComponent_ms_stats_center_19_Template","MatchesPlayedAbr","WonAbr","LostAbr","GoalsScoredAbr","GoalConsededAbr","PointsAbr","_FootballLeagueTableComponent","LastMatchesComponent","isDataAvailableForHomeTeam","isDataAvailableForAwayTeam","strNoDataAvailableMessage","LastMatchesPartialDataMessage","checkForDataAvailability","Lt","_LastMatchesComponent","teamType","Home","Away","FootballLastMatchesComponent_div_1_div_2_Template","FootballLastMatchesComponent_div_1_ms_last_matches_performance_3_Template","FootballLastMatchesComponent_div_1_div_4_Template","FootballLastMatchesComponent_div_1_div_6_Template","FootballLastMatchesComponent_div_1_ms_last_matches_performance_7_Template","FootballLastMatchesComponent_div_1_div_8_Template","FootballLastMatchesComponent","TeamType","FootballLastMatchesComponent_div_1_Template","jt","_FootballLastMatchesComponent","TennisHeadToHeadComponent","W","TennisHeadToHeadComponent_div_3_Template","TennisHeadToHeadComponent_ms_gauge_4_Template","TennisHeadToHeadComponent_div_6_Template","TennisHeadToHeadComponent_ms_gauge_7_Template","TennisHeadToHeadComponent_ng_container_8_Template","_TennisHeadToHeadComponent","homeTeamRank","hasWonLostStatistics","awayTeamRank","TennisLastMatchesComponent_div_2_div_5_Template","TennisLastMatchesComponent_div_2_ms_last_matches_performance_6_Template","TennisLastMatchesComponent_div_2_div_7_Template","TennisLastMatchesComponent_div_2_div_12_Template","TennisLastMatchesComponent_div_2_ms_last_matches_performance_13_Template","TennisLastMatchesComponent_div_2_div_14_Template","isRankVisible","homeTeamWonLostStats","WonLostStatistics","awayTeamWonLostStats","TennisLastMatchesComponent","setRankAndWonAndLostStatistics","rank","position","wonEvents","lostEvents","TennisLastMatchesComponent_div_2_Template","TennisLastMatchesComponent_div_3_Template","_TennisLastMatchesComponent","BasketballLastMatchesComponent_div_2_ms_last_matches_performance_5_Template","BasketballLastMatchesComponent_div_2_div_6_Template","BasketballLastMatchesComponent_div_2_ms_last_matches_performance_11_Template","BasketballLastMatchesComponent_div_2_div_12_Template","BasketballLastMatchesComponent","setAveragePoints","averagePointsLastMatchesText","LastMatchesAveragePoints","homeTeamAvgPoints","awayTeamAvgPoints","calculateAveragePoints","arrMatches","sum","BasketballLastMatchesComponent_div_2_Template","_BasketballLastMatchesComponent","BasketballHeadToHeadComponent","BasketballHeadToHeadComponent_div_3_Template","BasketballHeadToHeadComponent_ms_gauge_4_Template","BasketballHeadToHeadComponent_div_6_Template","BasketballHeadToHeadComponent_ms_gauge_7_Template","BasketballHeadToHeadComponent_ng_container_8_Template","_BasketballHeadToHeadComponent","i_r2","current_r1","BasketballLeagueTableComponent","strPointsColumnText","cloneDeep","row","PercentageAbr","BasketballLeagueTableComponent_div_13_Template","BasketballLeagueTableComponent_ms_stats_center_14_Template","_BasketballLeagueTableComponent","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_1_ng_container_1_ms_tennis_head_to_head_1_Template","emptyStatsOnHeadToHeadNoData_r3","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_1_ng_container_2_ms_tennis_last_matches_1_Template","emptyStatsOnLastMatches_r4","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_1_ng_container_1_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_1_ng_container_2_Template","HeadToHead","LastMatches","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_1_ms_football_head_to_head_1_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_3_ms_football_last_matches_1_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_1_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_2_ms_football_league_table_2_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_3_Template","LeagueTable","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_3_ng_container_1_ms_basketball_head_to_head_1_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_3_ng_container_3_ms_basketball_last_matches_1_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_3_ng_container_1_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_3_ms_basketball_league_table_2_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_3_ng_container_3_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_1_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_2_Template","PreMatchStatisticsComponent_ng_container_0_ng_container_2_ng_container_3_Template","onTabChange","PreMatchStatisticsComponent_ng_container_0_ng_container_2_Template","LastMatchesNoData","HeadToHeadNoData","PreMatchStatisticsComponent","deviceService","mediaMatcher","dispatcher","columnLayoutService","changedetector","destroyRef","inject","DestroyRef","PreMatchStatisticsTabType","receiveMediaMatchMessage","setSmallScreenTabTitle","setTabTitles","dispatch","hasMatches","reverse","subscribeToLayoutChange","matcher","removeEventListener","isMobile","matchMedia","changeTabTitle","addEventListener","rightColumnSizeChanged","takeUntilDestroyed","columnSize","size","ColumnSize","Default","isLayoutChanged","tabTitles","sortOrder","sort","currentTabId","detectChanges","H2H","Last5","smallScreen","DeviceService","MediaMatcher","DispatcherService","ColumnLayoutService","ChangeDetectorRef","PreMatchStatisticsComponent_ng_container_0_Template","PreMatchStatisticsComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","PreMatchStatisticsComponent_ng_template_3_Template","us","fs","_PreMatchStatisticsComponent","StatisticsExpanderIndicatorsComponent","_StatisticsExpanderIndicatorsComponent","summary1","globalMessages","Less","More","epcotEnabled","summary2","StatisticsExpanderComponent","epcotConfigService","expandChange","isEnabled","state","setStatistics","toggled","trackExpandOrCollapse","types","getStat","EpcotConfigService","StatisticsExpanderComponent_Conditional_0_Template","StatisticsExpanderComponent_Conditional_2_Template","StatisticsExpanderComponent_Conditional_3_Template","StatisticsExpanderComponent_Conditional_5_Template","StatisticsExpanderComponent_Conditional_6_Template","StatisticsExpanderComponent_Conditional_7_Template","_StatisticsExpanderComponent","StatisticsSharedModule","ss","imports","CommonModule","TimerModule","StatsLastMatchesPerformanceModule","IconCustomComponent","DsButton","_StatisticsSharedModule"],"mappings":"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CAAA,CAAA,CAAA,OAAA,CAAA,cAAA,CAAA,YAAA,CAAA,QAAA,CAAA,OAAA,CAAA,UAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,cAAA,CAAA,YAAA,CAAA,OAAA,CAAA,UAAA,CAAA,SAAA,CAAA,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,cAAA,CAAA,YAAA,CAAA,OAAA,CAAA,UAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,YAAA,CAAA,OAAA,CAAA,SAAA,CAAA,QAAA,CAAA,UAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,cAAA,CAAA,YAAA,CAAA,SAAA,CAAA,OAAA,CAAA,UAAA,CAAA,QAAA,CAAA,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,cAAA,CAAA,YAAA,CAAA,SAAA,CAAA,OAAA,CAAA,UAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,YAAA,CAAA,OAAA,CAAA,SAAA,CAAA,QAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,cAAA,CAAA,YAAA,CAAA,OAAA,CAAA,SAAA,CAAA,UAAA,CAAA,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,cAAA,CAAA,YAAA,CAAA,OAAA,CAAA,SAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,YAAA,CAAA,OAAA,CAAA,QAAA,CAAA,UAAA,CAAA,SAAA,CAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,YAAA,CAAA,OAAA,CAAA,QAAA,CAAA,UAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,cAAA,CAAA,YAAA,CAAA,SAAA,CAAA,OAAA,CAAA,UAAA,CAAA,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]}