{"version":3,"file":"webpack.vendors-49d0a293.6be84300b109e24e50de.js","mappings":"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G,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG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","sources":["webpack://thoughtleaderscentral/./node_modules/@chargebee/chargebee-js-vue-wrapper/dist/chargebee-js-vue-wrapper.es.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://thoughtleaderscentral/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://thoughtleaderscentral/../../src/helpers/helpers.core.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.math.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.collection.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.extras.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.easing.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.color.ts","webpack://thoughtleaderscentral/../../src/core/core.animations.defaults.js","webpack://thoughtleaderscentral/../../src/helpers/helpers.intl.ts","webpack://thoughtleaderscentral/../../src/core/core.ticks.js","webpack://thoughtleaderscentral/../../src/core/core.defaults.js","webpack://thoughtleaderscentral/../../src/core/core.layouts.defaults.js","webpack://thoughtleaderscentral/../../src/core/core.scale.defaults.js","webpack://thoughtleaderscentral/../../src/helpers/helpers.canvas.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.options.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.config.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.curve.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.dom.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.interpolation.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.rtl.ts","webpack://thoughtleaderscentral/../../src/helpers/helpers.segment.js","webpack://thoughtleaderscentral/./node_modules/countries-list/mjs/index.js","webpack://thoughtleaderscentral/./node_modules/calendar-link/dist/index.modern.mjs"],"sourcesContent":["import { computed, h, openBlock, createElementBlock, normalizeClass, renderSlot } from \"vue\";\nfunction genUUID() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nfunction validateCbInstance(cbInstance) {\n if (cbInstance) {\n const site = cbInstance.site;\n const key = cbInstance.publishableKey;\n if (!(site && typeof site == \"string\" && site.length > 0))\n return false;\n if (!(key && typeof key == \"string\" && key.length > 0))\n return false;\n return true;\n } else {\n return false;\n }\n}\nconst _sfc_main$5 = {\n props: {\n fonts: {\n type: Array,\n default: () => []\n },\n classes: {\n type: Object,\n default: () => ({})\n },\n styles: {\n type: Object,\n default: () => ({})\n },\n placeholder: {\n type: Object,\n default: () => ({})\n },\n icon: {\n type: Boolean,\n default: true\n },\n locale: {\n type: String,\n default: \"en\"\n },\n currency: {\n type: String,\n default: \"USD\"\n }\n },\n data() {\n return {\n cbInstance: null,\n cbComponent: null,\n moduleLoaded: false,\n elementId: \"\"\n };\n },\n computed: {\n componentOptions: function() {\n return {\n fonts: this.fonts,\n classes: this.classes,\n locale: this.locale,\n style: this.styles,\n placeholder: this.placeholder,\n icon: this.icon,\n currency: this.currency\n };\n }\n },\n provide() {\n return {\n cbComponent: computed(() => this.cbComponent)\n };\n },\n methods: {\n tokenize(additionalData) {\n return this.cbComponent.tokenize(additionalData);\n },\n authorizeWith3ds(paymentIntent, additionalData, callbacks) {\n return this.cbComponent.authorizeWith3ds(paymentIntent, additionalData, callbacks);\n },\n focus() {\n this.cbComponent.focus();\n },\n blur() {\n this.cbComponent.blur();\n },\n clear() {\n this.cbComponent.clear();\n },\n setCbComponent(cbComponent) {\n this.cbComponent = cbComponent;\n }\n },\n mounted() {\n this.$nextTick(() => {\n this.elementId = `card-component-${genUUID()}`;\n let cbInstance = Chargebee.getInstance();\n let options = this.componentOptions;\n cbInstance.load(\"components\").then(() => {\n this.cbInstance = cbInstance;\n const cbComponent = this.cbInstance.createComponent(\"card\", options);\n this.setCbComponent(cbComponent);\n this.moduleLoaded = true;\n [\"ready\", \"focus\", \"blur\", \"change\"].map((listener) => {\n this.cbComponent.on(listener, (data) => {\n this.$emit(listener, data);\n });\n });\n this.$nextTick(() => {\n this.cbComponent.mount(`#${this.elementId}`);\n });\n });\n });\n },\n watch: {\n componentOptions() {\n if (this.cbComponent) {\n this.cbComponent.update(this.componentOptions);\n }\n }\n },\n render() {\n let children = this.$slots.default ? this.$slots.default() : [];\n return h(\"div\", { id: this.elementId, class: this.class }, children);\n }\n};\nconst _sfc_main$4 = {\n data() {\n return {\n field: null,\n initialized: false\n };\n },\n props: {\n styles: {\n type: Object,\n default: () => ({})\n },\n placeholder: {\n type: String,\n default: () => \"\"\n }\n },\n computed: {\n fieldOptions: function() {\n return {\n style: this.styles || {},\n placeholder: this.placeholder\n };\n },\n elementId: function() {\n return `card-${this.id}-${genUUID()}`;\n }\n },\n methods: {\n getField() {\n return this.field;\n },\n attachListener(listener) {\n this.field.on(listener, (data) => {\n this.$emit(listener, data);\n });\n },\n initializeField(cbComponent) {\n if (cbComponent) {\n const options = this.fieldOptions;\n this.field = cbComponent.createField(this.id, options).at(`#${this.elementId}`);\n if (this.$parent.onMount)\n this.$parent.onMount();\n this.attachListener(\"ready\");\n this.attachListener(\"focus\");\n this.attachListener(\"blur\");\n this.attachListener(\"change\");\n this.initialized = true;\n }\n },\n focus() {\n this.field.focus();\n },\n blur() {\n this.field.blur();\n },\n clear() {\n this.field.clear();\n }\n },\n watch: {\n fieldOptions() {\n if (this.field) {\n const options = this.fieldOptions;\n this.field.update(options);\n }\n },\n cbComponent(newValue, oldValue) {\n if (!oldValue && newValue) {\n if (!this.initialized) {\n this.initializeField(newValue);\n }\n }\n }\n },\n inject: [\"cbComponent\"],\n mounted() {\n this.initializeField();\n }\n};\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main$3 = {\n name: \"CardNumber\",\n mixins: [_sfc_main$4],\n props: {\n styles: {\n type: Object,\n default: () => ({})\n },\n placeholder: {\n type: String,\n default: () => \"\"\n }\n },\n data() {\n return {\n id: \"number\",\n loaded: false,\n classname: this.class\n };\n }\n};\nconst _hoisted_1$2 = [\"id\"];\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n id: _ctx.elementId,\n class: normalizeClass($data.classname)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1$2);\n}\nvar CardNumber = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$2 = {\n name: \"CardExpiry\",\n props: {\n styles: {\n type: Object,\n default: () => ({})\n },\n placeholder: {\n type: String,\n default: () => \"\"\n }\n },\n data() {\n return {\n id: \"expiry\",\n loaded: false,\n classname: this.class\n };\n },\n mixins: [_sfc_main$4]\n};\nconst _hoisted_1$1 = [\"id\"];\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n id: _ctx.elementId,\n class: normalizeClass($data.classname)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1$1);\n}\nvar CardExpiry = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$1]]);\nconst _sfc_main$1 = {\n name: \"CardCvv\",\n props: {\n styles: {\n type: Object,\n default: () => ({})\n },\n placeholder: {\n type: String,\n default: () => \"\"\n }\n },\n data() {\n return {\n id: \"cvv\",\n loaded: false,\n classname: this.class\n };\n },\n mixins: [_sfc_main$4]\n};\nconst _hoisted_1 = [\"id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n id: _ctx.elementId,\n class: normalizeClass($data.classname)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 10, _hoisted_1);\n}\nvar CardCvv = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst _sfc_main = {\n name: \"Provider\",\n props: {\n cbInstance: {\n type: Object,\n default: null\n }\n },\n render() {\n if (validateCbInstance(this.cbInstance))\n return this.$slots.default();\n else\n return null;\n }\n};\nvar index = {\n install(Vue) {\n Vue.component(\"card-component\", _sfc_main$5);\n Vue.component(\"card-number\", CardNumber);\n Vue.component(\"card-expiry\", CardExpiry);\n Vue.component(\"card-cvv\", CardCvv);\n Vue.component(\"provider\", _sfc_main);\n }\n};\nexport { _sfc_main$5 as CardComponent, CardCvv, CardExpiry, CardNumber, _sfc_main as Provider, index as default };\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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 _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 unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\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 _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 getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\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}","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}","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 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 _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","/**\n * @namespace Chart.helpers\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ActiveDataPoint, ChartEvent} from '../types/index.js';\n\n/**\n * An empty function that can be used, for example, for optional callback.\n */\nexport function noop() {\n /* noop */\n}\n\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */\nexport const uid = (() => {\n let id = 0;\n return () => id++;\n})();\n\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isNullOrUndef(value: unknown): value is null | undefined {\n return value === null || typeof value === 'undefined';\n}\n\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */\nexport function isArray(value: unknown): value is T[] {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isObject(value: unknown): value is AnyObject {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */\nfunction isNumberFinite(value: unknown): value is number {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\nexport {\n isNumberFinite as isFinite,\n};\n\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */\nexport function finiteOrDefault(value: unknown, defaultValue: number) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */\nexport function valueOrDefault(value: T | undefined, defaultValue: T) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nexport const toPercentage = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : +value / dimension;\n\nexport const toDimension = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\n\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */\nexport function callback R, TA, R>(\n fn: T | undefined,\n args: unknown[],\n thisArg?: TA\n): R | undefined {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\n/**\n * Note(SB) for performance sake, this method should only be used when loopable type\n * is unknown or in none intensive code (not called often and small loopable). Else\n * it's preferable to use a regular for() loop and save extra function calls.\n * @param loopable - The object or array to be iterated.\n * @param fn - The function to call for each item.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n * @param [reverse] - If true, iterates backward on the loopable.\n */\nexport function each(\n loopable: Record,\n fn: (this: TA, v: T, i: string) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[],\n fn: (this: TA, v: T, i: number) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[] | Record,\n fn: (this: TA, v: T, i: any) => void,\n thisArg?: TA,\n reverse?: boolean\n) {\n let i: number, len: number, keys: string[];\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */\nexport function _elementsEqual(a0: ActiveDataPoint[], a1: ActiveDataPoint[]) {\n let i: number, ilen: number, v0: ActiveDataPoint, v1: ActiveDataPoint;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */\nexport function clone(source: T): T {\n if (isArray(source)) {\n return source.map(clone) as unknown as T;\n }\n\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key: string) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */\nexport function _merger(key: string, target: AnyObject, source: AnyObject, options: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\n\nexport interface MergeOptions {\n merger?: (key: string, target: AnyObject, source: AnyObject, options?: AnyObject) => void;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` with the given `options`.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @param [options] - Merging options:\n * @param [options.merger] - The merge method (key, target, source, options)\n * @returns The `target` object.\n */\nexport function merge(target: T, source: [], options?: MergeOptions): T;\nexport function merge(target: T, source: S1, options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1], options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1, S2], options?: MergeOptions): T & S1 & S2;\nexport function merge(target: T, source: [S1, S2, S3], options?: MergeOptions): T & S1 & S2 & S3;\nexport function merge(\n target: T,\n source: [S1, S2, S3, S4],\n options?: MergeOptions\n): T & S1 & S2 & S3 & S4;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n\n if (!isObject(target)) {\n return target as AnyObject;\n }\n\n options = options || {};\n const merger = options.merger || _merger;\n let current: AnyObject;\n\n for (let i = 0; i < ilen; ++i) {\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n\n const keys = Object.keys(current);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, current, options as AnyObject);\n }\n }\n\n return target;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @returns The `target` object.\n */\nexport function mergeIf(target: T, source: []): T;\nexport function mergeIf(target: T, source: S1): T & S1;\nexport function mergeIf(target: T, source: [S1]): T & S1;\nexport function mergeIf(target: T, source: [S1, S2]): T & S1 & S2;\nexport function mergeIf(target: T, source: [S1, S2, S3]): T & S1 & S2 & S3;\nexport function mergeIf(target: T, source: [S1, S2, S3, S4]): T & S1 & S2 & S3 & S4;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {merger: _mergerIf});\n}\n\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\nexport function _mergerIf(key: string, target: AnyObject, source: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n\n/**\n * @private\n */\nexport function _deprecated(scope: string, value: unknown, previous: string, current: string) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': v => v,\n // default resolvers\n x: o => o.x,\n y: o => o.y\n};\n\n/**\n * @private\n */\nexport function _splitKey(key: string) {\n const parts = key.split('.');\n const keys: string[] = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\n\nfunction _getKeyResolver(key: string) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n // For backward compatibility:\n // Chart.helpers.core resolveObjectKey should break at empty key\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\n\nexport function resolveObjectKey(obj: AnyObject, key: string): any {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n\n/**\n * @private\n */\nexport function _capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\n\nexport const defined = (value: unknown) => typeof value !== 'undefined';\n\nexport const isFunction = (value: unknown): value is (...args: any[]) => any => typeof value === 'function';\n\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nexport const setsEqual = (a: Set, b: Set) => {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * @param e - The event\n * @private\n */\nexport function _isClickEvent(e: ChartEvent) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n","import type {Point} from '../types/geometric.js';\nimport {isFinite as isFiniteNumber} from './helpers.core.js';\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\n\nexport const PI = Math.PI;\nexport const TAU = 2 * PI;\nexport const PITAU = TAU + PI;\nexport const INFINITY = Number.POSITIVE_INFINITY;\nexport const RAD_PER_DEG = PI / 180;\nexport const HALF_PI = PI / 2;\nexport const QUARTER_PI = PI / 4;\nexport const TWO_THIRDS_PI = PI * 2 / 3;\n\nexport const log10 = Math.log10;\nexport const sign = Math.sign;\n\nexport function almostEquals(x: number, y: number, epsilon: number) {\n return Math.abs(x - y) < epsilon;\n}\n\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */\nexport function niceNum(range: number) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */\nexport function _factorize(value: number) {\n const result: number[] = [];\n const sqrt = Math.sqrt(value);\n let i: number;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) { // if value is a square number\n result.push(sqrt);\n }\n\n result.sort((a, b) => a - b).pop();\n return result;\n}\n\nexport function isNumber(n: unknown): n is number {\n return !isNaN(parseFloat(n as string)) && isFinite(n as number);\n}\n\nexport function almostWhole(x: number, epsilon: number) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\n\n/**\n * @private\n */\nexport function _setMinAndMaxByKey(\n array: Record[],\n target: { min: number, max: number },\n property: string\n) {\n let i: number, ilen: number, value: number;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nexport function toRadians(degrees: number) {\n return degrees * (PI / 180);\n}\n\nexport function toDegrees(radians: number) {\n return radians * (180 / PI);\n}\n\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */\nexport function _decimalPlaces(x: number) {\n if (!isFiniteNumber(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\n\n// Gets the angle from vertical upright to the point about a centre.\nexport function getAngleFromPoint(\n centrePoint: Point,\n anglePoint: Point\n) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < (-0.5 * PI)) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\n\nexport function distanceBetweenPoints(pt1: Point, pt2: Point) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */\nexport function _angleDiff(a: number, b: number) {\n return (a - b + PITAU) % TAU - PI;\n}\n\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */\nexport function _normalizeAngle(a: number) {\n return (a % TAU + TAU) % TAU;\n}\n\n/**\n * @private\n */\nexport function _angleBetween(angle: number, start: number, end: number, sameAngleIsFullCircle?: boolean) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\n\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */\nexport function _limitValue(value: number, min: number, max: number) {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * @param {number} value\n * @private\n */\nexport function _int16Range(value: number) {\n return _limitValue(value, -32768, 32767);\n}\n\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */\nexport function _isBetween(value: number, start: number, end: number, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n","import {_capitalize} from './helpers.core.js';\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param value - value to find\n * @param cmp\n * @private\n */\nexport function _lookup(\n table: number[],\n value: number,\n cmp?: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: T[],\n value: number,\n cmp: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: unknown[],\n value: number,\n cmp?: (value: number) => boolean\n) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid: number;\n\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {lo, hi};\n}\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */\nexport const _lookupByKey = (\n table: Record[],\n key: string,\n value: number,\n last?: boolean\n) =>\n _lookup(table, value, last\n ? index => {\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n }\n : index => table[index][key] < value);\n\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */\nexport const _rlookupByKey = (\n table: Record[],\n key: string,\n value: number\n) =>\n _lookup(table, value, index => table[index][key] >= value);\n\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */\nexport function _filterBetween(values: number[], min: number, max: number) {\n let start = 0;\n let end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\n\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'] as const;\n\nexport interface ArrayListener {\n _onDataPush?(...item: T[]): void;\n _onDataPop?(): void;\n _onDataShift?(): void;\n _onDataSplice?(index: number, deleteCount: number, ...items: T[]): void;\n _onDataUnshift?(...item: T[]): void;\n}\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the '_onData*' callbacks (e.g. _onDataPush, etc.) with same arguments.\n */\nexport function listenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nexport function unlistenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n\n delete array._chartjs;\n}\n\n/**\n * @param items\n */\nexport function _arrayUnique(items: T[]) {\n const set = new Set(items);\n\n if (set.size === items.length) {\n return items;\n }\n\n return Array.from(set);\n}\n","import type {ChartMeta, PointElement} from '../types/index.js';\n\nimport {_limitValue} from './helpers.math.js';\nimport {_lookupByKey} from './helpers.collection.js';\n\nexport function fontString(pixelSize: number, fontStyle: string, fontFamily: string) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\n/**\n* Request animation polyfill\n*/\nexport const requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\n\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */\nexport function throttled>(\n fn: (...args: TArgs) => void,\n thisArg: any,\n) {\n let argsToUse = [] as TArgs;\n let ticking = false;\n\n return function(...args: TArgs) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n\n/**\n * Debounces calling `fn` for `delay` ms\n */\nexport function debounce>(fn: (...args: TArgs) => void, delay: number) {\n let timeout;\n return function(...args: TArgs) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */\nexport const _toLeftRightCenter = (align: 'start' | 'end' | 'center') => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */\nexport const _alignStartEnd = (align: 'start' | 'end' | 'center', start: number, end: number) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */\nexport const _textX = (align: 'left' | 'right' | 'center', left: number, right: number, rtl: boolean) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\n/**\n * Return start and count of visible points.\n * @private\n */\nexport function _getStartAndCountOfVisiblePoints(meta: ChartMeta<'line' | 'scatter'>, points: PointElement[], animationsDisabled: boolean) {\n const pointCount = points.length;\n\n let start = 0;\n let count = pointCount;\n\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n\n if (minDefined) {\n start = _limitValue(Math.min(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {start, count};\n}\n\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */\nexport function _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n","import {PI, TAU, HALF_PI} from './helpers.math.js';\n\nconst atEdge = (t: number) => t === 0 || t === 1;\nconst elasticIn = (t: number, s: number, p: number) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t: number, s: number, p: number) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */\nconst effects = {\n linear: (t: number) => t,\n\n easeInQuad: (t: number) => t * t,\n\n easeOutQuad: (t: number) => -t * (t - 2),\n\n easeInOutQuad: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n\n easeInCubic: (t: number) => t * t * t,\n\n easeOutCubic: (t: number) => (t -= 1) * t * t + 1,\n\n easeInOutCubic: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n\n easeInQuart: (t: number) => t * t * t * t,\n\n easeOutQuart: (t: number) => -((t -= 1) * t * t * t - 1),\n\n easeInOutQuart: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n\n easeInQuint: (t: number) => t * t * t * t * t,\n\n easeOutQuint: (t: number) => (t -= 1) * t * t * t * t + 1,\n\n easeInOutQuint: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n\n easeInSine: (t: number) => -Math.cos(t * HALF_PI) + 1,\n\n easeOutSine: (t: number) => Math.sin(t * HALF_PI),\n\n easeInOutSine: (t: number) => -0.5 * (Math.cos(PI * t) - 1),\n\n easeInExpo: (t: number) => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n\n easeOutExpo: (t: number) => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n\n easeInOutExpo: (t: number) => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n\n easeInCirc: (t: number) => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n\n easeOutCirc: (t: number) => Math.sqrt(1 - (t -= 1) * t),\n\n easeInOutCirc: (t: number) => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n\n easeInElastic: (t: number) => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n\n easeOutElastic: (t: number) => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n\n easeInOutElastic(t: number) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n\n easeInBack(t: number) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n\n easeOutBack(t: number) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n\n easeInOutBack(t: number) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n\n easeInBounce: (t: number) => 1 - effects.easeOutBounce(1 - t),\n\n easeOutBounce(t: number) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n\n easeInOutBounce: (t: number) => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n} as const;\n\nexport type EasingFunction = keyof typeof effects\n\nexport default effects;\n","import {Color} from '@kurkle/color';\n\nexport function isPatternOrGradient(value: unknown): value is CanvasPattern | CanvasGradient {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n\n return false;\n}\n\nexport function color(value: CanvasGradient): CanvasGradient;\nexport function color(value: CanvasPattern): CanvasPattern;\nexport function color(\n value:\n | string\n | { r: number; g: number; b: number; a: number }\n | [number, number, number]\n | [number, number, number, number]\n): Color;\nexport function color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\n\nexport function getHoverColor(value: CanvasGradient): CanvasGradient;\nexport function getHoverColor(value: CanvasPattern): CanvasPattern;\nexport function getHoverColor(value: string): string;\nexport function getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n","const numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\n\nexport function applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n });\n\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n });\n\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n });\n\n defaults.describe('animations', {\n _fallback: 'animation',\n });\n\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0 // show immediately\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0 // for keeping the dataset visible all the way through the animation\n },\n }\n }\n });\n}\n","\nconst intlCache = new Map();\n\nfunction getNumberFormat(locale: string, options?: Intl.NumberFormatOptions) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\n\nexport function formatNumber(num: number, locale: string, options?: Intl.NumberFormatOptions) {\n return getNumberFormat(locale, options).format(num);\n}\n","import {isArray} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {log10} from '../helpers/helpers.math.js';\n\n/**\n * Namespace to hold formatters for different types of ticks\n * @namespace Chart.Ticks.formatters\n */\nconst formatters = {\n /**\n * Formatter for value labels\n * @method Chart.Ticks.formatters.values\n * @param value the value to display\n * @return {string|string[]} the label to display\n */\n values(value) {\n return isArray(value) ? /** @type {string[]} */ (value) : '' + value;\n },\n\n /**\n * Formatter for numeric ticks\n * @method Chart.Ticks.formatters.numeric\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0'; // never show decimal places for 0\n }\n\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue; // This is used when there are less than 2 ticks as the tick interval.\n\n if (ticks.length > 1) {\n // all ticks are small or there huge numbers; use scientific notation\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n\n delta = calculateDelta(tickValue, ticks);\n }\n\n const logDelta = log10(Math.abs(delta));\n\n // When datasets have values approaching Number.MAX_VALUE, the tick calculations might result in\n // infinity and eventually NaN. Passing NaN for minimumFractionDigits or maximumFractionDigits\n // will make the number formatter throw. So instead we check for isNaN and use a fallback value.\n //\n // toFixed has a max of 20 decimal places\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n\n return formatNumber(tickValue, locale, options);\n },\n\n\n /**\n * Formatter for logarithmic ticks\n * @method Chart.Ticks.formatters.logarithmic\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || (tickValue / (Math.pow(10, Math.floor(log10(tickValue)))));\n if ([1, 2, 3, 5, 10, 15].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n\n};\n\n\nfunction calculateDelta(tickValue, ticks) {\n // Figure out how many digits to show\n // The space between the first two ticks might be smaller than normal spacing\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n // If we have a number like 2.5 as the delta, figure out how many decimal places we need\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n // not an integer\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nexport default {formatters};\n","import {getHoverColor} from '../helpers/helpers.color.js';\nimport {isObject, merge, valueOrDefault} from '../helpers/helpers.core.js';\nimport {applyAnimationsDefaults} from './core.animations.defaults.js';\nimport {applyLayoutsDefaults} from './core.layouts.defaults.js';\nimport {applyScaleDefaults} from './core.scale.defaults.js';\n\nexport const overrides = Object.create(null);\nexport const descriptors = Object.create(null);\n\n/**\n * @param {object} node\n * @param {string} key\n * @return {object}\n */\nfunction getScope(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\n\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope(root, scope), values);\n }\n return merge(getScope(root, ''), scope);\n}\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Defaults {\n constructor(_descriptors, _appliers) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n set(scope, values) {\n return set(this, scope, values);\n }\n\n /**\n\t * @param {string} scope\n\t */\n get(scope) {\n return getScope(this, scope);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n\n override(scope, values) {\n return set(overrides, scope, values);\n }\n\n /**\n\t * Routes the named defaults to fallback to another scope/name.\n\t * This routing is useful when those target values, like defaults.color, are changed runtime.\n\t * If the values would be copied, the runtime change would not take effect. By routing, the\n\t * fallback is evaluated at each access, so its always up to date.\n\t *\n\t * Example:\n\t *\n\t * \tdefaults.route('elements.arc', 'backgroundColor', '', 'color')\n\t * - reads the backgroundColor from defaults.color when undefined locally\n\t *\n\t * @param {string} scope Scope this route applies to.\n\t * @param {string} name Property name that should be routed to different namespace when not defined here.\n\t * @param {string} targetScope The namespace where those properties should be routed to.\n\t * Empty string ('') is the root of defaults.\n\t * @param {string} targetName The target name in the target scope the property should be routed to.\n\t */\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope(this, scope);\n const targetScopeObject = getScope(this, targetScope);\n const privateName = '_' + name;\n\n Object.defineProperties(scopeObject, {\n // A private property is defined to hold the actual value, when this property is set in its scope (set in the setter)\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n // The actual property is defined as getter/setter so we can do the routing when value is not locally set.\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n\n apply(appliers) {\n appliers.forEach((apply) => apply(this));\n }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n}, [applyAnimationsDefaults, applyLayoutsDefaults, applyScaleDefaults]);\n","export function applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n","import Ticks from './core.ticks.js';\n\nexport function applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 3.0.0\n */\n bounds: 'ticks',\n\n clip: true,\n\n /**\n * Addition grace added to max and reduced from min data value.\n * @since 3.0.0\n */\n grace: 0,\n\n // grid line settings\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n },\n\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n\n // scale title\n title: {\n // display property\n display: false,\n\n // actual label\n text: '',\n\n // top/bottom padding\n padding: {\n top: 4,\n bottom: 4\n }\n },\n\n // label settings\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n // We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n });\n\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash',\n });\n\n defaults.describe('scales', {\n _fallback: 'scale',\n });\n\n defaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n });\n}\n","import type {\n Chart,\n Point,\n FontSpec,\n CanvasFontSpec,\n PointStyle,\n RenderTextOpts,\n BackdropOptions\n} from '../types/index.js';\nimport type {\n TRBL,\n SplinePoint,\n RoundedRect,\n TRBLCorners\n} from '../types/geometric.js';\nimport {isArray, isNullOrUndef} from './helpers.core.js';\nimport {PI, TAU, HALF_PI, QUARTER_PI, TWO_THIRDS_PI, RAD_PER_DEG} from './helpers.math.js';\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nexport function toFontString(font: FontSpec) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @private\n */\nexport function _measureText(\n ctx: CanvasRenderingContext2D,\n data: Record,\n gc: string[],\n longest: number,\n string: string\n) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n\ntype Thing = string | undefined | null\ntype Things = (Thing | Thing[])[]\n\n/**\n * @private\n */\n// eslint-disable-next-line complexity\nexport function _longestText(\n ctx: CanvasRenderingContext2D,\n font: string,\n arrayOfThings: Things,\n cache?: {data?: Record, garbageCollect?: string[], font?: string}\n) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i: number, j: number, jlen: number, thing: Thing | Thing[], nestedThing: Thing | Thing[];\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */\nexport function _alignPixel(chart: Chart, pixel: number, width: number) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\n/**\n * Clears the entire canvas.\n */\nexport function clearCanvas(canvas: HTMLCanvasElement, ctx?: CanvasRenderingContext2D) {\n ctx = ctx || canvas.getContext('2d');\n\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nexport interface DrawPointOptions {\n pointStyle: PointStyle;\n rotation?: number;\n radius: number;\n borderWidth: number;\n}\n\nexport function drawPoint(\n ctx: CanvasRenderingContext2D,\n options: DrawPointOptions,\n x: number,\n y: number\n) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n\n// eslint-disable-next-line complexity\nexport function drawPointLegend(\n ctx: CanvasRenderingContext2D,\n options: DrawPointOptions,\n x: number,\n y: number,\n w: number\n) {\n let type: string, xOffset: number, yOffset: number, size: number, cornerRadius: number, width: number, xOffsetW: number, yOffsetW: number;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */\n case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */\n case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */\nexport function _isPointInArea(\n point: Point,\n area: TRBL,\n margin?: number\n) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\n\nexport function clipArea(ctx: CanvasRenderingContext2D, area: TRBL) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nexport function unclipArea(ctx: CanvasRenderingContext2D) {\n ctx.restore();\n}\n\n/**\n * @private\n */\nexport function _steppedLineTo(\n ctx: CanvasRenderingContext2D,\n previous: Point,\n target: Point,\n flip?: boolean,\n mode?: string\n) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @private\n */\nexport function _bezierCurveTo(\n ctx: CanvasRenderingContext2D,\n previous: SplinePoint,\n target: SplinePoint,\n flip?: boolean\n) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\n\nfunction setRenderOpts(ctx: CanvasRenderingContext2D, opts: RenderTextOpts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n line: string,\n opts: RenderTextOpts\n) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\n\nfunction drawBackdrop(ctx: CanvasRenderingContext2D, opts: BackdropOptions) {\n const oldColor = ctx.fillStyle;\n\n ctx.fillStyle = opts.color as string;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n\n/**\n * Render text onto the canvas\n */\nexport function renderText(\n ctx: CanvasRenderingContext2D,\n text: string | string[],\n x: number,\n y: number,\n font: CanvasFontSpec,\n opts: RenderTextOpts = {}\n) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i: number, line: string;\n\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n\n y += Number(font.lineHeight);\n }\n\n ctx.restore();\n}\n\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */\nexport function addRoundedRectPath(\n ctx: CanvasRenderingContext2D,\n rect: RoundedRect & { radius: TRBLCorners }\n) {\n const {x, y, w, h, radius} = rect;\n\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n","import defaults from '../core/core.defaults.js';\nimport {isArray, isObject, toDimension, valueOrDefault} from './helpers.core.js';\nimport {toFontString} from './helpers.canvas.js';\nimport type {ChartArea, FontSpec, Point} from '../types/index.js';\nimport type {TRBL, TRBLCorners} from '../types/geometric.js';\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\n/**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */\nexport function toLineHeight(value: number | string, size: number): number {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n default:\n break;\n }\n\n return size * value;\n}\n\nconst numberOrZero = (v: unknown) => +v || 0;\n\n/**\n * @param value\n * @param props\n */\nexport function _readValueToProps(value: number | Record, props: K[]): Record;\nexport function _readValueToProps(value: number | Record, props: Record): Record;\nexport function _readValueToProps(value: number | Record, props: string[] | Record) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */\nexport function toTRBL(value: number | TRBL | Point) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\n\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */\nexport function toTRBLCorners(value: number | TRBLCorners) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\nexport function toPadding(value?: number | TRBL): ChartArea {\n const obj = toTRBL(value) as ChartArea;\n\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n\n return obj;\n}\n\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */\n\nexport function toFont(options: Partial, fallback?: Partial) {\n options = options || {};\n fallback = fallback || defaults.font as FontSpec;\n\n let size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n\n font.string = toFontString(font);\n return font;\n}\n\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */\nexport function resolve(inputs: Array, context?: object, index?: number, info?: { cacheable: boolean }) {\n let cacheable = true;\n let i: number, ilen: number, value: unknown;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */\nexport function _addGrace(minmax: { min: number; max: number; }, grace: number | string, beginAtZero: boolean) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value: number, add: number) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\n\n/**\n * Create a context inheriting parentContext\n * @param parentContext\n * @param context\n * @returns\n */\nexport function createContext(parentContext: null, context: T): T;\nexport function createContext(parentContext: P, context: T): P & T;\nexport function createContext(parentContext: object, context: object) {\n return Object.assign(Object.create(parentContext), context);\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartMeta} from '../types/index.js';\nimport type {\n ResolverObjectKey,\n ResolverCache,\n ResolverProxy,\n DescriptorDefaults,\n Descriptor,\n ContextCache,\n ContextProxy\n} from './helpers.config.types.js';\nimport {isArray, isFunction, isObject, resolveObjectKey, _capitalize} from './helpers.core.js';\n\nexport * from './helpers.config.types.js';\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */\nexport function _createResolver<\n T extends AnyObject[] = AnyObject[],\n R extends AnyObject[] = T\n>(\n scopes: T,\n prefixes = [''],\n rootScopes?: R,\n fallback?: ResolverObjectKey,\n getTarget = () => scopes[0]\n) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache: ResolverCache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope: AnyObject) => _createResolver([scope, ...scopes], prefixes, finalRootScopes, fallback),\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop: string) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop: string) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop: string) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop: string, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n }) as ResolverProxy;\n}\n\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */\nexport function _attachContext<\n T extends AnyObject[] = AnyObject[],\n R extends AnyObject[] = T\n>(\n proxy: ResolverProxy,\n context: AnyObject,\n subProxy?: ResolverProxy,\n descriptorDefaults?: DescriptorDefaults\n) {\n const cache: ContextCache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx: AnyObject) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope: AnyObject) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop: string, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n }) as ContextProxy;\n}\n\n/**\n * @private\n */\nexport function _descriptors(\n proxy: ResolverCache,\n defaults: DescriptorDefaults = {scriptable: true, indexable: true}\n): Descriptor {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\n\nconst readKey = (prefix: string, name: string) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop: string, value: unknown) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\n\nfunction _cached(\n target: AnyObject,\n prop: string,\n resolve: () => unknown\n) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\n\nfunction _resolveWithContext(\n target: ContextCache,\n prop: string,\n receiver: AnyObject\n) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop]; // resolve from proxy\n\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\n\nfunction _resolveScriptable(\n prop: string,\n getValue: (ctx: AnyObject, sub: AnyObject) => unknown,\n target: ContextCache,\n receiver: AnyObject\n) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\n\nfunction _resolveArray(\n prop: string,\n value: unknown[],\n target: ContextCache,\n isIndexable: (key: string) => boolean\n) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\n\nfunction resolveFallback(\n fallback: ResolverObjectKey | ((prop: ResolverObjectKey, value: unknown) => ResolverObjectKey),\n prop: ResolverObjectKey,\n value: unknown\n) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nconst getScope = (key: ResolverObjectKey, parent: AnyObject) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n\nfunction addScopes(\n set: Set,\n parentScopes: AnyObject[],\n key: ResolverObjectKey,\n parentFallback: ResolverObjectKey,\n value: unknown\n) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\n\nfunction createSubResolver(\n parentScopes: AnyObject[],\n resolver: ResolverCache,\n prop: ResolverObjectKey,\n value: unknown\n) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop as string, value));\n}\n\nfunction addScopesFromKey(\n set: Set,\n allScopes: AnyObject[],\n key: ResolverObjectKey,\n fallback: ResolverObjectKey,\n item: unknown\n) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\n\nfunction subGetTarget(\n resolver: ResolverCache,\n prop: string,\n value: unknown\n) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\n\nfunction _resolveWithPrefixes(\n prop: string,\n prefixes: string[],\n scopes: AnyObject[],\n proxy: ResolverProxy\n) {\n let value: unknown;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\n\nfunction _resolve(key: string, scopes: AnyObject[]) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\n\nfunction getKeysFromAllScopes(target: ResolverCache) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes: AnyObject[]) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nexport function _parseObjectDataRadialScale(\n meta: ChartMeta<'line' | 'scatter'>,\n data: AnyObject[],\n start: number,\n count: number\n) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array<{r: unknown}>(count);\n let i: number, ilen: number, index: number, item: AnyObject;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n","import {almostEquals, distanceBetweenPoints, sign} from './helpers.math.js';\nimport {_isPointInArea} from './helpers.canvas.js';\nimport type {ChartArea} from '../types/index.js';\nimport type {SplinePoint} from '../types/geometric.js';\n\nconst EPSILON = Number.EPSILON || 1e-14;\n\ntype OptionalSplinePoint = SplinePoint | false\nconst getPoint = (points: SplinePoint[], i: number): OptionalSplinePoint => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis: 'x' | 'y') => indexAxis === 'x' ? 'y' : 'x';\n\nexport function splineCurve(\n firstPoint: SplinePoint,\n middlePoint: SplinePoint,\n afterPoint: SplinePoint,\n t: number\n): {\n previous: SplinePoint\n next: SplinePoint\n } {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n // This function must also respect \"skipped\" points\n\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\n/**\n * Adjust tangents to ensure monotonic properties\n */\nfunction monotoneAdjust(points: SplinePoint[], deltaK: number[], mK: number[]) {\n const pointsLen = points.length;\n\n let alphaK: number, betaK: number, tauK: number, squaredMagnitude: number, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points: SplinePoint[], mK: number[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta: number, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */\nexport function splineCurveMonotone(points: SplinePoint[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK: number[] = Array(pointsLen).fill(0);\n const mK: number[] = Array(pointsLen);\n\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt: number, min: number, max: number) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points: SplinePoint[], area: ChartArea) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\n/**\n * @private\n */\nexport function _updateBezierControlPoints(\n points: SplinePoint[],\n options,\n area: ChartArea,\n loop: boolean,\n indexAxis: 'x' | 'y'\n) {\n let i: number, ilen: number, point: SplinePoint, controlPoints: ReturnType;\n\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n","import type {ChartArea, Scale} from '../types/index.js';\nimport type Chart from '../core/core.controller.js';\nimport type {ChartEvent} from '../types.js';\nimport {INFINITY} from './helpers.math.js';\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `dom` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } dom.Chart\n * @typedef { import('../../types').ChartEvent } ChartEvent\n */\n\n/**\n * @private\n */\nexport function _isDomSupported(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * @private\n */\nexport function _getParentNode(domNode: HTMLCanvasElement): HTMLCanvasElement {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = (parent as ShadowRoot).host;\n }\n return parent as HTMLCanvasElement;\n}\n\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */\n\nfunction parseMaxStyle(styleValue: string | number, node: HTMLElement, parentProperty: string) {\n let valueInPixels: number;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = (valueInPixels / 100) * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nconst getComputedStyle = (element: HTMLElement): CSSStyleDeclaration =>\n element.ownerDocument.defaultView.getComputedStyle(element, null);\n\nexport function getStyle(el: HTMLElement, property: string): string {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles: CSSStyleDeclaration, style: string, suffix?: string): ChartArea {\n const result = {} as ChartArea;\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nconst useOffsetPos = (x: number, y: number, target: HTMLElement | EventTarget) =>\n (x > 0 || y > 0) && (!target || !(target as HTMLElement).shadowRoot);\n\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */\nfunction getCanvasPosition(\n e: Event | TouchEvent | MouseEvent,\n canvas: HTMLCanvasElement\n): {\n x: number;\n y: number;\n box: boolean;\n } {\n const touches = (e as TouchEvent).touches;\n const source = (touches && touches.length ? touches[0] : e) as MouseEvent;\n const {offsetX, offsetY} = source as MouseEvent;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\n\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */\n\nexport function getRelativePosition(\n event: Event | ChartEvent | TouchEvent | MouseEvent,\n chart: Chart\n): { x: number; y: number } {\n if ('native' in event) {\n return event;\n }\n\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas: HTMLCanvasElement, width: number, height: number): Partial {\n let maxWidth: number, maxHeight: number;\n\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nconst round1 = (v: number) => Math.round(v * 10) / 10;\n\n// eslint-disable-next-line complexity\nexport function getMaximumSize(\n canvas: HTMLCanvasElement,\n bbWidth?: number,\n bbHeight?: number,\n aspectRatio?: number\n): { width: number; height: number } {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n\n return {width, height};\n}\n\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */\nexport function retinaScale(\n chart: Chart,\n forceRatio: number,\n forceStyle?: boolean\n): boolean | void {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n\n const canvas = chart.canvas;\n\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nexport const supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() { // This function will be called when the browser attempts to access the passive property.\n passiveSupported = true;\n return false;\n }\n } as EventListenerOptions;\n\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}());\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */\n\nexport function readUsedSize(\n element: HTMLElement,\n property: 'width' | 'height'\n): number | undefined {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n","import type {Point, SplinePoint} from '../types/geometric.js';\n\n/**\n * @private\n */\nexport function _pointInLine(p1: Point, p2: Point, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\n/**\n * @private\n */\nexport function _steppedInterpolation(\n p1: Point,\n p2: Point,\n t: number, mode: 'middle' | 'after' | unknown\n) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\n\n/**\n * @private\n */\nexport function _bezierInterpolation(p1: SplinePoint, p2: SplinePoint, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n","export interface RTLAdapter {\n x(x: number): number;\n setWidth(w: number): void;\n textAlign(align: 'center' | 'left' | 'right'): 'center' | 'left' | 'right';\n xPlus(x: number, value: number): number;\n leftForLtr(x: number, itemWidth: number): number;\n}\n\nconst getRightToLeftAdapter = function(rectX: number, width: number): RTLAdapter {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\n\nconst getLeftToRightAdapter = function(): RTLAdapter {\n return {\n x(x) {\n return x;\n },\n setWidth(w) { // eslint-disable-line no-unused-vars\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return x;\n },\n };\n};\n\nexport function getRtlAdapter(rtl: boolean, rectX: number, width: number) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nexport function overrideTextDirection(ctx: CanvasRenderingContext2D, direction: 'ltr' | 'rtl') {\n let style: CSSStyleDeclaration, original: [string, string];\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n\n style.setProperty('direction', direction, 'important');\n (ctx as { prevTextDirection?: [string, string] }).prevTextDirection = original;\n }\n}\n\nexport function restoreTextDirection(ctx: CanvasRenderingContext2D, original?: [string, string]) {\n if (original !== undefined) {\n delete (ctx as { prevTextDirection?: [string, string] }).prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n","import {_angleBetween, _angleDiff, _isBetween, _normalizeAngle} from './helpers.math.js';\nimport {createContext} from './helpers.options.js';\nimport {isPatternOrGradient} from './helpers.color.js';\n\n/**\n * @typedef { import('../elements/element.line.js').default } LineElement\n * @typedef { import('../elements/element.point.js').default } PointElement\n * @typedef {{start: number, end: number, loop: boolean, style?: any}} Segment\n */\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\n\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n // eslint-disable-next-line prefer-const\n let {start, end, loop} = segment;\n let i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\n\n/**\n * Returns the sub-segment(s) of a line segment that fall in the given bounds\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} [segment.style] - segment style\n * @param {PointElement[]} points - the points that this segment refers to\n * @param {object} [bounds]\n * @param {string} bounds.property - the property of a `PointElement` we are bounding. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the property\n * @param {number} bounds.end - end value of the property\n * @private\n **/\nexport function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n\n return result;\n}\n\n\n/**\n * Returns the segments of the line that are inside given bounds\n * @param {LineElement} line\n * @param {object} [bounds]\n * @param {string} bounds.property - the property we are bounding with. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the `property`\n * @param {number} bounds.end - end value of the `property`\n * @private\n */\nexport function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n\n/**\n * Find start and end index of a line.\n */\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n\n if (loop && !spanGaps) {\n // loop and not spanning gaps, first find a gap to start from\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n // find first non skipped point (after the first gap possibly)\n while (start < count && points[start].skip) {\n start++;\n }\n\n // if we looped to count, start needs to be 0\n start %= count;\n\n if (loop) {\n // loop will go past count, if start > 0\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n // end could be more than count, normalize\n end %= count;\n\n return {start, end};\n}\n\n/**\n * Compute solid segments from Points, when spanGaps === false\n * @param {PointElement[]} points - the points\n * @param {number} start - start index\n * @param {number} max - max index (can go past count on a loop)\n * @param {boolean} loop - boolean indicating that this would be a loop if no gaps are found\n */\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n // @ts-ignore\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n\n return result;\n}\n\n/**\n * Compute the continuous segments that define the whole line\n * There can be skipped points within a segment, if spanGaps is true.\n * @param {LineElement} line\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n * @private\n */\nexport function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n\n if (!count) {\n return [];\n }\n\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\n/**\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\n/**\n * @param {LineElement} line\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n // Style can not start/end on a skipped point, adjust indices accordingly\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n","/*! countries-list v3.0.6 by Annexare | MIT */\nvar o={AF:\"Africa\",AN:\"Antarctica\",AS:\"Asia\",EU:\"Europe\",NA:\"North America\",OC:\"Oceania\",SA:\"South America\"};var a={AD:{name:\"Andorra\",native:\"Andorra\",phone:[376],continent:\"EU\",capital:\"Andorra la Vella\",currency:[\"EUR\"],languages:[\"ca\"]},AE:{name:\"United Arab Emirates\",native:\"\\u062F\\u0648\\u0644\\u0629 \\u0627\\u0644\\u0625\\u0645\\u0627\\u0631\\u0627\\u062A \\u0627\\u0644\\u0639\\u0631\\u0628\\u064A\\u0629 \\u0627\\u0644\\u0645\\u062A\\u062D\\u062F\\u0629\",phone:[971],continent:\"AS\",capital:\"Abu Dhabi\",currency:[\"AED\"],languages:[\"ar\"]},AF:{name:\"Afghanistan\",native:\"\\u0627\\u0641\\u063A\\u0627\\u0646\\u0633\\u062A\\u0627\\u0646\",phone:[93],continent:\"AS\",capital:\"Kabul\",currency:[\"AFN\"],languages:[\"ps\",\"uz\",\"tk\"]},AG:{name:\"Antigua and Barbuda\",native:\"Antigua and Barbuda\",phone:[1268],continent:\"NA\",capital:\"Saint John's\",currency:[\"XCD\"],languages:[\"en\"]},AI:{name:\"Anguilla\",native:\"Anguilla\",phone:[1264],continent:\"NA\",capital:\"The Valley\",currency:[\"XCD\"],languages:[\"en\"]},AL:{name:\"Albania\",native:\"Shqip\\xEBria\",phone:[355],continent:\"EU\",capital:\"Tirana\",currency:[\"ALL\"],languages:[\"sq\"]},AM:{name:\"Armenia\",native:\"\\u0540\\u0561\\u0575\\u0561\\u057D\\u057F\\u0561\\u0576\",phone:[374],continent:\"AS\",capital:\"Yerevan\",currency:[\"AMD\"],languages:[\"hy\",\"ru\"]},AO:{name:\"Angola\",native:\"Angola\",phone:[244],continent:\"AF\",capital:\"Luanda\",currency:[\"AOA\"],languages:[\"pt\"]},AQ:{name:\"Antarctica\",native:\"Antarctica\",phone:[672],continent:\"AN\",capital:\"\",currency:[],languages:[]},AR:{name:\"Argentina\",native:\"Argentina\",phone:[54],continent:\"SA\",capital:\"Buenos Aires\",currency:[\"ARS\"],languages:[\"es\",\"gn\"]},AS:{name:\"American Samoa\",native:\"American Samoa\",phone:[1684],continent:\"OC\",capital:\"Pago Pago\",currency:[\"USD\"],languages:[\"en\",\"sm\"]},AT:{name:\"Austria\",native:\"\\xD6sterreich\",phone:[43],continent:\"EU\",capital:\"Vienna\",currency:[\"EUR\"],languages:[\"de\"]},AU:{name:\"Australia\",native:\"Australia\",phone:[61],continent:\"OC\",capital:\"Canberra\",currency:[\"AUD\"],languages:[\"en\"]},AW:{name:\"Aruba\",native:\"Aruba\",phone:[297],continent:\"NA\",capital:\"Oranjestad\",currency:[\"AWG\"],languages:[\"nl\",\"pa\"]},AX:{name:\"Aland\",native:\"\\xC5land\",phone:[358],continent:\"EU\",capital:\"Mariehamn\",currency:[\"EUR\"],languages:[\"sv\"]},AZ:{name:\"Azerbaijan\",native:\"Az\\u0259rbaycan\",phone:[994],continent:\"AS\",continents:[\"AS\",\"EU\"],capital:\"Baku\",currency:[\"AZN\"],languages:[\"az\"]},BA:{name:\"Bosnia and Herzegovina\",native:\"Bosna i Hercegovina\",phone:[387],continent:\"EU\",capital:\"Sarajevo\",currency:[\"BAM\"],languages:[\"bs\",\"hr\",\"sr\"]},BB:{name:\"Barbados\",native:\"Barbados\",phone:[1246],continent:\"NA\",capital:\"Bridgetown\",currency:[\"BBD\"],languages:[\"en\"]},BD:{name:\"Bangladesh\",native:\"Bangladesh\",phone:[880],continent:\"AS\",capital:\"Dhaka\",currency:[\"BDT\"],languages:[\"bn\"]},BE:{name:\"Belgium\",native:\"Belgi\\xEB\",phone:[32],continent:\"EU\",capital:\"Brussels\",currency:[\"EUR\"],languages:[\"nl\",\"fr\",\"de\"]},BF:{name:\"Burkina Faso\",native:\"Burkina Faso\",phone:[226],continent:\"AF\",capital:\"Ouagadougou\",currency:[\"XOF\"],languages:[\"fr\",\"ff\"]},BG:{name:\"Bulgaria\",native:\"\\u0411\\u044A\\u043B\\u0433\\u0430\\u0440\\u0438\\u044F\",phone:[359],continent:\"EU\",capital:\"Sofia\",currency:[\"BGN\"],languages:[\"bg\"]},BH:{name:\"Bahrain\",native:\"\\u200F\\u0627\\u0644\\u0628\\u062D\\u0631\\u064A\\u0646\",phone:[973],continent:\"AS\",capital:\"Manama\",currency:[\"BHD\"],languages:[\"ar\"]},BI:{name:\"Burundi\",native:\"Burundi\",phone:[257],continent:\"AF\",capital:\"Bujumbura\",currency:[\"BIF\"],languages:[\"fr\",\"rn\"]},BJ:{name:\"Benin\",native:\"B\\xE9nin\",phone:[229],continent:\"AF\",capital:\"Porto-Novo\",currency:[\"XOF\"],languages:[\"fr\"]},BL:{name:\"Saint Barthelemy\",native:\"Saint-Barth\\xE9lemy\",phone:[590],continent:\"NA\",capital:\"Gustavia\",currency:[\"EUR\"],languages:[\"fr\"]},BM:{name:\"Bermuda\",native:\"Bermuda\",phone:[1441],continent:\"NA\",capital:\"Hamilton\",currency:[\"BMD\"],languages:[\"en\"]},BN:{name:\"Brunei\",native:\"Negara Brunei Darussalam\",phone:[673],continent:\"AS\",capital:\"Bandar Seri Begawan\",currency:[\"BND\"],languages:[\"ms\"]},BO:{name:\"Bolivia\",native:\"Bolivia\",phone:[591],continent:\"SA\",capital:\"Sucre\",currency:[\"BOB\",\"BOV\"],languages:[\"es\",\"ay\",\"qu\"]},BQ:{name:\"Bonaire\",native:\"Bonaire\",phone:[5997],continent:\"NA\",capital:\"Kralendijk\",currency:[\"USD\"],languages:[\"nl\"]},BR:{name:\"Brazil\",native:\"Brasil\",phone:[55],continent:\"SA\",capital:\"Bras\\xEDlia\",currency:[\"BRL\"],languages:[\"pt\"]},BS:{name:\"Bahamas\",native:\"Bahamas\",phone:[1242],continent:\"NA\",capital:\"Nassau\",currency:[\"BSD\"],languages:[\"en\"]},BT:{name:\"Bhutan\",native:\"\\u02BCbrug-yul\",phone:[975],continent:\"AS\",capital:\"Thimphu\",currency:[\"BTN\",\"INR\"],languages:[\"dz\"]},BV:{name:\"Bouvet Island\",native:\"Bouvet\\xF8ya\",phone:[47],continent:\"AN\",capital:\"\",currency:[\"NOK\"],languages:[\"no\",\"nb\",\"nn\"]},BW:{name:\"Botswana\",native:\"Botswana\",phone:[267],continent:\"AF\",capital:\"Gaborone\",currency:[\"BWP\"],languages:[\"en\",\"tn\"]},BY:{name:\"Belarus\",native:\"\\u0411\\u0435\\u043B\\u0430\\u0440\\u0443\\u0301\\u0441\\u044C\",phone:[375],continent:\"EU\",capital:\"Minsk\",currency:[\"BYN\"],languages:[\"be\",\"ru\"]},BZ:{name:\"Belize\",native:\"Belize\",phone:[501],continent:\"NA\",capital:\"Belmopan\",currency:[\"BZD\"],languages:[\"en\",\"es\"]},CA:{name:\"Canada\",native:\"Canada\",phone:[1],continent:\"NA\",capital:\"Ottawa\",currency:[\"CAD\"],languages:[\"en\",\"fr\"]},CC:{name:\"Cocos (Keeling) Islands\",native:\"Cocos (Keeling) Islands\",phone:[61],continent:\"AS\",capital:\"West Island\",currency:[\"AUD\"],languages:[\"en\"]},CD:{name:\"Democratic Republic of the Congo\",native:\"R\\xE9publique d\\xE9mocratique du Congo\",phone:[243],continent:\"AF\",capital:\"Kinshasa\",currency:[\"CDF\"],languages:[\"fr\",\"ln\",\"kg\",\"sw\",\"lu\"]},CF:{name:\"Central African Republic\",native:\"K\\xF6d\\xF6r\\xF6s\\xEAse t\\xEE B\\xEAafr\\xEEka\",phone:[236],continent:\"AF\",capital:\"Bangui\",currency:[\"XAF\"],languages:[\"fr\",\"sg\"]},CG:{name:\"Republic of the Congo\",native:\"R\\xE9publique du Congo\",phone:[242],continent:\"AF\",capital:\"Brazzaville\",currency:[\"XAF\"],languages:[\"fr\",\"ln\"]},CH:{name:\"Switzerland\",native:\"Schweiz\",phone:[41],continent:\"EU\",capital:\"Bern\",currency:[\"CHE\",\"CHF\",\"CHW\"],languages:[\"de\",\"fr\",\"it\"]},CI:{name:\"Ivory Coast\",native:\"C\\xF4te d'Ivoire\",phone:[225],continent:\"AF\",capital:\"Yamoussoukro\",currency:[\"XOF\"],languages:[\"fr\"]},CK:{name:\"Cook Islands\",native:\"Cook Islands\",phone:[682],continent:\"OC\",capital:\"Avarua\",currency:[\"NZD\"],languages:[\"en\"]},CL:{name:\"Chile\",native:\"Chile\",phone:[56],continent:\"SA\",capital:\"Santiago\",currency:[\"CLF\",\"CLP\"],languages:[\"es\"]},CM:{name:\"Cameroon\",native:\"Cameroon\",phone:[237],continent:\"AF\",capital:\"Yaound\\xE9\",currency:[\"XAF\"],languages:[\"en\",\"fr\"]},CN:{name:\"China\",native:\"\\u4E2D\\u56FD\",phone:[86],continent:\"AS\",capital:\"Beijing\",currency:[\"CNY\"],languages:[\"zh\"]},CO:{name:\"Colombia\",native:\"Colombia\",phone:[57],continent:\"SA\",capital:\"Bogot\\xE1\",currency:[\"COP\"],languages:[\"es\"]},CR:{name:\"Costa Rica\",native:\"Costa Rica\",phone:[506],continent:\"NA\",capital:\"San Jos\\xE9\",currency:[\"CRC\"],languages:[\"es\"]},CU:{name:\"Cuba\",native:\"Cuba\",phone:[53],continent:\"NA\",capital:\"Havana\",currency:[\"CUC\",\"CUP\"],languages:[\"es\"]},CV:{name:\"Cape Verde\",native:\"Cabo Verde\",phone:[238],continent:\"AF\",capital:\"Praia\",currency:[\"CVE\"],languages:[\"pt\"]},CW:{name:\"Curacao\",native:\"Cura\\xE7ao\",phone:[5999],continent:\"NA\",capital:\"Willemstad\",currency:[\"ANG\"],languages:[\"nl\",\"pa\",\"en\"]},CX:{name:\"Christmas Island\",native:\"Christmas Island\",phone:[61],continent:\"AS\",capital:\"Flying Fish Cove\",currency:[\"AUD\"],languages:[\"en\"]},CY:{name:\"Cyprus\",native:\"\\u039A\\u03CD\\u03C0\\u03C1\\u03BF\\u03C2\",phone:[357],continent:\"EU\",capital:\"Nicosia\",currency:[\"EUR\"],languages:[\"el\",\"tr\",\"hy\"]},CZ:{name:\"Czech Republic\",native:\"\\u010Cesk\\xE1 republika\",phone:[420],continent:\"EU\",capital:\"Prague\",currency:[\"CZK\"],languages:[\"cs\"]},DE:{name:\"Germany\",native:\"Deutschland\",phone:[49],continent:\"EU\",capital:\"Berlin\",currency:[\"EUR\"],languages:[\"de\"]},DJ:{name:\"Djibouti\",native:\"Djibouti\",phone:[253],continent:\"AF\",capital:\"Djibouti\",currency:[\"DJF\"],languages:[\"fr\",\"ar\"]},DK:{name:\"Denmark\",native:\"Danmark\",phone:[45],continent:\"EU\",continents:[\"EU\",\"NA\"],capital:\"Copenhagen\",currency:[\"DKK\"],languages:[\"da\"]},DM:{name:\"Dominica\",native:\"Dominica\",phone:[1767],continent:\"NA\",capital:\"Roseau\",currency:[\"XCD\"],languages:[\"en\"]},DO:{name:\"Dominican Republic\",native:\"Rep\\xFAblica Dominicana\",phone:[1809,1829,1849],continent:\"NA\",capital:\"Santo Domingo\",currency:[\"DOP\"],languages:[\"es\"]},DZ:{name:\"Algeria\",native:\"\\u0627\\u0644\\u062C\\u0632\\u0627\\u0626\\u0631\",phone:[213],continent:\"AF\",capital:\"Algiers\",currency:[\"DZD\"],languages:[\"ar\"]},EC:{name:\"Ecuador\",native:\"Ecuador\",phone:[593],continent:\"SA\",capital:\"Quito\",currency:[\"USD\"],languages:[\"es\"]},EE:{name:\"Estonia\",native:\"Eesti\",phone:[372],continent:\"EU\",capital:\"Tallinn\",currency:[\"EUR\"],languages:[\"et\"]},EG:{name:\"Egypt\",native:\"\\u0645\\u0635\\u0631\\u200E\",phone:[20],continent:\"AF\",continents:[\"AF\",\"AS\"],capital:\"Cairo\",currency:[\"EGP\"],languages:[\"ar\"]},EH:{name:\"Western Sahara\",native:\"\\u0627\\u0644\\u0635\\u062D\\u0631\\u0627\\u0621 \\u0627\\u0644\\u063A\\u0631\\u0628\\u064A\\u0629\",phone:[212],continent:\"AF\",capital:\"El Aai\\xFAn\",currency:[\"MAD\",\"DZD\",\"MRU\"],languages:[\"es\"]},ER:{name:\"Eritrea\",native:\"\\u12A4\\u122D\\u1275\\u122B\",phone:[291],continent:\"AF\",capital:\"Asmara\",currency:[\"ERN\"],languages:[\"ti\",\"ar\",\"en\"]},ES:{name:\"Spain\",native:\"Espa\\xF1a\",phone:[34],continent:\"EU\",capital:\"Madrid\",currency:[\"EUR\"],languages:[\"es\",\"eu\",\"ca\",\"gl\",\"oc\"]},ET:{name:\"Ethiopia\",native:\"\\u12A2\\u1275\\u12EE\\u1335\\u12EB\",phone:[251],continent:\"AF\",capital:\"Addis Ababa\",currency:[\"ETB\"],languages:[\"am\"]},FI:{name:\"Finland\",native:\"Suomi\",phone:[358],continent:\"EU\",capital:\"Helsinki\",currency:[\"EUR\"],languages:[\"fi\",\"sv\"]},FJ:{name:\"Fiji\",native:\"Fiji\",phone:[679],continent:\"OC\",capital:\"Suva\",currency:[\"FJD\"],languages:[\"en\",\"fj\",\"hi\",\"ur\"]},FK:{name:\"Falkland Islands\",native:\"Falkland Islands\",phone:[500],continent:\"SA\",capital:\"Stanley\",currency:[\"FKP\"],languages:[\"en\"]},FM:{name:\"Micronesia\",native:\"Micronesia\",phone:[691],continent:\"OC\",capital:\"Palikir\",currency:[\"USD\"],languages:[\"en\"]},FO:{name:\"Faroe Islands\",native:\"F\\xF8royar\",phone:[298],continent:\"EU\",capital:\"T\\xF3rshavn\",currency:[\"DKK\"],languages:[\"fo\"]},FR:{name:\"France\",native:\"France\",phone:[33],continent:\"EU\",capital:\"Paris\",currency:[\"EUR\"],languages:[\"fr\"]},GA:{name:\"Gabon\",native:\"Gabon\",phone:[241],continent:\"AF\",capital:\"Libreville\",currency:[\"XAF\"],languages:[\"fr\"]},GB:{name:\"United Kingdom\",native:\"United Kingdom\",phone:[44],continent:\"EU\",capital:\"London\",currency:[\"GBP\"],languages:[\"en\"]},GD:{name:\"Grenada\",native:\"Grenada\",phone:[1473],continent:\"NA\",capital:\"St. George's\",currency:[\"XCD\"],languages:[\"en\"]},GE:{name:\"Georgia\",native:\"\\u10E1\\u10D0\\u10E5\\u10D0\\u10E0\\u10D7\\u10D5\\u10D4\\u10DA\\u10DD\",phone:[995],continent:\"AS\",continents:[\"AS\",\"EU\"],capital:\"Tbilisi\",currency:[\"GEL\"],languages:[\"ka\"]},GF:{name:\"French Guiana\",native:\"Guyane fran\\xE7aise\",phone:[594],continent:\"SA\",capital:\"Cayenne\",currency:[\"EUR\"],languages:[\"fr\"]},GG:{name:\"Guernsey\",native:\"Guernsey\",phone:[44],continent:\"EU\",capital:\"St. Peter Port\",currency:[\"GBP\"],languages:[\"en\",\"fr\"]},GH:{name:\"Ghana\",native:\"Ghana\",phone:[233],continent:\"AF\",capital:\"Accra\",currency:[\"GHS\"],languages:[\"en\"]},GI:{name:\"Gibraltar\",native:\"Gibraltar\",phone:[350],continent:\"EU\",capital:\"Gibraltar\",currency:[\"GIP\"],languages:[\"en\"]},GL:{name:\"Greenland\",native:\"Kalaallit Nunaat\",phone:[299],continent:\"NA\",capital:\"Nuuk\",currency:[\"DKK\"],languages:[\"kl\"]},GM:{name:\"Gambia\",native:\"Gambia\",phone:[220],continent:\"AF\",capital:\"Banjul\",currency:[\"GMD\"],languages:[\"en\"]},GN:{name:\"Guinea\",native:\"Guin\\xE9e\",phone:[224],continent:\"AF\",capital:\"Conakry\",currency:[\"GNF\"],languages:[\"fr\",\"ff\"]},GP:{name:\"Guadeloupe\",native:\"Guadeloupe\",phone:[590],continent:\"NA\",capital:\"Basse-Terre\",currency:[\"EUR\"],languages:[\"fr\"]},GQ:{name:\"Equatorial Guinea\",native:\"Guinea Ecuatorial\",phone:[240],continent:\"AF\",capital:\"Malabo\",currency:[\"XAF\"],languages:[\"es\",\"fr\"]},GR:{name:\"Greece\",native:\"\\u0395\\u03BB\\u03BB\\u03AC\\u03B4\\u03B1\",phone:[30],continent:\"EU\",capital:\"Athens\",currency:[\"EUR\"],languages:[\"el\"]},GS:{name:\"South Georgia and the South Sandwich Islands\",native:\"South Georgia\",phone:[500],continent:\"AN\",capital:\"King Edward Point\",currency:[\"GBP\"],languages:[\"en\"]},GT:{name:\"Guatemala\",native:\"Guatemala\",phone:[502],continent:\"NA\",capital:\"Guatemala City\",currency:[\"GTQ\"],languages:[\"es\"]},GU:{name:\"Guam\",native:\"Guam\",phone:[1671],continent:\"OC\",capital:\"Hag\\xE5t\\xF1a\",currency:[\"USD\"],languages:[\"en\",\"ch\",\"es\"]},GW:{name:\"Guinea-Bissau\",native:\"Guin\\xE9-Bissau\",phone:[245],continent:\"AF\",capital:\"Bissau\",currency:[\"XOF\"],languages:[\"pt\"]},GY:{name:\"Guyana\",native:\"Guyana\",phone:[592],continent:\"SA\",capital:\"Georgetown\",currency:[\"GYD\"],languages:[\"en\"]},HK:{name:\"Hong Kong\",native:\"\\u9999\\u6E2F\",phone:[852],continent:\"AS\",capital:\"City of Victoria\",currency:[\"HKD\"],languages:[\"zh\",\"en\"]},HM:{name:\"Heard Island and McDonald Islands\",native:\"Heard Island and McDonald Islands\",phone:[61],continent:\"AN\",capital:\"\",currency:[\"AUD\"],languages:[\"en\"]},HN:{name:\"Honduras\",native:\"Honduras\",phone:[504],continent:\"NA\",capital:\"Tegucigalpa\",currency:[\"HNL\"],languages:[\"es\"]},HR:{name:\"Croatia\",native:\"Hrvatska\",phone:[385],continent:\"EU\",capital:\"Zagreb\",currency:[\"EUR\"],languages:[\"hr\"]},HT:{name:\"Haiti\",native:\"Ha\\xEFti\",phone:[509],continent:\"NA\",capital:\"Port-au-Prince\",currency:[\"HTG\",\"USD\"],languages:[\"fr\",\"ht\"]},HU:{name:\"Hungary\",native:\"Magyarorsz\\xE1g\",phone:[36],continent:\"EU\",capital:\"Budapest\",currency:[\"HUF\"],languages:[\"hu\"]},ID:{name:\"Indonesia\",native:\"Indonesia\",phone:[62],continent:\"AS\",capital:\"Jakarta\",currency:[\"IDR\"],languages:[\"id\"]},IE:{name:\"Ireland\",native:\"\\xC9ire\",phone:[353],continent:\"EU\",capital:\"Dublin\",currency:[\"EUR\"],languages:[\"ga\",\"en\"]},IL:{name:\"Israel\",native:\"\\u05D9\\u05B4\\u05E9\\u05B0\\u05C2\\u05E8\\u05B8\\u05D0\\u05B5\\u05DC\",phone:[972],continent:\"AS\",capital:\"Jerusalem\",currency:[\"ILS\"],languages:[\"he\",\"ar\"]},IM:{name:\"Isle of Man\",native:\"Isle of Man\",phone:[44],continent:\"EU\",capital:\"Douglas\",currency:[\"GBP\"],languages:[\"en\",\"gv\"]},IN:{name:\"India\",native:\"\\u092D\\u093E\\u0930\\u0924\",phone:[91],continent:\"AS\",capital:\"New Delhi\",currency:[\"INR\"],languages:[\"hi\",\"en\"]},IO:{name:\"British Indian Ocean Territory\",native:\"British Indian Ocean Territory\",phone:[246],continent:\"AS\",capital:\"Diego Garcia\",currency:[\"USD\"],languages:[\"en\"]},IQ:{name:\"Iraq\",native:\"\\u0627\\u0644\\u0639\\u0631\\u0627\\u0642\",phone:[964],continent:\"AS\",capital:\"Baghdad\",currency:[\"IQD\"],languages:[\"ar\",\"ku\"]},IR:{name:\"Iran\",native:\"\\u0627\\u06CC\\u0631\\u0627\\u0646\",phone:[98],continent:\"AS\",capital:\"Tehran\",currency:[\"IRR\"],languages:[\"fa\"]},IS:{name:\"Iceland\",native:\"\\xCDsland\",phone:[354],continent:\"EU\",capital:\"Reykjavik\",currency:[\"ISK\"],languages:[\"is\"]},IT:{name:\"Italy\",native:\"Italia\",phone:[39],continent:\"EU\",capital:\"Rome\",currency:[\"EUR\"],languages:[\"it\"]},JE:{name:\"Jersey\",native:\"Jersey\",phone:[44],continent:\"EU\",capital:\"Saint Helier\",currency:[\"GBP\"],languages:[\"en\",\"fr\"]},JM:{name:\"Jamaica\",native:\"Jamaica\",phone:[1876],continent:\"NA\",capital:\"Kingston\",currency:[\"JMD\"],languages:[\"en\"]},JO:{name:\"Jordan\",native:\"\\u0627\\u0644\\u0623\\u0631\\u062F\\u0646\",phone:[962],continent:\"AS\",capital:\"Amman\",currency:[\"JOD\"],languages:[\"ar\"]},JP:{name:\"Japan\",native:\"\\u65E5\\u672C\",phone:[81],continent:\"AS\",capital:\"Tokyo\",currency:[\"JPY\"],languages:[\"ja\"]},KE:{name:\"Kenya\",native:\"Kenya\",phone:[254],continent:\"AF\",capital:\"Nairobi\",currency:[\"KES\"],languages:[\"en\",\"sw\"]},KG:{name:\"Kyrgyzstan\",native:\"\\u041A\\u044B\\u0440\\u0433\\u044B\\u0437\\u0441\\u0442\\u0430\\u043D\",phone:[996],continent:\"AS\",capital:\"Bishkek\",currency:[\"KGS\"],languages:[\"ky\",\"ru\"]},KH:{name:\"Cambodia\",native:\"K\\xE2mp\\u016Dch\\xE9a\",phone:[855],continent:\"AS\",capital:\"Phnom Penh\",currency:[\"KHR\"],languages:[\"km\"]},KI:{name:\"Kiribati\",native:\"Kiribati\",phone:[686],continent:\"OC\",capital:\"South Tarawa\",currency:[\"AUD\"],languages:[\"en\"]},KM:{name:\"Comoros\",native:\"Komori\",phone:[269],continent:\"AF\",capital:\"Moroni\",currency:[\"KMF\"],languages:[\"ar\",\"fr\"]},KN:{name:\"Saint Kitts and Nevis\",native:\"Saint Kitts and Nevis\",phone:[1869],continent:\"NA\",capital:\"Basseterre\",currency:[\"XCD\"],languages:[\"en\"]},KP:{name:\"North Korea\",native:\"\\uBD81\\uD55C\",phone:[850],continent:\"AS\",capital:\"Pyongyang\",currency:[\"KPW\"],languages:[\"ko\"]},KR:{name:\"South Korea\",native:\"\\uB300\\uD55C\\uBBFC\\uAD6D\",phone:[82],continent:\"AS\",capital:\"Seoul\",currency:[\"KRW\"],languages:[\"ko\"]},KW:{name:\"Kuwait\",native:\"\\u0627\\u0644\\u0643\\u0648\\u064A\\u062A\",phone:[965],continent:\"AS\",capital:\"Kuwait City\",currency:[\"KWD\"],languages:[\"ar\"]},KY:{name:\"Cayman Islands\",native:\"Cayman Islands\",phone:[1345],continent:\"NA\",capital:\"George Town\",currency:[\"KYD\"],languages:[\"en\"]},KZ:{name:\"Kazakhstan\",native:\"\\u049A\\u0430\\u0437\\u0430\\u049B\\u0441\\u0442\\u0430\\u043D\",phone:[76,77],continent:\"AS\",continents:[\"AS\",\"EU\"],capital:\"Astana\",currency:[\"KZT\"],languages:[\"kk\",\"ru\"]},LA:{name:\"Laos\",native:\"\\u0EAA\\u0E9B\\u0E9B\\u0EA5\\u0EB2\\u0EA7\",phone:[856],continent:\"AS\",capital:\"Vientiane\",currency:[\"LAK\"],languages:[\"lo\"]},LB:{name:\"Lebanon\",native:\"\\u0644\\u0628\\u0646\\u0627\\u0646\",phone:[961],continent:\"AS\",capital:\"Beirut\",currency:[\"LBP\"],languages:[\"ar\",\"fr\"]},LC:{name:\"Saint Lucia\",native:\"Saint Lucia\",phone:[1758],continent:\"NA\",capital:\"Castries\",currency:[\"XCD\"],languages:[\"en\"]},LI:{name:\"Liechtenstein\",native:\"Liechtenstein\",phone:[423],continent:\"EU\",capital:\"Vaduz\",currency:[\"CHF\"],languages:[\"de\"]},LK:{name:\"Sri Lanka\",native:\"\\u015Br\\u012B la\\u1E43k\\u0101va\",phone:[94],continent:\"AS\",capital:\"Colombo\",currency:[\"LKR\"],languages:[\"si\",\"ta\"]},LR:{name:\"Liberia\",native:\"Liberia\",phone:[231],continent:\"AF\",capital:\"Monrovia\",currency:[\"LRD\"],languages:[\"en\"]},LS:{name:\"Lesotho\",native:\"Lesotho\",phone:[266],continent:\"AF\",capital:\"Maseru\",currency:[\"LSL\",\"ZAR\"],languages:[\"en\",\"st\"]},LT:{name:\"Lithuania\",native:\"Lietuva\",phone:[370],continent:\"EU\",capital:\"Vilnius\",currency:[\"EUR\"],languages:[\"lt\"]},LU:{name:\"Luxembourg\",native:\"Luxembourg\",phone:[352],continent:\"EU\",capital:\"Luxembourg\",currency:[\"EUR\"],languages:[\"fr\",\"de\",\"lb\"]},LV:{name:\"Latvia\",native:\"Latvija\",phone:[371],continent:\"EU\",capital:\"Riga\",currency:[\"EUR\"],languages:[\"lv\"]},LY:{name:\"Libya\",native:\"\\u200F\\u0644\\u064A\\u0628\\u064A\\u0627\",phone:[218],continent:\"AF\",capital:\"Tripoli\",currency:[\"LYD\"],languages:[\"ar\"]},MA:{name:\"Morocco\",native:\"\\u0627\\u0644\\u0645\\u063A\\u0631\\u0628\",phone:[212],continent:\"AF\",capital:\"Rabat\",currency:[\"MAD\"],languages:[\"ar\"]},MC:{name:\"Monaco\",native:\"Monaco\",phone:[377],continent:\"EU\",capital:\"Monaco\",currency:[\"EUR\"],languages:[\"fr\"]},MD:{name:\"Moldova\",native:\"Moldova\",phone:[373],continent:\"EU\",capital:\"Chi\\u0219in\\u0103u\",currency:[\"MDL\"],languages:[\"ro\"]},ME:{name:\"Montenegro\",native:\"\\u0426\\u0440\\u043D\\u0430 \\u0413\\u043E\\u0440\\u0430\",phone:[382],continent:\"EU\",capital:\"Podgorica\",currency:[\"EUR\"],languages:[\"sr\",\"bs\",\"sq\",\"hr\"]},MF:{name:\"Saint Martin\",native:\"Saint-Martin\",phone:[590],continent:\"NA\",capital:\"Marigot\",currency:[\"EUR\"],languages:[\"en\",\"fr\",\"nl\"]},MG:{name:\"Madagascar\",native:\"Madagasikara\",phone:[261],continent:\"AF\",capital:\"Antananarivo\",currency:[\"MGA\"],languages:[\"fr\",\"mg\"]},MH:{name:\"Marshall Islands\",native:\"M\\u0327aje\\u013C\",phone:[692],continent:\"OC\",capital:\"Majuro\",currency:[\"USD\"],languages:[\"en\",\"mh\"]},MK:{name:\"North Macedonia\",native:\"\\u0421\\u0435\\u0432\\u0435\\u0440\\u043D\\u0430 \\u041C\\u0430\\u043A\\u0435\\u0434\\u043E\\u043D\\u0438\\u0458\\u0430\",phone:[389],continent:\"EU\",capital:\"Skopje\",currency:[\"MKD\"],languages:[\"mk\"]},ML:{name:\"Mali\",native:\"Mali\",phone:[223],continent:\"AF\",capital:\"Bamako\",currency:[\"XOF\"],languages:[\"fr\"]},MM:{name:\"Myanmar (Burma)\",native:\"\\u1019\\u103C\\u1014\\u103A\\u1019\\u102C\",phone:[95],continent:\"AS\",capital:\"Naypyidaw\",currency:[\"MMK\"],languages:[\"my\"]},MN:{name:\"Mongolia\",native:\"\\u041C\\u043E\\u043D\\u0433\\u043E\\u043B \\u0443\\u043B\\u0441\",phone:[976],continent:\"AS\",capital:\"Ulan Bator\",currency:[\"MNT\"],languages:[\"mn\"]},MO:{name:\"Macao\",native:\"\\u6FB3\\u9580\",phone:[853],continent:\"AS\",capital:\"\",currency:[\"MOP\"],languages:[\"zh\",\"pt\"]},MP:{name:\"Northern Mariana Islands\",native:\"Northern Mariana Islands\",phone:[1670],continent:\"OC\",capital:\"Saipan\",currency:[\"USD\"],languages:[\"en\",\"ch\"]},MQ:{name:\"Martinique\",native:\"Martinique\",phone:[596],continent:\"NA\",capital:\"Fort-de-France\",currency:[\"EUR\"],languages:[\"fr\"]},MR:{name:\"Mauritania\",native:\"\\u0645\\u0648\\u0631\\u064A\\u062A\\u0627\\u0646\\u064A\\u0627\",phone:[222],continent:\"AF\",capital:\"Nouakchott\",currency:[\"MRU\"],languages:[\"ar\"]},MS:{name:\"Montserrat\",native:\"Montserrat\",phone:[1664],continent:\"NA\",capital:\"Plymouth\",currency:[\"XCD\"],languages:[\"en\"]},MT:{name:\"Malta\",native:\"Malta\",phone:[356],continent:\"EU\",capital:\"Valletta\",currency:[\"EUR\"],languages:[\"mt\",\"en\"]},MU:{name:\"Mauritius\",native:\"Maurice\",phone:[230],continent:\"AF\",capital:\"Port Louis\",currency:[\"MUR\"],languages:[\"en\"]},MV:{name:\"Maldives\",native:\"Maldives\",phone:[960],continent:\"AS\",capital:\"Mal\\xE9\",currency:[\"MVR\"],languages:[\"dv\"]},MW:{name:\"Malawi\",native:\"Malawi\",phone:[265],continent:\"AF\",capital:\"Lilongwe\",currency:[\"MWK\"],languages:[\"en\",\"ny\"]},MX:{name:\"Mexico\",native:\"M\\xE9xico\",phone:[52],continent:\"NA\",capital:\"Mexico City\",currency:[\"MXN\"],languages:[\"es\"]},MY:{name:\"Malaysia\",native:\"Malaysia\",phone:[60],continent:\"AS\",capital:\"Kuala Lumpur\",currency:[\"MYR\"],languages:[\"ms\"]},MZ:{name:\"Mozambique\",native:\"Mo\\xE7ambique\",phone:[258],continent:\"AF\",capital:\"Maputo\",currency:[\"MZN\"],languages:[\"pt\"]},NA:{name:\"Namibia\",native:\"Namibia\",phone:[264],continent:\"AF\",capital:\"Windhoek\",currency:[\"NAD\",\"ZAR\"],languages:[\"en\",\"af\"]},NC:{name:\"New Caledonia\",native:\"Nouvelle-Cal\\xE9donie\",phone:[687],continent:\"OC\",capital:\"Noum\\xE9a\",currency:[\"XPF\"],languages:[\"fr\"]},NE:{name:\"Niger\",native:\"Niger\",phone:[227],continent:\"AF\",capital:\"Niamey\",currency:[\"XOF\"],languages:[\"fr\"]},NF:{name:\"Norfolk Island\",native:\"Norfolk Island\",phone:[672],continent:\"OC\",capital:\"Kingston\",currency:[\"AUD\"],languages:[\"en\"]},NG:{name:\"Nigeria\",native:\"Nigeria\",phone:[234],continent:\"AF\",capital:\"Abuja\",currency:[\"NGN\"],languages:[\"en\"]},NI:{name:\"Nicaragua\",native:\"Nicaragua\",phone:[505],continent:\"NA\",capital:\"Managua\",currency:[\"NIO\"],languages:[\"es\"]},NL:{name:\"Netherlands\",native:\"Nederland\",phone:[31],continent:\"EU\",capital:\"Amsterdam\",currency:[\"EUR\"],languages:[\"nl\"]},NO:{name:\"Norway\",native:\"Norge\",phone:[47],continent:\"EU\",capital:\"Oslo\",currency:[\"NOK\"],languages:[\"no\",\"nb\",\"nn\"]},NP:{name:\"Nepal\",native:\"\\u0928\\u0947\\u092A\\u093E\\u0932\",phone:[977],continent:\"AS\",capital:\"Kathmandu\",currency:[\"NPR\"],languages:[\"ne\"]},NR:{name:\"Nauru\",native:\"Nauru\",phone:[674],continent:\"OC\",capital:\"Yaren\",currency:[\"AUD\"],languages:[\"en\",\"na\"]},NU:{name:\"Niue\",native:\"Niu\\u0113\",phone:[683],continent:\"OC\",capital:\"Alofi\",currency:[\"NZD\"],languages:[\"en\"]},NZ:{name:\"New Zealand\",native:\"New Zealand\",phone:[64],continent:\"OC\",capital:\"Wellington\",currency:[\"NZD\"],languages:[\"en\",\"mi\"]},OM:{name:\"Oman\",native:\"\\u0639\\u0645\\u0627\\u0646\",phone:[968],continent:\"AS\",capital:\"Muscat\",currency:[\"OMR\"],languages:[\"ar\"]},PA:{name:\"Panama\",native:\"Panam\\xE1\",phone:[507],continent:\"NA\",capital:\"Panama City\",currency:[\"PAB\",\"USD\"],languages:[\"es\"]},PE:{name:\"Peru\",native:\"Per\\xFA\",phone:[51],continent:\"SA\",capital:\"Lima\",currency:[\"PEN\"],languages:[\"es\"]},PF:{name:\"French Polynesia\",native:\"Polyn\\xE9sie fran\\xE7aise\",phone:[689],continent:\"OC\",capital:\"Papeet\\u0113\",currency:[\"XPF\"],languages:[\"fr\"]},PG:{name:\"Papua New Guinea\",native:\"Papua Niugini\",phone:[675],continent:\"OC\",capital:\"Port Moresby\",currency:[\"PGK\"],languages:[\"en\"]},PH:{name:\"Philippines\",native:\"Pilipinas\",phone:[63],continent:\"AS\",capital:\"Manila\",currency:[\"PHP\"],languages:[\"en\"]},PK:{name:\"Pakistan\",native:\"Pakistan\",phone:[92],continent:\"AS\",capital:\"Islamabad\",currency:[\"PKR\"],languages:[\"en\",\"ur\"]},PL:{name:\"Poland\",native:\"Polska\",phone:[48],continent:\"EU\",capital:\"Warsaw\",currency:[\"PLN\"],languages:[\"pl\"]},PM:{name:\"Saint Pierre and Miquelon\",native:\"Saint-Pierre-et-Miquelon\",phone:[508],continent:\"NA\",capital:\"Saint-Pierre\",currency:[\"EUR\"],languages:[\"fr\"]},PN:{name:\"Pitcairn Islands\",native:\"Pitcairn Islands\",phone:[64],continent:\"OC\",capital:\"Adamstown\",currency:[\"NZD\"],languages:[\"en\"]},PR:{name:\"Puerto Rico\",native:\"Puerto Rico\",phone:[1787,1939],continent:\"NA\",capital:\"San Juan\",currency:[\"USD\"],languages:[\"es\",\"en\"]},PS:{name:\"Palestine\",native:\"\\u0641\\u0644\\u0633\\u0637\\u064A\\u0646\",phone:[970],continent:\"AS\",capital:\"Ramallah\",currency:[\"ILS\"],languages:[\"ar\"]},PT:{name:\"Portugal\",native:\"Portugal\",phone:[351],continent:\"EU\",capital:\"Lisbon\",currency:[\"EUR\"],languages:[\"pt\"]},PW:{name:\"Palau\",native:\"Palau\",phone:[680],continent:\"OC\",capital:\"Ngerulmud\",currency:[\"USD\"],languages:[\"en\"]},PY:{name:\"Paraguay\",native:\"Paraguay\",phone:[595],continent:\"SA\",capital:\"Asunci\\xF3n\",currency:[\"PYG\"],languages:[\"es\",\"gn\"]},QA:{name:\"Qatar\",native:\"\\u0642\\u0637\\u0631\",phone:[974],continent:\"AS\",capital:\"Doha\",currency:[\"QAR\"],languages:[\"ar\"]},RE:{name:\"Reunion\",native:\"La R\\xE9union\",phone:[262],continent:\"AF\",capital:\"Saint-Denis\",currency:[\"EUR\"],languages:[\"fr\"]},RO:{name:\"Romania\",native:\"Rom\\xE2nia\",phone:[40],continent:\"EU\",capital:\"Bucharest\",currency:[\"RON\"],languages:[\"ro\"]},RS:{name:\"Serbia\",native:\"\\u0421\\u0440\\u0431\\u0438\\u0458\\u0430\",phone:[381],continent:\"EU\",capital:\"Belgrade\",currency:[\"RSD\"],languages:[\"sr\"]},RU:{name:\"Russia\",native:\"\\u0420\\u043E\\u0441\\u0441\\u0438\\u044F\",phone:[7],continent:\"AS\",continents:[\"AS\",\"EU\"],capital:\"Moscow\",currency:[\"RUB\"],languages:[\"ru\"]},RW:{name:\"Rwanda\",native:\"Rwanda\",phone:[250],continent:\"AF\",capital:\"Kigali\",currency:[\"RWF\"],languages:[\"rw\",\"en\",\"fr\"]},SA:{name:\"Saudi Arabia\",native:\"\\u0627\\u0644\\u0639\\u0631\\u0628\\u064A\\u0629 \\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0629\",phone:[966],continent:\"AS\",capital:\"Riyadh\",currency:[\"SAR\"],languages:[\"ar\"]},SB:{name:\"Solomon Islands\",native:\"Solomon Islands\",phone:[677],continent:\"OC\",capital:\"Honiara\",currency:[\"SBD\"],languages:[\"en\"]},SC:{name:\"Seychelles\",native:\"Seychelles\",phone:[248],continent:\"AF\",capital:\"Victoria\",currency:[\"SCR\"],languages:[\"fr\",\"en\"]},SD:{name:\"Sudan\",native:\"\\u0627\\u0644\\u0633\\u0648\\u062F\\u0627\\u0646\",phone:[249],continent:\"AF\",capital:\"Khartoum\",currency:[\"SDG\"],languages:[\"ar\",\"en\"]},SE:{name:\"Sweden\",native:\"Sverige\",phone:[46],continent:\"EU\",capital:\"Stockholm\",currency:[\"SEK\"],languages:[\"sv\"]},SG:{name:\"Singapore\",native:\"Singapore\",phone:[65],continent:\"AS\",capital:\"Singapore\",currency:[\"SGD\"],languages:[\"en\",\"ms\",\"ta\",\"zh\"]},SH:{name:\"Saint Helena\",native:\"Saint Helena\",phone:[290],continent:\"AF\",capital:\"Jamestown\",currency:[\"SHP\"],languages:[\"en\"]},SI:{name:\"Slovenia\",native:\"Slovenija\",phone:[386],continent:\"EU\",capital:\"Ljubljana\",currency:[\"EUR\"],languages:[\"sl\"]},SJ:{name:\"Svalbard and Jan Mayen\",native:\"Svalbard og Jan Mayen\",phone:[4779],continent:\"EU\",capital:\"Longyearbyen\",currency:[\"NOK\"],languages:[\"no\"]},SK:{name:\"Slovakia\",native:\"Slovensko\",phone:[421],continent:\"EU\",capital:\"Bratislava\",currency:[\"EUR\"],languages:[\"sk\"]},SL:{name:\"Sierra Leone\",native:\"Sierra Leone\",phone:[232],continent:\"AF\",capital:\"Freetown\",currency:[\"SLL\"],languages:[\"en\"]},SM:{name:\"San Marino\",native:\"San Marino\",phone:[378],continent:\"EU\",capital:\"City of San Marino\",currency:[\"EUR\"],languages:[\"it\"]},SN:{name:\"Senegal\",native:\"S\\xE9n\\xE9gal\",phone:[221],continent:\"AF\",capital:\"Dakar\",currency:[\"XOF\"],languages:[\"fr\"]},SO:{name:\"Somalia\",native:\"Soomaaliya\",phone:[252],continent:\"AF\",capital:\"Mogadishu\",currency:[\"SOS\"],languages:[\"so\",\"ar\"]},SR:{name:\"Suriname\",native:\"Suriname\",phone:[597],continent:\"SA\",capital:\"Paramaribo\",currency:[\"SRD\"],languages:[\"nl\"]},SS:{name:\"South Sudan\",native:\"South Sudan\",phone:[211],continent:\"AF\",capital:\"Juba\",currency:[\"SSP\"],languages:[\"en\"]},ST:{name:\"Sao Tome and Principe\",native:\"S\\xE3o Tom\\xE9 e Pr\\xEDncipe\",phone:[239],continent:\"AF\",capital:\"S\\xE3o Tom\\xE9\",currency:[\"STN\"],languages:[\"pt\"]},SV:{name:\"El Salvador\",native:\"El Salvador\",phone:[503],continent:\"NA\",capital:\"San Salvador\",currency:[\"SVC\",\"USD\"],languages:[\"es\"]},SX:{name:\"Sint Maarten\",native:\"Sint Maarten\",phone:[1721],continent:\"NA\",capital:\"Philipsburg\",currency:[\"ANG\"],languages:[\"nl\",\"en\"]},SY:{name:\"Syria\",native:\"\\u0633\\u0648\\u0631\\u064A\\u0627\",phone:[963],continent:\"AS\",capital:\"Damascus\",currency:[\"SYP\"],languages:[\"ar\"]},SZ:{name:\"Eswatini\",native:\"Eswatini\",phone:[268],continent:\"AF\",capital:\"Lobamba\",currency:[\"SZL\"],languages:[\"en\",\"ss\"]},TC:{name:\"Turks and Caicos Islands\",native:\"Turks and Caicos Islands\",phone:[1649],continent:\"NA\",capital:\"Cockburn Town\",currency:[\"USD\"],languages:[\"en\"]},TD:{name:\"Chad\",native:\"Tchad\",phone:[235],continent:\"AF\",capital:\"N'Djamena\",currency:[\"XAF\"],languages:[\"fr\",\"ar\"]},TF:{name:\"French Southern Territories\",native:\"Territoire des Terres australes et antarctiques fr\",phone:[262],continent:\"AN\",capital:\"Port-aux-Fran\\xE7ais\",currency:[\"EUR\"],languages:[\"fr\"]},TG:{name:\"Togo\",native:\"Togo\",phone:[228],continent:\"AF\",capital:\"Lom\\xE9\",currency:[\"XOF\"],languages:[\"fr\"]},TH:{name:\"Thailand\",native:\"\\u0E1B\\u0E23\\u0E30\\u0E40\\u0E17\\u0E28\\u0E44\\u0E17\\u0E22\",phone:[66],continent:\"AS\",capital:\"Bangkok\",currency:[\"THB\"],languages:[\"th\"]},TJ:{name:\"Tajikistan\",native:\"\\u0422\\u043E\\u04B7\\u0438\\u043A\\u0438\\u0441\\u0442\\u043E\\u043D\",phone:[992],continent:\"AS\",capital:\"Dushanbe\",currency:[\"TJS\"],languages:[\"tg\",\"ru\"]},TK:{name:\"Tokelau\",native:\"Tokelau\",phone:[690],continent:\"OC\",capital:\"Fakaofo\",currency:[\"NZD\"],languages:[\"en\"]},TL:{name:\"East Timor\",native:\"Timor-Leste\",phone:[670],continent:\"OC\",capital:\"Dili\",currency:[\"USD\"],languages:[\"pt\"]},TM:{name:\"Turkmenistan\",native:\"T\\xFCrkmenistan\",phone:[993],continent:\"AS\",capital:\"Ashgabat\",currency:[\"TMT\"],languages:[\"tk\",\"ru\"]},TN:{name:\"Tunisia\",native:\"\\u062A\\u0648\\u0646\\u0633\",phone:[216],continent:\"AF\",capital:\"Tunis\",currency:[\"TND\"],languages:[\"ar\"]},TO:{name:\"Tonga\",native:\"Tonga\",phone:[676],continent:\"OC\",capital:\"Nuku'alofa\",currency:[\"TOP\"],languages:[\"en\",\"to\"]},TR:{name:\"Turkey\",native:\"T\\xFCrkiye\",phone:[90],continent:\"AS\",continents:[\"AS\",\"EU\"],capital:\"Ankara\",currency:[\"TRY\"],languages:[\"tr\"]},TT:{name:\"Trinidad and Tobago\",native:\"Trinidad and Tobago\",phone:[1868],continent:\"NA\",capital:\"Port of Spain\",currency:[\"TTD\"],languages:[\"en\"]},TV:{name:\"Tuvalu\",native:\"Tuvalu\",phone:[688],continent:\"OC\",capital:\"Funafuti\",currency:[\"AUD\"],languages:[\"en\"]},TW:{name:\"Taiwan\",native:\"\\u81FA\\u7063\",phone:[886],continent:\"AS\",capital:\"Taipei\",currency:[\"TWD\"],languages:[\"zh\"]},TZ:{name:\"Tanzania\",native:\"Tanzania\",phone:[255],continent:\"AF\",capital:\"Dodoma\",currency:[\"TZS\"],languages:[\"sw\",\"en\"]},UA:{name:\"Ukraine\",native:\"\\u0423\\u043A\\u0440\\u0430\\u0457\\u043D\\u0430\",phone:[380],continent:\"EU\",capital:\"Kyiv\",currency:[\"UAH\"],languages:[\"uk\"]},UG:{name:\"Uganda\",native:\"Uganda\",phone:[256],continent:\"AF\",capital:\"Kampala\",currency:[\"UGX\"],languages:[\"en\",\"sw\"]},UM:{name:\"U.S. Minor Outlying Islands\",native:\"United States Minor Outlying Islands\",phone:[1],continent:\"OC\",capital:\"\",currency:[\"USD\"],languages:[\"en\"]},US:{name:\"United States\",native:\"United States\",phone:[1],continent:\"NA\",capital:\"Washington D.C.\",currency:[\"USD\",\"USN\",\"USS\"],languages:[\"en\"]},UY:{name:\"Uruguay\",native:\"Uruguay\",phone:[598],continent:\"SA\",capital:\"Montevideo\",currency:[\"UYI\",\"UYU\"],languages:[\"es\"]},UZ:{name:\"Uzbekistan\",native:\"O'zbekiston\",phone:[998],continent:\"AS\",capital:\"Tashkent\",currency:[\"UZS\"],languages:[\"uz\",\"ru\"]},VA:{name:\"Vatican City\",native:\"Vaticano\",phone:[379],continent:\"EU\",capital:\"Vatican City\",currency:[\"EUR\"],languages:[\"it\",\"la\"]},VC:{name:\"Saint Vincent and the Grenadines\",native:\"Saint Vincent and the Grenadines\",phone:[1784],continent:\"NA\",capital:\"Kingstown\",currency:[\"XCD\"],languages:[\"en\"]},VE:{name:\"Venezuela\",native:\"Venezuela\",phone:[58],continent:\"SA\",capital:\"Caracas\",currency:[\"VES\"],languages:[\"es\"]},VG:{name:\"British Virgin Islands\",native:\"British Virgin Islands\",phone:[1284],continent:\"NA\",capital:\"Road Town\",currency:[\"USD\"],languages:[\"en\"]},VI:{name:\"U.S. Virgin Islands\",native:\"United States Virgin Islands\",phone:[1340],continent:\"NA\",capital:\"Charlotte Amalie\",currency:[\"USD\"],languages:[\"en\"]},VN:{name:\"Vietnam\",native:\"Vi\\u1EC7t Nam\",phone:[84],continent:\"AS\",capital:\"Hanoi\",currency:[\"VND\"],languages:[\"vi\"]},VU:{name:\"Vanuatu\",native:\"Vanuatu\",phone:[678],continent:\"OC\",capital:\"Port Vila\",currency:[\"VUV\"],languages:[\"bi\",\"en\",\"fr\"]},WF:{name:\"Wallis and Futuna\",native:\"Wallis et Futuna\",phone:[681],continent:\"OC\",capital:\"Mata-Utu\",currency:[\"XPF\"],languages:[\"fr\"]},WS:{name:\"Samoa\",native:\"Samoa\",phone:[685],continent:\"OC\",capital:\"Apia\",currency:[\"WST\"],languages:[\"sm\",\"en\"]},XK:{name:\"Kosovo\",native:\"Republika e Kosov\\xEBs\",phone:[377,381,383,386],continent:\"EU\",capital:\"Pristina\",currency:[\"EUR\"],languages:[\"sq\",\"sr\"]},YE:{name:\"Yemen\",native:\"\\u0627\\u0644\\u064A\\u064E\\u0645\\u064E\\u0646\",phone:[967],continent:\"AS\",capital:\"Sana'a\",currency:[\"YER\"],languages:[\"ar\"]},YT:{name:\"Mayotte\",native:\"Mayotte\",phone:[262],continent:\"AF\",capital:\"Mamoudzou\",currency:[\"EUR\"],languages:[\"fr\"]},ZA:{name:\"South Africa\",native:\"South Africa\",phone:[27],continent:\"AF\",capital:\"Pretoria\",currency:[\"ZAR\"],languages:[\"af\",\"en\",\"nr\",\"st\",\"ss\",\"tn\",\"ts\",\"ve\",\"xh\",\"zu\"]},ZM:{name:\"Zambia\",native:\"Zambia\",phone:[260],continent:\"AF\",capital:\"Lusaka\",currency:[\"ZMW\"],languages:[\"en\"]},ZW:{name:\"Zimbabwe\",native:\"Zimbabwe\",phone:[263],continent:\"AF\",capital:\"Harare\",currency:[\"USD\",\"ZAR\",\"BWP\",\"GBP\",\"AUD\",\"CNY\",\"INR\",\"JPY\"],languages:[\"en\",\"sn\",\"nd\"]}};var l={aa:{name:\"Afar\",native:\"Afar\"},ab:{name:\"Abkhazian\",native:\"\\u0410\\u04A7\\u0441\\u0443\\u0430\"},af:{name:\"Afrikaans\",native:\"Afrikaans\"},ak:{name:\"Akan\",native:\"Akana\"},am:{name:\"Amharic\",native:\"\\u12A0\\u121B\\u122D\\u129B\"},an:{name:\"Aragonese\",native:\"Aragon\\xE9s\"},ar:{name:\"Arabic\",native:\"\\u0627\\u0644\\u0639\\u0631\\u0628\\u064A\\u0629\",rtl:1},as:{name:\"Assamese\",native:\"\\u0985\\u09B8\\u09AE\\u09C0\\u09AF\\u09BC\\u09BE\"},av:{name:\"Avar\",native:\"\\u0410\\u0432\\u0430\\u0440\"},ay:{name:\"Aymara\",native:\"Aymar\"},az:{name:\"Azerbaijani\",native:\"Az\\u0259rbaycanca / \\u0622\\u0630\\u0631\\u0628\\u0627\\u064A\\u062C\\u0627\\u0646\"},ba:{name:\"Bashkir\",native:\"\\u0411\\u0430\\u0448\\u04A1\\u043E\\u0440\\u0442\"},be:{name:\"Belarusian\",native:\"\\u0411\\u0435\\u043B\\u0430\\u0440\\u0443\\u0441\\u043A\\u0430\\u044F\"},bg:{name:\"Bulgarian\",native:\"\\u0411\\u044A\\u043B\\u0433\\u0430\\u0440\\u0441\\u043A\\u0438\"},bh:{name:\"Bihari\",native:\"\\u092D\\u094B\\u091C\\u092A\\u0941\\u0930\\u0940\"},bi:{name:\"Bislama\",native:\"Bislama\"},bm:{name:\"Bambara\",native:\"Bamanankan\"},bn:{name:\"Bengali\",native:\"\\u09AC\\u09BE\\u0982\\u09B2\\u09BE\"},bo:{name:\"Tibetan\",native:\"\\u0F56\\u0F7C\\u0F51\\u0F0B\\u0F61\\u0F72\\u0F42 / Bod skad\"},br:{name:\"Breton\",native:\"Brezhoneg\"},bs:{name:\"Bosnian\",native:\"Bosanski\"},ca:{name:\"Catalan\",native:\"Catal\\xE0\"},ce:{name:\"Chechen\",native:\"\\u041D\\u043E\\u0445\\u0447\\u0438\\u0439\\u043D\"},ch:{name:\"Chamorro\",native:\"Chamoru\"},co:{name:\"Corsican\",native:\"Corsu\"},cr:{name:\"Cree\",native:\"Nehiyaw\"},cs:{name:\"Czech\",native:\"\\u010Ce\\u0161tina\"},cu:{name:\"Old Church Slavonic / Old Bulgarian\",native:\"\\u0441\\u043B\\u043E\\u0432\\u0463\\u043D\\u044C\\u0441\\u043A\\u044A / slov\\u011Bn\\u012Dsk\\u016D\"},cv:{name:\"Chuvash\",native:\"\\u0427\\u0103\\u0432\\u0430\\u0448\"},cy:{name:\"Welsh\",native:\"Cymraeg\"},da:{name:\"Danish\",native:\"Dansk\"},de:{name:\"German\",native:\"Deutsch\"},dv:{name:\"Divehi\",native:\"\\u078B\\u07A8\\u0788\\u07AC\\u0780\\u07A8\\u0784\\u07A6\\u0790\\u07B0\",rtl:1},dz:{name:\"Dzongkha\",native:\"\\u0F47\\u0F7C\\u0F44\\u0F0B\\u0F41\"},ee:{name:\"Ewe\",native:\"\\u0190\\u028B\\u025B\"},el:{name:\"Greek\",native:\"\\u0395\\u03BB\\u03BB\\u03B7\\u03BD\\u03B9\\u03BA\\u03AC\"},en:{name:\"English\",native:\"English\"},eo:{name:\"Esperanto\",native:\"Esperanto\"},es:{name:\"Spanish\",native:\"Espa\\xF1ol\"},et:{name:\"Estonian\",native:\"Eesti\"},eu:{name:\"Basque\",native:\"Euskara\"},fa:{name:\"Persian\",native:\"\\u0641\\u0627\\u0631\\u0633\\u06CC\",rtl:1},ff:{name:\"Peul\",native:\"Fulfulde\"},fi:{name:\"Finnish\",native:\"Suomi\"},fj:{name:\"Fijian\",native:\"Na Vosa Vakaviti\"},fo:{name:\"Faroese\",native:\"F\\xF8royskt\"},fr:{name:\"French\",native:\"Fran\\xE7ais\"},fy:{name:\"West Frisian\",native:\"Frysk\"},ga:{name:\"Irish\",native:\"Gaeilge\"},gd:{name:\"Scottish Gaelic\",native:\"G\\xE0idhlig\"},gl:{name:\"Galician\",native:\"Galego\"},gn:{name:\"Guarani\",native:\"Ava\\xF1e'\\u1EBD\"},gu:{name:\"Gujarati\",native:\"\\u0A97\\u0AC1\\u0A9C\\u0AB0\\u0ABE\\u0AA4\\u0AC0\"},gv:{name:\"Manx\",native:\"Gaelg\"},ha:{name:\"Hausa\",native:\"\\u0647\\u064E\\u0648\\u064F\\u0633\\u064E\",rtl:1},he:{name:\"Hebrew\",native:\"\\u05E2\\u05D1\\u05E8\\u05D9\\u05EA\",rtl:1},hi:{name:\"Hindi\",native:\"\\u0939\\u093F\\u0928\\u094D\\u0926\\u0940\"},ho:{name:\"Hiri Motu\",native:\"Hiri Motu\"},hr:{name:\"Croatian\",native:\"Hrvatski\"},ht:{name:\"Haitian\",native:\"Kr\\xE8yol ayisyen\"},hu:{name:\"Hungarian\",native:\"Magyar\"},hy:{name:\"Armenian\",native:\"\\u0540\\u0561\\u0575\\u0565\\u0580\\u0565\\u0576\"},hz:{name:\"Herero\",native:\"Otsiherero\"},ia:{name:\"Interlingua\",native:\"Interlingua\"},id:{name:\"Indonesian\",native:\"Bahasa Indonesia\"},ie:{name:\"Interlingue\",native:\"Interlingue\"},ig:{name:\"Igbo\",native:\"Igbo\"},ii:{name:\"Sichuan Yi\",native:\"\\uA187\\uA259 / \\u56DB\\u5DDD\\u5F5D\\u8BED\"},ik:{name:\"Inupiak\",native:\"I\\xF1upiak\"},io:{name:\"Ido\",native:\"Ido\"},is:{name:\"Icelandic\",native:\"\\xCDslenska\"},it:{name:\"Italian\",native:\"Italiano\"},iu:{name:\"Inuktitut\",native:\"\\u1403\\u14C4\\u1483\\u144E\\u1450\\u1466\"},ja:{name:\"Japanese\",native:\"\\u65E5\\u672C\\u8A9E\"},jv:{name:\"Javanese\",native:\"Basa Jawa\"},ka:{name:\"Georgian\",native:\"\\u10E5\\u10D0\\u10E0\\u10D7\\u10E3\\u10DA\\u10D8\"},kg:{name:\"Kongo\",native:\"KiKongo\"},ki:{name:\"Kikuyu\",native:\"G\\u0129k\\u0169y\\u0169\"},kj:{name:\"Kuanyama\",native:\"Kuanyama\"},kk:{name:\"Kazakh\",native:\"\\u049A\\u0430\\u0437\\u0430\\u049B\\u0448\\u0430\"},kl:{name:\"Greenlandic\",native:\"Kalaallisut\"},km:{name:\"Cambodian\",native:\"\\u1797\\u17B6\\u179F\\u17B6\\u1781\\u17D2\\u1798\\u17C2\\u179A\"},kn:{name:\"Kannada\",native:\"\\u0C95\\u0CA8\\u0CCD\\u0CA8\\u0CA1\"},ko:{name:\"Korean\",native:\"\\uD55C\\uAD6D\\uC5B4\"},kr:{name:\"Kanuri\",native:\"Kanuri\"},ks:{name:\"Kashmiri\",native:\"\\u0915\\u0936\\u094D\\u092E\\u0940\\u0930\\u0940 / \\u0643\\u0634\\u0645\\u064A\\u0631\\u064A\",rtl:1},ku:{name:\"Kurdish\",native:\"Kurd\\xEE / \\u0643\\u0648\\u0631\\u062F\\u06CC\",rtl:1},kv:{name:\"Komi\",native:\"\\u041A\\u043E\\u043C\\u0438\"},kw:{name:\"Cornish\",native:\"Kernewek\"},ky:{name:\"Kyrgyz\",native:\"\\u041A\\u044B\\u0440\\u0433\\u044B\\u0437\\u0447\\u0430\"},la:{name:\"Latin\",native:\"Latina\"},lb:{name:\"Luxembourgish\",native:\"L\\xEBtzebuergesch\"},lg:{name:\"Ganda\",native:\"Luganda\"},li:{name:\"Limburgian\",native:\"Limburgs\"},ln:{name:\"Lingala\",native:\"Ling\\xE1la\"},lo:{name:\"Laotian\",native:\"\\u0EA5\\u0EB2\\u0EA7 / Pha xa lao\"},lt:{name:\"Lithuanian\",native:\"Lietuvi\\u0173\"},lu:{name:\"Luba-Katanga\",native:\"Tshiluba\"},lv:{name:\"Latvian\",native:\"Latvie\\u0161u\"},mg:{name:\"Malagasy\",native:\"Malagasy\"},mh:{name:\"Marshallese\",native:\"Kajin Majel / Ebon\"},mi:{name:\"Maori\",native:\"M\\u0101ori\"},mk:{name:\"Macedonian\",native:\"\\u041C\\u0430\\u043A\\u0435\\u0434\\u043E\\u043D\\u0441\\u043A\\u0438\"},ml:{name:\"Malayalam\",native:\"\\u0D2E\\u0D32\\u0D2F\\u0D3E\\u0D33\\u0D02\"},mn:{name:\"Mongolian\",native:\"\\u041C\\u043E\\u043D\\u0433\\u043E\\u043B\"},mo:{name:\"Moldovan\",native:\"Moldoveneasc\\u0103\"},mr:{name:\"Marathi\",native:\"\\u092E\\u0930\\u093E\\u0920\\u0940\"},ms:{name:\"Malay\",native:\"Bahasa Melayu\"},mt:{name:\"Maltese\",native:\"bil-Malti\"},my:{name:\"Burmese\",native:\"\\u1019\\u103C\\u1014\\u103A\\u1019\\u102C\\u1005\\u102C\"},na:{name:\"Nauruan\",native:\"Dorerin Naoero\"},nb:{name:\"Norwegian Bokm\\xE5l\",native:\"Norsk bokm\\xE5l\"},nd:{name:\"North Ndebele\",native:\"Sindebele\"},ne:{name:\"Nepali\",native:\"\\u0928\\u0947\\u092A\\u093E\\u0932\\u0940\"},ng:{name:\"Ndonga\",native:\"Oshiwambo\"},nl:{name:\"Dutch\",native:\"Nederlands\"},nn:{name:\"Norwegian Nynorsk\",native:\"Norsk nynorsk\"},no:{name:\"Norwegian\",native:\"Norsk\"},nr:{name:\"South Ndebele\",native:\"isiNdebele\"},nv:{name:\"Navajo\",native:\"Din\\xE9 bizaad\"},ny:{name:\"Chichewa\",native:\"Chi-Chewa\"},oc:{name:\"Occitan\",native:\"Occitan\"},oj:{name:\"Ojibwa\",native:\"\\u140A\\u14C2\\u1511\\u14C8\\u142F\\u14A7\\u140E\\u14D0 / Anishinaabemowin\"},om:{name:\"Oromo\",native:\"Oromoo\"},or:{name:\"Oriya\",native:\"\\u0B13\\u0B21\\u0B3C\\u0B3F\\u0B06\"},os:{name:\"Ossetian / Ossetic\",native:\"\\u0418\\u0440\\u043E\\u043D\\u0430\\u0443\"},pa:{name:\"Panjabi / Punjabi\",native:\"\\u0A2A\\u0A70\\u0A1C\\u0A3E\\u0A2C\\u0A40 / \\u092A\\u0902\\u091C\\u093E\\u092C\\u0940 / \\u067E\\u0646\\u062C\\u0627\\u0628\\u064A\"},pi:{name:\"Pali\",native:\"P\\u0101li / \\u092A\\u093E\\u0934\\u093F\"},pl:{name:\"Polish\",native:\"Polski\"},ps:{name:\"Pashto\",native:\"\\u067E\\u069A\\u062A\\u0648\",rtl:1},pt:{name:\"Portuguese\",native:\"Portugu\\xEAs\"},qu:{name:\"Quechua\",native:\"Runa Simi\"},rm:{name:\"Raeto Romance\",native:\"Rumantsch\"},rn:{name:\"Kirundi\",native:\"Kirundi\"},ro:{name:\"Romanian\",native:\"Rom\\xE2n\\u0103\"},ru:{name:\"Russian\",native:\"\\u0420\\u0443\\u0441\\u0441\\u043A\\u0438\\u0439\"},rw:{name:\"Rwandi\",native:\"Kinyarwandi\"},sa:{name:\"Sanskrit\",native:\"\\u0938\\u0902\\u0938\\u094D\\u0915\\u0943\\u0924\\u092E\\u094D\"},sc:{name:\"Sardinian\",native:\"Sardu\"},sd:{name:\"Sindhi\",native:\"\\u0938\\u093F\\u0928\\u0927\\u093F\"},se:{name:\"Northern Sami\",native:\"S\\xE1megiella\"},sg:{name:\"Sango\",native:\"S\\xE4ng\\xF6\"},sh:{name:\"Serbo-Croatian\",native:\"Srpskohrvatski / \\u0421\\u0440\\u043F\\u0441\\u043A\\u043E\\u0445\\u0440\\u0432\\u0430\\u0442\\u0441\\u043A\\u0438\"},si:{name:\"Sinhalese\",native:\"\\u0DC3\\u0DD2\\u0D82\\u0DC4\\u0DBD\"},sk:{name:\"Slovak\",native:\"Sloven\\u010Dina\"},sl:{name:\"Slovenian\",native:\"Sloven\\u0161\\u010Dina\"},sm:{name:\"Samoan\",native:\"Gagana Samoa\"},sn:{name:\"Shona\",native:\"chiShona\"},so:{name:\"Somalia\",native:\"Soomaaliga\"},sq:{name:\"Albanian\",native:\"Shqip\"},sr:{name:\"Serbian\",native:\"\\u0421\\u0440\\u043F\\u0441\\u043A\\u0438\"},ss:{name:\"Swati\",native:\"SiSwati\"},st:{name:\"Southern Sotho\",native:\"Sesotho\"},su:{name:\"Sundanese\",native:\"Basa Sunda\"},sv:{name:\"Swedish\",native:\"Svenska\"},sw:{name:\"Swahili\",native:\"Kiswahili\"},ta:{name:\"Tamil\",native:\"\\u0BA4\\u0BAE\\u0BBF\\u0BB4\\u0BCD\"},te:{name:\"Telugu\",native:\"\\u0C24\\u0C46\\u0C32\\u0C41\\u0C17\\u0C41\"},tg:{name:\"Tajik\",native:\"\\u0422\\u043E\\u04B7\\u0438\\u043A\\u04E3\"},th:{name:\"Thai\",native:\"\\u0E44\\u0E17\\u0E22 / Phasa Thai\"},ti:{name:\"Tigrinya\",native:\"\\u1275\\u130D\\u122D\\u129B\"},tk:{name:\"Turkmen\",native:\"\\u0422\\u0443\\u0440\\u043A\\u043C\\u0435\\u043D / \\u062A\\u0631\\u0643\\u0645\\u0646\"},tl:{name:\"Tagalog / Filipino\",native:\"Tagalog\"},tn:{name:\"Tswana\",native:\"Setswana\"},to:{name:\"Tonga\",native:\"Lea Faka-Tonga\"},tr:{name:\"Turkish\",native:\"T\\xFCrk\\xE7e\"},ts:{name:\"Tsonga\",native:\"Xitsonga\"},tt:{name:\"Tatar\",native:\"Tatar\\xE7a\"},tw:{name:\"Twi\",native:\"Twi\"},ty:{name:\"Tahitian\",native:\"Reo M\\u0101`ohi\"},ug:{name:\"Uyghur\",native:\"Uy\\u01A3urq\\u0259 / \\u0626\\u06C7\\u064A\\u063A\\u06C7\\u0631\\u0686\\u06D5\"},uk:{name:\"Ukrainian\",native:\"\\u0423\\u043A\\u0440\\u0430\\u0457\\u043D\\u0441\\u044C\\u043A\\u0430\"},ur:{name:\"Urdu\",native:\"\\u0627\\u0631\\u062F\\u0648\",rtl:1},uz:{name:\"Uzbek\",native:\"O'zbekcha\"},ve:{name:\"Venda\",native:\"Tshiven\\u1E13a\"},vi:{name:\"Vietnamese\",native:\"Ti\\u1EBFng Vi\\u1EC7t\"},vo:{name:\"Volap\\xFCk\",native:\"Volap\\xFCk\"},wa:{name:\"Walloon\",native:\"Walon\"},wo:{name:\"Wolof\",native:\"Wollof\"},xh:{name:\"Xhosa\",native:\"isiXhosa\"},yi:{name:\"Yiddish\",native:\"\\u05D9\\u05D9\\u05B4\\u05D3\\u05D9\\u05E9\",rtl:1},yo:{name:\"Yoruba\",native:\"Yor\\xF9b\\xE1\"},za:{name:\"Zhuang\",native:\"Cuengh / T\\xF4\\xF4 / \\u58EE\\u8BED\"},zh:{name:\"Chinese\",native:\"\\u4E2D\\u6587\"},zu:{name:\"Zulu\",native:\"isiZulu\"}};var t={AD:\"AND\",AE:\"ARE\",AF:\"AFG\",AG:\"ATG\",AI:\"AIA\",AL:\"ALB\",AM:\"ARM\",AO:\"AGO\",AQ:\"ATA\",AR:\"ARG\",AS:\"ASM\",AT:\"AUT\",AU:\"AUS\",AW:\"ABW\",AX:\"ALA\",AZ:\"AZE\",BA:\"BIH\",BB:\"BRB\",BD:\"BGD\",BE:\"BEL\",BF:\"BFA\",BG:\"BGR\",BH:\"BHR\",BI:\"BDI\",BJ:\"BEN\",BL:\"BLM\",BM:\"BMU\",BN:\"BRN\",BO:\"BOL\",BQ:\"BES\",BR:\"BRA\",BS:\"BHS\",BT:\"BTN\",BV:\"BVT\",BW:\"BWA\",BY:\"BLR\",BZ:\"BLZ\",CA:\"CAN\",CC:\"CCK\",CD:\"COD\",CF:\"CAF\",CG:\"COG\",CH:\"CHE\",CI:\"CIV\",CK:\"COK\",CL:\"CHL\",CM:\"CMR\",CN:\"CHN\",CO:\"COL\",CR:\"CRI\",CU:\"CUB\",CV:\"CPV\",CW:\"CUW\",CX:\"CXR\",CY:\"CYP\",CZ:\"CZE\",DE:\"DEU\",DJ:\"DJI\",DK:\"DNK\",DM:\"DMA\",DO:\"DOM\",DZ:\"DZA\",EC:\"ECU\",EE:\"EST\",EG:\"EGY\",EH:\"ESH\",ER:\"ERI\",ES:\"ESP\",ET:\"ETH\",FI:\"FIN\",FJ:\"FJI\",FK:\"FLK\",FM:\"FSM\",FO:\"FRO\",FR:\"FRA\",GA:\"GAB\",GB:\"GBR\",GD:\"GRD\",GE:\"GEO\",GF:\"GUF\",GG:\"GGY\",GH:\"GHA\",GI:\"GIB\",GL:\"GRL\",GM:\"GMB\",GN:\"GIN\",GP:\"GLP\",GQ:\"GNQ\",GR:\"GRC\",GS:\"SGS\",GT:\"GTM\",GU:\"GUM\",GW:\"GNB\",GY:\"GUY\",HK:\"HKG\",HM:\"HMD\",HN:\"HND\",HR:\"HRV\",HT:\"HTI\",HU:\"HUN\",ID:\"IDN\",IE:\"IRL\",IL:\"ISR\",IM:\"IMN\",IN:\"IND\",IO:\"IOT\",IQ:\"IRQ\",IR:\"IRN\",IS:\"ISL\",IT:\"ITA\",JE:\"JEY\",JM:\"JAM\",JO:\"JOR\",JP:\"JPN\",KE:\"KEN\",KG:\"KGZ\",KH:\"KHM\",KI:\"KIR\",KM:\"COM\",KN:\"KNA\",KP:\"PRK\",KR:\"KOR\",KW:\"KWT\",KY:\"CYM\",KZ:\"KAZ\",LA:\"LAO\",LB:\"LBN\",LC:\"LCA\",LI:\"LIE\",LK:\"LKA\",LR:\"LBR\",LS:\"LSO\",LT:\"LTU\",LU:\"LUX\",LV:\"LVA\",LY:\"LBY\",MA:\"MAR\",MC:\"MCO\",MD:\"MDA\",ME:\"MNE\",MF:\"MAF\",MG:\"MDG\",MH:\"MHL\",MK:\"MKD\",ML:\"MLI\",MM:\"MMR\",MN:\"MNG\",MO:\"MAC\",MP:\"MNP\",MQ:\"MTQ\",MR:\"MRT\",MS:\"MSR\",MT:\"MLT\",MU:\"MUS\",MV:\"MDV\",MW:\"MWI\",MX:\"MEX\",MY:\"MYS\",MZ:\"MOZ\",NA:\"NAM\",NC:\"NCL\",NE:\"NER\",NF:\"NFK\",NG:\"NGA\",NI:\"NIC\",NL:\"NLD\",NO:\"NOR\",NP:\"NPL\",NR:\"NRU\",NU:\"NIU\",NZ:\"NZL\",OM:\"OMN\",PA:\"PAN\",PE:\"PER\",PF:\"PYF\",PG:\"PNG\",PH:\"PHL\",PK:\"PAK\",PL:\"POL\",PM:\"SPM\",PN:\"PCN\",PR:\"PRI\",PS:\"PSE\",PT:\"PRT\",PW:\"PLW\",PY:\"PRY\",QA:\"QAT\",RE:\"REU\",RO:\"ROU\",RS:\"SRB\",RU:\"RUS\",RW:\"RWA\",SA:\"SAU\",SB:\"SLB\",SC:\"SYC\",SD:\"SDN\",SE:\"SWE\",SG:\"SGP\",SH:\"SHN\",SI:\"SVN\",SJ:\"SJM\",SK:\"SVK\",SL:\"SLE\",SM:\"SMR\",SN:\"SEN\",SO:\"SOM\",SR:\"SUR\",SS:\"SSD\",ST:\"STP\",SV:\"SLV\",SX:\"SXM\",SY:\"SYR\",SZ:\"SWZ\",TC:\"TCA\",TD:\"TCD\",TF:\"ATF\",TG:\"TGO\",TH:\"THA\",TJ:\"TJK\",TK:\"TKL\",TL:\"TLS\",TM:\"TKM\",TN:\"TUN\",TO:\"TON\",TR:\"TUR\",TT:\"TTO\",TV:\"TUV\",TW:\"TWN\",TZ:\"TZA\",UA:\"UKR\",UG:\"UGA\",UM:\"UMI\",US:\"USA\",UY:\"URY\",UZ:\"UZB\",VA:\"VAT\",VC:\"VCT\",VE:\"VEN\",VG:\"VGB\",VI:\"VIR\",VN:\"VNM\",VU:\"VUT\",WF:\"WLF\",WS:\"WSM\",XK:\"XKX\",YE:\"YEM\",YT:\"MYT\",ZA:\"ZAF\",ZM:\"ZMB\",ZW:\"ZWE\"};var r=n=>({...a[n],iso2:n,iso3:t[n]}),i=()=>Object.keys(a).map(n=>r(n));var u=i(),s=n=>u.find(({name:e,native:c})=>n===e||n===c)?.iso2||!1;var g=127462-\"A\".charCodeAt(0),m=/^[A-Z]{2}$/,p=n=>m.test(n)?String.fromCodePoint(...n.split(\"\").map(e=>g+e.toUpperCase().charCodeAt(0))):\"\";export{o as continents,a as countries,s as getCountryCode,r as getCountryData,i as getCountryDataList,p as getEmojiFlag,l as languages};\n","function t(){return t=Object.assign||function(t){for(var e=1;e=e?t:\"\"+Array(e+1-n.length).join(r)+t},y={s:h,z:function(t){var e=-t.utcOffset(),r=Math.abs(e),n=Math.floor(r/60),i=r%60;return(e<=0?\"+\":\"-\")+h(n,2,\"0\")+\":\"+h(i,2,\"0\")},m:function t(e,r){if(e.date(){if(\"string\"!=typeof t||\"string\"!=typeof e)throw new TypeError(\"Expected the arguments to be of type `string`\");if(\"\"===e)return[t];const r=t.indexOf(e);return-1===r?[t]:[t.slice(0,r),t.slice(r+e.length)]},l=function(t,e){for(var r={},n=Object.keys(t),i=Array.isArray(e),a=0;a`%${t.charCodeAt(0).toString(16).toUpperCase()}`):encodeURIComponent(t):t}function i(t,e){return e.decode?u(t):t}function a(t){return Array.isArray(t)?t.sort():\"object\"==typeof t?a(Object.keys(t)).sort((t,e)=>Number(t)-Number(e)).map(e=>t[e]):t}function o(t){const e=t.indexOf(\"#\");return-1!==e&&(t=t.slice(0,e)),t}function s(t){const e=(t=o(t)).indexOf(\"?\");return-1===e?\"\":t.slice(e+1)}function f(t,e){return e.parseNumbers&&!Number.isNaN(Number(t))&&\"string\"==typeof t&&\"\"!==t.trim()?t=Number(t):!e.parseBooleans||null===t||\"true\"!==t.toLowerCase()&&\"false\"!==t.toLowerCase()||(t=\"true\"===t.toLowerCase()),t}function d(t,e){r((e=Object.assign({decode:!0,sort:!0,arrayFormat:\"none\",arrayFormatSeparator:\",\",parseNumbers:!1,parseBooleans:!1},e)).arrayFormatSeparator);const n=function(t){let e;switch(t.arrayFormat){case\"index\":return(t,r,n)=>{e=/\\[(\\d*)\\]$/.exec(t),t=t.replace(/\\[\\d*\\]$/,\"\"),e?(void 0===n[t]&&(n[t]={}),n[t][e[1]]=r):n[t]=r};case\"bracket\":return(t,r,n)=>{e=/(\\[\\])$/.exec(t),n[t=t.replace(/\\[\\]$/,\"\")]=e?void 0!==n[t]?[].concat(n[t],r):[r]:r};case\"comma\":case\"separator\":return(e,r,n)=>{const a=\"string\"==typeof r&&r.includes(t.arrayFormatSeparator),o=\"string\"==typeof r&&!a&&i(r,t).includes(t.arrayFormatSeparator);r=o?i(r,t):r;const s=a||o?r.split(t.arrayFormatSeparator).map(e=>i(e,t)):null===r?r:i(r,t);n[e]=s};default:return(t,e,r)=>{r[t]=void 0!==r[t]?[].concat(r[t],e):e}}}(e),o=Object.create(null);if(\"string\"!=typeof t)return o;if(!(t=t.trim().replace(/^[?#&]/,\"\")))return o;for(const r of t.split(\"&\")){if(\"\"===r)continue;let[t,a]=c(e.decode?r.replace(/\\+/g,\" \"):r,\"=\");a=void 0===a?null:[\"comma\",\"separator\"].includes(e.arrayFormat)?a:i(a,e),n(i(t,e),a,o)}for(const t of Object.keys(o)){const r=o[t];if(\"object\"==typeof r&&null!==r)for(const t of Object.keys(r))r[t]=f(r[t],e);else o[t]=f(r,e)}return!1===e.sort?o:(!0===e.sort?Object.keys(o).sort():Object.keys(o).sort(e.sort)).reduce((t,e)=>{const r=o[e];return t[e]=Boolean(r)&&\"object\"==typeof r&&!Array.isArray(r)?a(r):r,t},Object.create(null))}e.extract=s,e.parse=d,e.stringify=(t,e)=>{if(!t)return\"\";r((e=Object.assign({encode:!0,strict:!0,arrayFormat:\"none\",arrayFormatSeparator:\",\"},e)).arrayFormatSeparator);const i=r=>e.skipNull&&null==t[r]||e.skipEmptyString&&\"\"===t[r],a=function(t){switch(t.arrayFormat){case\"index\":return e=>(r,i)=>{const a=r.length;return void 0===i||t.skipNull&&null===i||t.skipEmptyString&&\"\"===i?r:null===i?[...r,[n(e,t),\"[\",a,\"]\"].join(\"\")]:[...r,[n(e,t),\"[\",n(a,t),\"]=\",n(i,t)].join(\"\")]};case\"bracket\":return e=>(r,i)=>void 0===i||t.skipNull&&null===i||t.skipEmptyString&&\"\"===i?r:null===i?[...r,[n(e,t),\"[]\"].join(\"\")]:[...r,[n(e,t),\"[]=\",n(i,t)].join(\"\")];case\"comma\":case\"separator\":return e=>(r,i)=>null==i||0===i.length?r:0===r.length?[[n(e,t),\"=\",n(i,t)].join(\"\")]:[[r,n(i,t)].join(t.arrayFormatSeparator)];default:return e=>(r,i)=>void 0===i||t.skipNull&&null===i||t.skipEmptyString&&\"\"===i?r:null===i?[...r,n(e,t)]:[...r,[n(e,t),\"=\",n(i,t)].join(\"\")]}}(e),o={};for(const e of Object.keys(t))i(e)||(o[e]=t[e]);const s=Object.keys(o);return!1!==e.sort&&s.sort(e.sort),s.map(r=>{const i=t[r];return void 0===i?\"\":null===i?n(r,e):Array.isArray(i)?i.reduce(a(r),[]).join(\"&\"):n(r,e)+\"=\"+n(i,e)}).filter(t=>t.length>0).join(\"&\")},e.parseUrl=(t,e)=>{e=Object.assign({decode:!0},e);const[r,n]=c(t,\"#\");return Object.assign({url:r.split(\"?\")[0]||\"\",query:d(s(t),e)},e&&e.parseFragmentIdentifier&&n?{fragmentIdentifier:i(n,e)}:{})},e.stringifyUrl=(t,r)=>{r=Object.assign({encode:!0,strict:!0},r);const i=o(t.url).split(\"?\")[0]||\"\",a=e.extract(t.url),s=e.parse(a,{sort:!1}),u=Object.assign(s,t.query);let c=e.stringify(u,r);c&&(c=`?${c}`);let l=function(t){let e=\"\";const r=t.indexOf(\"#\");return-1!==r&&(e=t.slice(r)),e}(t.url);return t.fragmentIdentifier&&(l=`#${n(t.fragmentIdentifier,r)}`),`${i}${c}${l}`},e.pick=(t,r,n)=>{n=Object.assign({parseFragmentIdentifier:!0},n);const{url:i,query:a,fragmentIdentifier:o}=e.parseUrl(t,n);return e.stringifyUrl({url:i,query:l(a,r),fragmentIdentifier:o},n)},e.exclude=(t,r,n)=>{const i=Array.isArray(r)?t=>!r.includes(t):(t,e)=>!r(t,e);return e.pick(t,i,n)}});const d={dateTimeLocal:\"YYYY-MM-DD[T]HH:mm:ss\",dateTimeUTC:\"YYYYMMDD[T]HHmmss[Z]\",allDay:\"YYYYMMDD\"};function h({startTime:t,endTime:e},r){const n=d[r];return{start:t.format(n),end:e.format(n)}}r.extend(n);const y=(e,n=!0)=>{const{start:i,end:a,duration:o}=e,s=function(t,e){if(null==t)return{};var r,n,i={},a=Object.keys(t);for(n=0;n=0||(i[r]=t[r]);return i}(e,[\"start\",\"end\",\"duration\"]),u=n?r(i).utc():r(i),c=a?n?r(a).utc():r(a):(()=>{if(e.allDay)return u.add(1,\"day\");if(o&&2==o.length){const t=Number(o[0]);return u.add(t,o[1])}return n?r().utc():r()})();return t({},s,{startTime:u,endTime:c})},p=t=>{const e=y(t),{start:r,end:n}=h(e,e.allDay?\"allDay\":\"dateTimeUTC\"),i={action:\"TEMPLATE\",text:e.title,details:e.description,location:e.location,trp:e.busy,dates:r+\"/\"+n,recur:e.rRule?\"RRULE:\"+e.rRule:void 0};return e.guests&&e.guests.length&&(i.add=e.guests.join()),`https://calendar.google.com/calendar/render?${f.stringify(i)}`},m=t=>{const e=y(t,!1),{start:r,end:n}=h(e,\"dateTimeLocal\");return`https://outlook.live.com/calendar/0/action/compose?${f.stringify({path:\"/calendar/action/compose\",rru:\"addevent\",startdt:r,enddt:n,subject:e.title,body:e.description,location:e.location,allday:e.allDay||!1})}`},$=t=>{const e=y(t,!1),{start:r,end:n}=h(e,\"dateTimeLocal\");return`https://outlook.live.com/calendar/0/deeplink/compose?${f.stringify({path:\"/calendar/action/compose\",rru:\"addevent\",startdt:r,enddt:n,subject:e.title,body:e.description,location:e.location,allday:e.allDay||!1})}`},g=t=>{const e=y(t,!1),{start:r,end:n}=h(e,\"dateTimeLocal\");return`https://outlook.office.com/calendar/0/action/compose?${f.stringify({path:\"/calendar/action/compose\",rru:\"addevent\",startdt:r,enddt:n,subject:e.title,body:e.description,location:e.location,allday:e.allDay||!1})}`},v=t=>{const e=y(t,!1),{start:r,end:n}=h(e,\"dateTimeLocal\");return`https://outlook.office.com/calendar/0/deeplink/compose?${f.stringify({path:\"/calendar/action/compose\",rru:\"addevent\",startdt:r,enddt:n,subject:e.title,body:e.description,location:e.location,allday:e.allDay||!1})}`},D=t=>{const e=y(t),{start:r,end:n}=h(e,e.allDay?\"allDay\":\"dateTimeUTC\");return`https://calendar.yahoo.com/?${f.stringify({v:60,title:e.title,st:r,et:n,desc:e.description,in_loc:e.location,dur:!!e.allDay&&\"allday\"})}`},O=t=>{const e=y(t),{start:r,end:n}=h(e,e.allDay?\"allDay\":\"dateTimeUTC\");return`https://calendar.aol.com/?${f.stringify({v:60,title:e.title,st:r,et:n,desc:e.description,in_loc:e.location,dur:!!e.allDay&&\"allday\"})}`},M=t=>{const e=y(t),n=(e.description||\"\").replace(/,/gm,\",\").replace(/;/gm,\";\").replace(/\\r\\n/gm,\"\\n\").replace(/\\n/gm,\"\\\\n\").replace(/(\\\\n)[\\s\\t]+/gm,\"\\\\n\"),i=(e.location||\"\").replace(/,/gm,\",\").replace(/;/gm,\";\").replace(/\\r\\n/gm,\"\\n\").replace(/\\n/gm,\"\\\\n\").replace(/(\\\\n)[\\s\\t]+/gm,\"\\\\n\"),{start:a,end:o}=h(e,e.allDay?\"allDay\":\"dateTimeUTC\"),s=r(new Date).utc().format(d.dateTimeUTC),u=[{key:\"BEGIN\",value:\"VCALENDAR\"},{key:\"VERSION\",value:\"2.0\"},{key:\"PRODID\",value:e.title},{key:\"BEGIN\",value:\"VEVENT\"},{key:\"URL\",value:e.url},{key:\"DTSTART\",value:a},{key:\"DTEND\",value:o},{key:\"DTSTAMP\",value:s},{key:\"RRULE\",value:e.rRule},{key:\"SUMMARY\",value:e.title},{key:\"DESCRIPTION\",value:n},{key:\"LOCATION\",value:i},{key:\"ORGANIZER\",value:e.organizer},{key:\"UID\",value:Math.floor(1e5*Math.random()).toString().replace(\".\",\"\")},{key:\"END\",value:\"VEVENT\"},{key:\"END\",value:\"VCALENDAR\"}];let c=\"\";return u.forEach(t=>{if(t.value)if(\"ORGANIZER\"==t.key){const e=t.value;c+=`${t.key};${encodeURIComponent(`CN=${e.name}:MAILTO:${e.email}\\r\\n`)}`}else c+=`${t.key}:${encodeURIComponent(`${t.value}\\r\\n`)}`}),`data:text/calendar;charset=utf8,${c}`};export{O as aol,y as eventify,p as google,M as ics,g as office365,v as office365Mobile,m as outlook,$ as outlookMobile,D as yahoo};\n//# sourceMappingURL=index.modern.mjs.map\n"],"names":["_sfc_main$5","props","fonts","type","Array","default","classes","Object","styles","placeholder","icon","Boolean","locale","String","currency","data","cbInstance","cbComponent","moduleLoaded","elementId","computed","componentOptions","this","style","provide","methods","tokenize","additionalData","authorizeWith3ds","paymentIntent","callbacks","focus","blur","clear","setCbComponent","mounted","$nextTick","replace","c","r","Math","random","toString","Chargebee","getInstance","options","load","then","createComponent","map","listener","on","$emit","mount","watch","update","render","children","$slots","h","id","class","_assertThisInitialized","self","ReferenceError","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","i","length","descriptor","enumerable","configurable","writable","defineProperty","toPropertyKey","key","_createClass","protoProps","staticProps","prototype","_arrayLikeToArray","arr","len","arr2","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","isArray","minLen","arrayLikeToArray","n","call","slice","constructor","name","from","test","unsupportedIterableToArray","F","s","done","value","e","_e","f","err","normalCompletion","didErr","step","next","_e2","_getPrototypeOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","isNativeReflectConstruct","result","Super","NewTarget","arguments","apply","_typeof","assertThisInitialized","possibleConstructorReturn","_defineProperty","obj","_setPrototypeOf","p","_inherits","subClass","superClass","create","_toPropertyKey","arg","input","hint","prim","toPrimitive","undefined","res","noop","uid","isNullOrUndef","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","endsWith","parseFloat","toDimension","callback","fn","args","thisArg","each","loopable","reverse","keys","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","index","clone","source","klen","k","isValidKey","indexOf","_merger","tval","sval","merge","sources","merger","current","mergeIf","_mergerIf","hasOwnProperty","keyResolvers","v","x","y","resolveObjectKey","resolver","parts","split","tmp","part","push","_splitKey","_getKeyResolver","_capitalize","str","charAt","toUpperCase","defined","isFunction","setsEqual","a","b","size","item","has","_isClickEvent","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","almostEquals","epsilon","abs","niceNum","range","roundedRange","round","niceRange","pow","floor","fraction","_factorize","sqrt","sort","pop","isNumber","isNaN","almostWhole","rounded","_setMinAndMaxByKey","array","property","min","max","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","start","end","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","table","cmp","mid","hi","lo","_lookupByKey","last","ti","_rlookupByKey","_filterBetween","values","arrayEvents","listenArrayEvents","_chartjs","listeners","forEach","method","base","object","unlistenArrayEvents","stub","splice","_arrayUnique","items","set","Set","requestAnimFrame","window","requestAnimationFrame","throttled","argsToUse","ticking","debounce","delay","timeout","clearTimeout","setTimeout","_toLeftRightCenter","align","_alignStartEnd","_textX","left","right","rtl","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","count","_sorted","iScale","_parsed","axis","minDefined","maxDefined","getUserBounds","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","assign","atEdge","t","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","m","d","easeInOutBounce","isPatternOrGradient","color","Color","getHoverColor","saturate","darken","hexString","numbers","colors","intlCache","Map","formatNumber","num","cacheKey","JSON","stringify","formatter","get","Intl","NumberFormat","getNumberFormat","format","formatters","numeric","tickValue","ticks","chart","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","remain","significand","includes","Ticks","overrides","descriptors","getScope$1","node","root","scope","Defaults","_descriptors","_appliers","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","platform","getDevicePixelRatio","elements","events","font","family","lineHeight","weight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","override","route","targetScope","targetName","scopeObject","targetScopeObject","privateName","defineProperties","local","appliers","defaults","_scriptable","startsWith","_indexable","_fallback","duration","easing","loop","to","properties","active","resize","show","animations","visible","hide","autoPadding","padding","top","bottom","display","offset","beginAtZero","bounds","clip","grace","grid","lineWidth","drawOnChartArea","drawTicks","tickLength","tickWidth","_ctx","tickColor","border","dash","dashOffset","width","title","text","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkip","autoSkipPadding","labelOffset","minor","major","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","_measureText","gc","longest","string","textWidth","measureText","_longestText","arrayOfThings","cache","garbageCollect","save","j","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","drawPointLegend","w","xOffset","yOffset","cornerRadius","xOffsetW","yOffsetW","pointStyle","rotation","radius","rad","translate","rotate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","clipArea","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","decorateText","line","opts","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","strokeStyle","fillStyle","decorationWidth","drawBackdrop","oldColor","fillRect","renderText","lines","strokeWidth","strokeColor","translation","textAlign","textBaseline","setRenderOpts","backdrop","strokeText","maxWidth","fillText","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","matches","match","numberOrZero","_readValueToProps","ret","objProps","read","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","parseInt","console","warn","toFontString","resolve","inputs","info","cacheable","_addGrace","minmax","change","keepZero","add","createContext","parentContext","_createResolver","scopes","prefixes","rootScopes","getTarget","finalRootScopes","_resolve","toStringTag","_cacheable","_scopes","_rootScopes","_getTarget","deleteProperty","_keys","_cached","proxy","prefix","readKey","needsSubResolver","createSubResolver","_resolveWithPrefixes","getOwnPropertyDescriptor","getKeysFromAllScopes","ownKeys","storage","_storage","_attachContext","subProxy","descriptorDefaults","_proxy","_context","_subProxy","_stack","setContext","receiver","isScriptable","getValue","Error","join","delete","_resolveScriptable","isIndexable","filter","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_parsing","parsed","parse","EPSILON","getPoint","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","capControlPoint","pt","_updateBezierControlPoints","controlPoints","spanGaps","cubicInterpolationMode","valueAxis","pointsLen","deltaK","mK","pointBefore","pointCurrent","pointAfter","slopeDelta","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","iPixel","vPixel","monotoneCompute","splineCurveMonotone","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","document","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","ownerDocument","defaultView","positions","getPositionedStyle","suffix","pos","useOffsetPos","shadowRoot","getRelativePosition","event","borderBox","boxSizing","paddings","borders","box","touches","offsetX","offsetY","getBoundingClientRect","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","container","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","passive","addEventListener","removeEventListener","readUsedSize","el","getPropertyValue","getStyle","_pointInLine","p1","p2","_steppedInterpolation","_bezierInterpolation","cp1","cp2","getRightToLeftAdapter","rectX","setWidth","xPlus","leftForLtr","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_boundSegment","segment","startBound","endBound","getSegment","prevValue","inside","subStart","_boundSegments","segments","sub","_computeSegments","segmentOptions","_loop","findStartAndEnd","splitByStyles","cur","stop","solidSegments","_fullLoop","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","l","st","dir","p0","p0DataIndex","p1DataIndex","styleChanged","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","replacer","AD","native","phone","continent","capital","languages","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","continents","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","iso2","iso3","charCodeAt","exports","globalThis","global","u","weekdays","months","z","utcOffset","date","year","month","ceil","M","D","ms","Q","toLowerCase","$","O","g","$L","utc","$u","$x","$offset","$d","Date","NaN","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","subtract","substr","meridiem","YY","YYYY","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","extend","$i","isDayjs","en","Ls","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","RegExp","decodeURIComponent","concat","exec","encode","strict","encodeURIComponent","decode","parseNumbers","trim","parseBooleans","arrayFormat","arrayFormatSeparator","reduce","extract","skipNull","skipEmptyString","parseUrl","url","query","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","pick","exclude","dateTimeLocal","dateTimeUTC","allDay","startTime","endTime","action","details","description","location","trp","busy","dates","recur","rRule","guests","path","rru","startdt","enddt","subject","body","allday","et","desc","in_loc","dur","organizer","email"],"sourceRoot":""}