{"version":3,"file":"TimeSeriesLine.umd.min.js","mappings":"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","sources":["webpack://TimeSeriesLine/webpack/universalModuleDefinition","webpack://TimeSeriesLine/./node_modules/@mce/circle/src/circle.vue?8862","webpack://TimeSeriesLine/./node_modules/@mce/group/src/group.vue?4a41","webpack://TimeSeriesLine/./node_modules/@mce/guidelines/src/guidelines.vue?ab97","webpack://TimeSeriesLine/./node_modules/@mce/line-plot/src/line-plot.vue?e1d5","webpack://TimeSeriesLine/./node_modules/@mce/line/src/line.vue?8982","webpack://TimeSeriesLine/./node_modules/@mce/path/src/path.vue?284c","webpack://TimeSeriesLine/./app/components/lib/plots/TimeSeriesLine.vue?0c1d","webpack://TimeSeriesLine/./node_modules/css-loader/dist/runtime/api.js","webpack://TimeSeriesLine/./node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack://TimeSeriesLine/./node_modules/victor/index.js","webpack://TimeSeriesLine/./node_modules/@mce/circle/src/circle.vue?f8d5","webpack://TimeSeriesLine/./node_modules/@mce/group/src/group.vue?886a","webpack://TimeSeriesLine/./node_modules/@mce/guidelines/src/guidelines.vue?81c4","webpack://TimeSeriesLine/./node_modules/@mce/line-plot/src/line-plot.vue?845e","webpack://TimeSeriesLine/./node_modules/@mce/line/src/line.vue?74e4","webpack://TimeSeriesLine/./node_modules/@mce/path/src/path.vue?8abf","webpack://TimeSeriesLine/./app/components/lib/plots/TimeSeriesLine.vue?e539","webpack://TimeSeriesLine/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://TimeSeriesLine/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://TimeSeriesLine/webpack/bootstrap","webpack://TimeSeriesLine/webpack/runtime/compat get default export","webpack://TimeSeriesLine/webpack/runtime/define property getters","webpack://TimeSeriesLine/webpack/runtime/hasOwnProperty shorthand","webpack://TimeSeriesLine/webpack/runtime/make namespace object","webpack://TimeSeriesLine/webpack/runtime/publicPath","webpack://TimeSeriesLine/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://TimeSeriesLine/./app/components/lib/plots/TimeSeriesLine.vue?8542","webpack://TimeSeriesLine/./node_modules/@mce/line-plot/src/line-plot.vue?a347","webpack://TimeSeriesLine/./node_modules/d3-array/src/range.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/init.js","webpack://TimeSeriesLine/./node_modules/internmap/src/index.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/ordinal.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/band.js","webpack://TimeSeriesLine/./node_modules/d3-array/src/number.js","webpack://TimeSeriesLine/./node_modules/d3-array/src/quantile.js","webpack://TimeSeriesLine/./node_modules/d3-array/src/ascending.js","webpack://TimeSeriesLine/./node_modules/d3-array/src/descending.js","webpack://TimeSeriesLine/./node_modules/d3-array/src/bisector.js","webpack://TimeSeriesLine/./node_modules/d3-array/src/bisect.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/quantile.js","webpack://TimeSeriesLine/./node_modules/@mce/interactions/src/plot-types/horizontal-bar.js","webpack://TimeSeriesLine/./node_modules/d3-array/src/ticks.js","webpack://TimeSeriesLine/./node_modules/d3-color/src/define.js","webpack://TimeSeriesLine/./node_modules/d3-color/src/color.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/basis.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/basisClosed.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/constant.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/color.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/rgb.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/array.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/date.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/number.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/object.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/string.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/numberArray.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/value.js","webpack://TimeSeriesLine/./node_modules/d3-interpolate/src/round.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/constant.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/number.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/continuous.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/formatSpecifier.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/formatDecimal.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/exponent.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/precisionPrefix.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/formatGroup.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/formatNumerals.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/formatTrim.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/formatRounded.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/formatTypes.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/identity.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/locale.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/defaultLocale.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/precisionRound.js","webpack://TimeSeriesLine/./node_modules/d3-format/src/precisionFixed.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/tickFormat.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/linear.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/quantize.js","webpack://TimeSeriesLine/./node_modules/@mce/interactions/src/plot-types/line.js","webpack://TimeSeriesLine/./node_modules/@mce/interactions/src/constants.js","webpack://TimeSeriesLine/./node_modules/d3-selection/src/sourceEvent.js","webpack://TimeSeriesLine/./node_modules/d3-selection/src/pointer.js","webpack://TimeSeriesLine/./node_modules/@mce/interactions/src/plot-types/histogram.js","webpack://TimeSeriesLine/./node_modules/@mce/interactions/src/plot-types/vertical-bar.js","webpack://TimeSeriesLine/./node_modules/@mce/interactions/src/plot-types/scatter.js","webpack://TimeSeriesLine/./node_modules/@mce/interactions/src/plot-types/donut.js","webpack://TimeSeriesLine/./node_modules/@mce/interactions/src/plot-types/area-plot-stacked.js","webpack://TimeSeriesLine/./node_modules/@mce/interactions/src/mouse.js","webpack://TimeSeriesLine/./node_modules/@mce/circle/src/circle.vue?bd59","webpack://TimeSeriesLine/node_modules/@mce/circle/src/circle.vue","webpack://TimeSeriesLine/./node_modules/@mce/circle/src/circle.vue?32e1","webpack://TimeSeriesLine/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://TimeSeriesLine/./node_modules/@mce/circle/src/circle.vue","webpack://TimeSeriesLine/./node_modules/@mce/circle/index.js","webpack://TimeSeriesLine/./node_modules/@mce/path/src/path.vue?c825","webpack://TimeSeriesLine/node_modules/@mce/path/src/path.vue","webpack://TimeSeriesLine/./node_modules/@mce/path/src/path.vue?b581","webpack://TimeSeriesLine/./node_modules/@mce/path/src/path.vue","webpack://TimeSeriesLine/./node_modules/@mce/path/index.js","webpack://TimeSeriesLine/./node_modules/@mce/group/src/group.vue?4877","webpack://TimeSeriesLine/node_modules/@mce/group/src/group.vue","webpack://TimeSeriesLine/./node_modules/@mce/group/src/group.vue?f72f","webpack://TimeSeriesLine/./node_modules/@mce/group/src/group.vue","webpack://TimeSeriesLine/./node_modules/@mce/group/index.js","webpack://TimeSeriesLine/./node_modules/d3-shape/src/array.js","webpack://TimeSeriesLine/./node_modules/d3-shape/src/constant.js","webpack://TimeSeriesLine/./node_modules/d3-shape/src/curve/linear.js","webpack://TimeSeriesLine/./node_modules/d3-path/src/path.js","webpack://TimeSeriesLine/./node_modules/d3-shape/src/path.js","webpack://TimeSeriesLine/./node_modules/d3-shape/src/point.js","webpack://TimeSeriesLine/./node_modules/d3-shape/src/line.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/symlog.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/duration.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/interval.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/millisecond.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/second.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/minute.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/hour.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/day.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/week.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/month.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/year.js","webpack://TimeSeriesLine/./node_modules/d3-time/src/ticks.js","webpack://TimeSeriesLine/./node_modules/d3-time-format/src/locale.js","webpack://TimeSeriesLine/./node_modules/d3-time-format/src/defaultLocale.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/nice.js","webpack://TimeSeriesLine/./node_modules/d3-scale/src/time.js","webpack://TimeSeriesLine/node_modules/@mce/line-plot/src/line-plot.vue","webpack://TimeSeriesLine/./node_modules/@mce/line-plot/src/line-plot.vue?17fe","webpack://TimeSeriesLine/./node_modules/@mce/line-plot/src/line-plot.vue","webpack://TimeSeriesLine/./node_modules/@mce/line-plot/index.js","webpack://TimeSeriesLine/./node_modules/@mce/guidelines/src/guidelines.vue?7360","webpack://TimeSeriesLine/./node_modules/@mce/line/src/line.vue?adee","webpack://TimeSeriesLine/node_modules/@mce/line/src/line.vue","webpack://TimeSeriesLine/./node_modules/@mce/line/src/line.vue?e831","webpack://TimeSeriesLine/./node_modules/@mce/line/src/line.vue","webpack://TimeSeriesLine/./node_modules/@mce/line/index.js","webpack://TimeSeriesLine/node_modules/@mce/guidelines/src/guidelines.vue","webpack://TimeSeriesLine/./node_modules/@mce/guidelines/src/guidelines.vue?0f48","webpack://TimeSeriesLine/./node_modules/@mce/guidelines/src/guidelines.vue","webpack://TimeSeriesLine/./node_modules/@mce/guidelines/index.js","webpack://TimeSeriesLine/app/components/lib/plots/TimeSeriesLine.vue","webpack://TimeSeriesLine/./app/components/lib/plots/TimeSeriesLine.vue?d092","webpack://TimeSeriesLine/./app/components/lib/plots/TimeSeriesLine.vue","webpack://TimeSeriesLine/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TimeSeriesLine\"] = factory();\n\telse\n\t\troot[\"TimeSeriesLine\"] = factory();\n})((typeof self !== 'undefined' ? self : this), () => {\nreturn ","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mce-circle___PF{shape-rendering:auto}\", \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"mce-circle\": \"mce-circle___PF\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mce-group___PF{shape-rendering:auto}\", \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"mce-group\": \"mce-group___PF\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:100;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/3ff7b647-ed35-4a34-a497-0b8e0455ef09.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/3ff7b647-ed35-4a34-a497-0b8e0455ef09.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/f9c3797f-895f-42e2-9e83-9340081311d6.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:200;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/4236b369-2f95-4452-9326-0e51d1087bdc.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/4236b369-2f95-4452-9326-0e51d1087bdc.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/5a67b0ed-239e-4f3e-adeb-8b1e517a5bd3.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:italic;font-weight:200;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/40115d96-2de2-43ce-a50f-5baba79381b2.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/40115d96-2de2-43ce-a50f-5baba79381b2.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/9df5f782-d089-4356-8fc5-8f4a338019c8.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:300;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/fd397187-4d65-4b13-99ac-e43b94abebcc.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/fd397187-4d65-4b13-99ac-e43b94abebcc.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/600bda4e-11fe-4903-9a39-bb6b77389170.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:italic;font-weight:300;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/30641e69-bdcf-49b9-b7c5-d9e4290f8f0f.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/30641e69-bdcf-49b9-b7c5-d9e4290f8f0f.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/21ca819a-38ec-4f58-92d9-107d0f271416.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:400;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/f1bc8267-a817-408b-a089-4310761881f7.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/f1bc8267-a817-408b-a089-4310761881f7.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/3b5a7b6a-e026-4ee8-b80f-6aa5e44b2977.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:italic;font-weight:400;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/7235be49-0fbf-499c-b3b6-32d85e74fea9.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/7235be49-0fbf-499c-b3b6-32d85e74fea9.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/f8abf68e-0fda-4e20-ab06-995b353028ee.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:500;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/a0041c8f-87d5-4762-9433-d1bd14041dd1.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/a0041c8f-87d5-4762-9433-d1bd14041dd1.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/656bb203-0436-41f9-8266-de61f5c29096.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:600;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/8ce6a630-11cb-4fba-be7f-e9f01c898ea2.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/8ce6a630-11cb-4fba-be7f-e9f01c898ea2.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/a55d5255-e095-4e87-ac0d-fe0968b0a9c6.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:italic;font-weight:600;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/6dc72ad9-779c-4857-acb7-2ef161563863.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/6dc72ad9-779c-4857-acb7-2ef161563863.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/632eeeb1-e81b-472c-87cc-6ec84f44c7b2.woff) format(\\\"woff\\\")}.mce-guidelines___PF{shape-rendering:auto}.mce-guidelines___PF .mce-guideline___PF{stroke:#5e5e5e;stroke-width:1;stroke-dasharray:1,1;opacity:1;pointer-events:none}\", \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"mce-guidelines\": \"mce-guidelines___PF\",\n\t\"mce-guideline\": \"mce-guideline___PF\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mce-line-plot___PF,.mce-line-plot__dot___PF,.mce-line-plot__dots___PF,.mce-line-plot__outline___PF{shape-rendering:auto}\", \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"mce-line-plot\": \"mce-line-plot___PF\",\n\t\"mce-line-plot__dot\": \"mce-line-plot__dot___PF\",\n\t\"mce-line-plot__dots\": \"mce-line-plot__dots___PF\",\n\t\"mce-line-plot__outline\": \"mce-line-plot__outline___PF\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mce-line___PF{shape-rendering:auto}\", \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"mce-line\": \"mce-line___PF\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mce-path___PF{shape-rendering:auto}\", \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"mce-path\": \"mce-path___PF\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:100;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/3ff7b647-ed35-4a34-a497-0b8e0455ef09.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/3ff7b647-ed35-4a34-a497-0b8e0455ef09.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/f9c3797f-895f-42e2-9e83-9340081311d6.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:200;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/4236b369-2f95-4452-9326-0e51d1087bdc.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/4236b369-2f95-4452-9326-0e51d1087bdc.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/5a67b0ed-239e-4f3e-adeb-8b1e517a5bd3.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:italic;font-weight:200;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/40115d96-2de2-43ce-a50f-5baba79381b2.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/40115d96-2de2-43ce-a50f-5baba79381b2.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/9df5f782-d089-4356-8fc5-8f4a338019c8.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:300;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/fd397187-4d65-4b13-99ac-e43b94abebcc.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/fd397187-4d65-4b13-99ac-e43b94abebcc.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/600bda4e-11fe-4903-9a39-bb6b77389170.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:italic;font-weight:300;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/30641e69-bdcf-49b9-b7c5-d9e4290f8f0f.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/30641e69-bdcf-49b9-b7c5-d9e4290f8f0f.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/21ca819a-38ec-4f58-92d9-107d0f271416.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:400;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/f1bc8267-a817-408b-a089-4310761881f7.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/f1bc8267-a817-408b-a089-4310761881f7.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/3b5a7b6a-e026-4ee8-b80f-6aa5e44b2977.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:italic;font-weight:400;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/7235be49-0fbf-499c-b3b6-32d85e74fea9.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/7235be49-0fbf-499c-b3b6-32d85e74fea9.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/f8abf68e-0fda-4e20-ab06-995b353028ee.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:500;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/a0041c8f-87d5-4762-9433-d1bd14041dd1.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/a0041c8f-87d5-4762-9433-d1bd14041dd1.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/656bb203-0436-41f9-8266-de61f5c29096.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:normal;font-weight:600;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/8ce6a630-11cb-4fba-be7f-e9f01c898ea2.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/8ce6a630-11cb-4fba-be7f-e9f01c898ea2.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/a55d5255-e095-4e87-ac0d-fe0968b0a9c6.woff) format(\\\"woff\\\")}@font-face{font-display:swap;font-family:Univers;font-style:italic;font-weight:600;src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/6dc72ad9-779c-4857-acb7-2ef161563863.eot);src:url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/6dc72ad9-779c-4857-acb7-2ef161563863.eot?#iefix) format(\\\"embedded-opentype\\\"),url(https://pf-public-live.pfe0b11.eas.morningstar.com/fonts/632eeeb1-e81b-472c-87cc-6ec84f44c7b2.woff) format(\\\"woff\\\")}.pf-line-plot{opacity:1;transition:opacity .2s ease-in-out}.pf-line-plot--not-focused{opacity:.3}.pf-line-plot--config path{cursor:pointer}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n  var list = [];\n\n  // return the list of modules as css string\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = \"\";\n      var needLayer = typeof item[5] !== \"undefined\";\n      if (item[4]) {\n        content += \"@supports (\".concat(item[4], \") {\");\n      }\n      if (item[2]) {\n        content += \"@media \".concat(item[2], \" {\");\n      }\n      if (needLayer) {\n        content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n      }\n      content += cssWithMappingToString(item);\n      if (needLayer) {\n        content += \"}\";\n      }\n      if (item[2]) {\n        content += \"}\";\n      }\n      if (item[4]) {\n        content += \"}\";\n      }\n      return content;\n    }).join(\"\");\n  };\n\n  // import a list of modules into the list\n  list.i = function i(modules, media, dedupe, supports, layer) {\n    if (typeof modules === \"string\") {\n      modules = [[null, modules, undefined]];\n    }\n    var alreadyImportedModules = {};\n    if (dedupe) {\n      for (var k = 0; k < this.length; k++) {\n        var id = this[k][0];\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n    for (var _k = 0; _k < modules.length; _k++) {\n      var item = [].concat(modules[_k]);\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        continue;\n      }\n      if (typeof layer !== \"undefined\") {\n        if (typeof item[5] === \"undefined\") {\n          item[5] = layer;\n        } else {\n          item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n          item[5] = layer;\n        }\n      }\n      if (media) {\n        if (!item[2]) {\n          item[2] = media;\n        } else {\n          item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n          item[2] = media;\n        }\n      }\n      if (supports) {\n        if (!item[4]) {\n          item[4] = \"\".concat(supports);\n        } else {\n          item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n          item[4] = supports;\n        }\n      }\n      list.push(item);\n    }\n  };\n  return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n  return i[1];\n};","exports = module.exports = Victor;\n\n/**\n * # Victor - A JavaScript 2D vector class with methods for common vector operations\n */\n\n/**\n * Constructor. Will also work without the `new` keyword\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = Victor(42, 1337);\n *\n * @param {Number} x Value of the x axis\n * @param {Number} y Value of the y axis\n * @return {Victor}\n * @api public\n */\nfunction Victor (x, y) {\n\tif (!(this instanceof Victor)) {\n\t\treturn new Victor(x, y);\n\t}\n\n\t/**\n\t * The X axis\n\t *\n\t * ### Examples:\n\t *     var vec = new Victor.fromArray(42, 21);\n\t *\n\t *     vec.x;\n\t *     // => 42\n\t *\n\t * @api public\n\t */\n\tthis.x = x || 0;\n\n\t/**\n\t * The Y axis\n\t *\n\t * ### Examples:\n\t *     var vec = new Victor.fromArray(42, 21);\n\t *\n\t *     vec.y;\n\t *     // => 21\n\t *\n\t * @api public\n\t */\n\tthis.y = y || 0;\n};\n\n/**\n * # Static\n */\n\n/**\n * Creates a new instance from an array\n *\n * ### Examples:\n *     var vec = Victor.fromArray([42, 21]);\n *\n *     vec.toString();\n *     // => x:42, y:21\n *\n * @name Victor.fromArray\n * @param {Array} array Array with the x and y values at index 0 and 1 respectively\n * @return {Victor} The new instance\n * @api public\n */\nVictor.fromArray = function (arr) {\n\treturn new Victor(arr[0] || 0, arr[1] || 0);\n};\n\n/**\n * Creates a new instance from an object\n *\n * ### Examples:\n *     var vec = Victor.fromObject({ x: 42, y: 21 });\n *\n *     vec.toString();\n *     // => x:42, y:21\n *\n * @name Victor.fromObject\n * @param {Object} obj Object with the values for x and y\n * @return {Victor} The new instance\n * @api public\n */\nVictor.fromObject = function (obj) {\n\treturn new Victor(obj.x || 0, obj.y || 0);\n};\n\n/**\n * # Manipulation\n *\n * These functions are chainable.\n */\n\n/**\n * Adds another vector's X axis to this one\n *\n * ### Examples:\n *     var vec1 = new Victor(10, 10);\n *     var vec2 = new Victor(20, 30);\n *\n *     vec1.addX(vec2);\n *     vec1.toString();\n *     // => x:30, y:10\n *\n * @param {Victor} vector The other vector you want to add to this one\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.addX = function (vec) {\n\tthis.x += vec.x;\n\treturn this;\n};\n\n/**\n * Adds another vector's Y axis to this one\n *\n * ### Examples:\n *     var vec1 = new Victor(10, 10);\n *     var vec2 = new Victor(20, 30);\n *\n *     vec1.addY(vec2);\n *     vec1.toString();\n *     // => x:10, y:40\n *\n * @param {Victor} vector The other vector you want to add to this one\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.addY = function (vec) {\n\tthis.y += vec.y;\n\treturn this;\n};\n\n/**\n * Adds another vector to this one\n *\n * ### Examples:\n *     var vec1 = new Victor(10, 10);\n *     var vec2 = new Victor(20, 30);\n *\n *     vec1.add(vec2);\n *     vec1.toString();\n *     // => x:30, y:40\n *\n * @param {Victor} vector The other vector you want to add to this one\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.add = function (vec) {\n\tthis.x += vec.x;\n\tthis.y += vec.y;\n\treturn this;\n};\n\n/**\n * Adds the given scalar to both vector axis\n *\n * ### Examples:\n *     var vec = new Victor(1, 2);\n *\n *     vec.addScalar(2);\n *     vec.toString();\n *     // => x: 3, y: 4\n *\n * @param {Number} scalar The scalar to add\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.addScalar = function (scalar) {\n\tthis.x += scalar;\n\tthis.y += scalar;\n\treturn this;\n};\n\n/**\n * Adds the given scalar to the X axis\n *\n * ### Examples:\n *     var vec = new Victor(1, 2);\n *\n *     vec.addScalarX(2);\n *     vec.toString();\n *     // => x: 3, y: 2\n *\n * @param {Number} scalar The scalar to add\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.addScalarX = function (scalar) {\n\tthis.x += scalar;\n\treturn this;\n};\n\n/**\n * Adds the given scalar to the Y axis\n *\n * ### Examples:\n *     var vec = new Victor(1, 2);\n *\n *     vec.addScalarY(2);\n *     vec.toString();\n *     // => x: 1, y: 4\n *\n * @param {Number} scalar The scalar to add\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.addScalarY = function (scalar) {\n\tthis.y += scalar;\n\treturn this;\n};\n\n/**\n * Subtracts the X axis of another vector from this one\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(20, 30);\n *\n *     vec1.subtractX(vec2);\n *     vec1.toString();\n *     // => x:80, y:50\n *\n * @param {Victor} vector The other vector you want subtract from this one\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.subtractX = function (vec) {\n\tthis.x -= vec.x;\n\treturn this;\n};\n\n/**\n * Subtracts the Y axis of another vector from this one\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(20, 30);\n *\n *     vec1.subtractY(vec2);\n *     vec1.toString();\n *     // => x:100, y:20\n *\n * @param {Victor} vector The other vector you want subtract from this one\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.subtractY = function (vec) {\n\tthis.y -= vec.y;\n\treturn this;\n};\n\n/**\n * Subtracts another vector from this one\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(20, 30);\n *\n *     vec1.subtract(vec2);\n *     vec1.toString();\n *     // => x:80, y:20\n *\n * @param {Victor} vector The other vector you want subtract from this one\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.subtract = function (vec) {\n\tthis.x -= vec.x;\n\tthis.y -= vec.y;\n\treturn this;\n};\n\n/**\n * Subtracts the given scalar from both axis\n *\n * ### Examples:\n *     var vec = new Victor(100, 200);\n *\n *     vec.subtractScalar(20);\n *     vec.toString();\n *     // => x: 80, y: 180\n *\n * @param {Number} scalar The scalar to subtract\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.subtractScalar = function (scalar) {\n\tthis.x -= scalar;\n\tthis.y -= scalar;\n\treturn this;\n};\n\n/**\n * Subtracts the given scalar from the X axis\n *\n * ### Examples:\n *     var vec = new Victor(100, 200);\n *\n *     vec.subtractScalarX(20);\n *     vec.toString();\n *     // => x: 80, y: 200\n *\n * @param {Number} scalar The scalar to subtract\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.subtractScalarX = function (scalar) {\n\tthis.x -= scalar;\n\treturn this;\n};\n\n/**\n * Subtracts the given scalar from the Y axis\n *\n * ### Examples:\n *     var vec = new Victor(100, 200);\n *\n *     vec.subtractScalarY(20);\n *     vec.toString();\n *     // => x: 100, y: 180\n *\n * @param {Number} scalar The scalar to subtract\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.subtractScalarY = function (scalar) {\n\tthis.y -= scalar;\n\treturn this;\n};\n\n/**\n * Divides the X axis by the x component of given vector\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *     var vec2 = new Victor(2, 0);\n *\n *     vec.divideX(vec2);\n *     vec.toString();\n *     // => x:50, y:50\n *\n * @param {Victor} vector The other vector you want divide by\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.divideX = function (vector) {\n\tthis.x /= vector.x;\n\treturn this;\n};\n\n/**\n * Divides the Y axis by the y component of given vector\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *     var vec2 = new Victor(0, 2);\n *\n *     vec.divideY(vec2);\n *     vec.toString();\n *     // => x:100, y:25\n *\n * @param {Victor} vector The other vector you want divide by\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.divideY = function (vector) {\n\tthis.y /= vector.y;\n\treturn this;\n};\n\n/**\n * Divides both vector axis by a axis values of given vector\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *     var vec2 = new Victor(2, 2);\n *\n *     vec.divide(vec2);\n *     vec.toString();\n *     // => x:50, y:25\n *\n * @param {Victor} vector The vector to divide by\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.divide = function (vector) {\n\tthis.x /= vector.x;\n\tthis.y /= vector.y;\n\treturn this;\n};\n\n/**\n * Divides both vector axis by the given scalar value\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.divideScalar(2);\n *     vec.toString();\n *     // => x:50, y:25\n *\n * @param {Number} The scalar to divide by\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.divideScalar = function (scalar) {\n\tif (scalar !== 0) {\n\t\tthis.x /= scalar;\n\t\tthis.y /= scalar;\n\t} else {\n\t\tthis.x = 0;\n\t\tthis.y = 0;\n\t}\n\n\treturn this;\n};\n\n/**\n * Divides the X axis by the given scalar value\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.divideScalarX(2);\n *     vec.toString();\n *     // => x:50, y:50\n *\n * @param {Number} The scalar to divide by\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.divideScalarX = function (scalar) {\n\tif (scalar !== 0) {\n\t\tthis.x /= scalar;\n\t} else {\n\t\tthis.x = 0;\n\t}\n\treturn this;\n};\n\n/**\n * Divides the Y axis by the given scalar value\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.divideScalarY(2);\n *     vec.toString();\n *     // => x:100, y:25\n *\n * @param {Number} The scalar to divide by\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.divideScalarY = function (scalar) {\n\tif (scalar !== 0) {\n\t\tthis.y /= scalar;\n\t} else {\n\t\tthis.y = 0;\n\t}\n\treturn this;\n};\n\n/**\n * Inverts the X axis\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.invertX();\n *     vec.toString();\n *     // => x:-100, y:50\n *\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.invertX = function () {\n\tthis.x *= -1;\n\treturn this;\n};\n\n/**\n * Inverts the Y axis\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.invertY();\n *     vec.toString();\n *     // => x:100, y:-50\n *\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.invertY = function () {\n\tthis.y *= -1;\n\treturn this;\n};\n\n/**\n * Inverts both axis\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.invert();\n *     vec.toString();\n *     // => x:-100, y:-50\n *\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.invert = function () {\n\tthis.invertX();\n\tthis.invertY();\n\treturn this;\n};\n\n/**\n * Multiplies the X axis by X component of given vector\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *     var vec2 = new Victor(2, 0);\n *\n *     vec.multiplyX(vec2);\n *     vec.toString();\n *     // => x:200, y:50\n *\n * @param {Victor} vector The vector to multiply the axis with\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.multiplyX = function (vector) {\n\tthis.x *= vector.x;\n\treturn this;\n};\n\n/**\n * Multiplies the Y axis by Y component of given vector\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *     var vec2 = new Victor(0, 2);\n *\n *     vec.multiplyX(vec2);\n *     vec.toString();\n *     // => x:100, y:100\n *\n * @param {Victor} vector The vector to multiply the axis with\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.multiplyY = function (vector) {\n\tthis.y *= vector.y;\n\treturn this;\n};\n\n/**\n * Multiplies both vector axis by values from a given vector\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *     var vec2 = new Victor(2, 2);\n *\n *     vec.multiply(vec2);\n *     vec.toString();\n *     // => x:200, y:100\n *\n * @param {Victor} vector The vector to multiply by\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.multiply = function (vector) {\n\tthis.x *= vector.x;\n\tthis.y *= vector.y;\n\treturn this;\n};\n\n/**\n * Multiplies both vector axis by the given scalar value\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.multiplyScalar(2);\n *     vec.toString();\n *     // => x:200, y:100\n *\n * @param {Number} The scalar to multiply by\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.multiplyScalar = function (scalar) {\n\tthis.x *= scalar;\n\tthis.y *= scalar;\n\treturn this;\n};\n\n/**\n * Multiplies the X axis by the given scalar\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.multiplyScalarX(2);\n *     vec.toString();\n *     // => x:200, y:50\n *\n * @param {Number} The scalar to multiply the axis with\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.multiplyScalarX = function (scalar) {\n\tthis.x *= scalar;\n\treturn this;\n};\n\n/**\n * Multiplies the Y axis by the given scalar\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.multiplyScalarY(2);\n *     vec.toString();\n *     // => x:100, y:100\n *\n * @param {Number} The scalar to multiply the axis with\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.multiplyScalarY = function (scalar) {\n\tthis.y *= scalar;\n\treturn this;\n};\n\n/**\n * Normalize\n *\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.normalize = function () {\n\tvar length = this.length();\n\n\tif (length === 0) {\n\t\tthis.x = 1;\n\t\tthis.y = 0;\n\t} else {\n\t\tthis.divide(Victor(length, length));\n\t}\n\treturn this;\n};\n\nVictor.prototype.norm = Victor.prototype.normalize;\n\n/**\n * If the absolute vector axis is greater than `max`, multiplies the axis by `factor`\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.limit(80, 0.9);\n *     vec.toString();\n *     // => x:90, y:50\n *\n * @param {Number} max The maximum value for both x and y axis\n * @param {Number} factor Factor by which the axis are to be multiplied with\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.limit = function (max, factor) {\n\tif (Math.abs(this.x) > max){ this.x *= factor; }\n\tif (Math.abs(this.y) > max){ this.y *= factor; }\n\treturn this;\n};\n\n/**\n * Randomizes both vector axis with a value between 2 vectors\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.randomize(new Victor(50, 60), new Victor(70, 80`));\n *     vec.toString();\n *     // => x:67, y:73\n *\n * @param {Victor} topLeft first vector\n * @param {Victor} bottomRight second vector\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.randomize = function (topLeft, bottomRight) {\n\tthis.randomizeX(topLeft, bottomRight);\n\tthis.randomizeY(topLeft, bottomRight);\n\n\treturn this;\n};\n\n/**\n * Randomizes the y axis with a value between 2 vectors\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.randomizeX(new Victor(50, 60), new Victor(70, 80`));\n *     vec.toString();\n *     // => x:55, y:50\n *\n * @param {Victor} topLeft first vector\n * @param {Victor} bottomRight second vector\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.randomizeX = function (topLeft, bottomRight) {\n\tvar min = Math.min(topLeft.x, bottomRight.x);\n\tvar max = Math.max(topLeft.x, bottomRight.x);\n\tthis.x = random(min, max);\n\treturn this;\n};\n\n/**\n * Randomizes the y axis with a value between 2 vectors\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.randomizeY(new Victor(50, 60), new Victor(70, 80`));\n *     vec.toString();\n *     // => x:100, y:66\n *\n * @param {Victor} topLeft first vector\n * @param {Victor} bottomRight second vector\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.randomizeY = function (topLeft, bottomRight) {\n\tvar min = Math.min(topLeft.y, bottomRight.y);\n\tvar max = Math.max(topLeft.y, bottomRight.y);\n\tthis.y = random(min, max);\n\treturn this;\n};\n\n/**\n * Randomly randomizes either axis between 2 vectors\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.randomizeAny(new Victor(50, 60), new Victor(70, 80));\n *     vec.toString();\n *     // => x:100, y:77\n *\n * @param {Victor} topLeft first vector\n * @param {Victor} bottomRight second vector\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.randomizeAny = function (topLeft, bottomRight) {\n\tif (!! Math.round(Math.random())) {\n\t\tthis.randomizeX(topLeft, bottomRight);\n\t} else {\n\t\tthis.randomizeY(topLeft, bottomRight);\n\t}\n\treturn this;\n};\n\n/**\n * Rounds both axis to an integer value\n *\n * ### Examples:\n *     var vec = new Victor(100.2, 50.9);\n *\n *     vec.unfloat();\n *     vec.toString();\n *     // => x:100, y:51\n *\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.unfloat = function () {\n\tthis.x = Math.round(this.x);\n\tthis.y = Math.round(this.y);\n\treturn this;\n};\n\n/**\n * Rounds both axis to a certain precision\n *\n * ### Examples:\n *     var vec = new Victor(100.2, 50.9);\n *\n *     vec.unfloat();\n *     vec.toString();\n *     // => x:100, y:51\n *\n * @param {Number} Precision (default: 8)\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.toFixed = function (precision) {\n\tif (typeof precision === 'undefined') { precision = 8; }\n\tthis.x = this.x.toFixed(precision);\n\tthis.y = this.y.toFixed(precision);\n\treturn this;\n};\n\n/**\n * Performs a linear blend / interpolation of the X axis towards another vector\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 100);\n *     var vec2 = new Victor(200, 200);\n *\n *     vec1.mixX(vec2, 0.5);\n *     vec.toString();\n *     // => x:150, y:100\n *\n * @param {Victor} vector The other vector\n * @param {Number} amount The blend amount (optional, default: 0.5)\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.mixX = function (vec, amount) {\n\tif (typeof amount === 'undefined') {\n\t\tamount = 0.5;\n\t}\n\n\tthis.x = (1 - amount) * this.x + amount * vec.x;\n\treturn this;\n};\n\n/**\n * Performs a linear blend / interpolation of the Y axis towards another vector\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 100);\n *     var vec2 = new Victor(200, 200);\n *\n *     vec1.mixY(vec2, 0.5);\n *     vec.toString();\n *     // => x:100, y:150\n *\n * @param {Victor} vector The other vector\n * @param {Number} amount The blend amount (optional, default: 0.5)\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.mixY = function (vec, amount) {\n\tif (typeof amount === 'undefined') {\n\t\tamount = 0.5;\n\t}\n\n\tthis.y = (1 - amount) * this.y + amount * vec.y;\n\treturn this;\n};\n\n/**\n * Performs a linear blend / interpolation towards another vector\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 100);\n *     var vec2 = new Victor(200, 200);\n *\n *     vec1.mix(vec2, 0.5);\n *     vec.toString();\n *     // => x:150, y:150\n *\n * @param {Victor} vector The other vector\n * @param {Number} amount The blend amount (optional, default: 0.5)\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.mix = function (vec, amount) {\n\tthis.mixX(vec, amount);\n\tthis.mixY(vec, amount);\n\treturn this;\n};\n\n/**\n * # Products\n */\n\n/**\n * Creates a clone of this vector\n *\n * ### Examples:\n *     var vec1 = new Victor(10, 10);\n *     var vec2 = vec1.clone();\n *\n *     vec2.toString();\n *     // => x:10, y:10\n *\n * @return {Victor} A clone of the vector\n * @api public\n */\nVictor.prototype.clone = function () {\n\treturn new Victor(this.x, this.y);\n};\n\n/**\n * Copies another vector's X component in to its own\n *\n * ### Examples:\n *     var vec1 = new Victor(10, 10);\n *     var vec2 = new Victor(20, 20);\n *     var vec2 = vec1.copyX(vec1);\n *\n *     vec2.toString();\n *     // => x:20, y:10\n *\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.copyX = function (vec) {\n\tthis.x = vec.x;\n\treturn this;\n};\n\n/**\n * Copies another vector's Y component in to its own\n *\n * ### Examples:\n *     var vec1 = new Victor(10, 10);\n *     var vec2 = new Victor(20, 20);\n *     var vec2 = vec1.copyY(vec1);\n *\n *     vec2.toString();\n *     // => x:10, y:20\n *\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.copyY = function (vec) {\n\tthis.y = vec.y;\n\treturn this;\n};\n\n/**\n * Copies another vector's X and Y components in to its own\n *\n * ### Examples:\n *     var vec1 = new Victor(10, 10);\n *     var vec2 = new Victor(20, 20);\n *     var vec2 = vec1.copy(vec1);\n *\n *     vec2.toString();\n *     // => x:20, y:20\n *\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.copy = function (vec) {\n\tthis.copyX(vec);\n\tthis.copyY(vec);\n\treturn this;\n};\n\n/**\n * Sets the vector to zero (0,0)\n *\n * ### Examples:\n *     var vec1 = new Victor(10, 10);\n *\t\t var1.zero();\n *     vec1.toString();\n *     // => x:0, y:0\n *\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.zero = function () {\n\tthis.x = this.y = 0;\n\treturn this;\n};\n\n/**\n * Calculates the dot product of this vector and another\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(200, 60);\n *\n *     vec1.dot(vec2);\n *     // => 23000\n *\n * @param {Victor} vector The second vector\n * @return {Number} Dot product\n * @api public\n */\nVictor.prototype.dot = function (vec2) {\n\treturn this.x * vec2.x + this.y * vec2.y;\n};\n\nVictor.prototype.cross = function (vec2) {\n\treturn (this.x * vec2.y ) - (this.y * vec2.x );\n};\n\n/**\n * Projects a vector onto another vector, setting itself to the result.\n *\n * ### Examples:\n *     var vec = new Victor(100, 0);\n *     var vec2 = new Victor(100, 100);\n *\n *     vec.projectOnto(vec2);\n *     vec.toString();\n *     // => x:50, y:50\n *\n * @param {Victor} vector The other vector you want to project this vector onto\n * @return {Victor} `this` for chaining capabilities\n * @api public\n */\nVictor.prototype.projectOnto = function (vec2) {\n    var coeff = ( (this.x * vec2.x)+(this.y * vec2.y) ) / ((vec2.x*vec2.x)+(vec2.y*vec2.y));\n    this.x = coeff * vec2.x;\n    this.y = coeff * vec2.y;\n    return this;\n};\n\n\nVictor.prototype.horizontalAngle = function () {\n\treturn Math.atan2(this.y, this.x);\n};\n\nVictor.prototype.horizontalAngleDeg = function () {\n\treturn radian2degrees(this.horizontalAngle());\n};\n\nVictor.prototype.verticalAngle = function () {\n\treturn Math.atan2(this.x, this.y);\n};\n\nVictor.prototype.verticalAngleDeg = function () {\n\treturn radian2degrees(this.verticalAngle());\n};\n\nVictor.prototype.angle = Victor.prototype.horizontalAngle;\nVictor.prototype.angleDeg = Victor.prototype.horizontalAngleDeg;\nVictor.prototype.direction = Victor.prototype.horizontalAngle;\n\nVictor.prototype.rotate = function (angle) {\n\tvar nx = (this.x * Math.cos(angle)) - (this.y * Math.sin(angle));\n\tvar ny = (this.x * Math.sin(angle)) + (this.y * Math.cos(angle));\n\n\tthis.x = nx;\n\tthis.y = ny;\n\n\treturn this;\n};\n\nVictor.prototype.rotateDeg = function (angle) {\n\tangle = degrees2radian(angle);\n\treturn this.rotate(angle);\n};\n\nVictor.prototype.rotateTo = function(rotation) {\n\treturn this.rotate(rotation-this.angle());\n};\n\nVictor.prototype.rotateToDeg = function(rotation) {\n\trotation = degrees2radian(rotation);\n\treturn this.rotateTo(rotation);\n};\n\nVictor.prototype.rotateBy = function (rotation) {\n\tvar angle = this.angle() + rotation;\n\n\treturn this.rotate(angle);\n};\n\nVictor.prototype.rotateByDeg = function (rotation) {\n\trotation = degrees2radian(rotation);\n\treturn this.rotateBy(rotation);\n};\n\n/**\n * Calculates the distance of the X axis between this vector and another\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(200, 60);\n *\n *     vec1.distanceX(vec2);\n *     // => -100\n *\n * @param {Victor} vector The second vector\n * @return {Number} Distance\n * @api public\n */\nVictor.prototype.distanceX = function (vec) {\n\treturn this.x - vec.x;\n};\n\n/**\n * Same as `distanceX()` but always returns an absolute number\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(200, 60);\n *\n *     vec1.absDistanceX(vec2);\n *     // => 100\n *\n * @param {Victor} vector The second vector\n * @return {Number} Absolute distance\n * @api public\n */\nVictor.prototype.absDistanceX = function (vec) {\n\treturn Math.abs(this.distanceX(vec));\n};\n\n/**\n * Calculates the distance of the Y axis between this vector and another\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(200, 60);\n *\n *     vec1.distanceY(vec2);\n *     // => -10\n *\n * @param {Victor} vector The second vector\n * @return {Number} Distance\n * @api public\n */\nVictor.prototype.distanceY = function (vec) {\n\treturn this.y - vec.y;\n};\n\n/**\n * Same as `distanceY()` but always returns an absolute number\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(200, 60);\n *\n *     vec1.distanceY(vec2);\n *     // => 10\n *\n * @param {Victor} vector The second vector\n * @return {Number} Absolute distance\n * @api public\n */\nVictor.prototype.absDistanceY = function (vec) {\n\treturn Math.abs(this.distanceY(vec));\n};\n\n/**\n * Calculates the euclidean distance between this vector and another\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(200, 60);\n *\n *     vec1.distance(vec2);\n *     // => 100.4987562112089\n *\n * @param {Victor} vector The second vector\n * @return {Number} Distance\n * @api public\n */\nVictor.prototype.distance = function (vec) {\n\treturn Math.sqrt(this.distanceSq(vec));\n};\n\n/**\n * Calculates the squared euclidean distance between this vector and another\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(200, 60);\n *\n *     vec1.distanceSq(vec2);\n *     // => 10100\n *\n * @param {Victor} vector The second vector\n * @return {Number} Distance\n * @api public\n */\nVictor.prototype.distanceSq = function (vec) {\n\tvar dx = this.distanceX(vec),\n\t\tdy = this.distanceY(vec);\n\n\treturn dx * dx + dy * dy;\n};\n\n/**\n * Calculates the length or magnitude of the vector\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.length();\n *     // => 111.80339887498948\n *\n * @return {Number} Length / Magnitude\n * @api public\n */\nVictor.prototype.length = function () {\n\treturn Math.sqrt(this.lengthSq());\n};\n\n/**\n * Squared length / magnitude\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *\n *     vec.lengthSq();\n *     // => 12500\n *\n * @return {Number} Length / Magnitude\n * @api public\n */\nVictor.prototype.lengthSq = function () {\n\treturn this.x * this.x + this.y * this.y;\n};\n\nVictor.prototype.magnitude = Victor.prototype.length;\n\n/**\n * Returns a true if vector is (0, 0)\n *\n * ### Examples:\n *     var vec = new Victor(100, 50);\n *     vec.zero();\n *\n *     // => true\n *\n * @return {Boolean}\n * @api public\n */\nVictor.prototype.isZero = function() {\n\treturn this.x === 0 && this.y === 0;\n};\n\n/**\n * Returns a true if this vector is the same as another\n *\n * ### Examples:\n *     var vec1 = new Victor(100, 50);\n *     var vec2 = new Victor(100, 50);\n *     vec1.isEqualTo(vec2);\n *\n *     // => true\n *\n * @return {Boolean}\n * @api public\n */\nVictor.prototype.isEqualTo = function(vec2) {\n\treturn this.x === vec2.x && this.y === vec2.y;\n};\n\n/**\n * # Utility Methods\n */\n\n/**\n * Returns an string representation of the vector\n *\n * ### Examples:\n *     var vec = new Victor(10, 20);\n *\n *     vec.toString();\n *     // => x:10, y:20\n *\n * @return {String}\n * @api public\n */\nVictor.prototype.toString = function () {\n\treturn 'x:' + this.x + ', y:' + this.y;\n};\n\n/**\n * Returns an array representation of the vector\n *\n * ### Examples:\n *     var vec = new Victor(10, 20);\n *\n *     vec.toArray();\n *     // => [10, 20]\n *\n * @return {Array}\n * @api public\n */\nVictor.prototype.toArray = function () {\n\treturn [ this.x, this.y ];\n};\n\n/**\n * Returns an object representation of the vector\n *\n * ### Examples:\n *     var vec = new Victor(10, 20);\n *\n *     vec.toObject();\n *     // => { x: 10, y: 20 }\n *\n * @return {Object}\n * @api public\n */\nVictor.prototype.toObject = function () {\n\treturn { x: this.x, y: this.y };\n};\n\n\nvar degrees = 180 / Math.PI;\n\nfunction random (min, max) {\n    return Math.floor(Math.random() * (max - min + 1) + min);\n}\n\nfunction radian2degrees (rad) {\n\treturn rad * degrees;\n}\n\nfunction degrees2radian (deg) {\n\treturn deg / degrees;\n}\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!../../../@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-21.use[4]!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./circle.vue?vue&type=style&index=0&id=ef805094&prod&lang=scss&module=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1ec589f3\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!../../../@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-21.use[4]!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./group.vue?vue&type=style&index=0&id=831a9fc4&prod&lang=scss&module=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3052eb0c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!../../../@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-21.use[4]!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./guidelines.vue?vue&type=style&index=0&id=1baf2276&prod&lang=scss&module=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3138f646\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!../../../@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-21.use[4]!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./line-plot.vue?vue&type=style&index=0&id=43042dc4&prod&lang=scss&module=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a0e2f4b8\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!../../../@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-21.use[4]!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./line.vue?vue&type=style&index=0&id=34034a1e&prod&lang=scss&module=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"56325c36\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!../../../@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-21.use[3]!../../../sass-loader/dist/cjs.js??clonedRuleSet-21.use[4]!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./path.vue?vue&type=style&index=0&id=678bc2bb&prod&lang=scss&module=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5eeca4ae\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TimeSeriesLine.vue?vue&type=style&index=0&id=3591cefc&prod&lang=scss&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"065c8419\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n  var styles = []\n  var newStyles = {}\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i]\n    var id = item[0]\n    var css = item[1]\n    var media = item[2]\n    var sourceMap = item[3]\n    var part = {\n      id: parentId + ':' + i,\n      css: css,\n      media: media,\n      sourceMap: sourceMap\n    }\n    if (!newStyles[id]) {\n      styles.push(newStyles[id] = { id: id, parts: [part] })\n    } else {\n      newStyles[id].parts.push(part)\n    }\n  }\n  return styles\n}\n","/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n  Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n  if (!hasDocument) {\n    throw new Error(\n    'vue-style-loader cannot be used in a non-browser environment. ' +\n    \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n  ) }\n}\n\n/*\ntype StyleObject = {\n  id: number;\n  parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n  css: string;\n  media: string;\n  sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n  [id: number]: {\n    id: number,\n    refs: number,\n    parts: Array<(obj?: StyleObjectPart) => void>\n  }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n  isProduction = _isProduction\n\n  options = _options || {}\n\n  var styles = listToStyles(parentId, list)\n  addStylesToDom(styles)\n\n  return function update (newList) {\n    var mayRemove = []\n    for (var i = 0; i < styles.length; i++) {\n      var item = styles[i]\n      var domStyle = stylesInDom[item.id]\n      domStyle.refs--\n      mayRemove.push(domStyle)\n    }\n    if (newList) {\n      styles = listToStyles(parentId, newList)\n      addStylesToDom(styles)\n    } else {\n      styles = []\n    }\n    for (var i = 0; i < mayRemove.length; i++) {\n      var domStyle = mayRemove[i]\n      if (domStyle.refs === 0) {\n        for (var j = 0; j < domStyle.parts.length; j++) {\n          domStyle.parts[j]()\n        }\n        delete stylesInDom[domStyle.id]\n      }\n    }\n  }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n  for (var i = 0; i < styles.length; i++) {\n    var item = styles[i]\n    var domStyle = stylesInDom[item.id]\n    if (domStyle) {\n      domStyle.refs++\n      for (var j = 0; j < domStyle.parts.length; j++) {\n        domStyle.parts[j](item.parts[j])\n      }\n      for (; j < item.parts.length; j++) {\n        domStyle.parts.push(addStyle(item.parts[j]))\n      }\n      if (domStyle.parts.length > item.parts.length) {\n        domStyle.parts.length = item.parts.length\n      }\n    } else {\n      var parts = []\n      for (var j = 0; j < item.parts.length; j++) {\n        parts.push(addStyle(item.parts[j]))\n      }\n      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n    }\n  }\n}\n\nfunction createStyleElement () {\n  var styleElement = document.createElement('style')\n  styleElement.type = 'text/css'\n  head.appendChild(styleElement)\n  return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n  var update, remove\n  var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n  if (styleElement) {\n    if (isProduction) {\n      // has SSR styles and in production mode.\n      // simply do nothing.\n      return noop\n    } else {\n      // has SSR styles but in dev mode.\n      // for some reason Chrome can't handle source map in server-rendered\n      // style tags - source maps in <style> only works if the style tag is\n      // created and inserted dynamically. So we remove the server rendered\n      // styles and inject new ones.\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  if (isOldIE) {\n    // use singleton mode for IE9.\n    var styleIndex = singletonCounter++\n    styleElement = singletonElement || (singletonElement = createStyleElement())\n    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n  } else {\n    // use multi-style-tag mode in all other cases\n    styleElement = createStyleElement()\n    update = applyToTag.bind(null, styleElement)\n    remove = function () {\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  update(obj)\n\n  return function updateStyle (newObj /* StyleObjectPart */) {\n    if (newObj) {\n      if (newObj.css === obj.css &&\n          newObj.media === obj.media &&\n          newObj.sourceMap === obj.sourceMap) {\n        return\n      }\n      update(obj = newObj)\n    } else {\n      remove()\n    }\n  }\n}\n\nvar replaceText = (function () {\n  var textStore = []\n\n  return function (index, replacement) {\n    textStore[index] = replacement\n    return textStore.filter(Boolean).join('\\n')\n  }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n  var css = remove ? '' : obj.css\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = replaceText(index, css)\n  } else {\n    var cssNode = document.createTextNode(css)\n    var childNodes = styleElement.childNodes\n    if (childNodes[index]) styleElement.removeChild(childNodes[index])\n    if (childNodes.length) {\n      styleElement.insertBefore(cssNode, childNodes[index])\n    } else {\n      styleElement.appendChild(cssNode)\n    }\n  }\n}\n\nfunction applyToTag (styleElement, obj) {\n  var css = obj.css\n  var media = obj.media\n  var sourceMap = obj.sourceMap\n\n  if (media) {\n    styleElement.setAttribute('media', media)\n  }\n  if (options.ssrId) {\n    styleElement.setAttribute(ssrIdKey, obj.id)\n  }\n\n  if (sourceMap) {\n    // https://developer.chrome.com/devtools/docs/javascript-debugging\n    // this makes source maps inside style tags work properly in Chrome\n    css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n    // http://stackoverflow.com/a/26603875\n    css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n  }\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild)\n    }\n    styleElement.appendChild(document.createTextNode(css))\n  }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n  var currentScript = window.document.currentScript\n  if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n    var getCurrentScript = require('@soda/get-current-script')\n    currentScript = getCurrentScript()\n\n    // for backward compatibility, because previously we directly included the polyfill\n    if (!('currentScript' in document)) {\n      Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n    }\n  }\n\n  var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n  if (src) {\n    __webpack_public_path__ = src[1] // eslint-disable-line\n  }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('g',[(_vm.configuration)?_vm._l((_vm.linePlots.props.data),function(data,line_ndx){return _c('mce-line-plot',{key:'line_trans' + line_ndx,class:[_vm.lineStyle],attrs:{\"color\":\"transparent\",\"line-weight\":20,\"data\":data,\"mouse\":_vm.mouse,\"domain-x\":_vm.domainX,\"domain-y\":_vm.domainY,\"range-x\":_vm.rangeX,\"range-y\":_vm.rangeY,\"scale-type-x\":\"time\",\"scale-type-y\":\"linear\"},on:{\"mousemove-plot\":function($event){return _vm.onHover(line_ndx, $event)},\"mouseleave-plot\":function($event){!_vm.configuration ? (_vm.focusedData = null) : null}},nativeOn:{\"click\":function($event){_vm.configuration ? _vm.onSelect(line_ndx) : null},\"mouseover\":function($event){_vm.hovered = line_ndx},\"mouseleave\":function($event){_vm.hovered = null}}})}):_vm._e(),_vm._l((_vm.linePlots.props.data),function(data,line_ndx){return _c('mce-line-plot',_vm._b({key:'line_' + line_ndx,class:[\n      _vm.lineStyle,\n      'pf-line-plot',\n      {\n        'pf-line-plot--not-focused': _vm.notHovered(data, line_ndx) || _vm.notSelected(data, line_ndx),\n      },\n    ],attrs:{\"color\":_vm.linePlots.props.color[line_ndx],\"dashed\":_vm.linePlots.props.dashed ? _vm.linePlots.props.dashed[line_ndx] : false,\"show-outline\":_vm.linePlots.props.showOutline ? _vm.linePlots.props.showOutline[line_ndx] : false,\"line-weight\":_vm.linePlots.props.lineWeight ? _vm.linePlots.props.lineWeight[line_ndx] : 2,\"data\":data,\"mouse\":_vm.mouse,\"domain-x\":_vm.domainX,\"domain-y\":_vm.domainY,\"range-x\":_vm.rangeX,\"range-y\":_vm.rangeY},on:{\"mousemove-plot\":function($event){return _vm.onHover(line_ndx, $event)},\"mouseleave-plot\":function($event){!_vm.configuration ? (_vm.focusedData = null) : null}},nativeOn:{\"click\":function($event){_vm.configuration ? _vm.onSelect(line_ndx) : null},\"mouseover\":function($event){_vm.hovered = line_ndx},\"mouseleave\":function($event){_vm.hovered = null}}},'mce-line-plot',_vm.linePlots.props,false))}),_c('mce-guidelines',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.mouse && !_vm.configuration),expression:\"mouse && !configuration\"}],attrs:{\"data\":_vm.guides}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('mce-group',{class:_vm.$style['mce-line-plot'],attrs:{\"data-mce-version\":_vm.version}},[(_vm.showOutline)?_c('mce-group',{class:_vm.$style['mce-line-plot__outline']},[(_vm.showDots && _vm.scaleTypeX !== 'time')?_vm._l((_vm.dotCoordinates),function(d){return _c('mce-circle',{key:d.id,style:(_vm.dotOutlineStyles),attrs:{\"r\":d.r,\"cx\":d.cx,\"cy\":d.cy}})}):_vm._e(),_c('mce-path',{style:(_vm.lineOutlineStyle),attrs:{\"d\":_vm.lineCoordinates}})],2):_vm._e(),_c('mce-path',{style:(_vm.lineStyles),attrs:{\"d\":_vm.lineCoordinates}}),_c('defs',[_vm._t(\"pattern\")],2),(_vm.showDots && _vm.scaleTypeX !== 'time')?_c('mce-group',{class:_vm.$style['mce-line-plot__dots']},_vm._l((_vm.dotCoordinates),function(d,i){return _c('mce-circle',{key:d.id,class:_vm.$style['mce-line-plot__dot'],style:(_vm.dotStyles),attrs:{\"r\":d.r,\"cx\":d.cx,\"cy\":d.cy,\"data-mce-id\":d.id},on:{\"mouseenter\":function($event){return _vm.onMouseEnter($event, d, i, 'line-dot')},\"mouseleave\":_vm.onMouseLeave}})}),1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function range(start, stop, step) {\n  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n  var i = -1,\n      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n      range = new Array(n);\n\n  while (++i < n) {\n    range[i] = start + i * step;\n  }\n\n  return range;\n}\n","export function initRange(domain, range) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: this.range(domain); break;\n    default: this.range(range).domain(domain); break;\n  }\n  return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: {\n      if (typeof domain === \"function\") this.interpolator(domain);\n      else this.range(domain);\n      break;\n    }\n    default: {\n      this.domain(domain);\n      if (typeof interpolator === \"function\") this.interpolator(interpolator);\n      else this.range(interpolator);\n      break;\n    }\n  }\n  return this;\n}\n","export class InternMap extends Map {\n  constructor(entries, key = keyof) {\n    super();\n    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n    if (entries != null) for (const [key, value] of entries) this.set(key, value);\n  }\n  get(key) {\n    return super.get(intern_get(this, key));\n  }\n  has(key) {\n    return super.has(intern_get(this, key));\n  }\n  set(key, value) {\n    return super.set(intern_set(this, key), value);\n  }\n  delete(key) {\n    return super.delete(intern_delete(this, key));\n  }\n}\n\nexport class InternSet extends Set {\n  constructor(values, key = keyof) {\n    super();\n    Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n    if (values != null) for (const value of values) this.add(value);\n  }\n  has(value) {\n    return super.has(intern_get(this, value));\n  }\n  add(value) {\n    return super.add(intern_set(this, value));\n  }\n  delete(value) {\n    return super.delete(intern_delete(this, value));\n  }\n}\n\nfunction intern_get({_intern, _key}, value) {\n  const key = _key(value);\n  return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n  const key = _key(value);\n  if (_intern.has(key)) return _intern.get(key);\n  _intern.set(key, value);\n  return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n  const key = _key(value);\n  if (_intern.has(key)) {\n    value = _intern.get(key);\n    _intern.delete(key);\n  }\n  return value;\n}\n\nfunction keyof(value) {\n  return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n  var index = new InternMap(),\n      domain = [],\n      range = [],\n      unknown = implicit;\n\n  function scale(d) {\n    let i = index.get(d);\n    if (i === undefined) {\n      if (unknown !== implicit) return unknown;\n      index.set(d, i = domain.push(d) - 1);\n    }\n    return range[i % range.length];\n  }\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [], index = new InternMap();\n    for (const value of _) {\n      if (index.has(value)) continue;\n      index.set(value, domain.push(value) - 1);\n    }\n    return scale;\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), scale) : range.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return ordinal(domain, range).unknown(unknown);\n  };\n\n  initRange.apply(scale, arguments);\n\n  return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n  var scale = ordinal().unknown(undefined),\n      domain = scale.domain,\n      ordinalRange = scale.range,\n      r0 = 0,\n      r1 = 1,\n      step,\n      bandwidth,\n      round = false,\n      paddingInner = 0,\n      paddingOuter = 0,\n      align = 0.5;\n\n  delete scale.unknown;\n\n  function rescale() {\n    var n = domain().length,\n        reverse = r1 < r0,\n        start = reverse ? r1 : r0,\n        stop = reverse ? r0 : r1;\n    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n    if (round) step = Math.floor(step);\n    start += (stop - start - step * (n - paddingInner)) * align;\n    bandwidth = step * (1 - paddingInner);\n    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n    var values = sequence(n).map(function(i) { return start + step * i; });\n    return ordinalRange(reverse ? values.reverse() : values);\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain(_), rescale()) : domain();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n  };\n\n  scale.rangeRound = function(_) {\n    return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n  };\n\n  scale.bandwidth = function() {\n    return bandwidth;\n  };\n\n  scale.step = function() {\n    return step;\n  };\n\n  scale.round = function(_) {\n    return arguments.length ? (round = !!_, rescale()) : round;\n  };\n\n  scale.padding = function(_) {\n    return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n  };\n\n  scale.paddingInner = function(_) {\n    return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n  };\n\n  scale.paddingOuter = function(_) {\n    return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n  };\n\n  scale.align = function(_) {\n    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n  };\n\n  scale.copy = function() {\n    return band(domain(), [r0, r1])\n        .round(round)\n        .paddingInner(paddingInner)\n        .paddingOuter(paddingOuter)\n        .align(align);\n  };\n\n  return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n  var copy = scale.copy;\n\n  scale.padding = scale.paddingOuter;\n  delete scale.paddingInner;\n  delete scale.paddingOuter;\n\n  scale.copy = function() {\n    return pointish(copy());\n  };\n\n  return scale;\n}\n\nexport function point() {\n  return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function number(x) {\n  return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  }\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n  values = Float64Array.from(numbers(values, valueof));\n  if (!(n = values.length) || isNaN(p = +p)) return;\n  if (p <= 0 || n < 2) return min(values);\n  if (p >= 1) return max(values);\n  var n,\n      i = (n - 1) * p,\n      i0 = Math.floor(i),\n      value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n      value1 = min(values.subarray(i0 + 1));\n  return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n  if (!(n = values.length) || isNaN(p = +p)) return;\n  if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n  if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n  var n,\n      i = (n - 1) * p,\n      i0 = Math.floor(i),\n      value0 = +valueof(values[i0], i0, values),\n      value1 = +valueof(values[i0 + 1], i0 + 1, values);\n  return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof) {\n  values = Float64Array.from(numbers(values, valueof));\n  if (!(n = values.length) || isNaN(p = +p)) return;\n  if (p <= 0 || n < 2) return minIndex(values);\n  if (p >= 1) return maxIndex(values);\n  var n,\n      i = Math.floor((n - 1) * p),\n      order = (i, j) => ascendingDefined(values[i], values[j]),\n      index = quickselect(Uint32Array.from(values, (_, i) => i), i, 0, n - 1, order);\n  return greatest(index.subarray(0, i + 1), i => values[i]);\n}\n","export default function ascending(a, b) {\n  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n  return a == null || b == null ? NaN\n    : b < a ? -1\n    : b > a ? 1\n    : b >= a ? 0\n    : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n  let compare1, compare2, delta;\n\n  // If an accessor is specified, promote it to a comparator. In this case we\n  // can test whether the search value is (self-) comparable. We can’t do this\n  // for a comparator (except for specific, known comparators) because we can’t\n  // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n  // used to test whether a single value is comparable.\n  if (f.length !== 2) {\n    compare1 = ascending;\n    compare2 = (d, x) => ascending(f(d), x);\n    delta = (d, x) => f(d) - x;\n  } else {\n    compare1 = f === ascending || f === descending ? f : zero;\n    compare2 = f;\n    delta = f;\n  }\n\n  function left(a, x, lo = 0, hi = a.length) {\n    if (lo < hi) {\n      if (compare1(x, x) !== 0) return hi;\n      do {\n        const mid = (lo + hi) >>> 1;\n        if (compare2(a[mid], x) < 0) lo = mid + 1;\n        else hi = mid;\n      } while (lo < hi);\n    }\n    return lo;\n  }\n\n  function right(a, x, lo = 0, hi = a.length) {\n    if (lo < hi) {\n      if (compare1(x, x) !== 0) return hi;\n      do {\n        const mid = (lo + hi) >>> 1;\n        if (compare2(a[mid], x) <= 0) lo = mid + 1;\n        else hi = mid;\n      } while (lo < hi);\n    }\n    return lo;\n  }\n\n  function center(a, x, lo = 0, hi = a.length) {\n    const i = left(a, x, lo, hi - 1);\n    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n  }\n\n  return {left, center, right};\n}\n\nfunction zero() {\n  return 0;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n  var domain = [],\n      range = [],\n      thresholds = [],\n      unknown;\n\n  function rescale() {\n    var i = 0, n = Math.max(1, range.length);\n    thresholds = new Array(n - 1);\n    while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n    return scale;\n  }\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n  }\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return i < 0 ? [NaN, NaN] : [\n      i > 0 ? thresholds[i - 1] : domain[0],\n      i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n    ];\n  };\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [];\n    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n    domain.sort(ascending);\n    return rescale();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.quantiles = function() {\n    return thresholds.slice();\n  };\n\n  scale.copy = function() {\n    return quantile()\n        .domain(domain)\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return initRange.apply(scale, arguments);\n}\n","import { scaleBand, scaleQuantile } from 'd3-scale';\n\nexport default {\n    computed: {\n        scaleBandDomain() {\n            return [...Array(this.domainY.length).keys()];\n        },\n        yScale() {\n            return scaleBand()\n                .domain(this.scaleBandDomain)\n                .range(this.rangeY)\n                .paddingInner(this.paddingInner)\n                .paddingOuter(this.paddingInner / 2);\n        },\n    },\n    methods: {\n        invertScaleBandY(y) {\n            return scaleQuantile().domain(this.yScale.range()).range(this.yScale.domain())(y);\n        },\n        getYValue() {\n            return this.invertScaleBandY(this.mouse.offsetY);\n        },\n        getXValue() {\n            const yValue = this.getYValue();\n            return this.data[yValue];\n        },\n        onMouseMove() {\n            const _dataIndex = this.getYValue();\n            const { id, ...rest } = this.getXValue();\n\n            return {\n                position: this.mouse,\n                data: {\n                    ...rest,\n                    _dataIndex,\n                    _itemId: id,\n                },\n            };\n        },\n    },\n};\n","const e10 = Math.sqrt(50),\n    e5 = Math.sqrt(10),\n    e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n  const step = (stop - start) / Math.max(0, count),\n      power = Math.floor(Math.log10(step)),\n      error = step / Math.pow(10, power),\n      factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n  let i1, i2, inc;\n  if (power < 0) {\n    inc = Math.pow(10, -power) / factor;\n    i1 = Math.round(start * inc);\n    i2 = Math.round(stop * inc);\n    if (i1 / inc < start) ++i1;\n    if (i2 / inc > stop) --i2;\n    inc = -inc;\n  } else {\n    inc = Math.pow(10, power) * factor;\n    i1 = Math.round(start / inc);\n    i2 = Math.round(stop / inc);\n    if (i1 * inc < start) ++i1;\n    if (i2 * inc > stop) --i2;\n  }\n  if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n  return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n  stop = +stop, start = +start, count = +count;\n  if (!(count > 0)) return [];\n  if (start === stop) return [start];\n  const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n  if (!(i2 >= i1)) return [];\n  const n = i2 - i1 + 1, ticks = new Array(n);\n  if (reverse) {\n    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n    else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n  } else {\n    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n    else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n  }\n  return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n  stop = +stop, start = +start, count = +count;\n  return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n  stop = +stop, start = +start, count = +count;\n  const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n  return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex = /^#([0-9a-f]{3,8})$/,\n    reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n    reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n    reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n    reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n    reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n    reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n  copy(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\n  formatHex8: color_formatHex8,\n  formatHsl: color_formatHsl,\n  formatRgb: color_formatRgb,\n  toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n  return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n  return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n  return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n  return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n  var m, l;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb() {\n    return this;\n  },\n  clamp() {\n    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n  },\n  displayable() {\n    return (-0.5 <= this.r && this.r < 255.5)\n        && (-0.5 <= this.g && this.g < 255.5)\n        && (-0.5 <= this.b && this.b < 255.5)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: rgb_formatHex,\n  formatHex8: rgb_formatHex8,\n  formatRgb: rgb_formatRgb,\n  toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n  const a = clampa(this.opacity);\n  return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n  return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n  value = clampi(value);\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  clamp() {\n    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n  },\n  displayable() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  formatHsl() {\n    const a = clampa(this.opacity);\n    return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n  }\n}));\n\nfunction clamph(value) {\n  value = (value || 0) % 360;\n  return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n  return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n  var t2 = t1 * t1, t3 = t2 * t1;\n  return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n      + (4 - 6 * t2 + 3 * t3) * v1\n      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n      + t3 * v3) / 6;\n}\n\nexport default function(values) {\n  var n = values.length - 1;\n  return function(t) {\n    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n        v1 = values[i],\n        v2 = values[i + 1],\n        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n  var n = values.length;\n  return function(t) {\n    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n        v0 = values[(i + n - 1) % n],\n        v1 = values[i % n],\n        v2 = values[(i + 1) % n],\n        v3 = values[(i + 2) % n];\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n  return function(t) {\n    return a + t * d;\n  };\n}\n\nfunction exponential(a, b, y) {\n  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n    return Math.pow(a + t * b, y);\n  };\n}\n\nexport function hue(a, b) {\n  var d = b - a;\n  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n  return (y = +y) === 1 ? nogamma : function(a, b) {\n    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n  };\n}\n\nexport default function nogamma(a, b) {\n  var d = b - a;\n  return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n  var color = gamma(y);\n\n  function rgb(start, end) {\n    var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n        g = color(start.g, end.g),\n        b = color(start.b, end.b),\n        opacity = nogamma(start.opacity, end.opacity);\n    return function(t) {\n      start.r = r(t);\n      start.g = g(t);\n      start.b = b(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n\n  rgb.gamma = rgbGamma;\n\n  return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n  return function(colors) {\n    var n = colors.length,\n        r = new Array(n),\n        g = new Array(n),\n        b = new Array(n),\n        i, color;\n    for (i = 0; i < n; ++i) {\n      color = colorRgb(colors[i]);\n      r[i] = color.r || 0;\n      g[i] = color.g || 0;\n      b[i] = color.b || 0;\n    }\n    r = spline(r);\n    g = spline(g);\n    b = spline(b);\n    color.opacity = 1;\n    return function(t) {\n      color.r = r(t);\n      color.g = g(t);\n      color.b = b(t);\n      return color + \"\";\n    };\n  };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n  return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n  var nb = b ? b.length : 0,\n      na = a ? Math.min(nb, a.length) : 0,\n      x = new Array(na),\n      c = new Array(nb),\n      i;\n\n  for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n  for (; i < nb; ++i) c[i] = b[i];\n\n  return function(t) {\n    for (i = 0; i < na; ++i) c[i] = x[i](t);\n    return c;\n  };\n}\n","export default function(a, b) {\n  var d = new Date;\n  return a = +a, b = +b, function(t) {\n    return d.setTime(a * (1 - t) + b * t), d;\n  };\n}\n","export default function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return a * (1 - t) + b * t;\n  };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n  var i = {},\n      c = {},\n      k;\n\n  if (a === null || typeof a !== \"object\") a = {};\n  if (b === null || typeof b !== \"object\") b = {};\n\n  for (k in b) {\n    if (k in a) {\n      i[k] = value(a[k], b[k]);\n    } else {\n      c[k] = b[k];\n    }\n  }\n\n  return function(t) {\n    for (k in i) c[k] = i[k](t);\n    return c;\n  };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n    reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n  return function() {\n    return b;\n  };\n}\n\nfunction one(b) {\n  return function(t) {\n    return b(t) + \"\";\n  };\n}\n\nexport default function(a, b) {\n  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n      am, // current match in a\n      bm, // current match in b\n      bs, // string preceding current number in b, if any\n      i = -1, // index in s\n      s = [], // string constants and placeholders\n      q = []; // number interpolators\n\n  // Coerce inputs to strings.\n  a = a + \"\", b = b + \"\";\n\n  // Interpolate pairs of numbers in a & b.\n  while ((am = reA.exec(a))\n      && (bm = reB.exec(b))) {\n    if ((bs = bm.index) > bi) { // a string precedes the next number in b\n      bs = b.slice(bi, bs);\n      if (s[i]) s[i] += bs; // coalesce with previous string\n      else s[++i] = bs;\n    }\n    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n      if (s[i]) s[i] += bm; // coalesce with previous string\n      else s[++i] = bm;\n    } else { // interpolate non-matching numbers\n      s[++i] = null;\n      q.push({i: i, x: number(am, bm)});\n    }\n    bi = reB.lastIndex;\n  }\n\n  // Add remains of b.\n  if (bi < b.length) {\n    bs = b.slice(bi);\n    if (s[i]) s[i] += bs; // coalesce with previous string\n    else s[++i] = bs;\n  }\n\n  // Special optimization for only a single match.\n  // Otherwise, interpolate each of the numbers and rejoin the string.\n  return s.length < 2 ? (q[0]\n      ? one(q[0].x)\n      : zero(b))\n      : (b = q.length, function(t) {\n          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n          return s.join(\"\");\n        });\n}\n","export default function(a, b) {\n  if (!b) b = [];\n  var n = a ? Math.min(b.length, a.length) : 0,\n      c = b.slice(),\n      i;\n  return function(t) {\n    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n    return c;\n  };\n}\n\nexport function isNumberArray(x) {\n  return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n  var t = typeof b, c;\n  return b == null || t === \"boolean\" ? constant(b)\n      : (t === \"number\" ? number\n      : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n      : b instanceof color ? rgb\n      : b instanceof Date ? date\n      : isNumberArray(b) ? numberArray\n      : Array.isArray(b) ? genericArray\n      : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n      : number)(a, b);\n}\n","export default function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return Math.round(a * (1 - t) + b * t);\n  };\n}\n","export default function constants(x) {\n  return function() {\n    return x;\n  };\n}\n","export default function number(x) {\n  return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n  return x;\n}\n\nfunction normalize(a, b) {\n  return (b -= (a = +a))\n      ? function(x) { return (x - a) / b; }\n      : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n  var t;\n  if (a > b) t = a, a = b, b = t;\n  return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n  else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n  return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n  var j = Math.min(domain.length, range.length) - 1,\n      d = new Array(j),\n      r = new Array(j),\n      i = -1;\n\n  // Reverse descending domains.\n  if (domain[j] < domain[0]) {\n    domain = domain.slice().reverse();\n    range = range.slice().reverse();\n  }\n\n  while (++i < j) {\n    d[i] = normalize(domain[i], domain[i + 1]);\n    r[i] = interpolate(range[i], range[i + 1]);\n  }\n\n  return function(x) {\n    var i = bisect(domain, x, 1, j) - 1;\n    return r[i](d[i](x));\n  };\n}\n\nexport function copy(source, target) {\n  return target\n      .domain(source.domain())\n      .range(source.range())\n      .interpolate(source.interpolate())\n      .clamp(source.clamp())\n      .unknown(source.unknown());\n}\n\nexport function transformer() {\n  var domain = unit,\n      range = unit,\n      interpolate = interpolateValue,\n      transform,\n      untransform,\n      unknown,\n      clamp = identity,\n      piecewise,\n      output,\n      input;\n\n  function rescale() {\n    var n = Math.min(domain.length, range.length);\n    if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n    piecewise = n > 2 ? polymap : bimap;\n    output = input = null;\n    return scale;\n  }\n\n  function scale(x) {\n    return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n  }\n\n  scale.invert = function(y) {\n    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n  };\n\n  scale.rangeRound = function(_) {\n    return range = Array.from(_), interpolate = interpolateRound, rescale();\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n  };\n\n  scale.interpolate = function(_) {\n    return arguments.length ? (interpolate = _, rescale()) : interpolate;\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t, u) {\n    transform = t, untransform = u;\n    return rescale();\n  };\n}\n\nexport default function continuous() {\n  return transformer()(identity, identity);\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n  if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n  var match;\n  return new FormatSpecifier({\n    fill: match[1],\n    align: match[2],\n    sign: match[3],\n    symbol: match[4],\n    zero: match[5],\n    width: match[6],\n    comma: match[7],\n    precision: match[8] && match[8].slice(1),\n    trim: match[9],\n    type: match[10]\n  });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n  this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n  this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n  this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n  this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n  this.zero = !!specifier.zero;\n  this.width = specifier.width === undefined ? undefined : +specifier.width;\n  this.comma = !!specifier.comma;\n  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n  this.trim = !!specifier.trim;\n  this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n  return this.fill\n      + this.align\n      + this.sign\n      + this.symbol\n      + (this.zero ? \"0\" : \"\")\n      + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n      + (this.comma ? \",\" : \"\")\n      + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n      + (this.trim ? \"~\" : \"\")\n      + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n  var d = formatDecimalParts(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1],\n      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n      n = coefficient.length;\n  return i === n ? coefficient\n      : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n      : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n      : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","export default function(x) {\n  return Math.abs(x = Math.round(x)) >= 1e21\n      ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n      : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n  var i, coefficient = x.slice(0, i);\n\n  // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n  // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n  return [\n    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n    +x.slice(i + 1)\n  ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n  return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n  return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","export default function(grouping, thousands) {\n  return function(value, width) {\n    var i = value.length,\n        t = [],\n        j = 0,\n        g = grouping[0],\n        length = 0;\n\n    while (i > 0 && g > 0) {\n      if (length + g + 1 > width) g = Math.max(1, width - length);\n      t.push(value.substring(i -= g, i + g));\n      if ((length += g + 1) > width) break;\n      g = grouping[j = (j + 1) % grouping.length];\n    }\n\n    return t.reverse().join(thousands);\n  };\n}\n","export default function(numerals) {\n  return function(value) {\n    return value.replace(/[0-9]/g, function(i) {\n      return numerals[+i];\n    });\n  };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n    switch (s[i]) {\n      case \".\": i0 = i1 = i; break;\n      case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n    }\n  }\n  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n  var d = formatDecimalParts(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1];\n  return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n      : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n  \"%\": (x, p) => (x * 100).toFixed(p),\n  \"b\": (x) => Math.round(x).toString(2),\n  \"c\": (x) => x + \"\",\n  \"d\": formatDecimal,\n  \"e\": (x, p) => x.toExponential(p),\n  \"f\": (x, p) => x.toFixed(p),\n  \"g\": (x, p) => x.toPrecision(p),\n  \"o\": (x) => Math.round(x).toString(8),\n  \"p\": (x, p) => formatRounded(x * 100, p),\n  \"r\": formatRounded,\n  \"s\": formatPrefixAuto,\n  \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n  \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n  return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n    prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n  var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n      currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n      currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n      decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n      numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n      percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n      minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n      nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n  function newFormat(specifier) {\n    specifier = formatSpecifier(specifier);\n\n    var fill = specifier.fill,\n        align = specifier.align,\n        sign = specifier.sign,\n        symbol = specifier.symbol,\n        zero = specifier.zero,\n        width = specifier.width,\n        comma = specifier.comma,\n        precision = specifier.precision,\n        trim = specifier.trim,\n        type = specifier.type;\n\n    // The \"n\" type is an alias for \",g\".\n    if (type === \"n\") comma = true, type = \"g\";\n\n    // The \"\" type, and any invalid type, is an alias for \".12~g\".\n    else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n    // If zero fill is specified, padding goes after sign and before digits.\n    if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n    // Compute the prefix and suffix.\n    // For SI-prefix, the suffix is lazily computed.\n    var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n        suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n    // What format function should we use?\n    // Is this an integer type?\n    // Can this type generate exponential notation?\n    var formatType = formatTypes[type],\n        maybeSuffix = /[defgprs%]/.test(type);\n\n    // Set the default precision if not specified,\n    // or clamp the specified precision to the supported range.\n    // For significant precision, it must be in [1, 21].\n    // For fixed precision, it must be in [0, 20].\n    precision = precision === undefined ? 6\n        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n        : Math.max(0, Math.min(20, precision));\n\n    function format(value) {\n      var valuePrefix = prefix,\n          valueSuffix = suffix,\n          i, n, c;\n\n      if (type === \"c\") {\n        valueSuffix = formatType(value) + valueSuffix;\n        value = \"\";\n      } else {\n        value = +value;\n\n        // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n        var valueNegative = value < 0 || 1 / value < 0;\n\n        // Perform the initial formatting.\n        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n        // Trim insignificant zeros.\n        if (trim) value = formatTrim(value);\n\n        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n        if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n        // Compute the prefix and suffix.\n        valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n        valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n        // Break the formatted value into the integer “value” part that can be\n        // grouped, and fractional or exponential “suffix” part that is not.\n        if (maybeSuffix) {\n          i = -1, n = value.length;\n          while (++i < n) {\n            if (c = value.charCodeAt(i), 48 > c || c > 57) {\n              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n              value = value.slice(0, i);\n              break;\n            }\n          }\n        }\n      }\n\n      // If the fill character is not \"0\", grouping is applied before padding.\n      if (comma && !zero) value = group(value, Infinity);\n\n      // Compute the padding.\n      var length = valuePrefix.length + value.length + valueSuffix.length,\n          padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n      // If the fill character is \"0\", grouping is applied after padding.\n      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n      // Reconstruct the final output based on the desired alignment.\n      switch (align) {\n        case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n        case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n        case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n        default: value = padding + valuePrefix + value + valueSuffix; break;\n      }\n\n      return numerals(value);\n    }\n\n    format.toString = function() {\n      return specifier + \"\";\n    };\n\n    return format;\n  }\n\n  function formatPrefix(specifier, value) {\n    var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n        e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n        k = Math.pow(10, -e),\n        prefix = prefixes[8 + e / 3];\n    return function(value) {\n      return f(k * value) + prefix;\n    };\n  }\n\n  return {\n    format: newFormat,\n    formatPrefix: formatPrefix\n  };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n  thousands: \",\",\n  grouping: [3],\n  currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  format = locale.format;\n  formatPrefix = locale.formatPrefix;\n  return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n  step = Math.abs(step), max = Math.abs(max) - step;\n  return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n  return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n  var step = tickStep(start, stop, count),\n      precision;\n  specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n  switch (specifier.type) {\n    case \"s\": {\n      var value = Math.max(Math.abs(start), Math.abs(stop));\n      if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n      return formatPrefix(specifier, value);\n    }\n    case \"\":\n    case \"e\":\n    case \"g\":\n    case \"p\":\n    case \"r\": {\n      if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n      break;\n    }\n    case \"f\":\n    case \"%\": {\n      if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n      break;\n    }\n  }\n  return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n  var domain = scale.domain;\n\n  scale.ticks = function(count) {\n    var d = domain();\n    return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    var d = domain();\n    return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n  };\n\n  scale.nice = function(count) {\n    if (count == null) count = 10;\n\n    var d = domain();\n    var i0 = 0;\n    var i1 = d.length - 1;\n    var start = d[i0];\n    var stop = d[i1];\n    var prestep;\n    var step;\n    var maxIter = 10;\n\n    if (stop < start) {\n      step = start, start = stop, stop = step;\n      step = i0, i0 = i1, i1 = step;\n    }\n    \n    while (maxIter-- > 0) {\n      step = tickIncrement(start, stop, count);\n      if (step === prestep) {\n        d[i0] = start\n        d[i1] = stop\n        return domain(d);\n      } else if (step > 0) {\n        start = Math.floor(start / step) * step;\n        stop = Math.ceil(stop / step) * step;\n      } else if (step < 0) {\n        start = Math.ceil(start * step) / step;\n        stop = Math.floor(stop * step) / step;\n      } else {\n        break;\n      }\n      prestep = step;\n    }\n\n    return scale;\n  };\n\n  return scale;\n}\n\nexport default function linear() {\n  var scale = continuous();\n\n  scale.copy = function() {\n    return copy(scale, linear());\n  };\n\n  initRange.apply(scale, arguments);\n\n  return linearish(scale);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n  var x0 = 0,\n      x1 = 1,\n      n = 1,\n      domain = [0.5],\n      range = [0, 1],\n      unknown;\n\n  function scale(x) {\n    return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n  }\n\n  function rescale() {\n    var i = -1;\n    domain = new Array(n);\n    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n    return scale;\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n  };\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return i < 0 ? [NaN, NaN]\n        : i < 1 ? [x0, domain[0]]\n        : i >= n ? [domain[n - 1], x1]\n        : [domain[i - 1], domain[i]];\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : scale;\n  };\n\n  scale.thresholds = function() {\n    return domain.slice();\n  };\n\n  scale.copy = function() {\n    return quantize()\n        .domain([x0, x1])\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return initRange.apply(linearish(scale), arguments);\n}\n","import { scaleQuantize } from 'd3-scale';\nimport { bisector } from 'd3-array';\n\n/**\n * Private methods that don't need access to component\n */\nexport const bisectDate = bisector(next => {\n    return next.value.x;\n}).left;\n\nexport default {\n    computed: {\n        /**\n         * bisector will not work with an array that has null values so\n         * we create a new array without them and map to the original via the item id\n         */\n        filteredData() {\n            return this.data.filter(item => item.value !== null);\n        },\n    },\n    methods: {\n        invertScaleBandX(x) {\n            return scaleQuantize().domain(this.xScale.range()).range(this.xScale.domain())(x);\n        },\n\n        getXValueByTime(xDate) {\n            /**\n             * The last two parameters of the bisect fn are the bounds of the search within data (lo, hi)\n             * 1 = start at index 1 since we know we will compare values around the mouse\n\n             * The index is the index to the right of the mouse (date older) unless there's a direct match\n             */\n            const index = bisectDate(this.filteredData, xDate, 1, this.filteredData.length - 1);\n\n            // get the bisector index (right of the mouse) and index left of mouse\n            const v0 = this.filteredData[index - 1].value.x;\n            const v1 = this.filteredData[index].value.x;\n\n            // if the difference left of the cursor is greater, return right and vice-versa\n            const closestIndex = xDate - v0 > v1 - xDate ? index : index - 1;\n\n            const valueId = this.filteredData[closestIndex].id;\n            return this.data.findIndex(item => item.id === valueId);\n        },\n\n        getXValue() {\n            if (this.scaleTypeX === 'band') {\n                return this.invertScaleBandX(this.mouse.offsetX);\n            }\n            const xDate = this.xScale.invert(this.mouse.offsetX);\n            return this.getXValueByTime(xDate);\n        },\n        getYValue() {\n            const xValue = this.getXValue();\n\n            return {\n                yValue: this.data[xValue],\n                _dataIndex: xValue,\n            };\n        },\n        onMouseMove() {\n            const { yValue, _dataIndex } = this.getYValue();\n            const { id, ...rest } = yValue;\n            const closestPoint = this.dotCoordinates.find(dot => id === dot.id);\n\n            return {\n                position: this.mouse,\n                data: {\n                    ...rest,\n                    _dataIndex,\n                    _itemId: id,\n                    /**\n                     * Provided to allow \"snapping\" elements to the nearest data point on line path.\n                     * For missing data on x band scale, return null.\n                     */\n                    _closestPoint: closestPoint\n                        ? {\n                              x: closestPoint.cx,\n                              y: closestPoint.cy,\n                          }\n                        : null,\n                },\n            };\n        },\n    },\n};\n","export const EVENTS = {\n    MOUSEMOVE_PLOT: 'mousemove-plot',\n    MOUSELEAVE_PLOT: 'mouseleave-plot',\n    MOUSEENTER_ITEM: 'mouseenter-item',\n    MOUSELEAVE_ITEM: 'mouseleave-item',\n    MOUSEMOVE_ITEM: 'mousemove-item',\n};\n\nexport default {\n    EVENTS,\n};\n","export default function(event) {\n  let sourceEvent;\n  while (sourceEvent = event.sourceEvent) event = sourceEvent;\n  return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n  event = sourceEvent(event);\n  if (node === undefined) node = event.currentTarget;\n  if (node) {\n    var svg = node.ownerSVGElement || node;\n    if (svg.createSVGPoint) {\n      var point = svg.createSVGPoint();\n      point.x = event.clientX, point.y = event.clientY;\n      point = point.matrixTransform(node.getScreenCTM().inverse());\n      return [point.x, point.y];\n    }\n    if (node.getBoundingClientRect) {\n      var rect = node.getBoundingClientRect();\n      return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n    }\n  }\n  return [event.pageX, event.pageY];\n}\n","import { EVENTS } from '../constants.js';\nimport { pointer } from 'd3-selection';\n\nexport default {\n    methods: {\n        inRange(value, bin) {\n            if (this.scaleType === 'time') {\n                return bin.x0.getTime() === value.getTime() || (bin.x1 > value && bin.x0 < value);\n            }\n            return bin.x1 > value && bin.x0 < value;\n        },\n        getNearestBound(value, bins) {\n            return value < bins[0].x0 ? 0 : bins.length - 1;\n        },\n        getBinSize(index) {\n            return this.bins[index].length;\n        },\n\n        getXValue() {\n            return this.xScale.invert(this.mouse.offsetX);\n        },\n        getYValue() {\n            const xValue = this.getXValue();\n\n            const binIndex = this.bins.findIndex(bin => this.inRange(xValue, bin));\n            const index = binIndex === -1 ? this.getNearestBound(xValue, this.bins) : [binIndex];\n\n            return { index, bins: this.bins, threshold: [this.bins[index].x0, this.bins[index].x1] };\n        },\n        onMouseEnter($event, bins, index, type) {\n            const { pageX, pageY } = $event;\n            const [offsetX, offsetY] = pointer($event);\n            const mousePayload = {\n                target: $event.currentTarget,\n                targetType: type,\n                position: {\n                    offsetX,\n                    offsetY,\n                    pageX,\n                    pageY,\n                },\n                data: {\n                    size: bins.length,\n                    threshold: [bins.x0, bins.x1],\n                    //reserved\n                    _bins: bins,\n                    _dataIndex: index,\n                },\n            };\n\n            this.$emit(EVENTS.MOUSEENTER_ITEM, mousePayload);\n        },\n        onMouseMove() {\n            const { index, bins, threshold } = this.getYValue();\n            const size = this.getBinSize(index);\n\n            return {\n                position: this.mouse,\n                data: {\n                    size,\n                    threshold,\n                    //reserved\n                    _bins: bins,\n                    _dataIndex: index,\n                },\n            };\n        },\n        onMouseLeave() {\n            this.$emit(EVENTS.MOUSELEAVE_ITEM);\n        },\n    },\n};\n","import { scaleBand, scaleQuantize } from 'd3-scale';\n\nexport default {\n    computed: {\n        scaleBandDomain() {\n            return [...Array(this.domainX.length).keys()];\n        },\n        xScale() {\n            return scaleBand()\n                .domain(this.scaleBandDomain)\n                .range(this.rangeX)\n                .paddingInner(this.paddingInner)\n                .paddingOuter(this.paddingInner / 2);\n        },\n    },\n    methods: {\n        invertScaleBandX(x) {\n            return scaleQuantize().domain(this.xScale.range()).range(this.xScale.domain())(x);\n        },\n\n        getXValue() {\n            return this.invertScaleBandX(this.mouse.offsetX);\n        },\n        getYValue() {\n            const xValue = this.getXValue();\n            return this.data[xValue];\n        },\n    },\n};\n","import { EVENTS } from '../constants.js';\nimport { pointer } from 'd3-selection';\n\nexport default {\n    methods: {\n        setMouseTarget(mouseData) {\n            this.mouseTarget = mouseData;\n        },\n        resetMouseTarget() {\n            this.mouseTarget = null;\n        },\n        setMouseTargetId(id) {\n            this.mouseTargetId = id;\n        },\n        resetMouseTargetId() {\n            this.mouseTargetId = '';\n        },\n\n        // Scatter plots offer both mouseenter and mousemove events.\n        // Applying both in a weighted scatter plot eliminate an issue where pointer events aren't\n        // consistent in overlapping circles.\n        onMouseEnter($event, mouseData, group, index, type) {\n            const { pageX, pageY } = $event;\n            // radius is manipulated internally and not something users can choose\n            const { id, radius, ...rest } = mouseData;\n\n            this.setMouseTargetId(group.id);\n            this.setMouseTarget(mouseData);\n\n            const mousePayload = {\n                target: $event.currentTarget,\n                targetType: type,\n                data: {\n                    ...rest,\n                    // reserved properties:\n                    _itemId: id,\n                    _groupId: group.id,\n                    _dataIndex: index,\n                },\n                position: {\n                    pageX,\n                    pageY,\n                },\n            };\n\n            this.$emit(EVENTS.MOUSEENTER_ITEM, mousePayload);\n        },\n        onMouseMove($event, mouseData, group, index) {\n            const { pageX, pageY } = $event;\n            const [offsetX, offsetY] = pointer($event);\n            // radius is manipulated internally and not something users can choose\n            const { id, radius, ...rest } = mouseData;\n\n            const mousePayload = {\n                position: {\n                    offsetX,\n                    offsetY,\n                    pageX,\n                    pageY,\n                },\n                data: {\n                    ...rest,\n                    // reserved properties:\n                    _itemId: id,\n                    _groupId: group.id,\n                    _dataIndex: index,\n                },\n            };\n\n            this.$emit(EVENTS.MOUSEMOVE_ITEM, mousePayload);\n        },\n        onMouseLeave($event) {\n            this.resetMouseTarget();\n            this.resetMouseTargetId();\n            this.$emit(EVENTS.MOUSELEAVE_ITEM, $event);\n        },\n    },\n};\n","import { pointer } from 'd3-selection';\nimport { EVENTS } from '../constants.js';\n\nexport default {\n    methods: {\n        // donut does not receive the mouse prop\n        // because only the donut itself is relevant for hover\n        onMouseMove($event, data, index) {\n            const { id, ...rest } = data;\n            const { pageX, pageY } = $event;\n            const [x, y] = pointer($event);\n            const mouseData = {\n                target: $event.target,\n                position: {\n                    offsetX: x,\n                    offsetY: y,\n                    pageX,\n                    pageY,\n                },\n                data: {\n                    ...rest,\n                    //reserved\n                    _dataIndex: index,\n                    _itemId: id,\n                },\n            };\n            this.$emit(EVENTS.MOUSEMOVE_PLOT, mouseData);\n        },\n        onMouseLeave($event) {\n            this.$emit(EVENTS.MOUSELEAVE_PLOT, $event);\n        },\n    },\n};\n","import { EVENTS } from '../constants.js';\nimport Victor from 'victor';\n\nexport default {\n    methods: {\n        getClosestPointIndex(target, points) {\n            // Computes the closest point by comparing the squared distance from the target to each point\n            // We use squared distance because it's faster than the actual distance computation which involves an expensive Math.sqrt() operation\n            // Reference: http://victorjs.org/#distancesq\n            let closestPointIndex = -1;\n            let closestDistanceSquared = Infinity;\n            points.forEach((p, i) => {\n                const distanceSquared = target.distanceSq(p);\n                if (distanceSquared < closestDistanceSquared) {\n                    closestDistanceSquared = distanceSquared;\n                    closestPointIndex = i;\n                }\n            });\n            return closestPointIndex;\n        },\n        transformDataPoint(dataPoint) {\n            return {\n                id: dataPoint.id,\n                _columnIndex: dataPoint.columnIndex,\n                x: dataPoint.top.x,\n                y: this.data[dataPoint.columnIndex].value,\n                yTotal: dataPoint.top.y > 0 ? dataPoint.top.y : dataPoint.bottom.y,\n            };\n        },\n        calcTotalYValue(array, positive) {\n            return array.reduce((p, d) => {\n                if ((positive && d.value < 0) || (!positive && d.value > 0)) return p + 0;\n\n                return p + d.value;\n            }, 0);\n        },\n        onMouseEnter($event, stackRow, index, type) {\n            const { pageX, pageY, offsetX, offsetY } = $event;\n            const mousePayload = {\n                target: $event.currentTarget,\n                targetType: type,\n                data: {\n                    _areaIndex: index,\n                    value: stackRow.map(this.transformDataPoint),\n                },\n                position: {\n                    pageX,\n                    pageY,\n                    offsetX,\n                    offsetY,\n                },\n            };\n            this.$emit(EVENTS.MOUSEENTER_ITEM, mousePayload);\n        },\n        onMouseMove() {\n            const { pageX, pageY, offsetX, offsetY } = this.mouse;\n            const mousePoint = new Victor(offsetX, offsetY);\n            const coordinates = this.interactionDataPoints.reduce((p, d) => {\n                p.push(d.topScaled, d.bottomScaled);\n                return p;\n            }, []);\n            const closestCoordinateIndex = this.getClosestPointIndex(mousePoint, coordinates);\n            const closestCoordinate = coordinates[closestCoordinateIndex];\n            const closestDataPointIndex = Math.floor(closestCoordinateIndex / 2);\n            const closestDataPoint = this.interactionDataPoints[closestDataPointIndex];\n            const yValueList = this.data[closestDataPoint.columnIndex].value;\n            return {\n                data: {\n                    _itemId: closestDataPoint.id,\n                    value: {\n                        x: this.transformDataPoint(closestDataPoint).x,\n                        yTotal: this.calcTotalYValue(yValueList, true),\n                        yNegativeTotal: this.calcTotalYValue(yValueList, false),\n                        y: this.data[closestDataPoint.columnIndex].value,\n                    },\n                    _closestPoint: {\n                        x: closestCoordinate.x,\n                        y: closestCoordinate.y,\n                    },\n                },\n                position: {\n                    pageX,\n                    pageY,\n                    offsetX,\n                    offsetY,\n                },\n            };\n        },\n        onMouseLeave($event) {\n            this.$emit(EVENTS.MOUSELEAVE_ITEM, $event);\n        },\n    },\n};\n","import HorizontalBar from './plot-types/horizontal-bar.js';\nimport Line from './plot-types/line.js';\nimport Histogram from './plot-types/histogram.js';\nimport VerticalBar from './plot-types/vertical-bar.js';\nimport ScatterPlot from './plot-types/scatter.js';\nimport Donut from './plot-types/donut.js';\nimport AreaPlotStacked from './plot-types/area-plot-stacked.js';\nimport { EVENTS } from './constants.js';\n\nconst configurations = {\n    line: Line,\n    histogram: Histogram,\n    'horizontal-bar': HorizontalBar,\n    'vertical-bar': VerticalBar,\n    'scatter-plot': ScatterPlot,\n    donut: Donut,\n    'area-plot-stacked': AreaPlotStacked,\n};\n\nconst baseMixin = {\n    props: {\n        mouse: {\n            type: Object,\n            docs: {\n                validation: '—',\n                description: 'Accepts a mouse event object.',\n            },\n        },\n    },\n    watch: {\n        mouse: {\n            handler() {\n                if (this.mouse) {\n                    this.$emit(EVENTS.MOUSEMOVE_PLOT, this.onMouseMove());\n                } else {\n                    // Triggered when the mouse leaves the plot via mce-pointer\n                    this.$emit(EVENTS.MOUSELEAVE_PLOT);\n                }\n            },\n        },\n    },\n    methods: {\n        onMouseMove() {\n            const _dataIndex = this.getXValue();\n            const { id, ...rest } = this.getYValue();\n\n            return {\n                position: this.mouse,\n                data: {\n                    ...rest,\n                    _dataIndex,\n                    _itemId: id,\n                },\n            };\n        },\n        mouseDataAccessor(d) {\n            return d;\n        },\n        mouseDataAccessorStacked(d) {\n            return d.value && d.value.data;\n        },\n        // Used for when a plot item is entered\n        onMouseEnter(...args) {\n            this.$emit(EVENTS.MOUSEENTER_ITEM, this.getMouseEnterData(...args));\n        },\n        // Used for when a plot item is exited\n        onMouseLeave($event) {\n            this.$emit(EVENTS.MOUSELEAVE_ITEM, $event);\n        },\n        getMouseEnterData($event, data, index, type) {\n            const { pageX, pageY } = $event;\n            let stackData;\n\n            const { id, ...rest } = this.mouseDataAccessor(data);\n\n            stackData = this.mouseDataAccessorStacked(data);\n\n            const mouseData = {\n                target: $event.currentTarget,\n                targetType: type,\n                data: {\n                    ...rest,\n                    _itemId: id,\n                    _dataIndex: index,\n                },\n                position: {\n                    pageX,\n                    pageY,\n                },\n            };\n\n            if (stackData) {\n                mouseData.data._groupId = stackData.id;\n            }\n\n            return mouseData;\n        },\n        propagateEvent(...args) {\n            const [name, ...params] = args;\n            this.$emit(name, ...params);\n        },\n    },\n};\n\nexport default (type = 'vertical-bar') => {\n    // these element types do not use the mouse prop\n    const noBase = ['donut', 'scatter'];\n\n    if (noBase.includes(type)) {\n        return configurations[type];\n    }\n\n    // configurations will override base mixin (data function, lifecycle would merge... be careful)\n    configurations[type].extends = baseMixin;\n    return configurations[type];\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('circle',_vm._g({class:_vm.$style['mce-circle'],attrs:{\"cx\":_vm.cx,\"cy\":_vm.cy,\"r\":_vm.r,\"data-mce-version\":_vm.version}},_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <circle\n        :class=\"$style['mce-circle']\"\n        :cx=\"cx\"\n        :cy=\"cy\"\n        :r=\"r\"\n        :data-mce-version=\"version\"\n        v-on=\"$listeners\"\n    />\n</template>\n\n<script>\n    import packageFile from '../package.json';\n\n    export default {\n        name: 'MceCircle',\n        props: {\n            cx: {\n                type: Number,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description: 'Sets `cx` attribute on the SVG `circle` element.',\n                },\n            },\n            cy: {\n                type: Number,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description: 'Sets `cy` attribute on the SVG `circle` element.',\n                },\n            },\n            r: {\n                type: Number,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description: 'Sets `r` attribute on the SVG `circle` element.',\n                },\n            },\n        },\n        data() {\n            return {\n                version: `${packageFile.name}-${packageFile.version}`,\n            };\n        },\n    };\n</script>\n\n<style\n    lang=\"scss\"\n    module\n>\n    .mce-circle {\n        shape-rendering: auto;\n    }\n</style>\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./circle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./circle.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */,\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options =\n    typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) {\n    // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n          injectStyles.call(\n            this,\n            (options.functional ? this.parent : this).$root.$options.shadowRoot\n          )\n        }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection(h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","import { render, staticRenderFns } from \"./circle.vue?vue&type=template&id=ef805094&\"\nimport script from \"./circle.vue?vue&type=script&lang=js&\"\nexport * from \"./circle.vue?vue&type=script&lang=js&\"\nimport style0 from \"./circle.vue?vue&type=style&index=0&id=ef805094&prod&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n  \n  this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  null\n  \n)\n\nexport default component.exports","import MceCircle from './src/circle.vue';\n\nexport default MceCircle;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('path',_vm._g({class:_vm.$style['mce-path'],attrs:{\"d\":_vm.d,\"data-mce-version\":_vm.version}},_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <path\n        :class=\"$style['mce-path']\"\n        :d=\"d\"\n        :data-mce-version=\"version\"\n        v-on=\"$listeners\"\n    />\n</template>\n\n<script>\n    import packageFile from '../package.json';\n\n    export default {\n        name: 'McePath',\n        props: {\n            d: {\n                type: String,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description: 'Sets `d` attribute on the SVG `path` element.',\n                },\n            },\n        },\n        data() {\n            return {\n                version: `${packageFile.name}-${packageFile.version}`,\n            };\n        },\n    };\n</script>\n\n<style\n    lang=\"scss\"\n    module\n>\n    .mce-path {\n        shape-rendering: auto;\n    }\n</style>\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./path.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./path.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./path.vue?vue&type=template&id=678bc2bb&\"\nimport script from \"./path.vue?vue&type=script&lang=js&\"\nexport * from \"./path.vue?vue&type=script&lang=js&\"\nimport style0 from \"./path.vue?vue&type=style&index=0&id=678bc2bb&prod&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n  \n  this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  null\n  \n)\n\nexport default component.exports","import McePath from './src/path.vue';\n\nexport default McePath;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('g',_vm._g({class:_vm.$style['mce-group'],attrs:{\"data-mce-version\":_vm.version,\"transform\":_vm.groupTransformer}},_vm.$listeners),[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <g\n        :class=\"$style['mce-group']\"\n        :data-mce-version=\"version\"\n        :transform=\"groupTransformer\"\n        v-on=\"$listeners\"\n    >\n        <slot />\n    </g>\n</template>\n\n<script>\n    import packageFile from '../package.json';\n\n    export default {\n        name: 'MceGroup',\n        props: {\n            offset: {\n                type: Array,\n                docs: {\n                    validation: 'An array with two integers: [top, left]',\n                    description: 'A shorthand for transform: translate(top, left)',\n                },\n                validator: v => Array.isArray(v) && v.length === 2,\n            },\n        },\n        data() {\n            return {\n                version: `${packageFile.name}-${packageFile.version}`,\n            };\n        },\n        computed: {\n            groupTransformer() {\n                if (this.offset) {\n                    return `translate(${this.offset[0]}, ${this.offset[1]})`;\n                }\n\n                return null;\n            },\n        },\n    };\n</script>\n\n<style\n    lang=\"scss\"\n    module\n>\n    .mce-group {\n        shape-rendering: auto;\n    }\n</style>\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./group.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./group.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group.vue?vue&type=template&id=831a9fc4&\"\nimport script from \"./group.vue?vue&type=script&lang=js&\"\nexport * from \"./group.vue?vue&type=script&lang=js&\"\nimport style0 from \"./group.vue?vue&type=style&index=0&id=831a9fc4&prod&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n  \n  this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  null\n  \n)\n\nexport default component.exports","import MceGroup from './src/group.vue';\n\nexport default MceGroup;\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n  return typeof x === \"object\" && \"length\" in x\n    ? x // Array, TypedArray, NodeList, array-like\n    : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n  return function constant() {\n    return x;\n  };\n}\n","function Linear(context) {\n  this._context = context;\n}\n\nLinear.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; // falls through\n      default: this._context.lineTo(x, y); break;\n    }\n  }\n};\n\nexport default function(context) {\n  return new Linear(context);\n}\n","const pi = Math.PI,\n    tau = 2 * pi,\n    epsilon = 1e-6,\n    tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n  this._ += strings[0];\n  for (let i = 1, n = strings.length; i < n; ++i) {\n    this._ += arguments[i] + strings[i];\n  }\n}\n\nfunction appendRound(digits) {\n  let d = Math.floor(digits);\n  if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n  if (d > 15) return append;\n  const k = 10 ** d;\n  return function(strings) {\n    this._ += strings[0];\n    for (let i = 1, n = strings.length; i < n; ++i) {\n      this._ += Math.round(arguments[i] * k) / k + strings[i];\n    }\n  };\n}\n\nexport class Path {\n  constructor(digits) {\n    this._x0 = this._y0 = // start of current subpath\n    this._x1 = this._y1 = null; // end of current subpath\n    this._ = \"\";\n    this._append = digits == null ? append : appendRound(digits);\n  }\n  moveTo(x, y) {\n    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n  }\n  closePath() {\n    if (this._x1 !== null) {\n      this._x1 = this._x0, this._y1 = this._y0;\n      this._append`Z`;\n    }\n  }\n  lineTo(x, y) {\n    this._append`L${this._x1 = +x},${this._y1 = +y}`;\n  }\n  quadraticCurveTo(x1, y1, x, y) {\n    this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n  }\n  bezierCurveTo(x1, y1, x2, y2, x, y) {\n    this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n  }\n  arcTo(x1, y1, x2, y2, r) {\n    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(`negative radius: ${r}`);\n\n    let x0 = this._x1,\n        y0 = this._y1,\n        x21 = x2 - x1,\n        y21 = y2 - y1,\n        x01 = x0 - x1,\n        y01 = y0 - y1,\n        l01_2 = x01 * x01 + y01 * y01;\n\n    // Is this path empty? Move to (x1,y1).\n    if (this._x1 === null) {\n      this._append`M${this._x1 = x1},${this._y1 = y1}`;\n    }\n\n    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n    else if (!(l01_2 > epsilon));\n\n    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n    // Equivalently, is (x1,y1) coincident with (x2,y2)?\n    // Or, is the radius zero? Line to (x1,y1).\n    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n      this._append`L${this._x1 = x1},${this._y1 = y1}`;\n    }\n\n    // Otherwise, draw an arc!\n    else {\n      let x20 = x2 - x0,\n          y20 = y2 - y0,\n          l21_2 = x21 * x21 + y21 * y21,\n          l20_2 = x20 * x20 + y20 * y20,\n          l21 = Math.sqrt(l21_2),\n          l01 = Math.sqrt(l01_2),\n          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n          t01 = l / l01,\n          t21 = l / l21;\n\n      // If the start tangent is not coincident with (x0,y0), line to.\n      if (Math.abs(t01 - 1) > epsilon) {\n        this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n      }\n\n      this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n    }\n  }\n  arc(x, y, r, a0, a1, ccw) {\n    x = +x, y = +y, r = +r, ccw = !!ccw;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(`negative radius: ${r}`);\n\n    let dx = r * Math.cos(a0),\n        dy = r * Math.sin(a0),\n        x0 = x + dx,\n        y0 = y + dy,\n        cw = 1 ^ ccw,\n        da = ccw ? a0 - a1 : a1 - a0;\n\n    // Is this path empty? Move to (x0,y0).\n    if (this._x1 === null) {\n      this._append`M${x0},${y0}`;\n    }\n\n    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n      this._append`L${x0},${y0}`;\n    }\n\n    // Is this arc empty? We’re done.\n    if (!r) return;\n\n    // Does the angle go the wrong way? Flip the direction.\n    if (da < 0) da = da % tau + tau;\n\n    // Is this a complete circle? Draw two arcs to complete the circle.\n    if (da > tauEpsilon) {\n      this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n    }\n\n    // Is this arc non-empty? Draw an arc!\n    else if (da > epsilon) {\n      this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n    }\n  }\n  rect(x, y, w, h) {\n    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n  }\n  toString() {\n    return this._;\n  }\n}\n\nexport function path() {\n  return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n  return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n  let digits = 3;\n\n  shape.digits = function(_) {\n    if (!arguments.length) return digits;\n    if (_ == null) {\n      digits = null;\n    } else {\n      const d = Math.floor(_);\n      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n      digits = d;\n    }\n    return shape;\n  };\n\n  return () => new Path(digits);\n}\n","export function x(p) {\n  return p[0];\n}\n\nexport function y(p) {\n  return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n  var defined = constant(true),\n      context = null,\n      curve = curveLinear,\n      output = null,\n      path = withPath(line);\n\n  x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n  y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n  function line(data) {\n    var i,\n        n = (data = array(data)).length,\n        d,\n        defined0 = false,\n        buffer;\n\n    if (context == null) output = curve(buffer = path());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) output.lineStart();\n        else output.lineEnd();\n      }\n      if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  line.x = function(_) {\n    return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n  };\n\n  line.y = function(_) {\n    return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n  };\n\n  line.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n  };\n\n  line.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n  };\n\n  line.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n  };\n\n  return line;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n  return function(x) {\n    return Math.sign(x) * Math.log1p(Math.abs(x / c));\n  };\n}\n\nfunction transformSymexp(c) {\n  return function(x) {\n    return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n  };\n}\n\nexport function symlogish(transform) {\n  var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n  scale.constant = function(_) {\n    return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n  };\n\n  return linearish(scale);\n}\n\nexport default function symlog() {\n  var scale = symlogish(transformer());\n\n  scale.copy = function() {\n    return copy(scale, symlog()).constant(scale.constant());\n  };\n\n  return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n  function interval(date) {\n    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n  }\n\n  interval.floor = (date) => {\n    return floori(date = new Date(+date)), date;\n  };\n\n  interval.ceil = (date) => {\n    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n  };\n\n  interval.round = (date) => {\n    const d0 = interval(date), d1 = interval.ceil(date);\n    return date - d0 < d1 - date ? d0 : d1;\n  };\n\n  interval.offset = (date, step) => {\n    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n  };\n\n  interval.range = (start, stop, step) => {\n    const range = [];\n    start = interval.ceil(start);\n    step = step == null ? 1 : Math.floor(step);\n    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n    let previous;\n    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n    while (previous < start && start < stop);\n    return range;\n  };\n\n  interval.filter = (test) => {\n    return timeInterval((date) => {\n      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n    }, (date, step) => {\n      if (date >= date) {\n        if (step < 0) while (++step <= 0) {\n          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n        } else while (--step >= 0) {\n          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n        }\n      }\n    });\n  };\n\n  if (count) {\n    interval.count = (start, end) => {\n      t0.setTime(+start), t1.setTime(+end);\n      floori(t0), floori(t1);\n      return Math.floor(count(t0, t1));\n    };\n\n    interval.every = (step) => {\n      step = Math.floor(step);\n      return !isFinite(step) || !(step > 0) ? null\n          : !(step > 1) ? interval\n          : interval.filter(field\n              ? (d) => field(d) % step === 0\n              : (d) => interval.count(0, d) % step === 0);\n    };\n  }\n\n  return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n  // noop\n}, (date, step) => {\n  date.setTime(+date + step);\n}, (start, end) => {\n  return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n  k = Math.floor(k);\n  if (!isFinite(k) || !(k > 0)) return null;\n  if (!(k > 1)) return millisecond;\n  return timeInterval((date) => {\n    date.setTime(Math.floor(date / k) * k);\n  }, (date, step) => {\n    date.setTime(+date + step * k);\n  }, (start, end) => {\n    return (end - start) / k;\n  });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n  date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n  date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n  return (end - start) / durationSecond;\n}, (date) => {\n  return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n  date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n  return (end - start) / durationMinute;\n}, (date) => {\n  return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n  date.setUTCSeconds(0, 0);\n}, (date, step) => {\n  date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n  return (end - start) / durationMinute;\n}, (date) => {\n  return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n  date.setTime(+date + step * durationHour);\n}, (start, end) => {\n  return (end - start) / durationHour;\n}, (date) => {\n  return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n  date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n  date.setTime(+date + step * durationHour);\n}, (start, end) => {\n  return (end - start) / durationHour;\n}, (date) => {\n  return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n  date => date.setHours(0, 0, 0, 0),\n  (date, step) => date.setDate(date.getDate() + step),\n  (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n  date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n  date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n  return (end - start) / durationDay;\n}, (date) => {\n  return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n  date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n  return (end - start) / durationDay;\n}, (date) => {\n  return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n  return timeInterval((date) => {\n    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n    date.setHours(0, 0, 0, 0);\n  }, (date, step) => {\n    date.setDate(date.getDate() + step * 7);\n  }, (start, end) => {\n    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n  });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n  return timeInterval((date) => {\n    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n    date.setUTCHours(0, 0, 0, 0);\n  }, (date, step) => {\n    date.setUTCDate(date.getUTCDate() + step * 7);\n  }, (start, end) => {\n    return (end - start) / durationWeek;\n  });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n  date.setDate(1);\n  date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n  return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n  date.setUTCDate(1);\n  date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n  return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n  date.setMonth(0, 1);\n  date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n  return end.getFullYear() - start.getFullYear();\n}, (date) => {\n  return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n    date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n    date.setMonth(0, 1);\n    date.setHours(0, 0, 0, 0);\n  }, (date, step) => {\n    date.setFullYear(date.getFullYear() + step * k);\n  });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n  date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n  return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n  return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n    date.setUTCMonth(0, 1);\n    date.setUTCHours(0, 0, 0, 0);\n  }, (date, step) => {\n    date.setUTCFullYear(date.getUTCFullYear() + step * k);\n  });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n  const tickIntervals = [\n    [second,  1,      durationSecond],\n    [second,  5,  5 * durationSecond],\n    [second, 15, 15 * durationSecond],\n    [second, 30, 30 * durationSecond],\n    [minute,  1,      durationMinute],\n    [minute,  5,  5 * durationMinute],\n    [minute, 15, 15 * durationMinute],\n    [minute, 30, 30 * durationMinute],\n    [  hour,  1,      durationHour  ],\n    [  hour,  3,  3 * durationHour  ],\n    [  hour,  6,  6 * durationHour  ],\n    [  hour, 12, 12 * durationHour  ],\n    [   day,  1,      durationDay   ],\n    [   day,  2,  2 * durationDay   ],\n    [  week,  1,      durationWeek  ],\n    [ month,  1,      durationMonth ],\n    [ month,  3,  3 * durationMonth ],\n    [  year,  1,      durationYear  ]\n  ];\n\n  function ticks(start, stop, count) {\n    const reverse = stop < start;\n    if (reverse) [start, stop] = [stop, start];\n    const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n    const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n    return reverse ? ticks.reverse() : ticks;\n  }\n\n  function tickInterval(start, stop, count) {\n    const target = Math.abs(stop - start) / count;\n    const i = bisector(([,, step]) => step).right(tickIntervals, target);\n    if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n    if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n    const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n    return t.every(step);\n  }\n\n  return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n  timeDay,\n  timeSunday,\n  timeMonday,\n  timeThursday,\n  timeYear,\n  utcDay,\n  utcSunday,\n  utcMonday,\n  utcThursday,\n  utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n    date.setFullYear(d.y);\n    return date;\n  }\n  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n    date.setUTCFullYear(d.y);\n    return date;\n  }\n  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n  var locale_dateTime = locale.dateTime,\n      locale_date = locale.date,\n      locale_time = locale.time,\n      locale_periods = locale.periods,\n      locale_weekdays = locale.days,\n      locale_shortWeekdays = locale.shortDays,\n      locale_months = locale.months,\n      locale_shortMonths = locale.shortMonths;\n\n  var periodRe = formatRe(locale_periods),\n      periodLookup = formatLookup(locale_periods),\n      weekdayRe = formatRe(locale_weekdays),\n      weekdayLookup = formatLookup(locale_weekdays),\n      shortWeekdayRe = formatRe(locale_shortWeekdays),\n      shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n      monthRe = formatRe(locale_months),\n      monthLookup = formatLookup(locale_months),\n      shortMonthRe = formatRe(locale_shortMonths),\n      shortMonthLookup = formatLookup(locale_shortMonths);\n\n  var formats = {\n    \"a\": formatShortWeekday,\n    \"A\": formatWeekday,\n    \"b\": formatShortMonth,\n    \"B\": formatMonth,\n    \"c\": null,\n    \"d\": formatDayOfMonth,\n    \"e\": formatDayOfMonth,\n    \"f\": formatMicroseconds,\n    \"g\": formatYearISO,\n    \"G\": formatFullYearISO,\n    \"H\": formatHour24,\n    \"I\": formatHour12,\n    \"j\": formatDayOfYear,\n    \"L\": formatMilliseconds,\n    \"m\": formatMonthNumber,\n    \"M\": formatMinutes,\n    \"p\": formatPeriod,\n    \"q\": formatQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatSeconds,\n    \"u\": formatWeekdayNumberMonday,\n    \"U\": formatWeekNumberSunday,\n    \"V\": formatWeekNumberISO,\n    \"w\": formatWeekdayNumberSunday,\n    \"W\": formatWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatYear,\n    \"Y\": formatFullYear,\n    \"Z\": formatZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var utcFormats = {\n    \"a\": formatUTCShortWeekday,\n    \"A\": formatUTCWeekday,\n    \"b\": formatUTCShortMonth,\n    \"B\": formatUTCMonth,\n    \"c\": null,\n    \"d\": formatUTCDayOfMonth,\n    \"e\": formatUTCDayOfMonth,\n    \"f\": formatUTCMicroseconds,\n    \"g\": formatUTCYearISO,\n    \"G\": formatUTCFullYearISO,\n    \"H\": formatUTCHour24,\n    \"I\": formatUTCHour12,\n    \"j\": formatUTCDayOfYear,\n    \"L\": formatUTCMilliseconds,\n    \"m\": formatUTCMonthNumber,\n    \"M\": formatUTCMinutes,\n    \"p\": formatUTCPeriod,\n    \"q\": formatUTCQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatUTCSeconds,\n    \"u\": formatUTCWeekdayNumberMonday,\n    \"U\": formatUTCWeekNumberSunday,\n    \"V\": formatUTCWeekNumberISO,\n    \"w\": formatUTCWeekdayNumberSunday,\n    \"W\": formatUTCWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatUTCYear,\n    \"Y\": formatUTCFullYear,\n    \"Z\": formatUTCZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var parses = {\n    \"a\": parseShortWeekday,\n    \"A\": parseWeekday,\n    \"b\": parseShortMonth,\n    \"B\": parseMonth,\n    \"c\": parseLocaleDateTime,\n    \"d\": parseDayOfMonth,\n    \"e\": parseDayOfMonth,\n    \"f\": parseMicroseconds,\n    \"g\": parseYear,\n    \"G\": parseFullYear,\n    \"H\": parseHour24,\n    \"I\": parseHour24,\n    \"j\": parseDayOfYear,\n    \"L\": parseMilliseconds,\n    \"m\": parseMonthNumber,\n    \"M\": parseMinutes,\n    \"p\": parsePeriod,\n    \"q\": parseQuarter,\n    \"Q\": parseUnixTimestamp,\n    \"s\": parseUnixTimestampSeconds,\n    \"S\": parseSeconds,\n    \"u\": parseWeekdayNumberMonday,\n    \"U\": parseWeekNumberSunday,\n    \"V\": parseWeekNumberISO,\n    \"w\": parseWeekdayNumberSunday,\n    \"W\": parseWeekNumberMonday,\n    \"x\": parseLocaleDate,\n    \"X\": parseLocaleTime,\n    \"y\": parseYear,\n    \"Y\": parseFullYear,\n    \"Z\": parseZone,\n    \"%\": parseLiteralPercent\n  };\n\n  // These recursive directive definitions must be deferred.\n  formats.x = newFormat(locale_date, formats);\n  formats.X = newFormat(locale_time, formats);\n  formats.c = newFormat(locale_dateTime, formats);\n  utcFormats.x = newFormat(locale_date, utcFormats);\n  utcFormats.X = newFormat(locale_time, utcFormats);\n  utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n  function newFormat(specifier, formats) {\n    return function(date) {\n      var string = [],\n          i = -1,\n          j = 0,\n          n = specifier.length,\n          c,\n          pad,\n          format;\n\n      if (!(date instanceof Date)) date = new Date(+date);\n\n      while (++i < n) {\n        if (specifier.charCodeAt(i) === 37) {\n          string.push(specifier.slice(j, i));\n          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n          else pad = c === \"e\" ? \" \" : \"0\";\n          if (format = formats[c]) c = format(date, pad);\n          string.push(c);\n          j = i + 1;\n        }\n      }\n\n      string.push(specifier.slice(j, i));\n      return string.join(\"\");\n    };\n  }\n\n  function newParse(specifier, Z) {\n    return function(string) {\n      var d = newDate(1900, undefined, 1),\n          i = parseSpecifier(d, specifier, string += \"\", 0),\n          week, day;\n      if (i != string.length) return null;\n\n      // If a UNIX timestamp is specified, return it.\n      if (\"Q\" in d) return new Date(d.Q);\n      if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n      // If this is utcParse, never use the local timezone.\n      if (Z && !(\"Z\" in d)) d.Z = 0;\n\n      // The am-pm flag is 0 for AM, and 1 for PM.\n      if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n      // If the month was not specified, inherit from the quarter.\n      if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n      // Convert day-of-week and week-of-year to day-of-year.\n      if (\"V\" in d) {\n        if (d.V < 1 || d.V > 53) return null;\n        if (!(\"w\" in d)) d.w = 1;\n        if (\"Z\" in d) {\n          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n          week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n          week = utcDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getUTCFullYear();\n          d.m = week.getUTCMonth();\n          d.d = week.getUTCDate() + (d.w + 6) % 7;\n        } else {\n          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n          week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n          week = timeDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getFullYear();\n          d.m = week.getMonth();\n          d.d = week.getDate() + (d.w + 6) % 7;\n        }\n      } else if (\"W\" in d || \"U\" in d) {\n        if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n        day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n        d.m = 0;\n        d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n      }\n\n      // If a time zone is specified, all fields are interpreted as UTC and then\n      // offset according to the specified time zone.\n      if (\"Z\" in d) {\n        d.H += d.Z / 100 | 0;\n        d.M += d.Z % 100;\n        return utcDate(d);\n      }\n\n      // Otherwise, all fields are in local time.\n      return localDate(d);\n    };\n  }\n\n  function parseSpecifier(d, specifier, string, j) {\n    var i = 0,\n        n = specifier.length,\n        m = string.length,\n        c,\n        parse;\n\n    while (i < n) {\n      if (j >= m) return -1;\n      c = specifier.charCodeAt(i++);\n      if (c === 37) {\n        c = specifier.charAt(i++);\n        parse = parses[c in pads ? specifier.charAt(i++) : c];\n        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n      } else if (c != string.charCodeAt(j++)) {\n        return -1;\n      }\n    }\n\n    return j;\n  }\n\n  function parsePeriod(d, string, i) {\n    var n = periodRe.exec(string.slice(i));\n    return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseShortWeekday(d, string, i) {\n    var n = shortWeekdayRe.exec(string.slice(i));\n    return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseWeekday(d, string, i) {\n    var n = weekdayRe.exec(string.slice(i));\n    return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseShortMonth(d, string, i) {\n    var n = shortMonthRe.exec(string.slice(i));\n    return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseMonth(d, string, i) {\n    var n = monthRe.exec(string.slice(i));\n    return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseLocaleDateTime(d, string, i) {\n    return parseSpecifier(d, locale_dateTime, string, i);\n  }\n\n  function parseLocaleDate(d, string, i) {\n    return parseSpecifier(d, locale_date, string, i);\n  }\n\n  function parseLocaleTime(d, string, i) {\n    return parseSpecifier(d, locale_time, string, i);\n  }\n\n  function formatShortWeekday(d) {\n    return locale_shortWeekdays[d.getDay()];\n  }\n\n  function formatWeekday(d) {\n    return locale_weekdays[d.getDay()];\n  }\n\n  function formatShortMonth(d) {\n    return locale_shortMonths[d.getMonth()];\n  }\n\n  function formatMonth(d) {\n    return locale_months[d.getMonth()];\n  }\n\n  function formatPeriod(d) {\n    return locale_periods[+(d.getHours() >= 12)];\n  }\n\n  function formatQuarter(d) {\n    return 1 + ~~(d.getMonth() / 3);\n  }\n\n  function formatUTCShortWeekday(d) {\n    return locale_shortWeekdays[d.getUTCDay()];\n  }\n\n  function formatUTCWeekday(d) {\n    return locale_weekdays[d.getUTCDay()];\n  }\n\n  function formatUTCShortMonth(d) {\n    return locale_shortMonths[d.getUTCMonth()];\n  }\n\n  function formatUTCMonth(d) {\n    return locale_months[d.getUTCMonth()];\n  }\n\n  function formatUTCPeriod(d) {\n    return locale_periods[+(d.getUTCHours() >= 12)];\n  }\n\n  function formatUTCQuarter(d) {\n    return 1 + ~~(d.getUTCMonth() / 3);\n  }\n\n  return {\n    format: function(specifier) {\n      var f = newFormat(specifier += \"\", formats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    parse: function(specifier) {\n      var p = newParse(specifier += \"\", false);\n      p.toString = function() { return specifier; };\n      return p;\n    },\n    utcFormat: function(specifier) {\n      var f = newFormat(specifier += \"\", utcFormats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    utcParse: function(specifier) {\n      var p = newParse(specifier += \"\", true);\n      p.toString = function() { return specifier; };\n      return p;\n    }\n  };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n    numberRe = /^\\s*\\d+/, // note: ignores next directive\n    percentRe = /^%/,\n    requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n  var sign = value < 0 ? \"-\" : \"\",\n      string = (sign ? -value : value) + \"\",\n      length = string.length;\n  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n  return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n  return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n  return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 4));\n  return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n  var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 6));\n  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n  var n = percentRe.exec(string.slice(i, i + 1));\n  return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n  return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n  return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n  return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n  return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n  return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n  return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n  return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n  return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n  return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n  var day = d.getDay();\n  return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n  return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n  var day = d.getDay();\n  return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n  d = dISO(d);\n  return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n  return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n  return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n  d = dISO(d);\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n  var day = d.getDay();\n  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n  var z = d.getTimezoneOffset();\n  return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n      + pad(z / 60 | 0, \"0\", 2)\n      + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n  return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n  return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n  return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n  return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n  return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n  return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n  return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n  return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n  return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n  var dow = d.getUTCDay();\n  return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n  return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n  var day = d.getUTCDay();\n  return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n  d = UTCdISO(d);\n  return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n  return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n  return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n  d = UTCdISO(d);\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n  var day = d.getUTCDay();\n  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n  return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n  return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n  return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n  return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n  dateTime: \"%x, %X\",\n  date: \"%-m/%-d/%Y\",\n  time: \"%-I:%M:%S %p\",\n  periods: [\"AM\", \"PM\"],\n  days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  timeFormat = locale.format;\n  timeParse = locale.parse;\n  utcFormat = locale.utcFormat;\n  utcParse = locale.utcParse;\n  return locale;\n}\n","export default function nice(domain, interval) {\n  domain = domain.slice();\n\n  var i0 = 0,\n      i1 = domain.length - 1,\n      x0 = domain[i0],\n      x1 = domain[i1],\n      t;\n\n  if (x1 < x0) {\n    t = i0, i0 = i1, i1 = t;\n    t = x0, x0 = x1, x1 = t;\n  }\n\n  domain[i0] = interval.floor(x0);\n  domain[i1] = interval.ceil(x1);\n  return domain;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n  return new Date(t);\n}\n\nfunction number(t) {\n  return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n  var scale = continuous(),\n      invert = scale.invert,\n      domain = scale.domain;\n\n  var formatMillisecond = format(\".%L\"),\n      formatSecond = format(\":%S\"),\n      formatMinute = format(\"%I:%M\"),\n      formatHour = format(\"%I %p\"),\n      formatDay = format(\"%a %d\"),\n      formatWeek = format(\"%b %d\"),\n      formatMonth = format(\"%B\"),\n      formatYear = format(\"%Y\");\n\n  function tickFormat(date) {\n    return (second(date) < date ? formatMillisecond\n        : minute(date) < date ? formatSecond\n        : hour(date) < date ? formatMinute\n        : day(date) < date ? formatHour\n        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n        : year(date) < date ? formatMonth\n        : formatYear)(date);\n  }\n\n  scale.invert = function(y) {\n    return new Date(invert(y));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n  };\n\n  scale.ticks = function(interval) {\n    var d = domain();\n    return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    return specifier == null ? tickFormat : format(specifier);\n  };\n\n  scale.nice = function(interval) {\n    var d = domain();\n    if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n    return interval ? domain(nice(d, interval)) : scale;\n  };\n\n  scale.copy = function() {\n    return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n  };\n\n  return scale;\n}\n\nexport default function time() {\n  return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","<template>\n    <mce-group\n        :class=\"$style['mce-line-plot']\"\n        :data-mce-version=\"version\"\n    >\n        <mce-group\n            v-if=\"showOutline\"\n            :class=\"$style['mce-line-plot__outline']\"\n        >\n            <template v-if=\"showDots && scaleTypeX !== 'time'\">\n                <mce-circle\n                    v-for=\"d in dotCoordinates\"\n                    :key=\"d.id\"\n                    :style=\"dotOutlineStyles\"\n                    :r=\"d.r\"\n                    :cx=\"d.cx\"\n                    :cy=\"d.cy\"\n                />\n            </template>\n            <mce-path\n                :style=\"lineOutlineStyle\"\n                :d=\"lineCoordinates\"\n            />\n        </mce-group>\n\n        <mce-path\n            :style=\"lineStyles\"\n            :d=\"lineCoordinates\"\n        />\n        <defs>\n            <slot name=\"pattern\" />\n        </defs>\n        <mce-group\n            v-if=\"showDots && scaleTypeX !== 'time'\"\n            :class=\"$style['mce-line-plot__dots']\"\n        >\n            <mce-circle\n                v-for=\"(d, i) in dotCoordinates\"\n                :key=\"d.id\"\n                :class=\"$style['mce-line-plot__dot']\"\n                :style=\"dotStyles\"\n                :r=\"d.r\"\n                :cx=\"d.cx\"\n                :cy=\"d.cy\"\n                :data-mce-id=\"d.id\"\n                @mouseenter=\"onMouseEnter($event, d, i, 'line-dot')\"\n                @mouseleave=\"onMouseLeave\"\n            />\n        </mce-group>\n    </mce-group>\n</template>\n\n<script>\n    import packageFile from '../package.json';\n    import { MceMouse } from '@mce/interactions';\n    import MceCircle from '@mce/circle';\n    import McePath from '@mce/path';\n    import MceGroup from '@mce/group';\n    import { line } from 'd3-shape';\n    import { scaleLinear, scaleBand, scaleSymlog, scaleTime } from 'd3-scale';\n\n    export default {\n        name: 'MceLinePlot',\n        components: {\n            MceCircle,\n            McePath,\n            MceGroup,\n        },\n        mixins: [MceMouse('line')],\n        props: {\n            color: {\n                type: String,\n                docs: {\n                    validation: '—',\n                    description: 'Sets the colors of the line plot.',\n                },\n            },\n            symlogConstant: {\n                type: Number,\n                default: 1,\n                docs: {\n                    validation: '—',\n                    description:\n                        'Determines the [symlog constant](https://github.com/d3/d3-scale/blob/main/README.md#symlog_constant) to be used in the symlog scale.',\n                },\n            },\n            dashed: {\n                type: Boolean,\n                default: false,\n                docs: {\n                    validation: '—',\n                    description: 'If `true`, uses dashed styles for the line plot.',\n                },\n            },\n            data: {\n                type: Array,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description:\n                        'Sets the data to plot. See the [data format](#data-format) section below for more details.',\n                },\n            },\n            dataFocused: {\n                type: Array,\n                docs: {\n                    validation: '—',\n                    description: 'Sets specific data in focus for attention.',\n                },\n            },\n            domainX: {\n                type: Array,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description:\n                        'Sets the domain used along the x axis in the scale function specified using the `scaleTypeX` prop.',\n                },\n            },\n            domainY: {\n                type: Array,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description:\n                        'Sets the domain used along the y axis in the scale function specified using the `scaleTypeY` prop.',\n                },\n            },\n            lineWeight: {\n                type: Number,\n                default: 2,\n                validator(value) {\n                    return [2, 4, 6].indexOf(value) !== -1;\n                },\n                docs: {\n                    validation: 'One of: `2`, `4`, `6`',\n                    description: 'Sets the line plot’s weight.',\n                },\n            },\n            patternId: {\n                type: String,\n                docs: {\n                    validation: '—',\n                    description:\n                        'Applies the referenced pattern to the line plot. Use the `pattern` named slot to define a pattern.',\n                },\n            },\n            rangeX: {\n                type: Array,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description:\n                        'Sets the range used along the x axis in the scale function specified using the `scaleTypeX` prop.',\n                },\n            },\n            rangeY: {\n                type: Array,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description:\n                        'Sets the range used along the y axis in the scale function specified using the `scaleTypeY` prop.',\n                },\n            },\n            scaleTypeX: {\n                type: String,\n                default: 'band',\n                validator(value) {\n                    return ['band', 'time'].indexOf(value) !== -1;\n                },\n                docs: {\n                    validation: 'One of: `band`, `time`.',\n                    description:\n                        'Determines the type of scale used along the x axis. See the D3 scale documentation for more details: [band](https://github.com/d3/d3-scale/blob/main/README.md#band-scales), [time](https://github.com/d3/d3-scale/blob/main/README.md#time-scales).',\n                },\n            },\n            scaleTypeY: {\n                type: String,\n                default: 'linear',\n                validator(value) {\n                    return ['linear', 'symlog'].indexOf(value) !== -1;\n                },\n                docs: {\n                    validation: 'One of: `linear`, `symlog`.',\n                    description:\n                        'Determines the type of scale used along the y axis. See the D3 scale documentation for more details: [linear](https://github.com/d3/d3-scale/blob/main/README.md#linear-scales), [symlog](https://github.com/d3/d3-scale/blob/main/README.md#symlog-scales).',\n                },\n            },\n            showDots: {\n                type: Boolean,\n                default: false,\n                docs: {\n                    validation: '—',\n                    description: 'If `true`, shows dots on the line plot’s vertices.',\n                },\n            },\n            showOutline: {\n                type: Boolean,\n                default: false,\n                docs: {\n                    validation: '—',\n                    description: 'If `true`, shows outline on the line plot.',\n                },\n            },\n        },\n        data() {\n            return {\n                version: `${packageFile.name}-${packageFile.version}`,\n                linePadding: 6,\n                scales: {\n                    band: scaleBand,\n                    linear: scaleLinear,\n                    symlog: scaleSymlog,\n                    time: scaleTime,\n                },\n            };\n        },\n        computed: {\n            dotCoordinates() {\n                let filtered = [];\n\n                this.data.forEach((d, i) => {\n                    if (d.value) {\n                        const cx = this.scaleTypeX === 'band' ? i : d.value.x;\n                        const dot = {\n                            r: this.dashed ? 5 : 6,\n                            cx: this.xScale(cx) + this.xOffset,\n                            cy: this.yScale(d.value.y),\n                            id: d.id,\n                        };\n                        filtered.push(dot);\n                    }\n                });\n\n                return filtered;\n            },\n            scaleBandDomain() {\n                return [...Array(this.domainX.length).keys()];\n            },\n            lineCoordinates() {\n                const lineGenerator = line()\n                    .defined(d => d.value)\n                    .x((d, i) => {\n                        const scaleValue = this.scaleTypeX === 'band' ? this.xScale(i) : this.xScale(d.value.x);\n                        return scaleValue + this.xOffset;\n                    })\n                    .y(d => this.yScale(d.value.y));\n                return lineGenerator(this.data);\n            },\n            dashStyles() {\n                const dashes = {\n                    2: '1 5',\n                    4: '1 7',\n                    6: '1 11',\n                };\n\n                return this.dashed ? { strokeDasharray: dashes[this.lineWeight] } : {};\n            },\n            dotStyles() {\n                return {\n                    fill: this.dashed ? '#ffffff' : this.color,\n                    stroke: this.dashed ? this.color : false,\n                    strokeWidth: this.dashed ? 2 : null,\n                };\n            },\n            dotOutlineStyles() {\n                return {\n                    fill: '#ffffff',\n                    stroke: '#ffffff',\n                    strokeWidth: 6,\n                };\n            },\n            lineFill() {\n                return this.patternId ? `url(#${this.patternId})` : this.color ? this.color : null;\n            },\n            lineStyles() {\n                return {\n                    stroke: this.lineFill,\n                    fill: 'none',\n                    strokeWidth: this.lineWeight,\n                    strokeLinecap: 'round',\n                    strokeLinejoin: 'round',\n                    ...this.dashStyles,\n                };\n            },\n            lineOutlineStyle() {\n                return {\n                    stroke: '#ffffff',\n                    fill: 'none',\n                    strokeWidth: this.lineWeight + this.linePadding,\n                    strokeLinecap: 'round',\n                    strokeLinejoin: 'round',\n                };\n            },\n            xOffset() {\n                return this.scaleTypeX !== 'time' ? this.xScale.bandwidth() / 2 : 0;\n            },\n            xScale() {\n                const scale = this.scales[this.scaleTypeX]()\n                    .domain(this.scaleTypeX === 'band' ? this.scaleBandDomain : this.domainX)\n                    .range(this.rangeX);\n\n                return scale;\n            },\n            yScale() {\n                const scale = this.scales[this.scaleTypeY]().domain(this.domainY).range(this.rangeY).clamp(true);\n\n                if (this.scaleTypeY === 'symlog') {\n                    scale.constant(this.symlogConstant);\n                }\n\n                return scale;\n            },\n        },\n    };\n</script>\n\n<style\n    lang=\"scss\"\n    module\n>\n    .mce-line-plot {\n        shape-rendering: auto;\n\n        &__outline {\n            shape-rendering: auto;\n        }\n\n        &__dots {\n            shape-rendering: auto;\n        }\n\n        &__dot {\n            shape-rendering: auto;\n        }\n    }\n</style>\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./line-plot.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./line-plot.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./line-plot.vue?vue&type=template&id=43042dc4&\"\nimport script from \"./line-plot.vue?vue&type=script&lang=js&\"\nexport * from \"./line-plot.vue?vue&type=script&lang=js&\"\nimport style0 from \"./line-plot.vue?vue&type=style&index=0&id=43042dc4&prod&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n  \n  this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  null\n  \n)\n\nexport default component.exports","import MceLinePlot from './src/line-plot.vue';\n\nexport default MceLinePlot;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('mce-group',{class:_vm.$style['mce-guidelines'],attrs:{\"data-mce-version\":_vm.version}},_vm._l((_vm.data),function(d,i){return _c('mce-line',{key:i,class:_vm.$style['mce-guideline'],attrs:{\"x1\":d.x1,\"x2\":d.x2,\"y1\":d.y1,\"y2\":d.y2}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('line',_vm._g({class:_vm.$style['mce-line'],attrs:{\"x1\":_vm.x1,\"x2\":_vm.x2,\"y1\":_vm.y1,\"y2\":_vm.y2,\"data-mce-version\":_vm.version}},_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n    <line\n        :class=\"$style['mce-line']\"\n        :x1=\"x1\"\n        :x2=\"x2\"\n        :y1=\"y1\"\n        :y2=\"y2\"\n        :data-mce-version=\"version\"\n        v-on=\"$listeners\"\n    />\n</template>\n\n<script>\n    import packageFile from '../package.json';\n\n    export default {\n        name: 'MceLine',\n        props: {\n            x1: {\n                type: Number,\n                docs: {\n                    validation: '—',\n                    description: 'Sets `x1` attribute on the SVG `line` element.',\n                },\n            },\n            x2: {\n                type: Number,\n                docs: {\n                    validation: '—',\n                    description: 'Sets `x2` attribute on the SVG `line` element.',\n                },\n            },\n            y1: {\n                type: Number,\n                docs: {\n                    validation: '—',\n                    description: 'Sets `y1` attribute on the SVG `line` element.',\n                },\n            },\n            y2: {\n                type: Number,\n                docs: {\n                    validation: '—',\n                    description: 'Sets `y2` attribute on the SVG `line` element.',\n                },\n            },\n        },\n        data() {\n            return {\n                version: `${packageFile.name}-${packageFile.version}`,\n            };\n        },\n    };\n</script>\n\n<style\n    lang=\"scss\"\n    module\n>\n    .mce-line {\n        shape-rendering: auto;\n    }\n</style>\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./line.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./line.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./line.vue?vue&type=template&id=34034a1e&\"\nimport script from \"./line.vue?vue&type=script&lang=js&\"\nexport * from \"./line.vue?vue&type=script&lang=js&\"\nimport style0 from \"./line.vue?vue&type=style&index=0&id=34034a1e&prod&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n  \n  this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  null\n  \n)\n\nexport default component.exports","import MceLine from './src/line.vue';\n\nexport default MceLine;\n","<template>\n    <mce-group\n        :class=\"$style['mce-guidelines']\"\n        :data-mce-version=\"version\"\n    >\n        <mce-line\n            v-for=\"(d, i) in data\"\n            :key=\"i\"\n            :class=\"$style['mce-guideline']\"\n            :x1=\"d.x1\"\n            :x2=\"d.x2\"\n            :y1=\"d.y1\"\n            :y2=\"d.y2\"\n        />\n    </mce-group>\n</template>\n\n<script>\n    import packageFile from '../package.json';\n    import MceLine from '@mce/line';\n    import MceGroup from '@mce/group';\n\n    export default {\n        name: 'MceGuidelines',\n        components: {\n            MceLine,\n            MceGroup,\n        },\n        props: {\n            data: {\n                type: Array,\n                required: true,\n                docs: {\n                    validation: '**Required**',\n                    description:\n                        'Sets the data to plot. See the [data format](#data-format) section below for more details.',\n                },\n            },\n        },\n        data() {\n            return {\n                version: `${packageFile.name}-${packageFile.version}`,\n            };\n        },\n    };\n</script>\n\n<style\n    lang=\"scss\"\n    module\n>\n    @import '@mce/visual-language';\n\n    .mce-guidelines {\n        shape-rendering: auto;\n\n        .mce-guideline {\n            stroke: $mce-color-neutral-37;\n            stroke-width: 1;\n            stroke-dasharray: 1, 1;\n            opacity: 1;\n            pointer-events: none;\n        }\n    }\n</style>\n","import mod from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./guidelines.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./guidelines.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./guidelines.vue?vue&type=template&id=1baf2276&\"\nimport script from \"./guidelines.vue?vue&type=script&lang=js&\"\nexport * from \"./guidelines.vue?vue&type=script&lang=js&\"\nimport style0 from \"./guidelines.vue?vue&type=style&index=0&id=1baf2276&prod&lang=scss&module=true&\"\n\n\n\n\nfunction injectStyles (context) {\n  \n  this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  injectStyles,\n  null,\n  null\n  \n)\n\nexport default component.exports","import MceGuidelines from './src/guidelines.vue';\n\nexport default MceGuidelines;\n","<template>\n  <g>\n    <!-- transparent stroke configuration-->\n    <template v-if=\"configuration\">\n      <mce-line-plot\n        v-for=\"(data, line_ndx) in linePlots.props.data\"\n        :class=\"[lineStyle]\"\n        :key=\"'line_trans' + line_ndx\"\n        color=\"transparent\"\n        :line-weight=\"20\"\n        :data=\"data\"\n        :mouse=\"mouse\"\n        :domain-x=\"domainX\"\n        :domain-y=\"domainY\"\n        :range-x=\"rangeX\"\n        :range-y=\"rangeY\"\n        scale-type-x=\"time\"\n        scale-type-y=\"linear\"\n        @click.native=\"configuration ? onSelect(line_ndx) : null\"\n        @mouseover.native=\"hovered = line_ndx\"\n        @mouseleave.native=\"hovered = null\"\n        @mousemove-plot=\"onHover(line_ndx, $event)\"\n        @mouseleave-plot=\"!configuration ? (focusedData = null) : null\"\n      ></mce-line-plot>\n    </template>\n    <!-- line plots -->\n    <mce-line-plot\n      v-for=\"(data, line_ndx) in linePlots.props.data\"\n      :key=\"'line_' + line_ndx\"\n      :class=\"[\n        lineStyle,\n        'pf-line-plot',\n        {\n          'pf-line-plot--not-focused': notHovered(data, line_ndx) || notSelected(data, line_ndx),\n        },\n      ]\"\n      :color=\"linePlots.props.color[line_ndx]\"\n      :dashed=\"linePlots.props.dashed ? linePlots.props.dashed[line_ndx] : false\"\n      :show-outline=\"linePlots.props.showOutline ? linePlots.props.showOutline[line_ndx] : false\"\n      :line-weight=\"linePlots.props.lineWeight ? linePlots.props.lineWeight[line_ndx] : 2\"\n      :data=\"data\"\n      :mouse=\"mouse\"\n      :domain-x=\"domainX\"\n      :domain-y=\"domainY\"\n      :range-x=\"rangeX\"\n      :range-y=\"rangeY\"\n      v-bind=\"linePlots.props\"\n      @click.native=\"configuration ? onSelect(line_ndx) : null\"\n      @mouseover.native=\"hovered = line_ndx\"\n      @mouseleave.native=\"hovered = null\"\n      @mousemove-plot=\"onHover(line_ndx, $event)\"\n      @mouseleave-plot=\"!configuration ? (focusedData = null) : null\"\n    ></mce-line-plot>\n    <mce-guidelines v-show=\"mouse && !configuration\" :data=\"guides\"></mce-guidelines>\n  </g>\n</template>\n\n<script>\n  import MceLinePlot from '@mce/line-plot';\n  import MceGuidelines from '@mce/guidelines';\n\n  export default {\n    name: 'TimeSeriesLine',\n    props: {\n      configuration: Boolean,\n      focused: String,\n      mouse: Object,\n      plotIndex: Number,\n      plots: Array,\n      rangeX: Array,\n      rangeY: Array,\n      domainX: Array,\n      domainY: Array,\n    },\n    components: {\n      MceLinePlot,\n      MceGuidelines,\n    },\n    computed: {\n      lineStyle() {\n        const obj = {};\n\n        obj['pf-line-plot--config'] = this.configuration;\n\n        return obj;\n      },\n      linePlots() {\n        return this.plots[this.ndx];\n      },\n      noSelection() {\n        return this.plotIndex === null || this.plotIndex === '';\n      },\n      guides() {\n        if (!this.guideData) {\n          return [];\n        }\n\n        const { _closestPoint } = this.guideData;\n\n        return [\n          {\n            x1: _closestPoint.x,\n            x2: _closestPoint.x,\n            y1: 0,\n            y2: this.rangeY[0],\n          },\n        ];\n      },\n    },\n    data() {\n      return {\n        ndx: 1,\n        currentIndex: null,\n        mouseData: [],\n        nearest: 999999,\n        indexData: [],\n        guideData: null,\n        hovered: null,\n      };\n    },\n    methods: {\n      notHovered(data, ndx) {\n        return (\n          (this.noSelection && this.focused && !data[data.length - 1].id.includes(this.focused)) ||\n          (!this.configuration && ndx !== this.hovered && this.hovered) ||\n          (this.configuration &&\n            this.noSelection &&\n            this.hovered !== null &&\n            !`${ndx}`.includes(this.hovered))\n        );\n      },\n      notSelected(data, ndx) {\n        return (\n          this.configuration &&\n          !this.noSelection &&\n          !`${ndx}`.includes(this.hovered) &&\n          !`${ndx}`.includes(this.plotIndex) &&\n          !data[data.length - 1].id.includes(this.focused)\n        );\n      },\n      onHover(ndx, ev) {\n        const { _dataIndex, _closestPoint } = ev.data;\n        const { offsetX } = ev.position;\n        const diff = Math.abs(_closestPoint.x - offsetX);\n\n        this.nearest = Math.min(diff, this.nearest);\n\n        if (diff === this.nearest) {\n          this.currentIndex = _dataIndex;\n        }\n\n        this.indexData[ndx] = { _dataIndex, ev };\n\n        this.guideData = _dataIndex === this.currentIndex ? ev.data : this.guideData;\n\n        if (ndx === this.linePlots.props.data.length - 1) {\n          this.indexData.forEach((item, pos) => {\n            const { value } = item.ev.data;\n            if (this.indexData[pos]._dataIndex === this.currentIndex) {\n              this.mouseData[pos] = { value };\n              this.mouseData.title = value.x.toLocaleDateString();\n            } else {\n              this.mouseData[pos] = { value: { y: '—' } };\n            }\n          });\n\n          this.$emit('mousemove-plot', this.mouseData);\n\n          this.currentIndex = null;\n          this.nearest = 999999;\n        } else {\n          this.mouseData = [];\n          this.mouseData.length = 0;\n        }\n      },\n      onSelect(ndx) {\n        // TODO: Improve Line selection precision\n        this.$emit('pflineplot', {\n          plots: 1,\n          ndx,\n        });\n      },\n    },\n  };\n</script>\n<style lang=\"scss\">\n  @import '@mce/visual-language';\n\n  .pf-line-plot {\n    @include mce-animate-focus();\n\n    &--config {\n      path {\n        cursor: pointer;\n      }\n    }\n  }\n</style>\n","import mod from \"-!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TimeSeriesLine.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TimeSeriesLine.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimeSeriesLine.vue?vue&type=template&id=3591cefc&\"\nimport script from \"./TimeSeriesLine.vue?vue&type=script&lang=js&\"\nexport * from \"./TimeSeriesLine.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TimeSeriesLine.vue?vue&type=style&index=0&id=3591cefc&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["root","factory","exports","module","define","amd","self","this","___CSS_LOADER_EXPORT___","push","id","locals","cssWithMappingToString","list","toString","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","Victor","x","y","fromArray","arr","fromObject","obj","prototype","addX","vec","addY","add","addScalar","scalar","addScalarX","addScalarY","subtractX","subtractY","subtract","subtractScalar","subtractScalarX","subtractScalarY","divideX","vector","divideY","divide","divideScalar","divideScalarX","divideScalarY","invertX","invertY","invert","multiplyX","multiplyY","multiply","multiplyScalar","multiplyScalarX","multiplyScalarY","normalize","norm","limit","max","factor","Math","abs","randomize","topLeft","bottomRight","randomizeX","randomizeY","min","random","randomizeAny","round","unfloat","toFixed","precision","mixX","amount","mixY","mix","clone","copyX","copyY","copy","zero","dot","vec2","cross","projectOnto","coeff","horizontalAngle","atan2","horizontalAngleDeg","radian2degrees","verticalAngle","verticalAngleDeg","angle","angleDeg","direction","rotate","nx","cos","sin","ny","rotateDeg","degrees2radian","rotateTo","rotation","rotateToDeg","rotateBy","rotateByDeg","distanceX","absDistanceX","distanceY","absDistanceY","distance","sqrt","distanceSq","dx","dy","lengthSq","magnitude","isZero","isEqualTo","toArray","toObject","degrees","PI","floor","rad","deg","__esModule","default","listToStyles","parentId","styles","newStyles","css","sourceMap","part","parts","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","type","appendChild","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","bind","applyToTag","newObj","replaceText","textStore","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","sources","btoa","unescape","encodeURIComponent","JSON","stringify","firstChild","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","d","a","definition","key","o","Object","defineProperty","enumerable","get","prop","hasOwnProperty","call","r","Symbol","toStringTag","value","p","window","currentScript","src","match","render","_vm","_c","_self","_l","linePlots","props","data","line_ndx","class","lineStyle","attrs","mouse","domainX","domainY","rangeX","rangeY","on","$event","onHover","configuration","focusedData","nativeOn","onSelect","hovered","_e","_b","notHovered","notSelected","color","dashed","showOutline","lineWeight","directives","name","rawName","expression","guides","staticRenderFns","$style","version","showDots","scaleTypeX","style","cx","cy","lineCoordinates","_t","onMouseEnter","onMouseLeave","range","start","stop","step","arguments","ceil","Array","initRange","domain","InternMap","Map","constructor","entries","keyof","super","defineProperties","_intern","_key","set","intern_get","has","intern_set","delete","intern_delete","InternSet","Set","values","valueOf","implicit","ordinal","unknown","scale","_","slice","from","apply","band","bandwidth","ordinalRange","r0","r1","paddingInner","paddingOuter","align","rescale","reverse","rangeRound","padding","number","NaN","quantileSorted","valueof","isNaN","i0","value0","value1","ascending","b","descending","bisector","f","compare1","compare2","delta","left","lo","hi","mid","right","center","ascendingBisect","bisectRight","thresholds","bisect","invertExtent","indexOf","sort","quantiles","computed","scaleBandDomain","keys","yScale","methods","invertScaleBandY","getYValue","offsetY","getXValue","yValue","onMouseMove","_dataIndex","rest","position","_itemId","e10","e5","e2","tickSpec","count","power","log10","error","pow","i1","i2","inc","ticks","tickIncrement","tickStep","extend","parent","create","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatHex8","formatHex8","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","format","m","l","trim","exec","parseInt","rgbn","Rgb","rgba","hsla","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatHex8","rgb_formatRgb","clampa","clampi","h","s","Hsl","hsl","clamph","clampt","hsl2rgb","m1","m2","basis","t1","v0","v1","v2","v3","t2","t3","t","channels","assign","displayable","clamp","linear","exponential","gamma","nogamma","rgbGamma","end","rgbSpline","spline","colors","basisClosed","genericArray","nb","na","c","Date","setTime","reA","reB","source","one","am","bm","bs","bi","lastIndex","q","ArrayBuffer","isView","DataView","string","date","isArray","object","constants","unit","identity","clamper","bimap","interpolate","d0","d1","polymap","target","transformer","transform","untransform","piecewise","output","input","u","continuous","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","fill","sign","symbol","width","comma","toLocaleString","replace","formatDecimalParts","toExponential","coefficient","exponent","grouping","thousands","substring","numerals","out","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","formatPrefix","prefixes","locale","group","formatGroup","Number","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","String","percent","minus","nan","newFormat","formatTypes","prefix","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","charCodeAt","Infinity","e","defaultLocale","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","quantize","x0","x1","bisectDate","next","filteredData","invertScaleBandX","xScale","getXValueByTime","xDate","closestIndex","valueId","findIndex","offsetX","xValue","closestPoint","dotCoordinates","find","_closestPoint","EVENTS","MOUSEMOVE_PLOT","MOUSELEAVE_PLOT","MOUSEENTER_ITEM","MOUSELEAVE_ITEM","MOUSEMOVE_ITEM","event","sourceEvent","node","currentTarget","svg","ownerSVGElement","createSVGPoint","point","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","clientLeft","top","clientTop","pageX","pageY","inRange","bin","scaleType","getTime","getNearestBound","bins","getBinSize","binIndex","threshold","pointer","mousePayload","targetType","size","_bins","$emit","setMouseTarget","mouseData","mouseTarget","resetMouseTarget","setMouseTargetId","mouseTargetId","resetMouseTargetId","radius","_groupId","getClosestPointIndex","points","closestPointIndex","closestDistanceSquared","forEach","distanceSquared","transformDataPoint","dataPoint","_columnIndex","columnIndex","yTotal","bottom","calcTotalYValue","array","positive","reduce","stackRow","_areaIndex","mousePoint","coordinates","interactionDataPoints","topScaled","bottomScaled","closestCoordinateIndex","closestCoordinate","closestDataPointIndex","closestDataPoint","yValueList","yNegativeTotal","configurations","line","histogram","donut","baseMixin","docs","validation","description","watch","handler","mouseDataAccessor","mouseDataAccessorStacked","args","getMouseEnterData","stackData","propagateEvent","params","noBase","includes","extends","_g","$listeners","required","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","component","groupTransformer","offset","validator","v","Linear","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","closePath","lineTo","moveTo","pi","tau","epsilon","tauEpsilon","append","strings","appendRound","digits","Path","_x0","_y0","_x1","_y1","_append","quadraticCurveTo","y1","bezierCurveTo","x2","y2","arcTo","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cw","da","w","withPath","shape","RangeError","defined","curve","path","buffer","defined0","transformSymlog","log1p","transformSymexp","expm1","symlogish","constant","symlog","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","t0","timeInterval","floori","offseti","field","interval","previous","every","isFinite","millisecond","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","M","S","L","utcDate","UTC","newDate","formatLocale","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pad","pads","charAt","newParse","Z","parseSpecifier","Q","V","W","U","parse","formatWeekday","X","utcFormat","utcParse","timeFormat","numberRe","percentRe","requoteRe","requote","names","dISO","z","getUTCMilliseconds","dow","UTCdISO","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","components","MceCircle","McePath","MceGroup","mixins","symlogConstant","dataFocused","patternId","scaleTypeY","linePadding","scales","filtered","xOffset","lineGenerator","scaleValue","dashStyles","dashes","strokeDasharray","dotStyles","stroke","strokeWidth","dotOutlineStyles","lineFill","lineStyles","strokeLinecap","strokeLinejoin","lineOutlineStyle","MceLine","focused","plotIndex","plots","MceLinePlot","MceGuidelines","ndx","noSelection","guideData","currentIndex","nearest","indexData","ev","diff","pos","title","toLocaleDateString"],"sourceRoot":""}