{"version":3,"file":"js/3360-41bfbe236375aab1b36d.js","mappings":"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K,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,IAAK,GAAGliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OAAOkiD,EAAI,GAAI,KAAKliD,OA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","sources":["webpack://bizzey/./node_modules/@firebase/util/dist/index.esm2017.js","webpack://bizzey/./node_modules/actioncable/lib/assets/compiled/action_cable.js","webpack://bizzey/./node_modules/chart.js/dist/Chart.js","webpack://bizzey/./node_modules/lodash/_arrayAggregator.js","webpack://bizzey/./node_modules/lodash/_baseAggregator.js","webpack://bizzey/./node_modules/lodash/_createAggregator.js","webpack://bizzey/./node_modules/lodash/keyBy.js","webpack://bizzey/./node_modules/numeral/numeral.js","webpack://bizzey/./node_modules/patternomaly/dist/patternomaly.js","webpack://bizzey/./node_modules/react-chartjs-2/es/index.js","webpack://bizzey/./node_modules/react-circular-progressbar/dist/index.esm.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/styled-components/node_modules/tslib/tslib.es6.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/stylis/src/Enum.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/stylis/src/Utility.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/stylis/src/Tokenizer.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/stylis/src/Serializer.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/stylis/src/Prefixer.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/stylis/src/Middleware.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/stylis/src/Parser.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://bizzey/./node_modules/react-code-blocks/node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://bizzey/./node_modules/react-syntax-highlighter/dist/esm/create-element.js","webpack://bizzey/./node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","webpack://bizzey/./node_modules/react-syntax-highlighter/dist/esm/highlight.js","webpack://bizzey/./node_modules/react-syntax-highlighter/dist/esm/async-syntax-highlighter.js","webpack://bizzey/./node_modules/react-syntax-highlighter/dist/esm/async-languages/create-language-async-loader.js","webpack://bizzey/./node_modules/react-syntax-highlighter/dist/esm/async-languages/prism.js","webpack://bizzey/./node_modules/react-syntax-highlighter/dist/esm/prism-async-light.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://bizzey/./node_modules/react-code-blocks/dist/react-code-blocks.esm.js","webpack://bizzey/./node_modules/react-google-recaptcha-v3/dist/react-google-recaptcha-v3.esm.js","webpack://bizzey/./node_modules/react-popper/lib/esm/Manager.js","webpack://bizzey/./node_modules/react-popper/lib/esm/Popper.js","webpack://bizzey/./node_modules/react-popper/lib/esm/Reference.js","webpack://bizzey/./node_modules/react-router-dom/esm/react-router-dom.js","webpack://bizzey/./node_modules/react-to-print/lib/index.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/typeof.js","webpack://bizzey/./node_modules/react-syntax-highlighter/node_modules/@babel/runtime/regenerator/index.js","webpack://bizzey/./node_modules/@firebase/logger/dist/esm/index.esm2017.js","webpack://bizzey/./node_modules/@firebase/app/dist/esm/index.esm2017.js","webpack://bizzey/./node_modules/@firebase/component/dist/esm/index.esm2017.js","webpack://bizzey/./node_modules/firebase/app/dist/esm/index.esm.js","webpack://bizzey/./node_modules/@firebase/installations/dist/esm/index.esm2017.js","webpack://bizzey/./node_modules/@firebase/messaging/dist/esm/index.esm2017.js","webpack://bizzey/./node_modules/idb/build/wrap-idb-value.js","webpack://bizzey/./node_modules/idb/build/index.js"],"sourcesContent":["/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw new DecodeBase64StringError();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * An error encountered while decoding base64 string.\r\n */\r\nclass DecodeBase64StringError extends Error {\r\n constructor() {\r\n super(...arguments);\r\n this.name = 'DecodeBase64StringError';\r\n }\r\n}\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n * @public\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\r\n * The dots are in parens because certain compilers (Vite?) cannot\r\n * handle seeing that variable in comments.\r\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n * @public\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].join('.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected or specified.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n var _a;\r\n const forceEnvironment = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.forceEnvironment;\r\n if (forceEnvironment === 'node') {\r\n return true;\r\n }\r\n else if (forceEnvironment === 'browser') {\r\n return false;\r\n }\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment\r\n */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n !!navigator.userAgent &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // Typescript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber sychronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *

Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *

Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, DecodeBase64StringError, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","(function() {\n var context = this;\n\n (function() {\n (function() {\n var slice = [].slice;\n\n this.ActionCable = {\n INTERNAL: {\n \"message_types\": {\n \"welcome\": \"welcome\",\n \"ping\": \"ping\",\n \"confirmation\": \"confirm_subscription\",\n \"rejection\": \"reject_subscription\"\n },\n \"default_mount_path\": \"/cable\",\n \"protocols\": [\"actioncable-v1-json\", \"actioncable-unsupported\"]\n },\n WebSocket: window.WebSocket,\n logger: window.console,\n createConsumer: function(url) {\n var ref;\n if (url == null) {\n url = (ref = this.getConfig(\"url\")) != null ? ref : this.INTERNAL.default_mount_path;\n }\n return new ActionCable.Consumer(this.createWebSocketURL(url));\n },\n getConfig: function(name) {\n var element;\n element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n return element != null ? element.getAttribute(\"content\") : void 0;\n },\n createWebSocketURL: function(url) {\n var a;\n if (url && !/^wss?:/i.test(url)) {\n a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n },\n startDebugging: function() {\n return this.debugging = true;\n },\n stopDebugging: function() {\n return this.debugging = null;\n },\n log: function() {\n var messages, ref;\n messages = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n if (this.debugging) {\n messages.push(Date.now());\n return (ref = this.logger).log.apply(ref, [\"[ActionCable]\"].concat(slice.call(messages)));\n }\n }\n };\n\n }).call(this);\n }).call(context);\n\n var ActionCable = context.ActionCable;\n\n (function() {\n (function() {\n var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n ActionCable.ConnectionMonitor = (function() {\n var clamp, now, secondsSince;\n\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30\n };\n\n ConnectionMonitor.staleThreshold = 6;\n\n function ConnectionMonitor(connection) {\n this.connection = connection;\n this.visibilityDidChange = bind(this.visibilityDidChange, this);\n this.reconnectAttempts = 0;\n }\n\n ConnectionMonitor.prototype.start = function() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n document.addEventListener(\"visibilitychange\", this.visibilityDidChange);\n return ActionCable.log(\"ConnectionMonitor started. pollInterval = \" + (this.getPollInterval()) + \" ms\");\n }\n };\n\n ConnectionMonitor.prototype.stop = function() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n document.removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n return ActionCable.log(\"ConnectionMonitor stopped\");\n }\n };\n\n ConnectionMonitor.prototype.isRunning = function() {\n return (this.startedAt != null) && (this.stoppedAt == null);\n };\n\n ConnectionMonitor.prototype.recordPing = function() {\n return this.pingedAt = now();\n };\n\n ConnectionMonitor.prototype.recordConnect = function() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n return ActionCable.log(\"ConnectionMonitor recorded connect\");\n };\n\n ConnectionMonitor.prototype.recordDisconnect = function() {\n this.disconnectedAt = now();\n return ActionCable.log(\"ConnectionMonitor recorded disconnect\");\n };\n\n ConnectionMonitor.prototype.startPolling = function() {\n this.stopPolling();\n return this.poll();\n };\n\n ConnectionMonitor.prototype.stopPolling = function() {\n return clearTimeout(this.pollTimeout);\n };\n\n ConnectionMonitor.prototype.poll = function() {\n return this.pollTimeout = setTimeout((function(_this) {\n return function() {\n _this.reconnectIfStale();\n return _this.poll();\n };\n })(this), this.getPollInterval());\n };\n\n ConnectionMonitor.prototype.getPollInterval = function() {\n var interval, max, min, ref;\n ref = this.constructor.pollInterval, min = ref.min, max = ref.max;\n interval = 5 * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1000);\n };\n\n ConnectionMonitor.prototype.reconnectIfStale = function() {\n if (this.connectionIsStale()) {\n ActionCable.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + (this.getPollInterval()) + \" ms, time disconnected = \" + (secondsSince(this.disconnectedAt)) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n return ActionCable.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n ActionCable.log(\"ConnectionMonitor reopening\");\n return this.connection.reopen();\n }\n }\n };\n\n ConnectionMonitor.prototype.connectionIsStale = function() {\n var ref;\n return secondsSince((ref = this.pingedAt) != null ? ref : this.startedAt) > this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.disconnectedRecently = function() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.visibilityDidChange = function() {\n if (document.visibilityState === \"visible\") {\n return setTimeout((function(_this) {\n return function() {\n if (_this.connectionIsStale() || !_this.connection.isOpen()) {\n ActionCable.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = \" + document.visibilityState);\n return _this.connection.reopen();\n }\n };\n })(this), 200);\n }\n };\n\n now = function() {\n return new Date().getTime();\n };\n\n secondsSince = function(time) {\n return (now() - time) / 1000;\n };\n\n clamp = function(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n\n return ConnectionMonitor;\n\n })();\n\n }).call(this);\n (function() {\n var i, message_types, protocols, ref, supportedProtocols, unsupportedProtocol,\n slice = [].slice,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n ref = ActionCable.INTERNAL, message_types = ref.message_types, protocols = ref.protocols;\n\n supportedProtocols = 2 <= protocols.length ? slice.call(protocols, 0, i = protocols.length - 1) : (i = 0, []), unsupportedProtocol = protocols[i++];\n\n ActionCable.Connection = (function() {\n Connection.reopenDelay = 500;\n\n function Connection(consumer) {\n this.consumer = consumer;\n this.open = bind(this.open, this);\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ActionCable.ConnectionMonitor(this);\n this.disconnected = true;\n }\n\n Connection.prototype.send = function(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n\n Connection.prototype.open = function() {\n if (this.isActive()) {\n ActionCable.log(\"Attempted to open WebSocket, but existing socket is \" + (this.getState()));\n return false;\n } else {\n ActionCable.log(\"Opening WebSocket, current state is \" + (this.getState()) + \", subprotocols: \" + protocols);\n if (this.webSocket != null) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new ActionCable.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n\n Connection.prototype.close = function(arg) {\n var allowReconnect, ref1;\n allowReconnect = (arg != null ? arg : {\n allowReconnect: true\n }).allowReconnect;\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isActive()) {\n return (ref1 = this.webSocket) != null ? ref1.close() : void 0;\n }\n };\n\n Connection.prototype.reopen = function() {\n var error;\n ActionCable.log(\"Reopening WebSocket, current state is \" + (this.getState()));\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error1) {\n error = error1;\n return ActionCable.log(\"Failed to reopen WebSocket\", error);\n } finally {\n ActionCable.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n\n Connection.prototype.getProtocol = function() {\n var ref1;\n return (ref1 = this.webSocket) != null ? ref1.protocol : void 0;\n };\n\n Connection.prototype.isOpen = function() {\n return this.isState(\"open\");\n };\n\n Connection.prototype.isActive = function() {\n return this.isState(\"open\", \"connecting\");\n };\n\n Connection.prototype.isProtocolSupported = function() {\n var ref1;\n return ref1 = this.getProtocol(), indexOf.call(supportedProtocols, ref1) >= 0;\n };\n\n Connection.prototype.isState = function() {\n var ref1, states;\n states = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return ref1 = this.getState(), indexOf.call(states, ref1) >= 0;\n };\n\n Connection.prototype.getState = function() {\n var ref1, state, value;\n for (state in WebSocket) {\n value = WebSocket[state];\n if (value === ((ref1 = this.webSocket) != null ? ref1.readyState : void 0)) {\n return state.toLowerCase();\n }\n }\n return null;\n };\n\n Connection.prototype.installEventHandlers = function() {\n var eventName, handler;\n for (eventName in this.events) {\n handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n\n Connection.prototype.uninstallEventHandlers = function() {\n var eventName;\n for (eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function() {};\n }\n };\n\n Connection.prototype.events = {\n message: function(event) {\n var identifier, message, ref1, type;\n if (!this.isProtocolSupported()) {\n return;\n }\n ref1 = JSON.parse(event.data), identifier = ref1.identifier, message = ref1.message, type = ref1.type;\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n case message_types.ping:\n return this.monitor.recordPing();\n case message_types.confirmation:\n return this.subscriptions.notify(identifier, \"connected\");\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function() {\n ActionCable.log(\"WebSocket onopen event, using '\" + (this.getProtocol()) + \"' subprotocol\");\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n ActionCable.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function(event) {\n ActionCable.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function() {\n return ActionCable.log(\"WebSocket onerror event\");\n }\n };\n\n return Connection;\n\n })();\n\n }).call(this);\n (function() {\n var slice = [].slice;\n\n ActionCable.Subscriptions = (function() {\n function Subscriptions(consumer) {\n this.consumer = consumer;\n this.subscriptions = [];\n }\n\n Subscriptions.prototype.create = function(channelName, mixin) {\n var channel, params, subscription;\n channel = channelName;\n params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n subscription = new ActionCable.Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n\n Subscriptions.prototype.add = function(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.sendCommand(subscription, \"subscribe\");\n return subscription;\n };\n\n Subscriptions.prototype.remove = function(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n };\n\n Subscriptions.prototype.reject = function(identifier) {\n var i, len, ref, results, subscription;\n ref = this.findAll(identifier);\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n subscription = ref[i];\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n results.push(subscription);\n }\n return results;\n };\n\n Subscriptions.prototype.forget = function(subscription) {\n var s;\n this.subscriptions = (function() {\n var i, len, ref, results;\n ref = this.subscriptions;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n s = ref[i];\n if (s !== subscription) {\n results.push(s);\n }\n }\n return results;\n }).call(this);\n return subscription;\n };\n\n Subscriptions.prototype.findAll = function(identifier) {\n var i, len, ref, results, s;\n ref = this.subscriptions;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n s = ref[i];\n if (s.identifier === identifier) {\n results.push(s);\n }\n }\n return results;\n };\n\n Subscriptions.prototype.reload = function() {\n var i, len, ref, results, subscription;\n ref = this.subscriptions;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n subscription = ref[i];\n results.push(this.sendCommand(subscription, \"subscribe\"));\n }\n return results;\n };\n\n Subscriptions.prototype.notifyAll = function() {\n var args, callbackName, i, len, ref, results, subscription;\n callbackName = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n ref = this.subscriptions;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n subscription = ref[i];\n results.push(this.notify.apply(this, [subscription, callbackName].concat(slice.call(args))));\n }\n return results;\n };\n\n Subscriptions.prototype.notify = function() {\n var args, callbackName, i, len, results, subscription, subscriptions;\n subscription = arguments[0], callbackName = arguments[1], args = 3 <= arguments.length ? slice.call(arguments, 2) : [];\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n results = [];\n for (i = 0, len = subscriptions.length; i < len; i++) {\n subscription = subscriptions[i];\n results.push(typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : void 0);\n }\n return results;\n };\n\n Subscriptions.prototype.sendCommand = function(subscription, command) {\n var identifier;\n identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n\n return Subscriptions;\n\n })();\n\n }).call(this);\n (function() {\n ActionCable.Subscription = (function() {\n var extend;\n\n function Subscription(consumer, params, mixin) {\n this.consumer = consumer;\n if (params == null) {\n params = {};\n }\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n\n Subscription.prototype.perform = function(action, data) {\n if (data == null) {\n data = {};\n }\n data.action = action;\n return this.send(data);\n };\n\n Subscription.prototype.send = function(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n\n Subscription.prototype.unsubscribe = function() {\n return this.consumer.subscriptions.remove(this);\n };\n\n extend = function(object, properties) {\n var key, value;\n if (properties != null) {\n for (key in properties) {\n value = properties[key];\n object[key] = value;\n }\n }\n return object;\n };\n\n return Subscription;\n\n })();\n\n }).call(this);\n (function() {\n ActionCable.Consumer = (function() {\n function Consumer(url) {\n this.url = url;\n this.subscriptions = new ActionCable.Subscriptions(this);\n this.connection = new ActionCable.Connection(this);\n }\n\n Consumer.prototype.send = function(data) {\n return this.connection.send(data);\n };\n\n Consumer.prototype.connect = function() {\n return this.connection.open();\n };\n\n Consumer.prototype.disconnect = function() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n\n Consumer.prototype.ensureActiveConnection = function() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n\n return Consumer;\n\n })();\n\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = ActionCable;\n } else if (typeof define === \"function\" && define.amd) {\n define(ActionCable);\n }\n}).call(this);\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the \")},this.getStyleTags=function(){if(e.sealed)throw he(2);return e._emitSheetCSS()},this.getStyleElement=function(){var n;if(e.sealed)throw he(2);var r=((n={})[f]=\"\",n[y]=v,n.dangerouslySetInnerHTML={__html:e.instance.toString()},n),s=Pe();return s&&(r.nonce=s),[o.createElement(\"style\",t({},r,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new Re({isServer:!0}),this.sealed=!1}return e.prototype.collectStyles=function(e){if(this.sealed)throw he(2);return o.createElement(Le,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw he(3)},e}(),yt={StyleSheet:Re,mainSheet:Ve};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\");var vt=\"__sc-\".concat(f,\"__\");\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[vt]||(window[vt]=0),1===window[vt]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[vt]+=1);export{mt as ServerStyleSheet,$e as StyleSheetConsumer,Me as StyleSheetContext,Le as StyleSheetManager,Qe as ThemeConsumer,Ke as ThemeContext,tt as ThemeProvider,yt as __PRIVATE__,dt as createGlobalStyle,at as css,ut as default,se as isStyledComponent,ht as keyframes,ut as styled,et as useTheme,v as version,ft as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react'; // Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\n\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n\n if (arrLength === 2) {\n // prettier-ignore\n return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength === 3) {\n return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength >= 4) {\n // Currently does not support more than 4 extra\n // class names (after `.token` has been removed)\n return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n\n return classNameCombinations[key];\n}\n\nexport function createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n var nonTokenClassNames = classNames.filter(function (className) {\n return className !== 'token';\n });\n var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n return classNamesCombinations.reduce(function (styleObject, className) {\n return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n });\n });\n };\n}\nexport default function createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n\n if (!useInlineStyles) {\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(properties.className)\n });\n } else {\n var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n selector.split('.').forEach(function (className) {\n if (!classes.includes(className)) classes.push(className);\n });\n return classes;\n }, []); // For compatibility with older versions of react-syntax-highlighter\n\n var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n return !allStylesheetSelectors.includes(className);\n }));\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n\n var children = childrenCreator(node.children);\n return /*#__PURE__*/React.createElement(TagName, _extends({\n key: key\n }, props), children);\n }\n}","export default (function (astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return /*#__PURE__*/React.createElement(\"span\", {\n key: \"line-\".concat(i),\n className: \"react-syntax-highlighter-line-number\",\n style: typeof style === 'function' ? style(number) : style\n }, \"\".concat(number, \"\\n\"));\n });\n}\n\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n \"float\": 'left',\n paddingRight: '10px'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return /*#__PURE__*/React.createElement(\"code\", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, '').split('\\n'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\n\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n key: \"line-number--\".concat(lineNumber),\n className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: 'text',\n value: lineNumber\n }]\n };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: 'inline-block',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: '1em',\n textAlign: 'right',\n userSelect: 'none'\n }; // prep custom styling\n\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n\n return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className,\n showLineNumbers = _ref3.showLineNumbers,\n wrapLongLines = _ref3.wrapLongLines;\n var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n properties['className'] = className;\n\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread(_objectSpread({}, properties.style), {}, {\n display: 'flex'\n });\n }\n\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\n}\n\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n\n if (node.type === 'text') {\n newTree.push(createLineElement({\n children: [node],\n className: _toConsumableArray(new Set(className))\n }));\n } else if (node.children) {\n var classNames = className.concat(node.properties.className);\n flattenCodeTree(node.children, classNames).forEach(function (i) {\n return newTree.push(i);\n });\n }\n }\n\n return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className,\n showLineNumbers: showLineNumbers,\n wrapLongLines: wrapLongLines\n });\n }\n\n function createUnwrappedLine(children, lineNumber) {\n if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n return children;\n }\n\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n\n if (newLines) {\n var splitValue = value.split('\\n');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: 'text',\n value: \"\".concat(text, \"\\n\")\n }; // if it's the first line\n\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n\n var _line = createLine(_children, lineNumber);\n\n newTree.push(_line); // if it's the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\n\n if (stringChild) {\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [lastLineInPreviousSpan];\n\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n newTree.push(_line2);\n } // if it's neither the first nor the last line\n\n } else {\n var _children3 = [newChild];\n\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n\n index++;\n };\n\n while (index < tree.length) {\n _loop();\n }\n\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n if (children && children.length) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segement\".concat(i)\n });\n });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue;\n\n // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n // lowlight/highlight?\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n if (language === 'text') {\n return {\n value: defaultCodeValue,\n language: 'text'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n } // must be refractor/prism, then\n\n\n try {\n return language && language !== 'text' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\n\nexport default function (defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? \"language-\".concat(language) : undefined,\n style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$wrapLongLines = _ref7.wrapLongLines,\n wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = _objectWithoutProperties(_ref7, _excluded);\n\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n backgroundColor: '#fff'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre-wrap'\n });\n } else {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre'\n });\n }\n\n if (!astGenerator) {\n return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n }\n /*\n * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined.\n */\n\n\n if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: 'text',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n var largestLineNumber = codeTree.value.length + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React from 'react';\nimport highlight from './highlight';\nexport default (function (options) {\n var loader = options.loader,\n isLanguageRegistered = options.isLanguageRegistered,\n registerLanguage = options.registerLanguage,\n languageLoaders = options.languageLoaders,\n noAsyncLoadingLanguages = options.noAsyncLoadingLanguages;\n\n var ReactAsyncHighlighter = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ReactAsyncHighlighter, _React$PureComponent);\n\n var _super = _createSuper(ReactAsyncHighlighter);\n\n function ReactAsyncHighlighter() {\n _classCallCheck(this, ReactAsyncHighlighter);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ReactAsyncHighlighter, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (!ReactAsyncHighlighter.isRegistered(this.props.language) && languageLoaders) {\n this.loadLanguage();\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this = this;\n\n if (!ReactAsyncHighlighter.astGeneratorPromise) {\n ReactAsyncHighlighter.loadAstGenerator();\n }\n\n if (!ReactAsyncHighlighter.astGenerator) {\n ReactAsyncHighlighter.astGeneratorPromise.then(function () {\n _this.forceUpdate();\n });\n }\n\n if (!ReactAsyncHighlighter.isRegistered(this.props.language) && languageLoaders) {\n this.loadLanguage();\n }\n }\n }, {\n key: \"loadLanguage\",\n value: function loadLanguage() {\n var _this2 = this;\n\n var language = this.props.language;\n\n if (language === 'text') {\n return;\n }\n\n ReactAsyncHighlighter.loadLanguage(language).then(function () {\n return _this2.forceUpdate();\n })[\"catch\"](function () {});\n }\n }, {\n key: \"normalizeLanguage\",\n value: function normalizeLanguage(language) {\n return ReactAsyncHighlighter.isSupportedLanguage(language) ? language : 'text';\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ReactAsyncHighlighter.highlightInstance, _extends({}, this.props, {\n language: this.normalizeLanguage(this.props.language),\n astGenerator: ReactAsyncHighlighter.astGenerator\n }));\n }\n }], [{\n key: \"preload\",\n value: function preload() {\n return ReactAsyncHighlighter.loadAstGenerator();\n }\n }, {\n key: \"loadLanguage\",\n value: function () {\n var _loadLanguage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(language) {\n var languageLoader;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n languageLoader = languageLoaders[language];\n\n if (!(typeof languageLoader === 'function')) {\n _context.next = 5;\n break;\n }\n\n return _context.abrupt(\"return\", languageLoader(ReactAsyncHighlighter.registerLanguage));\n\n case 5:\n throw new Error(\"Language \".concat(language, \" not supported\"));\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function loadLanguage(_x) {\n return _loadLanguage.apply(this, arguments);\n }\n\n return loadLanguage;\n }()\n }, {\n key: \"isSupportedLanguage\",\n value: function isSupportedLanguage(language) {\n return ReactAsyncHighlighter.isRegistered(language) || typeof languageLoaders[language] === 'function';\n }\n }, {\n key: \"loadAstGenerator\",\n value: function loadAstGenerator() {\n ReactAsyncHighlighter.astGeneratorPromise = loader().then(function (astGenerator) {\n ReactAsyncHighlighter.astGenerator = astGenerator;\n\n if (registerLanguage) {\n ReactAsyncHighlighter.languages.forEach(function (language, name) {\n return registerLanguage(astGenerator, name, language);\n });\n }\n });\n return ReactAsyncHighlighter.astGeneratorPromise;\n }\n }]);\n\n return ReactAsyncHighlighter;\n }(React.PureComponent);\n\n _defineProperty(ReactAsyncHighlighter, \"astGenerator\", null);\n\n _defineProperty(ReactAsyncHighlighter, \"highlightInstance\", highlight(null, {}));\n\n _defineProperty(ReactAsyncHighlighter, \"astGeneratorPromise\", null);\n\n _defineProperty(ReactAsyncHighlighter, \"languages\", new Map());\n\n _defineProperty(ReactAsyncHighlighter, \"supportedLanguages\", options.supportedLanguages || Object.keys(languageLoaders || {}));\n\n _defineProperty(ReactAsyncHighlighter, \"isRegistered\", function (language) {\n if (noAsyncLoadingLanguages) {\n return true;\n }\n\n if (!registerLanguage) {\n throw new Error(\"Current syntax highlighter doesn't support registration of languages\");\n }\n\n if (!ReactAsyncHighlighter.astGenerator) {\n // Ast generator not available yet, but language will be registered once it is.\n return ReactAsyncHighlighter.languages.has(language);\n }\n\n return isLanguageRegistered(ReactAsyncHighlighter.astGenerator, language);\n });\n\n _defineProperty(ReactAsyncHighlighter, \"registerLanguage\", function (name, language) {\n if (!registerLanguage) {\n throw new Error(\"Current syntax highlighter doesn't support registration of languages\");\n }\n\n if (ReactAsyncHighlighter.astGenerator) {\n return registerLanguage(ReactAsyncHighlighter.astGenerator, name, language);\n } else {\n ReactAsyncHighlighter.languages.set(name, language);\n }\n });\n\n return ReactAsyncHighlighter;\n});","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nexport default (function (name, loader) {\n return /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(registerLanguage) {\n var module;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return loader();\n\n case 2:\n module = _context.sent;\n registerLanguage(name, module[\"default\"] || module);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }();\n});","import createLanguageAsyncLoader from \"./create-language-async-loader\";\nexport default {\n abap: createLanguageAsyncLoader(\"abap\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_abap\" */\n \"refractor/lang/abap.js\");\n }),\n abnf: createLanguageAsyncLoader(\"abnf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_abnf\" */\n \"refractor/lang/abnf.js\");\n }),\n actionscript: createLanguageAsyncLoader(\"actionscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_actionscript\" */\n \"refractor/lang/actionscript.js\");\n }),\n ada: createLanguageAsyncLoader(\"ada\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ada\" */\n \"refractor/lang/ada.js\");\n }),\n agda: createLanguageAsyncLoader(\"agda\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_agda\" */\n \"refractor/lang/agda.js\");\n }),\n al: createLanguageAsyncLoader(\"al\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_al\" */\n \"refractor/lang/al.js\");\n }),\n antlr4: createLanguageAsyncLoader(\"antlr4\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_antlr4\" */\n \"refractor/lang/antlr4.js\");\n }),\n apacheconf: createLanguageAsyncLoader(\"apacheconf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_apacheconf\" */\n \"refractor/lang/apacheconf.js\");\n }),\n apex: createLanguageAsyncLoader(\"apex\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_apex\" */\n \"refractor/lang/apex.js\");\n }),\n apl: createLanguageAsyncLoader(\"apl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_apl\" */\n \"refractor/lang/apl.js\");\n }),\n applescript: createLanguageAsyncLoader(\"applescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_applescript\" */\n \"refractor/lang/applescript.js\");\n }),\n aql: createLanguageAsyncLoader(\"aql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_aql\" */\n \"refractor/lang/aql.js\");\n }),\n arduino: createLanguageAsyncLoader(\"arduino\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_arduino\" */\n \"refractor/lang/arduino.js\");\n }),\n arff: createLanguageAsyncLoader(\"arff\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_arff\" */\n \"refractor/lang/arff.js\");\n }),\n asciidoc: createLanguageAsyncLoader(\"asciidoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_asciidoc\" */\n \"refractor/lang/asciidoc.js\");\n }),\n asm6502: createLanguageAsyncLoader(\"asm6502\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_asm6502\" */\n \"refractor/lang/asm6502.js\");\n }),\n asmatmel: createLanguageAsyncLoader(\"asmatmel\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_asmatmel\" */\n \"refractor/lang/asmatmel.js\");\n }),\n aspnet: createLanguageAsyncLoader(\"aspnet\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_aspnet\" */\n \"refractor/lang/aspnet.js\");\n }),\n autohotkey: createLanguageAsyncLoader(\"autohotkey\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_autohotkey\" */\n \"refractor/lang/autohotkey.js\");\n }),\n autoit: createLanguageAsyncLoader(\"autoit\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_autoit\" */\n \"refractor/lang/autoit.js\");\n }),\n avisynth: createLanguageAsyncLoader(\"avisynth\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_avisynth\" */\n \"refractor/lang/avisynth.js\");\n }),\n avroIdl: createLanguageAsyncLoader(\"avroIdl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_avroIdl\" */\n \"refractor/lang/avro-idl.js\");\n }),\n bash: createLanguageAsyncLoader(\"bash\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bash\" */\n \"refractor/lang/bash.js\");\n }),\n basic: createLanguageAsyncLoader(\"basic\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_basic\" */\n \"refractor/lang/basic.js\");\n }),\n batch: createLanguageAsyncLoader(\"batch\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_batch\" */\n \"refractor/lang/batch.js\");\n }),\n bbcode: createLanguageAsyncLoader(\"bbcode\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bbcode\" */\n \"refractor/lang/bbcode.js\");\n }),\n bicep: createLanguageAsyncLoader(\"bicep\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bicep\" */\n \"refractor/lang/bicep.js\");\n }),\n birb: createLanguageAsyncLoader(\"birb\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_birb\" */\n \"refractor/lang/birb.js\");\n }),\n bison: createLanguageAsyncLoader(\"bison\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bison\" */\n \"refractor/lang/bison.js\");\n }),\n bnf: createLanguageAsyncLoader(\"bnf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bnf\" */\n \"refractor/lang/bnf.js\");\n }),\n brainfuck: createLanguageAsyncLoader(\"brainfuck\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_brainfuck\" */\n \"refractor/lang/brainfuck.js\");\n }),\n brightscript: createLanguageAsyncLoader(\"brightscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_brightscript\" */\n \"refractor/lang/brightscript.js\");\n }),\n bro: createLanguageAsyncLoader(\"bro\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bro\" */\n \"refractor/lang/bro.js\");\n }),\n bsl: createLanguageAsyncLoader(\"bsl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bsl\" */\n \"refractor/lang/bsl.js\");\n }),\n c: createLanguageAsyncLoader(\"c\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_c\" */\n \"refractor/lang/c.js\");\n }),\n cfscript: createLanguageAsyncLoader(\"cfscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cfscript\" */\n \"refractor/lang/cfscript.js\");\n }),\n chaiscript: createLanguageAsyncLoader(\"chaiscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_chaiscript\" */\n \"refractor/lang/chaiscript.js\");\n }),\n cil: createLanguageAsyncLoader(\"cil\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cil\" */\n \"refractor/lang/cil.js\");\n }),\n clike: createLanguageAsyncLoader(\"clike\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_clike\" */\n \"refractor/lang/clike.js\");\n }),\n clojure: createLanguageAsyncLoader(\"clojure\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_clojure\" */\n \"refractor/lang/clojure.js\");\n }),\n cmake: createLanguageAsyncLoader(\"cmake\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cmake\" */\n \"refractor/lang/cmake.js\");\n }),\n cobol: createLanguageAsyncLoader(\"cobol\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cobol\" */\n \"refractor/lang/cobol.js\");\n }),\n coffeescript: createLanguageAsyncLoader(\"coffeescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_coffeescript\" */\n \"refractor/lang/coffeescript.js\");\n }),\n concurnas: createLanguageAsyncLoader(\"concurnas\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_concurnas\" */\n \"refractor/lang/concurnas.js\");\n }),\n coq: createLanguageAsyncLoader(\"coq\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_coq\" */\n \"refractor/lang/coq.js\");\n }),\n cpp: createLanguageAsyncLoader(\"cpp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cpp\" */\n \"refractor/lang/cpp.js\");\n }),\n crystal: createLanguageAsyncLoader(\"crystal\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_crystal\" */\n \"refractor/lang/crystal.js\");\n }),\n csharp: createLanguageAsyncLoader(\"csharp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_csharp\" */\n \"refractor/lang/csharp.js\");\n }),\n cshtml: createLanguageAsyncLoader(\"cshtml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cshtml\" */\n \"refractor/lang/cshtml.js\");\n }),\n csp: createLanguageAsyncLoader(\"csp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_csp\" */\n \"refractor/lang/csp.js\");\n }),\n cssExtras: createLanguageAsyncLoader(\"cssExtras\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cssExtras\" */\n \"refractor/lang/css-extras.js\");\n }),\n css: createLanguageAsyncLoader(\"css\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_css\" */\n \"refractor/lang/css.js\");\n }),\n csv: createLanguageAsyncLoader(\"csv\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_csv\" */\n \"refractor/lang/csv.js\");\n }),\n cypher: createLanguageAsyncLoader(\"cypher\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cypher\" */\n \"refractor/lang/cypher.js\");\n }),\n d: createLanguageAsyncLoader(\"d\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_d\" */\n \"refractor/lang/d.js\");\n }),\n dart: createLanguageAsyncLoader(\"dart\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dart\" */\n \"refractor/lang/dart.js\");\n }),\n dataweave: createLanguageAsyncLoader(\"dataweave\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dataweave\" */\n \"refractor/lang/dataweave.js\");\n }),\n dax: createLanguageAsyncLoader(\"dax\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dax\" */\n \"refractor/lang/dax.js\");\n }),\n dhall: createLanguageAsyncLoader(\"dhall\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dhall\" */\n \"refractor/lang/dhall.js\");\n }),\n diff: createLanguageAsyncLoader(\"diff\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_diff\" */\n \"refractor/lang/diff.js\");\n }),\n django: createLanguageAsyncLoader(\"django\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_django\" */\n \"refractor/lang/django.js\");\n }),\n dnsZoneFile: createLanguageAsyncLoader(\"dnsZoneFile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dnsZoneFile\" */\n \"refractor/lang/dns-zone-file.js\");\n }),\n docker: createLanguageAsyncLoader(\"docker\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_docker\" */\n \"refractor/lang/docker.js\");\n }),\n dot: createLanguageAsyncLoader(\"dot\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dot\" */\n \"refractor/lang/dot.js\");\n }),\n ebnf: createLanguageAsyncLoader(\"ebnf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ebnf\" */\n \"refractor/lang/ebnf.js\");\n }),\n editorconfig: createLanguageAsyncLoader(\"editorconfig\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_editorconfig\" */\n \"refractor/lang/editorconfig.js\");\n }),\n eiffel: createLanguageAsyncLoader(\"eiffel\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_eiffel\" */\n \"refractor/lang/eiffel.js\");\n }),\n ejs: createLanguageAsyncLoader(\"ejs\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ejs\" */\n \"refractor/lang/ejs.js\");\n }),\n elixir: createLanguageAsyncLoader(\"elixir\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_elixir\" */\n \"refractor/lang/elixir.js\");\n }),\n elm: createLanguageAsyncLoader(\"elm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_elm\" */\n \"refractor/lang/elm.js\");\n }),\n erb: createLanguageAsyncLoader(\"erb\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_erb\" */\n \"refractor/lang/erb.js\");\n }),\n erlang: createLanguageAsyncLoader(\"erlang\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_erlang\" */\n \"refractor/lang/erlang.js\");\n }),\n etlua: createLanguageAsyncLoader(\"etlua\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_etlua\" */\n \"refractor/lang/etlua.js\");\n }),\n excelFormula: createLanguageAsyncLoader(\"excelFormula\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_excelFormula\" */\n \"refractor/lang/excel-formula.js\");\n }),\n factor: createLanguageAsyncLoader(\"factor\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_factor\" */\n \"refractor/lang/factor.js\");\n }),\n falselang: createLanguageAsyncLoader(\"falselang\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_falselang\" */\n \"refractor/lang/false.js\");\n }),\n firestoreSecurityRules: createLanguageAsyncLoader(\"firestoreSecurityRules\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_firestoreSecurityRules\" */\n \"refractor/lang/firestore-security-rules.js\");\n }),\n flow: createLanguageAsyncLoader(\"flow\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_flow\" */\n \"refractor/lang/flow.js\");\n }),\n fortran: createLanguageAsyncLoader(\"fortran\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_fortran\" */\n \"refractor/lang/fortran.js\");\n }),\n fsharp: createLanguageAsyncLoader(\"fsharp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_fsharp\" */\n \"refractor/lang/fsharp.js\");\n }),\n ftl: createLanguageAsyncLoader(\"ftl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ftl\" */\n \"refractor/lang/ftl.js\");\n }),\n gap: createLanguageAsyncLoader(\"gap\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gap\" */\n \"refractor/lang/gap.js\");\n }),\n gcode: createLanguageAsyncLoader(\"gcode\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gcode\" */\n \"refractor/lang/gcode.js\");\n }),\n gdscript: createLanguageAsyncLoader(\"gdscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gdscript\" */\n \"refractor/lang/gdscript.js\");\n }),\n gedcom: createLanguageAsyncLoader(\"gedcom\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gedcom\" */\n \"refractor/lang/gedcom.js\");\n }),\n gherkin: createLanguageAsyncLoader(\"gherkin\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gherkin\" */\n \"refractor/lang/gherkin.js\");\n }),\n git: createLanguageAsyncLoader(\"git\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_git\" */\n \"refractor/lang/git.js\");\n }),\n glsl: createLanguageAsyncLoader(\"glsl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_glsl\" */\n \"refractor/lang/glsl.js\");\n }),\n gml: createLanguageAsyncLoader(\"gml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gml\" */\n \"refractor/lang/gml.js\");\n }),\n gn: createLanguageAsyncLoader(\"gn\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gn\" */\n \"refractor/lang/gn.js\");\n }),\n goModule: createLanguageAsyncLoader(\"goModule\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_goModule\" */\n \"refractor/lang/go-module.js\");\n }),\n go: createLanguageAsyncLoader(\"go\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_go\" */\n \"refractor/lang/go.js\");\n }),\n graphql: createLanguageAsyncLoader(\"graphql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_graphql\" */\n \"refractor/lang/graphql.js\");\n }),\n groovy: createLanguageAsyncLoader(\"groovy\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_groovy\" */\n \"refractor/lang/groovy.js\");\n }),\n haml: createLanguageAsyncLoader(\"haml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_haml\" */\n \"refractor/lang/haml.js\");\n }),\n handlebars: createLanguageAsyncLoader(\"handlebars\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_handlebars\" */\n \"refractor/lang/handlebars.js\");\n }),\n haskell: createLanguageAsyncLoader(\"haskell\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_haskell\" */\n \"refractor/lang/haskell.js\");\n }),\n haxe: createLanguageAsyncLoader(\"haxe\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_haxe\" */\n \"refractor/lang/haxe.js\");\n }),\n hcl: createLanguageAsyncLoader(\"hcl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_hcl\" */\n \"refractor/lang/hcl.js\");\n }),\n hlsl: createLanguageAsyncLoader(\"hlsl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_hlsl\" */\n \"refractor/lang/hlsl.js\");\n }),\n hoon: createLanguageAsyncLoader(\"hoon\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_hoon\" */\n \"refractor/lang/hoon.js\");\n }),\n hpkp: createLanguageAsyncLoader(\"hpkp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_hpkp\" */\n \"refractor/lang/hpkp.js\");\n }),\n hsts: createLanguageAsyncLoader(\"hsts\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_hsts\" */\n \"refractor/lang/hsts.js\");\n }),\n http: createLanguageAsyncLoader(\"http\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_http\" */\n \"refractor/lang/http.js\");\n }),\n ichigojam: createLanguageAsyncLoader(\"ichigojam\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ichigojam\" */\n \"refractor/lang/ichigojam.js\");\n }),\n icon: createLanguageAsyncLoader(\"icon\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_icon\" */\n \"refractor/lang/icon.js\");\n }),\n icuMessageFormat: createLanguageAsyncLoader(\"icuMessageFormat\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_icuMessageFormat\" */\n \"refractor/lang/icu-message-format.js\");\n }),\n idris: createLanguageAsyncLoader(\"idris\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_idris\" */\n \"refractor/lang/idris.js\");\n }),\n iecst: createLanguageAsyncLoader(\"iecst\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_iecst\" */\n \"refractor/lang/iecst.js\");\n }),\n ignore: createLanguageAsyncLoader(\"ignore\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ignore\" */\n \"refractor/lang/ignore.js\");\n }),\n inform7: createLanguageAsyncLoader(\"inform7\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_inform7\" */\n \"refractor/lang/inform7.js\");\n }),\n ini: createLanguageAsyncLoader(\"ini\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ini\" */\n \"refractor/lang/ini.js\");\n }),\n io: createLanguageAsyncLoader(\"io\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_io\" */\n \"refractor/lang/io.js\");\n }),\n j: createLanguageAsyncLoader(\"j\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_j\" */\n \"refractor/lang/j.js\");\n }),\n java: createLanguageAsyncLoader(\"java\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_java\" */\n \"refractor/lang/java.js\");\n }),\n javadoc: createLanguageAsyncLoader(\"javadoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_javadoc\" */\n \"refractor/lang/javadoc.js\");\n }),\n javadoclike: createLanguageAsyncLoader(\"javadoclike\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_javadoclike\" */\n \"refractor/lang/javadoclike.js\");\n }),\n javascript: createLanguageAsyncLoader(\"javascript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_javascript\" */\n \"refractor/lang/javascript.js\");\n }),\n javastacktrace: createLanguageAsyncLoader(\"javastacktrace\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_javastacktrace\" */\n \"refractor/lang/javastacktrace.js\");\n }),\n jexl: createLanguageAsyncLoader(\"jexl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jexl\" */\n \"refractor/lang/jexl.js\");\n }),\n jolie: createLanguageAsyncLoader(\"jolie\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jolie\" */\n \"refractor/lang/jolie.js\");\n }),\n jq: createLanguageAsyncLoader(\"jq\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jq\" */\n \"refractor/lang/jq.js\");\n }),\n jsExtras: createLanguageAsyncLoader(\"jsExtras\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsExtras\" */\n \"refractor/lang/js-extras.js\");\n }),\n jsTemplates: createLanguageAsyncLoader(\"jsTemplates\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsTemplates\" */\n \"refractor/lang/js-templates.js\");\n }),\n jsdoc: createLanguageAsyncLoader(\"jsdoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsdoc\" */\n \"refractor/lang/jsdoc.js\");\n }),\n json: createLanguageAsyncLoader(\"json\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_json\" */\n \"refractor/lang/json.js\");\n }),\n json5: createLanguageAsyncLoader(\"json5\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_json5\" */\n \"refractor/lang/json5.js\");\n }),\n jsonp: createLanguageAsyncLoader(\"jsonp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsonp\" */\n \"refractor/lang/jsonp.js\");\n }),\n jsstacktrace: createLanguageAsyncLoader(\"jsstacktrace\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsstacktrace\" */\n \"refractor/lang/jsstacktrace.js\");\n }),\n jsx: createLanguageAsyncLoader(\"jsx\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsx\" */\n \"refractor/lang/jsx.js\");\n }),\n julia: createLanguageAsyncLoader(\"julia\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_julia\" */\n \"refractor/lang/julia.js\");\n }),\n keepalived: createLanguageAsyncLoader(\"keepalived\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_keepalived\" */\n \"refractor/lang/keepalived.js\");\n }),\n keyman: createLanguageAsyncLoader(\"keyman\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_keyman\" */\n \"refractor/lang/keyman.js\");\n }),\n kotlin: createLanguageAsyncLoader(\"kotlin\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_kotlin\" */\n \"refractor/lang/kotlin.js\");\n }),\n kumir: createLanguageAsyncLoader(\"kumir\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_kumir\" */\n \"refractor/lang/kumir.js\");\n }),\n kusto: createLanguageAsyncLoader(\"kusto\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_kusto\" */\n \"refractor/lang/kusto.js\");\n }),\n latex: createLanguageAsyncLoader(\"latex\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_latex\" */\n \"refractor/lang/latex.js\");\n }),\n latte: createLanguageAsyncLoader(\"latte\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_latte\" */\n \"refractor/lang/latte.js\");\n }),\n less: createLanguageAsyncLoader(\"less\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_less\" */\n \"refractor/lang/less.js\");\n }),\n lilypond: createLanguageAsyncLoader(\"lilypond\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_lilypond\" */\n \"refractor/lang/lilypond.js\");\n }),\n liquid: createLanguageAsyncLoader(\"liquid\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_liquid\" */\n \"refractor/lang/liquid.js\");\n }),\n lisp: createLanguageAsyncLoader(\"lisp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_lisp\" */\n \"refractor/lang/lisp.js\");\n }),\n livescript: createLanguageAsyncLoader(\"livescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_livescript\" */\n \"refractor/lang/livescript.js\");\n }),\n llvm: createLanguageAsyncLoader(\"llvm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_llvm\" */\n \"refractor/lang/llvm.js\");\n }),\n log: createLanguageAsyncLoader(\"log\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_log\" */\n \"refractor/lang/log.js\");\n }),\n lolcode: createLanguageAsyncLoader(\"lolcode\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_lolcode\" */\n \"refractor/lang/lolcode.js\");\n }),\n lua: createLanguageAsyncLoader(\"lua\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_lua\" */\n \"refractor/lang/lua.js\");\n }),\n magma: createLanguageAsyncLoader(\"magma\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_magma\" */\n \"refractor/lang/magma.js\");\n }),\n makefile: createLanguageAsyncLoader(\"makefile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_makefile\" */\n \"refractor/lang/makefile.js\");\n }),\n markdown: createLanguageAsyncLoader(\"markdown\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_markdown\" */\n \"refractor/lang/markdown.js\");\n }),\n markupTemplating: createLanguageAsyncLoader(\"markupTemplating\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_markupTemplating\" */\n \"refractor/lang/markup-templating.js\");\n }),\n markup: createLanguageAsyncLoader(\"markup\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_markup\" */\n \"refractor/lang/markup.js\");\n }),\n matlab: createLanguageAsyncLoader(\"matlab\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_matlab\" */\n \"refractor/lang/matlab.js\");\n }),\n maxscript: createLanguageAsyncLoader(\"maxscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_maxscript\" */\n \"refractor/lang/maxscript.js\");\n }),\n mel: createLanguageAsyncLoader(\"mel\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_mel\" */\n \"refractor/lang/mel.js\");\n }),\n mermaid: createLanguageAsyncLoader(\"mermaid\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_mermaid\" */\n \"refractor/lang/mermaid.js\");\n }),\n mizar: createLanguageAsyncLoader(\"mizar\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_mizar\" */\n \"refractor/lang/mizar.js\");\n }),\n mongodb: createLanguageAsyncLoader(\"mongodb\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_mongodb\" */\n \"refractor/lang/mongodb.js\");\n }),\n monkey: createLanguageAsyncLoader(\"monkey\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_monkey\" */\n \"refractor/lang/monkey.js\");\n }),\n moonscript: createLanguageAsyncLoader(\"moonscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_moonscript\" */\n \"refractor/lang/moonscript.js\");\n }),\n n1ql: createLanguageAsyncLoader(\"n1ql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_n1ql\" */\n \"refractor/lang/n1ql.js\");\n }),\n n4js: createLanguageAsyncLoader(\"n4js\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_n4js\" */\n \"refractor/lang/n4js.js\");\n }),\n nand2tetrisHdl: createLanguageAsyncLoader(\"nand2tetrisHdl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nand2tetrisHdl\" */\n \"refractor/lang/nand2tetris-hdl.js\");\n }),\n naniscript: createLanguageAsyncLoader(\"naniscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_naniscript\" */\n \"refractor/lang/naniscript.js\");\n }),\n nasm: createLanguageAsyncLoader(\"nasm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nasm\" */\n \"refractor/lang/nasm.js\");\n }),\n neon: createLanguageAsyncLoader(\"neon\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_neon\" */\n \"refractor/lang/neon.js\");\n }),\n nevod: createLanguageAsyncLoader(\"nevod\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nevod\" */\n \"refractor/lang/nevod.js\");\n }),\n nginx: createLanguageAsyncLoader(\"nginx\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nginx\" */\n \"refractor/lang/nginx.js\");\n }),\n nim: createLanguageAsyncLoader(\"nim\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nim\" */\n \"refractor/lang/nim.js\");\n }),\n nix: createLanguageAsyncLoader(\"nix\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nix\" */\n \"refractor/lang/nix.js\");\n }),\n nsis: createLanguageAsyncLoader(\"nsis\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nsis\" */\n \"refractor/lang/nsis.js\");\n }),\n objectivec: createLanguageAsyncLoader(\"objectivec\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_objectivec\" */\n \"refractor/lang/objectivec.js\");\n }),\n ocaml: createLanguageAsyncLoader(\"ocaml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ocaml\" */\n \"refractor/lang/ocaml.js\");\n }),\n opencl: createLanguageAsyncLoader(\"opencl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_opencl\" */\n \"refractor/lang/opencl.js\");\n }),\n openqasm: createLanguageAsyncLoader(\"openqasm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_openqasm\" */\n \"refractor/lang/openqasm.js\");\n }),\n oz: createLanguageAsyncLoader(\"oz\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_oz\" */\n \"refractor/lang/oz.js\");\n }),\n parigp: createLanguageAsyncLoader(\"parigp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_parigp\" */\n \"refractor/lang/parigp.js\");\n }),\n parser: createLanguageAsyncLoader(\"parser\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_parser\" */\n \"refractor/lang/parser.js\");\n }),\n pascal: createLanguageAsyncLoader(\"pascal\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pascal\" */\n \"refractor/lang/pascal.js\");\n }),\n pascaligo: createLanguageAsyncLoader(\"pascaligo\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pascaligo\" */\n \"refractor/lang/pascaligo.js\");\n }),\n pcaxis: createLanguageAsyncLoader(\"pcaxis\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pcaxis\" */\n \"refractor/lang/pcaxis.js\");\n }),\n peoplecode: createLanguageAsyncLoader(\"peoplecode\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_peoplecode\" */\n \"refractor/lang/peoplecode.js\");\n }),\n perl: createLanguageAsyncLoader(\"perl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_perl\" */\n \"refractor/lang/perl.js\");\n }),\n phpExtras: createLanguageAsyncLoader(\"phpExtras\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_phpExtras\" */\n \"refractor/lang/php-extras.js\");\n }),\n php: createLanguageAsyncLoader(\"php\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_php\" */\n \"refractor/lang/php.js\");\n }),\n phpdoc: createLanguageAsyncLoader(\"phpdoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_phpdoc\" */\n \"refractor/lang/phpdoc.js\");\n }),\n plsql: createLanguageAsyncLoader(\"plsql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_plsql\" */\n \"refractor/lang/plsql.js\");\n }),\n powerquery: createLanguageAsyncLoader(\"powerquery\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_powerquery\" */\n \"refractor/lang/powerquery.js\");\n }),\n powershell: createLanguageAsyncLoader(\"powershell\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_powershell\" */\n \"refractor/lang/powershell.js\");\n }),\n processing: createLanguageAsyncLoader(\"processing\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_processing\" */\n \"refractor/lang/processing.js\");\n }),\n prolog: createLanguageAsyncLoader(\"prolog\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_prolog\" */\n \"refractor/lang/prolog.js\");\n }),\n promql: createLanguageAsyncLoader(\"promql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_promql\" */\n \"refractor/lang/promql.js\");\n }),\n properties: createLanguageAsyncLoader(\"properties\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_properties\" */\n \"refractor/lang/properties.js\");\n }),\n protobuf: createLanguageAsyncLoader(\"protobuf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_protobuf\" */\n \"refractor/lang/protobuf.js\");\n }),\n psl: createLanguageAsyncLoader(\"psl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_psl\" */\n \"refractor/lang/psl.js\");\n }),\n pug: createLanguageAsyncLoader(\"pug\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pug\" */\n \"refractor/lang/pug.js\");\n }),\n puppet: createLanguageAsyncLoader(\"puppet\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_puppet\" */\n \"refractor/lang/puppet.js\");\n }),\n pure: createLanguageAsyncLoader(\"pure\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pure\" */\n \"refractor/lang/pure.js\");\n }),\n purebasic: createLanguageAsyncLoader(\"purebasic\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_purebasic\" */\n \"refractor/lang/purebasic.js\");\n }),\n purescript: createLanguageAsyncLoader(\"purescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_purescript\" */\n \"refractor/lang/purescript.js\");\n }),\n python: createLanguageAsyncLoader(\"python\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_python\" */\n \"refractor/lang/python.js\");\n }),\n q: createLanguageAsyncLoader(\"q\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_q\" */\n \"refractor/lang/q.js\");\n }),\n qml: createLanguageAsyncLoader(\"qml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_qml\" */\n \"refractor/lang/qml.js\");\n }),\n qore: createLanguageAsyncLoader(\"qore\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_qore\" */\n \"refractor/lang/qore.js\");\n }),\n qsharp: createLanguageAsyncLoader(\"qsharp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_qsharp\" */\n \"refractor/lang/qsharp.js\");\n }),\n r: createLanguageAsyncLoader(\"r\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_r\" */\n \"refractor/lang/r.js\");\n }),\n racket: createLanguageAsyncLoader(\"racket\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_racket\" */\n \"refractor/lang/racket.js\");\n }),\n reason: createLanguageAsyncLoader(\"reason\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_reason\" */\n \"refractor/lang/reason.js\");\n }),\n regex: createLanguageAsyncLoader(\"regex\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_regex\" */\n \"refractor/lang/regex.js\");\n }),\n rego: createLanguageAsyncLoader(\"rego\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_rego\" */\n \"refractor/lang/rego.js\");\n }),\n renpy: createLanguageAsyncLoader(\"renpy\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_renpy\" */\n \"refractor/lang/renpy.js\");\n }),\n rest: createLanguageAsyncLoader(\"rest\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_rest\" */\n \"refractor/lang/rest.js\");\n }),\n rip: createLanguageAsyncLoader(\"rip\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_rip\" */\n \"refractor/lang/rip.js\");\n }),\n roboconf: createLanguageAsyncLoader(\"roboconf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_roboconf\" */\n \"refractor/lang/roboconf.js\");\n }),\n robotframework: createLanguageAsyncLoader(\"robotframework\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_robotframework\" */\n \"refractor/lang/robotframework.js\");\n }),\n ruby: createLanguageAsyncLoader(\"ruby\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ruby\" */\n \"refractor/lang/ruby.js\");\n }),\n rust: createLanguageAsyncLoader(\"rust\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_rust\" */\n \"refractor/lang/rust.js\");\n }),\n sas: createLanguageAsyncLoader(\"sas\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sas\" */\n \"refractor/lang/sas.js\");\n }),\n sass: createLanguageAsyncLoader(\"sass\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sass\" */\n \"refractor/lang/sass.js\");\n }),\n scala: createLanguageAsyncLoader(\"scala\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_scala\" */\n \"refractor/lang/scala.js\");\n }),\n scheme: createLanguageAsyncLoader(\"scheme\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_scheme\" */\n \"refractor/lang/scheme.js\");\n }),\n scss: createLanguageAsyncLoader(\"scss\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_scss\" */\n \"refractor/lang/scss.js\");\n }),\n shellSession: createLanguageAsyncLoader(\"shellSession\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_shellSession\" */\n \"refractor/lang/shell-session.js\");\n }),\n smali: createLanguageAsyncLoader(\"smali\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_smali\" */\n \"refractor/lang/smali.js\");\n }),\n smalltalk: createLanguageAsyncLoader(\"smalltalk\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_smalltalk\" */\n \"refractor/lang/smalltalk.js\");\n }),\n smarty: createLanguageAsyncLoader(\"smarty\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_smarty\" */\n \"refractor/lang/smarty.js\");\n }),\n sml: createLanguageAsyncLoader(\"sml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sml\" */\n \"refractor/lang/sml.js\");\n }),\n solidity: createLanguageAsyncLoader(\"solidity\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_solidity\" */\n \"refractor/lang/solidity.js\");\n }),\n solutionFile: createLanguageAsyncLoader(\"solutionFile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_solutionFile\" */\n \"refractor/lang/solution-file.js\");\n }),\n soy: createLanguageAsyncLoader(\"soy\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_soy\" */\n \"refractor/lang/soy.js\");\n }),\n sparql: createLanguageAsyncLoader(\"sparql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sparql\" */\n \"refractor/lang/sparql.js\");\n }),\n splunkSpl: createLanguageAsyncLoader(\"splunkSpl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_splunkSpl\" */\n \"refractor/lang/splunk-spl.js\");\n }),\n sqf: createLanguageAsyncLoader(\"sqf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sqf\" */\n \"refractor/lang/sqf.js\");\n }),\n sql: createLanguageAsyncLoader(\"sql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sql\" */\n \"refractor/lang/sql.js\");\n }),\n squirrel: createLanguageAsyncLoader(\"squirrel\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_squirrel\" */\n \"refractor/lang/squirrel.js\");\n }),\n stan: createLanguageAsyncLoader(\"stan\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_stan\" */\n \"refractor/lang/stan.js\");\n }),\n stylus: createLanguageAsyncLoader(\"stylus\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_stylus\" */\n \"refractor/lang/stylus.js\");\n }),\n swift: createLanguageAsyncLoader(\"swift\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_swift\" */\n \"refractor/lang/swift.js\");\n }),\n systemd: createLanguageAsyncLoader(\"systemd\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_systemd\" */\n \"refractor/lang/systemd.js\");\n }),\n t4Cs: createLanguageAsyncLoader(\"t4Cs\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_t4Cs\" */\n \"refractor/lang/t4-cs.js\");\n }),\n t4Templating: createLanguageAsyncLoader(\"t4Templating\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_t4Templating\" */\n \"refractor/lang/t4-templating.js\");\n }),\n t4Vb: createLanguageAsyncLoader(\"t4Vb\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_t4Vb\" */\n \"refractor/lang/t4-vb.js\");\n }),\n tap: createLanguageAsyncLoader(\"tap\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_tap\" */\n \"refractor/lang/tap.js\");\n }),\n tcl: createLanguageAsyncLoader(\"tcl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_tcl\" */\n \"refractor/lang/tcl.js\");\n }),\n textile: createLanguageAsyncLoader(\"textile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_textile\" */\n \"refractor/lang/textile.js\");\n }),\n toml: createLanguageAsyncLoader(\"toml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_toml\" */\n \"refractor/lang/toml.js\");\n }),\n tremor: createLanguageAsyncLoader(\"tremor\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_tremor\" */\n \"refractor/lang/tremor.js\");\n }),\n tsx: createLanguageAsyncLoader(\"tsx\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_tsx\" */\n \"refractor/lang/tsx.js\");\n }),\n tt2: createLanguageAsyncLoader(\"tt2\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_tt2\" */\n \"refractor/lang/tt2.js\");\n }),\n turtle: createLanguageAsyncLoader(\"turtle\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_turtle\" */\n \"refractor/lang/turtle.js\");\n }),\n twig: createLanguageAsyncLoader(\"twig\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_twig\" */\n \"refractor/lang/twig.js\");\n }),\n typescript: createLanguageAsyncLoader(\"typescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_typescript\" */\n \"refractor/lang/typescript.js\");\n }),\n typoscript: createLanguageAsyncLoader(\"typoscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_typoscript\" */\n \"refractor/lang/typoscript.js\");\n }),\n unrealscript: createLanguageAsyncLoader(\"unrealscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_unrealscript\" */\n \"refractor/lang/unrealscript.js\");\n }),\n uorazor: createLanguageAsyncLoader(\"uorazor\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_uorazor\" */\n \"refractor/lang/uorazor.js\");\n }),\n uri: createLanguageAsyncLoader(\"uri\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_uri\" */\n \"refractor/lang/uri.js\");\n }),\n v: createLanguageAsyncLoader(\"v\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_v\" */\n \"refractor/lang/v.js\");\n }),\n vala: createLanguageAsyncLoader(\"vala\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_vala\" */\n \"refractor/lang/vala.js\");\n }),\n vbnet: createLanguageAsyncLoader(\"vbnet\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_vbnet\" */\n \"refractor/lang/vbnet.js\");\n }),\n velocity: createLanguageAsyncLoader(\"velocity\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_velocity\" */\n \"refractor/lang/velocity.js\");\n }),\n verilog: createLanguageAsyncLoader(\"verilog\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_verilog\" */\n \"refractor/lang/verilog.js\");\n }),\n vhdl: createLanguageAsyncLoader(\"vhdl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_vhdl\" */\n \"refractor/lang/vhdl.js\");\n }),\n vim: createLanguageAsyncLoader(\"vim\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_vim\" */\n \"refractor/lang/vim.js\");\n }),\n visualBasic: createLanguageAsyncLoader(\"visualBasic\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_visualBasic\" */\n \"refractor/lang/visual-basic.js\");\n }),\n warpscript: createLanguageAsyncLoader(\"warpscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_warpscript\" */\n \"refractor/lang/warpscript.js\");\n }),\n wasm: createLanguageAsyncLoader(\"wasm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_wasm\" */\n \"refractor/lang/wasm.js\");\n }),\n webIdl: createLanguageAsyncLoader(\"webIdl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_webIdl\" */\n \"refractor/lang/web-idl.js\");\n }),\n wiki: createLanguageAsyncLoader(\"wiki\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_wiki\" */\n \"refractor/lang/wiki.js\");\n }),\n wolfram: createLanguageAsyncLoader(\"wolfram\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_wolfram\" */\n \"refractor/lang/wolfram.js\");\n }),\n wren: createLanguageAsyncLoader(\"wren\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_wren\" */\n \"refractor/lang/wren.js\");\n }),\n xeora: createLanguageAsyncLoader(\"xeora\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_xeora\" */\n \"refractor/lang/xeora.js\");\n }),\n xmlDoc: createLanguageAsyncLoader(\"xmlDoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_xmlDoc\" */\n \"refractor/lang/xml-doc.js\");\n }),\n xojo: createLanguageAsyncLoader(\"xojo\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_xojo\" */\n \"refractor/lang/xojo.js\");\n }),\n xquery: createLanguageAsyncLoader(\"xquery\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_xquery\" */\n \"refractor/lang/xquery.js\");\n }),\n yaml: createLanguageAsyncLoader(\"yaml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_yaml\" */\n \"refractor/lang/yaml.js\");\n }),\n yang: createLanguageAsyncLoader(\"yang\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_yang\" */\n \"refractor/lang/yang.js\");\n }),\n zig: createLanguageAsyncLoader(\"zig\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_zig\" */\n \"refractor/lang/zig.js\");\n })\n};","import createAsyncLoadingHighlighter from './async-syntax-highlighter';\nimport languageLoaders from './async-languages/prism';\nexport default createAsyncLoadingHighlighter({\n loader: function loader() {\n return import(\n /* webpackChunkName:\"react-syntax-highlighter/refractor-core-import\" */\n 'refractor/core').then(function (module) {\n // Webpack 3 returns module.exports as default as module, but webpack 4 returns module.exports as module.default\n return module[\"default\"] || module;\n });\n },\n isLanguageRegistered: function isLanguageRegistered(instance, language) {\n return instance.registered(language);\n },\n languageLoaders: languageLoaders,\n registerLanguage: function registerLanguage(instance, name, language) {\n return instance.register(language);\n }\n});","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import styled, { withTheme, ThemeContext } from 'styled-components';\nimport React, { PureComponent, useState, useEffect, useCallback, useRef, useContext, useMemo } from 'react';\nimport { PrismAsyncLight } from 'react-syntax-highlighter';\n\nconst DEFAULT_THEME_MODE = 'light';\n// Resolves the different types of theme objects in the current API\nfunction getTheme(props) {\n // If format not supported (or no theme provided), return standard theme\n return {\n mode: DEFAULT_THEME_MODE,\n ...(props === null || props === void 0 ? void 0 : props.theme)\n };\n}\n\nfunction themed(modesOrVariant) {\n var modes = modesOrVariant;\n return function (props) {\n var theme = getTheme(props);\n let themeMode = theme.mode;\n return modes[themeMode];\n };\n}\n\nconst defaultColors = theme => {\n const rcbTheme = {\n theme: theme\n };\n return {\n lineNumberColor: themed({\n light: `#383a42`,\n dark: `#abb2bf`\n })(rcbTheme),\n lineNumberBgColor: themed({\n light: `#fafafa`,\n dark: `#282c34`\n })(rcbTheme),\n backgroundColor: themed({\n light: `#fafafa`,\n dark: `#282c34`\n })(rcbTheme),\n textColor: themed({\n light: `#383a42`,\n dark: `#abb2bf`\n })(rcbTheme),\n substringColor: themed({\n light: `#e45649`,\n dark: `#e06c75`\n })(rcbTheme),\n keywordColor: themed({\n light: `#a626a4`,\n dark: `#c678dd`\n })(rcbTheme),\n attributeColor: themed({\n light: `#50a14f`,\n dark: `#98c379`\n })(rcbTheme),\n selectorAttributeColor: themed({\n light: `#e45649`,\n dark: `#e06c75`\n })(rcbTheme),\n docTagColor: themed({\n light: `#a626a4`,\n dark: `#c678dd`\n })(rcbTheme),\n nameColor: themed({\n light: `#e45649`,\n dark: `#e06c75`\n })(rcbTheme),\n builtInColor: themed({\n light: `#c18401`,\n dark: `#e6c07b`\n })(rcbTheme),\n literalColor: themed({\n light: `#0184bb`,\n dark: `#56b6c2`\n })(rcbTheme),\n bulletColor: themed({\n light: `#4078f2`,\n dark: `#61aeee`\n })(rcbTheme),\n codeColor: themed({\n light: `#383a42`,\n dark: `#abb2bf`\n })(rcbTheme),\n additionColor: themed({\n light: `#50a14f`,\n dark: `#98c379`\n })(rcbTheme),\n regexpColor: themed({\n light: `#50a14f`,\n dark: `#98c379`\n })(rcbTheme),\n symbolColor: themed({\n light: `#4078f2`,\n dark: `#61aeee`\n })(rcbTheme),\n variableColor: themed({\n light: `#986801`,\n dark: `#d19a66`\n })(rcbTheme),\n templateVariableColor: themed({\n light: `#986801`,\n dark: `#d19a66`\n })(rcbTheme),\n linkColor: themed({\n light: `#4078f2`,\n dark: `#61aeee`\n })(rcbTheme),\n selectorClassColor: themed({\n light: `#986801`,\n dark: `#d19a66`\n })(rcbTheme),\n typeColor: themed({\n light: `#986801`,\n dark: `#d19a66`\n })(rcbTheme),\n stringColor: themed({\n light: `#50a14f`,\n dark: `#98c379`\n })(rcbTheme),\n selectorIdColor: themed({\n light: `#4078f2`,\n dark: `#61aeee`\n })(rcbTheme),\n quoteColor: themed({\n light: `#a0a1a7`,\n dark: `#5c6370`\n })(rcbTheme),\n templateTagColor: themed({\n light: `#383a42`,\n dark: `#abb2bf`\n })(rcbTheme),\n deletionColor: themed({\n light: `#e45649`,\n dark: `#e06c75`\n })(rcbTheme),\n titleColor: themed({\n light: `#4078f2`,\n dark: `#61aeee`\n })(rcbTheme),\n sectionColor: themed({\n light: `#e45649`,\n dark: `#e06c75`\n })(rcbTheme),\n commentColor: themed({\n light: `#a0a1a7`,\n dark: `#5c6370`\n })(rcbTheme),\n metaKeywordColor: themed({\n light: `#383a42`,\n dark: `#abb2bf`\n })(rcbTheme),\n metaColor: themed({\n light: `#4078f2`,\n dark: `#61aeee`\n })(rcbTheme),\n functionColor: themed({\n light: `#383a42`,\n dark: `#abb2bf`\n })(rcbTheme),\n numberColor: themed({\n light: `#986801`,\n dark: `#d19a66`\n })(rcbTheme)\n };\n};\n\nconst codeFontFamily = `inherit`;\nconst fontSize = `inherit`;\nconst codeContainerStyle = {\n fontSize,\n fontFamily: codeFontFamily,\n lineHeight: 20 / 12,\n padding: 8\n};\nconst lineNumberContainerStyle = theme => {\n return {\n fontSize,\n lineHeight: 20 / 14,\n color: theme.lineNumberColor,\n backgroundColor: theme.lineNumberBgColor,\n flexShrink: 0,\n padding: 8,\n textAlign: `right`,\n userSelect: `none`\n };\n};\nconst sharedCodeStyle = theme => {\n return {\n key: {\n color: theme.keywordColor,\n fontWeight: `bolder`\n },\n keyword: {\n color: theme.keywordColor,\n fontWeight: `bolder`\n },\n 'attr-name': {\n color: theme.attributeColor\n },\n selector: {\n color: theme.selectorTagColor\n },\n comment: {\n color: theme.commentColor,\n fontFamily: codeFontFamily,\n fontStyle: `italic`\n },\n 'block-comment': {\n color: theme.commentColor,\n fontFamily: codeFontFamily,\n fontStyle: `italic`\n },\n 'function-name': {\n color: theme.sectionColor\n },\n 'class-name': {\n color: theme.sectionColor\n },\n doctype: {\n color: theme.docTagColor\n },\n substr: {\n color: theme.substringColor\n },\n namespace: {\n color: theme.nameColor\n },\n builtin: {\n color: theme.builtInColor\n },\n entity: {\n color: theme.literalColor\n },\n bullet: {\n color: theme.bulletColor\n },\n code: {\n color: theme.codeColor\n },\n addition: {\n color: theme.additionColor\n },\n regex: {\n color: theme.regexpColor\n },\n symbol: {\n color: theme.symbolColor\n },\n variable: {\n color: theme.variableColor\n },\n url: {\n color: theme.linkColor\n },\n 'selector-attr': {\n color: theme.selectorAttributeColor\n },\n 'selector-pseudo': {\n color: theme.selectorPseudoColor\n },\n type: {\n color: theme.typeColor\n },\n string: {\n color: theme.stringColor\n },\n quote: {\n color: theme.quoteColor\n },\n tag: {\n color: theme.templateTagColor\n },\n deletion: {\n color: theme.deletionColor\n },\n title: {\n color: theme.titleColor\n },\n section: {\n color: theme.sectionColor\n },\n 'meta-keyword': {\n color: theme.metaKeywordColor\n },\n meta: {\n color: theme.metaColor\n },\n italic: {\n fontStyle: `italic`\n },\n bold: {\n fontWeight: `bolder`\n },\n function: {\n color: theme.functionColor\n },\n number: {\n color: theme.numberColor\n }\n };\n};\nconst codeStyle = theme => {\n return {\n fontSize,\n fontFamily: codeFontFamily,\n background: theme.backgroundColor,\n color: theme.textColor,\n borderRadius: 3,\n display: `flex`,\n lineHeight: 20 / 14,\n overflowX: `auto`,\n whiteSpace: `pre`\n };\n};\nconst codeBlockStyle = theme => ({\n 'pre[class*=\"language-\"]': codeStyle(theme),\n ...sharedCodeStyle(theme)\n});\nconst inlineCodeStyle = theme => ({\n 'pre[class*=\"language-\"]': {\n ...codeStyle(theme),\n padding: '2px 4px',\n display: 'inline',\n whiteSpace: 'pre-wrap'\n },\n ...sharedCodeStyle(theme)\n});\nfunction applyTheme(theme = {\n mode: 'light'\n}) {\n const newTheme = {\n ...defaultColors(theme),\n ...theme\n };\n return {\n lineNumberContainerStyle: lineNumberContainerStyle(newTheme),\n codeBlockStyle: codeBlockStyle(newTheme),\n inlineCodeStyle: inlineCodeStyle(newTheme),\n codeContainerStyle\n };\n}\n\nconst SUPPORTED_LANGUAGE_ALIASES = /*#__PURE__*/Object.freeze([{\n name: 'PHP',\n alias: ['php', 'php3', 'php4', 'php5'],\n value: 'php'\n}, {\n name: 'Java',\n alias: ['java'],\n value: 'java'\n}, {\n name: 'CSharp',\n alias: ['csharp', 'c#', 'cs'],\n value: 'csharp'\n}, {\n name: 'Python',\n alias: ['python', 'py'],\n value: 'python'\n}, {\n name: 'JavaScript',\n alias: ['javascript', 'js'],\n value: 'javascript'\n}, {\n name: 'XML',\n alias: ['xml'],\n value: 'xml'\n}, {\n name: 'HTML',\n alias: ['html', 'htm'],\n value: 'markup'\n}, {\n name: 'C++',\n alias: ['c++', 'cpp', 'clike'],\n value: 'cpp'\n}, {\n name: 'Ruby',\n alias: ['ruby', 'rb', 'duby'],\n value: 'ruby'\n}, {\n name: 'Objective-C',\n alias: ['objective-c', 'objectivec', 'obj-c', 'objc'],\n value: 'objectivec'\n}, {\n name: 'C',\n alias: ['c'],\n value: 'cpp'\n}, {\n name: 'Swift',\n alias: ['swift'],\n value: 'swift'\n}, {\n name: 'TeX',\n alias: ['tex', 'latex'],\n value: 'tex'\n}, {\n name: 'Shell',\n alias: ['shell', 'sh', 'ksh', 'zsh'],\n value: 'bash'\n}, {\n name: 'Scala',\n alias: ['scala'],\n value: 'scala'\n}, {\n name: 'Go',\n alias: ['go'],\n value: 'go'\n}, {\n name: 'ActionScript',\n alias: ['actionscript', 'actionscript3', 'as'],\n value: 'actionscript'\n}, {\n name: 'ColdFusion',\n alias: ['coldfusion'],\n value: 'xml'\n}, {\n name: 'JavaFX',\n alias: ['javafx', 'jfx'],\n value: 'java'\n}, {\n name: 'VbNet',\n alias: ['vbnet', 'vb.net'],\n value: 'vbnet'\n}, {\n name: 'JSON',\n alias: ['json'],\n value: 'json'\n}, {\n name: 'MATLAB',\n alias: ['matlab'],\n value: 'matlab'\n}, {\n name: 'Groovy',\n alias: ['groovy'],\n value: 'groovy'\n}, {\n name: 'SQL',\n alias: ['sql', 'postgresql', 'postgres', 'plpgsql', 'psql', 'postgresql-console', 'postgres-console', 'tsql', 't-sql', 'mysql', 'sqlite'],\n value: 'sql'\n}, {\n name: 'R',\n alias: ['r'],\n value: 'r'\n}, {\n name: 'Perl',\n alias: ['perl', 'pl'],\n value: 'perl'\n}, {\n name: 'Lua',\n alias: ['lua'],\n value: 'lua'\n}, {\n name: 'Delphi',\n alias: ['delphi', 'pas', 'pascal', 'objectpascal'],\n value: 'delphi'\n}, {\n name: 'XML',\n alias: ['xml'],\n value: 'xml'\n}, {\n name: 'TypeScript',\n alias: ['typescript', 'ts', 'tsx'],\n value: 'typescript'\n}, {\n name: 'CoffeeScript',\n alias: ['coffeescript', 'coffee-script', 'coffee'],\n value: 'coffeescript'\n}, {\n name: 'Haskell',\n alias: ['haskell', 'hs'],\n value: 'haskell'\n}, {\n name: 'Puppet',\n alias: ['puppet'],\n value: 'puppet'\n}, {\n name: 'Arduino',\n alias: ['arduino'],\n value: 'arduino'\n}, {\n name: 'Fortran',\n alias: ['fortran'],\n value: 'fortran'\n}, {\n name: 'Erlang',\n alias: ['erlang', 'erl'],\n value: 'erlang'\n}, {\n name: 'PowerShell',\n alias: ['powershell', 'posh', 'ps1', 'psm1'],\n value: 'powershell'\n}, {\n name: 'Haxe',\n alias: ['haxe', 'hx', 'hxsl'],\n value: 'haxe'\n}, {\n name: 'Elixir',\n alias: ['elixir', 'ex', 'exs'],\n value: 'elixir'\n}, {\n name: 'Verilog',\n alias: ['verilog', 'v'],\n value: 'verilog'\n}, {\n name: 'Rust',\n alias: ['rust'],\n value: 'rust'\n}, {\n name: 'VHDL',\n alias: ['vhdl'],\n value: 'vhdl'\n}, {\n name: 'Sass',\n alias: ['sass'],\n value: 'less'\n}, {\n name: 'OCaml',\n alias: ['ocaml'],\n value: 'ocaml'\n}, {\n name: 'Dart',\n alias: ['dart'],\n value: 'dart'\n}, {\n name: 'CSS',\n alias: ['css'],\n value: 'css'\n}, {\n name: 'reStructuredText',\n alias: ['restructuredtext', 'rst', 'rest'],\n value: 'rest'\n}, {\n name: 'ObjectPascal',\n alias: ['objectpascal'],\n value: 'delphi'\n}, {\n name: 'Kotlin',\n alias: ['kotlin'],\n value: 'kotlin'\n}, {\n name: 'D',\n alias: ['d'],\n value: 'd'\n}, {\n name: 'Octave',\n alias: ['octave'],\n value: 'matlab'\n}, {\n name: 'QML',\n alias: ['qbs', 'qml'],\n value: 'qml'\n}, {\n name: 'Prolog',\n alias: ['prolog'],\n value: 'prolog'\n}, {\n name: 'FoxPro',\n alias: ['foxpro', 'vfp', 'clipper', 'xbase'],\n value: 'vbnet'\n}, {\n name: 'Scheme',\n alias: ['scheme', 'scm'],\n value: 'scheme'\n}, {\n name: 'CUDA',\n alias: ['cuda', 'cu'],\n value: 'cpp'\n}, {\n name: 'Julia',\n alias: ['julia', 'jl'],\n value: 'julia'\n}, {\n name: 'Racket',\n alias: ['racket', 'rkt'],\n value: 'lisp'\n}, {\n name: 'Ada',\n alias: ['ada', 'ada95', 'ada2005'],\n value: 'ada'\n}, {\n name: 'Tcl',\n alias: ['tcl'],\n value: 'tcl'\n}, {\n name: 'Mathematica',\n alias: ['mathematica', 'mma', 'nb'],\n value: 'mathematica'\n}, {\n name: 'Autoit',\n alias: ['autoit'],\n value: 'autoit'\n}, {\n name: 'StandardML',\n alias: ['standardmL', 'sml', 'standardml'],\n value: 'sml'\n}, {\n name: 'Objective-J',\n alias: ['objective-j', 'objectivej', 'obj-j', 'objj'],\n value: 'objectivec'\n}, {\n name: 'Smalltalk',\n alias: ['smalltalk', 'squeak', 'st'],\n value: 'smalltalk'\n}, {\n name: 'Vala',\n alias: ['vala', 'vapi'],\n value: 'vala'\n}, {\n name: 'ABAP',\n alias: ['abap'],\n value: 'sql'\n}, {\n name: 'LiveScript',\n alias: ['livescript', 'live-script'],\n value: 'livescript'\n}, {\n name: 'XQuery',\n alias: ['xquery', 'xqy', 'xq', 'xql', 'xqm'],\n value: 'xquery'\n}, {\n name: 'PlainText',\n alias: ['text', 'plaintext'],\n value: 'text'\n}, {\n name: 'Yaml',\n alias: ['yaml', 'yml'],\n value: 'yaml'\n}, {\n name: 'GraphQL',\n alias: ['graphql', 'gql'],\n value: 'graphql'\n}]);\nconst normalizeLanguage = language => {\n if (!language) {\n return '';\n }\n const match = SUPPORTED_LANGUAGE_ALIASES.find(val => {\n return val.name === language || val.alias.includes(language);\n });\n // Fallback to plain monospaced text if language passed but not supported\n return match ? match.value : language || 'text';\n};\n\nclass Code extends PureComponent {\n constructor() {\n super(...arguments);\n this._isMounted = false;\n }\n componentDidMount() {\n this._isMounted = true;\n }\n componentWillUnmount() {\n this._isMounted = false;\n }\n getLineOpacity(lineNumber) {\n if (!this.props.highlight) {\n return 1;\n }\n const highlight = this.props.highlight.split(',').map(num => {\n if (num.indexOf('-') > 0) {\n // We found a line group, e.g. 1-3\n const [from, to] = num.split('-').map(Number).sort();\n return Array(to + 1).fill(undefined).map((_, index) => index).slice(from, to + 1);\n }\n return Number(num);\n }).reduce((acc, val) => acc.concat(val), []);\n if (highlight.length === 0) {\n return 1;\n }\n if (highlight.includes(lineNumber)) {\n return 1;\n }\n return 0.3;\n }\n render() {\n const {\n inlineCodeStyle\n } = applyTheme(this.props.theme);\n const language = normalizeLanguage(this.props.language);\n const props = {\n language,\n PreTag: this.props.preTag,\n style: this.props.codeStyle || inlineCodeStyle,\n showLineNumbers: this.props.showLineNumbers,\n startingLineNumber: this.props.startingLineNumber,\n codeTagProps: this.props.codeTagProps,\n wrapLongLines: this.props.wrapLongLines\n };\n return /*#__PURE__*/React.createElement(PrismAsyncLight, Object.assign({}, props, {\n // Wrap lines is needed to set styles on the line.\n // We use this to set opacity if highlight specific lines.\n wrapLines: !!this.props.highlight,\n customStyle: this.props.customStyle,\n // Types are incorrect.\n // @ts-ignore\n lineProps: lineNumber => ({\n style: {\n opacity: this.getLineOpacity(lineNumber),\n ...this.props.lineNumberContainerStyle\n }\n })\n }), this.props.text);\n }\n}\nCode.defaultProps = {\n theme: {},\n showLineNumbers: false,\n wrapLongLines: false,\n startingLineNumber: 1,\n lineNumberContainerStyle: {},\n codeTagProps: {},\n preTag: 'span',\n highlight: '',\n customStyle: {}\n};\n\n// HELP WANTED: I don't understand why this forced typing is necessary for CopyBlock and Code, but not CodeBlock\nvar ThemedCode = /*#__PURE__*/withTheme(Code);\n\nconst LANGUAGE_FALLBACK = 'text';\nclass CodeBlock extends PureComponent {\n constructor() {\n super(...arguments);\n this._isMounted = false;\n this.handleCopy = event => {\n /**\r\n * We don't want to copy the markup after highlighting, but rather the preformatted text in the selection\r\n */\n const data = event.nativeEvent.clipboardData;\n if (data) {\n event.preventDefault();\n const selection = window.getSelection();\n if (selection === null) {\n return;\n }\n const selectedText = selection.toString();\n const document = `

${selectedText}
`;\n data.clearData();\n data.setData('text/html', document);\n data.setData('text/plain', selectedText);\n }\n };\n }\n componentDidMount() {\n this._isMounted = true;\n }\n componentWillUnmount() {\n this._isMounted = false;\n }\n render() {\n var _this$props, _this$props2, _this$props3, _this$props4;\n const {\n lineNumberContainerStyle,\n codeBlockStyle,\n codeContainerStyle\n } = applyTheme(this.props.theme);\n const props = {\n language: this.props.language || LANGUAGE_FALLBACK,\n codeStyle: {\n ...codeBlockStyle,\n ...((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.codeBlockStyle)\n },\n customStyle: (_this$props2 = this.props) === null || _this$props2 === void 0 ? void 0 : _this$props2.customStyle,\n showLineNumbers: this.props.showLineNumbers,\n startingLineNumber: this.props.startingLineNumber,\n codeTagProps: {\n style: {\n ...codeContainerStyle,\n ...((_this$props3 = this.props) === null || _this$props3 === void 0 ? void 0 : _this$props3.codeContainerStyle)\n }\n },\n lineNumberContainerStyle: {\n ...lineNumberContainerStyle,\n ...((_this$props4 = this.props) === null || _this$props4 === void 0 ? void 0 : _this$props4.lineNumberContainerStyle)\n },\n text: this.props.text.toString(),\n highlight: this.props.highlight,\n wrapLongLines: this.props.wrapLongLines\n };\n return /*#__PURE__*/React.createElement(Code, Object.assign({}, props));\n }\n}\nCodeBlock.displayName = 'CodeBlock';\nCodeBlock.defaultProps = {\n text: \"\",\n showLineNumbers: true,\n wrapLongLines: false,\n startingLineNumber: 1,\n language: LANGUAGE_FALLBACK,\n theme: {},\n highlight: '',\n lineNumberContainerStyle: {},\n customStyle: {},\n codeBlockStyle: {}\n};\n\nvar ThemedCodeBlock = /*#__PURE__*/withTheme(CodeBlock);\n\nconst ClipboardListIcon = ({\n size,\n color,\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", Object.assign({}, props, {\n viewBox: \"0 0 384 512\",\n width: size,\n height: size,\n fill: color\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M280 240H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zm0 96H168c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8zM112 232c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 48c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm144 408c0 4.4-3.6 8-8 8H56c-4.4 0-8-3.6-8-8V120c0-4.4 3.6-8 8-8h40v32c0 8.8 7.2 16 16 16h160c8.8 0 16-7.2 16-16v-32h40c4.4 0 8 3.6 8 8v336z\"\n}));\nClipboardListIcon.displayName = `ClipboardListIcon`;\nClipboardListIcon.defaultProps = {\n size: '16pt',\n color: `currentcolor`\n};\nconst ClipboardCheckIcon = ({\n size,\n color,\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", Object.assign({}, props, {\n viewBox: \"0 0 384 512\",\n width: size,\n height: size,\n fill: color\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"\n}));\nClipboardCheckIcon.displayName = `ClipboardCheckIcon`;\nClipboardCheckIcon.defaultProps = {\n size: '16pt',\n color: `currentcolor`\n};\nfunction Copy ({\n size,\n color,\n copied,\n ...props\n}) {\n if (copied) {\n return /*#__PURE__*/React.createElement(ClipboardCheckIcon, Object.assign({}, {\n color,\n size\n }, props));\n }\n return /*#__PURE__*/React.createElement(ClipboardListIcon, Object.assign({}, {\n color,\n size\n }, props));\n}\n\nconst isBrowser = () => {\n return Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\n};\nconst useSSR = () => {\n const [browser, setBrowser] = useState(false);\n useEffect(() => {\n setBrowser(isBrowser());\n }, []);\n return {\n isBrowser: browser,\n isServer: !browser\n };\n};\n\nconst getId = () => {\n return Math.random().toString(32).slice(2, 10);\n};\n\nconst createElement = id => {\n const el = document.createElement('div');\n el.setAttribute('id', id);\n return el;\n};\nconst usePortal = (selectId = getId()) => {\n const id = `zeit-ui-${selectId}`;\n const {\n isBrowser\n } = useSSR();\n const [elSnapshot, setElSnapshot] = useState(isBrowser ? createElement(id) : null);\n useEffect(() => {\n const hasElement = document.querySelector(`#${id}`);\n const el = hasElement || createElement(id);\n if (!hasElement) {\n document.body.appendChild(el);\n }\n setElSnapshot(el);\n }, []);\n return elSnapshot;\n};\n\nconst warningStack = {};\nconst useWarning = (message, component) => {\n const tag = component ? ` [${component}]` : ' ';\n const log = `[Zeit UI]${tag}: ${message}`;\n if (typeof console === 'undefined') return;\n if (warningStack[log]) return;\n warningStack[log] = true;\n if (process.env.NODE_ENV !== 'production') {\n return console.error(log);\n }\n console.warn(log);\n};\n\nconst defaultOptions = {\n onError: () => useWarning('Failed to copy.', 'use-clipboard')\n};\nconst useClipboard = (options = defaultOptions) => {\n const el = usePortal('clipboard');\n const copyText = (el, text) => {\n if (!el || !text) return;\n const selection = window.getSelection();\n if (!selection) return;\n el.style.whiteSpace = 'pre';\n el.textContent = text;\n const range = window.document.createRange();\n selection.removeAllRanges();\n range.selectNode(el);\n selection.addRange(range);\n try {\n window.document.execCommand('copy');\n } catch (e) {\n options.onError && options.onError();\n }\n selection.removeAllRanges();\n if (el) {\n el.textContent = '';\n }\n };\n const copy = useCallback(text => {\n copyText(el, text);\n }, [el]);\n return {\n copy\n };\n};\n\nconst Button = styled.button`\n position: absolute;\n top: 0.5em;\n right: 0.75em;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n background: ${p => p.theme.backgroundColor};\n margin-top: 0.15rem;\n border-radius: 0.25rem;\n max-height: 2rem;\n max-width: 2rem;\n padding: 0.25rem;\n &:hover {\n opacity: ${p => p.copied ? 1 : 0.5};\n }\n &:focus {\n outline: none;\n opacity: 1;\n }\n .icon {\n width: 1rem;\n height: 1rem;\n }\n`;\nconst Snippet = styled.div`\n position: relative;\n background: ${p => p.theme.backgroundColor};\n border-radius: 0.25rem;\n padding: ${p => p.codeBlock ? `0.25rem 0.5rem 0.25rem 0.25rem` : `0.25rem`};\n`;\nfunction CopyBlock({\n theme,\n text,\n codeBlock = false,\n customStyle = {},\n onCopy,\n copied: startingCopied,\n ...rest\n}) {\n const [copied, toggleCopy] = useState(!!startingCopied);\n const {\n copy\n } = useClipboard();\n const handler = event => {\n copy(text);\n onCopy ? onCopy(event) : toggleCopy(!copied);\n };\n return /*#__PURE__*/React.createElement(Snippet, Object.assign({}, {\n codeBlock\n }, {\n style: customStyle,\n theme: theme\n }), codeBlock ?\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(CodeBlock, Object.assign({\n text: text,\n theme: theme\n }, rest)) :\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(Code, Object.assign({\n text: text,\n theme: theme\n }, rest)), /*#__PURE__*/React.createElement(Button, Object.assign({\n \"aria-label\": \"Copy Code\",\n type: \"button\",\n onClick: handler\n }, {\n theme,\n copied\n }), /*#__PURE__*/React.createElement(Copy, {\n color: copied ? theme === null || theme === void 0 ? void 0 : theme.stringColor : theme === null || theme === void 0 ? void 0 : theme.textColor,\n copied: copied,\n className: \"icon\",\n size: \"16pt\"\n })));\n}\n\n// HELP WANTED: I don't understand why this forced typing is necessary for CopyBlock and Code, but not CodeBlock\nvar ThemedCopyBlock = /*#__PURE__*/withTheme(CopyBlock);\n\nconst withDefaults = (component, defaultProps) => {\n component.defaultProps = defaultProps;\n return component;\n};\n\nconst getStyles = theme => {\n const styles = {\n color: theme.textColor,\n border: theme.lineNumberBgColor,\n bgColor: theme.backgroundColor\n };\n return styles;\n};\n\nconst SnippetIcon = () => {\n return /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 24 24\",\n width: \"22\",\n height: \"22\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\",\n shapeRendering: \"geometricPrecision\",\n style: {\n color: 'currentcolor'\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 17.929H6c-1.105 0-2-.912-2-2.036V5.036C4 3.91 4.895 3 6 3h8c1.105 0 2 .911 2 2.036v1.866m-6 .17h8c1.105 0 2 .91 2 2.035v10.857C20 21.09 19.105 22 18 22h-8c-1.105 0-2-.911-2-2.036V9.107c0-1.124.895-2.036 2-2.036z\"\n }));\n};\nvar SnippetIcon$1 = /*#__PURE__*/React.memo(SnippetIcon);\n\nconst SnippetWrapper = styled.div`\n position: relative;\n width: ${({\n width\n}) => !!width ? width : 'auto'};\n max-width: 100%;\n padding: 8pt;\n padding-right: calc(2 * 16pt);\n color: ${({\n style\n}) => style.color};\n background-color: ${({\n style\n}) => style.bgColor};\n border: 1px solid ${({\n style\n}) => style.border};\n border-radius: 5px;\n pre {\n margin: 0;\n padding: 0;\n border: none;\n background-color: transparent;\n color: ${({\n style\n}) => style.color};\n font-size: 0.8125rem;\n }\n pre::before {\n content: '$ ';\n user-select: none;\n }\n pre :global(*) {\n margin: 0;\n padding: 0;\n font-size: inherit;\n color: inherit;\n }\n .copy {\n position: absolute;\n right: 0;\n top: -2px;\n transform: translateY(50%);\n background-color: ${({\n style\n}) => style.bgColor};\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: calc(2 * 16pt);\n color: inherit;\n transition: opacity 0.2s ease 0s;\n border-radius: 5px;\n cursor: pointer;\n user-select: none;\n }\n .copy:hover {\n opacity: 0.7;\n }\n`;\nconst defaultProps = {\n width: 'initial',\n copy: 'default',\n className: ''\n};\nconst textArrayToString = text => {\n return text.reduce((pre, current) => {\n if (!current) return pre;\n return pre ? `${pre}\\n${current}` : current;\n }, '');\n};\nconst Snippet$1 = ({\n children,\n text,\n width,\n copy: copyType,\n className,\n ...props\n}) => {\n const {\n copy\n } = useClipboard();\n const ref = useRef(null);\n const isMultiLine = text && Array.isArray(text);\n const theme = useContext(ThemeContext);\n const style = useMemo(() => !!theme && getStyles(theme), [theme]);\n const showCopyIcon = useMemo(() => copyType !== 'prevent', [copyType]);\n const childText = useMemo(() => {\n if (isMultiLine) return textArrayToString(text);\n if (!children) return text;\n if (!ref.current) return '';\n return ref.current.textContent;\n }, [ref.current, children, text]);\n const clickHandler = () => {\n if (!childText || !showCopyIcon) return;\n copy(childText);\n if (copyType === 'slient') return;\n };\n return /*#__PURE__*/React.createElement(SnippetWrapper, Object.assign({\n className: `${className}`\n }, props, {\n style: style\n }), isMultiLine ? text.map((t, index) => /*#__PURE__*/React.createElement(\"pre\", {\n key: `snippet-${index}-${t}`\n }, t)) : /*#__PURE__*/React.createElement(\"pre\", {\n ref: ref\n }, children || text), showCopyIcon && /*#__PURE__*/React.createElement(\"div\", {\n className: \"copy\",\n onClick: clickHandler\n }, /*#__PURE__*/React.createElement(SnippetIcon$1, null)));\n};\nconst MemoSnippet = /*#__PURE__*/React.memo(Snippet$1);\nvar Snippet$2 = /*#__PURE__*/withDefaults(MemoSnippet, defaultProps);\n\nvar ThemedSnippet = /*#__PURE__*/withTheme(Snippet$2);\n\nvar a11yDark = {\n lineNumberColor: `#f8f8f2`,\n lineNumberBgColor: `#2b2b2b`,\n backgroundColor: `#2b2b2b`,\n textColor: `#f8f8f2`,\n substringColor: `#f8f8f2`,\n keywordColor: `#dcc6e0`,\n attributeColor: `#ffd700`,\n selectorAttributeColor: `#dcc6e0`,\n docTagColor: `#f8f8f2`,\n nameColor: `#ffa07a`,\n builtInColor: `#f5ab35`,\n literalColor: `#f5ab35`,\n bulletColor: `#abe338`,\n codeColor: `#f8f8f2`,\n additionColor: `#abe338`,\n regexpColor: `#ffa07a`,\n symbolColor: `#abe338`,\n variableColor: `#ffa07a`,\n templateVariableColor: `#ffa07a`,\n linkColor: `#f5ab35`,\n selectorClassColor: `#ffa07a`,\n typeColor: `#f5ab35`,\n stringColor: `#abe338`,\n selectorIdColor: `#ffa07a`,\n quoteColor: `#d4d0ab`,\n templateTagColor: `#f8f8f2`,\n deletionColor: `#ffa07a`,\n titleColor: `#00e0e0`,\n sectionColor: `#00e0e0`,\n commentColor: `#d4d0ab`,\n metaKeywordColor: `#f8f8f2`,\n metaColor: `#f5ab35`,\n functionColor: `#f8f8f2`,\n numberColor: `#f5ab35`\n};\n\nvar a11yLight = {\n lineNumberColor: `#545454`,\n lineNumberBgColor: `#fefefe`,\n backgroundColor: `#fefefe`,\n textColor: `#545454`,\n substringColor: `#545454`,\n keywordColor: `#7928a1`,\n attributeColor: `#aa5d00`,\n selectorAttributeColor: `#7928a1`,\n docTagColor: `#545454`,\n nameColor: `#d91e18`,\n builtInColor: `#aa5d00`,\n literalColor: `#aa5d00`,\n bulletColor: `#008000`,\n codeColor: `#545454`,\n additionColor: `#008000`,\n regexpColor: `#d91e18`,\n symbolColor: `#008000`,\n variableColor: `#d91e18`,\n templateVariableColor: `#d91e18`,\n linkColor: `#aa5d00`,\n selectorClassColor: `#d91e18`,\n typeColor: `#aa5d00`,\n stringColor: `#008000`,\n selectorIdColor: `#d91e18`,\n quoteColor: `#696969`,\n templateTagColor: `#545454`,\n deletionColor: `#d91e18`,\n titleColor: `#007faa`,\n sectionColor: `#007faa`,\n commentColor: `#696969`,\n metaKeywordColor: `#545454`,\n metaColor: `#aa5d00`,\n functionColor: `#545454`,\n numberColor: `#aa5d00`\n};\n\nvar anOldHope = {\n lineNumberColor: `#c0c5ce`,\n lineNumberBgColor: `#1C1D21`,\n backgroundColor: `#1C1D21`,\n textColor: `#c0c5ce`,\n substringColor: `#c0c5ce`,\n keywordColor: `#B45EA4`,\n attributeColor: `#EE7C2B`,\n selectorAttributeColor: `#B45EA4`,\n docTagColor: `#c0c5ce`,\n nameColor: `#EB3C54`,\n builtInColor: `#E7CE56`,\n literalColor: `#E7CE56`,\n bulletColor: `#4FB4D7`,\n codeColor: `#c0c5ce`,\n additionColor: `#4FB4D7`,\n regexpColor: `#EB3C54`,\n symbolColor: `#4FB4D7`,\n variableColor: `#EB3C54`,\n templateVariableColor: `#EB3C54`,\n linkColor: `#E7CE56`,\n selectorClassColor: `#EB3C54`,\n typeColor: `#E7CE56`,\n stringColor: `#4FB4D7`,\n selectorIdColor: `#EB3C54`,\n quoteColor: `#B6B18B`,\n templateTagColor: `#c0c5ce`,\n deletionColor: `#EB3C54`,\n titleColor: `#78BB65`,\n sectionColor: `#78BB65`,\n commentColor: `#B6B18B`,\n metaKeywordColor: `#c0c5ce`,\n metaColor: `#E7CE56`,\n functionColor: `#c0c5ce`,\n numberColor: `#E7CE56`\n};\n\nvar androidstudio = {\n lineNumberColor: `#a9b7c6`,\n lineNumberBgColor: `#282b2e`,\n backgroundColor: `#282b2e`,\n textColor: `#a9b7c6`,\n substringColor: `#a9b7c6`,\n keywordColor: `#cc7832`,\n attributeColor: `#6A8759`,\n selectorAttributeColor: `#cc7832`,\n docTagColor: `#a9b7c6`,\n nameColor: `#e8bf6a`,\n builtInColor: `#a9b7c6`,\n literalColor: `#6897BB`,\n bulletColor: `#6897BB`,\n codeColor: `#a9b7c6`,\n additionColor: `#6A8759`,\n regexpColor: `#a9b7c6`,\n symbolColor: `#6897BB`,\n variableColor: `#629755`,\n templateVariableColor: `#629755`,\n linkColor: `#629755`,\n selectorClassColor: `#e8bf6a`,\n typeColor: `#ffc66d`,\n stringColor: `#6A8759`,\n selectorIdColor: `#e8bf6a`,\n quoteColor: `#808080`,\n templateTagColor: `#a9b7c6`,\n deletionColor: `#cc7832`,\n titleColor: `#ffc66d`,\n sectionColor: `#ffc66d`,\n commentColor: `#808080`,\n metaKeywordColor: `#a9b7c6`,\n metaColor: `#bbb529`,\n functionColor: `#a9b7c6`,\n numberColor: `#6897BB`\n};\n\nvar arta = {\n lineNumberColor: `#aaa`,\n lineNumberBgColor: `#222`,\n backgroundColor: `#222`,\n textColor: `#aaa`,\n substringColor: `#aaa`,\n keywordColor: `#6644aa`,\n attributeColor: `#32aaee`,\n selectorAttributeColor: `#6644aa`,\n docTagColor: undefined,\n nameColor: `#6644aa`,\n builtInColor: `#32aaee`,\n literalColor: `#32aaee`,\n bulletColor: `#ffcc33`,\n codeColor: `#aaa`,\n additionColor: `#00cc66`,\n regexpColor: `#ffcc33`,\n symbolColor: `#ffcc33`,\n variableColor: `#bb1166`,\n templateVariableColor: `#32aaee`,\n linkColor: `#32aaee`,\n selectorClassColor: `#6644aa`,\n typeColor: `#32aaee`,\n stringColor: `#ffcc33`,\n selectorIdColor: `#6644aa`,\n quoteColor: `#444`,\n templateTagColor: `#bb1166`,\n deletionColor: `#bb1166`,\n titleColor: `#bb1166`,\n sectionColor: `#fff`,\n commentColor: `#444`,\n metaKeywordColor: `#aaa`,\n metaColor: `#444`,\n functionColor: `#aaa`,\n numberColor: `#00cc66`\n};\n\nvar atomOneDark = {\n lineNumberColor: `#abb2bf`,\n lineNumberBgColor: `#282c34`,\n backgroundColor: `#282c34`,\n textColor: `#abb2bf`,\n substringColor: `#e06c75`,\n keywordColor: `#c678dd`,\n attributeColor: `#98c379`,\n selectorAttributeColor: `#e06c75`,\n docTagColor: `#c678dd`,\n nameColor: `#e06c75`,\n builtInColor: `#e6c07b`,\n literalColor: `#56b6c2`,\n bulletColor: `#61aeee`,\n codeColor: `#abb2bf`,\n additionColor: `#98c379`,\n regexpColor: `#98c379`,\n symbolColor: `#61aeee`,\n variableColor: `#d19a66`,\n templateVariableColor: `#d19a66`,\n linkColor: `#61aeee`,\n selectorClassColor: `#d19a66`,\n typeColor: `#d19a66`,\n stringColor: `#98c379`,\n selectorIdColor: `#61aeee`,\n quoteColor: `#5c6370`,\n templateTagColor: `#abb2bf`,\n deletionColor: `#e06c75`,\n titleColor: `#61aeee`,\n sectionColor: `#e06c75`,\n commentColor: `#5c6370`,\n metaKeywordColor: `#abb2bf`,\n metaColor: `#61aeee`,\n functionColor: `#abb2bf`,\n numberColor: `#d19a66`\n};\n\nvar atomOneLight = {\n lineNumberColor: `#383a42`,\n lineNumberBgColor: `#fafafa`,\n backgroundColor: `#fafafa`,\n textColor: `#383a42`,\n substringColor: `#e45649`,\n keywordColor: `#a626a4`,\n attributeColor: `#50a14f`,\n selectorAttributeColor: `#e45649`,\n docTagColor: `#a626a4`,\n nameColor: `#e45649`,\n builtInColor: `#c18401`,\n literalColor: `#0184bb`,\n bulletColor: `#4078f2`,\n codeColor: `#383a42`,\n additionColor: `#50a14f`,\n regexpColor: `#50a14f`,\n symbolColor: `#4078f2`,\n variableColor: `#986801`,\n templateVariableColor: `#986801`,\n linkColor: `#4078f2`,\n selectorClassColor: `#986801`,\n typeColor: `#986801`,\n stringColor: `#50a14f`,\n selectorIdColor: `#4078f2`,\n quoteColor: `#a0a1a7`,\n templateTagColor: `#383a42`,\n deletionColor: `#e45649`,\n titleColor: `#4078f2`,\n sectionColor: `#e45649`,\n commentColor: `#a0a1a7`,\n metaKeywordColor: `#383a42`,\n metaColor: `#4078f2`,\n functionColor: `#383a42`,\n numberColor: `#986801`\n};\n\nvar codepen = {\n lineNumberColor: `#fff`,\n lineNumberBgColor: `#222`,\n backgroundColor: `#222`,\n textColor: `#fff`,\n substringColor: `#fff`,\n keywordColor: `#8f9c6c`,\n attributeColor: `#9b869b`,\n selectorTagColor: `#8f9c6c`,\n docTagColor: `#fff`,\n nameColor: `#9b869b`,\n builtInColor: `#ab875d`,\n literalColor: `#ab875d`,\n bulletColor: `#ab875d`,\n codeColor: `#fff`,\n additionColor: `#8f9c6c`,\n regexpColor: `#ab875d`,\n symbolColor: `#ab875d`,\n variableColor: `#ab875d`,\n templateVariableColor: `#ab875d`,\n linkColor: `#ab875d`,\n selectorAttributeColor: `#fff`,\n selectorPseudoColor: `#ff`,\n typeColor: `#9b869b`,\n stringColor: `#8f9c6c`,\n selectorIdColor: `#9b869b`,\n selectorClassColor: `#9b869b`,\n quoteColor: `#777`,\n templateTagColor: `#ab875d`,\n deletionColor: `#ab875d`,\n titleColor: `#9b869b`,\n sectionColor: `#9b869b`,\n commentColor: `#777`,\n metaKeywordColor: `#ab875d`,\n metaColor: `#ab875d`,\n functionColor: `#fff`,\n numberColor: `#ab875d`\n};\n\nvar dracula = {\n lineNumberColor: `#6272a4`,\n lineNumberBgColor: `#282a36`,\n backgroundColor: `#282a36`,\n textColor: `#f8f8f2`,\n substringColor: `#f1fa8c`,\n keywordColor: `#ff79c6`,\n attributeColor: `#50fa7b`,\n selectorTagColor: `#8be9fd`,\n docTagColor: `#f1fa8c`,\n nameColor: `#66d9ef`,\n builtInColor: `#50fa7b`,\n literalColor: `#FF79C6`,\n bulletColor: `#8BE9FD`,\n codeColor: `#50FA7B`,\n additionColor: `#f1fa8c`,\n regexpColor: `#F1FA8C`,\n symbolColor: `#F1FA8C`,\n variableColor: `#F8F8F2`,\n templateVariableColor: `#FF79C6`,\n linkColor: `#00bcd4`,\n selectorAttributeColor: `#FF79C6`,\n selectorPseudoColor: `#FF79C6`,\n typeColor: `#8BE9FD`,\n stringColor: `#F1FA8C`,\n selectorIdColor: `#50FA7B`,\n selectorClassColor: `#50FA7B`,\n quoteColor: `#E9F284`,\n templateTagColor: `#FF79C6`,\n deletionColor: `#FF79C6`,\n titleColor: `#ff555580`,\n sectionColor: `#F8F8F2`,\n commentColor: `#6272A4`,\n metaKeywordColor: `#50FA7B`,\n metaColor: `#50FA7B`,\n functionColor: `#50FA7B`,\n numberColor: `#bd93f9`\n};\n\nvar far = {\n lineNumberColor: `#0ff`,\n lineNumberBgColor: `#000080`,\n backgroundColor: `#000080`,\n textColor: `#0ff`,\n substringColor: `#0ff`,\n keywordColor: `#fff`,\n attributeColor: `#ff0`,\n selectorAttributeColor: `#fff`,\n docTagColor: `#888`,\n nameColor: `#fff`,\n builtInColor: `#ff0`,\n literalColor: `#0f0`,\n bulletColor: `#ff0`,\n codeColor: `#0ff`,\n additionColor: `#ff0`,\n regexpColor: `#0f0`,\n symbolColor: `#ff0`,\n variableColor: `#fff`,\n templateVariableColor: `#ff0`,\n linkColor: `#0f0`,\n selectorClassColor: `#fff`,\n typeColor: `#fff`,\n stringColor: `#ff0`,\n selectorIdColor: `#fff`,\n quoteColor: `#888`,\n templateTagColor: `#ff0`,\n deletionColor: `#888`,\n titleColor: `#0ff`,\n sectionColor: `#fff`,\n commentColor: `#888`,\n metaKeywordColor: `#0ff`,\n metaColor: `#008080`,\n functionColor: `#0ff`,\n numberColor: `#0f0`\n};\n\nvar github = {\n lineNumberColor: `#333333`,\n lineNumberBgColor: `white`,\n backgroundColor: `white`,\n textColor: `#333333`,\n substringColor: `#333333`,\n keywordColor: `#a71d5d`,\n attributeColor: `#0086b3`,\n selectorAttributeColor: `#a71d5d`,\n docTagColor: `#333333`,\n nameColor: `#63a35c`,\n builtInColor: `#333333`,\n literalColor: `#0086b3`,\n bulletColor: `#0086b3`,\n codeColor: `#333333`,\n additionColor: `#55a532`,\n regexpColor: `#333333`,\n symbolColor: `#0086b3`,\n variableColor: `#df5000`,\n templateVariableColor: `#df5000`,\n linkColor: `#0366d6`,\n selectorClassColor: `#795da3`,\n typeColor: `#a71d5d`,\n stringColor: `#df5000`,\n selectorIdColor: `#795da3`,\n quoteColor: `#df5000`,\n templateTagColor: `#333333`,\n deletionColor: `#bd2c00`,\n titleColor: `#795da3`,\n sectionColor: `#63a35c`,\n commentColor: `#969896`,\n metaKeywordColor: `#333333`,\n metaColor: `#969896`,\n functionColor: `#333333`,\n numberColor: `#333333`\n};\n\nvar googlecode = {\n lineNumberColor: `black`,\n lineNumberBgColor: `white`,\n backgroundColor: `white`,\n textColor: `black`,\n substringColor: `#000`,\n keywordColor: `#008`,\n attributeColor: `#000`,\n selectorAttributeColor: `#008`,\n docTagColor: `#606`,\n nameColor: `#008`,\n builtInColor: `#606`,\n literalColor: `#066`,\n bulletColor: `#066`,\n codeColor: `black`,\n additionColor: undefined,\n regexpColor: `#080`,\n symbolColor: `#066`,\n variableColor: `#660`,\n templateVariableColor: `#660`,\n linkColor: `#066`,\n selectorClassColor: `#9B703F`,\n typeColor: `#606`,\n stringColor: `#080`,\n selectorIdColor: `#9B703F`,\n quoteColor: `#800`,\n templateTagColor: `black`,\n deletionColor: undefined,\n titleColor: `#606`,\n sectionColor: `#008`,\n commentColor: `#800`,\n metaKeywordColor: `black`,\n metaColor: `#066`,\n functionColor: `black`,\n numberColor: `#066`\n};\n\nvar hopscotch = {\n lineNumberColor: `#b9b5b8`,\n lineNumberBgColor: `#322931`,\n backgroundColor: `#322931`,\n textColor: `#b9b5b8`,\n substringColor: `#b9b5b8`,\n keywordColor: `#c85e7c`,\n attributeColor: `#dd464c`,\n selectorAttributeColor: `#c85e7c`,\n docTagColor: `#b9b5b8`,\n nameColor: `#dd464c`,\n builtInColor: `#fd8b19`,\n literalColor: `#fd8b19`,\n bulletColor: `#8fc13e`,\n codeColor: `#b9b5b8`,\n additionColor: `#8fc13e`,\n regexpColor: `#dd464c`,\n symbolColor: `#8fc13e`,\n variableColor: `#dd464c`,\n templateVariableColor: `#dd464c`,\n linkColor: `#dd464c`,\n selectorClassColor: `#dd464c`,\n typeColor: `#fd8b19`,\n stringColor: `#8fc13e`,\n selectorIdColor: `#dd464c`,\n quoteColor: `#989498`,\n templateTagColor: `#b9b5b8`,\n deletionColor: `#dd464c`,\n titleColor: `#1290bf`,\n sectionColor: `#1290bf`,\n commentColor: `#989498`,\n metaKeywordColor: `#b9b5b8`,\n metaColor: `#149b93`,\n functionColor: `#1290bf`,\n numberColor: `#fd8b19`\n};\n\nvar hybrid = {\n lineNumberColor: `#c5c8c6`,\n lineNumberBgColor: `#1d1f21`,\n backgroundColor: `#1d1f21`,\n textColor: `#c5c8c6`,\n substringColor: `#8abeb7`,\n keywordColor: `#81a2be`,\n attributeColor: `#b294bb`,\n selectorAttributeColor: `#81a2be`,\n docTagColor: `#b5bd68`,\n nameColor: `#f0c674`,\n builtInColor: `#de935f`,\n literalColor: `#cc6666`,\n bulletColor: `#81a2be`,\n codeColor: `#b294bb`,\n additionColor: `#b5bd68`,\n regexpColor: `#b5bd68`,\n symbolColor: `#cc6666`,\n variableColor: `#8abeb7`,\n templateVariableColor: `#8abeb7`,\n linkColor: `#cc6666`,\n selectorClassColor: `#de935f`,\n typeColor: `#de935f`,\n stringColor: `#b5bd68`,\n selectorIdColor: `#b294bb`,\n quoteColor: `#de935f`,\n templateTagColor: `#8abeb7`,\n deletionColor: `#cc6666`,\n titleColor: `#f0c674`,\n sectionColor: `#de935f`,\n commentColor: `#707880`,\n metaKeywordColor: `#c5c8c6`,\n metaColor: `#707880`,\n functionColor: `#c5c8c6`,\n numberColor: `#cc6666`\n};\n\nvar irBlack = {\n lineNumberColor: `#f8f8f8`,\n lineNumberBgColor: `#000`,\n backgroundColor: `#000`,\n textColor: `#f8f8f8`,\n substringColor: `#daefa3`,\n keywordColor: `#96cbfe`,\n attributeColor: `#ffffb6`,\n selectorAttributeColor: `#96cbfe`,\n docTagColor: `#ffffb6`,\n nameColor: `#96cbfe`,\n builtInColor: `#f8f8f8`,\n literalColor: `#c6c5fe`,\n bulletColor: `#c6c5fe`,\n codeColor: `#f8f8f8`,\n additionColor: `#a8ff60`,\n regexpColor: `#e9c062`,\n symbolColor: `#c6c5fe`,\n variableColor: `#c6c5fe`,\n templateVariableColor: `#c6c5fe`,\n linkColor: `#e9c062`,\n selectorClassColor: `#f8f8f8`,\n typeColor: `#ffffb6`,\n stringColor: `#a8ff60`,\n selectorIdColor: `#ffffb6`,\n quoteColor: `#7c7c7c`,\n templateTagColor: `#f8f8f8`,\n deletionColor: `#ff73fd`,\n titleColor: `#ffffb6`,\n sectionColor: `#ffffb6`,\n commentColor: `#7c7c7c`,\n metaKeywordColor: `#f8f8f8`,\n metaColor: `#7c7c7c`,\n functionColor: `#f8f8f8`,\n numberColor: `#ff73fd`\n};\n\nvar monoBlue = {\n lineNumberColor: `#00193a`,\n lineNumberBgColor: `#eaeef3`,\n backgroundColor: `#eaeef3`,\n textColor: `#00193a`,\n substringColor: `#4c81c9`,\n keywordColor: undefined,\n attributeColor: `#4c81c9`,\n selectorAttributeColor: undefined,\n docTagColor: undefined,\n nameColor: `#0048ab`,\n builtInColor: `#0048ab`,\n literalColor: `#0048ab`,\n bulletColor: `#4c81c9`,\n codeColor: `#00193a`,\n additionColor: `#0048ab`,\n regexpColor: `#4c81c9`,\n symbolColor: `#4c81c9`,\n variableColor: `#4c81c9`,\n templateVariableColor: `#4c81c9`,\n linkColor: `#4c81c9`,\n selectorClassColor: `#0048ab`,\n typeColor: `#0048ab`,\n stringColor: `#0048ab`,\n selectorIdColor: `#0048ab`,\n quoteColor: `#0048ab`,\n templateTagColor: `#00193a`,\n deletionColor: `#4c81c9`,\n titleColor: `#0048ab`,\n sectionColor: `#0048ab`,\n commentColor: `#738191`,\n metaKeywordColor: `#00193a`,\n metaColor: `#4c81c9`,\n functionColor: `#00193a`,\n numberColor: `#00193a`\n};\n\nvar monokaiSublime = {\n lineNumberColor: `#f8f8f2`,\n lineNumberBgColor: `#23241f`,\n backgroundColor: `#23241f`,\n textColor: `#f8f8f2`,\n substringColor: `#f8f8f2`,\n keywordColor: `#f92672`,\n attributeColor: `#66d9ef`,\n selectorAttributeColor: `#f92672`,\n docTagColor: `#f8f8f2`,\n nameColor: `#f92672`,\n builtInColor: `#e6db74`,\n literalColor: `#ae81ff`,\n bulletColor: `#ae81ff`,\n codeColor: `#a6e22e`,\n additionColor: `#e6db74`,\n regexpColor: `#ae81ff`,\n symbolColor: `#66d9ef`,\n variableColor: `#e6db74`,\n templateVariableColor: `#e6db74`,\n linkColor: `#ae81ff`,\n selectorClassColor: `#a6e22e`,\n typeColor: `#e6db74`,\n stringColor: `#e6db74`,\n selectorIdColor: `#e6db74`,\n quoteColor: `#ae81ff`,\n templateTagColor: `#f8f8f2`,\n deletionColor: `#75715e`,\n titleColor: `#a6e22e`,\n sectionColor: `#a6e22e`,\n commentColor: `#75715e`,\n metaKeywordColor: `#f8f8f2`,\n metaColor: `#75715e`,\n functionColor: `#f8f8f2`,\n numberColor: `#ae81ff`\n};\n\nvar monokai = {\n lineNumberColor: `#ddd`,\n lineNumberBgColor: `#272822`,\n backgroundColor: `#272822`,\n textColor: `#ddd`,\n substringColor: `#a6e22e`,\n keywordColor: `#f92672`,\n attributeColor: `#bf79db`,\n selectorAttributeColor: `#f92672`,\n docTagColor: undefined,\n nameColor: `#f92672`,\n builtInColor: `#a6e22e`,\n literalColor: `#f92672`,\n bulletColor: `#a6e22e`,\n codeColor: `#66d9ef`,\n additionColor: `#a6e22e`,\n regexpColor: `#bf79db`,\n symbolColor: `#bf79db`,\n variableColor: `#a6e22e`,\n templateVariableColor: `#a6e22e`,\n linkColor: `#bf79db`,\n selectorClassColor: `#ddd`,\n typeColor: `#a6e22e`,\n stringColor: `#a6e22e`,\n selectorIdColor: undefined,\n quoteColor: `#75715e`,\n templateTagColor: `#a6e22e`,\n deletionColor: `#75715e`,\n titleColor: `#a6e22e`,\n sectionColor: `#a6e22e`,\n commentColor: `#75715e`,\n metaKeywordColor: `#ddd`,\n metaColor: `#75715e`,\n functionColor: `#ddd`,\n numberColor: `#ddd`\n};\n\nvar nord = {\n lineNumberColor: `#D8DEE9`,\n lineNumberBgColor: `#2E3440`,\n backgroundColor: `#2E3440`,\n textColor: `#D8DEE9`,\n substringColor: `#D8DEE9`,\n keywordColor: `#81A1C1`,\n attributeColor: `#D8DEE9`,\n selectorAttributeColor: `#81A1C1`,\n docTagColor: `#8FBCBB`,\n nameColor: `#81A1C1`,\n builtInColor: `#8FBCBB`,\n literalColor: `#81A1C1`,\n bulletColor: `#81A1C1`,\n codeColor: `#8FBCBB`,\n additionColor: `#a3be8c`,\n regexpColor: `#EBCB8B`,\n symbolColor: `#81A1C1`,\n variableColor: `#D8DEE9`,\n templateVariableColor: `#D8DEE9`,\n linkColor: `#D8DEE9`,\n selectorClassColor: `#8FBCBB`,\n typeColor: `#8FBCBB`,\n stringColor: `#A3BE8C`,\n selectorIdColor: `#8FBCBB`,\n quoteColor: `#4C566A`,\n templateTagColor: `#5E81AC`,\n deletionColor: `#bf616a`,\n titleColor: `#8FBCBB`,\n sectionColor: `#88C0D0`,\n commentColor: `#4C566A`,\n metaKeywordColor: `#5E81AC`,\n metaColor: `#5E81AC`,\n functionColor: `#88C0D0`,\n numberColor: `#B48EAD`\n};\n\nvar noctisViola = {\n lineNumberColor: `#665973`,\n lineNumberBgColor: `#30243d`,\n backgroundColor: `#30243d`,\n textColor: `#e4b781`,\n substringColor: `#bf8ef1`,\n keywordColor: `#df769b`,\n attributeColor: `#e69533`,\n selectorAttributeColor: `#ccbfd9`,\n docTagColor: `#e66533`,\n nameColor: `#ccbfd9`,\n builtInColor: `#e66533`,\n literalColor: `#ccbfd9`,\n bulletColor: `#ccbfd9`,\n codeColor: `#30243d`,\n additionColor: `#a3be8c`,\n regexpColor: `#7f659a`,\n symbolColor: `#ccbfd9`,\n variableColor: `#e4b781`,\n templateVariableColor: `#bf8ef1`,\n linkColor: `#bf8ef1`,\n selectorClassColor: `#d67e5c`,\n typeColor: `#d67e5c`,\n stringColor: `#49e9a6`,\n selectorIdColor: `#d67e5c`,\n quoteColor: `#665973`,\n templateTagColor: `#e66533`,\n deletionColor: `#bf616a`,\n titleColor: `#d67e5c`,\n sectionColor: `#e4b781`,\n commentColor: `#7f659a`,\n metaKeywordColor: `#7f659a`,\n metaColor: `#7f659a`,\n functionColor: `#49ace9`,\n numberColor: `#6258e5`\n};\n\nvar obsidian = {\n lineNumberColor: `#e0e2e4`,\n lineNumberBgColor: `#282b2e`,\n backgroundColor: `#282b2e`,\n textColor: `#e0e2e4`,\n substringColor: `#8cbbad`,\n keywordColor: `#93c763`,\n attributeColor: `#668bb0`,\n selectorAttributeColor: `#93c763`,\n docTagColor: undefined,\n nameColor: `#8cbbad`,\n builtInColor: `#8cbbad`,\n literalColor: `#93c763`,\n bulletColor: `#8cbbad`,\n codeColor: `white`,\n additionColor: `#8cbbad`,\n regexpColor: `#d39745`,\n symbolColor: `#ec7600`,\n variableColor: `#8cbbad`,\n templateVariableColor: `#8cbbad`,\n linkColor: `#d39745`,\n selectorClassColor: `#A082BD`,\n typeColor: `#8cbbad`,\n stringColor: `#ec7600`,\n selectorIdColor: `#93c763`,\n quoteColor: `#818e96`,\n templateTagColor: `#8cbbad`,\n deletionColor: `#818e96`,\n titleColor: undefined,\n sectionColor: `white`,\n commentColor: `#818e96`,\n metaKeywordColor: `#e0e2e4`,\n metaColor: `#557182`,\n functionColor: `#e0e2e4`,\n numberColor: `#ffcd22`\n};\n\nvar ocean = {\n lineNumberColor: `#c0c5ce`,\n lineNumberBgColor: `#2b303b`,\n backgroundColor: `#2b303b`,\n textColor: `#c0c5ce`,\n substringColor: `#c0c5ce`,\n keywordColor: `#b48ead`,\n attributeColor: `#ebcb8b`,\n selectorAttributeColor: `#b48ead`,\n docTagColor: `#c0c5ce`,\n nameColor: `#bf616a`,\n builtInColor: `#d08770`,\n literalColor: `#d08770`,\n bulletColor: `#a3be8c`,\n codeColor: `#c0c5ce`,\n additionColor: `#a3be8c`,\n regexpColor: `#bf616a`,\n symbolColor: `#a3be8c`,\n variableColor: `#bf616a`,\n templateVariableColor: `#bf616a`,\n linkColor: `#d08770`,\n selectorClassColor: `#bf616a`,\n typeColor: `#d08770`,\n stringColor: `#a3be8c`,\n selectorIdColor: `#bf616a`,\n quoteColor: `#65737e`,\n templateTagColor: `#c0c5ce`,\n deletionColor: `#bf616a`,\n titleColor: `#8fa1b3`,\n sectionColor: `#8fa1b3`,\n commentColor: `#65737e`,\n metaKeywordColor: `#c0c5ce`,\n metaColor: `#d08770`,\n functionColor: `#c0c5ce`,\n numberColor: `#d08770`\n};\n\nvar paraisoDark = {\n lineNumberColor: `#a39e9b`,\n lineNumberBgColor: `#2f1e2e`,\n backgroundColor: `#2f1e2e`,\n textColor: `#a39e9b`,\n substringColor: `#a39e9b`,\n keywordColor: `#815ba4`,\n attributeColor: `#fec418`,\n selectorAttributeColor: `#815ba4`,\n docTagColor: `#a39e9b`,\n nameColor: `#ef6155`,\n builtInColor: `#f99b15`,\n literalColor: `#f99b15`,\n bulletColor: `#48b685`,\n codeColor: `#a39e9b`,\n additionColor: `#48b685`,\n regexpColor: `#ef6155`,\n symbolColor: `#48b685`,\n variableColor: `#ef6155`,\n templateVariableColor: `#ef6155`,\n linkColor: `#ef6155`,\n selectorClassColor: `#ef6155`,\n typeColor: `#f99b15`,\n stringColor: `#48b685`,\n selectorIdColor: `#ef6155`,\n quoteColor: `#8d8687`,\n templateTagColor: `#a39e9b`,\n deletionColor: `#f99b15`,\n titleColor: `#fec418`,\n sectionColor: `#fec418`,\n commentColor: `#8d8687`,\n metaKeywordColor: `#a39e9b`,\n metaColor: `#ef6155`,\n functionColor: `#a39e9b`,\n numberColor: `#f99b15`\n};\n\nvar paraisoLight = {\n lineNumberColor: `#4f424c`,\n lineNumberBgColor: `#e7e9db`,\n backgroundColor: `#e7e9db`,\n textColor: `#4f424c`,\n substringColor: `#4f424c`,\n keywordColor: `#815ba4`,\n attributeColor: `#fec418`,\n selectorAttributeColor: `#815ba4`,\n docTagColor: `#4f424c`,\n nameColor: `#ef6155`,\n builtInColor: `#f99b15`,\n literalColor: `#f99b15`,\n bulletColor: `#48b685`,\n codeColor: `#4f424c`,\n additionColor: `#48b685`,\n regexpColor: `#ef6155`,\n symbolColor: `#48b685`,\n variableColor: `#ef6155`,\n templateVariableColor: `#ef6155`,\n linkColor: `#ef6155`,\n selectorClassColor: `#ef6155`,\n typeColor: `#f99b15`,\n stringColor: `#48b685`,\n selectorIdColor: `#ef6155`,\n quoteColor: `#776e71`,\n templateTagColor: `#4f424c`,\n deletionColor: `#f99b15`,\n titleColor: `#fec418`,\n sectionColor: `#fec418`,\n commentColor: `#776e71`,\n metaKeywordColor: `#4f424c`,\n metaColor: `#ef6155`,\n functionColor: `#4f424c`,\n numberColor: `#f99b15`\n};\n\nvar pojoaque = {\n lineNumberColor: `#dccf8f`,\n lineNumberBgColor: `#181914 url(\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAMAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQACQYGBgcGCQcHCQ0IBwgNDwsJCQsPEQ4ODw4OERENDg4ODg0RERQUFhQUERoaHBwaGiYmJiYmKysrKysrKysrKwEJCAgJCgkMCgoMDwwODA8TDg4ODhMVDg4PDg4VGhMRERERExoXGhYWFhoXHR0aGh0dJCQjJCQrKysrKysrKysr/8AAEQgAjACMAwEiAAIRAQMRAf/EAF4AAQEBAAAAAAAAAAAAAAAAAAABBwEBAQAAAAAAAAAAAAAAAAAAAAIQAAEDAwIHAQEAAAAAAAAAAADwAREhYaExkUFRcYGxwdHh8REBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AyGFEjHaBS2fDDs2zkhKmBKktb7km+ZwwCnXPkLVmCTMItj6AXFxRS465/BTnkAJvkLkJe+7AKKoi2AtRS2zuAWsCb5GOlBN8gKfmuGHZ8MFqIth3ALmFoFwbwKWyAlTAp17uKqBvgBD8sM4fTjhvAhkzhaRkBMKBrfs7jGPIpzy7gFrAqnC0C0gB0EWwBDW2cBVQwm+QtPpa3wBO3sVvszCnLAhkzgL5/RLf13cLQd8/AGlu0Cb5HTx9KuAEieGJEdcehS3eRTp2ATdt3CpIm+QtZwAhROXFeb7swp/ahaM3kBE/jSIUBc/AWrgBN8uNFAl+b7sAXFxFn2YLUU5Ns7gFX8C4ib+hN8gFWXwK3bZglxEJm+gKdciLPsFV/TClsgJUwKJ5FVA7tvIFrfZhVfGJDcsCKaYgAqv6YRbE+RWOWBtu7+AL3yRalXLyKqAIIfk+zARbDgFyEsncYwJvlgFRW+GEWntIi2P0BooyFxcNr8Ep3+ANLbMO+QyhvbiqdgC0kVvgUUiLYgBS2QtPbiVI1/sgOmG9uO+Y8DW+7jS2zAOnj6O2BndwuIAUtkdRN8gFoK3wwXMQyZwHVbClsuNLd4E3yAUR6FVDBR+BafQGt93LVMxJTv8ABts4CVLhcfYWsCb5kC9/BHdU8CLYFY5bMAd+eX9MGthhpbA1vu4B7+RKkaW2Yq4AQtVBBFsAJU/AuIXBhN8gGWnstefhiZyWvLAEnbYS1uzSFP6Jvn4Baxx70JKkQojLib5AVTey1jjgkKJGO0AKWyOm7N7cSpgSpAdPH0Tfd/gp1z5C1ZgKqN9J2wFxcUUuAFLZAm+QC0Fb4YUVRFsAOvj4KW2dwtYE3yAWk/wS/PLMKfmuGHZ8MAXF/Ja32Yi5haAKWz4Ydm2cSpgU693Atb7km+Zwwh+WGcPpxw3gAkzCLY+iYUDW/Z3Adc/gpzyFrAqnALkJe+7DoItgAtRS2zuKqGE3yAx0oJvkdvYrfZmALURbDuL5/RLf13cAuDeBS2RpbtAm+QFVA3wR+3fUtFHoBDJnC0jIXH0HWsgMY8inPLuOkd9chp4z20ALQLSA8cI9jYAIa2zjzjBd8gRafS1vgiUho/kAKcsCGTOGWvoOpkAtB3z8Hm8x2Ff5ADp4+lXAlIvcmwH/2Q==\") repeat left top`,\n backgroundColor: `#181914 url(\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAMAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQACQYGBgcGCQcHCQ0IBwgNDwsJCQsPEQ4ODw4OERENDg4ODg0RERQUFhQUERoaHBwaGiYmJiYmKysrKysrKysrKwEJCAgJCgkMCgoMDwwODA8TDg4ODhMVDg4PDg4VGhMRERERExoXGhYWFhoXHR0aGh0dJCQjJCQrKysrKysrKysr/8AAEQgAjACMAwEiAAIRAQMRAf/EAF4AAQEBAAAAAAAAAAAAAAAAAAABBwEBAQAAAAAAAAAAAAAAAAAAAAIQAAEDAwIHAQEAAAAAAAAAAADwAREhYaExkUFRcYGxwdHh8REBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AyGFEjHaBS2fDDs2zkhKmBKktb7km+ZwwCnXPkLVmCTMItj6AXFxRS465/BTnkAJvkLkJe+7AKKoi2AtRS2zuAWsCb5GOlBN8gKfmuGHZ8MFqIth3ALmFoFwbwKWyAlTAp17uKqBvgBD8sM4fTjhvAhkzhaRkBMKBrfs7jGPIpzy7gFrAqnC0C0gB0EWwBDW2cBVQwm+QtPpa3wBO3sVvszCnLAhkzgL5/RLf13cLQd8/AGlu0Cb5HTx9KuAEieGJEdcehS3eRTp2ATdt3CpIm+QtZwAhROXFeb7swp/ahaM3kBE/jSIUBc/AWrgBN8uNFAl+b7sAXFxFn2YLUU5Ns7gFX8C4ib+hN8gFWXwK3bZglxEJm+gKdciLPsFV/TClsgJUwKJ5FVA7tvIFrfZhVfGJDcsCKaYgAqv6YRbE+RWOWBtu7+AL3yRalXLyKqAIIfk+zARbDgFyEsncYwJvlgFRW+GEWntIi2P0BooyFxcNr8Ep3+ANLbMO+QyhvbiqdgC0kVvgUUiLYgBS2QtPbiVI1/sgOmG9uO+Y8DW+7jS2zAOnj6O2BndwuIAUtkdRN8gFoK3wwXMQyZwHVbClsuNLd4E3yAUR6FVDBR+BafQGt93LVMxJTv8ABts4CVLhcfYWsCb5kC9/BHdU8CLYFY5bMAd+eX9MGthhpbA1vu4B7+RKkaW2Yq4AQtVBBFsAJU/AuIXBhN8gGWnstefhiZyWvLAEnbYS1uzSFP6Jvn4Baxx70JKkQojLib5AVTey1jjgkKJGO0AKWyOm7N7cSpgSpAdPH0Tfd/gp1z5C1ZgKqN9J2wFxcUUuAFLZAm+QC0Fb4YUVRFsAOvj4KW2dwtYE3yAWk/wS/PLMKfmuGHZ8MAXF/Ja32Yi5haAKWz4Ydm2cSpgU693Atb7km+Zwwh+WGcPpxw3gAkzCLY+iYUDW/Z3Adc/gpzyFrAqnALkJe+7DoItgAtRS2zuKqGE3yAx0oJvkdvYrfZmALURbDuL5/RLf13cAuDeBS2RpbtAm+QFVA3wR+3fUtFHoBDJnC0jIXH0HWsgMY8inPLuOkd9chp4z20ALQLSA8cI9jYAIa2zjzjBd8gRafS1vgiUho/kAKcsCGTOGWvoOpkAtB3z8Hm8x2Ff5ADp4+lXAlIvcmwH/2Q==\") repeat left top`,\n textColor: `#dccf8f`,\n substringColor: `#cb4b16`,\n keywordColor: `#b64926`,\n attributeColor: `#b89859`,\n selectorAttributeColor: `#b64926`,\n docTagColor: `#468966`,\n nameColor: `#ffb03b`,\n builtInColor: `#ffb03b`,\n literalColor: `#b64926`,\n bulletColor: `#cb4b16`,\n codeColor: `#dccf8f`,\n additionColor: `#b64926`,\n regexpColor: `#468966`,\n symbolColor: `#cb4b16`,\n variableColor: `#b58900`,\n templateVariableColor: `#b58900`,\n linkColor: `#cb4b16`,\n selectorClassColor: `#d3a60c`,\n typeColor: `#b58900`,\n stringColor: `#468966`,\n selectorIdColor: `#d3a60c`,\n quoteColor: `#586e75`,\n templateTagColor: `#dccf8f`,\n deletionColor: `#dc322f`,\n titleColor: `#ffb03b`,\n sectionColor: `#ffb03b`,\n commentColor: `#586e75`,\n metaKeywordColor: `#dccf8f`,\n metaColor: `#cb4b16`,\n functionColor: `#dccf8f`,\n numberColor: `#468966`\n};\n\nvar purebasic = {\n lineNumberColor: `#000000`,\n lineNumberBgColor: `#FFFFDF`,\n backgroundColor: `#FFFFDF`,\n textColor: `#000000`,\n substringColor: `#000000`,\n keywordColor: `#006666`,\n attributeColor: `#924B72`,\n selectorAttributeColor: `#000000`,\n docTagColor: `#000000`,\n nameColor: `#000000`,\n builtInColor: `#006666`,\n literalColor: `#924B72`,\n bulletColor: `#000000`,\n codeColor: `#006666`,\n additionColor: `#00AAAA`,\n regexpColor: `#00AAAA`,\n symbolColor: `#924B72`,\n variableColor: `#006666`,\n templateVariableColor: `#000000`,\n linkColor: `#924B72`,\n selectorClassColor: `#006666`,\n typeColor: `#000000`,\n stringColor: `#0080FF`,\n selectorIdColor: `#924B72`,\n quoteColor: `#000000`,\n templateTagColor: `#000000`,\n deletionColor: `#924B72`,\n titleColor: `#006666`,\n sectionColor: `#00AAAA`,\n commentColor: `#00AAAA`,\n metaKeywordColor: `#006666`,\n metaColor: `#924B72`,\n functionColor: `#000000`,\n numberColor: `#000000`\n};\n\nvar railscast = {\n lineNumberColor: `#e6e1dc`,\n lineNumberBgColor: `#232323`,\n backgroundColor: `#232323`,\n textColor: `#e6e1dc`,\n substringColor: `#519f50`,\n keywordColor: `#c26230`,\n attributeColor: `#cda869`,\n selectorAttributeColor: `#c26230`,\n docTagColor: `#e6e1dc`,\n nameColor: `#e8bf6a`,\n builtInColor: `#6d9cbe`,\n literalColor: `#e6e1dc`,\n bulletColor: `#6d9cbe`,\n codeColor: `#e6e1dc`,\n additionColor: `#e6e1dc`,\n regexpColor: `#a5c261`,\n symbolColor: `#6d9cbe`,\n variableColor: `#a5c261`,\n templateVariableColor: `#a5c261`,\n linkColor: `#6d9cbe`,\n selectorClassColor: `#9b703f`,\n typeColor: `#da4939`,\n stringColor: `#a5c261`,\n selectorIdColor: `#8b98ab`,\n quoteColor: `#bc9458`,\n templateTagColor: `#e6e1dc`,\n deletionColor: `#e6e1dc`,\n titleColor: `#ffc66d`,\n sectionColor: `#ffc66d`,\n commentColor: `#bc9458`,\n metaKeywordColor: `#e6e1dc`,\n metaColor: `#9b859d`,\n functionColor: `#e6e1dc`,\n numberColor: `#a5c261`\n};\n\nvar rainbow = {\n lineNumberColor: `#d1d9e1`,\n lineNumberBgColor: `#474949`,\n backgroundColor: `#474949`,\n textColor: `#d1d9e1`,\n substringColor: `#f99157`,\n keywordColor: `#cc99cc`,\n attributeColor: `#81a2be`,\n selectorAttributeColor: `#cc99cc`,\n docTagColor: `#8abeb7`,\n nameColor: `#b5bd68`,\n builtInColor: `#b5bd68`,\n literalColor: `#cc99cc`,\n bulletColor: `#f99157`,\n codeColor: `#d1d9e1`,\n additionColor: `#cc99cc`,\n regexpColor: `#8abeb7`,\n symbolColor: `#f99157`,\n variableColor: `#ffcc66`,\n templateVariableColor: `#ffcc66`,\n linkColor: `#f99157`,\n selectorClassColor: `#d1d9e1`,\n typeColor: `#cc99cc`,\n stringColor: `#8abeb7`,\n selectorIdColor: `#ffcc66`,\n quoteColor: `#969896`,\n templateTagColor: `#d1d9e1`,\n deletionColor: `#dc322f`,\n titleColor: `#b5bd68`,\n sectionColor: `#b5bd68`,\n commentColor: `#969896`,\n metaKeywordColor: `#d1d9e1`,\n metaColor: `#f99157`,\n functionColor: `#d1d9e1`,\n numberColor: `#f99157`\n};\n\nvar shadesOfPurple = {\n lineNumberColor: `#e3dfff`,\n lineNumberBgColor: `#2d2b57`,\n backgroundColor: `#2d2b57`,\n textColor: `#e3dfff`,\n substringColor: `#e3dfff`,\n keywordColor: `#fb9e00`,\n attributeColor: `#4cd213`,\n selectorAttributeColor: `#fb9e00`,\n docTagColor: `#e3dfff`,\n nameColor: `#a1feff`,\n builtInColor: `#fb9e00`,\n literalColor: `#fa658d`,\n bulletColor: `#4cd213`,\n codeColor: `#4cd213`,\n additionColor: `#4cd213`,\n regexpColor: `#4cd213`,\n symbolColor: `#4cd213`,\n variableColor: `#e3dfff`,\n templateVariableColor: `#e3dfff`,\n linkColor: `#e3dfff`,\n selectorClassColor: `#4cd213`,\n typeColor: `#e3dfff`,\n stringColor: `#4cd213`,\n selectorIdColor: `#e3dfff`,\n quoteColor: `#4cd213`,\n templateTagColor: `#4cd213`,\n deletionColor: `#4cd213`,\n titleColor: `#fad000`,\n sectionColor: `#fb9e00`,\n commentColor: `#ac65ff`,\n metaKeywordColor: `#e3dfff`,\n metaColor: `#fb9e00`,\n functionColor: `#e3dfff`,\n numberColor: `#fa658d`\n};\n\nvar solarizedDark = {\n lineNumberColor: `#839496`,\n lineNumberBgColor: `#002b36`,\n backgroundColor: `#002b36`,\n textColor: `#839496`,\n substringColor: `#cb4b16`,\n keywordColor: `#859900`,\n attributeColor: `#b58900`,\n selectorAttributeColor: `#859900`,\n docTagColor: `#2aa198`,\n nameColor: `#268bd2`,\n builtInColor: `#dc322f`,\n literalColor: `#2aa198`,\n bulletColor: `#cb4b16`,\n codeColor: `#839496`,\n additionColor: `#859900`,\n regexpColor: `#2aa198`,\n symbolColor: `#cb4b16`,\n variableColor: `#b58900`,\n templateVariableColor: `#b58900`,\n linkColor: `#cb4b16`,\n selectorClassColor: `#268bd2`,\n typeColor: `#b58900`,\n stringColor: `#2aa198`,\n selectorIdColor: `#268bd2`,\n quoteColor: `#586e75`,\n templateTagColor: `#839496`,\n deletionColor: `#dc322f`,\n titleColor: `#268bd2`,\n sectionColor: `#268bd2`,\n commentColor: `#586e75`,\n metaKeywordColor: `#839496`,\n metaColor: `#cb4b16`,\n functionColor: `#839496`,\n numberColor: `#2aa198`\n};\n\nvar solarizedLight = {\n lineNumberColor: `#657b83`,\n lineNumberBgColor: `#fdf6e3`,\n backgroundColor: `#fdf6e3`,\n textColor: `#657b83`,\n substringColor: `#cb4b16`,\n keywordColor: `#859900`,\n attributeColor: `#b58900`,\n selectorAttributeColor: `#859900`,\n docTagColor: `#2aa198`,\n nameColor: `#268bd2`,\n builtInColor: `#dc322f`,\n literalColor: `#2aa198`,\n bulletColor: `#cb4b16`,\n codeColor: `#657b83`,\n additionColor: `#859900`,\n regexpColor: `#2aa198`,\n symbolColor: `#cb4b16`,\n variableColor: `#b58900`,\n templateVariableColor: `#b58900`,\n linkColor: `#cb4b16`,\n selectorClassColor: `#268bd2`,\n typeColor: `#b58900`,\n stringColor: `#2aa198`,\n selectorIdColor: `#268bd2`,\n quoteColor: `#93a1a1`,\n templateTagColor: `#657b83`,\n deletionColor: `#dc322f`,\n titleColor: `#268bd2`,\n sectionColor: `#268bd2`,\n commentColor: `#93a1a1`,\n metaKeywordColor: `#657b83`,\n metaColor: `#cb4b16`,\n functionColor: `#657b83`,\n numberColor: `#2aa198`\n};\n\nvar sunburst = {\n lineNumberColor: `#f8f8f8`,\n lineNumberBgColor: `#000`,\n backgroundColor: `#000`,\n textColor: `#f8f8f8`,\n substringColor: `#daefa3`,\n keywordColor: `#e28964`,\n attributeColor: `#cda869`,\n selectorAttributeColor: `#e28964`,\n docTagColor: undefined,\n nameColor: `#89bdff`,\n builtInColor: `#f8f8f8`,\n literalColor: `#f8f8f8`,\n bulletColor: `#3387cc`,\n codeColor: `#f8f8f8`,\n additionColor: `#f8f8f8`,\n regexpColor: `#e9c062`,\n symbolColor: `#3387cc`,\n variableColor: `#3e87e3`,\n templateVariableColor: `#3e87e3`,\n linkColor: `#e9c062`,\n selectorClassColor: `#9b703f`,\n typeColor: `#e28964`,\n stringColor: `#65b042`,\n selectorIdColor: `#8b98ab`,\n quoteColor: `#aeaeae`,\n templateTagColor: `#f8f8f8`,\n deletionColor: `#f8f8f8`,\n titleColor: `#89bdff`,\n sectionColor: `#89bdff`,\n commentColor: `#aeaeae`,\n metaKeywordColor: `#f8f8f8`,\n metaColor: `#8996a8`,\n functionColor: `#f8f8f8`,\n numberColor: `#3387cc`\n};\n\nvar tomorrowNightBlue = {\n lineNumberColor: `white`,\n lineNumberBgColor: `#002451`,\n backgroundColor: `#002451`,\n textColor: `white`,\n substringColor: `white`,\n keywordColor: `#ebbbff`,\n attributeColor: `#ffeead`,\n selectorAttributeColor: `#ebbbff`,\n docTagColor: `white`,\n nameColor: `#ff9da4`,\n builtInColor: `#ffc58f`,\n literalColor: `#ffc58f`,\n bulletColor: `#d1f1a9`,\n codeColor: `white`,\n additionColor: `#d1f1a9`,\n regexpColor: `#ff9da4`,\n symbolColor: `#d1f1a9`,\n variableColor: `#ff9da4`,\n templateVariableColor: `#ff9da4`,\n linkColor: `#ffc58f`,\n selectorClassColor: `#ff9da4`,\n typeColor: `#ffc58f`,\n stringColor: `#d1f1a9`,\n selectorIdColor: `#ff9da4`,\n quoteColor: `#7285b7`,\n templateTagColor: `white`,\n deletionColor: `#ff9da4`,\n titleColor: `#bbdaff`,\n sectionColor: `#bbdaff`,\n commentColor: `#7285b7`,\n metaKeywordColor: `white`,\n metaColor: `#ffc58f`,\n functionColor: `white`,\n numberColor: `#ffc58f`\n};\n\nvar tomorrowNightBright = {\n lineNumberColor: `#eaeaea`,\n lineNumberBgColor: `black`,\n backgroundColor: `black`,\n textColor: `#eaeaea`,\n substringColor: `#eaeaea`,\n keywordColor: `#c397d8`,\n attributeColor: `#e7c547`,\n selectorAttributeColor: `#c397d8`,\n docTagColor: `#eaeaea`,\n nameColor: `#d54e53`,\n builtInColor: `#e78c45`,\n literalColor: `#e78c45`,\n bulletColor: `#b9ca4a`,\n codeColor: `#eaeaea`,\n additionColor: `#b9ca4a`,\n regexpColor: `#d54e53`,\n symbolColor: `#b9ca4a`,\n variableColor: `#d54e53`,\n templateVariableColor: `#d54e53`,\n linkColor: `#e78c45`,\n selectorClassColor: `#d54e53`,\n typeColor: `#e78c45`,\n stringColor: `#b9ca4a`,\n selectorIdColor: `#d54e53`,\n quoteColor: `#969896`,\n templateTagColor: `#eaeaea`,\n deletionColor: `#d54e53`,\n titleColor: `#7aa6da`,\n sectionColor: `#7aa6da`,\n commentColor: `#969896`,\n metaKeywordColor: `#eaeaea`,\n metaColor: `#e78c45`,\n functionColor: `#eaeaea`,\n numberColor: `#e78c45`\n};\n\nvar tomorrowNightEighties = {\n lineNumberColor: `#cccccc`,\n lineNumberBgColor: `#2d2d2d`,\n backgroundColor: `#2d2d2d`,\n textColor: `#cccccc`,\n substringColor: `#cccccc`,\n keywordColor: `#cc99cc`,\n attributeColor: `#ffcc66`,\n selectorAttributeColor: `#cc99cc`,\n docTagColor: `#cccccc`,\n nameColor: `#f2777a`,\n builtInColor: `#f99157`,\n literalColor: `#f99157`,\n bulletColor: `#99cc99`,\n codeColor: `#cccccc`,\n additionColor: `#99cc99`,\n regexpColor: `#f2777a`,\n symbolColor: `#99cc99`,\n variableColor: `#f2777a`,\n templateVariableColor: `#f2777a`,\n linkColor: `#f99157`,\n selectorClassColor: `#f2777a`,\n typeColor: `#f99157`,\n stringColor: `#99cc99`,\n selectorIdColor: `#f2777a`,\n quoteColor: `#999999`,\n templateTagColor: `#cccccc`,\n deletionColor: `#f2777a`,\n titleColor: `#6699cc`,\n sectionColor: `#6699cc`,\n commentColor: `#999999`,\n metaKeywordColor: `#cccccc`,\n metaColor: `#f99157`,\n functionColor: `#cccccc`,\n numberColor: `#f99157`\n};\n\nvar tomorrowNight = {\n lineNumberColor: `#c5c8c6`,\n lineNumberBgColor: `#1d1f21`,\n backgroundColor: `#1d1f21`,\n textColor: `#c5c8c6`,\n substringColor: `#c5c8c6`,\n keywordColor: `#b294bb`,\n attributeColor: `#f0c674`,\n selectorAttributeColor: `#b294bb`,\n docTagColor: `#c5c8c6`,\n nameColor: `#cc6666`,\n builtInColor: `#de935f`,\n literalColor: `#de935f`,\n bulletColor: `#b5bd68`,\n codeColor: `#c5c8c6`,\n additionColor: `#b5bd68`,\n regexpColor: `#cc6666`,\n symbolColor: `#b5bd68`,\n variableColor: `#cc6666`,\n templateVariableColor: `#cc6666`,\n linkColor: `#de935f`,\n selectorClassColor: `#cc6666`,\n typeColor: `#de935f`,\n stringColor: `#b5bd68`,\n selectorIdColor: `#cc6666`,\n quoteColor: `#969896`,\n templateTagColor: `#c5c8c6`,\n deletionColor: `#cc6666`,\n titleColor: `#81a2be`,\n sectionColor: `#81a2be`,\n commentColor: `#969896`,\n metaKeywordColor: `#c5c8c6`,\n metaColor: `#de935f`,\n functionColor: `#c5c8c6`,\n numberColor: `#de935f`\n};\n\nvar tomorrow = {\n lineNumberColor: `#4d4d4c`,\n lineNumberBgColor: `white`,\n backgroundColor: `white`,\n textColor: `#4d4d4c`,\n substringColor: `#4d4d4c`,\n keywordColor: `#8959a8`,\n attributeColor: `#eab700`,\n selectorAttributeColor: `#8959a8`,\n docTagColor: `#4d4d4c`,\n nameColor: `#c82829`,\n builtInColor: `#f5871f`,\n literalColor: `#f5871f`,\n bulletColor: `#718c00`,\n codeColor: `#4d4d4c`,\n additionColor: `#718c00`,\n regexpColor: `#c82829`,\n symbolColor: `#718c00`,\n variableColor: `#c82829`,\n templateVariableColor: `#c82829`,\n linkColor: `#f5871f`,\n selectorClassColor: `#c82829`,\n typeColor: `#f5871f`,\n stringColor: `#718c00`,\n selectorIdColor: `#c82829`,\n quoteColor: `#8e908c`,\n templateTagColor: `#4d4d4c`,\n deletionColor: `#c82829`,\n titleColor: `#4271ae`,\n sectionColor: `#4271ae`,\n commentColor: `#8e908c`,\n metaKeywordColor: `#4d4d4c`,\n metaColor: `#f5871f`,\n functionColor: `#4d4d4c`,\n numberColor: `#f5871f`\n};\n\nvar vs2015 = {\n lineNumberColor: `#DCDCDC`,\n lineNumberBgColor: `#1E1E1E`,\n backgroundColor: `#1E1E1E`,\n textColor: `#DCDCDC`,\n substringColor: `#DCDCDC`,\n keywordColor: `#569CD6`,\n attributeColor: `#9CDCFE`,\n selectorAttributeColor: `#D7BA7D`,\n docTagColor: `#608B4E`,\n nameColor: `#569CD6`,\n builtInColor: `#4EC9B0`,\n literalColor: `#569CD6`,\n bulletColor: `#D7BA7D`,\n codeColor: `#DCDCDC`,\n additionColor: undefined,\n regexpColor: `#9A5334`,\n symbolColor: `#569CD6`,\n variableColor: `#BD63C5`,\n templateVariableColor: `#BD63C5`,\n linkColor: `#569CD6`,\n selectorClassColor: `#D7BA7D`,\n typeColor: `#4EC9B0`,\n stringColor: `#D69D85`,\n selectorIdColor: `#D7BA7D`,\n quoteColor: `#57A64A`,\n templateTagColor: `#9A5334`,\n deletionColor: undefined,\n titleColor: `#DCDCDC`,\n sectionColor: `gold`,\n commentColor: `#57A64A`,\n metaKeywordColor: `#9B9B9B`,\n metaColor: `#9B9B9B`,\n functionColor: `#DCDCDC`,\n numberColor: `#B8D7A3`\n};\n\nvar xt256 = {\n lineNumberColor: `#eaeaea`,\n lineNumberBgColor: `#000`,\n backgroundColor: `#000`,\n textColor: `#eaeaea`,\n substringColor: `#eaeaea`,\n keywordColor: `#fff000`,\n attributeColor: `#ff00ff`,\n selectorAttributeColor: `#000fff`,\n docTagColor: `#eaeaea`,\n nameColor: `#ff0000`,\n builtInColor: `#ff00ff`,\n literalColor: `#ff0000`,\n bulletColor: `#00ff00`,\n codeColor: `#eaeaea`,\n additionColor: `#eaeaea`,\n regexpColor: `#ff00ff`,\n symbolColor: `#fff000`,\n variableColor: `#00ffff`,\n templateVariableColor: `#00ffff`,\n linkColor: `#ff00ff`,\n selectorClassColor: `#fff000`,\n typeColor: `#eaeaea`,\n stringColor: `#00ff00`,\n selectorIdColor: `#00ffff`,\n quoteColor: `#00ffff`,\n templateTagColor: `#eaeaea`,\n deletionColor: `#eaeaea`,\n titleColor: `#00ffff`,\n sectionColor: `#000fff`,\n commentColor: `#969896`,\n metaKeywordColor: `#eaeaea`,\n metaColor: `#fff`,\n functionColor: `#eaeaea`,\n numberColor: `#ff0000`\n};\n\nvar zenburn = {\n lineNumberColor: `#dcdcdc`,\n lineNumberBgColor: `#3f3f3f`,\n backgroundColor: `#3f3f3f`,\n textColor: `#dcdcdc`,\n substringColor: `#8f8f8f`,\n keywordColor: `#e3ceab`,\n attributeColor: `#efdcbc`,\n selectorAttributeColor: `#e3ceab`,\n docTagColor: `#dcdcdc`,\n nameColor: `#efef8f`,\n builtInColor: `#cc9393`,\n literalColor: `#efefaf`,\n bulletColor: `#dca3a3`,\n codeColor: `#dcdcdc`,\n additionColor: `#7f9f7f`,\n regexpColor: `#dcdcdc`,\n symbolColor: `#dca3a3`,\n variableColor: `#efdcbc`,\n templateVariableColor: `#efdcbc`,\n linkColor: `#dca3a3`,\n selectorClassColor: `#efef8f`,\n typeColor: `#efef8f`,\n stringColor: `#cc9393`,\n selectorIdColor: `#efef8f`,\n quoteColor: `#7f9f7f`,\n templateTagColor: `#dcdcdc`,\n deletionColor: `#cc9393`,\n titleColor: `#efef8f`,\n sectionColor: `#efef8f`,\n commentColor: `#7f9f7f`,\n metaKeywordColor: `#dcdcdc`,\n metaColor: `#7f9f7f`,\n functionColor: `#dcdcdc`,\n numberColor: `#8cd0d3`\n};\n\nexport { ThemedCode as Code, ThemedCodeBlock as CodeBlock, ThemedCopyBlock as CopyBlock, ThemedSnippet as Snippet, a11yDark, a11yLight, anOldHope, androidstudio, arta, atomOneDark, atomOneLight, codepen, dracula, far, github, googlecode, hopscotch, hybrid, irBlack, monoBlue, monokai, monokaiSublime, noctisViola, nord, obsidian, ocean, paraisoDark, paraisoLight, pojoaque, purebasic, railscast, rainbow, shadesOfPurple, solarizedDark, solarizedLight, sunburst, tomorrow, tomorrowNight, tomorrowNightBlue, tomorrowNightBright, tomorrowNightEighties, vs2015, xt256, zenburn };\n//# sourceMappingURL=react-code-blocks.esm.js.map\n","import e,{createContext as t,useState as r,useRef as o,useEffect as n,useCallback as a,useMemo as c,useContext as i}from\"react\";\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */var s=function(){return(s=Object.assign||function(e){for(var t,r=1,o=arguments.length;r0&&n[n.length-1])||6!==a[0]&&2!==a[0])){c=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1] \"+f.SCRIPT_NOT_AVAILABLE)},onError:function(){m(\"Error loading google recaptcha script\")}}),function(){d(e,null==S?void 0:S.element)}}m(\" recaptcha key not provided\")}),[l,b,E,R,g,i,null==S?void 0:S.element]);var M=a((function(e){if(!C||!C.execute)throw new Error(\" Google Recaptcha has not been loaded\");return C.execute(x.current,{action:e})}),[C,x]),N=c((function(){return{executeRecaptcha:C?M:void 0,container:null==S?void 0:S.element}}),[M,C,null==S?void 0:S.element]);return e.createElement(v.Provider,{value:N},w)}var g=function(){return i(v)};function S(t){var r=this,o=t.action,a=t.onVerify,c=t.refreshReCaptcha,i=g();n((function(){var e=i.executeRecaptcha;if(e){u(r,void 0,void 0,(function(){var t;return l(this,(function(r){switch(r.label){case 0:return[4,e(o)];case 1:return t=r.sent(),a?(a(t),[2]):(m(\"Please define an onVerify function\"),[2])}}))}))}}),[o,a,c,i]);var s=i.container;return\"string\"==typeof s?e.createElement(\"div\",{id:s}):null}function w(e,t){return e(t={exports:{}},t.exports),t.exports\n/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */}var $=\"function\"==typeof Symbol&&Symbol.for,C=$?Symbol.for(\"react.element\"):60103,P=$?Symbol.for(\"react.portal\"):60106,x=$?Symbol.for(\"react.fragment\"):60107,E=$?Symbol.for(\"react.strict_mode\"):60108,R=$?Symbol.for(\"react.profiler\"):60114,M=$?Symbol.for(\"react.provider\"):60109,N=$?Symbol.for(\"react.context\"):60110,O=$?Symbol.for(\"react.async_mode\"):60111,_=$?Symbol.for(\"react.concurrent_mode\"):60111,T=$?Symbol.for(\"react.forward_ref\"):60112,j=$?Symbol.for(\"react.suspense\"):60113,L=$?Symbol.for(\"react.suspense_list\"):60120,k=$?Symbol.for(\"react.memo\"):60115,F=$?Symbol.for(\"react.lazy\"):60116,A=$?Symbol.for(\"react.block\"):60121,V=$?Symbol.for(\"react.fundamental\"):60117,z=$?Symbol.for(\"react.responder\"):60118,G=$?Symbol.for(\"react.scope\"):60119;function I(e){if(\"object\"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case C:switch(e=e.type){case O:case _:case x:case R:case E:case j:return e;default:switch(e=e&&e.$$typeof){case N:case T:case F:case k:case M:return e;default:return t}}case P:return t}}}function D(e){return I(e)===_}var q={AsyncMode:O,ConcurrentMode:_,ContextConsumer:N,ContextProvider:M,Element:C,ForwardRef:T,Fragment:x,Lazy:F,Memo:k,Portal:P,Profiler:R,StrictMode:E,Suspense:j,isAsyncMode:function(e){return D(e)||I(e)===O},isConcurrentMode:D,isContextConsumer:function(e){return I(e)===N},isContextProvider:function(e){return I(e)===M},isElement:function(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===C},isForwardRef:function(e){return I(e)===T},isFragment:function(e){return I(e)===x},isLazy:function(e){return I(e)===F},isMemo:function(e){return I(e)===k},isPortal:function(e){return I(e)===P},isProfiler:function(e){return I(e)===R},isStrictMode:function(e){return I(e)===E},isSuspense:function(e){return I(e)===j},isValidElementType:function(e){return\"string\"==typeof e||\"function\"==typeof e||e===x||e===_||e===R||e===E||e===j||e===L||\"object\"==typeof e&&null!==e&&(e.$$typeof===F||e.$$typeof===k||e.$$typeof===M||e.$$typeof===N||e.$$typeof===T||e.$$typeof===V||e.$$typeof===z||e.$$typeof===G||e.$$typeof===A)},typeOf:I},B=w((function(e,t){\"production\"!==process.env.NODE_ENV&&function(){var e=\"function\"==typeof Symbol&&Symbol.for,r=e?Symbol.for(\"react.element\"):60103,o=e?Symbol.for(\"react.portal\"):60106,n=e?Symbol.for(\"react.fragment\"):60107,a=e?Symbol.for(\"react.strict_mode\"):60108,c=e?Symbol.for(\"react.profiler\"):60114,i=e?Symbol.for(\"react.provider\"):60109,s=e?Symbol.for(\"react.context\"):60110,u=e?Symbol.for(\"react.async_mode\"):60111,l=e?Symbol.for(\"react.concurrent_mode\"):60111,f=e?Symbol.for(\"react.forward_ref\"):60112,p=e?Symbol.for(\"react.suspense\"):60113,d=e?Symbol.for(\"react.suspense_list\"):60120,y=e?Symbol.for(\"react.memo\"):60115,m=e?Symbol.for(\"react.lazy\"):60116,v=e?Symbol.for(\"react.block\"):60121,b=e?Symbol.for(\"react.fundamental\"):60117,h=e?Symbol.for(\"react.responder\"):60118,g=e?Symbol.for(\"react.scope\"):60119;function S(e){if(\"object\"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:var d=e.type;switch(d){case u:case l:case n:case c:case a:case p:return d;default:var v=d&&d.$$typeof;switch(v){case s:case f:case m:case y:case i:return v;default:return t}}case o:return t}}}var w=u,$=l,C=s,P=i,x=r,E=f,R=n,M=m,N=y,O=o,_=c,T=a,j=p,L=!1;function k(e){return S(e)===l}t.AsyncMode=w,t.ConcurrentMode=$,t.ContextConsumer=C,t.ContextProvider=P,t.Element=x,t.ForwardRef=E,t.Fragment=R,t.Lazy=M,t.Memo=N,t.Portal=O,t.Profiler=_,t.StrictMode=T,t.Suspense=j,t.isAsyncMode=function(e){return L||(L=!0,console.warn(\"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.\")),k(e)||S(e)===u},t.isConcurrentMode=k,t.isContextConsumer=function(e){return S(e)===s},t.isContextProvider=function(e){return S(e)===i},t.isElement=function(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return S(e)===f},t.isFragment=function(e){return S(e)===n},t.isLazy=function(e){return S(e)===m},t.isMemo=function(e){return S(e)===y},t.isPortal=function(e){return S(e)===o},t.isProfiler=function(e){return S(e)===c},t.isStrictMode=function(e){return S(e)===a},t.isSuspense=function(e){return S(e)===p},t.isValidElementType=function(e){return\"string\"==typeof e||\"function\"==typeof e||e===n||e===l||e===c||e===a||e===p||e===d||\"object\"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===y||e.$$typeof===i||e.$$typeof===s||e.$$typeof===f||e.$$typeof===b||e.$$typeof===h||e.$$typeof===g||e.$$typeof===v)},t.typeOf=S}()})),J=(B.AsyncMode,B.ConcurrentMode,B.ContextConsumer,B.ContextProvider,B.Element,B.ForwardRef,B.Fragment,B.Lazy,B.Memo,B.Portal,B.Profiler,B.StrictMode,B.Suspense,B.isAsyncMode,B.isConcurrentMode,B.isContextConsumer,B.isContextProvider,B.isElement,B.isForwardRef,B.isFragment,B.isLazy,B.isMemo,B.isPortal,B.isProfiler,B.isStrictMode,B.isSuspense,B.isValidElementType,B.typeOf,w((function(e){\"production\"===process.env.NODE_ENV?e.exports=q:e.exports=B}))),K={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},U={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},H={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Q={};function W(e){return J.isMemo(e)?H:Q[e.$$typeof]||K}Q[J.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},Q[J.Memo]=H;var X=Object.defineProperty,Y=Object.getOwnPropertyNames,Z=Object.getOwnPropertySymbols,ee=Object.getOwnPropertyDescriptor,te=Object.getPrototypeOf,re=Object.prototype;var oe=function e(t,r,o){if(\"string\"!=typeof r){if(re){var n=te(r);n&&n!==re&&e(t,n,o)}var a=Y(r);Z&&(a=a.concat(Z(r)));for(var c=W(t),i=W(r),s=0;s that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\"),require(\"react-dom\")):\"function\"==typeof define&&define.amd?define(\"lib\",[\"react\",\"react-dom\"],t):\"object\"==typeof exports?exports.lib=t(require(\"react\"),require(\"react-dom\")):e.lib=t(e.react,e[\"react-dom\"])}(\"undefined\"!=typeof self?self:this,(function(e,t){return function(){\"use strict\";var r={156:function(t){t.exports=e},111:function(e){e.exports=t},582:function(e,t,r){r.r(t),r.d(t,{__addDisposableResource:function(){return M},__assign:function(){return i},__asyncDelegator:function(){return O},__asyncGenerator:function(){return E},__asyncValues:function(){return x},__await:function(){return S},__awaiter:function(){return h},__classPrivateFieldGet:function(){return C},__classPrivateFieldIn:function(){return D},__classPrivateFieldSet:function(){return R},__createBinding:function(){return b},__decorate:function(){return c},__disposeResources:function(){return q},__esDecorate:function(){return u},__exportStar:function(){return v},__extends:function(){return o},__generator:function(){return y},__importDefault:function(){return k},__importStar:function(){return A},__makeTemplateObject:function(){return j},__metadata:function(){return p},__param:function(){return s},__propKey:function(){return f},__read:function(){return m},__rest:function(){return a},__runInitializers:function(){return l},__setFunctionName:function(){return d},__spread:function(){return _},__spreadArray:function(){return P},__spreadArrays:function(){return w},__values:function(){return g}});var n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},n(e,t)};function o(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var i=function(){return i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(t,r,a):o(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function s(e,t){return function(r,n){t(r,n,e)}}function u(e,t,r,n,o,i){function a(e){if(void 0!==e&&\"function\"!=typeof e)throw new TypeError(\"Function expected\");return e}for(var c,s=n.kind,u=\"getter\"===s?\"get\":\"setter\"===s?\"set\":\"value\",l=!t&&e?n.static?e:e.prototype:null,f=t||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),d=!1,p=r.length-1;p>=0;p--){var h={};for(var y in n)h[y]=\"access\"===y?{}:n[y];for(var y in n.access)h.access[y]=n.access[y];h.addInitializer=function(e){if(d)throw new TypeError(\"Cannot add initializers after decoration has completed\");i.push(a(e||null))};var b=(0,r[p])(\"accessor\"===s?{get:f.get,set:f.set}:f[u],h);if(\"accessor\"===s){if(void 0===b)continue;if(null===b||\"object\"!=typeof b)throw new TypeError(\"Object expected\");(c=a(b.get))&&(f.get=c),(c=a(b.set))&&(f.set=c),(c=a(b.init))&&o.unshift(c)}else(c=a(b))&&(\"field\"===s?o.unshift(c):f[u]=c)}l&&Object.defineProperty(l,n.name,f),d=!0}function l(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function m(e,t){var r=\"function\"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}function _(){for(var e=[],t=0;t1||c(e,t)}))})}function c(e,t){try{(r=o[e](t)).value instanceof S?Promise.resolve(r.value.v).then(s,u):l(i[0][2],r)}catch(e){l(i[0][3],e)}var r}function s(e){c(\"next\",e)}function u(e){c(\"throw\",e)}function l(e,t){e(t),i.shift(),i.length&&c(i[0][0],i[0][1])}}function O(e){var t,r;return t={},n(\"next\"),n(\"throw\",(function(e){throw e})),n(\"return\"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:S(e[n](t)),done:!1}:o?o(t):t}:o}}function x(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=g(e),t={},n(\"next\"),n(\"throw\"),n(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){!function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}(n,o,(t=e[r](t)).done,t.value)}))}}}function j(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e}var T=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t};function A(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)\"default\"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&b(t,e,r);return T(t,e),t}function k(e){return e&&e.__esModule?e:{default:e}}function C(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)}function R(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r}function D(e,t){if(null===t||\"object\"!=typeof t&&\"function\"!=typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"==typeof e?t===e:e.has(t)}function M(e,t,r){if(null!=t){if(\"object\"!=typeof t&&\"function\"!=typeof t)throw new TypeError(\"Object expected.\");var n;if(r){if(!Symbol.asyncDispose)throw new TypeError(\"Symbol.asyncDispose is not defined.\");n=t[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw new TypeError(\"Symbol.dispose is not defined.\");n=t[Symbol.dispose]}if(\"function\"!=typeof n)throw new TypeError(\"Object not disposable.\");e.stack.push({value:t,dispose:n,async:r})}else r&&e.stack.push({async:!0});return t}var I=\"function\"==typeof SuppressedError?SuppressedError:function(e,t,r){var n=new Error(r);return n.name=\"SuppressedError\",n.error=e,n.suppressed=t,n};function q(e){function t(t){e.error=e.hasError?new I(t,e.error,\"An error was suppressed during disposal.\"):t,e.hasError=!0}return function r(){for(;e.stack.length;){var n=e.stack.pop();try{var o=n.dispose&&n.dispose.call(n.value);if(n.async)return Promise.resolve(o).then(r,(function(e){return t(e),r()}))}catch(e){t(e)}}if(e.hasError)throw e.error}()}t.default={__extends:o,__assign:i,__rest:a,__decorate:c,__param:s,__metadata:p,__awaiter:h,__generator:y,__createBinding:b,__exportStar:v,__values:g,__read:m,__spread:_,__spreadArrays:w,__spreadArray:P,__await:S,__asyncGenerator:E,__asyncDelegator:O,__asyncValues:x,__makeTemplateObject:j,__importStar:A,__importDefault:k,__classPrivateFieldGet:C,__classPrivateFieldSet:R,__classPrivateFieldIn:D,__addDisposableResource:M,__disposeResources:q}}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,o),i.exports}o.d=function(e,t){for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var i={};return function(){var e=i;Object.defineProperty(e,\"__esModule\",{value:!0}),e.useReactToPrint=e.PrintContextConsumer=void 0;var t=o(582),r=o(156),n=o(111),a=Object.prototype.hasOwnProperty.call(r,\"createContext\"),c=Object.prototype.hasOwnProperty.call(r,\"useMemo\")&&Object.prototype.hasOwnProperty.call(r,\"useCallback\"),s=a?r.createContext({}):null;e.PrintContextConsumer=s?s.Consumer:function(){return null};var u={copyStyles:!0,pageStyle:\"\\n @page {\\n /* Remove browser default header (title) and footer (url) */\\n margin: 0;\\n }\\n @media print {\\n body {\\n /* Tell browsers to print background colors */\\n -webkit-print-color-adjust: exact; /* Chrome/Safari/Edge/Opera */\\n color-adjust: exact; /* Firefox */\\n }\\n }\\n \",removeAfterPrint:!1,suppressErrors:!1},l=function(e){function o(){var r=null!==e&&e.apply(this,arguments)||this;return r.startPrint=function(e){var t=r.props,n=t.onAfterPrint,o=t.onPrintError,i=t.print,a=t.documentTitle;setTimeout((function(){var t,c;if(e.contentWindow)if(e.contentWindow.focus(),i)i(e).then((function(){return null==n?void 0:n()})).then((function(){return r.handleRemoveIframe()})).catch((function(e){o?o(\"print\",e):r.logMessages([\"An error was thrown by the specified `print` function\"])}));else{if(e.contentWindow.print){var s=null!==(c=null===(t=e.contentDocument)||void 0===t?void 0:t.title)&&void 0!==c?c:\"\",u=e.ownerDocument.title;a&&(e.ownerDocument.title=a,e.contentDocument&&(e.contentDocument.title=a)),e.contentWindow.print(),a&&(e.ownerDocument.title=u,e.contentDocument&&(e.contentDocument.title=s))}else r.logMessages([\"Printing for this browser is not currently possible: the browser does not have a `print` method available for iframes.\"]);null==n||n(),r.handleRemoveIframe()}else r.logMessages([\"Printing failed because the `contentWindow` of the print iframe did not load. This is possibly an error with `react-to-print`. Please file an issue: https://github.com/gregnb/react-to-print/issues/\"])}),500)},r.triggerPrint=function(e){var t=r.props,n=t.onBeforePrint,o=t.onPrintError;if(n){var i=n();i&&\"function\"==typeof i.then?i.then((function(){r.startPrint(e)})).catch((function(e){o&&o(\"onBeforePrint\",e)})):r.startPrint(e)}else r.startPrint(e)},r.handleClick=function(){var e=r.props,t=e.onBeforeGetContent,n=e.onPrintError;if(t){var o=t();o&&\"function\"==typeof o.then?o.then(r.handlePrint).catch((function(e){n&&n(\"onBeforeGetContent\",e)})):r.handlePrint()}else r.handlePrint()},r.handlePrint=function(){var e=r.props,o=e.bodyClass,i=e.content,a=e.copyStyles,c=e.fonts,s=e.pageStyle,u=e.nonce,l=i();if(void 0!==l)if(null!==l){var f=document.createElement(\"iframe\");f.width=\"\".concat(document.documentElement.clientWidth,\"px\"),f.height=\"\".concat(document.documentElement.clientHeight,\"px\"),f.style.position=\"absolute\",f.style.top=\"-\".concat(document.documentElement.clientHeight+100,\"px\"),f.style.left=\"-\".concat(document.documentElement.clientWidth+100,\"px\"),f.id=\"printWindow\",f.srcdoc=\"\";var d=(0,n.findDOMNode)(l);if(d){var p=d.cloneNode(!0),h=p instanceof Text,y=document.querySelectorAll(\"link[rel~='stylesheet'], link[as='style']\"),b=h?[]:p.querySelectorAll(\"img\"),v=h?[]:p.querySelectorAll(\"video\"),g=c?c.length:0;r.numResourcesToLoad=y.length+b.length+v.length+g,r.resourcesLoaded=[],r.resourcesErrored=[];var m=function(e,n){r.resourcesLoaded.includes(e)?r.logMessages([\"Tried to mark a resource that has already been handled\",e],\"debug\"):(n?(r.logMessages(t.__spreadArray(['\"react-to-print\" was unable to load a resource but will continue attempting to print the page'],t.__read(n),!1)),r.resourcesErrored.push(e)):r.resourcesLoaded.push(e),r.resourcesLoaded.length+r.resourcesErrored.length===r.numResourcesToLoad&&r.triggerPrint(f))};f.onload=function(){var e,n,i,l;f.onload=null;var y=f.contentDocument||(null===(n=f.contentWindow)||void 0===n?void 0:n.document);if(y){y.body.appendChild(p),c&&((null===(i=f.contentDocument)||void 0===i?void 0:i.fonts)&&(null===(l=f.contentWindow)||void 0===l?void 0:l.FontFace)?c.forEach((function(e){var t=new FontFace(e.family,e.source,{weight:e.weight,style:e.style});f.contentDocument.fonts.add(t),t.loaded.then((function(){m(t)})).catch((function(e){m(t,[\"Failed loading the font:\",t,\"Load error:\",e])}))})):(c.forEach((function(e){return m(e)})),r.logMessages(['\"react-to-print\" is not able to load custom fonts because the browser does not support the FontFace API but will continue attempting to print the page'])));var g=\"function\"==typeof s?s():s;if(\"string\"!=typeof g)r.logMessages(['\"react-to-print\" expected a \"string\" from `pageStyle` but received \"'.concat(typeof g,'\". Styles from `pageStyle` will not be applied.')]);else{var _=y.createElement(\"style\");u&&(_.setAttribute(\"nonce\",u),y.head.setAttribute(\"nonce\",u)),_.appendChild(y.createTextNode(g)),y.head.appendChild(_)}if(o&&(e=y.body.classList).add.apply(e,t.__spreadArray([],t.__read(o.split(\" \")),!1)),!h){for(var w=h?[]:d.querySelectorAll(\"canvas\"),P=y.querySelectorAll(\"canvas\"),S=0;S\",t,\"Error\",i])},n.src=r}else m(t,['Found an tag with an empty \"src\" attribute. This prevents pre-loading it. The is:',t])};for(S=0;S=2?m(t):(t.onloadeddata=function(){return m(t)},t.onerror=function(e,r,n,o,i){return m(t,[\"Error loading video\",t,\"Error\",i])},t.onstalled=function(){return m(t,[\"Loading video stalled, skipping\",t])})};for(S=0;S tag with a `disabled` attribute and will ignore it. Note that the `disabled` attribute is deprecated, and some browsers ignore it. You should stop using it. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-disabled. The is:\",n],\"warning\"),m(n);else{for(var l=y.createElement(n.tagName),f=(s=0,n.attributes.length);s tag with an empty `href` attribute. In addition to being invalid HTML, this can cause problems in many browsers, and so the was not loaded. The is:\",n],\"warning\"),m(n)},W=(S=0,F.length);S= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nconst instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nconst levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nconst defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nconst ConsoleMethod = {\r\n [LogLevel.DEBUG]: 'log',\r\n [LogLevel.VERBOSE]: 'log',\r\n [LogLevel.INFO]: 'info',\r\n [LogLevel.WARN]: 'warn',\r\n [LogLevel.ERROR]: 'error'\r\n};\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nconst defaultLogHandler = (instance, logType, ...args) => {\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n const now = new Date().toISOString();\r\n const method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method](`[${now}] ${instance.name}:`, ...args);\r\n }\r\n else {\r\n throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\r\n }\r\n};\r\nclass Logger {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n constructor(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n get logLevel() {\r\n return this._logLevel;\r\n }\r\n set logLevel(val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\r\n }\r\n this._logLevel = val;\r\n }\r\n // Workaround for setter/getter having to be the same type.\r\n setLogLevel(val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n }\r\n get logHandler() {\r\n return this._logHandler;\r\n }\r\n set logHandler(val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n }\r\n get userLogHandler() {\r\n return this._userLogHandler;\r\n }\r\n set userLogHandler(val) {\r\n this._userLogHandler = val;\r\n }\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n debug(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\r\n this._logHandler(this, LogLevel.DEBUG, ...args);\r\n }\r\n log(...args) {\r\n this._userLogHandler &&\r\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\r\n this._logHandler(this, LogLevel.VERBOSE, ...args);\r\n }\r\n info(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\r\n this._logHandler(this, LogLevel.INFO, ...args);\r\n }\r\n warn(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\r\n this._logHandler(this, LogLevel.WARN, ...args);\r\n }\r\n error(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\r\n this._logHandler(this, LogLevel.ERROR, ...args);\r\n }\r\n}\r\nfunction setLogLevel(level) {\r\n instances.forEach(inst => {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n for (const instance of instances) {\r\n let customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = (instance, level, ...args) => {\r\n const message = args\r\n .map(arg => {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(arg => arg)\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message,\r\n args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, getDefaultAppConfig, deepEqual, isBrowser, FirebaseError, base64urlEncodeWithoutPadding, isIndexedDBAvailable, validateIndexedDBOpenable } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass PlatformLoggerServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n getPlatformInfoString() {\r\n const providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(provider => {\r\n if (isVersionServiceProvider(provider)) {\r\n const service = provider.getImmediate();\r\n return `${service.library}/${service.version}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(logString => logString)\r\n .join(' ');\r\n }\r\n}\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n const component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\r\n}\n\nconst name$o = \"@firebase/app\";\nconst version$1 = \"0.10.2\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst logger = new Logger('@firebase/app');\n\nconst name$n = \"@firebase/app-compat\";\n\nconst name$m = \"@firebase/analytics-compat\";\n\nconst name$l = \"@firebase/analytics\";\n\nconst name$k = \"@firebase/app-check-compat\";\n\nconst name$j = \"@firebase/app-check\";\n\nconst name$i = \"@firebase/auth\";\n\nconst name$h = \"@firebase/auth-compat\";\n\nconst name$g = \"@firebase/database\";\n\nconst name$f = \"@firebase/database-compat\";\n\nconst name$e = \"@firebase/functions\";\n\nconst name$d = \"@firebase/functions-compat\";\n\nconst name$c = \"@firebase/installations\";\n\nconst name$b = \"@firebase/installations-compat\";\n\nconst name$a = \"@firebase/messaging\";\n\nconst name$9 = \"@firebase/messaging-compat\";\n\nconst name$8 = \"@firebase/performance\";\n\nconst name$7 = \"@firebase/performance-compat\";\n\nconst name$6 = \"@firebase/remote-config\";\n\nconst name$5 = \"@firebase/remote-config-compat\";\n\nconst name$4 = \"@firebase/storage\";\n\nconst name$3 = \"@firebase/storage-compat\";\n\nconst name$2 = \"@firebase/firestore\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"10.11.1\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The default app name\r\n *\r\n * @internal\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nconst PLATFORM_LOG_STRING = {\r\n [name$o]: 'fire-core',\r\n [name$n]: 'fire-core-compat',\r\n [name$l]: 'fire-analytics',\r\n [name$m]: 'fire-analytics-compat',\r\n [name$j]: 'fire-app-check',\r\n [name$k]: 'fire-app-check-compat',\r\n [name$i]: 'fire-auth',\r\n [name$h]: 'fire-auth-compat',\r\n [name$g]: 'fire-rtdb',\r\n [name$f]: 'fire-rtdb-compat',\r\n [name$e]: 'fire-fn',\r\n [name$d]: 'fire-fn-compat',\r\n [name$c]: 'fire-iid',\r\n [name$b]: 'fire-iid-compat',\r\n [name$a]: 'fire-fcm',\r\n [name$9]: 'fire-fcm-compat',\r\n [name$8]: 'fire-perf',\r\n [name$7]: 'fire-perf-compat',\r\n [name$6]: 'fire-rc',\r\n [name$5]: 'fire-rc-compat',\r\n [name$4]: 'fire-gcs',\r\n [name$3]: 'fire-gcs-compat',\r\n [name$2]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\r\n 'fire-js': 'fire-js',\r\n [name]: 'fire-js-all'\r\n};\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @internal\r\n */\r\nconst _apps = new Map();\r\n/**\r\n * @internal\r\n */\r\nconst _serverApps = new Map();\r\n/**\r\n * Registered components.\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst _components = new Map();\r\n/**\r\n * @param component - the component being added to this app's container\r\n *\r\n * @internal\r\n */\r\nfunction _addComponent(app, component) {\r\n try {\r\n app.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\r\n }\r\n}\r\n/**\r\n *\r\n * @internal\r\n */\r\nfunction _addOrOverwriteComponent(app, component) {\r\n app.container.addOrOverwriteComponent(component);\r\n}\r\n/**\r\n *\r\n * @param component - the component to register\r\n * @returns whether or not the component is registered successfully\r\n *\r\n * @internal\r\n */\r\nfunction _registerComponent(component) {\r\n const componentName = component.name;\r\n if (_components.has(componentName)) {\r\n logger.debug(`There were multiple attempts to register component ${componentName}.`);\r\n return false;\r\n }\r\n _components.set(componentName, component);\r\n // add the component to existing app instances\r\n for (const app of _apps.values()) {\r\n _addComponent(app, component);\r\n }\r\n for (const serverApp of _serverApps.values()) {\r\n _addComponent(serverApp, component);\r\n }\r\n return true;\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n *\r\n * @returns the provider for the service with the matching name\r\n *\r\n * @internal\r\n */\r\nfunction _getProvider(app, name) {\r\n const heartbeatController = app.container\r\n .getProvider('heartbeat')\r\n .getImmediate({ optional: true });\r\n if (heartbeatController) {\r\n void heartbeatController.triggerHeartbeat();\r\n }\r\n return app.container.getProvider(name);\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\r\n *\r\n * @internal\r\n */\r\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\r\n _getProvider(app, name).clearInstance(instanceIdentifier);\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp or FirebaseOptions.\r\n *\r\n * @returns true if the provide object is of type FirebaseApp.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseApp(obj) {\r\n return obj.options !== undefined;\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp.\r\n *\r\n * @returns true if the provided object is of type FirebaseServerAppImpl.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseServerApp(obj) {\r\n return obj.settings !== undefined;\r\n}\r\n/**\r\n * Test only\r\n *\r\n * @internal\r\n */\r\nfunction _clearComponents() {\r\n _components.clear();\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERRORS = {\r\n [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call initializeApp() first',\r\n [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}'\",\r\n [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */]: 'Firebase Server App has been deleted',\r\n [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\r\n [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\r\n [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */]: 'FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.',\r\n [\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */]: 'FirebaseServerApp is not for use in browser environments.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseAppImpl {\r\n constructor(options, config, container) {\r\n this._isDeleted = false;\r\n this._options = Object.assign({}, options);\r\n this._config = Object.assign({}, config);\r\n this._name = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled;\r\n this._container = container;\r\n this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n }\r\n get automaticDataCollectionEnabled() {\r\n this.checkDestroyed();\r\n return this._automaticDataCollectionEnabled;\r\n }\r\n set automaticDataCollectionEnabled(val) {\r\n this.checkDestroyed();\r\n this._automaticDataCollectionEnabled = val;\r\n }\r\n get name() {\r\n this.checkDestroyed();\r\n return this._name;\r\n }\r\n get options() {\r\n this.checkDestroyed();\r\n return this._options;\r\n }\r\n get config() {\r\n this.checkDestroyed();\r\n return this._config;\r\n }\r\n get container() {\r\n return this._container;\r\n }\r\n get isDeleted() {\r\n return this._isDeleted;\r\n }\r\n set isDeleted(val) {\r\n this._isDeleted = val;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2023 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass FirebaseServerAppImpl extends FirebaseAppImpl {\r\n constructor(options, serverConfig, name, container) {\r\n // Build configuration parameters for the FirebaseAppImpl base class.\r\n const automaticDataCollectionEnabled = serverConfig.automaticDataCollectionEnabled !== undefined\r\n ? serverConfig.automaticDataCollectionEnabled\r\n : false;\r\n // Create the FirebaseAppSettings object for the FirebaseAppImp constructor.\r\n const config = {\r\n name,\r\n automaticDataCollectionEnabled\r\n };\r\n if (options.apiKey !== undefined) {\r\n // Construct the parent FirebaseAppImp object.\r\n super(options, config, container);\r\n }\r\n else {\r\n const appImpl = options;\r\n super(appImpl.options, config, container);\r\n }\r\n // Now construct the data for the FirebaseServerAppImpl.\r\n this._serverConfig = Object.assign({ automaticDataCollectionEnabled }, serverConfig);\r\n this._finalizationRegistry = new FinalizationRegistry(() => {\r\n this.automaticCleanup();\r\n });\r\n this._refCount = 0;\r\n this.incRefCount(this._serverConfig.releaseOnDeref);\r\n // Do not retain a hard reference to the dref object, otherwise the FinalizationRegisry\r\n // will never trigger.\r\n this._serverConfig.releaseOnDeref = undefined;\r\n serverConfig.releaseOnDeref = undefined;\r\n registerVersion(name$o, version$1, 'serverapp');\r\n }\r\n toJSON() {\r\n return undefined;\r\n }\r\n get refCount() {\r\n return this._refCount;\r\n }\r\n // Increment the reference count of this server app. If an object is provided, register it\r\n // with the finalization registry.\r\n incRefCount(obj) {\r\n if (this.isDeleted) {\r\n return;\r\n }\r\n this._refCount++;\r\n if (obj !== undefined) {\r\n this._finalizationRegistry.register(obj, this);\r\n }\r\n }\r\n // Decrement the reference count.\r\n decRefCount() {\r\n if (this.isDeleted) {\r\n return 0;\r\n }\r\n return --this._refCount;\r\n }\r\n // Invoked by the FinalizationRegistry callback to note that this app should go through its\r\n // reference counts and delete itself if no reference count remain. The coordinating logic that\r\n // handles this is in deleteApp(...).\r\n automaticCleanup() {\r\n void deleteApp(this);\r\n }\r\n get settings() {\r\n this.checkDestroyed();\r\n return this._serverConfig;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */);\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The current SDK version.\r\n *\r\n * @public\r\n */\r\nconst SDK_VERSION = version;\r\nfunction initializeApp(_options, rawConfig = {}) {\r\n let options = _options;\r\n if (typeof rawConfig !== 'object') {\r\n const name = rawConfig;\r\n rawConfig = { name };\r\n }\r\n const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\r\n const name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n options || (options = getDefaultAppConfig());\r\n if (!options) {\r\n throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\r\n }\r\n const existingApp = _apps.get(name);\r\n if (existingApp) {\r\n // return the existing app if options and config deep equal the ones in the existing app.\r\n if (deepEqual(options, existingApp.options) &&\r\n deepEqual(config, existingApp.config)) {\r\n return existingApp;\r\n }\r\n else {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\r\n }\r\n }\r\n const container = new ComponentContainer(name);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseAppImpl(options, config, container);\r\n _apps.set(name, newApp);\r\n return newApp;\r\n}\r\nfunction initializeServerApp(_options, _serverAppConfig) {\r\n if (isBrowser()) {\r\n // FirebaseServerApp isn't designed to be run in browsers.\r\n throw ERROR_FACTORY.create(\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */);\r\n }\r\n if (_serverAppConfig.automaticDataCollectionEnabled === undefined) {\r\n _serverAppConfig.automaticDataCollectionEnabled = false;\r\n }\r\n let appOptions;\r\n if (_isFirebaseApp(_options)) {\r\n appOptions = _options.options;\r\n }\r\n else {\r\n appOptions = _options;\r\n }\r\n // Build an app name based on a hash of the configuration options.\r\n const nameObj = Object.assign(Object.assign({}, _serverAppConfig), appOptions);\r\n // However, Do not mangle the name based on releaseOnDeref, since it will vary between the\r\n // construction of FirebaseServerApp instances. For example, if the object is the request headers.\r\n if (nameObj.releaseOnDeref !== undefined) {\r\n delete nameObj.releaseOnDeref;\r\n }\r\n const hashCode = (s) => {\r\n return [...s].reduce((hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0, 0);\r\n };\r\n if (_serverAppConfig.releaseOnDeref !== undefined) {\r\n if (typeof FinalizationRegistry === 'undefined') {\r\n throw ERROR_FACTORY.create(\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */, {});\r\n }\r\n }\r\n const nameString = '' + hashCode(JSON.stringify(nameObj));\r\n const existingApp = _serverApps.get(nameString);\r\n if (existingApp) {\r\n existingApp.incRefCount(_serverAppConfig.releaseOnDeref);\r\n return existingApp;\r\n }\r\n const container = new ComponentContainer(nameString);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseServerAppImpl(appOptions, _serverAppConfig, nameString, container);\r\n _serverApps.set(nameString, newApp);\r\n return newApp;\r\n}\r\n/**\r\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * When called with no arguments, the default app is returned. When an app name\r\n * is provided, the app corresponding to that name is returned.\r\n *\r\n * An exception is thrown if the app being retrieved has not yet been\r\n * initialized.\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return the default app\r\n * const app = getApp();\r\n * ```\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return a named app\r\n * const otherApp = getApp(\"otherApp\");\r\n * ```\r\n *\r\n * @param name - Optional name of the app to return. If no name is\r\n * provided, the default is `\"[DEFAULT]\"`.\r\n *\r\n * @returns The app corresponding to the provided app name.\r\n * If no app name is provided, the default app is returned.\r\n *\r\n * @public\r\n */\r\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\r\n const app = _apps.get(name);\r\n if (!app && name === DEFAULT_ENTRY_NAME && getDefaultAppConfig()) {\r\n return initializeApp();\r\n }\r\n if (!app) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\r\n }\r\n return app;\r\n}\r\n/**\r\n * A (read-only) array of all initialized apps.\r\n * @public\r\n */\r\nfunction getApps() {\r\n return Array.from(_apps.values());\r\n}\r\n/**\r\n * Renders this app unusable and frees the resources of all associated\r\n * services.\r\n *\r\n * @example\r\n * ```javascript\r\n * deleteApp(app)\r\n * .then(function() {\r\n * console.log(\"App deleted successfully\");\r\n * })\r\n * .catch(function(error) {\r\n * console.log(\"Error deleting app:\", error);\r\n * });\r\n * ```\r\n *\r\n * @public\r\n */\r\nasync function deleteApp(app) {\r\n let cleanupProviders = false;\r\n const name = app.name;\r\n if (_apps.has(name)) {\r\n cleanupProviders = true;\r\n _apps.delete(name);\r\n }\r\n else if (_serverApps.has(name)) {\r\n const firebaseServerApp = app;\r\n if (firebaseServerApp.decRefCount() <= 0) {\r\n _serverApps.delete(name);\r\n cleanupProviders = true;\r\n }\r\n }\r\n if (cleanupProviders) {\r\n await Promise.all(app.container\r\n .getProviders()\r\n .map(provider => provider.delete()));\r\n app.isDeleted = true;\r\n }\r\n}\r\n/**\r\n * Registers a library's name and version for platform logging purposes.\r\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\r\n * @param version - Current version of that library.\r\n * @param variant - Bundle variant, e.g., node, rn, etc.\r\n *\r\n * @public\r\n */\r\nfunction registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += `-${variant}`;\r\n }\r\n const libraryMismatch = library.match(/\\s|\\//);\r\n const versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n const warning = [\r\n `Unable to register library \"${library}\" with version \"${version}\":`\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\r\n}\r\n/**\r\n * Sets log handler for all Firebase SDKs.\r\n * @param logCallback - An optional custom log handler that executes user code whenever\r\n * the Firebase SDK makes a logging call.\r\n *\r\n * @public\r\n */\r\nfunction onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n}\r\n/**\r\n * Sets log level for all Firebase SDKs.\r\n *\r\n * All of the log types above the current log level are captured (i.e. if\r\n * you set the log level to `info`, errors are logged, but `debug` and\r\n * `verbose` logs are not).\r\n *\r\n * @public\r\n */\r\nfunction setLogLevel(logLevel) {\r\n setLogLevel$1(logLevel);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DB_NAME = 'firebase-heartbeat-database';\r\nconst DB_VERSION = 1;\r\nconst STORE_NAME = 'firebase-heartbeat-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DB_NAME, DB_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n try {\r\n db.createObjectStore(STORE_NAME);\r\n }\r\n catch (e) {\r\n // Safari/iOS browsers throw occasional exceptions on\r\n // db.createObjectStore() that may be a bug. Avoid blocking\r\n // the rest of the app functionality.\r\n console.warn(e);\r\n }\r\n }\r\n }\r\n }).catch(e => {\r\n throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\r\n originalErrorMessage: e.message\r\n });\r\n });\r\n }\r\n return dbPromise;\r\n}\r\nasync function readHeartbeatsFromIndexedDB(app) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME);\r\n const result = await tx.objectStore(STORE_NAME).get(computeKey(app));\r\n // We already have the value but tx.done can throw,\r\n // so we need to await it here to catch errors\r\n await tx.done;\r\n return result;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(STORE_NAME);\r\n await objectStore.put(heartbeatObject, computeKey(app));\r\n await tx.done;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nfunction computeKey(app) {\r\n return `${app.name}!${app.options.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst MAX_HEADER_BYTES = 1024;\r\n// 30 days\r\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\r\nclass HeartbeatServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n /**\r\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\r\n * the header string.\r\n * Stores one record per date. This will be consolidated into the standard\r\n * format of one record per user agent string before being sent as a header.\r\n * Populated from indexedDB when the controller is instantiated and should\r\n * be kept in sync with indexedDB.\r\n * Leave public for easier testing.\r\n */\r\n this._heartbeatsCache = null;\r\n const app = this.container.getProvider('app').getImmediate();\r\n this._storage = new HeartbeatStorageImpl(app);\r\n this._heartbeatsCachePromise = this._storage.read().then(result => {\r\n this._heartbeatsCache = result;\r\n return result;\r\n });\r\n }\r\n /**\r\n * Called to report a heartbeat. The function will generate\r\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\r\n * to IndexedDB.\r\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\r\n * already logged, subsequent calls to this function in the same day will be ignored.\r\n */\r\n async triggerHeartbeat() {\r\n var _a, _b;\r\n const platformLogger = this.container\r\n .getProvider('platform-logger')\r\n .getImmediate();\r\n // This is the \"Firebase user agent\" string from the platform logger\r\n // service, not the browser user agent.\r\n const agent = platformLogger.getPlatformInfoString();\r\n const date = getUTCDateString();\r\n if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null) {\r\n this._heartbeatsCache = await this._heartbeatsCachePromise;\r\n // If we failed to construct a heartbeats cache, then return immediately.\r\n if (((_b = this._heartbeatsCache) === null || _b === void 0 ? void 0 : _b.heartbeats) == null) {\r\n return;\r\n }\r\n }\r\n // Do not store a heartbeat if one is already stored for this day\r\n // or if a header has already been sent today.\r\n if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\r\n this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\r\n return;\r\n }\r\n else {\r\n // There is no entry for this date. Create one.\r\n this._heartbeatsCache.heartbeats.push({ date, agent });\r\n }\r\n // Remove entries older than 30 days.\r\n this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\r\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\r\n const now = Date.now();\r\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\r\n });\r\n return this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n /**\r\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\r\n * It also clears all heartbeats from memory as well as in IndexedDB.\r\n *\r\n * NOTE: Consuming product SDKs should not send the header if this method\r\n * returns an empty string.\r\n */\r\n async getHeartbeatsHeader() {\r\n var _a;\r\n if (this._heartbeatsCache === null) {\r\n await this._heartbeatsCachePromise;\r\n }\r\n // If it's still null or the array is empty, there is no data to send.\r\n if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null ||\r\n this._heartbeatsCache.heartbeats.length === 0) {\r\n return '';\r\n }\r\n const date = getUTCDateString();\r\n // Extract as many heartbeats from the cache as will fit under the size limit.\r\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\r\n const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\r\n // Store last sent date to prevent another being logged/sent for the same day.\r\n this._heartbeatsCache.lastSentHeartbeatDate = date;\r\n if (unsentEntries.length > 0) {\r\n // Store any unsent entries if they exist.\r\n this._heartbeatsCache.heartbeats = unsentEntries;\r\n // This seems more likely than emptying the array (below) to lead to some odd state\r\n // since the cache isn't empty and this will be called again on the next request,\r\n // and is probably safest if we await it.\r\n await this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n else {\r\n this._heartbeatsCache.heartbeats = [];\r\n // Do not wait for this, to reduce latency.\r\n void this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n return headerString;\r\n }\r\n}\r\nfunction getUTCDateString() {\r\n const today = new Date();\r\n // Returns date format 'YYYY-MM-DD'\r\n return today.toISOString().substring(0, 10);\r\n}\r\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\r\n // Heartbeats grouped by user agent in the standard format to be sent in\r\n // the header.\r\n const heartbeatsToSend = [];\r\n // Single date format heartbeats that are not sent.\r\n let unsentEntries = heartbeatsCache.slice();\r\n for (const singleDateHeartbeat of heartbeatsCache) {\r\n // Look for an existing entry with the same user agent.\r\n const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\r\n if (!heartbeatEntry) {\r\n // If no entry for this user agent exists, create one.\r\n heartbeatsToSend.push({\r\n agent: singleDateHeartbeat.agent,\r\n dates: [singleDateHeartbeat.date]\r\n });\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n // If the header would exceed max size, remove the added heartbeat\r\n // entry and stop adding to the header.\r\n heartbeatsToSend.pop();\r\n break;\r\n }\r\n }\r\n else {\r\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\r\n // If the header would exceed max size, remove the added date\r\n // and stop adding to the header.\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n heartbeatEntry.dates.pop();\r\n break;\r\n }\r\n }\r\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\r\n // quota and the loop breaks early.)\r\n unsentEntries = unsentEntries.slice(1);\r\n }\r\n return {\r\n heartbeatsToSend,\r\n unsentEntries\r\n };\r\n}\r\nclass HeartbeatStorageImpl {\r\n constructor(app) {\r\n this.app = app;\r\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\r\n }\r\n async runIndexedDBEnvironmentCheck() {\r\n if (!isIndexedDBAvailable()) {\r\n return false;\r\n }\r\n else {\r\n return validateIndexedDBOpenable()\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n }\r\n /**\r\n * Read all heartbeats.\r\n */\r\n async read() {\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return { heartbeats: [] };\r\n }\r\n else {\r\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\r\n if (idbHeartbeatObject === null || idbHeartbeatObject === void 0 ? void 0 : idbHeartbeatObject.heartbeats) {\r\n return idbHeartbeatObject;\r\n }\r\n else {\r\n return { heartbeats: [] };\r\n }\r\n }\r\n }\r\n // overwrite the storage with the provided heartbeats\r\n async overwrite(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: heartbeatsObject.heartbeats\r\n });\r\n }\r\n }\r\n // add heartbeats\r\n async add(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: [\r\n ...existingHeartbeatsObject.heartbeats,\r\n ...heartbeatsObject.heartbeats\r\n ]\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\r\n * in a platform logging header JSON object, stringified, and converted\r\n * to base 64.\r\n */\r\nfunction countBytes(heartbeatsCache) {\r\n // base64 has a restricted set of characters, all of which should be 1 byte.\r\n return base64urlEncodeWithoutPadding(\r\n // heartbeatsCache wrapper properties\r\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction registerCoreComponents(variant) {\r\n _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$o, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$o, version$1, 'esm2017');\r\n // Register platform SDK identifier (no version).\r\n registerVersion('fire-js', '');\r\n}\n\n/**\r\n * Firebase App\r\n *\r\n * @remarks This package coordinates the communication between the different Firebase components\r\n * @packageDocumentation\r\n */\r\nregisterCoreComponents('');\n\nexport { SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _isFirebaseApp, _isFirebaseServerApp, _registerComponent, _removeServiceInstance, _serverApps, deleteApp, getApp, getApps, initializeApp, initializeServerApp, onLog, registerVersion, setLogLevel };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass Component {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n constructor(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n setInstantiationMode(mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n }\r\n setMultipleInstances(multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n }\r\n setServiceProps(props) {\r\n this.serviceProps = props;\r\n return this;\r\n }\r\n setInstanceCreatedCallback(callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nclass Provider {\r\n constructor(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n this.instancesOptions = new Map();\r\n this.onInitCallbacks = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide mulitple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n get(identifier) {\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n const deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n }\r\n getImmediate(options) {\r\n var _a;\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\r\n const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(`Service ${this.name} is not available`);\r\n }\r\n }\r\n }\r\n getComponent() {\r\n return this.component;\r\n }\r\n setComponent(component) {\r\n if (component.name !== this.name) {\r\n throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\r\n }\r\n if (this.component) {\r\n throw Error(`Component for ${this.name} has already been provided`);\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n clearInstance(identifier = DEFAULT_ENTRY_NAME) {\r\n this.instancesDeferred.delete(identifier);\r\n this.instancesOptions.delete(identifier);\r\n this.instances.delete(identifier);\r\n }\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n async delete() {\r\n const services = Array.from(this.instances.values());\r\n await Promise.all([\r\n ...services\r\n .filter(service => 'INTERNAL' in service) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service.INTERNAL.delete()),\r\n ...services\r\n .filter(service => '_delete' in service) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service._delete())\r\n ]);\r\n }\r\n isComponentSet() {\r\n return this.component != null;\r\n }\r\n isInitialized(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instances.has(identifier);\r\n }\r\n getOptions(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instancesOptions.get(identifier) || {};\r\n }\r\n initialize(opts = {}) {\r\n const { options = {} } = opts;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(`Component ${this.name} has not been registered yet`);\r\n }\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options\r\n });\r\n // resolve any pending promise waiting for the service instance\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n return instance;\r\n }\r\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\r\n onInit(callback, identifier) {\r\n var _a;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\r\n existingCallbacks.add(callback);\r\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\r\n const existingInstance = this.instances.get(normalizedIdentifier);\r\n if (existingInstance) {\r\n callback(existingInstance, normalizedIdentifier);\r\n }\r\n return () => {\r\n existingCallbacks.delete(callback);\r\n };\r\n }\r\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\r\n invokeOnInitCallbacks(instance, identifier) {\r\n const callbacks = this.onInitCallbacks.get(identifier);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n try {\r\n callback(instance, identifier);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInit callback\r\n }\r\n }\r\n }\r\n getOrInitializeService({ instanceIdentifier, options = {} }) {\r\n let instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n this.instancesOptions.set(instanceIdentifier, options);\r\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\r\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n }\r\n normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n }\r\n shouldAutoInitialize() {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\r\n }\r\n}\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass ComponentContainer {\r\n constructor(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n addComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\r\n }\r\n provider.setComponent(component);\r\n }\r\n addOrOverwriteComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n }\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n getProvider(name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n const provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n }\r\n getProviders() {\r\n return Array.from(this.providers.values());\r\n }\r\n}\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm2017.js.map\n","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"10.11.1\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nregisterVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n","import { _getProvider, getApp, _registerComponent, registerVersion } from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\nconst name = \"@firebase/installations\";\nconst version = \"0.6.6\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst PENDING_TIMEOUT_MS = 10000;\r\nconst PACKAGE_VERSION = `w:${version}`;\r\nconst INTERNAL_AUTH_VERSION = 'FIS_v2';\r\nconst INSTALLATIONS_API_URL = 'https://firebaseinstallations.googleapis.com/v1';\r\nconst TOKEN_EXPIRATION_BUFFER = 60 * 60 * 1000; // One hour\r\nconst SERVICE = 'installations';\r\nconst SERVICE_NAME = 'Installations';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_DESCRIPTION_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"not-registered\" /* ErrorCode.NOT_REGISTERED */]: 'Firebase Installation is not registered.',\r\n [\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */]: 'Firebase Installation not found.',\r\n [\"request-failed\" /* ErrorCode.REQUEST_FAILED */]: '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\r\n [\"app-offline\" /* ErrorCode.APP_OFFLINE */]: 'Could not process request. Application offline.',\r\n [\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */]: \"Can't delete installation while there is a pending registration request.\"\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory(SERVICE, SERVICE_NAME, ERROR_DESCRIPTION_MAP);\r\n/** Returns true if error is a FirebaseError that is based on an error from the server. */\r\nfunction isServerError(error) {\r\n return (error instanceof FirebaseError &&\r\n error.code.includes(\"request-failed\" /* ErrorCode.REQUEST_FAILED */));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction getInstallationsEndpoint({ projectId }) {\r\n return `${INSTALLATIONS_API_URL}/projects/${projectId}/installations`;\r\n}\r\nfunction extractAuthTokenInfoFromResponse(response) {\r\n return {\r\n token: response.token,\r\n requestStatus: 2 /* RequestStatus.COMPLETED */,\r\n expiresIn: getExpiresInFromResponseExpiresIn(response.expiresIn),\r\n creationTime: Date.now()\r\n };\r\n}\r\nasync function getErrorFromResponse(requestName, response) {\r\n const responseJson = await response.json();\r\n const errorData = responseJson.error;\r\n return ERROR_FACTORY.create(\"request-failed\" /* ErrorCode.REQUEST_FAILED */, {\r\n requestName,\r\n serverCode: errorData.code,\r\n serverMessage: errorData.message,\r\n serverStatus: errorData.status\r\n });\r\n}\r\nfunction getHeaders({ apiKey }) {\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': apiKey\r\n });\r\n}\r\nfunction getHeadersWithAuth(appConfig, { refreshToken }) {\r\n const headers = getHeaders(appConfig);\r\n headers.append('Authorization', getAuthorizationHeader(refreshToken));\r\n return headers;\r\n}\r\n/**\r\n * Calls the passed in fetch wrapper and returns the response.\r\n * If the returned response has a status of 5xx, re-runs the function once and\r\n * returns the response.\r\n */\r\nasync function retryIfServerError(fn) {\r\n const result = await fn();\r\n if (result.status >= 500 && result.status < 600) {\r\n // Internal Server Error. Retry request.\r\n return fn();\r\n }\r\n return result;\r\n}\r\nfunction getExpiresInFromResponseExpiresIn(responseExpiresIn) {\r\n // This works because the server will never respond with fractions of a second.\r\n return Number(responseExpiresIn.replace('s', '000'));\r\n}\r\nfunction getAuthorizationHeader(refreshToken) {\r\n return `${INTERNAL_AUTH_VERSION} ${refreshToken}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function createInstallationRequest({ appConfig, heartbeatServiceProvider }, { fid }) {\r\n const endpoint = getInstallationsEndpoint(appConfig);\r\n const headers = getHeaders(appConfig);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n fid,\r\n authVersion: INTERNAL_AUTH_VERSION,\r\n appId: appConfig.appId,\r\n sdkVersion: PACKAGE_VERSION\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const registeredInstallationEntry = {\r\n fid: responseValue.fid || fid,\r\n registrationStatus: 2 /* RequestStatus.COMPLETED */,\r\n refreshToken: responseValue.refreshToken,\r\n authToken: extractAuthTokenInfoFromResponse(responseValue.authToken)\r\n };\r\n return registeredInstallationEntry;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Create Installation', response);\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a promise that resolves after given time passes. */\r\nfunction sleep(ms) {\r\n return new Promise(resolve => {\r\n setTimeout(resolve, ms);\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction bufferToBase64UrlSafe(array) {\r\n const b64 = btoa(String.fromCharCode(...array));\r\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst VALID_FID_PATTERN = /^[cdef][\\w-]{21}$/;\r\nconst INVALID_FID = '';\r\n/**\r\n * Generates a new FID using random values from Web Crypto API.\r\n * Returns an empty string if FID generation fails for any reason.\r\n */\r\nfunction generateFid() {\r\n try {\r\n // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5\r\n // bytes. our implementation generates a 17 byte array instead.\r\n const fidByteArray = new Uint8Array(17);\r\n const crypto = self.crypto || self.msCrypto;\r\n crypto.getRandomValues(fidByteArray);\r\n // Replace the first 4 random bits with the constant FID header of 0b0111.\r\n fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000);\r\n const fid = encode(fidByteArray);\r\n return VALID_FID_PATTERN.test(fid) ? fid : INVALID_FID;\r\n }\r\n catch (_a) {\r\n // FID generation errored\r\n return INVALID_FID;\r\n }\r\n}\r\n/** Converts a FID Uint8Array to a base64 string representation. */\r\nfunction encode(fidByteArray) {\r\n const b64String = bufferToBase64UrlSafe(fidByteArray);\r\n // Remove the 23rd character that was added because of the extra 4 bits at the\r\n // end of our 17 byte array, and the '=' padding.\r\n return b64String.substr(0, 22);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** Returns a string key that can be used to identify the app. */\r\nfunction getKey(appConfig) {\r\n return `${appConfig.appName}!${appConfig.appId}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst fidChangeCallbacks = new Map();\r\n/**\r\n * Calls the onIdChange callbacks with the new FID value, and broadcasts the\r\n * change to other tabs.\r\n */\r\nfunction fidChanged(appConfig, fid) {\r\n const key = getKey(appConfig);\r\n callFidChangeCallbacks(key, fid);\r\n broadcastFidChange(key, fid);\r\n}\r\nfunction addCallback(appConfig, callback) {\r\n // Open the broadcast channel if it's not already open,\r\n // to be able to listen to change events from other tabs.\r\n getBroadcastChannel();\r\n const key = getKey(appConfig);\r\n let callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n callbackSet = new Set();\r\n fidChangeCallbacks.set(key, callbackSet);\r\n }\r\n callbackSet.add(callback);\r\n}\r\nfunction removeCallback(appConfig, callback) {\r\n const key = getKey(appConfig);\r\n const callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n return;\r\n }\r\n callbackSet.delete(callback);\r\n if (callbackSet.size === 0) {\r\n fidChangeCallbacks.delete(key);\r\n }\r\n // Close broadcast channel if there are no more callbacks.\r\n closeBroadcastChannel();\r\n}\r\nfunction callFidChangeCallbacks(key, fid) {\r\n const callbacks = fidChangeCallbacks.get(key);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n callback(fid);\r\n }\r\n}\r\nfunction broadcastFidChange(key, fid) {\r\n const channel = getBroadcastChannel();\r\n if (channel) {\r\n channel.postMessage({ key, fid });\r\n }\r\n closeBroadcastChannel();\r\n}\r\nlet broadcastChannel = null;\r\n/** Opens and returns a BroadcastChannel if it is supported by the browser. */\r\nfunction getBroadcastChannel() {\r\n if (!broadcastChannel && 'BroadcastChannel' in self) {\r\n broadcastChannel = new BroadcastChannel('[Firebase] FID Change');\r\n broadcastChannel.onmessage = e => {\r\n callFidChangeCallbacks(e.data.key, e.data.fid);\r\n };\r\n }\r\n return broadcastChannel;\r\n}\r\nfunction closeBroadcastChannel() {\r\n if (fidChangeCallbacks.size === 0 && broadcastChannel) {\r\n broadcastChannel.close();\r\n broadcastChannel = null;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DATABASE_NAME = 'firebase-installations-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-installations-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function set(appConfig, value) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await objectStore.get(key));\r\n await objectStore.put(value, key);\r\n await tx.done;\r\n if (!oldValue || oldValue.fid !== value.fid) {\r\n fidChanged(appConfig, value.fid);\r\n }\r\n return value;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function remove(appConfig) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\n/**\r\n * Atomically updates a record with the result of updateFn, which gets\r\n * called with the current value. If newValue is undefined, the record is\r\n * deleted instead.\r\n * @return Updated value\r\n */\r\nasync function update(appConfig, updateFn) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const store = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await store.get(key));\r\n const newValue = updateFn(oldValue);\r\n if (newValue === undefined) {\r\n await store.delete(key);\r\n }\r\n else {\r\n await store.put(newValue, key);\r\n }\r\n await tx.done;\r\n if (newValue && (!oldValue || oldValue.fid !== newValue.fid)) {\r\n fidChanged(appConfig, newValue.fid);\r\n }\r\n return newValue;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Updates and returns the InstallationEntry from the database.\r\n * Also triggers a registration request if it is necessary and possible.\r\n */\r\nasync function getInstallationEntry(installations) {\r\n let registrationPromise;\r\n const installationEntry = await update(installations.appConfig, oldEntry => {\r\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\r\n const entryWithPromise = triggerRegistrationIfNecessary(installations, installationEntry);\r\n registrationPromise = entryWithPromise.registrationPromise;\r\n return entryWithPromise.installationEntry;\r\n });\r\n if (installationEntry.fid === INVALID_FID) {\r\n // FID generation failed. Waiting for the FID from the server.\r\n return { installationEntry: await registrationPromise };\r\n }\r\n return {\r\n installationEntry,\r\n registrationPromise\r\n };\r\n}\r\n/**\r\n * Creates a new Installation Entry if one does not exist.\r\n * Also clears timed out pending requests.\r\n */\r\nfunction updateOrCreateInstallationEntry(oldEntry) {\r\n const entry = oldEntry || {\r\n fid: generateFid(),\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n return clearTimedOutRequest(entry);\r\n}\r\n/**\r\n * If the Firebase Installation is not registered yet, this will trigger the\r\n * registration and return an InProgressInstallationEntry.\r\n *\r\n * If registrationPromise does not exist, the installationEntry is guaranteed\r\n * to be registered.\r\n */\r\nfunction triggerRegistrationIfNecessary(installations, installationEntry) {\r\n if (installationEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n if (!navigator.onLine) {\r\n // Registration required but app is offline.\r\n const registrationPromiseWithError = Promise.reject(ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */));\r\n return {\r\n installationEntry,\r\n registrationPromise: registrationPromiseWithError\r\n };\r\n }\r\n // Try registering. Change status to IN_PROGRESS.\r\n const inProgressEntry = {\r\n fid: installationEntry.fid,\r\n registrationStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n registrationTime: Date.now()\r\n };\r\n const registrationPromise = registerInstallation(installations, inProgressEntry);\r\n return { installationEntry: inProgressEntry, registrationPromise };\r\n }\r\n else if (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n return {\r\n installationEntry,\r\n registrationPromise: waitUntilFidRegistration(installations)\r\n };\r\n }\r\n else {\r\n return { installationEntry };\r\n }\r\n}\r\n/** This will be executed only once for each new Firebase Installation. */\r\nasync function registerInstallation(installations, installationEntry) {\r\n try {\r\n const registeredInstallationEntry = await createInstallationRequest(installations, installationEntry);\r\n return set(installations.appConfig, registeredInstallationEntry);\r\n }\r\n catch (e) {\r\n if (isServerError(e) && e.customData.serverCode === 409) {\r\n // Server returned a \"FID can not be used\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n // Registration failed. Set FID as not registered.\r\n await set(installations.appConfig, {\r\n fid: installationEntry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n });\r\n }\r\n throw e;\r\n }\r\n}\r\n/** Call if FID registration is pending in another request. */\r\nasync function waitUntilFidRegistration(installations) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateInstallationRequest(installations.appConfig);\r\n while (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // createInstallation request still in progress.\r\n await sleep(100);\r\n entry = await updateInstallationRequest(installations.appConfig);\r\n }\r\n if (entry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n return registrationPromise;\r\n }\r\n else {\r\n // if there is no registrationPromise, entry is registered.\r\n return installationEntry;\r\n }\r\n }\r\n return entry;\r\n}\r\n/**\r\n * Called only if there is a CreateInstallation request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * CreateInstallation request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateInstallationRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!oldEntry) {\r\n throw ERROR_FACTORY.create(\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */);\r\n }\r\n return clearTimedOutRequest(oldEntry);\r\n });\r\n}\r\nfunction clearTimedOutRequest(entry) {\r\n if (hasInstallationRequestTimedOut(entry)) {\r\n return {\r\n fid: entry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n }\r\n return entry;\r\n}\r\nfunction hasInstallationRequestTimedOut(installationEntry) {\r\n return (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n installationEntry.registrationTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function generateAuthTokenRequest({ appConfig, heartbeatServiceProvider }, installationEntry) {\r\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n installation: {\r\n sdkVersion: PACKAGE_VERSION,\r\n appId: appConfig.appId\r\n }\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const completedAuthToken = extractAuthTokenInfoFromResponse(responseValue);\r\n return completedAuthToken;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Generate Auth Token', response);\r\n }\r\n}\r\nfunction getGenerateAuthTokenEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}/authTokens:generate`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a valid authentication token for the installation. Generates a new\r\n * token if one doesn't exist, is expired or about to expire.\r\n *\r\n * Should only be called if the Firebase Installation is registered.\r\n */\r\nasync function refreshAuthToken(installations, forceRefresh = false) {\r\n let tokenPromise;\r\n const entry = await update(installations.appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (!forceRefresh && isAuthTokenValid(oldAuthToken)) {\r\n // There is a valid token in the DB.\r\n return oldEntry;\r\n }\r\n else if (oldAuthToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // There already is a token request in progress.\r\n tokenPromise = waitUntilAuthTokenRequest(installations, forceRefresh);\r\n return oldEntry;\r\n }\r\n else {\r\n // No token or token expired.\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n const inProgressEntry = makeAuthTokenRequestInProgressEntry(oldEntry);\r\n tokenPromise = fetchAuthTokenFromServer(installations, inProgressEntry);\r\n return inProgressEntry;\r\n }\r\n });\r\n const authToken = tokenPromise\r\n ? await tokenPromise\r\n : entry.authToken;\r\n return authToken;\r\n}\r\n/**\r\n * Call only if FID is registered and Auth Token request is in progress.\r\n *\r\n * Waits until the current pending request finishes. If the request times out,\r\n * tries once in this thread as well.\r\n */\r\nasync function waitUntilAuthTokenRequest(installations, forceRefresh) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateAuthTokenRequest(installations.appConfig);\r\n while (entry.authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // generateAuthToken still in progress.\r\n await sleep(100);\r\n entry = await updateAuthTokenRequest(installations.appConfig);\r\n }\r\n const authToken = entry.authToken;\r\n if (authToken.requestStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n return refreshAuthToken(installations, forceRefresh);\r\n }\r\n else {\r\n return authToken;\r\n }\r\n}\r\n/**\r\n * Called only if there is a GenerateAuthToken request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * GenerateAuthToken request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateAuthTokenRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (hasAuthTokenRequestTimedOut(oldAuthToken)) {\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n }\r\n return oldEntry;\r\n });\r\n}\r\nasync function fetchAuthTokenFromServer(installations, installationEntry) {\r\n try {\r\n const authToken = await generateAuthTokenRequest(installations, installationEntry);\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n return authToken;\r\n }\r\n catch (e) {\r\n if (isServerError(e) &&\r\n (e.customData.serverCode === 401 || e.customData.serverCode === 404)) {\r\n // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n }\r\n throw e;\r\n }\r\n}\r\nfunction isEntryRegistered(installationEntry) {\r\n return (installationEntry !== undefined &&\r\n installationEntry.registrationStatus === 2 /* RequestStatus.COMPLETED */);\r\n}\r\nfunction isAuthTokenValid(authToken) {\r\n return (authToken.requestStatus === 2 /* RequestStatus.COMPLETED */ &&\r\n !isAuthTokenExpired(authToken));\r\n}\r\nfunction isAuthTokenExpired(authToken) {\r\n const now = Date.now();\r\n return (now < authToken.creationTime ||\r\n authToken.creationTime + authToken.expiresIn < now + TOKEN_EXPIRATION_BUFFER);\r\n}\r\n/** Returns an updated InstallationEntry with an InProgressAuthToken. */\r\nfunction makeAuthTokenRequestInProgressEntry(oldEntry) {\r\n const inProgressAuthToken = {\r\n requestStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n requestTime: Date.now()\r\n };\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: inProgressAuthToken });\r\n}\r\nfunction hasAuthTokenRequestTimedOut(authToken) {\r\n return (authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n authToken.requestTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Creates a Firebase Installation if there isn't one for the app and\r\n * returns the Installation ID.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function getId(installations) {\r\n const installationsImpl = installations;\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installationsImpl);\r\n if (registrationPromise) {\r\n registrationPromise.catch(console.error);\r\n }\r\n else {\r\n // If the installation is already registered, update the authentication\r\n // token if needed.\r\n refreshAuthToken(installationsImpl).catch(console.error);\r\n }\r\n return installationEntry.fid;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a Firebase Installations auth token, identifying the current\r\n * Firebase Installation.\r\n * @param installations - The `Installations` instance.\r\n * @param forceRefresh - Force refresh regardless of token expiration.\r\n *\r\n * @public\r\n */\r\nasync function getToken(installations, forceRefresh = false) {\r\n const installationsImpl = installations;\r\n await completeInstallationRegistration(installationsImpl);\r\n // At this point we either have a Registered Installation in the DB, or we've\r\n // already thrown an error.\r\n const authToken = await refreshAuthToken(installationsImpl, forceRefresh);\r\n return authToken.token;\r\n}\r\nasync function completeInstallationRegistration(installations) {\r\n const { registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n // A createInstallation request is in progress. Wait until it finishes.\r\n await registrationPromise;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteInstallationRequest(appConfig, installationEntry) {\r\n const endpoint = getDeleteEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n const request = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (!response.ok) {\r\n throw await getErrorFromResponse('Delete Installation', response);\r\n }\r\n}\r\nfunction getDeleteEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}`;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Deletes the Firebase Installation and all associated data.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function deleteInstallations(installations) {\r\n const { appConfig } = installations;\r\n const entry = await update(appConfig, oldEntry => {\r\n if (oldEntry && oldEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // Delete the unregistered entry without sending a deleteInstallation request.\r\n return undefined;\r\n }\r\n return oldEntry;\r\n });\r\n if (entry) {\r\n if (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // Can't delete while trying to register.\r\n throw ERROR_FACTORY.create(\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */);\r\n }\r\n else if (entry.registrationStatus === 2 /* RequestStatus.COMPLETED */) {\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n else {\r\n await deleteInstallationRequest(appConfig, entry);\r\n await remove(appConfig);\r\n }\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Sets a new callback that will get called when Installation ID changes.\r\n * Returns an unsubscribe function that will remove the callback when called.\r\n * @param installations - The `Installations` instance.\r\n * @param callback - The callback function that is invoked when FID changes.\r\n * @returns A function that can be called to unsubscribe.\r\n *\r\n * @public\r\n */\r\nfunction onIdChange(installations, callback) {\r\n const { appConfig } = installations;\r\n addCallback(appConfig, callback);\r\n return () => {\r\n removeCallback(appConfig, callback);\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns an instance of {@link Installations} associated with the given\r\n * {@link @firebase/app#FirebaseApp} instance.\r\n * @param app - The {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * @public\r\n */\r\nfunction getInstallations(app = getApp()) {\r\n const installationsImpl = _getProvider(app, 'installations').getImmediate();\r\n return installationsImpl;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId'\r\n ];\r\n for (const keyName of configKeys) {\r\n if (!app.options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: app.options.projectId,\r\n apiKey: app.options.apiKey,\r\n appId: app.options.appId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst INSTALLATIONS_NAME = 'installations';\r\nconst INSTALLATIONS_NAME_INTERNAL = 'installations-internal';\r\nconst publicFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Throws if app isn't configured properly.\r\n const appConfig = extractAppConfig(app);\r\n const heartbeatServiceProvider = _getProvider(app, 'heartbeat');\r\n const installationsImpl = {\r\n app,\r\n appConfig,\r\n heartbeatServiceProvider,\r\n _delete: () => Promise.resolve()\r\n };\r\n return installationsImpl;\r\n};\r\nconst internalFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Internal FIS instance relies on public FIS instance.\r\n const installations = _getProvider(app, INSTALLATIONS_NAME).getImmediate();\r\n const installationsInternal = {\r\n getId: () => getId(installations),\r\n getToken: (forceRefresh) => getToken(installations, forceRefresh)\r\n };\r\n return installationsInternal;\r\n};\r\nfunction registerInstallations() {\r\n _registerComponent(new Component(INSTALLATIONS_NAME, publicFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component(INSTALLATIONS_NAME_INTERNAL, internalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n}\n\n/**\r\n * The Firebase Installations Web SDK.\r\n * This SDK does not work in a Node.js environment.\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterInstallations();\r\nregisterVersion(name, version);\r\n// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\nregisterVersion(name, version, 'esm2017');\n\nexport { deleteInstallations, getId, getInstallations, getToken, onIdChange };\n//# sourceMappingURL=index.esm2017.js.map\n","import '@firebase/installations';\nimport { Component } from '@firebase/component';\nimport { openDB, deleteDB } from 'idb';\nimport { ErrorFactory, validateIndexedDBOpenable, isIndexedDBAvailable, areCookiesEnabled, getModularInstance } from '@firebase/util';\nimport { _registerComponent, registerVersion, _getProvider, getApp } from '@firebase/app';\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst DEFAULT_SW_PATH = '/firebase-messaging-sw.js';\r\nconst DEFAULT_SW_SCOPE = '/firebase-cloud-messaging-push-scope';\r\nconst DEFAULT_VAPID_KEY = 'BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4';\r\nconst ENDPOINT = 'https://fcmregistrations.googleapis.com/v1';\r\nconst CONSOLE_CAMPAIGN_ID = 'google.c.a.c_id';\r\nconst CONSOLE_CAMPAIGN_NAME = 'google.c.a.c_l';\r\nconst CONSOLE_CAMPAIGN_TIME = 'google.c.a.ts';\r\n/** Set to '1' if Analytics is enabled for the campaign */\r\nconst CONSOLE_CAMPAIGN_ANALYTICS_ENABLED = 'google.c.a.e';\r\nvar MessageType$1;\r\n(function (MessageType) {\r\n MessageType[MessageType[\"DATA_MESSAGE\"] = 1] = \"DATA_MESSAGE\";\r\n MessageType[MessageType[\"DISPLAY_NOTIFICATION\"] = 3] = \"DISPLAY_NOTIFICATION\";\r\n})(MessageType$1 || (MessageType$1 = {}));\n\n/**\r\n * @license\r\n * Copyright 2018 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except\r\n * in compliance with the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software distributed under the License\r\n * is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\r\n * or implied. See the License for the specific language governing permissions and limitations under\r\n * the License.\r\n */\r\nvar MessageType;\r\n(function (MessageType) {\r\n MessageType[\"PUSH_RECEIVED\"] = \"push-received\";\r\n MessageType[\"NOTIFICATION_CLICKED\"] = \"notification-clicked\";\r\n})(MessageType || (MessageType = {}));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction arrayToBase64(array) {\r\n const uint8Array = new Uint8Array(array);\r\n const base64String = btoa(String.fromCharCode(...uint8Array));\r\n return base64String.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\nfunction base64ToArray(base64String) {\r\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\r\n const base64 = (base64String + padding)\r\n .replace(/\\-/g, '+')\r\n .replace(/_/g, '/');\r\n const rawData = atob(base64);\r\n const outputArray = new Uint8Array(rawData.length);\r\n for (let i = 0; i < rawData.length; ++i) {\r\n outputArray[i] = rawData.charCodeAt(i);\r\n }\r\n return outputArray;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst OLD_DB_NAME = 'fcm_token_details_db';\r\n/**\r\n * The last DB version of 'fcm_token_details_db' was 4. This is one higher, so that the upgrade\r\n * callback is called for all versions of the old DB.\r\n */\r\nconst OLD_DB_VERSION = 5;\r\nconst OLD_OBJECT_STORE_NAME = 'fcm_token_object_Store';\r\nasync function migrateOldDatabase(senderId) {\r\n if ('databases' in indexedDB) {\r\n // indexedDb.databases() is an IndexedDB v3 API and does not exist in all browsers. TODO: Remove\r\n // typecast when it lands in TS types.\r\n const databases = await indexedDB.databases();\r\n const dbNames = databases.map(db => db.name);\r\n if (!dbNames.includes(OLD_DB_NAME)) {\r\n // old DB didn't exist, no need to open.\r\n return null;\r\n }\r\n }\r\n let tokenDetails = null;\r\n const db = await openDB(OLD_DB_NAME, OLD_DB_VERSION, {\r\n upgrade: async (db, oldVersion, newVersion, upgradeTransaction) => {\r\n var _a;\r\n if (oldVersion < 2) {\r\n // Database too old, skip migration.\r\n return;\r\n }\r\n if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {\r\n // Database did not exist. Nothing to do.\r\n return;\r\n }\r\n const objectStore = upgradeTransaction.objectStore(OLD_OBJECT_STORE_NAME);\r\n const value = await objectStore.index('fcmSenderId').get(senderId);\r\n await objectStore.clear();\r\n if (!value) {\r\n // No entry in the database, nothing to migrate.\r\n return;\r\n }\r\n if (oldVersion === 2) {\r\n const oldDetails = value;\r\n if (!oldDetails.auth || !oldDetails.p256dh || !oldDetails.endpoint) {\r\n return;\r\n }\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: (_a = oldDetails.createTime) !== null && _a !== void 0 ? _a : Date.now(),\r\n subscriptionOptions: {\r\n auth: oldDetails.auth,\r\n p256dh: oldDetails.p256dh,\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: typeof oldDetails.vapidKey === 'string'\r\n ? oldDetails.vapidKey\r\n : arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 3) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 4) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n }\r\n });\r\n db.close();\r\n // Delete all old databases.\r\n await deleteDB(OLD_DB_NAME);\r\n await deleteDB('fcm_vapid_details_db');\r\n await deleteDB('undefined');\r\n return checkTokenDetails(tokenDetails) ? tokenDetails : null;\r\n}\r\nfunction checkTokenDetails(tokenDetails) {\r\n if (!tokenDetails || !tokenDetails.subscriptionOptions) {\r\n return false;\r\n }\r\n const { subscriptionOptions } = tokenDetails;\r\n return (typeof tokenDetails.createTime === 'number' &&\r\n tokenDetails.createTime > 0 &&\r\n typeof tokenDetails.token === 'string' &&\r\n tokenDetails.token.length > 0 &&\r\n typeof subscriptionOptions.auth === 'string' &&\r\n subscriptionOptions.auth.length > 0 &&\r\n typeof subscriptionOptions.p256dh === 'string' &&\r\n subscriptionOptions.p256dh.length > 0 &&\r\n typeof subscriptionOptions.endpoint === 'string' &&\r\n subscriptionOptions.endpoint.length > 0 &&\r\n typeof subscriptionOptions.swScope === 'string' &&\r\n subscriptionOptions.swScope.length > 0 &&\r\n typeof subscriptionOptions.vapidKey === 'string' &&\r\n subscriptionOptions.vapidKey.length > 0);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Exported for tests.\r\nconst DATABASE_NAME = 'firebase-messaging-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-messaging-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (upgradeDb, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through behavior is what we want,\r\n // because if there are multiple versions between the old version and the current version, we\r\n // want ALL the migrations that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n upgradeDb.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Gets record(s) from the objectStore that match the given key. */\r\nasync function dbGet(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tokenDetails = (await db\r\n .transaction(OBJECT_STORE_NAME)\r\n .objectStore(OBJECT_STORE_NAME)\r\n .get(key));\r\n if (tokenDetails) {\r\n return tokenDetails;\r\n }\r\n else {\r\n // Check if there is a tokenDetails object in the old DB.\r\n const oldTokenDetails = await migrateOldDatabase(firebaseDependencies.appConfig.senderId);\r\n if (oldTokenDetails) {\r\n await dbSet(firebaseDependencies, oldTokenDetails);\r\n return oldTokenDetails;\r\n }\r\n }\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function dbSet(firebaseDependencies, tokenDetails) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).put(tokenDetails, key);\r\n await tx.done;\r\n return tokenDetails;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function dbRemove(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\nfunction getKey({ appConfig }) {\r\n return appConfig.appId;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst ERROR_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */]: 'This method is available in a Window context.',\r\n [\"only-available-in-sw\" /* ErrorCode.AVAILABLE_IN_SW */]: 'This method is available in a service worker context.',\r\n [\"permission-default\" /* ErrorCode.PERMISSION_DEFAULT */]: 'The notification permission was not granted and dismissed instead.',\r\n [\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */]: 'The notification permission was not granted and blocked instead.',\r\n [\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */]: \"This browser doesn't support the API's required to use the Firebase SDK.\",\r\n [\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */]: \"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)\",\r\n [\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */]: 'We are unable to register the default service worker. {$browserErrorMessage}',\r\n [\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */]: 'A problem occurred while subscribing the user to FCM: {$errorInfo}',\r\n [\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */]: 'FCM returned no token when subscribing the user to push.',\r\n [\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */]: 'A problem occurred while unsubscribing the ' +\r\n 'user from FCM: {$errorInfo}',\r\n [\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */]: 'A problem occurred while updating the user from FCM: {$errorInfo}',\r\n [\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */]: 'FCM returned no token when updating the user to push.',\r\n [\"use-sw-after-get-token\" /* ErrorCode.USE_SW_AFTER_GET_TOKEN */]: 'The useServiceWorker() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your service worker is used.',\r\n [\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */]: 'The input to useServiceWorker() must be a ServiceWorkerRegistration.',\r\n [\"invalid-bg-handler\" /* ErrorCode.INVALID_BG_HANDLER */]: 'The input to setBackgroundMessageHandler() must be a function.',\r\n [\"invalid-vapid-key\" /* ErrorCode.INVALID_VAPID_KEY */]: 'The public VAPID key must be a string.',\r\n [\"use-vapid-key-after-get-token\" /* ErrorCode.USE_VAPID_KEY_AFTER_GET_TOKEN */]: 'The usePublicVapidKey() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your VAPID key is used.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('messaging', 'Messaging', ERROR_MAP);\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function requestGetToken(firebaseDependencies, subscriptionOptions) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(subscriptionOptions);\r\n const subscribeOptions = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(getEndpoint(firebaseDependencies.appConfig), subscribeOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestUpdateToken(firebaseDependencies, tokenDetails) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(tokenDetails.subscriptionOptions);\r\n const updateOptions = {\r\n method: 'PATCH',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${tokenDetails.token}`, updateOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestDeleteToken(firebaseDependencies, token) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const unsubscribeOptions = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${token}`, unsubscribeOptions);\r\n const responseData = await response.json();\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n}\r\nfunction getEndpoint({ projectId }) {\r\n return `${ENDPOINT}/projects/${projectId}/registrations`;\r\n}\r\nasync function getHeaders({ appConfig, installations }) {\r\n const authToken = await installations.getToken();\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': appConfig.apiKey,\r\n 'x-goog-firebase-installations-auth': `FIS ${authToken}`\r\n });\r\n}\r\nfunction getBody({ p256dh, auth, endpoint, vapidKey }) {\r\n const body = {\r\n web: {\r\n endpoint,\r\n auth,\r\n p256dh\r\n }\r\n };\r\n if (vapidKey !== DEFAULT_VAPID_KEY) {\r\n body.web.applicationPubKey = vapidKey;\r\n }\r\n return body;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// UpdateRegistration will be called once every week.\r\nconst TOKEN_EXPIRATION_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\r\nasync function getTokenInternal(messaging) {\r\n const pushSubscription = await getPushSubscription(messaging.swRegistration, messaging.vapidKey);\r\n const subscriptionOptions = {\r\n vapidKey: messaging.vapidKey,\r\n swScope: messaging.swRegistration.scope,\r\n endpoint: pushSubscription.endpoint,\r\n auth: arrayToBase64(pushSubscription.getKey('auth')),\r\n p256dh: arrayToBase64(pushSubscription.getKey('p256dh'))\r\n };\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (!tokenDetails) {\r\n // No token, get a new one.\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (!isTokenValid(tokenDetails.subscriptionOptions, subscriptionOptions)) {\r\n // Invalid token, get a new one.\r\n try {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n }\r\n catch (e) {\r\n // Suppress errors because of #2364\r\n console.warn(e);\r\n }\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (Date.now() >= tokenDetails.createTime + TOKEN_EXPIRATION_MS) {\r\n // Weekly token refresh\r\n return updateToken(messaging, {\r\n token: tokenDetails.token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n });\r\n }\r\n else {\r\n // Valid token, nothing to do.\r\n return tokenDetails.token;\r\n }\r\n}\r\n/**\r\n * This method deletes the token from the database, unsubscribes the token from FCM, and unregisters\r\n * the push subscription if it exists.\r\n */\r\nasync function deleteTokenInternal(messaging) {\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (tokenDetails) {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n await dbRemove(messaging.firebaseDependencies);\r\n }\r\n // Unsubscribe from the push subscription.\r\n const pushSubscription = await messaging.swRegistration.pushManager.getSubscription();\r\n if (pushSubscription) {\r\n return pushSubscription.unsubscribe();\r\n }\r\n // If there's no SW, consider it a success.\r\n return true;\r\n}\r\nasync function updateToken(messaging, tokenDetails) {\r\n try {\r\n const updatedToken = await requestUpdateToken(messaging.firebaseDependencies, tokenDetails);\r\n const updatedTokenDetails = Object.assign(Object.assign({}, tokenDetails), { token: updatedToken, createTime: Date.now() });\r\n await dbSet(messaging.firebaseDependencies, updatedTokenDetails);\r\n return updatedToken;\r\n }\r\n catch (e) {\r\n throw e;\r\n }\r\n}\r\nasync function getNewToken(firebaseDependencies, subscriptionOptions) {\r\n const token = await requestGetToken(firebaseDependencies, subscriptionOptions);\r\n const tokenDetails = {\r\n token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n };\r\n await dbSet(firebaseDependencies, tokenDetails);\r\n return tokenDetails.token;\r\n}\r\n/**\r\n * Gets a PushSubscription for the current user.\r\n */\r\nasync function getPushSubscription(swRegistration, vapidKey) {\r\n const subscription = await swRegistration.pushManager.getSubscription();\r\n if (subscription) {\r\n return subscription;\r\n }\r\n return swRegistration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n // Chrome <= 75 doesn't support base64-encoded VAPID key. For backward compatibility, VAPID key\r\n // submitted to pushManager#subscribe must be of type Uint8Array.\r\n applicationServerKey: base64ToArray(vapidKey)\r\n });\r\n}\r\n/**\r\n * Checks if the saved tokenDetails object matches the configuration provided.\r\n */\r\nfunction isTokenValid(dbOptions, currentOptions) {\r\n const isVapidKeyEqual = currentOptions.vapidKey === dbOptions.vapidKey;\r\n const isEndpointEqual = currentOptions.endpoint === dbOptions.endpoint;\r\n const isAuthEqual = currentOptions.auth === dbOptions.auth;\r\n const isP256dhEqual = currentOptions.p256dh === dbOptions.p256dh;\r\n return isVapidKeyEqual && isEndpointEqual && isAuthEqual && isP256dhEqual;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction externalizePayload(internalPayload) {\r\n const payload = {\r\n from: internalPayload.from,\r\n // eslint-disable-next-line camelcase\r\n collapseKey: internalPayload.collapse_key,\r\n // eslint-disable-next-line camelcase\r\n messageId: internalPayload.fcmMessageId\r\n };\r\n propagateNotificationPayload(payload, internalPayload);\r\n propagateDataPayload(payload, internalPayload);\r\n propagateFcmOptions(payload, internalPayload);\r\n return payload;\r\n}\r\nfunction propagateNotificationPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.notification) {\r\n return;\r\n }\r\n payload.notification = {};\r\n const title = messagePayloadInternal.notification.title;\r\n if (!!title) {\r\n payload.notification.title = title;\r\n }\r\n const body = messagePayloadInternal.notification.body;\r\n if (!!body) {\r\n payload.notification.body = body;\r\n }\r\n const image = messagePayloadInternal.notification.image;\r\n if (!!image) {\r\n payload.notification.image = image;\r\n }\r\n const icon = messagePayloadInternal.notification.icon;\r\n if (!!icon) {\r\n payload.notification.icon = icon;\r\n }\r\n}\r\nfunction propagateDataPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.data) {\r\n return;\r\n }\r\n payload.data = messagePayloadInternal.data;\r\n}\r\nfunction propagateFcmOptions(payload, messagePayloadInternal) {\r\n var _a, _b, _c, _d, _e;\r\n // fcmOptions.link value is written into notification.click_action. see more in b/232072111\r\n if (!messagePayloadInternal.fcmOptions &&\r\n !((_a = messagePayloadInternal.notification) === null || _a === void 0 ? void 0 : _a.click_action)) {\r\n return;\r\n }\r\n payload.fcmOptions = {};\r\n const link = (_c = (_b = messagePayloadInternal.fcmOptions) === null || _b === void 0 ? void 0 : _b.link) !== null && _c !== void 0 ? _c : (_d = messagePayloadInternal.notification) === null || _d === void 0 ? void 0 : _d.click_action;\r\n if (!!link) {\r\n payload.fcmOptions.link = link;\r\n }\r\n // eslint-disable-next-line camelcase\r\n const analyticsLabel = (_e = messagePayloadInternal.fcmOptions) === null || _e === void 0 ? void 0 : _e.analytics_label;\r\n if (!!analyticsLabel) {\r\n payload.fcmOptions.analyticsLabel = analyticsLabel;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction isConsoleMessage(data) {\r\n // This message has a campaign ID, meaning it was sent using the Firebase Console.\r\n return typeof data === 'object' && !!data && CONSOLE_CAMPAIGN_ID in data;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n_mergeStrings('hts/frbslgigp.ogepscmv/ieo/eaylg', 'tp:/ieaeogn-agolai.o/1frlglgc/o');\r\n_mergeStrings('AzSCbw63g1R0nCw85jG8', 'Iaya3yLKwmgvh7cF0q4');\r\nfunction _mergeStrings(s1, s2) {\r\n const resultArray = [];\r\n for (let i = 0; i < s1.length; i++) {\r\n resultArray.push(s1.charAt(i));\r\n if (i < s2.length) {\r\n resultArray.push(s2.charAt(i));\r\n }\r\n }\r\n return resultArray.join('');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration Object');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId',\r\n 'messagingSenderId'\r\n ];\r\n const { options } = app;\r\n for (const keyName of configKeys) {\r\n if (!options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: options.projectId,\r\n apiKey: options.apiKey,\r\n appId: options.appId,\r\n senderId: options.messagingSenderId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\r\n });\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nclass MessagingService {\r\n constructor(app, installations, analyticsProvider) {\r\n // logging is only done with end user consent. Default to false.\r\n this.deliveryMetricsExportedToBigQueryEnabled = false;\r\n this.onBackgroundMessageHandler = null;\r\n this.onMessageHandler = null;\r\n this.logEvents = [];\r\n this.isLogServiceStarted = false;\r\n const appConfig = extractAppConfig(app);\r\n this.firebaseDependencies = {\r\n app,\r\n appConfig,\r\n installations,\r\n analyticsProvider\r\n };\r\n }\r\n _delete() {\r\n return Promise.resolve();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function registerDefaultSw(messaging) {\r\n try {\r\n messaging.swRegistration = await navigator.serviceWorker.register(DEFAULT_SW_PATH, {\r\n scope: DEFAULT_SW_SCOPE\r\n });\r\n // The timing when browser updates sw when sw has an update is unreliable from experiment. It\r\n // leads to version conflict when the SDK upgrades to a newer version in the main page, but sw\r\n // is stuck with the old version. For example,\r\n // https://github.com/firebase/firebase-js-sdk/issues/2590 The following line reliably updates\r\n // sw if there was an update.\r\n messaging.swRegistration.update().catch(() => {\r\n /* it is non blocking and we don't care if it failed */\r\n });\r\n }\r\n catch (e) {\r\n throw ERROR_FACTORY.create(\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */, {\r\n browserErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateSwReg(messaging, swRegistration) {\r\n if (!swRegistration && !messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n if (!swRegistration && !!messaging.swRegistration) {\r\n return;\r\n }\r\n if (!(swRegistration instanceof ServiceWorkerRegistration)) {\r\n throw ERROR_FACTORY.create(\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */);\r\n }\r\n messaging.swRegistration = swRegistration;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function updateVapidKey(messaging, vapidKey) {\r\n if (!!vapidKey) {\r\n messaging.vapidKey = vapidKey;\r\n }\r\n else if (!messaging.vapidKey) {\r\n messaging.vapidKey = DEFAULT_VAPID_KEY;\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function getToken$1(messaging, options) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (Notification.permission === 'default') {\r\n await Notification.requestPermission();\r\n }\r\n if (Notification.permission !== 'granted') {\r\n throw ERROR_FACTORY.create(\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */);\r\n }\r\n await updateVapidKey(messaging, options === null || options === void 0 ? void 0 : options.vapidKey);\r\n await updateSwReg(messaging, options === null || options === void 0 ? void 0 : options.serviceWorkerRegistration);\r\n return getTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function logToScion(messaging, messageType, data) {\r\n const eventType = getEventType(messageType);\r\n const analytics = await messaging.firebaseDependencies.analyticsProvider.get();\r\n analytics.logEvent(eventType, {\r\n /* eslint-disable camelcase */\r\n message_id: data[CONSOLE_CAMPAIGN_ID],\r\n message_name: data[CONSOLE_CAMPAIGN_NAME],\r\n message_time: data[CONSOLE_CAMPAIGN_TIME],\r\n message_device_time: Math.floor(Date.now() / 1000)\r\n /* eslint-enable camelcase */\r\n });\r\n}\r\nfunction getEventType(messageType) {\r\n switch (messageType) {\r\n case MessageType.NOTIFICATION_CLICKED:\r\n return 'notification_open';\r\n case MessageType.PUSH_RECEIVED:\r\n return 'notification_foreground';\r\n default:\r\n throw new Error();\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function messageEventListener(messaging, event) {\r\n const internalPayload = event.data;\r\n if (!internalPayload.isFirebaseMessaging) {\r\n return;\r\n }\r\n if (messaging.onMessageHandler &&\r\n internalPayload.messageType === MessageType.PUSH_RECEIVED) {\r\n if (typeof messaging.onMessageHandler === 'function') {\r\n messaging.onMessageHandler(externalizePayload(internalPayload));\r\n }\r\n else {\r\n messaging.onMessageHandler.next(externalizePayload(internalPayload));\r\n }\r\n }\r\n // Log to Scion if applicable\r\n const dataPayload = internalPayload.data;\r\n if (isConsoleMessage(dataPayload) &&\r\n dataPayload[CONSOLE_CAMPAIGN_ANALYTICS_ENABLED] === '1') {\r\n await logToScion(messaging, internalPayload.messageType, dataPayload);\r\n }\r\n}\n\nconst name = \"@firebase/messaging\";\nconst version = \"0.12.8\";\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nconst WindowMessagingFactory = (container) => {\r\n const messaging = new MessagingService(container.getProvider('app').getImmediate(), container.getProvider('installations-internal').getImmediate(), container.getProvider('analytics-internal'));\r\n navigator.serviceWorker.addEventListener('message', e => messageEventListener(messaging, e));\r\n return messaging;\r\n};\r\nconst WindowMessagingInternalFactory = (container) => {\r\n const messaging = container\r\n .getProvider('messaging')\r\n .getImmediate();\r\n const messagingInternal = {\r\n getToken: (options) => getToken$1(messaging, options)\r\n };\r\n return messagingInternal;\r\n};\r\nfunction registerMessagingInWindow() {\r\n _registerComponent(new Component('messaging', WindowMessagingFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component('messaging-internal', WindowMessagingInternalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n registerVersion(name, version);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name, version, 'esm2017');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Checks if all required APIs exist in the browser.\r\n * @returns a Promise that resolves to a boolean.\r\n *\r\n * @public\r\n */\r\nasync function isWindowSupported() {\r\n try {\r\n // This throws if open() is unsupported, so adding it to the conditional\r\n // statement below can cause an uncaught error.\r\n await validateIndexedDBOpenable();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n // firebase-js-sdk/issues/2393 reveals that idb#open in Safari iframe and Firefox private browsing\r\n // might be prohibited to run. In these contexts, an error would be thrown during the messaging\r\n // instantiating phase, informing the developers to import/call isSupported for special handling.\r\n return (typeof window !== 'undefined' &&\r\n isIndexedDBAvailable() &&\r\n areCookiesEnabled() &&\r\n 'serviceWorker' in navigator &&\r\n 'PushManager' in window &&\r\n 'Notification' in window &&\r\n 'fetch' in window &&\r\n ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') &&\r\n PushSubscription.prototype.hasOwnProperty('getKey'));\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nasync function deleteToken$1(messaging) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (!messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n return deleteTokenInternal(messaging);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction onMessage$1(messaging, nextOrObserver) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n messaging.onMessageHandler = nextOrObserver;\r\n return () => {\r\n messaging.onMessageHandler = null;\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Retrieves a Firebase Cloud Messaging instance.\r\n *\r\n * @returns The Firebase Cloud Messaging instance associated with the provided firebase app.\r\n *\r\n * @public\r\n */\r\nfunction getMessagingInWindow(app = getApp()) {\r\n // Conscious decision to make this async check non-blocking during the messaging instance\r\n // initialization phase for performance consideration. An error would be thrown latter for\r\n // developer's information. Developers can then choose to import and call `isSupported` for\r\n // special handling.\r\n isWindowSupported().then(isSupported => {\r\n // If `isWindowSupported()` resolved, but returned false.\r\n if (!isSupported) {\r\n throw ERROR_FACTORY.create(\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */);\r\n }\r\n }, _ => {\r\n // If `isWindowSupported()` rejected.\r\n throw ERROR_FACTORY.create(\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */);\r\n });\r\n return _getProvider(getModularInstance(app), 'messaging').getImmediate();\r\n}\r\n/**\r\n * Subscribes the {@link Messaging} instance to push notifications. Returns a Firebase Cloud\r\n * Messaging registration token that can be used to send push messages to that {@link Messaging}\r\n * instance.\r\n *\r\n * If notification permission isn't already granted, this method asks the user for permission. The\r\n * returned promise rejects if the user does not allow the app to show notifications.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param options - Provides an optional vapid key and an optional service worker registration.\r\n *\r\n * @returns The promise resolves with an FCM registration token.\r\n *\r\n * @public\r\n */\r\nasync function getToken(messaging, options) {\r\n messaging = getModularInstance(messaging);\r\n return getToken$1(messaging, options);\r\n}\r\n/**\r\n * Deletes the registration token associated with this {@link Messaging} instance and unsubscribes\r\n * the {@link Messaging} instance from the push subscription.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n *\r\n * @returns The promise resolves when the token has been successfully deleted.\r\n *\r\n * @public\r\n */\r\nfunction deleteToken(messaging) {\r\n messaging = getModularInstance(messaging);\r\n return deleteToken$1(messaging);\r\n}\r\n/**\r\n * When a push message is received and the user is currently on a page for your origin, the\r\n * message is passed to the page and an `onMessage()` event is dispatched with the payload of\r\n * the push message.\r\n *\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param nextOrObserver - This function, or observer object with `next` defined,\r\n * is called when a message is received and the user is currently viewing your page.\r\n * @returns To stop listening for messages execute this returned function.\r\n *\r\n * @public\r\n */\r\nfunction onMessage(messaging, nextOrObserver) {\r\n messaging = getModularInstance(messaging);\r\n return onMessage$1(messaging, nextOrObserver);\r\n}\n\n/**\r\n * The Firebase Cloud Messaging Web SDK.\r\n * This SDK does not work in a Node.js environment.\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterMessagingInWindow();\n\nexport { deleteToken, getMessagingInWindow as getMessaging, getToken, isWindowSupported as isSupported, onMessage };\n//# sourceMappingURL=index.esm2017.js.map\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n"],"names":["stringToByteArray$1","str","out","p","i","length","c","charCodeAt","base64","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","ENCODED_VALS","this","ENCODED_VALS_WEBSAFE","HAS_NATIVE_SUPPORT","atob","encodeByteArray","input","webSafe","Array","isArray","Error","init_","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","push","join","encodeString","btoa","decodeString","bytes","pos","c1","String","fromCharCode","c2","u","c3","byteArrayToString","decodeStringToByteArray","charToByteMap","charAt","byte4","DecodeBase64StringError","constructor","super","arguments","name","base64urlEncodeWithoutPadding","utf8Bytes","base64Encode","replace","base64Decode","e","console","error","getDefaultsFromGlobal","self","window","g","getGlobal","__FIREBASE_DEFAULTS__","getDefaults","process","env","defaultsJsonString","JSON","parse","getDefaultsFromEnvVariable","document","match","cookie","decoded","getDefaultsFromCookie","info","getDefaultAppConfig","_a","config","Deferred","reject","resolve","promise","Promise","wrapCallback","callback","value","catch","isIndexedDBAvailable","indexedDB","validateIndexedDBOpenable","preExist","DB_CHECK_NAME","request","open","onsuccess","result","close","deleteDatabase","onupgradeneeded","onerror","message","areCookiesEnabled","navigator","cookieEnabled","FirebaseError","code","customData","Object","setPrototypeOf","prototype","captureStackTrace","ErrorFactory","create","service","serviceName","errors","data","fullCode","template","PATTERN","_","key","replaceTemplate","fullMessage","deepEqual","a","b","aKeys","keys","bKeys","k","includes","aProp","bProp","isObject","thing","getModularInstance","_delegate","slice","ActionCable","INTERNAL","WebSocket","logger","createConsumer","url","ref","getConfig","default_mount_path","Consumer","createWebSocketURL","element","head","querySelector","getAttribute","test","createElement","href","protocol","startDebugging","debugging","stopDebugging","log","messages","call","Date","now","apply","concat","ConnectionMonitor","clamp","secondsSince","connection","fn","me","visibilityDidChange","reconnectAttempts","pollInterval","min","max","staleThreshold","start","isRunning","startedAt","stoppedAt","startPolling","addEventListener","getPollInterval","stop","stopPolling","removeEventListener","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","clearTimeout","pollTimeout","setTimeout","_this","reconnectIfStale","interval","Math","round","connectionIsStale","disconnectedRecently","reopen","visibilityState","isOpen","getTime","time","number","message_types","protocols","supportedProtocols","indexOf","item","l","Connection","consumer","subscriptions","monitor","disconnected","reopenDelay","send","webSocket","stringify","isActive","getState","uninstallEventHandlers","installEventHandlers","arg","ref1","allowReconnect","error1","getProtocol","isState","isProtocolSupported","states","state","readyState","toLowerCase","eventName","handler","events","bind","event","identifier","type","welcome","reload","ping","confirmation","notify","rejection","notifyAll","willAttemptReconnect","Subscriptions","channelName","mixin","channel","params","subscription","Subscription","add","ensureActiveConnection","sendCommand","remove","forget","findAll","len","results","s","args","callbackName","command","extend","perform","action","unsubscribe","object","properties","connect","disconnect","module","exports","moment","createCommonjsModule","getCjsExportFromNamespace","n","hasOwnProperty","colorName","conversions","reverseKeywords","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","defineProperty","comparativeDistance","x","y","pow","h","r","delta","rdif","gdif","bdif","v","diff","diffc","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","z","t1","t2","t3","val","smin","lmin","hi","floor","f","q","t","sl","vmin","wh","bl","ratio","m","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","ansi","color","mult","rem","string","toString","toUpperCase","substring","colorString","split","map","char","integer","parseInt","hue","chroma","pure","w","mg","buildGraph","graph","models","parent","deriveBFS","fromModel","queue","current","pop","adjacents","adjacent","node","unshift","link","from","to","wrapConversion","toModel","path","cur","conversion","route","wrapRaw","wrappedFn","undefined","wrapRounded","forEach","routes","raw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","abbr","rgba","per","hexAlpha","parseFloat","scale","alpha","isNaN","hsla","vals","hexDouble","reverseNames","num","Color","obj","valid","values","setValues","red","lightness","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","clone","source","target","prop","spaces","maxes","getValues","space","capped","chans","sname","index","svalues","chartjsColor","isValidKey","id","helpers","noop","uid","isNullOrUndef","substr","isFinite","Number","valueOrDefault","defaultValue","valueAtIndexOrDefault","thisArg","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","options","tval","sval","merge","_mergerIf","mergeIf","sources","merger","assign","dst","src","inherits","extensions","ChartElement","Surrogate","__super__","_deprecated","scope","previous","warn","helpers_core","callCallback","array","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clear","chart","ctx","clearRect","width","height","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","style","rotation","xOffset","yOffset","size","cornerRadius","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","point","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaults","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","global","fontSize","fontFamily","lineHeight","fontStyle","inputs","context","cacheable","exports$2","_factorize","sort","log10","exponent","LOG10E","powerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","getAdapter","rtl","helpers$1","easing","canvas","math","overrideTextDirection","direction","original","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","interpolate","view","ease","actual","origin","c0","Element","configuration","initialize","_type","hidden","pivot","_view","_model","_start","transition","tooltipPosition","hasValue","isNumber","core_element","exports$3","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","core_animation","get","set","animation","duration","onProgress","onComplete","core_animations","animations","addAnimation","lazy","startTime","animating","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","enumerable","method","base","res","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","scales","dataset","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_update","destroy","_data","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_config","_cachedDataOpts","update","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","backgroundColor","borderColor","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","count","onDataPush","onDataPop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","inner","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","abs","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Line","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","next","percent","end","mode","offset","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","stack","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","label","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","center","_getStacks","last","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","range","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","position","tooltips","callbacks","title","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","list","setAttribute","appendChild","createTextNode","outerHTML","legend","generateLabels","controller","text","onClick","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","j","isDatasetVisible","maxWidth","maxHeight","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","filter","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","display","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","sizes","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","margin","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","props","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","getContext","platform_dom","stylesheet","__proto__","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","property","initCanvas","renderHeight","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","eventListenerOptions","passive","addListener","removeListener","createEvent","nativeEvent","fromNativeEvent","throttled","ticking","createDiv","cls","el","className","createResizer","maxSize","resizer","expand","shrink","_reset","scrollLeft","scrollTop","onScroll","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","unwatchForRender","addResizeListener","container","maintainAspectRatio","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","root","getRootNode","host","getElementById","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","platform","plugins","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","hook","descriptor","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","d","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","reduce","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","prefix","hasId","positionIsHorizontal","compare2Level","l1","l2","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","construct","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","configMerge","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","sign","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","formats","format","startOf","endOf","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$a","sample","arr","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","offsets","widestLabelSize","highestLabelSize","major","minor","valueAt","first","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","spacing","getMajorIndices","skipMajors","tick","ceil","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","defaultConfig","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","unit","maxNumSpaces","maxTicks","precision","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","arrayUnique","hash","getMin","getMax","buildLookupTable","timestamps","distribution","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","date","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","valueOf","amount","filler","propagate","mappers","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","cy","computeBoundary","resolveTarget","visited","visible","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","factory","setter","iteratee","accumulator","baseEach","arrayAggregator","baseAggregator","baseIteratee","initializer","func","baseAssignValue","keyBy","createAggregator","numeral","binary","unformatRegex","VERSION","locales","currentLocale","zeroFormat","nullFormat","defaultFormat","scalePercentBy100","Numeral","_input","_value","kind","unformatFunction","regexp","isNumeral","regexps","unformat","stringToNumber","version","numberToFormat","roundingFunction","abbrForce","int","signed","thousands","locale","negP","optDec","leadingCount","trillion","billion","million","thousand","RegExp","abbreviations","delimiters","abbreviation","stringOriginal","currency","symbol","search","insert","subString","TypeError","multiplier","parts","correctionFactor","accum","mn","maxDecimals","optionals","boundedPrecision","optionalsRegExp","power","splitValue","minDecimals","localeData","validate","culture","_decimalSep","_thousandSep","_currSymbol","_valArray","_abbrObj","_thousandRegEx","temp","trim","inputString","formatFunction","corrFactor","cback","currI","O","subtract","multiply","divide","difference","ordinal","suffixes","suffix","bytesMultiplier","symbols","hours","minutes","seconds","timeArray","BACKGROUND_COLOR","PATTERN_COLOR","POINT_STYLE","classCallCheck","AwaitValue","AsyncGenerator","gen","front","back","resume","then","settle","done","err","_invoke","return","Symbol","asyncIterator","throw","instance","Constructor","createClass","defineProperties","writable","protoProps","staticProps","_extends","subClass","superClass","possibleConstructorReturn","ReferenceError","Shape","patternColor","_canvas","_context","_size","_patternColor","Plus","_Shape","getPrototypeOf","halfSize","setStrokeProps","drawPlus","quarterSize","Cross","drawCross","gap","Dash","drawDash","CrossDash","Dot","setFillProps","drawDot","diameter","DotDash","Disc","_Dot","Ring","drawLine","VerticalLine","_Line","drawTile","Weave","drawWeave","Zigzag","drawZigzag","tenthSize","ZigzagVertical","_Zigzag","Diagonal","drawDiagonalLine","DiagonalRightLeft","_Diagonal","Square","drawSquare","Box","drawBox","Triangle","drawTriangle","TriangleVertical","_Triangle","Diamond","drawDiamond","DiamondBox","_Diamond","shapes","deprecatedShapes","completeShapesList","getRandomShape","excludedShapeTypes","shapesList","shapeType","randomIndex","random","patternCanvas","patternContext","outerSize","shape","pattern","createPattern","colorList","firstShapeType","previousShapeType","_react","_interopRequireDefault","_propTypes","_isEqual","_keyBy","__esModule","default","_typeof","iterator","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","_classCallCheck","_defineProperties","_createClass","_inherits","_setPrototypeOf","o","_createSuper","Derived","hasNativeReflectConstruct","Reflect","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","_assertThisInitialized","NODE_ENV","ChartComponent","_React$Component","_super","chartInstance","_this$props","onElementsClick","renderChart","redraw","destroyChart","updateChart","nextProps","_this$props2","nextData","transformDataProp","shadowDataProp","saveCurrentDatasets","isDev","usingCustomKeyProvider","datasetKeyProvider","getLabelAsKey","multipleDatasets","shouldWarn","_this2","getCurrentDatasets","_this3","memoizeDataProps","currentDatasets","nextDatasets","checkDatasets","currentDatasetsIndexed","pid","otherProps","rest","_this$props3","defaultProps","_this$props4","handleOnClick","Component","oneOfType","isRequired","arrayOf","bool","propName","componentName","Doughnut","_React$Component2","_super2","_this4","_ref","Pie","_React$Component3","_super3","_this5","_ref2","_React$Component4","_super4","_this6","_ref3","Bar","_React$Component5","_super5","_this7","_ref4","HorizontalBar","_React$Component6","_super6","_this8","_ref5","Radar","_React$Component7","_super7","_this9","_ref6","Polar","_React$Component8","_super8","_this10","_ref7","Bubble","_React$Component9","_super9","_this11","_ref8","Scatter","_React$Component10","_super10","_this12","_ref9","extendStatics","Path","counterClockwise","dashRatio","pathRadius","strokeWidth","getDashStyle","getPathDescription","fillOpacity","gapLength","strokeDasharray","strokeDashoffset","CircularProgressbar","__","__extends","getBackgroundPadding","background","backgroundPadding","getPathRadius","getPathRatio","minValue","maxValue","circleRatio","classes","styles","pathRatio","viewBox","trail","__assign","__spreadArray","pack","ar","MS","MOZ","WEBKIT","COMMENT","DECLARATION","KEYFRAMES","exec","replacement","indexof","begin","column","character","characters","children","siblings","copy","lift","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","serialize","some","prefixer","compile","rule","rules","rulesets","pseudo","declarations","atrule","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","REACT_APP_SC_ATTR","SC_ATTR","S","Boolean","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","Set","C","I","theme","A","D","R","T","V","M","$","B","displayName","L","G","for","Y","W","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","H","caller","callee","arity","U","$$typeof","compare","J","X","Z","K","getOwnPropertyNames","Q","ee","te","ne","oe","re","se","ie","ae","ce","le","ue","he","fe","groupSizes","Uint32Array","tag","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","Map","ye","ve","ge","has","Se","we","be","Ee","registerName","Ne","textContent","getTag","Pe","_e","querySelectorAll","nextSibling","Ce","sheet","styleSheets","ownerNode","cssRules","cssText","Ie","nodes","childNodes","Ae","Oe","De","isServer","useCSSOMInjection","Re","gs","names","server","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","Te","ke","je","replaceAll","xe","startsWith","endsWith","namespace","Ve","Fe","Me","shouldForwardProp","styleSheet","stylis","ze","Be","Le","stylisPlugins","disableCSSOMInjection","enableVendorPrefixes","Provider","Ge","inject","getName","Ye","We","qe","He","isCss","Ue","styledComponentId","isReactComponent","Je","Xe","Ze","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","Ke","nt","rt","attrs","parentComponentId","E","N","componentStyle","foldedComponentIds","as","forwardedAs","_foldedDefaultProps","st","it","at","ct","withConfig","lt","ut","createStyles","removeStyles","renderStyles","ft","_emitSheetCSS","getStyleTags","sealed","getStyleElement","dangerouslySetInnerHTML","__html","nonce","seal","collectStyles","interleaveWithNodeStream","asyncGeneratorStep","_next","_throw","_asyncToGenerator","toPropertyKey","toPrimitive","_arrayLikeToArray","arr2","_toConsumableArray","iter","minLen","classNameCombinations","getClassNameCombinations","classNames","arrLength","createStyleObject","elementStyle","nonTokenClassNames","classNamesCombinations","styleObject","createClassNameString","_ref$style","useInlineStyles","TagName","tagName","childrenCreator","childrenCount","child","createChildren","allStylesheetSelectors","selector","startingClassName","_excluded","newLineRegex","AllLineNumbers","codeString","codeStyle","_ref2$containerStyle","containerStyle","_ref2$numberStyle","numberStyle","startingLineNumber","getAllLineNumbers","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","defaultLineNumberStyle","minWidth","userSelect","customLineNumberStyle","createLineElement","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","flattenCodeTree","tree","newTree","processLines","codeTree","wrapLines","lastLineBreakIndex","createWrappedLine","createUnwrappedLine","createLine","newChild","_line","stringChild","lastLineInPreviousSpan","newElem","_line2","_line3","defaultRenderer","rows","isHighlightJs","astGenerator","highlightAuto","defaultAstGenerator","defaultStyle","language","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","allLineNumbers","defaultPreStyle","hljs","generatorClassName","preProps","whiteSpace","defaultCodeValue","hasLanguage","listLanguages","checkForListedLanguage","highlight","getCodeTree","loader","isLanguageRegistered","registerLanguage","languageLoaders","noAsyncLoadingLanguages","ReactAsyncHighlighter","_callee","sent","_x","abap","abnf","actionscript","ada","agda","al","antlr4","apacheconf","apex","apl","applescript","aql","arduino","arff","asciidoc","asm6502","asmatmel","aspnet","autohotkey","autoit","avisynth","avroIdl","bash","basic","batch","bbcode","bicep","birb","bison","bnf","brainfuck","brightscript","bro","bsl","cfscript","chaiscript","cil","clike","clojure","cmake","cobol","coffeescript","concurnas","coq","cpp","crystal","csharp","cshtml","csp","cssExtras","csv","cypher","dart","dataweave","dax","dhall","django","dnsZoneFile","docker","dot","ebnf","editorconfig","eiffel","ejs","elixir","elm","erb","erlang","etlua","excelFormula","falselang","firestoreSecurityRules","flow","fortran","fsharp","ftl","gcode","gdscript","gedcom","gherkin","git","glsl","gml","gn","goModule","go","graphql","groovy","haml","handlebars","haskell","haxe","hcl","hlsl","hoon","hpkp","hsts","http","ichigojam","icon","icuMessageFormat","idris","iecst","ignore","inform7","ini","io","java","javadoc","javadoclike","javascript","javastacktrace","jexl","jolie","jq","jsExtras","jsTemplates","jsdoc","json","json5","jsonp","jsstacktrace","jsx","julia","keepalived","keyman","kotlin","kumir","kusto","latex","latte","less","lilypond","liquid","lisp","livescript","llvm","lolcode","lua","magma","makefile","markdown","markupTemplating","markup","matlab","maxscript","mel","mermaid","mizar","mongodb","monkey","moonscript","n1ql","n4js","nand2tetrisHdl","naniscript","nasm","neon","nevod","nginx","nim","nix","nsis","objectivec","ocaml","opencl","openqasm","oz","parigp","pascal","pascaligo","pcaxis","peoplecode","perl","phpExtras","php","phpdoc","plsql","powerquery","powershell","processing","prolog","promql","protobuf","psl","pug","puppet","purebasic","purescript","python","qml","qore","qsharp","racket","reason","regex","rego","renpy","rip","roboconf","robotframework","ruby","rust","sas","sass","scala","scheme","scss","shellSession","smali","smalltalk","smarty","sml","solidity","solutionFile","soy","sparql","splunkSpl","sqf","sql","squirrel","stan","stylus","swift","systemd","t4Cs","t4Templating","t4Vb","tap","tcl","textile","toml","tremor","tsx","tt2","turtle","twig","typescript","typoscript","unrealscript","uorazor","uri","vala","vbnet","velocity","verilog","vhdl","vim","visualBasic","warpscript","wasm","webIdl","wiki","wolfram","wren","xeora","xmlDoc","xojo","xquery","yaml","yang","zig","registered","_React$PureComponent","_loadLanguage","isRegistered","loadLanguage","astGeneratorPromise","loadAstGenerator","forceUpdate","isSupportedLanguage","highlightInstance","normalizeLanguage","languageLoader","abrupt","languages","supportedLanguages","themed","modesOrVariant","getTheme","themeMode","defaultColors","rcbTheme","lineNumberColor","lineNumberBgColor","substringColor","keywordColor","attributeColor","selectorAttributeColor","docTagColor","nameColor","builtInColor","literalColor","bulletColor","codeColor","additionColor","regexpColor","symbolColor","variableColor","templateVariableColor","linkColor","selectorClassColor","typeColor","stringColor","selectorIdColor","quoteColor","templateTagColor","deletionColor","titleColor","sectionColor","commentColor","metaKeywordColor","metaColor","functionColor","numberColor","codeFontFamily","codeContainerStyle","sharedCodeStyle","selectorTagColor","doctype","builtin","entity","bullet","addition","selectorPseudoColor","quote","deletion","section","italic","bold","function","borderRadius","overflowX","codeBlockStyle","inlineCodeStyle","applyTheme","newTheme","SUPPORTED_LANGUAGE_ALIASES","alias","Code","PureComponent","_isMounted","componentDidMount","componentWillUnmount","getLineOpacity","acc","find","preTag","LANGUAGE_FALLBACK","CodeBlock","handleCopy","clipboardData","preventDefault","selection","getSelection","selectedText","clearData","setData","ClipboardListIcon","ClipboardCheckIcon","Copy","copied","useSSR","browser","setBrowser","useState","useEffect","isBrowser","usePortal","selectId","getId","elSnapshot","setElSnapshot","hasElement","warningStack","defaultOptions","onError","component","useWarning","useClipboard","useCallback","createRange","removeAllRanges","selectNode","addRange","execCommand","copyText","Button","Snippet","codeBlock","CopyBlock","onCopy","startingCopied","toggleCopy","ThemedCopyBlock","bgColor","dracula","lastChild","___grecaptcha_cfg","SCRIPT_NOT_AVAILABLE","executeRecaptcha","reCaptchaKey","useEnterprise","useRecaptchaNet","scriptProps","P","parameters","onLoadCallbackName","grecaptcha","enterprise","badge","sitekey","onLoad","defer","async","appendTo","onload","getElementsByTagName","ready","execute","F","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","Manager","_React$useState","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","NOOP","NOOP_PROMISE","EMPTY_MODIFIERS","Popper","_ref$placement","placement","_ref$strategy","strategy","_ref$modifiers","modifiers","referenceElement","onFirstUpdate","innerRef","popperElement","setPopperElement","_React$useState2","arrowElement","setArrowElement","_usePopper","childrenProps","popper","hasPopperEscaped","modifiersData","hide","isReferenceHidden","arrowProps","arrow","Reference","refHandler","HashRouter","_len","_key","history","resolveToLocation","currentLocation","normalizeToLocation","forwardRefShim","forwardRef","LinkAnchor","forwardedRef","navigate","_onClick","ex","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","Link","_ref2$component","location","createHref","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","NavLink","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","exact","isActiveProp","locationProp","sensitive","strict","styleProp","toLocation","pathname","escapedPath","classnames","joinClassnames","__addDisposableResource","__asyncDelegator","__asyncGenerator","__asyncValues","__await","__awaiter","__classPrivateFieldGet","__classPrivateFieldIn","__classPrivateFieldSet","__createBinding","__decorate","__disposeResources","__esDecorate","__exportStar","__generator","__importDefault","__importStar","__makeTemplateObject","__metadata","__param","__propKey","__read","__rest","__runInitializers","__setFunctionName","__spread","__spreadArrays","__values","decorate","static","access","addInitializer","init","description","trys","ops","asyncDispose","dispose","SuppressedError","suppressed","hasError","toStringTag","useReactToPrint","PrintContextConsumer","createContext","copyStyles","pageStyle","removeAfterPrint","suppressErrors","startPrint","onAfterPrint","onPrintError","print","documentTitle","contentWindow","focus","handleRemoveIframe","logMessages","contentDocument","ownerDocument","triggerPrint","onBeforePrint","handleClick","onBeforeGetContent","handlePrint","bodyClass","content","documentElement","srcdoc","findDOMNode","cloneNode","Text","numResourcesToLoad","resourcesLoaded","resourcesErrored","FontFace","loaded","Image","preload","onloadeddata","onstalled","checked","hasAttribute","attributes","nodeName","nodeValue","debug","trigger","cloneElement","useMemo","_regeneratorRuntime","define","wrap","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","AsyncIterator","invoke","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","mark","awrap","rval","handle","complete","finish","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","LogLevel","levelStringToEnum","DEBUG","VERBOSE","INFO","WARN","ERROR","SILENT","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","logLevel","toISOString","PlatformLoggerServiceImpl","getPlatformInfoString","getProviders","provider","getComponent","isVersionServiceProvider","getImmediate","library","logString","name$o","version$1","_logLevel","_logHandler","_userLogHandler","setLogLevel","logHandler","userLogHandler","DEFAULT_ENTRY_NAME","PLATFORM_LOG_STRING","_apps","_serverApps","_components","_addComponent","app","addComponent","_registerComponent","serverApp","_getProvider","heartbeatController","getProvider","optional","triggerHeartbeat","ERRORS","ERROR_FACTORY","FirebaseAppImpl","_isDeleted","_name","_automaticDataCollectionEnabled","automaticDataCollectionEnabled","_container","checkDestroyed","isDeleted","appName","initializeApp","rawConfig","existingApp","newApp","getApp","registerVersion","libraryKeyOrName","variant","libraryMismatch","versionMismatch","warning","STORE_NAME","dbPromise","getDbPromise","upgrade","db","oldVersion","createObjectStore","originalErrorMessage","writeHeartbeatsToIndexedDB","heartbeatObject","tx","transaction","objectStore","put","computeKey","idbGetError","appId","HeartbeatServiceImpl","_heartbeatsCache","_storage","HeartbeatStorageImpl","_heartbeatsCachePromise","read","_b","agent","getUTCDateString","heartbeats","lastSentHeartbeatDate","singleDateHeartbeat","hbTimestamp","overwrite","heartbeatsToSend","unsentEntries","heartbeatsCache","heartbeatEntry","hb","dates","countBytes","extractHeartbeatsForHeader","headerString","_canUseIndexedDBPromise","runIndexedDBEnvironmentCheck","idbHeartbeatObject","readHeartbeatsFromIndexedDB","heartbeatsObject","existingHeartbeatsObject","instanceFactory","multipleInstances","serviceProps","instantiationMode","onInstanceCreated","setInstantiationMode","setMultipleInstances","setServiceProps","setInstanceCreatedCallback","instancesDeferred","instancesOptions","onInitCallbacks","normalizedIdentifier","normalizeInstanceIdentifier","deferred","isInitialized","shouldAutoInitialize","getOrInitializeService","instanceIdentifier","setComponent","isComponentEager","instanceDeferred","entries","clearInstance","delete","services","all","_delete","isComponentSet","getOptions","onInit","existingCallbacks","existingInstance","invokeOnInitCallbacks","ComponentContainer","providers","addOrOverwriteComponent","PENDING_TIMEOUT_MS","PACKAGE_VERSION","INTERNAL_AUTH_VERSION","TOKEN_EXPIRATION_BUFFER","ERROR_DESCRIPTION_MAP","isServerError","getInstallationsEndpoint","projectId","extractAuthTokenInfoFromResponse","response","requestStatus","expiresIn","responseExpiresIn","creationTime","getErrorFromResponse","requestName","errorData","serverCode","serverMessage","serverStatus","status","getHeaders","apiKey","Headers","Accept","getHeadersWithAuth","appConfig","refreshToken","headers","append","getAuthorizationHeader","retryIfServerError","sleep","ms","VALID_FID_PATTERN","generateFid","fidByteArray","Uint8Array","crypto","msCrypto","getRandomValues","fid","encode","getKey","fidChangeCallbacks","fidChanged","callFidChangeCallbacks","getBroadcastChannel","postMessage","closeBroadcastChannel","broadcastFidChange","broadcastChannel","BroadcastChannel","onmessage","OBJECT_STORE_NAME","oldValue","updateFn","store","newValue","getInstallationEntry","installations","registrationPromise","installationEntry","oldEntry","clearTimedOutRequest","registrationStatus","updateOrCreateInstallationEntry","entryWithPromise","onLine","inProgressEntry","registrationTime","registeredInstallationEntry","heartbeatServiceProvider","endpoint","heartbeatService","heartbeatsHeader","getHeartbeatsHeader","authVersion","sdkVersion","fetch","ok","responseValue","authToken","createInstallationRequest","registerInstallation","waitUntilFidRegistration","triggerRegistrationIfNecessary","entry","updateInstallationRequest","generateAuthTokenRequest","getGenerateAuthTokenEndpoint","installation","refreshAuthToken","forceRefresh","tokenPromise","isEntryRegistered","oldAuthToken","isAuthTokenExpired","isAuthTokenValid","updateAuthTokenRequest","waitUntilAuthTokenRequest","inProgressAuthToken","requestTime","makeAuthTokenRequestInProgressEntry","updatedInstallationEntry","fetchAuthTokenFromServer","getToken","installationsImpl","completeInstallationRegistration","getMissingValueError","valueName","INSTALLATIONS_NAME","publicFactory","configKeys","keyName","extractAppConfig","internalFactory","DEFAULT_VAPID_KEY","CONSOLE_CAMPAIGN_ID","MessageType$1","MessageType","arrayToBase64","uint8Array","base64ToArray","base64String","repeat","rawData","outputArray","OLD_DB_NAME","OLD_OBJECT_STORE_NAME","upgradeDb","dbGet","firebaseDependencies","tokenDetails","oldTokenDetails","senderId","dbNames","databases","newVersion","upgradeTransaction","objectStoreNames","contains","oldDetails","auth","p256dh","fcmToken","createTime","subscriptionOptions","swScope","vapidKey","checkTokenDetails","migrateOldDatabase","dbSet","ERROR_MAP","requestDeleteToken","unsubscribeOptions","getEndpoint","responseData","errorInfo","web","applicationPubKey","getTokenInternal","messaging","pushSubscription","swRegistration","pushManager","getSubscription","subscribe","userVisibleOnly","applicationServerKey","getPushSubscription","dbOptions","currentOptions","isVapidKeyEqual","isEndpointEqual","isAuthEqual","isP256dhEqual","isTokenValid","updatedToken","updateOptions","requestUpdateToken","updatedTokenDetails","updateToken","getNewToken","subscribeOptions","requestGetToken","externalizePayload","internalPayload","payload","collapseKey","collapse_key","messageId","fcmMessageId","messagePayloadInternal","notification","image","propagateNotificationPayload","propagateDataPayload","_c","_d","fcmOptions","click_action","analyticsLabel","analytics_label","propagateFcmOptions","_mergeStrings","s1","s2","resultArray","MessagingService","analyticsProvider","deliveryMetricsExportedToBigQueryEnabled","onBackgroundMessageHandler","onMessageHandler","logEvents","isLogServiceStarted","messagingSenderId","registerDefaultSw","serviceWorker","browserErrorMessage","getToken$1","Notification","permission","requestPermission","updateVapidKey","ServiceWorkerRegistration","updateSwReg","serviceWorkerRegistration","logToScion","messageType","eventType","NOTIFICATION_CLICKED","PUSH_RECEIVED","getEventType","logEvent","message_id","message_name","message_time","message_device_time","messageEventListener","isFirebaseMessaging","dataPayload","WindowMessagingFactory","WindowMessagingInternalFactory","isWindowSupported","PushSubscription","getMessagingInWindow","isSupported","onMessage","nextOrObserver","onMessage$1","idbProxyableTypes","cursorAdvanceMethods","cursorRequestMap","WeakMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","idbProxyTraps","receiver","IDBTransaction","wrapFunction","IDBDatabase","IDBCursor","continue","continuePrimaryKey","unwrap","storeNames","transformCachableValue","unlisten","DOMException","cacheDonePromiseForTransaction","IDBObjectStore","IDBIndex","IDBRequest","success","promisifyRequest","openDB","blocked","blocking","terminated","openPromise","deleteDB","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","storeName","oldTraps"],"sourceRoot":""}