{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap c861b1ba5945f64af10a","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-label.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/common/base-chart.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/common/legend/advanced-legend.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/common/legend/legend.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/common/legend/scale-legend.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/common/timeline/timeline.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/tooltip.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/force-directed-graph/force-directed-graph.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/gauge/gauge.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/gauge/linear-gauge.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/number-card/card.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/advanced-pie-chart.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/pie-chart.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/pie-grid.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/polar-chart/polar-chart.component.scss","webpack:////Users/marjan/Projects/ngx-charts/src/tree-map/tree-map.component.scss","webpack:////Users/marjan/Projects/ngx-charts/node_modules/css-loader/lib/css-base.js","webpack:////Users/marjan/Projects/ngx-charts/node_modules/webpack/buildin/global.js","webpack:////Users/marjan/Projects/ngx-charts/src/area-chart/area-chart-normalized.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/area-chart/area-chart-stacked.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/area-chart/area-chart.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/area-chart/area-chart.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/area-chart/area-series.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/area-chart/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-chart.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-horizontal-2d.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-horizontal-normalized.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-horizontal-stacked.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-horizontal.component.ts","webpack:///./src/bar-chart/bar-label.component.scss?8192","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-label.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-vertical-2d.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-vertical-normalized.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-vertical-stacked.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar-vertical.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/bar.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/series-horizontal.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bar-chart/series-vertical.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bubble-chart/bubble-chart.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bubble-chart/bubble-chart.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bubble-chart/bubble-chart.utils.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bubble-chart/bubble-series.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/bubble-chart/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/area.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/axes/axes.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/axes/axis-label.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/axes/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/axes/ticks.helper.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/axes/x-axis-ticks.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/axes/x-axis.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/axes/y-axis-ticks.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/axes/y-axis.component.ts","webpack:///./src/common/base-chart.component.scss?8b4b","webpack:////Users/marjan/Projects/ngx-charts/src/common/base-chart.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/chart-common.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/charts/chart.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/charts/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/circle-series.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/circle.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/color.helper.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/count/count.directive.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/count/count.helper.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/count/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/domain.helper.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/grid-layout.helper.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/grid-panel-series.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/grid-panel.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/label.helper.ts","webpack:///./src/common/legend/advanced-legend.component.scss?1dcd","webpack:////Users/marjan/Projects/ngx-charts/src/common/legend/advanced-legend.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/legend/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/legend/legend-entry.component.ts","webpack:///./src/common/legend/legend.component.scss?832a","webpack:////Users/marjan/Projects/ngx-charts/src/common/legend/legend.component.ts","webpack:///./src/common/legend/scale-legend.component.scss?ebc6","webpack:////Users/marjan/Projects/ngx-charts/src/common/legend/scale-legend.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/shape.helper.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/svg-linear-gradient.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/svg-radial-gradient.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tick-format.helper.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/timeline/index.ts","webpack:///./src/common/timeline/timeline.component.scss?c5a2","webpack:////Users/marjan/Projects/ngx-charts/src/common/timeline/timeline.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip-area.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/alignment.type.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/injection-registery.service.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/injection.service.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/position/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/position/placement.type.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/position/position.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/show.type.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/style.type.ts","webpack:///./src/common/tooltip/tooltip.component.scss?e676","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/tooltip.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/tooltip.directive.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/tooltip.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/tooltip/tooltip.service.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/trim-label.helper.ts","webpack:////Users/marjan/Projects/ngx-charts/src/common/view-dimensions.helper.ts","webpack:////Users/marjan/Projects/ngx-charts/src/events.ts","webpack:///./src/force-directed-graph/force-directed-graph.component.scss?d2c3","webpack:////Users/marjan/Projects/ngx-charts/src/force-directed-graph/force-directed-graph.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/force-directed-graph/force-directed-graph.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/force-directed-graph/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/gauge/gauge-arc.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/gauge/gauge-axis.component.ts","webpack:///./src/gauge/gauge.component.scss?4cd1","webpack:////Users/marjan/Projects/ngx-charts/src/gauge/gauge.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/gauge/gauge.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/gauge/index.ts","webpack:///./src/gauge/linear-gauge.component.scss?efad","webpack:////Users/marjan/Projects/ngx-charts/src/gauge/linear-gauge.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/heat-map/heat-map-cell-series.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/heat-map/heat-map-cell.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/heat-map/heat-map.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/heat-map/heat-map.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/heat-map/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/line-chart/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/line-chart/line-chart.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/line-chart/line-chart.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/line-chart/line-series.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/line-chart/line.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/ngx-charts.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/number-card/card-series.component.ts","webpack:///./src/number-card/card.component.scss?f9f2","webpack:////Users/marjan/Projects/ngx-charts/src/number-card/card.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/number-card/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/number-card/number-card.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/number-card/number-card.module.ts","webpack:///./src/pie-chart/advanced-pie-chart.component.scss?d0cf","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/advanced-pie-chart.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/pie-arc.component.ts","webpack:///./src/pie-chart/pie-chart.component.scss?262c","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/pie-chart.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/pie-chart.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/pie-grid-series.component.ts","webpack:///./src/pie-chart/pie-grid.component.scss?ab88","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/pie-grid.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/pie-label.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/pie-chart/pie-series.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/polar-chart/index.ts","webpack:///./src/polar-chart/polar-chart.component.scss?f863","webpack:////Users/marjan/Projects/ngx-charts/src/polar-chart/polar-chart.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/polar-chart/polar-chart.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/polar-chart/polar-series.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/polyfills.ts","webpack:////Users/marjan/Projects/ngx-charts/src/tree-map/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/tree-map/tree-map-cell-series.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/tree-map/tree-map-cell.component.ts","webpack:///./src/tree-map/tree-map.component.scss?2541","webpack:////Users/marjan/Projects/ngx-charts/src/tree-map/tree-map.component.ts","webpack:////Users/marjan/Projects/ngx-charts/src/tree-map/tree-map.module.ts","webpack:////Users/marjan/Projects/ngx-charts/src/utils/color-sets.ts","webpack:////Users/marjan/Projects/ngx-charts/src/utils/color-utils.ts","webpack:////Users/marjan/Projects/ngx-charts/src/utils/id.ts","webpack:////Users/marjan/Projects/ngx-charts/src/utils/index.ts","webpack:////Users/marjan/Projects/ngx-charts/src/utils/sort.ts","webpack:////Users/marjan/Projects/ngx-charts/src/utils/throttle.ts","webpack:////Users/marjan/Projects/ngx-charts/src/utils/types.ts","webpack:////Users/marjan/Projects/ngx-charts/src/utils/visibility-observer.ts","webpack:///external \"@angular/animations\"","webpack:///external \"@angular/common\"","webpack:///external \"@angular/core\"","webpack:///external \"@angular/platform-browser\"","webpack:///external \"d3-array\"","webpack:///external \"d3-brush\"","webpack:///external \"d3-color\"","webpack:///external \"d3-force\"","webpack:///external \"d3-format\"","webpack:///external \"d3-hierarchy\"","webpack:///external \"d3-interpolate\"","webpack:///external \"d3-scale\"","webpack:///external \"d3-selection\"","webpack:///external \"d3-shape\"","webpack:///external \"d3-time-format\"","webpack:///external \"rxjs\"","webpack:///external \"rxjs/operators\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@angular/animations\"), require(\"@angular/common\"), require(\"@angular/core\"), require(\"@angular/platform-browser\"), require(\"d3-array\"), require(\"d3-brush\"), require(\"d3-color\"), require(\"d3-force\"), require(\"d3-format\"), require(\"d3-hierarchy\"), require(\"d3-interpolate\"), require(\"d3-scale\"), require(\"d3-selection\"), require(\"d3-shape\"), require(\"d3-time-format\"), require(\"rxjs\"), require(\"rxjs/operators\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"ngx-charts\", [\"@angular/animations\", \"@angular/common\", \"@angular/core\", \"@angular/platform-browser\", \"d3-array\", \"d3-brush\", \"d3-color\", \"d3-force\", \"d3-format\", \"d3-hierarchy\", \"d3-interpolate\", \"d3-scale\", \"d3-selection\", \"d3-shape\", \"d3-time-format\", \"rxjs\", \"rxjs/operators\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ngx-charts\"] = factory(require(\"@angular/animations\"), require(\"@angular/common\"), require(\"@angular/core\"), require(\"@angular/platform-browser\"), require(\"d3-array\"), require(\"d3-brush\"), require(\"d3-color\"), require(\"d3-force\"), require(\"d3-format\"), require(\"d3-hierarchy\"), require(\"d3-interpolate\"), require(\"d3-scale\"), require(\"d3-selection\"), require(\"d3-shape\"), require(\"d3-time-format\"), require(\"rxjs\"), require(\"rxjs/operators\"));\n\telse\n\t\troot[\"ngx-charts\"] = factory(root[\"@angular/animations\"], root[\"@angular/common\"], root[\"@angular/core\"], root[\"@angular/platform-browser\"], root[\"d3-array\"], root[\"d3-brush\"], root[\"d3-color\"], root[\"d3-force\"], root[\"d3-format\"], root[\"d3-hierarchy\"], root[\"d3-interpolate\"], root[\"d3-scale\"], root[\"d3-selection\"], root[\"d3-shape\"], root[\"d3-time-format\"], root[\"rxjs\"], root[\"rxjs/operators\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE__angular_animations__, __WEBPACK_EXTERNAL_MODULE__angular_common__, __WEBPACK_EXTERNAL_MODULE__angular_core__, __WEBPACK_EXTERNAL_MODULE__angular_platform_browser__, __WEBPACK_EXTERNAL_MODULE_d3_array__, __WEBPACK_EXTERNAL_MODULE_d3_brush__, __WEBPACK_EXTERNAL_MODULE_d3_color__, __WEBPACK_EXTERNAL_MODULE_d3_force__, __WEBPACK_EXTERNAL_MODULE_d3_format__, __WEBPACK_EXTERNAL_MODULE_d3_hierarchy__, __WEBPACK_EXTERNAL_MODULE_d3_interpolate__, __WEBPACK_EXTERNAL_MODULE_d3_scale__, __WEBPACK_EXTERNAL_MODULE_d3_selection__, __WEBPACK_EXTERNAL_MODULE_d3_shape__, __WEBPACK_EXTERNAL_MODULE_d3_time_format__, __WEBPACK_EXTERNAL_MODULE_rxjs__, __WEBPACK_EXTERNAL_MODULE_rxjs_operators__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c861b1ba5945f64af10a","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".textDataLabel {\\n  font-size: 11px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/bar-chart/bar-label.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/bar-chart/bar-label.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".ngx-charts {\\n  float: left;\\n  overflow: visible; }\\n  .ngx-charts .circle,\\n  .ngx-charts .bar,\\n  .ngx-charts .arc {\\n    cursor: pointer; }\\n  .ngx-charts .bar.active, .ngx-charts .bar:hover,\\n  .ngx-charts .cell.active,\\n  .ngx-charts .cell:hover,\\n  .ngx-charts .arc.active,\\n  .ngx-charts .arc:hover,\\n  .ngx-charts .card.active,\\n  .ngx-charts .card:hover {\\n    opacity: 0.8;\\n    transition: opacity 100ms ease-in-out; }\\n  .ngx-charts .bar:focus,\\n  .ngx-charts .cell:focus,\\n  .ngx-charts .arc:focus,\\n  .ngx-charts .card:focus {\\n    outline: none; }\\n  .ngx-charts .bar.hidden,\\n  .ngx-charts .cell.hidden,\\n  .ngx-charts .arc.hidden,\\n  .ngx-charts .card.hidden {\\n    display: none; }\\n  .ngx-charts g:focus {\\n    outline: none; }\\n  .ngx-charts .line-series.inactive,\\n  .ngx-charts .line-series-range.inactive,\\n  .ngx-charts .polar-series-path.inactive,\\n  .ngx-charts .polar-series-area.inactive,\\n  .ngx-charts .area-series.inactive {\\n    transition: opacity 100ms ease-in-out;\\n    opacity: .2; }\\n  .ngx-charts .line-highlight {\\n    display: none; }\\n    .ngx-charts .line-highlight.active {\\n      display: block; }\\n  .ngx-charts .area {\\n    opacity: 0.6; }\\n  .ngx-charts .circle:hover {\\n    cursor: pointer; }\\n  .ngx-charts .label {\\n    font-size: 12px;\\n    font-weight: normal; }\\n  .ngx-charts .tooltip-anchor {\\n    fill: black; }\\n  .ngx-charts .gridline-path {\\n    stroke: #ddd;\\n    stroke-width: 1;\\n    fill: none; }\\n  .ngx-charts .refline-path {\\n    stroke: #a8b2c7;\\n    stroke-width: 1;\\n    stroke-dasharray: 5;\\n    stroke-dashoffset: 5; }\\n  .ngx-charts .refline-label {\\n    font-size: 9px; }\\n  .ngx-charts .reference-area {\\n    fill-opacity: 0.05;\\n    fill: #000; }\\n  .ngx-charts .gridline-path-dotted {\\n    stroke: #ddd;\\n    stroke-width: 1;\\n    fill: none;\\n    stroke-dasharray: 1, 20;\\n    stroke-dashoffset: 3; }\\n  .ngx-charts .grid-panel rect {\\n    fill: none; }\\n  .ngx-charts .grid-panel.odd rect {\\n    fill: rgba(0, 0, 0, 0.05); }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/common/base-chart.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/common/base-chart.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".advanced-pie-legend {\\n  float: left;\\n  position: relative;\\n  top: 50%;\\n  transform: translate(0, -50%); }\\n  .advanced-pie-legend .total-value {\\n    font-size: 36px; }\\n  .advanced-pie-legend .total-label {\\n    font-size: 24px;\\n    margin-bottom: 19px; }\\n  .advanced-pie-legend .legend-items-container {\\n    width: 100%; }\\n    .advanced-pie-legend .legend-items-container .legend-items {\\n      white-space: nowrap;\\n      overflow: auto; }\\n      .advanced-pie-legend .legend-items-container .legend-items .legend-item {\\n        margin-right: 20px;\\n        display: inline-block;\\n        cursor: pointer; }\\n        .advanced-pie-legend .legend-items-container .legend-items .legend-item:focus {\\n          outline: none; }\\n        .advanced-pie-legend .legend-items-container .legend-items .legend-item:hover {\\n          color: #000;\\n          -webkit-transition: 0.2s;\\n          -moz-transition: 0.2s;\\n          transition: 0.2s; }\\n        .advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value {\\n          font-size: 24px;\\n          margin-top: -6px;\\n          margin-left: 11px; }\\n        .advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label {\\n          font-size: 14px;\\n          opacity: 0.7;\\n          margin-left: 11px;\\n          margin-top: -6px; }\\n        .advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent {\\n          font-size: 24px;\\n          opacity: 0.7;\\n          margin-left: 11px; }\\n        .advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color {\\n          border-left: 4px solid;\\n          width: 4px;\\n          height: 42px;\\n          float: left;\\n          margin-right: 7px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/common/legend/advanced-legend.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/common/legend/advanced-legend.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".chart-legend {\\n  display: inline-block;\\n  padding: 0;\\n  width: auto !important; }\\n  .chart-legend .legend-title {\\n    white-space: nowrap;\\n    overflow: hidden;\\n    margin-left: 10px;\\n    margin-bottom: 5px;\\n    font-size: 14px;\\n    font-weight: bold; }\\n  .chart-legend ul, .chart-legend li {\\n    padding: 0;\\n    margin: 0;\\n    list-style: none; }\\n  .chart-legend .horizontal-legend li {\\n    display: inline-block; }\\n  .chart-legend .legend-wrap {\\n    width: calc(100% - 10px); }\\n  .chart-legend .legend-labels {\\n    line-height: 85%;\\n    list-style: none;\\n    text-align: left;\\n    float: left;\\n    width: 100%;\\n    border-radius: 3px;\\n    overflow-y: auto;\\n    overflow-x: hidden;\\n    white-space: nowrap;\\n    background: rgba(0, 0, 0, 0.05); }\\n  .chart-legend .legend-label {\\n    cursor: pointer;\\n    font-size: 90%;\\n    margin: 8px;\\n    color: #AFB7C8; }\\n    .chart-legend .legend-label:hover {\\n      color: #000;\\n      -webkit-transition: 0.2s;\\n      -moz-transition: 0.2s;\\n      transition: 0.2s; }\\n    .chart-legend .legend-label .active .legend-label-text {\\n      color: #000; }\\n  .chart-legend .legend-label-color {\\n    display: inline-block;\\n    height: 15px;\\n    width: 15px;\\n    margin-right: 5px;\\n    color: #5b646b;\\n    border-radius: 3px; }\\n  .chart-legend .legend-label-text {\\n    display: inline-block;\\n    vertical-align: top;\\n    line-height: 15px;\\n    font-size: 12px;\\n    width: calc(100% - 20px);\\n    text-overflow: ellipsis;\\n    white-space: nowrap;\\n    overflow: hidden; }\\n  .chart-legend .legend-title-text {\\n    vertical-align: bottom;\\n    display: inline-block;\\n    line-height: 16px;\\n    overflow: hidden;\\n    white-space: nowrap;\\n    text-overflow: ellipsis; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/common/legend/legend.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/common/legend/legend.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".chart-legend {\\n  display: inline-block;\\n  padding: 0;\\n  width: auto !important; }\\n  .chart-legend .scale-legend {\\n    text-align: center;\\n    display: flex;\\n    flex-direction: column; }\\n  .chart-legend .scale-legend-wrap {\\n    display: inline-block;\\n    flex: 1;\\n    width: 30px;\\n    border-radius: 5px;\\n    margin: 0 auto; }\\n  .chart-legend .scale-legend-label {\\n    font-size: 12px; }\\n  .chart-legend .horizontal-legend.scale-legend {\\n    flex-direction: row; }\\n  .chart-legend .horizontal-legend .scale-legend-wrap {\\n    width: auto;\\n    height: 30px;\\n    margin: 0 16px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/common/legend/scale-legend.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/common/legend/scale-legend.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".timeline .brush-background {\\n  fill: rgba(0, 0, 0, 0.05); }\\n\\n.timeline .brush .selection {\\n  fill: rgba(0, 0, 0, 0.1);\\n  stroke-width: 1px;\\n  stroke: #888888; }\\n\\n.timeline .brush .handle {\\n  fill-opacity: 0; }\\n\\n.timeline .embedded-chart {\\n  opacity: 0.6; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/common/timeline/timeline.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/common/timeline/timeline.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".ngx-charts-tooltip-content {\\n  position: fixed;\\n  border-radius: 3px;\\n  z-index: 5000;\\n  display: block;\\n  font-weight: normal;\\n  opacity: 0;\\n  pointer-events: none !important; }\\n  .ngx-charts-tooltip-content.type-popover {\\n    background: #fff;\\n    color: #060709;\\n    border: 1px solid #72809b;\\n    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 2px 1px -1px rgba(0, 0, 0, 0.12);\\n    font-size: 13px;\\n    padding: 4px; }\\n    .ngx-charts-tooltip-content.type-popover .tooltip-caret {\\n      position: absolute;\\n      z-index: 5001;\\n      width: 0;\\n      height: 0; }\\n      .ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left {\\n        border-top: 7px solid transparent;\\n        border-bottom: 7px solid transparent;\\n        border-left: 7px solid #fff; }\\n      .ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top {\\n        border-left: 7px solid transparent;\\n        border-right: 7px solid transparent;\\n        border-top: 7px solid #fff; }\\n      .ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right {\\n        border-top: 7px solid transparent;\\n        border-bottom: 7px solid transparent;\\n        border-right: 7px solid #fff; }\\n      .ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom {\\n        border-left: 7px solid transparent;\\n        border-right: 7px solid transparent;\\n        border-bottom: 7px solid #fff; }\\n  .ngx-charts-tooltip-content.type-tooltip {\\n    color: #fff;\\n    background: rgba(0, 0, 0, 0.75);\\n    font-size: 12px;\\n    padding: 0 10px;\\n    text-align: center;\\n    pointer-events: auto; }\\n    .ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left {\\n      border-top: 7px solid transparent;\\n      border-bottom: 7px solid transparent;\\n      border-left: 7px solid rgba(0, 0, 0, 0.75); }\\n    .ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top {\\n      border-left: 7px solid transparent;\\n      border-right: 7px solid transparent;\\n      border-top: 7px solid rgba(0, 0, 0, 0.75); }\\n    .ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right {\\n      border-top: 7px solid transparent;\\n      border-bottom: 7px solid transparent;\\n      border-right: 7px solid rgba(0, 0, 0, 0.75); }\\n    .ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom {\\n      border-left: 7px solid transparent;\\n      border-right: 7px solid transparent;\\n      border-bottom: 7px solid rgba(0, 0, 0, 0.75); }\\n  .ngx-charts-tooltip-content .tooltip-label {\\n    display: block;\\n    line-height: 1em;\\n    padding: 8px 5px 5px 5px;\\n    font-size: 1em; }\\n  .ngx-charts-tooltip-content .tooltip-val {\\n    display: block;\\n    font-size: 1.3em;\\n    line-height: 1em;\\n    padding: 0 5px 8px 5px; }\\n  .ngx-charts-tooltip-content .tooltip-caret {\\n    position: absolute;\\n    z-index: 5001;\\n    width: 0;\\n    height: 0; }\\n  .ngx-charts-tooltip-content.position-right {\\n    transform: translate3d(10px, 0, 0); }\\n  .ngx-charts-tooltip-content.position-left {\\n    transform: translate3d(-10px, 0, 0); }\\n  .ngx-charts-tooltip-content.position-top {\\n    transform: translate3d(0, -10px, 0); }\\n  .ngx-charts-tooltip-content.position-bottom {\\n    transform: translate3d(0, 10px, 0); }\\n  .ngx-charts-tooltip-content.animate {\\n    opacity: 1;\\n    transition: opacity 0.3s, transform 0.3s;\\n    transform: translate3d(0, 0, 0);\\n    pointer-events: auto; }\\n\\n.area-tooltip-container {\\n  padding: 5px 0;\\n  pointer-events: none; }\\n\\n.tooltip-item {\\n  text-align: left;\\n  line-height: 1.2em;\\n  padding: 5px 0; }\\n  .tooltip-item .tooltip-item-color {\\n    display: inline-block;\\n    height: 12px;\\n    width: 12px;\\n    margin-right: 5px;\\n    color: #5b646b;\\n    border-radius: 3px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/common/tooltip/tooltip.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/common/tooltip/tooltip.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".force-directed-graph .edge {\\n  stroke: #333; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/force-directed-graph/force-directed-graph.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/force-directed-graph/force-directed-graph.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".gauge .background-arc path {\\n  fill: rgba(0, 0, 0, 0.05); }\\n\\n.gauge .gauge-tick path {\\n  stroke: #666; }\\n\\n.gauge .gauge-tick text {\\n  font-size: 12px;\\n  fill: #666;\\n  font-weight: bold; }\\n\\n.gauge .gauge-tick-large path {\\n  stroke-width: 2px; }\\n\\n.gauge .gauge-tick-small path {\\n  stroke-width: 1px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/gauge/gauge.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/gauge/gauge.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".linear-gauge {\\n  cursor: pointer; }\\n  .linear-gauge .background-bar path {\\n    fill: rgba(0, 0, 0, 0.05); }\\n  .linear-gauge .units {\\n    fill: #666; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/gauge/linear-gauge.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/gauge/linear-gauge.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"ngx-charts-number-card .cell .trimmed-label {\\n  font-size: 12px;\\n  pointer-events: none;\\n  overflow: hidden;\\n  text-align: left;\\n  line-height: 1em; }\\n  ngx-charts-number-card .cell .trimmed-label p {\\n    overflow: hidden;\\n    white-space: nowrap;\\n    text-overflow: ellipsis;\\n    width: 100%;\\n    padding: 0;\\n    margin: 0; }\\n\\nngx-charts-number-card .cell .value-text {\\n  pointer-events: none; }\\n\\nngx-charts-number-card .number-card.clickable .cell .card, ngx-charts-number-card .number-card.clickable .cell .card-band {\\n  cursor: pointer; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/number-card/card.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/number-card/card.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".advanced-pie {\\n  display: inline-block;\\n  float: left; }\\n\\n.advanced-pie-legend-wrapper {\\n  display: inline-block; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/pie-chart/advanced-pie-chart.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/pie-chart/advanced-pie-chart.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".pie-label {\\n  font-size: 11px; }\\n  .pie-label.animation {\\n    animation: 750ms ease-in fadeIn; }\\n\\n@keyframes fadeIn {\\n  from {\\n    opacity: 0; }\\n  to {\\n    opacity: 1; } }\\n\\n.pie-label-line {\\n  stroke-dasharray: 100%; }\\n  .pie-label-line.animation {\\n    animation: 3s linear drawOut;\\n    transition: d 750ms; }\\n\\n@keyframes drawOut {\\n  from {\\n    stroke-dashoffset: 100%; }\\n  to {\\n    stroke-dashoffset: 0; } }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/pie-chart/pie-chart.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/pie-chart/pie-chart.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".pie-grid .arc1 {\\n  opacity: 0.4; }\\n\\n.pie-grid .percent-label {\\n  font-size: 16px;\\n  font-weight: 400; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/pie-chart/pie-grid.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/pie-chart/pie-grid.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".polar-chart .polar-chart-background {\\n  fill: none; }\\n\\n.polar-chart .radial-gridline-path {\\n  stroke-dasharray: 10 10;\\n  fill: none; }\\n\\n.polar-chart .pie-label-line {\\n  stroke: #2f3646; }\\n\\n.polar-charts-series .polar-series-area {\\n  pointer-events: none; }\\n\\n.polar-series-path {\\n  pointer-events: none; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/polar-chart/polar-chart.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/polar-chart/polar-chart.component.scss\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".tree-map .treemap-val {\\n  font-size: 1.3em;\\n  padding-top: 5px;\\n  display: inline-block; }\\n\\n.tree-map .treemap-label p {\\n  display: table-cell;\\n  text-align: center;\\n  line-height: 1.2em;\\n  vertical-align: middle; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./src/tree-map/tree-map.component.scss\n// module id = ./node_modules/css-loader/index.js!./node_modules/sass-loader/lib/loader.js!./src/tree-map/tree-map.component.scss\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t//  when a module is imported multiple times with different media queries.\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader/lib/css-base.js\n// module id = ./node_modules/css-loader/lib/css-base.js\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = ./node_modules/webpack/buildin/global.js\n// module chunks = 0","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  HostListener,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { scaleLinear, scalePoint, scaleTime } from 'd3-scale';\nimport { curveLinear } from 'd3-shape';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { id } from '../utils/id';\nimport { getUniqueXDomainValues, getScaleType } from '../common/domain.helper';\n\n@Component({\n  selector: 'ngx-charts-area-chart-normalized',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event)\"\n      (legendLabelDeactivate)=\"onDeactivate($event)\"\n    >\n      <svg:defs>\n        <svg:clipPath [attr.id]=\"clipPathId\">\n          <svg:rect\n            [attr.width]=\"dims.width + 10\"\n            [attr.height]=\"dims.height + 10\"\n            [attr.transform]=\"'translate(-5, -5)'\"\n          />\n        </svg:clipPath>\n      </svg:defs>\n      <svg:g [attr.transform]=\"transform\" class=\"area-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g [attr.clip-path]=\"clipPath\">\n          <svg:g *ngFor=\"let series of results; trackBy: trackBy\">\n            <svg:g\n              ngx-charts-area-series\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [colors]=\"colors\"\n              [data]=\"series\"\n              [scaleType]=\"scaleType\"\n              [activeEntries]=\"activeEntries\"\n              [gradient]=\"gradient\"\n              normalized=\"true\"\n              [curve]=\"curve\"\n              [animations]=\"animations\"\n            />\n          </svg:g>\n\n          <svg:g *ngIf=\"!tooltipDisabled\" (mouseleave)=\"hideCircles()\">\n            <svg:g\n              ngx-charts-tooltip-area\n              [dims]=\"dims\"\n              [xSet]=\"xSet\"\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [results]=\"results\"\n              [colors]=\"colors\"\n              [showPercentage]=\"true\"\n              [tooltipDisabled]=\"tooltipDisabled\"\n              [tooltipTemplate]=\"seriesTooltipTemplate\"\n              (hover)=\"updateHoveredVertical($event)\"\n            />\n\n            <svg:g *ngFor=\"let series of results\">\n              <svg:g\n                ngx-charts-circle-series\n                type=\"stacked\"\n                [xScale]=\"xScale\"\n                [yScale]=\"yScale\"\n                [colors]=\"colors\"\n                [activeEntries]=\"activeEntries\"\n                [data]=\"series\"\n                [scaleType]=\"scaleType\"\n                [visibleValue]=\"hoveredVertical\"\n                [tooltipDisabled]=\"tooltipDisabled\"\n                [tooltipTemplate]=\"tooltipTemplate\"\n                (select)=\"onClick($event, series)\"\n                (activate)=\"onActivate($event)\"\n                (deactivate)=\"onDeactivate($event)\"\n              />\n            </svg:g>\n          </svg:g>\n        </svg:g>\n      </svg:g>\n      <svg:g\n        ngx-charts-timeline\n        *ngIf=\"timeline && scaleType != 'ordinal'\"\n        [attr.transform]=\"timelineTransform\"\n        [results]=\"results\"\n        [view]=\"[timelineWidth, height]\"\n        [height]=\"timelineHeight\"\n        [scheme]=\"scheme\"\n        [customColors]=\"customColors\"\n        [legend]=\"legend\"\n        [scaleType]=\"scaleType\"\n        (onDomainChange)=\"updateDomain($event)\"\n      >\n        <svg:g *ngFor=\"let series of results; trackBy: trackBy\">\n          <svg:g\n            ngx-charts-area-series\n            [xScale]=\"timelineXScale\"\n            [yScale]=\"timelineYScale\"\n            [colors]=\"colors\"\n            [data]=\"series\"\n            [scaleType]=\"scaleType\"\n            [gradient]=\"gradient\"\n            normalized=\"true\"\n            [curve]=\"curve\"\n            [animations]=\"animations\"\n          />\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None\n})\nexport class AreaChartNormalizedComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() timeline;\n  @Input() gradient;\n  @Input() showGridLines: boolean = true;\n  @Input() curve: any = curveLinear;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() roundDomains: boolean = false;\n  @Input() tooltipDisabled: boolean = false;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n  @ContentChild('seriesTooltipTemplate', { static: false }) seriesTooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  scaleType: string;\n  xDomain: any[];\n  xSet: any[]; // the set of all values on the X Axis\n  yDomain: any[];\n  seriesDomain: any;\n  xScale: any;\n  yScale: any;\n  transform: string;\n  clipPathId: string;\n  clipPath: string;\n  colors: ColorHelper;\n  margin = [10, 20, 10, 20];\n  tooltipAreas: any[];\n  hoveredVertical: any; // the value of the x axis that is hovered over\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  filteredDomain: any;\n  legendOptions: any;\n\n  timelineWidth: any;\n  timelineHeight: number = 50;\n  timelineXScale: any;\n  timelineYScale: any;\n  timelineXDomain: any;\n  timelineTransform: any;\n  timelinePadding: number = 10;\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    if (this.timeline) {\n      this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n    }\n\n    this.xDomain = this.getXDomain();\n    if (this.filteredDomain) {\n      this.xDomain = this.filteredDomain;\n    }\n\n    this.yDomain = this.getYDomain();\n    this.seriesDomain = this.getSeriesDomain();\n\n    this.xScale = this.getXScale(this.xDomain, this.dims.width);\n    this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n    for (let i = 0; i < this.xSet.length; i++) {\n      const val = this.xSet[i];\n      let d0 = 0;\n\n      let total = 0;\n      for (const group of this.results) {\n        const d = group.series.find(item => {\n          let a = item.name;\n          let b = val;\n          if (this.scaleType === 'time') {\n            a = a.valueOf();\n            b = b.valueOf();\n          }\n          return a === b;\n        });\n        if (d) {\n          total += d.value;\n        }\n      }\n\n      for (const group of this.results) {\n        let d = group.series.find(item => {\n          let a = item.name;\n          let b = val;\n          if (this.scaleType === 'time') {\n            a = a.valueOf();\n            b = b.valueOf();\n          }\n          return a === b;\n        });\n\n        if (d) {\n          d.d0 = d0;\n          d.d1 = d0 + d.value;\n          d0 += d.value;\n        } else {\n          d = {\n            name: val,\n            value: 0,\n            d0,\n            d1: d0\n          };\n          group.series.push(d);\n        }\n\n        if (total > 0) {\n          d.d0 = (d.d0 * 100) / total;\n          d.d1 = (d.d1 * 100) / total;\n        } else {\n          d.d0 = 0;\n          d.d1 = 0;\n        }\n      }\n    }\n\n    this.updateTimeline();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n\n    this.clipPathId = 'clip' + id().toString();\n    this.clipPath = `url(#${this.clipPathId})`;\n  }\n\n  updateTimeline(): void {\n    if (this.timeline) {\n      this.timelineWidth = this.dims.width;\n      this.timelineXDomain = this.getXDomain();\n      this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n      this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n      this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n    }\n  }\n\n  getXDomain(): any[] {\n    let values = getUniqueXDomainValues(this.results);\n\n    this.scaleType = getScaleType(values);\n    let domain = [];\n\n    if (this.scaleType === 'time') {\n      const min = Math.min(...values);\n      const max = Math.max(...values);\n      domain = [new Date(min), new Date(max)];\n      this.xSet = [...values].sort((a, b) => {\n        const aDate = a.getTime();\n        const bDate = b.getTime();\n        if (aDate > bDate) return 1;\n        if (bDate > aDate) return -1;\n        return 0;\n      });\n    } else if (this.scaleType === 'linear') {\n      values = values.map(v => Number(v));\n      const min = Math.min(...values);\n      const max = Math.max(...values);\n      domain = [min, max];\n      // Use compare function to sort numbers numerically\n      this.xSet = [...values].sort((a, b) => a - b);\n    } else {\n      domain = values;\n      this.xSet = values;\n    }\n\n    return domain;\n  }\n\n  getYDomain(): any[] {\n    return [0, 100];\n  }\n\n  getSeriesDomain(): any[] {\n    return this.results.map(d => d.name);\n  }\n\n  getXScale(domain, width): any {\n    let scale;\n\n    if (this.scaleType === 'time') {\n      scale = scaleTime();\n    } else if (this.scaleType === 'linear') {\n      scale = scaleLinear();\n    } else if (this.scaleType === 'ordinal') {\n      scale = scalePoint().padding(0.1);\n    }\n\n    scale.range([0, width]).domain(domain);\n\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  getYScale(domain, height): any {\n    const scale = scaleLinear()\n      .range([height, 0])\n      .domain(domain);\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  updateDomain(domain): void {\n    this.filteredDomain = domain;\n    this.xDomain = this.filteredDomain;\n    this.xScale = this.getXScale(this.xDomain, this.dims.width);\n  }\n\n  updateHoveredVertical(item): void {\n    this.hoveredVertical = item.value;\n    this.deactivateAll();\n  }\n\n  @HostListener('mouseleave')\n  hideCircles(): void {\n    this.hoveredVertical = null;\n    this.deactivateAll();\n  }\n\n  onClick(data, series?): void {\n    if (series) {\n      data.series = series.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  trackBy(index, item): string {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.seriesDomain;\n    } else {\n      domain = this.yDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.seriesDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.yDomain;\n      opts.colors = this.colors.scale;\n    }\n    return opts;\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(item) {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item) {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  deactivateAll() {\n    this.activeEntries = [...this.activeEntries];\n    for (const entry of this.activeEntries) {\n      this.deactivate.emit({ value: entry, entries: [] });\n    }\n    this.activeEntries = [];\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/area-chart/area-chart-normalized.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  HostListener,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { scaleLinear, scalePoint, scaleTime } from 'd3-scale';\nimport { curveLinear } from 'd3-shape';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { id } from '../utils/id';\nimport { getUniqueXDomainValues, getScaleType } from '../common/domain.helper';\n\n@Component({\n  selector: 'ngx-charts-area-chart-stacked',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event)\"\n      (legendLabelDeactivate)=\"onDeactivate($event)\"\n    >\n      <svg:defs>\n        <svg:clipPath [attr.id]=\"clipPathId\">\n          <svg:rect\n            [attr.width]=\"dims.width + 10\"\n            [attr.height]=\"dims.height + 10\"\n            [attr.transform]=\"'translate(-5, -5)'\"\n          />\n        </svg:clipPath>\n      </svg:defs>\n      <svg:g [attr.transform]=\"transform\" class=\"area-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g [attr.clip-path]=\"clipPath\">\n          <svg:g *ngFor=\"let series of results; trackBy: trackBy\">\n            <svg:g\n              ngx-charts-area-series\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [colors]=\"colors\"\n              [data]=\"series\"\n              [scaleType]=\"scaleType\"\n              [gradient]=\"gradient\"\n              [activeEntries]=\"activeEntries\"\n              stacked=\"true\"\n              [curve]=\"curve\"\n              [animations]=\"animations\"\n            />\n          </svg:g>\n\n          <svg:g *ngIf=\"!tooltipDisabled\" (mouseleave)=\"hideCircles()\">\n            <svg:g\n              ngx-charts-tooltip-area\n              [dims]=\"dims\"\n              [xSet]=\"xSet\"\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [results]=\"results\"\n              [colors]=\"colors\"\n              [tooltipDisabled]=\"tooltipDisabled\"\n              [tooltipTemplate]=\"seriesTooltipTemplate\"\n              (hover)=\"updateHoveredVertical($event)\"\n            />\n\n            <svg:g *ngFor=\"let series of results; trackBy: trackBy\">\n              <svg:g\n                ngx-charts-circle-series\n                type=\"stacked\"\n                [xScale]=\"xScale\"\n                [yScale]=\"yScale\"\n                [colors]=\"colors\"\n                [activeEntries]=\"activeEntries\"\n                [data]=\"series\"\n                [scaleType]=\"scaleType\"\n                [visibleValue]=\"hoveredVertical\"\n                [tooltipDisabled]=\"tooltipDisabled\"\n                [tooltipTemplate]=\"tooltipTemplate\"\n                (select)=\"onClick($event, series)\"\n                (activate)=\"onActivate($event)\"\n                (deactivate)=\"onDeactivate($event)\"\n              />\n            </svg:g>\n          </svg:g>\n        </svg:g>\n      </svg:g>\n      <svg:g\n        ngx-charts-timeline\n        *ngIf=\"timeline && scaleType != 'ordinal'\"\n        [attr.transform]=\"timelineTransform\"\n        [results]=\"results\"\n        [view]=\"[timelineWidth, height]\"\n        [height]=\"timelineHeight\"\n        [scheme]=\"scheme\"\n        [customColors]=\"customColors\"\n        [legend]=\"legend\"\n        [scaleType]=\"scaleType\"\n        (onDomainChange)=\"updateDomain($event)\"\n      >\n        <svg:g *ngFor=\"let series of results; trackBy: trackBy\">\n          <svg:g\n            ngx-charts-area-series\n            [xScale]=\"timelineXScale\"\n            [yScale]=\"timelineYScale\"\n            [colors]=\"colors\"\n            [data]=\"series\"\n            [scaleType]=\"scaleType\"\n            [gradient]=\"gradient\"\n            stacked=\"true\"\n            [curve]=\"curve\"\n            [animations]=\"animations\"\n          />\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None\n})\nexport class AreaChartStackedComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() timeline;\n  @Input() gradient;\n  @Input() showGridLines: boolean = true;\n  @Input() curve: any = curveLinear;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() roundDomains: boolean = false;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() xScaleMin: any;\n  @Input() xScaleMax: any;\n  @Input() yScaleMin: number;\n  @Input() yScaleMax: number;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n  @ContentChild('seriesTooltipTemplate', { static: false }) seriesTooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  scaleType: string;\n  xDomain: any[];\n  xSet: any[]; // the set of all values on the X Axis\n  yDomain: any[];\n  seriesDomain: any;\n  xScale: any;\n  yScale: any;\n  transform: string;\n  clipPathId: string;\n  clipPath: string;\n  colors: ColorHelper;\n  margin = [10, 20, 10, 20];\n  hoveredVertical: any; // the value of the x axis that is hovered over\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  filteredDomain: any;\n  legendOptions: any;\n\n  timelineWidth: any;\n  timelineHeight: number = 50;\n  timelineXScale: any;\n  timelineYScale: any;\n  timelineXDomain: any;\n  timelineTransform: any;\n  timelinePadding: number = 10;\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    if (this.timeline) {\n      this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n    }\n\n    this.xDomain = this.getXDomain();\n    if (this.filteredDomain) {\n      this.xDomain = this.filteredDomain;\n    }\n\n    this.yDomain = this.getYDomain();\n    this.seriesDomain = this.getSeriesDomain();\n\n    this.xScale = this.getXScale(this.xDomain, this.dims.width);\n    this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n    for (let i = 0; i < this.xSet.length; i++) {\n      const val = this.xSet[i];\n      let d0 = 0;\n      for (const group of this.results) {\n        let d = group.series.find(item => {\n          let a = item.name;\n          let b = val;\n          if (this.scaleType === 'time') {\n            a = a.valueOf();\n            b = b.valueOf();\n          }\n          return a === b;\n        });\n\n        if (d) {\n          d.d0 = d0;\n          d.d1 = d0 + d.value;\n          d0 += d.value;\n        } else {\n          d = {\n            name: val,\n            value: 0,\n            d0,\n            d1: d0\n          };\n          group.series.push(d);\n        }\n      }\n    }\n\n    this.updateTimeline();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n\n    this.clipPathId = 'clip' + id().toString();\n    this.clipPath = `url(#${this.clipPathId})`;\n  }\n\n  updateTimeline(): void {\n    if (this.timeline) {\n      this.timelineWidth = this.dims.width;\n      this.timelineXDomain = this.getXDomain();\n      this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n      this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n      this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n    }\n  }\n\n  getXDomain(): any[] {\n    let values = getUniqueXDomainValues(this.results);\n\n    this.scaleType = getScaleType(values);\n    let domain = [];\n\n    if (this.scaleType === 'linear') {\n      values = values.map(v => Number(v));\n    }\n\n    let min;\n    let max;\n    if (this.scaleType === 'time' || this.scaleType === 'linear') {\n      min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n\n      max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n    }\n\n    if (this.scaleType === 'time') {\n      domain = [new Date(min), new Date(max)];\n      this.xSet = [...values].sort((a, b) => {\n        const aDate = a.getTime();\n        const bDate = b.getTime();\n        if (aDate > bDate) return 1;\n        if (bDate > aDate) return -1;\n        return 0;\n      });\n    } else if (this.scaleType === 'linear') {\n      domain = [min, max];\n      // Use compare function to sort numbers numerically\n      this.xSet = [...values].sort((a, b) => a - b);\n    } else {\n      domain = values;\n      this.xSet = values;\n    }\n\n    return domain;\n  }\n\n  getYDomain(): any[] {\n    const domain = [];\n\n    for (let i = 0; i < this.xSet.length; i++) {\n      const val = this.xSet[i];\n      let sum = 0;\n      for (const group of this.results) {\n        const d = group.series.find(item => {\n          let a = item.name;\n          let b = val;\n          if (this.scaleType === 'time') {\n            a = a.valueOf();\n            b = b.valueOf();\n          }\n          return a === b;\n        });\n\n        if (d) {\n          sum += d.value;\n        }\n      }\n\n      domain.push(sum);\n    }\n\n    const min = this.yScaleMin ? this.yScaleMin : Math.min(0, ...domain);\n\n    const max = this.yScaleMax ? this.yScaleMax : Math.max(...domain);\n    return [min, max];\n  }\n\n  getSeriesDomain(): any[] {\n    return this.results.map(d => d.name);\n  }\n\n  getXScale(domain, width): any {\n    let scale;\n\n    if (this.scaleType === 'time') {\n      scale = scaleTime();\n    } else if (this.scaleType === 'linear') {\n      scale = scaleLinear();\n    } else if (this.scaleType === 'ordinal') {\n      scale = scalePoint().padding(0.1);\n    }\n\n    scale.range([0, width]).domain(domain);\n\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  getYScale(domain, height): any {\n    const scale = scaleLinear()\n      .range([height, 0])\n      .domain(domain);\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  updateDomain(domain): void {\n    this.filteredDomain = domain;\n    this.xDomain = this.filteredDomain;\n    this.xScale = this.getXScale(this.xDomain, this.dims.width);\n  }\n\n  updateHoveredVertical(item) {\n    this.hoveredVertical = item.value;\n    this.deactivateAll();\n  }\n\n  @HostListener('mouseleave')\n  hideCircles(): void {\n    this.hoveredVertical = null;\n    this.deactivateAll();\n  }\n\n  onClick(data, series?): void {\n    if (series) {\n      data.series = series.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  trackBy(index, item): string {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.seriesDomain;\n    } else {\n      domain = this.yDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.seriesDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.yDomain;\n      opts.colors = this.colors.scale;\n    }\n    return opts;\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(item) {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item) {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  deactivateAll() {\n    this.activeEntries = [...this.activeEntries];\n    for (const entry of this.activeEntries) {\n      this.deactivate.emit({ value: entry, entries: [] });\n    }\n    this.activeEntries = [];\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/area-chart/area-chart-stacked.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  HostListener,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { scaleLinear, scalePoint, scaleTime } from 'd3-scale';\nimport { curveLinear } from 'd3-shape';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { id } from '../utils/id';\nimport { getUniqueXDomainValues, getScaleType } from '../common/domain.helper';\n\n@Component({\n  selector: 'ngx-charts-area-chart',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event)\"\n      (legendLabelDeactivate)=\"onDeactivate($event)\"\n    >\n      <svg:defs>\n        <svg:clipPath [attr.id]=\"clipPathId\">\n          <svg:rect\n            [attr.width]=\"dims.width + 10\"\n            [attr.height]=\"dims.height + 10\"\n            [attr.transform]=\"'translate(-5, -5)'\"\n          />\n        </svg:clipPath>\n      </svg:defs>\n      <svg:g [attr.transform]=\"transform\" class=\"area-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g [attr.clip-path]=\"clipPath\">\n          <svg:g *ngFor=\"let series of results; trackBy: trackBy\">\n            <svg:g\n              ngx-charts-area-series\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [baseValue]=\"baseValue\"\n              [colors]=\"colors\"\n              [data]=\"series\"\n              [activeEntries]=\"activeEntries\"\n              [scaleType]=\"scaleType\"\n              [gradient]=\"gradient\"\n              [curve]=\"curve\"\n              [animations]=\"animations\"\n            />\n          </svg:g>\n\n          <svg:g *ngIf=\"!tooltipDisabled\" (mouseleave)=\"hideCircles()\">\n            <svg:g\n              ngx-charts-tooltip-area\n              [dims]=\"dims\"\n              [xSet]=\"xSet\"\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [results]=\"results\"\n              [colors]=\"colors\"\n              [tooltipDisabled]=\"tooltipDisabled\"\n              [tooltipTemplate]=\"seriesTooltipTemplate\"\n              (hover)=\"updateHoveredVertical($event)\"\n            />\n\n            <svg:g *ngFor=\"let series of results\">\n              <svg:g\n                ngx-charts-circle-series\n                [xScale]=\"xScale\"\n                [yScale]=\"yScale\"\n                [colors]=\"colors\"\n                [activeEntries]=\"activeEntries\"\n                [data]=\"series\"\n                [scaleType]=\"scaleType\"\n                [visibleValue]=\"hoveredVertical\"\n                [tooltipDisabled]=\"tooltipDisabled\"\n                [tooltipTemplate]=\"tooltipTemplate\"\n                (select)=\"onClick($event, series)\"\n                (activate)=\"onActivate($event)\"\n                (deactivate)=\"onDeactivate($event)\"\n              />\n            </svg:g>\n          </svg:g>\n        </svg:g>\n      </svg:g>\n      <svg:g\n        ngx-charts-timeline\n        *ngIf=\"timeline && scaleType != 'ordinal'\"\n        [attr.transform]=\"timelineTransform\"\n        [results]=\"results\"\n        [view]=\"[timelineWidth, height]\"\n        [height]=\"timelineHeight\"\n        [scheme]=\"scheme\"\n        [customColors]=\"customColors\"\n        [legend]=\"legend\"\n        [scaleType]=\"scaleType\"\n        (onDomainChange)=\"updateDomain($event)\"\n      >\n        <svg:g *ngFor=\"let series of results; trackBy: trackBy\">\n          <svg:g\n            ngx-charts-area-series\n            [xScale]=\"timelineXScale\"\n            [yScale]=\"timelineYScale\"\n            [baseValue]=\"baseValue\"\n            [colors]=\"colors\"\n            [data]=\"series\"\n            [scaleType]=\"scaleType\"\n            [gradient]=\"gradient\"\n            [curve]=\"curve\"\n            [animations]=\"animations\"\n          />\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None\n})\nexport class AreaChartComponent extends BaseChartComponent {\n  @Input() legend;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() state;\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() baseValue: any = 'auto';\n  @Input() autoScale;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() timeline;\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() curve: any = curveLinear;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() roundDomains: boolean = false;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() xScaleMin: any;\n  @Input() xScaleMax: any;\n  @Input() yScaleMin: number;\n  @Input() yScaleMax: number;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n  @ContentChild('seriesTooltipTemplate', { static: false }) seriesTooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  xSet: any;\n  xDomain: any;\n  yDomain: any;\n  seriesDomain: any;\n  xScale: any;\n  yScale: any;\n  transform: string;\n  colors: ColorHelper;\n  clipPathId: string;\n  clipPath: string;\n  scaleType: string;\n  series: any;\n  margin = [10, 20, 10, 20];\n  hoveredVertical: any; // the value of the x axis that is hovered over\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  filteredDomain: any;\n  legendOptions: any;\n\n  timelineWidth: any;\n  timelineHeight: number = 50;\n  timelineXScale: any;\n  timelineYScale: any;\n  timelineXDomain: any;\n  timelineTransform: any;\n  timelinePadding: number = 10;\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    if (this.timeline) {\n      this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n    }\n\n    this.xDomain = this.getXDomain();\n    if (this.filteredDomain) {\n      this.xDomain = this.filteredDomain;\n    }\n\n    this.yDomain = this.getYDomain();\n    this.seriesDomain = this.getSeriesDomain();\n\n    this.xScale = this.getXScale(this.xDomain, this.dims.width);\n    this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n    this.updateTimeline();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset}, ${this.margin[0]})`;\n\n    this.clipPathId = 'clip' + id().toString();\n    this.clipPath = `url(#${this.clipPathId})`;\n  }\n\n  updateTimeline(): void {\n    if (this.timeline) {\n      this.timelineWidth = this.dims.width;\n      this.timelineXDomain = this.getXDomain();\n      this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n      this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n      this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n    }\n  }\n\n  getXDomain(): any[] {\n    let values = getUniqueXDomainValues(this.results);\n\n    this.scaleType = getScaleType(values);\n    let domain = [];\n\n    if (this.scaleType === 'linear') {\n      values = values.map(v => Number(v));\n    }\n\n    let min;\n    let max;\n    if (this.scaleType === 'time' || this.scaleType === 'linear') {\n      min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n\n      max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n    }\n\n    if (this.scaleType === 'time') {\n      domain = [new Date(min), new Date(max)];\n      this.xSet = [...values].sort((a, b) => {\n        const aDate = a.getTime();\n        const bDate = b.getTime();\n        if (aDate > bDate) return 1;\n        if (bDate > aDate) return -1;\n        return 0;\n      });\n    } else if (this.scaleType === 'linear') {\n      domain = [min, max];\n      // Use compare function to sort numbers numerically\n      this.xSet = [...values].sort((a, b) => a - b);\n    } else {\n      domain = values;\n      this.xSet = values;\n    }\n\n    return domain;\n  }\n\n  getYDomain(): any[] {\n    const domain = [];\n\n    for (const results of this.results) {\n      for (const d of results.series) {\n        if (!domain.includes(d.value)) {\n          domain.push(d.value);\n        }\n      }\n    }\n\n    const values = [...domain];\n    if (!this.autoScale) {\n      values.push(0);\n    }\n    if (this.baseValue !== 'auto') {\n      values.push(this.baseValue);\n    }\n\n    const min = this.yScaleMin ? this.yScaleMin : Math.min(...values);\n\n    const max = this.yScaleMax ? this.yScaleMax : Math.max(...values);\n\n    return [min, max];\n  }\n\n  getSeriesDomain(): any[] {\n    return this.results.map(d => d.name);\n  }\n\n  getXScale(domain, width): any {\n    let scale;\n\n    if (this.scaleType === 'time') {\n      scale = scaleTime();\n    } else if (this.scaleType === 'linear') {\n      scale = scaleLinear();\n    } else if (this.scaleType === 'ordinal') {\n      scale = scalePoint().padding(0.1);\n    }\n\n    scale.range([0, width]).domain(domain);\n\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  getYScale(domain, height): any {\n    const scale = scaleLinear()\n      .range([height, 0])\n      .domain(domain);\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  getScaleType(values): string {\n    let date = true;\n    let num = true;\n    for (const value of values) {\n      if (!this.isDate(value)) {\n        date = false;\n      }\n      if (typeof value !== 'number') {\n        num = false;\n      }\n    }\n\n    if (date) {\n      return 'time';\n    }\n\n    if (num) {\n      return 'linear';\n    }\n\n    return 'ordinal';\n  }\n\n  isDate(value): boolean {\n    if (value instanceof Date) {\n      return true;\n    }\n\n    return false;\n  }\n\n  updateDomain(domain): void {\n    this.filteredDomain = domain;\n    this.xDomain = this.filteredDomain;\n    this.xScale = this.getXScale(this.xDomain, this.dims.width);\n  }\n\n  updateHoveredVertical(item): void {\n    this.hoveredVertical = item.value;\n    this.deactivateAll();\n  }\n\n  @HostListener('mouseleave')\n  hideCircles(): void {\n    this.hoveredVertical = null;\n    this.deactivateAll();\n  }\n\n  onClick(data, series?): void {\n    if (series) {\n      data.series = series.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  trackBy(index, item): string {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.seriesDomain;\n    } else {\n      domain = this.yDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.seriesDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.yDomain;\n      opts.colors = this.colors.scale;\n    }\n    return opts;\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(item) {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item) {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  deactivateAll() {\n    this.activeEntries = [...this.activeEntries];\n    for (const entry of this.activeEntries) {\n      this.deactivate.emit({ value: entry, entries: [] });\n    }\n    this.activeEntries = [];\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/area-chart/area-chart.component.ts","import { NgModule } from '@angular/core';\nimport { AreaChartComponent } from './area-chart.component';\nimport { AreaChartNormalizedComponent } from './area-chart-normalized.component';\nimport { AreaChartStackedComponent } from './area-chart-stacked.component';\nimport { AreaSeriesComponent } from './area-series.component';\nimport { ChartCommonModule } from '../common/chart-common.module';\n\n@NgModule({\n  imports: [ChartCommonModule],\n  declarations: [\n    AreaChartComponent,\n    AreaChartNormalizedComponent,\n    AreaChartStackedComponent,\n    AreaSeriesComponent\n  ],\n  exports: [\n    AreaChartComponent,\n    AreaChartNormalizedComponent,\n    AreaChartStackedComponent,\n    AreaSeriesComponent\n  ]\n})\nexport class AreaChartModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/area-chart/area-chart.module.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { area } from 'd3-shape';\n\nimport { sortLinear, sortByTime, sortByDomain } from '../utils/sort';\n\n@Component({\n  selector: 'g[ngx-charts-area-series]',\n  template: `\n    <svg:g ngx-charts-area\n      class=\"area-series\"\n      [data]=\"data\"\n      [path]=\"path\"\n      [fill]=\"colors.getColor(data.name)\"\n      [stops]=\"gradientStops\"\n      [startingPath]=\"startingPath\"\n      [opacity]=\"opacity\"\n      [gradient]=\"gradient || hasGradient\"\n      [animations]=\"animations\"\n      [class.active]=\"isActive(data)\"\n      [class.inactive]=\"isInactive(data)\"\n    />\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AreaSeriesComponent implements OnChanges {\n\n  @Input() data;\n  @Input() xScale;\n  @Input() yScale;\n  @Input() baseValue: any = 'auto';\n  @Input() colors;\n  @Input() scaleType;\n  @Input() stacked: boolean = false;\n  @Input() normalized: boolean = false;\n  @Input() gradient;\n  @Input() curve;\n  @Input() activeEntries: any[];\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n\n  opacity: number;\n  path: string;\n  startingPath: string;\n\n  hasGradient: boolean;\n  gradientStops: any[];\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.updateGradient();\n\n    let currentArea;\n    let startingArea;\n\n    const xProperty = (d) => {\n      const label = d.name;\n      return this.xScale(label);\n    };\n\n    if (this.stacked || this.normalized) {\n      currentArea = area<any>()\n        .x(xProperty)\n        .y0((d, i) => this.yScale(d.d0))\n        .y1((d, i) => this.yScale(d.d1));\n\n      startingArea = area<any>()\n        .x(xProperty)\n        .y0(d => this.yScale.range()[0])\n        .y1(d => this.yScale.range()[0]);\n    } else {\n      currentArea = area<any>()\n        .x(xProperty)\n        .y0(() => this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue))\n        .y1(d => this.yScale(d.value));\n\n      startingArea = area<any>()\n        .x(xProperty)\n        .y0(d => this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue))\n        .y1(d => this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue));\n    }\n\n    currentArea.curve(this.curve);\n    startingArea.curve(this.curve);\n\n    this.opacity = .8;\n\n    let data = this.data.series;\n    if (this.scaleType === 'linear') {\n      data = sortLinear(data, 'name');\n    } else if (this.scaleType === 'time') {\n      data = sortByTime(data, 'name');\n    } else {\n      data = sortByDomain(data, 'name', 'asc', this.xScale.domain());\n    }\n\n    this.path = currentArea(data);\n    this.startingPath = startingArea(data);\n  }\n\n  updateGradient() {\n    if (this.colors.scaleType === 'linear') {\n      this.hasGradient = true;\n      if (this.stacked || this.normalized) {        \n        const d0values = this.data.series.map(d => d.d0);\n        const d1values = this.data.series.map(d => d.d1);\n        const max = Math.max(...d1values);\n        const min = Math.min(...d0values);\n        this.gradientStops = this.colors.getLinearGradientStops(max, min);\n      } else {\n        const values = this.data.series.map(d => d.value);\n        const max = Math.max(...values);\n        this.gradientStops = this.colors.getLinearGradientStops(max);\n      }\n    } else {\n      this.hasGradient = false;\n      this.gradientStops = undefined;\n    }\n  }\n\n  isActive(entry): boolean {\n    if(!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name;\n    });\n    return item !== undefined;\n  }\n\n  isInactive(entry): boolean {\n    if(!this.activeEntries || this.activeEntries.length === 0) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name;\n    });\n    return item === undefined;\n  }\n  \n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/area-chart/area-series.component.ts","export * from './area-chart.module';\nexport * from './area-chart.component';\nexport * from './area-chart-normalized.component';\nexport * from './area-chart-stacked.component';\nexport * from './area-series.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/area-chart/index.ts","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { BarComponent } from './bar.component';\nimport { BarHorizontalComponent } from './bar-horizontal.component';\nimport { BarHorizontal2DComponent } from './bar-horizontal-2d.component';\nimport { BarHorizontalNormalizedComponent } from './bar-horizontal-normalized.component';\nimport { BarHorizontalStackedComponent } from './bar-horizontal-stacked.component';\nimport { BarVerticalComponent } from './bar-vertical.component';\nimport { BarVertical2DComponent } from './bar-vertical-2d.component';\nimport { BarVerticalNormalizedComponent } from './bar-vertical-normalized.component';\nimport { BarVerticalStackedComponent } from './bar-vertical-stacked.component';\nimport { SeriesHorizontal } from './series-horizontal.component';\nimport { SeriesVerticalComponent } from './series-vertical.component';\nimport { BarLabelComponent } from './bar-label.component';\n\n@NgModule({\n  imports: [ChartCommonModule],\n  declarations: [\n    BarComponent,\n    BarHorizontalComponent,\n    BarHorizontal2DComponent,\n    BarHorizontalNormalizedComponent,\n    BarHorizontalStackedComponent,\n    BarVerticalComponent,\n    BarVertical2DComponent,\n    BarVerticalNormalizedComponent,\n    BarVerticalStackedComponent,\n    BarLabelComponent,\n    SeriesHorizontal,\n    SeriesVerticalComponent\n  ],\n  exports: [\n    BarComponent,\n    BarHorizontalComponent,\n    BarHorizontal2DComponent,\n    BarHorizontalNormalizedComponent,\n    BarHorizontalStackedComponent,\n    BarVerticalComponent,\n    BarVertical2DComponent,\n    BarVerticalNormalizedComponent,\n    BarVerticalStackedComponent,\n    BarLabelComponent,\n    SeriesHorizontal,\n    SeriesVerticalComponent    \n  ]\n})\nexport class BarChartModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-chart.module.ts","import {\n  Component,\n  Input,\n  ViewEncapsulation,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\n\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\n\n@Component({\n  selector: 'ngx-charts-bar-horizontal-2d',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelActivate)=\"onActivate($event, undefined, true)\"\n      (legendLabelDeactivate)=\"onDeactivate($event, undefined, true)\"\n      (legendLabelClick)=\"onClick($event)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"bar-chart chart\">\n        <svg:g\n          ngx-charts-grid-panel-series\n          [xScale]=\"valueScale\"\n          [yScale]=\"groupScale\"\n          [data]=\"results\"\n          [dims]=\"dims\"\n          orient=\"horizontal\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"valueScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"groupScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          [yAxisOffset]=\"dataLabelMaxWidth.negative\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g\n          *ngFor=\"let group of results; let index = index; trackBy: trackBy\"\n          [@animationState]=\"'active'\"\n          [attr.transform]=\"groupTransform(group)\"\n        >\n          <svg:g\n            ngx-charts-series-horizontal\n            [xScale]=\"valueScale\"\n            [activeEntries]=\"activeEntries\"\n            [yScale]=\"innerScale\"\n            [colors]=\"colors\"\n            [series]=\"group.series\"\n            [dims]=\"dims\"\n            [gradient]=\"gradient\"\n            [tooltipDisabled]=\"tooltipDisabled\"\n            [tooltipTemplate]=\"tooltipTemplate\"\n            [seriesName]=\"group.name\"\n            [roundEdges]=\"roundEdges\"\n            [animations]=\"animations\"\n            [showDataLabel]=\"showDataLabel\"\n            [dataLabelFormatting]=\"dataLabelFormatting\"\n            [noBarWhenZero]=\"noBarWhenZero\"\n            (select)=\"onClick($event, group)\"\n            (activate)=\"onActivate($event, group)\"\n            (deactivate)=\"onDeactivate($event, group)\"\n            (dataLabelWidthChanged)=\"onDataLabelMaxWidthChanged($event, index)\"\n          />\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1,\n          transform: '*'\n        }),\n        animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n      ])\n    ])\n  ]\n})\nexport class BarHorizontal2DComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() groupPadding = 16;\n  @Input() barPadding = 8;\n  @Input() roundDomains: boolean = false;\n  @Input() roundEdges: boolean = true;\n  @Input() xScaleMax: number;\n  @Input() showDataLabel: boolean = false;\n  @Input() dataLabelFormatting: any;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  groupDomain: any[];\n  innerDomain: any[];\n  valuesDomain: any[];\n  groupScale: any;\n  innerScale: any;\n  valueScale: any;\n  transform: string;\n  colors: ColorHelper;\n  margin = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  legendOptions: any;\n  dataLabelMaxWidth: any = { negative: 0, positive: 0 };\n\n  update(): void {\n    super.update();\n\n    if (!this.showDataLabel) {\n      this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n    }\n\n    this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    this.formatDates();\n\n    this.groupDomain = this.getGroupDomain();\n    this.innerDomain = this.getInnerDomain();\n    this.valuesDomain = this.getValueDomain();\n\n    this.groupScale = this.getGroupScale();\n    this.innerScale = this.getInnerScale();\n    this.valueScale = this.getValueScale();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n  }\n\n  getGroupScale(): any {\n    const spacing = this.groupDomain.length / (this.dims.height / this.groupPadding + 1);\n\n    return scaleBand()\n      .rangeRound([0, this.dims.height])\n      .paddingInner(spacing)\n      .paddingOuter(spacing / 2)\n      .domain(this.groupDomain);\n  }\n\n  getInnerScale(): any {\n    const height = this.groupScale.bandwidth();\n    const spacing = this.innerDomain.length / (height / this.barPadding + 1);\n\n    return scaleBand()\n      .rangeRound([0, height])\n      .paddingInner(spacing)\n      .domain(this.innerDomain);\n  }\n\n  getValueScale(): any {\n    const scale = scaleLinear()\n      .range([0, this.dims.width])\n      .domain(this.valuesDomain);\n\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  getGroupDomain(): any[] {\n    const domain = [];\n\n    for (const group of this.results) {\n      if (!domain.includes(group.label)) {\n        domain.push(group.label);\n      }\n    }\n\n    return domain;\n  }\n\n  getInnerDomain(): any[] {\n    const domain = [];\n\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.label)) {\n          domain.push(d.label);\n        }\n      }\n    }\n\n    return domain;\n  }\n\n  getValueDomain(): any[] {\n    const domain = [];\n\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.value)) {\n          domain.push(d.value);\n        }\n      }\n    }\n\n    const min = Math.min(0, ...domain);\n    const max = this.xScaleMax ? Math.max(this.xScaleMax, ...domain) : Math.max(0, ...domain);\n    return [min, max];\n  }\n\n  groupTransform(group) {\n    return `translate(0, ${this.groupScale(group.label)})`;\n  }\n\n  onClick(data, group?): void {\n    if (group) {\n      data.series = group.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  trackBy(index, item): string {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.innerDomain;\n    } else {\n      domain = this.valuesDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.innerDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.valuesDomain;\n      opts.colors = this.colors.scale;\n    }\n\n    return opts;\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onDataLabelMaxWidthChanged(event, groupIndex) {\n    if (event.size.negative) {\n      this.dataLabelMaxWidth.negative = Math.max(this.dataLabelMaxWidth.negative, event.size.width);\n    } else {\n      this.dataLabelMaxWidth.positive = Math.max(this.dataLabelMaxWidth.positive, event.size.width);\n    }\n    if (groupIndex === this.results.length - 1) {\n      setTimeout(() => this.update());\n    }\n  }\n\n  onActivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    const items = this.results\n      .map(g => g.series)\n      .flat()\n      .filter(i => {\n        if (fromLegend) {\n          return i.label === item.name;\n        } else {\n          return i.name === item.name && i.series === item.series;\n        }\n      });\n\n    this.activeEntries = [...items];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    this.activeEntries = this.activeEntries.filter(i => {\n      if (fromLegend) {\n        return i.label !== item.name;\n      } else {\n        return !(i.name === item.name && i.series === item.series);\n      }\n    });\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-horizontal-2d.component.ts","import {\n  Component,\n  Input,\n  Output,\n  ViewEncapsulation,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\n\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\n\n@Component({\n  selector: 'ngx-charts-bar-horizontal-normalized',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelActivate)=\"onActivate($event, undefined, true)\"\n      (legendLabelDeactivate)=\"onDeactivate($event, undefined, true)\"\n      (legendLabelClick)=\"onClick($event)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"bar-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g\n          *ngFor=\"let group of results; trackBy: trackBy\"\n          [@animationState]=\"'active'\"\n          [attr.transform]=\"groupTransform(group)\"\n        >\n          <svg:g\n            ngx-charts-series-horizontal\n            type=\"normalized\"\n            [xScale]=\"xScale\"\n            [yScale]=\"yScale\"\n            [activeEntries]=\"activeEntries\"\n            [colors]=\"colors\"\n            [series]=\"group.series\"\n            [dims]=\"dims\"\n            [gradient]=\"gradient\"\n            [tooltipDisabled]=\"tooltipDisabled\"\n            [tooltipTemplate]=\"tooltipTemplate\"\n            [seriesName]=\"group.name\"\n            [animations]=\"animations\"\n            (select)=\"onClick($event, group)\"\n            (activate)=\"onActivate($event, group)\"\n            (deactivate)=\"onDeactivate($event, group)\"\n            [noBarWhenZero]=\"noBarWhenZero\"\n          />\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1,\n          transform: '*'\n        }),\n        animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n      ])\n    ])\n  ]\n})\nexport class BarHorizontalNormalizedComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() barPadding = 8;\n  @Input() roundDomains: boolean = false;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  groupDomain: any[];\n  innerDomain: any[];\n  valueDomain: any[];\n  xScale: any;\n  yScale: any;\n  transform: string;\n  colors: ColorHelper;\n  margin = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  legendOptions: any;\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    this.formatDates();\n\n    this.groupDomain = this.getGroupDomain();\n    this.innerDomain = this.getInnerDomain();\n    this.valueDomain = this.getValueDomain();\n\n    this.xScale = this.getXScale();\n    this.yScale = this.getYScale();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n  }\n\n  getGroupDomain(): any[] {\n    const domain = [];\n\n    for (const group of this.results) {\n      if (!domain.includes(group.label)) {\n        domain.push(group.label);\n      }\n    }\n\n    return domain;\n  }\n\n  getInnerDomain(): any[] {\n    const domain = [];\n\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.label)) {\n          domain.push(d.label);\n        }\n      }\n    }\n\n    return domain;\n  }\n\n  getValueDomain(): any[] {\n    return [0, 100];\n  }\n\n  getYScale(): any {\n    const spacing = this.groupDomain.length / (this.dims.height / this.barPadding + 1);\n\n    return scaleBand()\n      .rangeRound([0, this.dims.height])\n      .paddingInner(spacing)\n      .domain(this.groupDomain);\n  }\n\n  getXScale(): any {\n    const scale = scaleLinear()\n      .range([0, this.dims.width])\n      .domain(this.valueDomain);\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  groupTransform(group): string {\n    return `translate(0, ${this.yScale(group.name)})`;\n  }\n\n  onClick(data, group?): void {\n    if (group) {\n      data.series = group.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  trackBy(index, item): string {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.innerDomain;\n    } else {\n      domain = this.valueDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.innerDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.valueDomain;\n      opts.colors = this.colors.scale;\n    }\n\n    return opts;\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    const items = this.results\n      .map(g => g.series)\n      .flat()\n      .filter(i => {\n        if (fromLegend) {\n          return i.label === item.name;\n        } else {\n          return i.name === item.name && i.series === item.series;\n        }\n      });\n\n    this.activeEntries = [...items];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    this.activeEntries = this.activeEntries.filter(i => {\n      if (fromLegend) {\n        return i.label !== item.name;\n      } else {\n        return !(i.name === item.name && i.series === item.series);\n      }\n    });\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-horizontal-normalized.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\n\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\n\n@Component({\n  selector: 'ngx-charts-bar-horizontal-stacked',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelActivate)=\"onActivate($event, undefined, true)\"\n      (legendLabelDeactivate)=\"onDeactivate($event, undefined, true)\"\n      (legendLabelClick)=\"onClick($event)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"bar-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          [yAxisOffset]=\"dataLabelMaxWidth.negative\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g\n          *ngFor=\"let group of results; let index = index; trackBy: trackBy\"\n          [@animationState]=\"'active'\"\n          [attr.transform]=\"groupTransform(group)\"\n        >\n          <svg:g\n            ngx-charts-series-horizontal\n            type=\"stacked\"\n            [xScale]=\"xScale\"\n            [yScale]=\"yScale\"\n            [colors]=\"colors\"\n            [series]=\"group.series\"\n            [activeEntries]=\"activeEntries\"\n            [dims]=\"dims\"\n            [gradient]=\"gradient\"\n            [tooltipDisabled]=\"tooltipDisabled\"\n            [tooltipTemplate]=\"tooltipTemplate\"\n            [seriesName]=\"group.name\"\n            [animations]=\"animations\"\n            [showDataLabel]=\"showDataLabel\"\n            [dataLabelFormatting]=\"dataLabelFormatting\"\n            [noBarWhenZero]=\"noBarWhenZero\"\n            (select)=\"onClick($event, group)\"\n            (activate)=\"onActivate($event, group)\"\n            (deactivate)=\"onDeactivate($event, group)\"\n            (dataLabelWidthChanged)=\"onDataLabelMaxWidthChanged($event, index)\"\n          />\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1,\n          transform: '*'\n        }),\n        animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n      ])\n    ])\n  ]\n})\nexport class BarHorizontalStackedComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() barPadding = 8;\n  @Input() roundDomains: boolean = false;\n  @Input() xScaleMax: number;\n  @Input() showDataLabel: boolean = false;\n  @Input() dataLabelFormatting: any;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  groupDomain: any[];\n  innerDomain: any[];\n  valueDomain: any[];\n  xScale: any;\n  yScale: any;\n  transform: string;\n  colors: ColorHelper;\n  margin = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  legendOptions: any;\n  dataLabelMaxWidth: any = { negative: 0, positive: 0 };\n\n  update(): void {\n    super.update();\n\n    if (!this.showDataLabel) {\n      this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n    }\n\n    this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    this.formatDates();\n\n    this.groupDomain = this.getGroupDomain();\n    this.innerDomain = this.getInnerDomain();\n    this.valueDomain = this.getValueDomain();\n\n    this.xScale = this.getXScale();\n    this.yScale = this.getYScale();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n  }\n\n  getGroupDomain(): any[] {\n    const domain = [];\n\n    for (const group of this.results) {\n      if (!domain.includes(group.label)) {\n        domain.push(group.label);\n      }\n    }\n\n    return domain;\n  }\n\n  getInnerDomain(): any[] {\n    const domain = [];\n\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.label)) {\n          domain.push(d.label);\n        }\n      }\n    }\n\n    return domain;\n  }\n\n  getValueDomain(): any[] {\n    const domain = [];\n    let smallest = 0;\n    let biggest = 0;\n    for (const group of this.results) {\n      let smallestSum = 0;\n      let biggestSum = 0;\n      for (const d of group.series) {\n        if (d.value < 0) {\n          smallestSum += d.value;\n        } else {\n          biggestSum += d.value;\n        }\n        smallest = d.value < smallest ? d.value : smallest;\n        biggest = d.value > biggest ? d.value : biggest;\n      }\n      domain.push(smallestSum);\n      domain.push(biggestSum);\n    }\n    domain.push(smallest);\n    domain.push(biggest);\n\n    const min = Math.min(0, ...domain);\n    const max = this.xScaleMax ? Math.max(this.xScaleMax, ...domain) : Math.max(...domain);\n    return [min, max];\n  }\n\n  getYScale(): any {\n    const spacing = this.groupDomain.length / (this.dims.height / this.barPadding + 1);\n\n    return scaleBand()\n      .rangeRound([0, this.dims.height])\n      .paddingInner(spacing)\n      .domain(this.groupDomain);\n  }\n\n  getXScale(): any {\n    const scale = scaleLinear()\n      .range([0, this.dims.width])\n      .domain(this.valueDomain);\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  groupTransform(group): string {\n    return `translate(0, ${this.yScale(group.name)})`;\n  }\n\n  onClick(data, group?): void {\n    if (group) {\n      data.series = group.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  trackBy(index, item): string {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.innerDomain;\n    } else {\n      domain = this.valueDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.innerDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.valueDomain;\n      opts.colors = this.colors.scale;\n    }\n\n    return opts;\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onDataLabelMaxWidthChanged(event, groupIndex) {\n    if (event.size.negative) {\n      this.dataLabelMaxWidth.negative = Math.max(this.dataLabelMaxWidth.negative, event.size.width);\n    } else {\n      this.dataLabelMaxWidth.positive = Math.max(this.dataLabelMaxWidth.positive, event.size.width);\n    }\n    if (groupIndex === this.results.length - 1) {\n      setTimeout(() => this.update());\n    }\n  }\n\n  onActivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    const items = this.results\n      .map(g => g.series)\n      .flat()\n      .filter(i => {\n        if (fromLegend) {\n          return i.label === item.name;\n        } else {\n          return i.name === item.name && i.series === item.series;\n        }\n      });\n\n    this.activeEntries = [...items];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    this.activeEntries = this.activeEntries.filter(i => {\n      if (fromLegend) {\n        return i.label !== item.name;\n      } else {\n        return !(i.name === item.name && i.series === item.series);\n      }\n    });\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-horizontal-stacked.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\n\n@Component({\n  selector: 'ngx-charts-bar-horizontal',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event, true)\"\n      (legendLabelDeactivate)=\"onDeactivate($event, true)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"bar-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          [yAxisOffset]=\"dataLabelMaxWidth.negative\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-series-horizontal\n          [xScale]=\"xScale\"\n          [yScale]=\"yScale\"\n          [colors]=\"colors\"\n          [series]=\"results\"\n          [dims]=\"dims\"\n          [gradient]=\"gradient\"\n          [tooltipDisabled]=\"tooltipDisabled\"\n          [tooltipTemplate]=\"tooltipTemplate\"\n          [activeEntries]=\"activeEntries\"\n          [roundEdges]=\"roundEdges\"\n          [animations]=\"animations\"\n          [showDataLabel]=\"showDataLabel\"\n          [dataLabelFormatting]=\"dataLabelFormatting\"\n          [noBarWhenZero]=\"noBarWhenZero\"\n          (select)=\"onClick($event)\"\n          (activate)=\"onActivate($event)\"\n          (deactivate)=\"onDeactivate($event)\"\n          (dataLabelWidthChanged)=\"onDataLabelMaxWidthChanged($event)\"\n        ></svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None\n})\nexport class BarHorizontalComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() barPadding = 8;\n  @Input() roundDomains: boolean = false;\n  @Input() roundEdges: boolean = true;\n  @Input() xScaleMax: number;\n  @Input() xScaleMin: number;\n  @Input() showDataLabel: boolean = false;\n  @Input() dataLabelFormatting: any;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  yScale: any;\n  xScale: any;\n  xDomain: any;\n  yDomain: any;\n  transform: string;\n  colors: ColorHelper;\n  margin = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  legendOptions: any;\n  dataLabelMaxWidth: any = { negative: 0, positive: 0 };\n\n  update(): void {\n    super.update();\n\n    if (!this.showDataLabel) {\n      this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n    }\n\n    this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    this.formatDates();\n\n    this.xScale = this.getXScale();\n    this.yScale = this.getYScale();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n  }\n\n  getXScale(): any {\n    this.xDomain = this.getXDomain();\n\n    const scale = scaleLinear()\n      .range([0, this.dims.width])\n      .domain(this.xDomain);\n\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  getYScale(): any {\n    this.yDomain = this.getYDomain();\n    const spacing = this.yDomain.length / (this.dims.height / this.barPadding + 1);\n\n    return scaleBand()\n      .rangeRound([0, this.dims.height])\n      .paddingInner(spacing)\n      .domain(this.yDomain);\n  }\n\n  getXDomain(): any[] {\n    const values = this.results.map(d => d.value);\n    const min = this.xScaleMin ? Math.min(this.xScaleMin, ...values) : Math.min(0, ...values);\n\n    const max = this.xScaleMax ? Math.max(this.xScaleMax, ...values) : Math.max(0, ...values);\n    return [min, max];\n  }\n\n  getYDomain(): any[] {\n    return this.results.map(d => d.label);\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.yDomain;\n    } else {\n      domain = this.xDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.yDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.xDomain;\n      opts.colors = this.colors.scale;\n    }\n\n    return opts;\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onDataLabelMaxWidthChanged(event) {\n    if (event.size.negative) {\n      this.dataLabelMaxWidth.negative = Math.max(this.dataLabelMaxWidth.negative, event.size.width);\n    } else {\n      this.dataLabelMaxWidth.positive = Math.max(this.dataLabelMaxWidth.positive, event.size.width);\n    }\n    if (event.index === this.results.length - 1) {\n      setTimeout(() => this.update());\n    }\n  }\n\n  onActivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-horizontal.component.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./bar-label.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/bar-chart/bar-label.component.scss\n// module id = ./src/bar-chart/bar-label.component.scss\n// module chunks = 0","import {\n    Component,\n    Input,\n    OnChanges,\n    SimpleChanges,\n    ChangeDetectionStrategy,\n    ElementRef,\n    Output,    \n    EventEmitter\n  } from '@angular/core';\nimport { formatLabel } from '../common/label.helper';\n  \n@Component({\n  selector: 'g[ngx-charts-bar-label]',\n  template: `  \n    <svg:text   \n      class=\"textDataLabel\" \n      alignment-baseline=\"middle\"     \n      [attr.text-anchor]=\"textAnchor\"\n      [attr.transform]=\"transform\"\n      [attr.x]=\"x\" \n      [attr.y]=\"y\">\n      {{formatedValue}}     \n    </svg:text>          \n\n  `,\n  styles: [require('./bar-label.component.scss')],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\n\n  export class BarLabelComponent implements OnChanges {\n  \n    @Input() value;\n    @Input() valueFormatting: any;\n    @Input() barX;\n    @Input() barY; \n    @Input() barWidth;\n    @Input() barHeight; \n    @Input() orientation;\n    \n    @Output() dimensionsChanged: EventEmitter<any> = new EventEmitter();    \n     \n    element: any;\n    x: number;\n    y: number;\n    horizontalPadding: number = 2;\n    verticalPadding: number = 5;\n    formatedValue: string;\n    transform: string;\n    textAnchor: string;    \n    \n    constructor(element: ElementRef) {\n      this.element = element.nativeElement;\n    }\n    \n    ngOnChanges(changes: SimpleChanges): void {      \n      this.update();\n    }\n\n    getSize(): any {\n      const h = this.element.getBoundingClientRect().height;\n      const w = this.element.getBoundingClientRect().width;\n      return { height: h, width: w, negative: this.value < 0 };            \n    }\n    \n    ngAfterViewInit() {                         \n      this.dimensionsChanged.emit(this.getSize());        \n    }\n    \n    update(): void {  \n      if (this.valueFormatting) {\n        this.formatedValue = this.valueFormatting(this.value);\n      } else {\n        this.formatedValue = formatLabel(this.value);  \n      }\n      \n      if (this.orientation === 'horizontal') {\n          this.x = this.barX + this.barWidth;    \n          // if the value is negative then it's on the left of the x0. \n          // we need to put the data label in front of the bar\n          if (this.value < 0) {\n            this.x = this.x - this.horizontalPadding;\n            this.textAnchor = 'end';\n          } else {\n            this.x = this.x + this.horizontalPadding;\n            this.textAnchor = 'start'; \n          }\n          this.y = this.barY + this.barHeight / 2;    \n\n      } else {\n        // orientation must be \"vertical\"      \n        this.x = this.barX + this.barWidth / 2;    \n        this.y = this.barY + this.barHeight;  \n         \n        if (this.value < 0) {\n          this.y = this.y + this.verticalPadding;          \n          this.textAnchor = 'end';\n        } else {\n          this.y = this.y - this.verticalPadding;   \n          this.textAnchor = 'start'; \n        }\n        this.transform = `rotate(-45, ${ this.x } , ${ this.y })`;\n      }\n      \n    }  \n  }\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-label.component.ts","import {\n  Component,\n  Input,\n  Output,\n  ViewEncapsulation,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\n\n@Component({\n  selector: 'ngx-charts-bar-vertical-2d',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelActivate)=\"onActivate($event, undefined, true)\"\n      (legendLabelDeactivate)=\"onDeactivate($event, undefined, true)\"\n      (legendLabelClick)=\"onClick($event)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"bar-chart chart\">\n        <svg:g\n          ngx-charts-grid-panel-series\n          [xScale]=\"groupScale\"\n          [yScale]=\"valueScale\"\n          [data]=\"results\"\n          [dims]=\"dims\"\n          orient=\"vertical\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"groupScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          [xAxisOffset]=\"dataLabelMaxHeight.negative\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"valueScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-series-vertical\n          *ngFor=\"let group of results; let index = index; trackBy: trackBy\"\n          [@animationState]=\"'active'\"\n          [attr.transform]=\"groupTransform(group)\"\n          [activeEntries]=\"activeEntries\"\n          [xScale]=\"innerScale\"\n          [yScale]=\"valueScale\"\n          [colors]=\"colors\"\n          [series]=\"group.series\"\n          [dims]=\"dims\"\n          [gradient]=\"gradient\"\n          [tooltipDisabled]=\"tooltipDisabled\"\n          [tooltipTemplate]=\"tooltipTemplate\"\n          [showDataLabel]=\"showDataLabel\"\n          [dataLabelFormatting]=\"dataLabelFormatting\"\n          [seriesName]=\"group.name\"\n          [roundEdges]=\"roundEdges\"\n          [animations]=\"animations\"\n          [noBarWhenZero]=\"noBarWhenZero\"\n          (select)=\"onClick($event, group)\"\n          (activate)=\"onActivate($event, group)\"\n          (deactivate)=\"onDeactivate($event, group)\"\n          (dataLabelHeightChanged)=\"onDataLabelMaxHeightChanged($event, index)\"\n        />\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1,\n          transform: '*'\n        }),\n        animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n      ])\n    ])\n  ]\n})\nexport class BarVertical2DComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() scaleType = 'ordinal';\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() groupPadding = 16;\n  @Input() barPadding = 8;\n  @Input() roundDomains: boolean = false;\n  @Input() roundEdges: boolean = true;\n  @Input() yScaleMax: number;\n  @Input() showDataLabel: boolean = false;\n  @Input() dataLabelFormatting: any;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  groupDomain: any[];\n  innerDomain: any[];\n  valuesDomain: any[];\n  groupScale: any;\n  innerScale: any;\n  valueScale: any;\n  transform: string;\n  colors: ColorHelper;\n  margin = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  legendOptions: any;\n  dataLabelMaxHeight: any = { negative: 0, positive: 0 };\n\n  update(): void {\n    super.update();\n\n    if (!this.showDataLabel) {\n      this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n    }\n    this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    if (this.showDataLabel) {\n      this.dims.height -= this.dataLabelMaxHeight.negative;\n    }\n\n    this.formatDates();\n\n    this.groupDomain = this.getGroupDomain();\n    this.innerDomain = this.getInnerDomain();\n    this.valuesDomain = this.getValueDomain();\n\n    this.groupScale = this.getGroupScale();\n    this.innerScale = this.getInnerScale();\n    this.valueScale = this.getValueScale();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n  }\n\n  onDataLabelMaxHeightChanged(event, groupIndex) {\n    if (event.size.negative) {\n      this.dataLabelMaxHeight.negative = Math.max(this.dataLabelMaxHeight.negative, event.size.height);\n    } else {\n      this.dataLabelMaxHeight.positive = Math.max(this.dataLabelMaxHeight.positive, event.size.height);\n    }\n    if (groupIndex === this.results.length - 1) {\n      setTimeout(() => this.update());\n    }\n  }\n\n  getGroupScale(): any {\n    const spacing = this.groupDomain.length / (this.dims.height / this.groupPadding + 1);\n\n    return scaleBand()\n      .rangeRound([0, this.dims.width])\n      .paddingInner(spacing)\n      .paddingOuter(spacing / 2)\n      .domain(this.groupDomain);\n  }\n\n  getInnerScale(): any {\n    const width = this.groupScale.bandwidth();\n    const spacing = this.innerDomain.length / (width / this.barPadding + 1);\n    return scaleBand()\n      .rangeRound([0, width])\n      .paddingInner(spacing)\n      .domain(this.innerDomain);\n  }\n\n  getValueScale(): any {\n    const scale = scaleLinear()\n      .range([this.dims.height, 0])\n      .domain(this.valuesDomain);\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  getGroupDomain() {\n    const domain = [];\n    for (const group of this.results) {\n      if (!domain.includes(group.label)) {\n        domain.push(group.label);\n      }\n    }\n\n    return domain;\n  }\n\n  getInnerDomain() {\n    const domain = [];\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.label)) {\n          domain.push(d.label);\n        }\n      }\n    }\n\n    return domain;\n  }\n\n  getValueDomain() {\n    const domain = [];\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.value)) {\n          domain.push(d.value);\n        }\n      }\n    }\n\n    const min = Math.min(0, ...domain);\n    const max = this.yScaleMax ? Math.max(this.yScaleMax, ...domain) : Math.max(0, ...domain);\n\n    return [min, max];\n  }\n\n  groupTransform(group) {\n    return `translate(${this.groupScale(group.label)}, 0)`;\n  }\n\n  onClick(data, group?) {\n    if (group) {\n      data.series = group.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  trackBy(index, item) {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.innerDomain;\n    } else {\n      domain = this.valuesDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.innerDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.valuesDomain;\n      opts.colors = this.colors.scale;\n    }\n\n    return opts;\n  }\n\n  updateYAxisWidth({ width }) {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }) {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    const items = this.results\n      .map(g => g.series)\n      .flat()\n      .filter(i => {\n        if (fromLegend) {\n          return i.label === item.name;\n        } else {\n          return i.name === item.name && i.series === item.series;\n        }\n      });\n\n    this.activeEntries = [...items];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    this.activeEntries = this.activeEntries.filter(i => {\n      if (fromLegend) {\n        return i.label !== item.name;\n      } else {\n        return !(i.name === item.name && i.series === item.series);\n      }\n    });\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-vertical-2d.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\n\n@Component({\n  selector: 'ngx-charts-bar-vertical-normalized',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelActivate)=\"onActivate($event, undefined, true)\"\n      (legendLabelDeactivate)=\"onDeactivate($event, undefined, true)\"\n      (legendLabelClick)=\"onClick($event)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"bar-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g\n          *ngFor=\"let group of results; trackBy: trackBy\"\n          [@animationState]=\"'active'\"\n          [attr.transform]=\"groupTransform(group)\"\n        >\n          <svg:g\n            ngx-charts-series-vertical\n            type=\"normalized\"\n            [xScale]=\"xScale\"\n            [yScale]=\"yScale\"\n            [activeEntries]=\"activeEntries\"\n            [colors]=\"colors\"\n            [series]=\"group.series\"\n            [dims]=\"dims\"\n            [gradient]=\"gradient\"\n            [tooltipDisabled]=\"tooltipDisabled\"\n            [tooltipTemplate]=\"tooltipTemplate\"\n            [seriesName]=\"group.name\"\n            [animations]=\"animations\"\n            [noBarWhenZero]=\"noBarWhenZero\"\n            (select)=\"onClick($event, group)\"\n            (activate)=\"onActivate($event, group)\"\n            (deactivate)=\"onDeactivate($event, group)\"\n          />\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1,\n          transform: '*'\n        }),\n        animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n      ])\n    ])\n  ]\n})\nexport class BarVerticalNormalizedComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() barPadding = 8;\n  @Input() roundDomains: boolean = false;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  groupDomain: any[];\n  innerDomain: any[];\n  valueDomain: any[];\n  xScale: any;\n  yScale: any;\n  transform: string;\n  colors: ColorHelper;\n  margin = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  legendOptions: any;\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    this.formatDates();\n\n    this.groupDomain = this.getGroupDomain();\n    this.innerDomain = this.getInnerDomain();\n    this.valueDomain = this.getValueDomain();\n\n    this.xScale = this.getXScale();\n    this.yScale = this.getYScale();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n  }\n\n  getGroupDomain() {\n    const domain = [];\n    for (const group of this.results) {\n      if (!domain.includes(group.label)) {\n        domain.push(group.label);\n      }\n    }\n\n    return domain;\n  }\n\n  getInnerDomain() {\n    const domain = [];\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.label)) {\n          domain.push(d.label);\n        }\n      }\n    }\n\n    return domain;\n  }\n\n  getValueDomain() {\n    return [0, 100];\n  }\n\n  getXScale(): any {\n    const spacing = this.groupDomain.length / (this.dims.width / this.barPadding + 1);\n\n    return scaleBand()\n      .rangeRound([0, this.dims.width])\n      .paddingInner(spacing)\n      .domain(this.groupDomain);\n  }\n\n  getYScale(): any {\n    const scale = scaleLinear()\n      .range([this.dims.height, 0])\n      .domain(this.valueDomain);\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  groupTransform(group) {\n    return `translate(${this.xScale(group.name)}, 0)`;\n  }\n\n  onClick(data, group?) {\n    if (group) {\n      data.series = group.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  trackBy(index, item) {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.innerDomain;\n    } else {\n      domain = this.valueDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.innerDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.valueDomain;\n      opts.colors = this.colors.scale;\n    }\n\n    return opts;\n  }\n\n  updateYAxisWidth({ width }) {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }) {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    const items = this.results\n      .map(g => g.series)\n      .flat()\n      .filter(i => {\n        if (fromLegend) {\n          return i.label === item.name;\n        } else {\n          return i.name === item.name && i.series === item.series;\n        }\n      });\n\n    this.activeEntries = [...items];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    this.activeEntries = this.activeEntries.filter(i => {\n      if (fromLegend) {\n        return i.label !== item.name;\n      } else {\n        return !(i.name === item.name && i.series === item.series);\n      }\n    });\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-vertical-normalized.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\n\n@Component({\n  selector: 'ngx-charts-bar-vertical-stacked',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelActivate)=\"onActivate($event, undefined, true)\"\n      (legendLabelDeactivate)=\"onDeactivate($event, undefined, true)\"\n      (legendLabelClick)=\"onClick($event)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"bar-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          [xAxisOffset]=\"dataLabelMaxHeight.negative\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g\n          *ngFor=\"let group of results; let index = index; trackBy: trackBy\"\n          [@animationState]=\"'active'\"\n          [attr.transform]=\"groupTransform(group)\"\n        >\n          <svg:g\n            ngx-charts-series-vertical\n            type=\"stacked\"\n            [xScale]=\"xScale\"\n            [yScale]=\"yScale\"\n            [activeEntries]=\"activeEntries\"\n            [colors]=\"colors\"\n            [series]=\"group.series\"\n            [dims]=\"dims\"\n            [gradient]=\"gradient\"\n            [tooltipDisabled]=\"tooltipDisabled\"\n            [tooltipTemplate]=\"tooltipTemplate\"\n            [showDataLabel]=\"showDataLabel\"\n            [dataLabelFormatting]=\"dataLabelFormatting\"\n            [seriesName]=\"group.name\"\n            [animations]=\"animations\"\n            [noBarWhenZero]=\"noBarWhenZero\"\n            (select)=\"onClick($event, group)\"\n            (activate)=\"onActivate($event, group)\"\n            (deactivate)=\"onDeactivate($event, group)\"\n            (dataLabelHeightChanged)=\"onDataLabelMaxHeightChanged($event, index)\"\n          />\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1,\n          transform: '*'\n        }),\n        animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n      ])\n    ])\n  ]\n})\nexport class BarVerticalStackedComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() barPadding = 8;\n  @Input() roundDomains: boolean = false;\n  @Input() yScaleMax: number;\n  @Input() showDataLabel: boolean = false;\n  @Input() dataLabelFormatting: any;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  groupDomain: any[];\n  innerDomain: any[];\n  valueDomain: any[];\n  xScale: any;\n  yScale: any;\n  transform: string;\n  tickFormatting: (label: string) => string;\n  colors: ColorHelper;\n  margin = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  legendOptions: any;\n  dataLabelMaxHeight: any = { negative: 0, positive: 0 };\n\n  update(): void {\n    super.update();\n\n    if (!this.showDataLabel) {\n      this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n    }\n    this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    if (this.showDataLabel) {\n      this.dims.height -= this.dataLabelMaxHeight.negative;\n    }\n\n    this.formatDates();\n\n    this.groupDomain = this.getGroupDomain();\n    this.innerDomain = this.getInnerDomain();\n    this.valueDomain = this.getValueDomain();\n\n    this.xScale = this.getXScale();\n    this.yScale = this.getYScale();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n  }\n\n  getGroupDomain() {\n    const domain = [];\n    for (const group of this.results) {\n      if (!domain.includes(group.label)) {\n        domain.push(group.label);\n      }\n    }\n    return domain;\n  }\n\n  getInnerDomain() {\n    const domain = [];\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.label)) {\n          domain.push(d.label);\n        }\n      }\n    }\n    return domain;\n  }\n\n  getValueDomain() {\n    const domain = [];\n    let smallest = 0;\n    let biggest = 0;\n    for (const group of this.results) {\n      let smallestSum = 0;\n      let biggestSum = 0;\n      for (const d of group.series) {\n        if (d.value < 0) {\n          smallestSum += d.value;\n        } else {\n          biggestSum += d.value;\n        }\n        smallest = d.value < smallest ? d.value : smallest;\n        biggest = d.value > biggest ? d.value : biggest;\n      }\n      domain.push(smallestSum);\n      domain.push(biggestSum);\n    }\n    domain.push(smallest);\n    domain.push(biggest);\n\n    const min = Math.min(0, ...domain);\n    const max = this.yScaleMax ? Math.max(this.yScaleMax, ...domain) : Math.max(...domain);\n    return [min, max];\n  }\n\n  getXScale(): any {\n    const spacing = this.groupDomain.length / (this.dims.width / this.barPadding + 1);\n    return scaleBand()\n      .rangeRound([0, this.dims.width])\n      .paddingInner(spacing)\n      .domain(this.groupDomain);\n  }\n\n  getYScale(): any {\n    const scale = scaleLinear()\n      .range([this.dims.height, 0])\n      .domain(this.valueDomain);\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  onDataLabelMaxHeightChanged(event, groupIndex) {\n    if (event.size.negative) {\n      this.dataLabelMaxHeight.negative = Math.max(this.dataLabelMaxHeight.negative, event.size.height);\n    } else {\n      this.dataLabelMaxHeight.positive = Math.max(this.dataLabelMaxHeight.positive, event.size.height);\n    }\n    if (groupIndex === this.results.length - 1) {\n      setTimeout(() => this.update());\n    }\n  }\n\n  groupTransform(group) {\n    return `translate(${this.xScale(group.name)}, 0)`;\n  }\n\n  onClick(data, group?) {\n    if (group) {\n      data.series = group.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  trackBy(index, item) {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.innerDomain;\n    } else {\n      domain = this.valueDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.innerDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.valueDomain;\n      opts.colors = this.colors.scale;\n    }\n\n    return opts;\n  }\n\n  updateYAxisWidth({ width }) {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }) {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    const items = this.results\n      .map(g => g.series)\n      .flat()\n      .filter(i => {\n        if (fromLegend) {\n          return i.label === item.name;\n        } else {\n          return i.name === item.name && i.series === item.series;\n        }\n      });\n\n    this.activeEntries = [...items];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    this.activeEntries = this.activeEntries.filter(i => {\n      if (fromLegend) {\n        return i.label !== item.name;\n      } else {\n        return !(i.name === item.name && i.series === item.series);\n      }\n    });\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-vertical-stacked.component.ts","import {\n  Component,\n  Input,\n  ViewEncapsulation,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { scaleBand, scaleLinear } from 'd3-scale';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { DataItem } from '../models/chart-data.model';\n\n@Component({\n  selector: 'ngx-charts-bar-vertical',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event, true)\"\n      (legendLabelDeactivate)=\"onDeactivate($event, true)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"bar-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          [xAxisOffset]=\"dataLabelMaxHeight.negative\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-series-vertical\n          [xScale]=\"xScale\"\n          [yScale]=\"yScale\"\n          [colors]=\"colors\"\n          [series]=\"results\"\n          [dims]=\"dims\"\n          [gradient]=\"gradient\"\n          [tooltipDisabled]=\"tooltipDisabled\"\n          [tooltipTemplate]=\"tooltipTemplate\"\n          [showDataLabel]=\"showDataLabel\"\n          [dataLabelFormatting]=\"dataLabelFormatting\"\n          [activeEntries]=\"activeEntries\"\n          [roundEdges]=\"roundEdges\"\n          [animations]=\"animations\"\n          [noBarWhenZero]=\"noBarWhenZero\"\n          (activate)=\"onActivate($event)\"\n          (deactivate)=\"onDeactivate($event)\"\n          (select)=\"onClick($event)\"\n          (dataLabelHeightChanged)=\"onDataLabelMaxHeightChanged($event)\"\n        ></svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None\n})\nexport class BarVerticalComponent extends BaseChartComponent {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() barPadding = 8;\n  @Input() roundDomains: boolean = false;\n  @Input() roundEdges: boolean = true;\n  @Input() yScaleMax: number;\n  @Input() yScaleMin: number;\n  @Input() showDataLabel: boolean = false;\n  @Input() dataLabelFormatting: any;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  xScale: any;\n  yScale: any;\n  xDomain: any;\n  yDomain: any;\n  transform: string;\n  colors: ColorHelper;\n  margin: any[] = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  legendOptions: any;\n  dataLabelMaxHeight: any = { negative: 0, positive: 0 };\n\n  update(): void {\n    super.update();\n\n    if (!this.showDataLabel) {\n      this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n    }\n    this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    this.formatDates();\n\n    if (this.showDataLabel) {\n      this.dims.height -= this.dataLabelMaxHeight.negative;\n    }\n    this.xScale = this.getXScale();\n    this.yScale = this.getYScale();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n  }\n\n  getXScale(): any {\n    this.xDomain = this.getXDomain();\n    const spacing = this.xDomain.length / (this.dims.width / this.barPadding + 1);\n    return scaleBand()\n      .range([0, this.dims.width])\n      .paddingInner(spacing)\n      .domain(this.xDomain);\n  }\n\n  getYScale(): any {\n    this.yDomain = this.getYDomain();\n    const scale = scaleLinear()\n      .range([this.dims.height, 0])\n      .domain(this.yDomain);\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  getXDomain(): any[] {\n    return this.results.map(d => d.label);\n  }\n\n  getYDomain(): [number, number] {\n    const values = this.results.map(d => d.value);\n\n    let min = this.yScaleMin ? Math.min(this.yScaleMin, ...values) : Math.min(0, ...values);\n    if (this.yAxisTicks && !this.yAxisTicks.some(isNaN)) {\n      min = Math.min(min, ...this.yAxisTicks);\n    }\n\n    let max = this.yScaleMax ? Math.max(this.yScaleMax, ...values) : Math.max(0, ...values);\n    if (this.yAxisTicks && !this.yAxisTicks.some(isNaN)) {\n      max = Math.max(max, ...this.yAxisTicks);\n    }\n    return [min, max];\n  }\n\n  onClick(data: DataItem) {\n    this.select.emit(data);\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.xDomain;\n    } else {\n      domain = this.yDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.xDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.yDomain;\n      opts.colors = this.colors.scale;\n    }\n    return opts;\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onDataLabelMaxHeightChanged(event) {\n    if (event.size.negative) {\n      this.dataLabelMaxHeight.negative = Math.max(this.dataLabelMaxHeight.negative, event.size.height);\n    } else {\n      this.dataLabelMaxHeight.positive = Math.max(this.dataLabelMaxHeight.positive, event.size.height);\n    }\n    if (event.index === this.results.length - 1) {\n      setTimeout(() => this.update());\n    }\n  }\n\n  onActivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar-vertical.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  HostListener,\n  ElementRef,\n  SimpleChanges,\n  OnChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { select } from 'd3-selection';\nimport { roundedRect } from '../common/shape.helper';\nimport { id } from '../utils/id';\n\n@Component({\n  selector: 'g[ngx-charts-bar]',\n  template: `\n    <svg:defs *ngIf=\"hasGradient\">\n      <svg:g ngx-charts-svg-linear-gradient [orientation]=\"orientation\" [name]=\"gradientId\" [stops]=\"gradientStops\" />\n    </svg:defs>\n    <svg:path\n      class=\"bar\"\n      stroke=\"none\"\n      role=\"img\"\n      tabIndex=\"-1\"\n      [class.active]=\"isActive\"\n      [class.hidden]=\"hideBar\"\n      [attr.d]=\"path\"\n      [attr.aria-label]=\"ariaLabel\"\n      [attr.fill]=\"hasGradient ? gradientFill : fill\"\n      (click)=\"select.emit(data)\"\n    />\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarComponent implements OnChanges {\n  @Input() fill;\n  @Input() data: any;\n  @Input() width: number;\n  @Input() height: number;\n  @Input() x: number;\n  @Input() y: number;\n  @Input() orientation;\n  @Input() roundEdges: boolean = true;\n  @Input() gradient: boolean = false;\n  @Input() offset = 0;\n  @Input() isActive: boolean = false;\n  @Input() stops: any[];\n  @Input() animations: boolean = true;\n  @Input() ariaLabel: string;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n\n  element: any;\n  path: any;\n  gradientId: any;\n  gradientFill: any;\n  startOpacity: any;\n  initialized: boolean = false;\n  gradientStops: any[];\n  hasGradient: boolean = false;\n  hideBar: boolean = false;\n\n  constructor(element: ElementRef) {\n    this.element = element.nativeElement;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!this.initialized) {\n      this.loadAnimation();\n      this.initialized = true;\n    } else {\n      this.update();\n    }\n  }\n\n  update(): void {\n    this.gradientId = 'grad' + id().toString();\n    this.gradientFill = `url(#${this.gradientId})`;\n\n    if (this.gradient || this.stops) {\n      this.gradientStops = this.getGradient();\n      this.hasGradient = true;\n    } else {\n      this.hasGradient = false;\n    }\n\n    this.updatePathEl();\n    this.checkToHideBar();\n  }\n\n  loadAnimation(): void {\n    this.path = this.getStartingPath();\n    setTimeout(this.update.bind(this), 100);\n  }\n\n  updatePathEl(): void {\n    const node = select(this.element).select('.bar');\n    const path = this.getPath();\n    if (this.animations) {\n      node\n        .transition()\n        .duration(500)\n        .attr('d', path);\n    } else {\n      node.attr('d', path);\n    }\n  }\n\n  getGradient() {\n    if (this.stops) {\n      return this.stops;\n    }\n\n    return [\n      {\n        offset: 0,\n        color: this.fill,\n        opacity: this.getStartOpacity()\n      },\n      {\n        offset: 100,\n        color: this.fill,\n        opacity: 1\n      }\n    ];\n  }\n\n  getStartingPath() {\n    if (!this.animations) {\n      return this.getPath();\n    }\n\n    let radius = this.getRadius();\n    let path;\n\n    if (this.roundEdges) {\n      if (this.orientation === 'vertical') {\n        radius = Math.min(this.height, radius);\n        path = roundedRect(this.x, this.y + this.height, this.width, 1, 0, this.edges);\n      } else if (this.orientation === 'horizontal') {\n        radius = Math.min(this.width, radius);\n        path = roundedRect(this.x, this.y, 1, this.height, 0, this.edges);\n      }\n    } else {\n      if (this.orientation === 'vertical') {\n        path = roundedRect(this.x, this.y + this.height, this.width, 1, 0, this.edges);\n      } else if (this.orientation === 'horizontal') {\n        path = roundedRect(this.x, this.y, 1, this.height, 0, this.edges);\n      }\n    }\n\n    return path;\n  }\n\n  getPath() {\n    let radius = this.getRadius();\n    let path;\n\n    if (this.roundEdges) {\n      if (this.orientation === 'vertical') {\n        radius = Math.min(this.height, radius);\n        path = roundedRect(this.x, this.y, this.width, this.height, radius, this.edges);\n      } else if (this.orientation === 'horizontal') {\n        radius = Math.min(this.width, radius);\n        path = roundedRect(this.x, this.y, this.width, this.height, radius, this.edges);\n      }\n    } else {\n      path = roundedRect(this.x, this.y, this.width, this.height, radius, this.edges);\n    }\n\n    return path;\n  }\n\n  getRadius(): number {\n    let radius = 0;\n\n    if (this.roundEdges && this.height > 5 && this.width > 5) {\n      radius = Math.floor(Math.min(5, this.height / 2, this.width / 2));\n    }\n\n    return radius;\n  }\n\n  getStartOpacity(): number {\n    if (this.roundEdges) {\n      return 0.2;\n    } else {\n      return 0.5;\n    }\n  }\n\n  get edges() {\n    let edges = [false, false, false, false];\n    if (this.roundEdges) {\n      if (this.orientation === 'vertical') {\n        if (this.data.value > 0) {\n          edges = [true, true, false, false];\n        } else {\n          edges = [false, false, true, true];\n        }\n      } else if (this.orientation === 'horizontal') {\n        if (this.data.value > 0) {\n          edges = [false, true, false, true];\n        } else {\n          edges = [true, false, true, false];\n        }\n      }\n    }\n    return edges;\n  }\n\n  @HostListener('mouseenter')\n  onMouseEnter(): void {\n    this.activate.emit(this.data);\n  }\n\n  @HostListener('mouseleave')\n  onMouseLeave(): void {\n    this.deactivate.emit(this.data);\n  }\n\n  private checkToHideBar() {\n    this.hideBar =\n      this.noBarWhenZero &&\n      ((this.orientation === 'vertical' && this.height === 0) ||\n        (this.orientation === 'horizontal' && this.width === 0));\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/bar.component.ts","export * from './bar-chart.module';\nexport * from './bar.component';\nexport * from './bar-horizontal.component';\nexport * from './bar-horizontal-2d.component';\nexport * from './bar-horizontal-normalized.component';\nexport * from './bar-horizontal-stacked.component';\nexport * from './series-horizontal.component';\n\nexport * from './bar-label.component';\n\nexport * from './bar-vertical.component';\nexport * from './bar-vertical-2d.component';\nexport * from './bar-vertical-normalized.component';\nexport * from './bar-vertical-stacked.component';\nexport * from './series-vertical.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/index.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectionStrategy,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel } from '../common/label.helper';\nimport { D0Types } from './series-vertical.component';\nimport { DataItem } from '../models/chart-data.model';\n\n@Component({\n  selector: 'g[ngx-charts-series-horizontal]',\n  template: `\n    <svg:g\n      ngx-charts-bar\n      *ngFor=\"let bar of bars; trackBy: trackBy\"\n      [@animationState]=\"'active'\"\n      [width]=\"bar.width\"\n      [height]=\"bar.height\"\n      [x]=\"bar.x\"\n      [y]=\"bar.y\"\n      [fill]=\"bar.color\"\n      [stops]=\"bar.gradientStops\"\n      [data]=\"bar.data\"\n      [orientation]=\"'horizontal'\"\n      [roundEdges]=\"bar.roundEdges\"\n      (select)=\"click($event)\"\n      [gradient]=\"gradient\"\n      [isActive]=\"isActive(bar.data)\"\n      [ariaLabel]=\"bar.ariaLabel\"\n      [animations]=\"animations\"\n      (activate)=\"activate.emit($event)\"\n      (deactivate)=\"deactivate.emit($event)\"\n      ngx-tooltip\n      [tooltipDisabled]=\"tooltipDisabled\"\n      [tooltipPlacement]=\"tooltipPlacement\"\n      [tooltipType]=\"tooltipType\"\n      [tooltipTitle]=\"tooltipTemplate ? undefined : bar.tooltipText\"\n      [tooltipTemplate]=\"tooltipTemplate\"\n      [tooltipContext]=\"bar.data\"\n      [noBarWhenZero]=\"noBarWhenZero\"\n    ></svg:g>\n    <svg:g *ngIf=\"showDataLabel\">\n      <svg:g\n        ngx-charts-bar-label\n        *ngFor=\"let b of barsForDataLabels; let i = index; trackBy: trackDataLabelBy\"\n        [barX]=\"b.x\"\n        [barY]=\"b.y\"\n        [barWidth]=\"b.width\"\n        [barHeight]=\"b.height\"\n        [value]=\"b.total\"\n        [valueFormatting]=\"dataLabelFormatting\"\n        [orientation]=\"'horizontal'\"\n        (dimensionsChanged)=\"dataLabelWidthChanged.emit({ size: $event, index: i })\"\n      />\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1\n        }),\n        animate(500, style({ opacity: 0 }))\n      ])\n    ])\n  ]\n})\nexport class SeriesHorizontal implements OnChanges {\n  bars: any;\n  x: any;\n  y: any;\n  barsForDataLabels: Array<{ x: number; y: number; width: number; height: number; total: number; series: string }> = [];\n\n  @Input() dims;\n  @Input() type = 'standard';\n  @Input() series;\n  @Input() xScale;\n  @Input() yScale;\n  @Input() colors;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() gradient: boolean;\n  @Input() activeEntries: any[];\n  @Input() seriesName: string;\n  @Input() tooltipTemplate: TemplateRef<any>;\n  @Input() roundEdges: boolean;\n  @Input() animations: boolean = true;\n  @Input() showDataLabel: boolean = false;\n  @Input() dataLabelFormatting: any;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n  @Output() dataLabelWidthChanged = new EventEmitter();\n\n  tooltipPlacement: string;\n  tooltipType: string;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.updateTooltipSettings();\n    const d0 = {\n      [D0Types.positive]: 0,\n      [D0Types.negative]: 0\n    };\n    let d0Type: D0Types;\n    d0Type = D0Types.positive;\n    let total;\n    if (this.type === 'normalized') {\n      total = this.series.map(d => d.value).reduce((sum, d) => sum + d, 0);\n    }\n    const xScaleMin = Math.max(this.xScale.domain()[0], 0);\n\n    this.bars = this.series.map((d, index) => {\n      let value = d.value;\n      const label = this.getLabel(d);\n      const formattedLabel = formatLabel(label);\n      const roundEdges = this.roundEdges;\n      d0Type = value > 0 ? D0Types.positive : D0Types.negative;\n\n      const bar: any = {\n        value,\n        label,\n        roundEdges,\n        data: d,\n        formattedLabel\n      };\n\n      bar.height = this.yScale.bandwidth();\n\n      if (this.type === 'standard') {\n        bar.width = Math.abs(this.xScale(value) - this.xScale(xScaleMin));\n        if (value < 0) {\n          bar.x = this.xScale(value);\n        } else {\n          bar.x = this.xScale(xScaleMin);\n        }\n        bar.y = this.yScale(label);\n      } else if (this.type === 'stacked') {\n        const offset0 = d0[d0Type];\n        const offset1 = offset0 + value;\n        d0[d0Type] += value;\n\n        bar.width = this.xScale(offset1) - this.xScale(offset0);\n        bar.x = this.xScale(offset0);\n        bar.y = 0;\n        bar.offset0 = offset0;\n        bar.offset1 = offset1;\n      } else if (this.type === 'normalized') {\n        let offset0 = d0[d0Type];\n        let offset1 = offset0 + value;\n        d0[d0Type] += value;\n\n        if (total > 0) {\n          offset0 = (offset0 * 100) / total;\n          offset1 = (offset1 * 100) / total;\n        } else {\n          offset0 = 0;\n          offset1 = 0;\n        }\n\n        bar.width = this.xScale(offset1) - this.xScale(offset0);\n        bar.x = this.xScale(offset0);\n        bar.y = 0;\n        bar.offset0 = offset0;\n        bar.offset1 = offset1;\n        value = (offset1 - offset0).toFixed(2) + '%';\n      }\n\n      if (this.colors.scaleType === 'ordinal') {\n        bar.color = this.colors.getColor(label);\n      } else {\n        if (this.type === 'standard') {\n          bar.color = this.colors.getColor(value);\n          bar.gradientStops = this.colors.getLinearGradientStops(value);\n        } else {\n          bar.color = this.colors.getColor(bar.offset1);\n          bar.gradientStops = this.colors.getLinearGradientStops(bar.offset1, bar.offset0);\n        }\n      }\n\n      let tooltipLabel = formattedLabel;\n      bar.ariaLabel = formattedLabel + ' ' + value.toLocaleString();\n      if (this.seriesName) {\n        tooltipLabel = `${this.seriesName} • ${formattedLabel}`;\n        bar.data.series = this.seriesName;\n        bar.ariaLabel = this.seriesName + ' ' + bar.ariaLabel;\n      }\n\n      bar.tooltipText = this.tooltipDisabled\n        ? undefined\n        : `\n        <span class=\"tooltip-label\">${tooltipLabel}</span>\n        <span class=\"tooltip-val\">${value.toLocaleString()}</span>\n      `;\n\n      return bar;\n    });\n\n    this.updateDataLabels();\n  }\n\n  updateDataLabels() {\n    if (this.type === 'stacked') {\n      this.barsForDataLabels = [];\n      const section: any = {};\n      section.series = this.seriesName;\n      const totalPositive = this.series.map(d => d.value).reduce((sum, d) => (d > 0 ? sum + d : sum), 0);\n      const totalNegative = this.series.map(d => d.value).reduce((sum, d) => (d < 0 ? sum + d : sum), 0);\n      section.total = totalPositive + totalNegative;\n      section.x = 0;\n      section.y = 0;\n      // if total is positive then we show it on the right, otherwise on the left\n      if (section.total > 0) {\n        section.width = this.xScale(totalPositive);\n      } else {\n        section.width = this.xScale(totalNegative);\n      }\n      section.height = this.yScale.bandwidth();\n      this.barsForDataLabels.push(section);\n    } else {\n      this.barsForDataLabels = this.series.map(d => {\n        const section: any = {};\n        section.series = this.seriesName ? this.seriesName : d.label;\n        section.total = d.value;\n        section.x = this.xScale(0);\n        section.y = this.yScale(d.label);\n        section.width = this.xScale(section.total) - this.xScale(0);\n        section.height = this.yScale.bandwidth();\n        return section;\n      });\n    }\n  }\n\n  updateTooltipSettings() {\n    this.tooltipPlacement = this.tooltipDisabled ? undefined : 'top';\n    this.tooltipType = this.tooltipDisabled ? undefined : 'tooltip';\n  }\n\n  isActive(entry): boolean {\n    if (!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name && entry.series === d.series;\n    });\n    return item !== undefined;\n  }\n\n  getLabel(dataItem): string {\n    if (dataItem.label) {\n      return dataItem.label;\n    }\n    return dataItem.name;\n  }\n\n  trackBy(index, bar) {\n    return bar.label;\n  }\n\n  trackDataLabelBy(index, barLabel) {\n    return index + '#' + barLabel.series + '#' + barLabel.total;\n  }\n\n  click(data: DataItem): void {\n    this.select.emit(data);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/series-horizontal.component.ts","import { Component, Input, Output, EventEmitter, OnChanges, ChangeDetectionStrategy, TemplateRef } from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel } from '../common/label.helper';\nimport { DataItem } from '../models/chart-data.model';\n\nexport enum D0Types {\n  positive = 'positive',\n  negative = 'negative'\n}\n\n@Component({\n  selector: 'g[ngx-charts-series-vertical]',\n  template: `\n    <svg:g\n      ngx-charts-bar\n      *ngFor=\"let bar of bars; trackBy: trackBy\"\n      [@animationState]=\"'active'\"\n      [@.disabled]=\"!animations\"\n      [width]=\"bar.width\"\n      [height]=\"bar.height\"\n      [x]=\"bar.x\"\n      [y]=\"bar.y\"\n      [fill]=\"bar.color\"\n      [stops]=\"bar.gradientStops\"\n      [data]=\"bar.data\"\n      [orientation]=\"'vertical'\"\n      [roundEdges]=\"bar.roundEdges\"\n      [gradient]=\"gradient\"\n      [ariaLabel]=\"bar.ariaLabel\"\n      [isActive]=\"isActive(bar.data)\"\n      (select)=\"onClick($event)\"\n      (activate)=\"activate.emit($event)\"\n      (deactivate)=\"deactivate.emit($event)\"\n      ngx-tooltip\n      [tooltipDisabled]=\"tooltipDisabled\"\n      [tooltipPlacement]=\"tooltipPlacement\"\n      [tooltipType]=\"tooltipType\"\n      [tooltipTitle]=\"tooltipTemplate ? undefined : bar.tooltipText\"\n      [tooltipTemplate]=\"tooltipTemplate\"\n      [tooltipContext]=\"bar.data\"\n      [noBarWhenZero]=\"noBarWhenZero\"\n      [animations]=\"animations\"\n    ></svg:g>\n    <svg:g *ngIf=\"showDataLabel\">\n      <svg:g\n        ngx-charts-bar-label\n        *ngFor=\"let b of barsForDataLabels; let i = index; trackBy: trackDataLabelBy\"\n        [barX]=\"b.x\"\n        [barY]=\"b.y\"\n        [barWidth]=\"b.width\"\n        [barHeight]=\"b.height\"\n        [value]=\"b.total\"\n        [valueFormatting]=\"dataLabelFormatting\"\n        [orientation]=\"'vertical'\"\n        (dimensionsChanged)=\"dataLabelHeightChanged.emit({ size: $event, index: i })\"\n      />\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1\n        }),\n        animate(500, style({ opacity: 0 }))\n      ])\n    ])\n  ]\n})\nexport class SeriesVerticalComponent implements OnChanges {\n  @Input() dims;\n  @Input() type = 'standard';\n  @Input() series;\n  @Input() xScale;\n  @Input() yScale;\n  @Input() colors;\n  @Input() gradient: boolean;\n  @Input() activeEntries: any[];\n  @Input() seriesName: string;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipTemplate: TemplateRef<any>;\n  @Input() roundEdges: boolean;\n  @Input() animations: boolean = true;\n  @Input() showDataLabel: boolean = false;\n  @Input() dataLabelFormatting: any;\n  @Input() noBarWhenZero: boolean = true;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n  @Output() dataLabelHeightChanged = new EventEmitter();\n\n  tooltipPlacement: string;\n  tooltipType: string;\n\n  bars: any;\n  x: any;\n  y: any;\n  barsForDataLabels: Array<{ x: number; y: number; width: number; height: number; total: number; series: string }> = [];\n\n  ngOnChanges(changes): void {\n    this.update();\n  }\n\n  update(): void {\n    this.updateTooltipSettings();\n    let width;\n    if (this.series.length) {\n      width = this.xScale.bandwidth();\n    }\n    width = Math.round(width);\n    const yScaleMin = Math.max(this.yScale.domain()[0], 0);\n\n    const d0 = {\n      [D0Types.positive]: 0,\n      [D0Types.negative]: 0\n    };\n    let d0Type = D0Types.positive;\n\n    let total;\n    if (this.type === 'normalized') {\n      total = this.series.map(d => d.value).reduce((sum, d) => sum + d, 0);\n    }\n\n    this.bars = this.series.map((d, index) => {\n      let value = d.value;\n      const label = this.getLabel(d);\n      const formattedLabel = formatLabel(label);\n      const roundEdges = this.roundEdges;\n      d0Type = value > 0 ? D0Types.positive : D0Types.negative;\n\n      const bar: any = {\n        value,\n        label,\n        roundEdges,\n        data: d,\n        width,\n        formattedLabel,\n        height: 0,\n        x: 0,\n        y: 0\n      };\n\n      if (this.type === 'standard') {\n        bar.height = Math.abs(this.yScale(value) - this.yScale(yScaleMin));\n        bar.x = this.xScale(label);\n\n        if (value < 0) {\n          bar.y = this.yScale(0);\n        } else {\n          bar.y = this.yScale(value);\n        }\n      } else if (this.type === 'stacked') {\n        const offset0 = d0[d0Type];\n        const offset1 = offset0 + value;\n        d0[d0Type] += value;\n\n        bar.height = this.yScale(offset0) - this.yScale(offset1);\n        bar.x = 0;\n        bar.y = this.yScale(offset1);\n        bar.offset0 = offset0;\n        bar.offset1 = offset1;\n      } else if (this.type === 'normalized') {\n        let offset0 = d0[d0Type];\n        let offset1 = offset0 + value;\n        d0[d0Type] += value;\n\n        if (total > 0) {\n          offset0 = (offset0 * 100) / total;\n          offset1 = (offset1 * 100) / total;\n        } else {\n          offset0 = 0;\n          offset1 = 0;\n        }\n\n        bar.height = this.yScale(offset0) - this.yScale(offset1);\n        bar.x = 0;\n        bar.y = this.yScale(offset1);\n        bar.offset0 = offset0;\n        bar.offset1 = offset1;\n        value = (offset1 - offset0).toFixed(2) + '%';\n      }\n\n      if (this.colors.scaleType === 'ordinal') {\n        bar.color = this.colors.getColor(label);\n      } else {\n        if (this.type === 'standard') {\n          bar.color = this.colors.getColor(value);\n          bar.gradientStops = this.colors.getLinearGradientStops(value);\n        } else {\n          bar.color = this.colors.getColor(bar.offset1);\n          bar.gradientStops = this.colors.getLinearGradientStops(bar.offset1, bar.offset0);\n        }\n      }\n\n      let tooltipLabel = formattedLabel;\n      bar.ariaLabel = formattedLabel + ' ' + value.toLocaleString();\n      if (this.seriesName) {\n        tooltipLabel = `${this.seriesName} • ${formattedLabel}`;\n        bar.data.series = this.seriesName;\n        bar.ariaLabel = this.seriesName + ' ' + bar.ariaLabel;\n      }\n\n      bar.tooltipText = this.tooltipDisabled\n        ? undefined\n        : `\n        <span class=\"tooltip-label\">${tooltipLabel}</span>\n        <span class=\"tooltip-val\">${value.toLocaleString()}</span>\n      `;\n\n      return bar;\n    });\n\n    this.updateDataLabels();\n  }\n\n  updateDataLabels() {\n    if (this.type === 'stacked') {\n      this.barsForDataLabels = [];\n      const section: any = {};\n      section.series = this.seriesName;\n      const totalPositive = this.series.map(d => d.value).reduce((sum, d) => (d > 0 ? sum + d : sum), 0);\n      const totalNegative = this.series.map(d => d.value).reduce((sum, d) => (d < 0 ? sum + d : sum), 0);\n      section.total = totalPositive + totalNegative;\n      section.x = 0;\n      section.y = 0;\n      if (section.total > 0) {\n        section.height = this.yScale(totalPositive);\n      } else {\n        section.height = this.yScale(totalNegative);\n      }\n      section.width = this.xScale.bandwidth();\n      this.barsForDataLabels.push(section);\n    } else {\n      this.barsForDataLabels = this.series.map(d => {\n        const section: any = {};\n        section.series = this.seriesName ? this.seriesName : d.label;\n        section.total = d.value;\n        section.x = this.xScale(d.label);\n        section.y = this.yScale(0);\n        section.height = this.yScale(section.total) - this.yScale(0);\n        section.width = this.xScale.bandwidth();\n        return section;\n      });\n    }\n  }\n\n  updateTooltipSettings() {\n    this.tooltipPlacement = this.tooltipDisabled ? undefined : 'top';\n    this.tooltipType = this.tooltipDisabled ? undefined : 'tooltip';\n  }\n\n  isActive(entry): boolean {\n    if (!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name && entry.series === d.series;\n    });\n    return item !== undefined;\n  }\n\n  onClick(data: DataItem): void {\n    this.select.emit(data);\n  }\n\n  getLabel(dataItem): string {\n    if (dataItem.label) {\n      return dataItem.label;\n    }\n    return dataItem.name;\n  }\n\n  trackBy(index, bar): string {\n    return bar.label;\n  }\n\n  trackDataLabelBy(index, barLabel) {\n    return index + '#' + barLabel.series + '#' + barLabel.total;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bar-chart/series-vertical.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  HostListener,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleLinear } from 'd3-scale';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { getScaleType } from '../common/domain.helper';\nimport { getDomain, getScale } from './bubble-chart.utils';\nimport { id } from '../utils/id';\n\n@Component({\n  selector: 'ngx-charts-bubble-chart',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [activeEntries]=\"activeEntries\"\n      [legendOptions]=\"legendOptions\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event)\"\n      (legendLabelDeactivate)=\"onDeactivate($event)\"\n    >\n      <svg:defs>\n        <svg:clipPath [attr.id]=\"clipPathId\">\n          <svg:rect\n            [attr.width]=\"dims.width + 10\"\n            [attr.height]=\"dims.height + 10\"\n            [attr.transform]=\"'translate(-5, -5)'\"\n          />\n        </svg:clipPath>\n      </svg:defs>\n      <svg:g [attr.transform]=\"transform\" class=\"bubble-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [showGridLines]=\"showGridLines\"\n          [dims]=\"dims\"\n          [xScale]=\"xScale\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        />\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [showGridLines]=\"showGridLines\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        />\n        <svg:rect\n          class=\"bubble-chart-area\"\n          x=\"0\"\n          y=\"0\"\n          [attr.width]=\"dims.width\"\n          [attr.height]=\"dims.height\"\n          style=\"fill: rgb(255, 0, 0); opacity: 0; cursor: 'auto';\"\n          (mouseenter)=\"deactivateAll()\"\n        />\n        <svg:g [attr.clip-path]=\"clipPath\">\n          <svg:g *ngFor=\"let series of data; trackBy: trackBy\" [@animationState]=\"'active'\">\n            <svg:g\n              ngx-charts-bubble-series\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [rScale]=\"rScale\"\n              [xScaleType]=\"xScaleType\"\n              [yScaleType]=\"yScaleType\"\n              [xAxisLabel]=\"xAxisLabel\"\n              [yAxisLabel]=\"yAxisLabel\"\n              [colors]=\"colors\"\n              [data]=\"series\"\n              [activeEntries]=\"activeEntries\"\n              [tooltipDisabled]=\"tooltipDisabled\"\n              [tooltipTemplate]=\"tooltipTemplate\"\n              (select)=\"onClick($event, series)\"\n              (activate)=\"onActivate($event)\"\n              (deactivate)=\"onDeactivate($event)\"\n            />\n          </svg:g>\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss')],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1\n        }),\n        animate(\n          500,\n          style({\n            opacity: 0\n          })\n        )\n      ])\n    ])\n  ]\n})\nexport class BubbleChartComponent extends BaseChartComponent {\n  @Input() showGridLines: boolean = true;\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis: boolean = true;\n  @Input() yAxis: boolean = true;\n  @Input() showXAxisLabel: boolean;\n  @Input() showYAxisLabel: boolean;\n  @Input() xAxisLabel: string;\n  @Input() yAxisLabel: string;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() roundDomains: boolean = false;\n  @Input() maxRadius = 10;\n  @Input() minRadius = 3;\n  @Input() autoScale: boolean;\n  @Input() schemeType = 'ordinal';\n  @Input() tooltipDisabled: boolean = false;\n  @Input() xScaleMin: any;\n  @Input() xScaleMax: any;\n  @Input() yScaleMin: any;\n  @Input() yScaleMax: any;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  colors: ColorHelper;\n  scaleType = 'linear';\n  margin = [10, 20, 10, 20];\n  bubblePadding = [0, 0, 0, 0];\n  data: any;\n\n  legendOptions: any;\n  transform: string;\n\n  clipPath: string;\n  clipPathId: string;\n\n  seriesDomain: any[];\n  xDomain: any[];\n  yDomain: any[];\n  rDomain: number[];\n\n  xScaleType: string;\n  yScaleType: string;\n\n  yScale: any;\n  xScale: any;\n  rScale: any;\n\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n\n  activeEntries: any[] = [];\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    this.seriesDomain = this.results.map(d => d.name);\n    this.rDomain = this.getRDomain();\n    this.xDomain = this.getXDomain();\n    this.yDomain = this.getYDomain();\n\n    this.transform = `translate(${this.dims.xOffset},${this.margin[0]})`;\n\n    const colorDomain = this.schemeType === 'ordinal' ? this.seriesDomain : this.rDomain;\n    this.colors = new ColorHelper(this.scheme, this.schemeType, colorDomain, this.customColors);\n\n    this.data = this.results;\n\n    this.minRadius = Math.max(this.minRadius, 1);\n    this.maxRadius = Math.max(this.maxRadius, 1);\n\n    this.rScale = this.getRScale(this.rDomain, [this.minRadius, this.maxRadius]);\n\n    this.bubblePadding = [0, 0, 0, 0];\n    this.setScales();\n\n    this.bubblePadding = this.getBubblePadding();\n    this.setScales();\n\n    this.legendOptions = this.getLegendOptions();\n\n    this.clipPathId = 'clip' + id().toString();\n    this.clipPath = `url(#${this.clipPathId})`;\n  }\n\n  @HostListener('mouseleave')\n  hideCircles(): void {\n    this.deactivateAll();\n  }\n\n  onClick(data, series?): void {\n    if (series) {\n      data.series = series.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  getBubblePadding() {\n    let yMin = 0;\n    let xMin = 0;\n    let yMax = this.dims.height;\n    let xMax = this.dims.width;\n\n    for (const s of this.data) {\n      for (const d of s.series) {\n        const r = this.rScale(d.r);\n        const cx = this.xScaleType === 'linear' ? this.xScale(Number(d.x)) : this.xScale(d.x);\n        const cy = this.yScaleType === 'linear' ? this.yScale(Number(d.y)) : this.yScale(d.y);\n        xMin = Math.max(r - cx, xMin);\n        yMin = Math.max(r - cy, yMin);\n        yMax = Math.max(cy + r, yMax);\n        xMax = Math.max(cx + r, xMax);\n      }\n    }\n\n    xMax = Math.max(xMax - this.dims.width, 0);\n    yMax = Math.max(yMax - this.dims.height, 0);\n\n    return [yMin, xMax, yMax, xMin];\n  }\n\n  setScales() {\n    let width = this.dims.width;\n    if (this.xScaleMin === undefined && this.xScaleMax === undefined) {\n      width = width - this.bubblePadding[1];\n    }\n    let height = this.dims.height;\n    if (this.yScaleMin === undefined && this.yScaleMax === undefined) {\n      height = height - this.bubblePadding[2];\n    }\n    this.xScale = this.getXScale(this.xDomain, width);\n    this.yScale = this.getYScale(this.yDomain, height);\n  }\n\n  getYScale(domain, height): any {\n    return getScale(domain, [height, this.bubblePadding[0]], this.yScaleType, this.roundDomains);\n  }\n\n  getXScale(domain, width): any {\n    return getScale(domain, [this.bubblePadding[3], width], this.xScaleType, this.roundDomains);\n  }\n\n  getRScale(domain, range): any {\n    const scale = scaleLinear()\n      .range(range)\n      .domain(domain);\n\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  getLegendOptions(): any {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      position: this.legendPosition,\n      title: undefined\n    };\n\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.seriesDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.rDomain;\n      opts.colors = this.colors.scale;\n    }\n\n    return opts;\n  }\n\n  getXDomain(): any[] {\n    const values = [];\n\n    for (const results of this.results) {\n      for (const d of results.series) {\n        if (!values.includes(d.x)) {\n          values.push(d.x);\n        }\n      }\n    }\n\n    this.xScaleType = getScaleType(values);\n    return getDomain(values, this.xScaleType, this.autoScale, this.xScaleMin, this.xScaleMax);\n  }\n\n  getYDomain(): any[] {\n    const values = [];\n\n    for (const results of this.results) {\n      for (const d of results.series) {\n        if (!values.includes(d.y)) {\n          values.push(d.y);\n        }\n      }\n    }\n\n    this.yScaleType = getScaleType(values);\n    return getDomain(values, this.yScaleType, this.autoScale, this.yScaleMin, this.yScaleMax);\n  }\n\n  getRDomain(): number[] {\n    let min = Infinity;\n    let max = -Infinity;\n\n    for (const results of this.results) {\n      for (const d of results.series) {\n        const value = Number(d.r) || 1;\n        min = Math.min(min, value);\n        max = Math.max(max, value);\n      }\n    }\n\n    return [min, max];\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(item): void {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item): void {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  deactivateAll() {\n    this.activeEntries = [...this.activeEntries];\n    for (const entry of this.activeEntries) {\n      this.deactivate.emit({ value: entry, entries: [] });\n    }\n    this.activeEntries = [];\n  }\n\n  trackBy(index, item): string {\n    return item.name;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bubble-chart/bubble-chart.component.ts","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { BubbleChartComponent } from './bubble-chart.component';\nimport { BubbleSeriesComponent } from './bubble-series.component';\n\n@NgModule({\n  imports: [ChartCommonModule],\n  declarations: [\n    BubbleChartComponent,\n    BubbleSeriesComponent\n  ],\n  exports: [\n    BubbleChartComponent,\n    BubbleSeriesComponent\n  ]\n})\nexport class BubbleChartModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bubble-chart/bubble-chart.module.ts","import { scaleLinear, scalePoint, scaleTime } from 'd3-scale';\n\nexport function getDomain(values, scaleType, autoScale, minVal?, maxVal?): number[] {\n    let domain: number[] = [];\n    if (scaleType === 'linear') {\n      values = values.map(v => Number(v));\n      if (!autoScale) {\n        values.push(0);\n      }\n    }\n    \n    if (scaleType === 'time' || scaleType === 'linear') {\n      const min = minVal ? minVal : Math.min(...values);\n      const max = maxVal ? maxVal : Math.max(...values);\n\n      domain = [min, max];\n    } else {\n      domain = values;\n    }\n\n    return domain;\n}\n\nexport function getScale(domain, range: number[], scaleType, roundDomains): any {\n  let scale: any;\n\n  if (scaleType === 'time') {\n    scale = scaleTime()\n      .range(range)\n      .domain(domain);\n  } else if (scaleType === 'linear') {\n    scale = scaleLinear()\n      .range(range)\n      .domain(domain);\n\n    if (roundDomains) {\n      scale = scale.nice();\n    }\n  } else if (scaleType === 'ordinal') {\n    scale = scalePoint()\n      .range([range[0], range[1]])\n      .domain(domain);\n  }\n\n  return scale;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bubble-chart/bubble-chart.utils.ts","import {\n  Component,\n  Input,\n  Output,\n  SimpleChanges,\n  EventEmitter,\n  OnChanges,\n  ChangeDetectionStrategy,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel } from '../common/label.helper';\n\n@Component({\n  selector: 'g[ngx-charts-bubble-series]',\n  template: `\n    <svg:g *ngFor=\"let circle of circles; trackBy: trackBy\">\n      <svg:g [attr.transform]=\"circle.transform\">\n        <svg:g\n          ngx-charts-circle\n          [@animationState]=\"'active'\"\n          class=\"circle\"\n          [cx]=\"0\"\n          [cy]=\"0\"\n          [r]=\"circle.radius\"\n          [fill]=\"circle.color\"\n          [style.opacity]=\"circle.opacity\"\n          [class.active]=\"circle.isActive\"\n          [pointerEvents]=\"'all'\"\n          [data]=\"circle.value\"\n          [classNames]=\"circle.classNames\"\n          (select)=\"onClick(circle.data)\"\n          (activate)=\"activateCircle(circle)\"\n          (deactivate)=\"deactivateCircle(circle)\"\n          ngx-tooltip\n          [tooltipDisabled]=\"tooltipDisabled\"\n          [tooltipPlacement]=\"'top'\"\n          [tooltipType]=\"'tooltip'\"\n          [tooltipTitle]=\"tooltipTemplate ? undefined : getTooltipText(circle)\"\n          [tooltipTemplate]=\"tooltipTemplate\"\n          [tooltipContext]=\"circle.data\"\n        />\n      </svg:g>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':enter', [\n        style({\n          opacity: 0,\n          transform: 'scale(0)'\n        }),\n        animate(250, style({ opacity: 1, transform: 'scale(1)' }))\n      ])\n    ])\n  ]\n})\nexport class BubbleSeriesComponent implements OnChanges {\n  @Input() data;\n  @Input() xScale;\n  @Input() yScale;\n  @Input() rScale;\n  @Input() xScaleType;\n  @Input() yScaleType;\n  @Input() colors;\n  @Input() visibleValue;\n  @Input() activeEntries: any[];\n  @Input() xAxisLabel: string;\n  @Input() yAxisLabel: string;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipTemplate: TemplateRef<any>;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n\n  areaPath: any;\n  circles: any[];\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.circles = this.getCircles();\n  }\n\n  getCircles(): any[] {\n    const seriesName = this.data.name;\n\n    return this.data.series\n      .map((d, i) => {\n        if (typeof d.y !== 'undefined' && typeof d.x !== 'undefined') {\n          const y = d.y;\n          const x = d.x;\n          const r = d.r;\n\n          const radius = this.rScale(r || 1);\n          const tooltipLabel = formatLabel(d.name);\n\n          const cx = this.xScaleType === 'linear' ? this.xScale(Number(x)) : this.xScale(x);\n          const cy = this.yScaleType === 'linear' ? this.yScale(Number(y)) : this.yScale(y);\n\n          const color = this.colors.scaleType === 'linear' ? this.colors.getColor(r) : this.colors.getColor(seriesName);\n\n          const isActive = !this.activeEntries.length ? true : this.isActive({ name: seriesName });\n          const opacity = isActive ? 1 : 0.3;\n\n          const data = Object.assign({}, d, {\n            series: seriesName,\n            name: d.name,\n            value: d.y,\n            x: d.x,\n            radius: d.r\n          });\n\n          return {\n            data,\n            x,\n            y,\n            r,\n            classNames: [`circle-data-${i}`],\n            value: y,\n            label: x,\n            cx,\n            cy,\n            radius,\n            tooltipLabel,\n            color,\n            opacity,\n            seriesName,\n            isActive,\n            transform: `translate(${cx},${cy})`\n          };\n        }\n      })\n      .filter(circle => circle !== undefined);\n  }\n\n  getTooltipText(circle): string {\n    const hasRadius = typeof circle.r !== 'undefined';\n    const hasTooltipLabel = circle.tooltipLabel && circle.tooltipLabel.length;\n    const hasSeriesName = circle.seriesName && circle.seriesName.length;\n\n    const radiusValue = hasRadius ? formatLabel(circle.r) : '';\n    const xAxisLabel = this.xAxisLabel && this.xAxisLabel !== '' ? `${this.xAxisLabel}:` : '';\n    const yAxisLabel = this.yAxisLabel && this.yAxisLabel !== '' ? `${this.yAxisLabel}:` : '';\n    const x = formatLabel(circle.x);\n    const y = formatLabel(circle.y);\n    const name =\n      hasSeriesName && hasTooltipLabel\n        ? `${circle.seriesName} • ${circle.tooltipLabel}`\n        : circle.seriesName + circle.tooltipLabel;\n    const tooltipTitle = hasSeriesName || hasTooltipLabel ? `<span class=\"tooltip-label\">${name}</span>` : '';\n\n    return `\n      ${tooltipTitle}\n      <span class=\"tooltip-label\">\n        <label>${xAxisLabel}</label> ${x}<br />\n        <label>${yAxisLabel}</label> ${y}\n      </span>\n      <span class=\"tooltip-val\">\n        ${radiusValue}\n      </span>\n    `;\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  isActive(entry): boolean {\n    if (!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name;\n    });\n    return item !== undefined;\n  }\n\n  isVisible(circle): boolean {\n    if (this.activeEntries.length > 0) {\n      return this.isActive({ name: circle.seriesName });\n    }\n\n    return circle.opacity !== 0;\n  }\n\n  activateCircle(circle): void {\n    circle.barVisible = true;\n    this.activate.emit({ name: this.data.name });\n  }\n\n  deactivateCircle(circle): void {\n    circle.barVisible = false;\n    this.deactivate.emit({ name: this.data.name });\n  }\n\n  trackBy(index, circle): string {\n    return `${circle.data.series} ${circle.data.name}`;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bubble-chart/bubble-series.component.ts","export * from './bubble-chart.module';\nexport * from './bubble-chart.component';\nexport * from './bubble-chart.utils';\nexport * from './bubble-series.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/bubble-chart/index.ts","import {\n  Component,\n  Input,\n  Output,\n  SimpleChanges,\n  EventEmitter,\n  ElementRef,\n  OnChanges,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { select } from 'd3-selection';\nimport { id } from '../utils/id';\n\n@Component({\n  selector: 'g[ngx-charts-area]',\n  template: `\n    <svg:defs *ngIf=\"gradient\">\n      <svg:g ngx-charts-svg-linear-gradient\n        orientation=\"vertical\"\n        [name]=\"gradientId\"\n        [stops]=\"gradientStops\"\n      />\n    </svg:defs>\n    <svg:path\n      class=\"area\"\n      [attr.d]=\"areaPath\"\n      [attr.fill]=\"gradient ? gradientFill : fill\"\n      [style.opacity]=\"opacity\"\n    />\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AreaComponent implements OnChanges {\n\n  @Input() data;\n  @Input() path;\n  @Input() startingPath;\n  @Input() fill;\n  @Input() opacity = 1;\n  @Input() startOpacity = 0.5;\n  @Input() endOpacity = 1;\n  @Input() activeLabel;\n  @Input() gradient: boolean = false;\n  @Input() stops: any[];\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n\n  element: HTMLElement;\n  gradientId: string;\n  gradientFill: string;\n  areaPath: string;\n  initialized: boolean = false;\n  gradientStops: any[];\n  hasGradient: boolean = false;\n\n  constructor(element: ElementRef) {\n    this.element = element.nativeElement;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!this.initialized) {\n      this.loadAnimation();\n      this.initialized = true;\n    } else {\n      this.update();\n    }\n  }\n\n  update(): void {\n    this.gradientId = 'grad' + id().toString();\n    this.gradientFill = `url(#${this.gradientId})`;\n\n    if (this.gradient || this.stops) {\n      this.gradientStops = this.getGradient();\n      this.hasGradient = true;\n    } else {\n      this.hasGradient = false;\n    }\n\n    this.updatePathEl();\n  }\n\n  loadAnimation(): void {\n    this.areaPath = this.startingPath;\n    setTimeout(this.update.bind(this), 100);\n  }\n\n  updatePathEl(): void {\n    const node = select(this.element).select('.area');\n\n    if (this.animations) {\n      node.transition().duration(750)\n        .attr('d', this.path);\n    } else {\n      node.attr('d', this.path);\n    }\n  }\n\n  getGradient() {\n    if (this.stops) {\n      return this.stops;\n    }\n\n    return [\n      {\n        offset: 0,\n        color: this.fill,\n        opacity: this.startOpacity\n      },\n      {\n        offset: 100,\n        color: this.fill,\n        opacity: this.endOpacity\n    }];\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/area.component.ts","import { NgModule } from '@angular/core';\nimport { AxisLabelComponent } from './axis-label.component';\nimport { XAxisComponent } from './x-axis.component';\nimport { XAxisTicksComponent } from './x-axis-ticks.component';\nimport { YAxisComponent } from './y-axis.component';\nimport { YAxisTicksComponent } from './y-axis-ticks.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [AxisLabelComponent, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent],\n  exports: [AxisLabelComponent, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent]\n})\nexport class AxesModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/axes/axes.module.ts","import {\n  Component,\n  Input,\n  ElementRef,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\n\n@Component({\n  selector: 'g[ngx-charts-axis-label]',\n  template: `\n    <svg:text\n      [attr.stroke-width]=\"strokeWidth\"\n      [attr.x]=\"x\"\n      [attr.y]=\"y\"\n      [attr.text-anchor]=\"textAnchor\"\n      [attr.transform]=\"transform\">\n      {{label}}\n    </svg:text>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AxisLabelComponent implements OnChanges {\n\n  @Input() orient;\n  @Input() label;\n  @Input() offset;\n  @Input() width;\n  @Input() height;\n\n  x: any;\n  y: any;\n  transform: any;\n  strokeWidth: any;\n  textAnchor: any;\n  element: ElementRef;\n  textHeight = 25;\n  margin = 5;\n\n  constructor(element: ElementRef) {\n    this.element = element.nativeElement;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.strokeWidth = '0.01';\n    this.textAnchor = 'middle';\n    this.transform = '';\n\n    switch (this.orient) {\n      case 'top':\n        this.y = this.offset;\n        this.x = this.width / 2;\n        break;\n      case 'bottom':\n        this.y = this.offset;\n        this.x = this.width / 2;\n        break;\n      case 'left':\n        this.y = - (this.offset + this.textHeight + this.margin);\n        this.x = -this.height / 2;\n        this.transform = 'rotate(270)';\n        break;\n      case 'right':\n        this.y = this.offset + this.margin;\n        this.x = -this.height / 2;\n        this.transform = 'rotate(270)';\n        break;\n      default:\n    }\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/axes/axis-label.component.ts","export * from './axes.module';\nexport * from './axis-label.component';\nexport * from './x-axis.component';\nexport * from './x-axis-ticks.component';\nexport * from './y-axis.component';\nexport * from './y-axis-ticks.component';\nexport * from './ticks.helper';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/axes/index.ts","export function reduceTicks(ticks, maxTicks) {\n  if (ticks.length > maxTicks) {\n    const reduced = [];\n    const modulus = Math.floor(ticks.length / maxTicks);\n    for (let i = 0; i < ticks.length; i++) {\n      if (i % modulus === 0) {\n        reduced.push(ticks[i]);\n      }\n    }\n    ticks = reduced;\n  }\n\n  return ticks;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/axes/ticks.helper.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  ElementRef,\n  ViewChild,\n  SimpleChanges,\n  AfterViewInit,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { trimLabel } from '../trim-label.helper';\nimport { reduceTicks } from './ticks.helper';\n\n@Component({\n  selector: 'g[ngx-charts-x-axis-ticks]',\n  template: `\n    <svg:g #ticksel>\n      <svg:g *ngFor=\"let tick of ticks\" class=\"tick\" [attr.transform]=\"tickTransform(tick)\">\n        <title>{{ tickFormat(tick) }}</title>\n        <svg:text\n          stroke-width=\"0.01\"\n          [attr.text-anchor]=\"textAnchor\"\n          [attr.transform]=\"textTransform\"\n          [style.font-size]=\"'12px'\"\n        >\n          {{ tickTrim(tickFormat(tick)) }}\n        </svg:text>\n      </svg:g>\n    </svg:g>\n\n    <svg:g *ngFor=\"let tick of ticks\" [attr.transform]=\"tickTransform(tick)\">\n      <svg:g *ngIf=\"showGridLines\" [attr.transform]=\"gridLineTransform()\">\n        <svg:line class=\"gridline-path gridline-path-vertical\" [attr.y1]=\"-gridLineHeight\" y2=\"0\" />\n      </svg:g>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class XAxisTicksComponent implements OnChanges, AfterViewInit {\n  @Input() scale;\n  @Input() orient;\n  @Input() tickArguments = [5];\n  @Input() tickValues: any[];\n  @Input() tickStroke = '#ccc';\n  @Input() trimTicks: boolean = true;\n  @Input() maxTickLength: number = 16;\n  @Input() tickFormatting;\n  @Input() showGridLines = false;\n  @Input() gridLineHeight;\n  @Input() width;\n  @Input() rotateTicks: boolean = true;\n\n  @Output() dimensionsChanged = new EventEmitter();\n\n  verticalSpacing: number = 20;\n  rotateLabels: boolean = false;\n  innerTickSize: number = 6;\n  outerTickSize: number = 6;\n  tickPadding: number = 3;\n  textAnchor: string = 'middle';\n  maxTicksLength: number = 0;\n  maxAllowedLength: number = 16;\n  adjustedScale: any;\n  textTransform: any;\n  ticks: any;\n  tickFormat: (o: any) => any;\n  height: number = 0;\n\n  @ViewChild('ticksel', { static: false }) ticksElement: ElementRef;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => this.updateDims());\n  }\n\n  updateDims(): void {\n    const height = parseInt(this.ticksElement.nativeElement.getBoundingClientRect().height, 10);\n    if (height !== this.height) {\n      this.height = height;\n      this.dimensionsChanged.emit({ height });\n      setTimeout(() => this.updateDims());\n    }\n  }\n\n  update(): void {\n    const scale = this.scale;\n    this.ticks = this.getTicks();\n\n    if (this.tickFormatting) {\n      this.tickFormat = this.tickFormatting;\n    } else if (scale.tickFormat) {\n      this.tickFormat = scale.tickFormat.apply(scale, this.tickArguments);\n    } else {\n      this.tickFormat = function(d) {\n        if (d.constructor.name === 'Date') {\n          return d.toLocaleDateString();\n        }\n        return d.toLocaleString();\n      };\n    }\n\n    const angle = this.rotateTicks ? this.getRotationAngle(this.ticks) : null;\n\n    this.adjustedScale = this.scale.bandwidth\n      ? function(d) {\n          return this.scale(d) + this.scale.bandwidth() * 0.5;\n        }\n      : this.scale;\n\n    this.textTransform = '';\n    if (angle && angle !== 0) {\n      this.textTransform = `rotate(${angle})`;\n      this.textAnchor = 'end';\n      this.verticalSpacing = 10;\n    } else {\n      this.textAnchor = 'middle';\n    }\n\n    setTimeout(() => this.updateDims());\n  }\n\n  getRotationAngle(ticks): number {\n    let angle = 0;\n    this.maxTicksLength = 0;\n    for (let i = 0; i < ticks.length; i++) {\n      const tick = this.tickFormat(ticks[i]).toString();\n      let tickLength = tick.length;\n      if (this.trimTicks) {\n        tickLength = this.tickTrim(tick).length;\n      }\n\n      if (tickLength > this.maxTicksLength) {\n        this.maxTicksLength = tickLength;\n      }\n    }\n\n    const len = Math.min(this.maxTicksLength, this.maxAllowedLength);\n    const charWidth = 8; // need to measure this\n    const wordWidth = len * charWidth;\n\n    let baseWidth = wordWidth;\n    const maxBaseWidth = Math.floor(this.width / ticks.length);\n\n    // calculate optimal angle\n    while (baseWidth > maxBaseWidth && angle > -90) {\n      angle -= 30;\n      baseWidth = Math.cos(angle * (Math.PI / 180)) * wordWidth;\n    }\n\n    return angle;\n  }\n\n  getTicks() {\n    let ticks;\n    const maxTicks = this.getMaxTicks(20);\n    const maxScaleTicks = this.getMaxTicks(100);\n\n    if (this.tickValues) {\n      ticks = this.tickValues;\n    } else if (this.scale.ticks) {\n      ticks = this.scale.ticks.apply(this.scale, [maxScaleTicks]);\n    } else {\n      ticks = this.scale.domain();\n      ticks = reduceTicks(ticks, maxTicks);\n    }\n\n    return ticks;\n  }\n\n  getMaxTicks(tickWidth: number): number {\n    return Math.floor(this.width / tickWidth);\n  }\n\n  tickTransform(tick): string {\n    return 'translate(' + this.adjustedScale(tick) + ',' + this.verticalSpacing + ')';\n  }\n\n  gridLineTransform(): string {\n    return `translate(0,${-this.verticalSpacing - 5})`;\n  }\n\n  tickTrim(label: string): string {\n    return this.trimTicks ? trimLabel(label, this.maxTickLength) : label;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/axes/x-axis-ticks.component.ts","import {\n  Component,\n  Input,\n  SimpleChanges,\n  Output,\n  EventEmitter,\n  OnChanges,\n  ViewChild,\n  ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { XAxisTicksComponent } from './x-axis-ticks.component';\n\n@Component({\n  selector: 'g[ngx-charts-x-axis]',\n  template: `\n    <svg:g [attr.class]=\"xAxisClassName\" [attr.transform]=\"transform\">\n      <svg:g\n        ngx-charts-x-axis-ticks\n        *ngIf=\"xScale\"\n        [trimTicks]=\"trimTicks\"\n        [rotateTicks]=\"rotateTicks\"\n        [maxTickLength]=\"maxTickLength\"\n        [tickFormatting]=\"tickFormatting\"\n        [tickArguments]=\"tickArguments\"\n        [tickStroke]=\"tickStroke\"\n        [scale]=\"xScale\"\n        [orient]=\"xOrient\"\n        [showGridLines]=\"showGridLines\"\n        [gridLineHeight]=\"dims.height\"\n        [width]=\"dims.width\"\n        [tickValues]=\"ticks\"\n        (dimensionsChanged)=\"emitTicksHeight($event)\"\n      />\n      <svg:g\n        ngx-charts-axis-label\n        *ngIf=\"showLabel\"\n        [label]=\"labelText\"\n        [offset]=\"labelOffset\"\n        [orient]=\"'bottom'\"\n        [height]=\"dims.height\"\n        [width]=\"dims.width\"\n      ></svg:g>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class XAxisComponent implements OnChanges {\n  @Input() xScale;\n  @Input() dims;\n  @Input() trimTicks: boolean;\n  @Input() rotateTicks: boolean = true;\n  @Input() maxTickLength: number;\n  @Input() tickFormatting;\n  @Input() showGridLines = false;\n  @Input() showLabel;\n  @Input() labelText;\n  @Input() ticks: any[];\n  @Input() xAxisTickInterval;\n  @Input() xAxisTickCount: any;\n  @Input() xOrient: string = 'bottom';\n  @Input() xAxisOffset: number = 0;\n\n  @Output() dimensionsChanged = new EventEmitter();\n\n  xAxisClassName: string = 'x axis';\n\n  tickArguments: any;\n  transform: any;\n  labelOffset: number = 0;\n  fill: string = 'none';\n  stroke: string = 'stroke';\n  tickStroke: string = '#ccc';\n  strokeWidth: string = 'none';\n  padding: number = 5;\n\n  @ViewChild(XAxisTicksComponent, { static: false }) ticksComponent: XAxisTicksComponent;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.transform = `translate(0,${this.xAxisOffset + this.padding + this.dims.height})`;\n\n    if (typeof this.xAxisTickCount !== 'undefined') {\n      this.tickArguments = [this.xAxisTickCount];\n    }\n  }\n\n  emitTicksHeight({ height }): void {\n    const newLabelOffset = height + 25 + 5;\n    if (newLabelOffset !== this.labelOffset) {\n      this.labelOffset = newLabelOffset;\n      setTimeout(() => {\n        this.dimensionsChanged.emit({ height });\n      }, 0);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/axes/x-axis.component.ts","import {\n  Component,\n  Input,\n  Output,\n  OnChanges,\n  ElementRef,\n  ViewChild,\n  EventEmitter,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  SimpleChanges\n} from '@angular/core';\nimport { trimLabel } from '../trim-label.helper';\nimport { reduceTicks } from './ticks.helper';\nimport { roundedRect } from '../../common/shape.helper';\n\n@Component({\n  selector: 'g[ngx-charts-y-axis-ticks]',\n  template: `\n    <svg:g #ticksel>\n      <svg:g *ngFor=\"let tick of ticks\" class=\"tick\" [attr.transform]=\"transform(tick)\">\n        <title>{{ tickFormat(tick) }}</title>\n        <svg:text\n          stroke-width=\"0.01\"\n          [attr.dy]=\"dy\"\n          [attr.x]=\"x1\"\n          [attr.y]=\"y1\"\n          [attr.text-anchor]=\"textAnchor\"\n          [style.font-size]=\"'12px'\"\n        >\n          {{ tickTrim(tickFormat(tick)) }}\n        </svg:text>\n      </svg:g>\n    </svg:g>\n\n    <svg:path\n      *ngIf=\"referenceLineLength > 1 && refMax && refMin && showRefLines\"\n      class=\"reference-area\"\n      [attr.d]=\"referenceAreaPath\"\n      [attr.transform]=\"gridLineTransform()\"\n    />\n    <svg:g *ngFor=\"let tick of ticks\" [attr.transform]=\"transform(tick)\">\n      <svg:g *ngIf=\"showGridLines\" [attr.transform]=\"gridLineTransform()\">\n        <svg:line\n          *ngIf=\"orient === 'left'\"\n          class=\"gridline-path gridline-path-horizontal\"\n          x1=\"0\"\n          [attr.x2]=\"gridLineWidth\"\n        />\n        <svg:line\n          *ngIf=\"orient === 'right'\"\n          class=\"gridline-path gridline-path-horizontal\"\n          x1=\"0\"\n          [attr.x2]=\"-gridLineWidth\"\n        />\n      </svg:g>\n    </svg:g>\n\n    <svg:g *ngFor=\"let refLine of referenceLines\">\n      <svg:g *ngIf=\"showRefLines\" [attr.transform]=\"transform(refLine.value)\">\n        <svg:line\n          class=\"refline-path gridline-path-horizontal\"\n          x1=\"0\"\n          [attr.x2]=\"gridLineWidth\"\n          [attr.transform]=\"gridLineTransform()\"\n        />\n        <svg:g *ngIf=\"showRefLabels\">\n          <title>{{ tickTrim(tickFormat(refLine.value)) }}</title>\n          <svg:text\n            class=\"refline-label\"\n            [attr.dy]=\"dy\"\n            [attr.y]=\"-6\"\n            [attr.x]=\"gridLineWidth\"\n            [attr.text-anchor]=\"textAnchor\"\n          >\n            {{ refLine.name }}\n          </svg:text>\n        </svg:g>\n      </svg:g>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YAxisTicksComponent implements OnChanges, AfterViewInit {\n  @Input() scale;\n  @Input() orient;\n  @Input() tickArguments = [5];\n  @Input() tickValues: any[];\n  @Input() tickStroke = '#ccc';\n  @Input() trimTicks: boolean = true;\n  @Input() maxTickLength: number = 16;\n  @Input() tickFormatting;\n  @Input() showGridLines = false;\n  @Input() gridLineWidth;\n  @Input() height;\n  @Input() referenceLines;\n  @Input() showRefLabels: boolean = false;\n  @Input() showRefLines: boolean = false;\n\n  @Output() dimensionsChanged = new EventEmitter();\n\n  innerTickSize: any = 6;\n  tickPadding: any = 3;\n  tickSpacing: any;\n  verticalSpacing: number = 20;\n  textAnchor: any = 'middle';\n  dy: any;\n  x1: any;\n  x2: any;\n  y1: any;\n  y2: any;\n  adjustedScale: any;\n  transform: (o: any) => string;\n  tickFormat: (o: any) => string;\n  ticks: any;\n  width: number = 0;\n  outerTickSize: number = 6;\n  rotateLabels: boolean = false;\n  refMax: number;\n  refMin: number;\n  referenceLineLength: number = 0;\n  referenceAreaPath: string;\n\n  @ViewChild('ticksel', { static: false }) ticksElement: ElementRef;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  ngAfterViewInit(): void {\n    setTimeout(() => this.updateDims());\n  }\n\n  updateDims(): void {\n    const width = parseInt(this.ticksElement.nativeElement.getBoundingClientRect().width, 10);\n    if (width !== this.width) {\n      this.width = width;\n      this.dimensionsChanged.emit({ width });\n      setTimeout(() => this.updateDims());\n    }\n  }\n\n  update(): void {\n    let scale;\n    const sign = this.orient === 'top' || this.orient === 'right' ? -1 : 1;\n    this.tickSpacing = Math.max(this.innerTickSize, 0) + this.tickPadding;\n\n    scale = this.scale;\n    this.ticks = this.getTicks();\n\n    if (this.tickFormatting) {\n      this.tickFormat = this.tickFormatting;\n    } else if (scale.tickFormat) {\n      this.tickFormat = scale.tickFormat.apply(scale, this.tickArguments);\n    } else {\n      this.tickFormat = function(d) {\n        if (d.constructor.name === 'Date') {\n          return d.toLocaleDateString();\n        }\n        return d.toLocaleString();\n      };\n    }\n\n    this.adjustedScale = scale.bandwidth\n      ? function(d) {\n          return scale(d) + scale.bandwidth() * 0.5;\n        }\n      : scale;\n\n    if (this.showRefLines && this.referenceLines) {\n      this.setReferencelines();\n    }\n\n    switch (this.orient) {\n      case 'top':\n        this.transform = function(tick) {\n          return 'translate(' + this.adjustedScale(tick) + ',0)';\n        };\n        this.textAnchor = 'middle';\n        this.y2 = this.innerTickSize * sign;\n        this.y1 = this.tickSpacing * sign;\n        this.dy = sign < 0 ? '0em' : '.71em';\n        break;\n      case 'bottom':\n        this.transform = function(tick) {\n          return 'translate(' + this.adjustedScale(tick) + ',0)';\n        };\n        this.textAnchor = 'middle';\n        this.y2 = this.innerTickSize * sign;\n        this.y1 = this.tickSpacing * sign;\n        this.dy = sign < 0 ? '0em' : '.71em';\n        break;\n      case 'left':\n        this.transform = function(tick) {\n          return 'translate(0,' + this.adjustedScale(tick) + ')';\n        };\n        this.textAnchor = 'end';\n        this.x2 = this.innerTickSize * -sign;\n        this.x1 = this.tickSpacing * -sign;\n        this.dy = '.32em';\n        break;\n      case 'right':\n        this.transform = function(tick) {\n          return 'translate(0,' + this.adjustedScale(tick) + ')';\n        };\n        this.textAnchor = 'start';\n        this.x2 = this.innerTickSize * -sign;\n        this.x1 = this.tickSpacing * -sign;\n        this.dy = '.32em';\n        break;\n      default:\n    }\n    setTimeout(() => this.updateDims());\n  }\n\n  setReferencelines(): void {\n    this.refMin = this.adjustedScale(Math.min.apply(null, this.referenceLines.map(item => item.value)));\n    this.refMax = this.adjustedScale(Math.max.apply(null, this.referenceLines.map(item => item.value)));\n    this.referenceLineLength = this.referenceLines.length;\n\n    this.referenceAreaPath = roundedRect(0, this.refMax, this.gridLineWidth, this.refMin - this.refMax, 0, [\n      false,\n      false,\n      false,\n      false\n    ]);\n  }\n\n  getTicks(): any {\n    let ticks;\n    const maxTicks = this.getMaxTicks(20);\n    const maxScaleTicks = this.getMaxTicks(50);\n\n    if (this.tickValues) {\n      ticks = this.tickValues;\n    } else if (this.scale.ticks) {\n      ticks = this.scale.ticks.apply(this.scale, [maxScaleTicks]);\n    } else {\n      ticks = this.scale.domain();\n      ticks = reduceTicks(ticks, maxTicks);\n    }\n\n    return ticks;\n  }\n\n  getMaxTicks(tickHeight: number): number {\n    return Math.floor(this.height / tickHeight);\n  }\n\n  tickTransform(tick): string {\n    return `translate(${this.adjustedScale(tick)},${this.verticalSpacing})`;\n  }\n\n  gridLineTransform(): string {\n    return `translate(5,0)`;\n  }\n\n  tickTrim(label: string): string {\n    return this.trimTicks ? trimLabel(label, this.maxTickLength) : label;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/axes/y-axis-ticks.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  ViewChild,\n  SimpleChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { YAxisTicksComponent } from './y-axis-ticks.component';\n\n@Component({\n  selector: 'g[ngx-charts-y-axis]',\n  template: `\n    <svg:g [attr.class]=\"yAxisClassName\" [attr.transform]=\"transform\">\n      <svg:g\n        ngx-charts-y-axis-ticks\n        *ngIf=\"yScale\"\n        [trimTicks]=\"trimTicks\"\n        [maxTickLength]=\"maxTickLength\"\n        [tickFormatting]=\"tickFormatting\"\n        [tickArguments]=\"tickArguments\"\n        [tickValues]=\"ticks\"\n        [tickStroke]=\"tickStroke\"\n        [scale]=\"yScale\"\n        [orient]=\"yOrient\"\n        [showGridLines]=\"showGridLines\"\n        [gridLineWidth]=\"dims.width\"\n        [referenceLines]=\"referenceLines\"\n        [showRefLines]=\"showRefLines\"\n        [showRefLabels]=\"showRefLabels\"\n        [height]=\"dims.height\"\n        (dimensionsChanged)=\"emitTicksWidth($event)\"\n      />\n\n      <svg:g\n        ngx-charts-axis-label\n        *ngIf=\"showLabel\"\n        [label]=\"labelText\"\n        [offset]=\"labelOffset\"\n        [orient]=\"yOrient\"\n        [height]=\"dims.height\"\n        [width]=\"dims.width\"\n      ></svg:g>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YAxisComponent implements OnChanges {\n  @Input() yScale;\n  @Input() dims;\n  @Input() trimTicks: boolean;\n  @Input() maxTickLength: number;\n  @Input() tickFormatting;\n  @Input() ticks: any[];\n  @Input() showGridLines = false;\n  @Input() showLabel;\n  @Input() labelText;\n  @Input() yAxisTickInterval;\n  @Input() yAxisTickCount: any;\n  @Input() yOrient: string = 'left';\n  @Input() referenceLines;\n  @Input() showRefLines;\n  @Input() showRefLabels;\n  @Input() yAxisOffset: number = 0;\n  @Output() dimensionsChanged = new EventEmitter();\n\n  yAxisClassName: string = 'y axis';\n  tickArguments: any;\n  offset: any;\n  transform: any;\n  labelOffset: number = 15;\n  fill: string = 'none';\n  stroke: string = '#CCC';\n  tickStroke: string = '#CCC';\n  strokeWidth: number = 1;\n  padding: number = 5;\n\n  @ViewChild(YAxisTicksComponent, { static: false }) ticksComponent: YAxisTicksComponent;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.offset = -(this.yAxisOffset + this.padding);\n    if (this.yOrient === 'right') {\n      this.labelOffset = 65;\n      this.transform = `translate(${this.offset + this.dims.width} , 0)`;\n    } else {\n      this.offset = this.offset;\n      this.transform = `translate(${this.offset} , 0)`;\n    }\n\n    if (this.yAxisTickCount !== undefined) {\n      this.tickArguments = [this.yAxisTickCount];\n    }\n  }\n\n  emitTicksWidth({ width }): void {\n    if (width !== this.labelOffset && this.yOrient === 'right') {\n      this.labelOffset = width + this.labelOffset;\n      setTimeout(() => {\n        this.dimensionsChanged.emit({ width });\n      }, 0);\n    } else if (width !== this.labelOffset) {\n      this.labelOffset = width;\n      setTimeout(() => {\n        this.dimensionsChanged.emit({ width });\n      }, 0);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/axes/y-axis.component.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./base-chart.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/common/base-chart.component.scss\n// module id = ./src/common/base-chart.component.scss\n// module chunks = 0","import {\n  ElementRef,\n  NgZone,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  AfterViewInit,\n  OnDestroy,\n  OnChanges,\n  SimpleChanges\n} from '@angular/core';\n\nimport { fromEvent as observableFromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { VisibilityObserver } from '../utils';\n\n@Component({\n  selector: 'base-chart',\n  template: `\n    <div></div>\n  `\n})\nexport class BaseChartComponent implements OnChanges, AfterViewInit, OnDestroy {\n  @Input() results: any;\n  @Input() view: [number, number];\n  @Input() scheme: any = 'cool';\n  @Input() schemeType: string = 'ordinal';\n  @Input() customColors: any;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n\n  width: number;\n  height: number;\n  resizeSubscription: any;\n  visibilityObserver: VisibilityObserver;\n\n  constructor(protected chartElement: ElementRef, protected zone: NgZone, protected cd: ChangeDetectorRef) {}\n\n  ngAfterViewInit(): void {\n    this.bindWindowResizeEvent();\n\n    // listen for visibility of the element for hidden by default scenario\n    this.visibilityObserver = new VisibilityObserver(this.chartElement, this.zone);\n    this.visibilityObserver.visible.subscribe(this.update.bind(this));\n  }\n\n  ngOnDestroy(): void {\n    this.unbindEvents();\n    if (this.visibilityObserver) {\n      this.visibilityObserver.visible.unsubscribe();\n      this.visibilityObserver.destroy();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    if (this.results) {\n      this.results = this.cloneData(this.results);\n    } else {\n      this.results = [];\n    }\n\n    if (this.view) {\n      this.width = this.view[0];\n      this.height = this.view[1];\n    } else {\n      const dims = this.getContainerDims();\n      if (dims) {\n        this.width = dims.width;\n        this.height = dims.height;\n      }\n    }\n\n    // default values if width or height are 0 or undefined\n    if (!this.width) {\n      this.width = 600;\n    }\n\n    if (!this.height) {\n      this.height = 400;\n    }\n\n    this.width = Math.floor(this.width);\n    this.height = Math.floor(this.height);\n\n    if (this.cd) {\n      this.cd.markForCheck();\n    }\n  }\n\n  getContainerDims(): any {\n    let width;\n    let height;\n    const hostElem = this.chartElement.nativeElement;\n\n    if (hostElem.parentNode !== null) {\n      // Get the container dimensions\n      const dims = hostElem.parentNode.getBoundingClientRect();\n      width = dims.width;\n      height = dims.height;\n    }\n\n    if (width && height) {\n      return { width, height };\n    }\n\n    return null;\n  }\n\n  /**\n   * Converts all date objects that appear as name\n   * into formatted date strings\n   */\n  formatDates(): void {\n    for (let i = 0; i < this.results.length; i++) {\n      const g = this.results[i];\n      g.label = g.name;\n      if (g.label instanceof Date) {\n        g.label = g.label.toLocaleDateString();\n      }\n\n      if (g.series) {\n        for (let j = 0; j < g.series.length; j++) {\n          const d = g.series[j];\n          d.label = d.name;\n          if (d.label instanceof Date) {\n            d.label = d.label.toLocaleDateString();\n          }\n        }\n      }\n    }\n  }\n\n  protected unbindEvents(): void {\n    if (this.resizeSubscription) {\n      this.resizeSubscription.unsubscribe();\n    }\n  }\n\n  private bindWindowResizeEvent(): void {\n    const source = observableFromEvent(window, 'resize');\n    const subscription = source.pipe(debounceTime(200)).subscribe(e => {\n      this.update();\n      if (this.cd) {\n        this.cd.markForCheck();\n      }\n    });\n    this.resizeSubscription = subscription;\n  }\n\n  /**\n   * Clones the data into a new object\n   *\n   * @private\n   * @param {any} data\n   * @returns {*}\n   *\n   * @memberOf BaseChart\n   */\n  private cloneData(data): any {\n    const results = [];\n\n    for (const item of data) {\n      const copy = {\n        name: item['name']\n      };\n\n      if (item['value'] !== undefined) {\n        copy['value'] = item['value'];\n      }\n\n      if (item['series'] !== undefined) {\n        copy['series'] = [];\n        for (const seriesItem of item['series']) {\n          const seriesItemCopy = Object.assign({}, seriesItem);\n          copy['series'].push(seriesItemCopy);\n        }\n      }\n\n      if (item['extra'] !== undefined) {\n        copy['extra'] = JSON.parse(JSON.stringify(item['extra']));\n      }\n\n      results.push(copy);\n    }\n\n    return results;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/base-chart.component.ts","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ChartComponent } from './charts/chart.component';\nimport {\n  ScaleLegendComponent, LegendComponent, LegendEntryComponent, AdvancedLegendComponent\n} from './legend';\nimport { BaseChartComponent } from './base-chart.component';\nimport { AxesModule } from './axes/axes.module';\nimport { TooltipModule } from './tooltip';\nimport { CircleSeriesComponent } from './circle-series.component';\nimport { CircleComponent } from './circle.component';\nimport { GridPanelComponent } from './grid-panel.component';\nimport { GridPanelSeriesComponent } from './grid-panel-series.component';\nimport { SvgLinearGradientComponent } from './svg-linear-gradient.component';\nimport { SvgRadialGradientComponent } from './svg-radial-gradient.component';\nimport { Timeline } from './timeline';\nimport { AreaComponent } from './area.component';\nimport { TooltipArea } from './tooltip-area.component';\nimport { CountUpDirective } from './count';\n\nconst COMPONENTS = [\n  AreaComponent,\n  BaseChartComponent,\n  CountUpDirective,\n  TooltipArea,\n  ChartComponent,\n  LegendComponent,\n  LegendEntryComponent,\n  ScaleLegendComponent,\n  CircleComponent,\n  CircleSeriesComponent,\n  GridPanelComponent,\n  GridPanelSeriesComponent,\n  SvgLinearGradientComponent,\n  SvgRadialGradientComponent,\n  Timeline,\n  AdvancedLegendComponent\n];\n\n@NgModule({\n  imports: [\n    CommonModule,\n    AxesModule,\n    TooltipModule\n  ],\n  declarations: [\n    ...COMPONENTS\n  ],\n  exports: [\n    CommonModule,\n    AxesModule,\n    TooltipModule,\n    ...COMPONENTS\n  ]\n})\nexport class ChartCommonModule { }\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/chart-common.module.ts","import {\n  Component, Input, OnChanges, ViewContainerRef, ChangeDetectionStrategy, EventEmitter,\n  Output, SimpleChanges\n} from '@angular/core';\nimport {\n  trigger,\n  style,\n  animate,\n  transition\n} from '@angular/animations';\nimport { TooltipService } from '../tooltip';\n\n@Component({\n  providers: [TooltipService],\n  selector: 'ngx-charts-chart',\n  template: `\n    <div\n      class=\"ngx-charts-outer\"\n      [style.width.px]=\"view[0]\"\n      [@animationState]=\"'active'\"\n      [@.disabled]=\"!animations\">\n      <svg\n        class=\"ngx-charts\"\n        [attr.width]=\"chartWidth\"\n        [attr.height]=\"view[1]\">\n        <ng-content></ng-content>\n      </svg>\n      <ngx-charts-scale-legend\n        *ngIf=\"showLegend && legendType === 'scaleLegend'\"\n        class=\"chart-legend\"\n        [horizontal]=\"legendOptions && legendOptions.position === 'below'\"\n        [valueRange]=\"legendOptions.domain\"\n        [colors]=\"legendOptions.colors\"\n        [height]=\"view[1]\"\n        [width]=\"legendWidth\">\n      </ngx-charts-scale-legend>\n      <ngx-charts-legend\n        *ngIf=\"showLegend && legendType === 'legend'\"\n        class=\"chart-legend\"\n        [horizontal]=\"legendOptions && legendOptions.position === 'below'\"\n        [data]=\"legendOptions.domain\"\n        [title]=\"legendOptions.title\"\n        [colors]=\"legendOptions.colors\"\n        [height]=\"view[1]\"\n        [width]=\"legendWidth\"\n        [activeEntries]=\"activeEntries\"\n        (labelClick)=\"legendLabelClick.emit($event)\"\n        (labelActivate)=\"legendLabelActivate.emit($event)\"\n        (labelDeactivate)=\"legendLabelDeactivate.emit($event)\">\n      </ngx-charts-legend>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':enter', [\n        style({ opacity: 0 }),\n        animate('500ms 100ms', style({ opacity: 1 }))\n      ])\n    ])\n  ]\n})\nexport class ChartComponent implements OnChanges {\n\n  @Input() view;\n  @Input() showLegend = false;\n  @Input() legendOptions: any;\n\n  // remove\n  @Input() data;\n  @Input() legendData;\n  @Input() legendType: any;\n  @Input() colors: any;\n  @Input() activeEntries: any[];\n  @Input() animations: boolean = true;\n\n  @Output() legendLabelClick: EventEmitter<any> = new EventEmitter();\n  @Output() legendLabelActivate: EventEmitter<any> = new EventEmitter();\n  @Output() legendLabelDeactivate: EventEmitter<any> = new EventEmitter();\n\n  chartWidth: any;\n  title: any;\n  legendWidth: any;\n\n  constructor(\n    private vcr: ViewContainerRef,\n    private tooltipService: TooltipService) {\n    this.tooltipService.injectionService.setRootViewContainer(this.vcr);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    let legendColumns = 0;\n    if (this.showLegend) {\n      this.legendType = this.getLegendType();\n\n      if (!this.legendOptions || this.legendOptions.position === 'right') {\n        if (this.legendType === 'scaleLegend') {\n          legendColumns = 1;\n        } else {\n          legendColumns = 2;\n        }\n      }\n    }\n\n    const chartColumns = 12 - legendColumns;\n\n    this.chartWidth = Math.floor((this.view[0] * chartColumns / 12.0));\n    this.legendWidth = (!this.legendOptions || this.legendOptions.position === 'right')\n      ? Math.floor((this.view[0] * legendColumns / 12.0))\n      : this.chartWidth;\n  }\n\n  getLegendType(): string {\n    if (this.legendOptions.scaleType === 'linear') {\n      return 'scaleLegend';\n    } else {\n      return 'legend';\n    }\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/charts/chart.component.ts","export * from './chart.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/charts/index.ts","import {\n  Component,\n  Input,\n  Output,\n  SimpleChanges,\n  EventEmitter,\n  OnChanges,\n  OnInit,\n  ChangeDetectionStrategy,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { formatLabel } from '../common/label.helper';\nimport { id } from '../utils/id';\nimport { ColorHelper } from '../common/color.helper';\n\n@Component({\n  selector: 'g[ngx-charts-circle-series]',\n  template: `\n    <svg:g *ngIf=\"circle\">\n      <defs>\n        <svg:g\n          ngx-charts-svg-linear-gradient\n          orientation=\"vertical\"\n          [name]=\"gradientId\"\n          [stops]=\"circle.gradientStops\"\n        />\n      </defs>\n      <svg:rect\n        *ngIf=\"barVisible && type === 'standard'\"\n        [@animationState]=\"'active'\"\n        [attr.x]=\"circle.cx - circle.radius\"\n        [attr.y]=\"circle.cy\"\n        [attr.width]=\"circle.radius * 2\"\n        [attr.height]=\"circle.height\"\n        [attr.fill]=\"gradientFill\"\n        class=\"tooltip-bar\"\n      />\n      <svg:g\n        ngx-charts-circle\n        class=\"circle\"\n        [cx]=\"circle.cx\"\n        [cy]=\"circle.cy\"\n        [r]=\"circle.radius\"\n        [fill]=\"circle.color\"\n        [class.active]=\"isActive({ name: circle.seriesName })\"\n        [pointerEvents]=\"circle.value === 0 ? 'none' : 'all'\"\n        [data]=\"circle.value\"\n        [classNames]=\"circle.classNames\"\n        (select)=\"onClick(circle.data)\"\n        (activate)=\"activateCircle()\"\n        (deactivate)=\"deactivateCircle()\"\n        ngx-tooltip\n        [tooltipDisabled]=\"tooltipDisabled\"\n        [tooltipPlacement]=\"'top'\"\n        [tooltipType]=\"'tooltip'\"\n        [tooltipTitle]=\"tooltipTemplate ? undefined : getTooltipText(circle)\"\n        [tooltipTemplate]=\"tooltipTemplate\"\n        [tooltipContext]=\"circle.data\"\n      />\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':enter', [\n        style({\n          opacity: 0\n        }),\n        animate(250, style({ opacity: 1 }))\n      ])\n    ])\n  ]\n})\nexport class CircleSeriesComponent implements OnChanges, OnInit {\n  @Input() data;\n  @Input() type = 'standard';\n  @Input() xScale;\n  @Input() yScale;\n  @Input() colors: ColorHelper;\n  @Input() scaleType;\n  @Input() visibleValue;\n  @Input() activeEntries: any[];\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipTemplate: TemplateRef<any>;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n\n  areaPath: any;\n  circle: any; // active circle\n  barVisible: boolean = false;\n  gradientId: string;\n  gradientFill: string;\n\n  ngOnInit() {\n    this.gradientId = 'grad' + id().toString();\n    this.gradientFill = `url(#${this.gradientId})`;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.circle = this.getActiveCircle();\n  }\n\n  getActiveCircle(): {} {\n    const indexActiveDataPoint = this.data.series.findIndex(d => {\n      const label = d.name;\n      return label && this.visibleValue && label.toString() === this.visibleValue.toString() && d.value !== undefined;\n    });\n\n    if (indexActiveDataPoint === -1) {\n      // No valid point is 'active/hovered over' at this moment.\n      return undefined;\n    }\n\n    return this.mapDataPointToCircle(this.data.series[indexActiveDataPoint], indexActiveDataPoint);\n  }\n\n  mapDataPointToCircle(d: any, i: number): any {\n    const seriesName = this.data.name;\n\n    const value = d.value;\n    const label = d.name;\n    const tooltipLabel = formatLabel(label);\n\n    let cx;\n    if (this.scaleType === 'time') {\n      cx = this.xScale(label);\n    } else if (this.scaleType === 'linear') {\n      cx = this.xScale(Number(label));\n    } else {\n      cx = this.xScale(label);\n    }\n\n    const cy = this.yScale(this.type === 'standard' ? value : d.d1);\n    const radius = 5;\n    const height = this.yScale.range()[0] - cy;\n    const opacity = 1;\n\n    let color;\n    if (this.colors.scaleType === 'linear') {\n      if (this.type === 'standard') {\n        color = this.colors.getColor(value);\n      } else {\n        color = this.colors.getColor(d.d1);\n      }\n    } else {\n      color = this.colors.getColor(seriesName);\n    }\n\n    const data = Object.assign({}, d, {\n      series: seriesName,\n      value,\n      name: label\n    });\n\n    return {\n      classNames: [`circle-data-${i}`],\n      value,\n      label,\n      data,\n      cx,\n      cy,\n      radius,\n      height,\n      tooltipLabel,\n      color,\n      opacity,\n      seriesName,\n      gradientStops: this.getGradientStops(color),\n      min: d.min,\n      max: d.max\n    };\n  }\n\n  getTooltipText({ tooltipLabel, value, seriesName, min, max }): string {\n    return `\n      <span class=\"tooltip-label\">${seriesName} • ${tooltipLabel}</span>\n      <span class=\"tooltip-val\">${value.toLocaleString()}${this.getTooltipMinMaxText(min, max)}</span>\n    `;\n  }\n\n  getTooltipMinMaxText(min: any, max: any) {\n    if (min !== undefined || max !== undefined) {\n      let result = ' (';\n      if (min !== undefined) {\n        if (max === undefined) {\n          result += '≥';\n        }\n        result += min.toLocaleString();\n        if (max !== undefined) {\n          result += ' - ';\n        }\n      } else if (max !== undefined) {\n        result += '≤';\n      }\n      if (max !== undefined) {\n        result += max.toLocaleString();\n      }\n      result += ')';\n      return result;\n    } else {\n      return '';\n    }\n  }\n\n  getGradientStops(color) {\n    return [\n      {\n        offset: 0,\n        color,\n        opacity: 0.2\n      },\n      {\n        offset: 100,\n        color,\n        opacity: 1\n      }\n    ];\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  isActive(entry): boolean {\n    if (!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name;\n    });\n    return item !== undefined;\n  }\n\n  activateCircle(): void {\n    this.barVisible = true;\n    this.activate.emit({ name: this.data.name });\n  }\n\n  deactivateCircle(): void {\n    this.barVisible = false;\n    this.circle.opacity = 0;\n    this.deactivate.emit({ name: this.data.name });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/circle-series.component.ts","import {\n  Component,\n  Input,\n  SimpleChanges,\n  Output,\n  EventEmitter,\n  OnChanges,\n  ChangeDetectionStrategy,\n  HostListener\n} from '@angular/core';\n\n@Component({\n  selector: 'g[ngx-charts-circle]',\n  template: `\n    <svg:circle\n      [attr.cx]=\"cx\"\n      [attr.cy]=\"cy\"\n      [attr.r]=\"r\"\n      [attr.fill]=\"fill\"\n      [attr.stroke]=\"stroke\"\n      [attr.opacity]=\"circleOpacity\"\n      [attr.class]=\"classNames\"\n      [attr.pointer-events]=\"pointerEvents\"\n    />\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CircleComponent implements OnChanges {\n\n  @Input() cx;\n  @Input() cy;\n  @Input() r;\n  @Input() fill;\n  @Input() stroke;\n  @Input() data;\n  @Input() classNames;\n  @Input() circleOpacity;\n  @Input() pointerEvents;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n\n  @HostListener('click')\n  onClick() {\n    this.select.emit(this.data);\n  }\n\n  @HostListener('mouseenter')\n  onMouseEnter(): void {\n    this.activate.emit(this.data);\n  }\n\n  @HostListener('mouseleave')\n  onMouseLeave(): void {\n    this.deactivate.emit(this.data);\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.classNames = Array.isArray(this.classNames) ?\n      this.classNames.join(' ') : \n      '';\n    this.classNames += 'circle';\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/circle.component.ts","import { range } from 'd3-array';\nimport { scaleBand, scaleLinear, scaleOrdinal, scaleQuantile } from 'd3-scale';\n\nimport { colorSets } from '../utils/color-sets';\n\nexport class ColorHelper {\n  scale: any;\n  scaleType: any;\n  colorDomain: any[];\n  domain: any;\n  customColors: any;\n\n  constructor(scheme, type, domain, customColors?) {\n    if (typeof scheme === 'string') {\n      scheme = colorSets.find(cs => {\n        return cs.name === scheme;\n      });\n    }\n    this.colorDomain = scheme.domain;\n    this.scaleType = type;\n    this.domain = domain;\n    this.customColors = customColors;\n\n    this.scale = this.generateColorScheme(scheme, type, this.domain);\n  }\n\n  generateColorScheme(scheme, type, domain) {\n    if (typeof scheme === 'string') {\n      scheme = colorSets.find(cs => {\n        return cs.name === scheme;\n      });\n    }\n    let colorScale;\n    if (type === 'quantile') {\n      colorScale = scaleQuantile()\n        .range(scheme.domain)\n        .domain(domain);\n    } else if (type === 'ordinal') {\n      colorScale = scaleOrdinal()\n        .range(scheme.domain)\n        .domain(domain);\n    } else if (type === 'linear') {\n      // linear schemes must have at least 2 colors\n      const colorDomain = [...scheme.domain];\n      if (colorDomain.length === 1) {\n        colorDomain.push(colorDomain[0]);\n        this.colorDomain = colorDomain;\n      }\n\n      const points = range(0, 1, 1.0 / colorDomain.length);\n      colorScale = scaleLinear()\n        .domain(points)\n        .range(colorDomain);\n    }\n\n    return colorScale;\n  }\n\n  getColor(value) {\n    if (value === undefined || value === null) {\n      throw new Error('Value can not be null');\n    }\n    if (this.scaleType === 'linear') {\n      const valueScale = scaleLinear()\n        .domain(this.domain)\n        .range([0, 1]);\n\n      return this.scale(valueScale(value));\n    } else {\n      if (typeof this.customColors === 'function') {\n        return this.customColors(value);\n      }\n\n      const formattedValue = value.toString();\n      let found: any; // todo type customColors\n      if (this.customColors && this.customColors.length > 0) {\n        found = this.customColors.find(mapping => {\n          return mapping.name.toLowerCase() === formattedValue.toLowerCase();\n        });\n      }\n\n      if (found) {\n        return found.value;\n      } else {\n        return this.scale(value);\n      }\n    }\n  }\n\n  getLinearGradientStops(value, start) {\n    if (start === undefined) {\n      start = this.domain[0];\n    }\n\n    const valueScale = scaleLinear()\n      .domain(this.domain)\n      .range([0, 1]);\n\n    const colorValueScale = scaleBand()\n      .domain(this.colorDomain)\n      .range([0, 1]);\n\n    const endColor = this.getColor(value);\n\n    // generate the stops\n    const startVal = valueScale(start);\n    const startColor = this.getColor(start);\n\n    const endVal = valueScale(value);\n    let i = 1;\n    let currentVal = startVal;\n    const stops = [];\n\n    stops.push({\n      color: startColor,\n      offset: startVal,\n      originalOffset: startVal,\n      opacity: 1\n    });\n\n    while (currentVal < endVal && i < this.colorDomain.length) {\n      const color = this.colorDomain[i];\n      const offset = colorValueScale(color);\n      if (offset <= startVal) {\n        i++;\n        continue;\n      }\n\n      if (offset.toFixed(4) >= (endVal - colorValueScale.bandwidth()).toFixed(4)) {\n        break;\n      }\n\n      stops.push({\n        color,\n        offset,\n        opacity: 1\n      });\n      currentVal = offset;\n      i++;\n    }\n\n    if (stops[stops.length - 1].offset < 100) {\n      stops.push({\n        color: endColor,\n        offset: endVal,\n        opacity: 1\n      });\n    }\n\n    if (endVal === startVal) {\n      stops[0].offset = 0;\n      stops[1].offset = 100;\n    } else {\n      // normalize the offsets into percentages\n      if (stops[stops.length - 1].offset !== 100) {\n        for (const s of stops) {\n          s.offset = ((s.offset - startVal) / (endVal - startVal)) * 100;\n        }\n      }\n    }\n\n    return stops;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/color.helper.ts","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, ElementRef } from '@angular/core';\nimport { count, decimalChecker } from './count.helper';\n\n/**\n * Count up component\n *\n * Loosely inspired by:\n *  - https://github.com/izupet/angular2-counto\n *  - https://inorganik.github.io/countUp.js/\n *\n * @export\n * @class CountUpDirective\n */\n@Component({\n  selector: '[ngx-charts-count-up]',\n  template: `{{value}}`\n})\nexport class CountUpDirective implements OnDestroy {\n  @Input() countDuration: number = 1;\n  @Input() countPrefix: string = '';\n  @Input() countSuffix: string = '';\n  @Input() valueFormatting: any;\n\n  @Input()\n  set countDecimals(val: number) {\n    this._countDecimals = val;\n  }\n\n  get countDecimals(): number {\n    if (this._countDecimals) return this._countDecimals;\n    return decimalChecker(this.countTo);\n  }\n\n  @Input()\n  set countTo(val) {\n    this._countTo = parseFloat(val);\n    this.start();\n  }\n\n  get countTo(): any {\n    return this._countTo;\n  }\n\n  @Input()\n  set countFrom(val) {\n    this._countFrom = parseFloat(val);\n    this.start();\n  }\n\n  get countFrom(): any {\n    return this._countFrom;\n  }\n\n  @Output() countChange = new EventEmitter();\n  @Output() countFinish = new EventEmitter();\n\n  nativeElement: any;\n\n  value: any = '';\n  formattedValue: string;\n\n  private animationReq: any;\n\n  private _countDecimals: number = 0;\n  private _countTo: number = 0;\n  private _countFrom: number = 0;\n\n  constructor(private cd: ChangeDetectorRef, element: ElementRef) {\n    this.nativeElement = element.nativeElement;\n  }\n\n  ngOnDestroy(): void {\n    cancelAnimationFrame(this.animationReq);\n  }\n\n  start(): void {\n    cancelAnimationFrame(this.animationReq);\n\n    const valueFormatting =\n      this.valueFormatting || (value => `${this.countPrefix}${value.toLocaleString()}${this.countSuffix}`);\n\n    const callback = ({ value, progress, finished }) => {\n      this.value = valueFormatting(value);\n      this.cd.markForCheck();\n      if (!finished) this.countChange.emit({ value: this.value, progress });\n      if (finished) this.countFinish.emit({ value: this.value, progress });\n    };\n\n    this.animationReq = count(this.countFrom, this.countTo, this.countDecimals, this.countDuration, callback);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/count/count.directive.ts","// Robert Penner's easeOutExpo\nfunction easeOutExpo(t, b, c, d) {\n  return (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b;\n}\n\n/**\n * Counts from a number to the end incrementally.\n *\n * @export\n * @param {any} countFrom\n * @param {any} countTo\n * @param {any} countDecimals\n * @param {any} countDuration\n * @param {any} callback\n * @returns\n */\nexport function count(countFrom, countTo, countDecimals, countDuration, callback) {\n  const startVal = Number(countFrom);\n  const endVal = Number(countTo);\n  const countDown = startVal > endVal;\n  const decimals = Math.max(0, countDecimals);\n  const dec = Math.pow(10, decimals);\n  const duration = Number(countDuration) * 1000;\n  let startTime;\n\n  function runCount(timestamp) {\n    let frameVal;\n    const progress = timestamp - startTime;\n\n    if (countDown) {\n      frameVal = startVal - easeOutExpo(progress, 0, startVal - endVal, duration);\n    } else {\n      frameVal = easeOutExpo(progress, startVal, endVal - startVal, duration);\n    }\n\n    if (countDown) {\n      frameVal = frameVal < endVal ? endVal : frameVal;\n    } else {\n      frameVal = frameVal > endVal ? endVal : frameVal;\n    }\n\n    frameVal = Math.round(frameVal * dec) / dec;\n\n    const tick = progress < duration;\n    callback({\n      value: frameVal,\n      progress,\n      timestamp,\n      finished: !tick\n    });\n\n    if (tick) {\n      return requestAnimationFrame(val => runCount(val));\n    }\n  }\n\n  return requestAnimationFrame(timestamp => {\n    startTime = timestamp;\n    return runCount(timestamp);\n  });\n}\n\n/**\n * Determine decimals places\n *\n * @export\n * @param {any} countTo\n * @returns\n */\nexport function decimalChecker(countTo) {\n  const endVal = Number(countTo);\n\n  if (endVal % 1 !== 0 && Math.abs(endVal) <= 10) {\n    return 2;\n  }\n\n  return 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/count/count.helper.ts","export * from './count.directive';\nexport * from './count.helper';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/count/index.ts","/**\n * Based on the data, return an array with unique values.\n *\n * @export\n * @returns array\n * @param results\n */\nexport function getUniqueXDomainValues(results: any[]): any[] {\n  const valueSet = new Set();\n  for (const result of results) {\n    for (const d of result.series) {\n      valueSet.add(d.name);\n    }\n  }\n  return Array.from(valueSet);\n}\n\n/**\n * Get the scaleType of enumerable of values.\n * @param values\n * @returns {string} 'time', 'linear' or 'ordinal'\n */\nexport function getScaleType(values: any[], checkDateType = true): string {\n  if (checkDateType) {\n    const allDates = values.every(value => value instanceof Date);\n    if (allDates) {\n      return 'time';\n    }\n  }\n\n  const allNumbers = values.every(value => typeof value === 'number');\n  if (allNumbers) {\n      return 'linear';\n    }\n\n  return 'ordinal';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/domain.helper.ts","import { scaleBand } from 'd3-scale';\n\nexport function gridSize(dims, len, minWidth) {\n  let rows = 1;\n  let cols = len;\n  const width = dims.width;\n\n  if (width > minWidth) {\n    while (width / cols < minWidth) {\n      rows += 1;\n      cols = Math.ceil(len / rows);\n    }\n  }\n\n  return [cols, rows];\n}\n\nexport function gridLayout(dims, data, minWidth, designatedTotal) {\n  const xScale: any = scaleBand<number>();\n  const yScale: any = scaleBand<number>();\n  const width = dims.width;\n  const height = dims.height;\n\n  const [columns, rows] = gridSize(dims, data.length, minWidth);\n\n  const xDomain = [];\n  const yDomain = [];\n  for (let i = 0; i < rows; i++) {\n    yDomain.push(i);\n  }\n  for (let i = 0; i < columns; i++) {\n    xDomain.push(i);\n  }\n  xScale.domain(xDomain);\n  yScale.domain(yDomain);\n\n  xScale.rangeRound([0, width], 0.1);\n  yScale.rangeRound([0, height], 0.1);\n\n  const res = [];\n  const total = designatedTotal ? designatedTotal : getTotal(data);\n  const cardWidth = xScale.bandwidth();\n  const cardHeight = yScale.bandwidth();\n\n  for (let i = 0; i < data.length; i++) {\n    res[i] = {};\n    res[i].data = {\n      name: data[i] ? data[i].name : '',\n      value: data[i] ? data[i].value : undefined,\n      extra: data[i] ? data[i].extra : undefined,\n      label: data[i] ? data[i].label : ''\n    };\n    res[i].x = xScale(i % columns);\n    res[i].y = yScale(Math.floor(i / columns));\n    res[i].width = cardWidth;\n    res[i].height = cardHeight;\n    res[i].data.percent = total > 0 ? res[i].data.value / total : 0;\n    res[i].data.total = total;\n  }\n\n  return res;\n}\n\nfunction getTotal(results) {\n  return results.map(d => (d ? d.value : 0)).reduce((sum, val) => sum + val, 0);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/grid-layout.helper.ts","import { Component, SimpleChanges, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n  selector: 'g[ngx-charts-grid-panel-series]',\n  template: `\n    <svg:g ngx-charts-grid-panel *ngFor=\"let gridPanel of gridPanels\"\n      [height]=\"gridPanel.height\"\n      [width]=\"gridPanel.width\"\n      [x]=\"gridPanel.x\"\n      [y]=\"gridPanel.y\"\n      [class.grid-panel]=\"true\"\n      [class.odd]=\"gridPanel.class === 'odd'\"\n      [class.even]=\"gridPanel.class === 'even'\">\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GridPanelSeriesComponent implements OnChanges {\n  gridPanels: any[];\n\n  @Input()\n  data;\n\n  @Input()\n  dims;\n\n  @Input()\n  xScale;\n\n  @Input()\n  yScale;\n\n  @Input()\n  orient;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.gridPanels = this.getGridPanels();\n  }\n\n  getGridPanels(): any[] {\n    return this.data.map((d) => {\n      let offset;\n      let width;\n      let height;\n      let x;\n      let y;\n      let className = 'odd';\n\n      if (this.orient === 'vertical') {\n        const position: number = this.xScale(d.name);\n        const positionIndex = Number.parseInt((position / this.xScale.step()).toString(), 10);\n\n        if (positionIndex % 2 === 1) {\n          className = 'even';\n        }\n        offset = this.xScale.bandwidth() * this.xScale.paddingInner();\n        width = this.xScale.bandwidth() + offset;\n        height = this.dims.height;\n        x = this.xScale(d.name) - offset / 2;\n        y = 0;\n      } else if (this.orient === 'horizontal') {\n        const position = this.yScale(d.name);\n        const positionIndex = Number.parseInt((position / this.yScale.step()).toString(), 10);\n\n        if (positionIndex % 2 === 1) {\n          className = 'even';\n        }\n        offset = this.yScale.bandwidth() * this.yScale.paddingInner();\n\n        width = this.dims.width;\n        height = this.yScale.bandwidth() + offset;\n        x = 0;\n        y = this.yScale(d.name) - offset / 2;\n      }\n\n      return {\n        name: d.name,\n        class: className,\n        height,\n        width,\n        x,\n        y\n      };\n    });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/grid-panel-series.component.ts","import {\n  Component,\n  Input,\n  ChangeDetectionStrategy\n} from '@angular/core';\n\n@Component({\n  selector: 'g[ngx-charts-grid-panel]',\n  template: `\n    <svg:rect\n      [attr.height]=\"height\"\n      [attr.width]=\"width\"\n      [attr.x]=\"x\"\n      [attr.y]=\"y\"\n      stroke=\"none\"\n      class=\"gridpanel\"\n    />\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GridPanelComponent {\n\n  @Input() path;\n  @Input() width;\n  @Input() height;\n  @Input() x;\n  @Input() y;\n  \n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/grid-panel.component.ts","export * from './chart-common.module';\nexport * from './legend';\nexport * from './tooltip';\nexport * from './axes';\nexport * from './count';\nexport * from './timeline';\nexport * from './color.helper';\nexport * from './charts';\nexport * from './area.component';\nexport * from './base-chart.component';\nexport * from './circle.component';\nexport * from './circle-series.component';\nexport * from './grid-layout.helper';\nexport * from './grid-panel.component';\nexport * from './grid-panel-series.component';\nexport * from './svg-linear-gradient.component';\nexport * from './svg-radial-gradient.component';\nexport * from './tooltip-area.component';\nexport * from './tick-format.helper';\nexport * from './trim-label.helper';\nexport * from './view-dimensions.helper';\nexport * from './label.helper';\nexport * from './domain.helper';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/index.ts","/**\n * Formats a label given a date, number or string.\n * \n * @export\n * @param {*} label\n * @returns {string}\n */\nexport function formatLabel(label: any): string {\n  if (label instanceof Date) {\n    label = label.toLocaleDateString();\n  } else {\n    label = label.toLocaleString();\n  }\n\n  return label;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/label.helper.ts","\n        var result = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/sass-loader/lib/loader.js!./advanced-legend.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/common/legend/advanced-legend.component.scss\n// module id = ./src/common/legend/advanced-legend.component.scss\n// module chunks = 0","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core';\nimport { trimLabel } from '../trim-label.helper';\nimport { formatLabel } from '../label.helper';\n\n@Component({\n  selector: 'ngx-charts-advanced-legend',\n  template: `\n    <div class=\"advanced-pie-legend\" [style.width.px]=\"width\">\n      <div\n        *ngIf=\"animations\"\n        class=\"total-value\"\n        ngx-charts-count-up\n        [countTo]=\"roundedTotal\"\n        [valueFormatting]=\"valueFormatting\"\n      ></div>\n      <div class=\"total-value\" *ngIf=\"!animations\">\n        {{ valueFormatting ? valueFormatting(roundedTotal) : defaultValueFormatting(roundedTotal) }}\n      </div>\n      <div class=\"total-label\">\n        {{ label }}\n      </div>\n      <div class=\"legend-items-container\">\n        <div class=\"legend-items\">\n          <div\n            *ngFor=\"let legendItem of legendItems; trackBy: trackBy\"\n            tabindex=\"-1\"\n            class=\"legend-item\"\n            (mouseenter)=\"activate.emit(legendItem.data)\"\n            (mouseleave)=\"deactivate.emit(legendItem.data)\"\n            (click)=\"select.emit(legendItem.data)\"\n          >\n            <div class=\"item-color\" [style.border-left-color]=\"legendItem.color\"></div>\n            <div\n              *ngIf=\"animations\"\n              class=\"item-value\"\n              ngx-charts-count-up\n              [countTo]=\"legendItem._value\"\n              [valueFormatting]=\"valueFormatting\"\n            ></div>\n            <div *ngIf=\"!animations\" class=\"item-value\">\n              {{ valueFormatting ? valueFormatting(legendItem.value) : defaultValueFormatting(legendItem.value) }}\n            </div>\n            <div class=\"item-label\">{{ legendItem.displayLabel }}</div>\n            <div\n              *ngIf=\"animations\"\n              class=\"item-percent\"\n              ngx-charts-count-up\n              [countTo]=\"legendItem.percentage\"\n              [countSuffix]=\"'%'\"\n            ></div>\n            <div *ngIf=\"!animations\" class=\"item-percent\">{{ legendItem.percentage.toLocaleString() }}%</div>\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n  styles: [require('./advanced-legend.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AdvancedLegendComponent implements OnChanges {\n  @Input() width: number;\n  @Input() data;\n  @Input() colors;\n  @Input() label: string = 'Total';\n  @Input() animations: boolean = true;\n\n  @Output() select: EventEmitter<any> = new EventEmitter();\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  legendItems: any[] = [];\n  total: number;\n  roundedTotal: number;\n\n  @Input() valueFormatting: (value: number) => any;\n  @Input() labelFormatting: (value: string) => any = label => label;\n  @Input() percentageFormatting: (value: number) => any = percentage => percentage;\n\n  defaultValueFormatting: (value: number) => any = value => value.toLocaleString();\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  getTotal(): number {\n    return this.data.map(d => d.value).reduce((sum, d) => sum + d, 0);\n  }\n\n  update(): void {\n    this.total = this.getTotal();\n    this.roundedTotal = this.total;\n\n    this.legendItems = this.getLegendItems();\n  }\n\n  getLegendItems(): any {\n    return this.data.map(d => {\n      const label = formatLabel(d.name);\n      const value = d.value;\n      const color = this.colors.getColor(label);\n      const percentage = this.total > 0 ? (value / this.total) * 100 : 0;\n      const formattedLabel = typeof this.labelFormatting === 'function' ? this.labelFormatting(label) : label;\n\n      return {\n        _value: value,\n        data: d,\n        value,\n        color,\n        label: formattedLabel,\n        displayLabel: trimLabel(formattedLabel, 20),\n        origialLabel: d.name,\n        percentage: this.percentageFormatting ? this.percentageFormatting(percentage) : percentage.toLocaleString()\n      };\n    });\n  }\n\n  trackBy(item) {\n    return item.formattedLabel;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/legend/advanced-legend.component.ts","export * from './legend.component';\nexport * from './scale-legend.component';\nexport * from './legend-entry.component';\nexport * from './advanced-legend.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/legend/index.ts","import {\n  Component, \n  Input, \n  Output, \n  ChangeDetectionStrategy,   \n  HostListener,\n  EventEmitter\n } from '@angular/core';\n\n@Component({\n  selector: 'ngx-charts-legend-entry',\n  template: `\n    <span \n      [title]=\"formattedLabel\"\n      tabindex=\"-1\"\n      [class.active]=\"isActive\"\n      (click)=\"select.emit(formattedLabel)\">\n      <span\n        class=\"legend-label-color\"\n        [style.background-color]=\"color\"\n        (click)=\"toggle.emit(formattedLabel)\">\n      </span>\n      <span class=\"legend-label-text\">\n        {{trimmedLabel}}\n      </span>\n    </span>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LegendEntryComponent {\n\n  @Input() color: string;\n  @Input() label: any;\n  @Input() formattedLabel: string;\n  @Input() isActive: boolean = false;\n\n  @Output() select: EventEmitter<any> = new EventEmitter();\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n  @Output() toggle: EventEmitter<any> = new EventEmitter();\n\n  get trimmedLabel(): string {\n    return this.formattedLabel || '(empty)';\n  }\n\n  @HostListener('mouseenter')\n  onMouseEnter(): void {\n    this.activate.emit({name: this.label});\n  }\n\n  @HostListener('mouseleave')\n  onMouseLeave(): void {\n    this.deactivate.emit({name: this.label});\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/legend/legend-entry.component.ts","\n        var result = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/sass-loader/lib/loader.js!./legend.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/common/legend/legend.component.scss\n// module id = ./src/common/legend/legend.component.scss\n// module chunks = 0","import {\n  Component, Input, ChangeDetectionStrategy, Output, EventEmitter,\n  SimpleChanges, OnChanges, ChangeDetectorRef, ViewEncapsulation\n } from '@angular/core';\nimport { formatLabel } from '../label.helper';\n\n@Component({\n  selector: 'ngx-charts-legend',\n  template: `\n    <div [style.width.px]=\"width\">\n      <header class=\"legend-title\" *ngIf=\"title?.length > 0\">\n        <span class=\"legend-title-text\">{{title}}</span>\n      </header>\n      <div class=\"legend-wrap\">\n        <ul class=\"legend-labels\"\n            [class.horizontal-legend]=\"horizontal\"\n          [style.max-height.px]=\"height - 45\">\n          <li\n            *ngFor=\"let entry of legendEntries; trackBy: trackBy\"\n            class=\"legend-label\">\n            <ngx-charts-legend-entry\n              [label]=\"entry.label\"\n              [formattedLabel]=\"entry.formattedLabel\"\n              [color]=\"entry.color\"\n              [isActive]=\"isActive(entry)\"\n              (select)=\"labelClick.emit($event)\"\n              (activate)=\"activate($event)\"\n              (deactivate)=\"deactivate($event)\">\n            </ngx-charts-legend-entry>\n          </li>\n        </ul>\n      </div>\n    </div>\n  `,\n  styles: [require('./legend.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LegendComponent implements OnChanges {\n\n  @Input() data;\n  @Input() title;\n  @Input() colors;\n  @Input() height;\n  @Input() width;\n  @Input() activeEntries;\n  @Input() horizontal = false;\n\n  @Output() labelClick: EventEmitter<any> = new EventEmitter();\n  @Output() labelActivate: EventEmitter<any> = new EventEmitter();\n  @Output() labelDeactivate: EventEmitter<any> = new EventEmitter();\n\n  legendEntries: any[] = [];\n\n  constructor(private cd: ChangeDetectorRef) { }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.cd.markForCheck();\n    this.legendEntries = this.getLegendEntries();\n  }\n\n  getLegendEntries(): any[] {\n    const items = [];\n\n    for(const label of this.data) {\n      const formattedLabel = formatLabel(label);\n\n      const idx = items.findIndex((i) => {\n        return i.label === formattedLabel;\n      });\n\n      if (idx === -1) {\n        items.push({\n          label,\n          formattedLabel,\n          color: this.colors.getColor(label)\n        });\n      }\n    }\n\n    return items;\n  }\n\n  isActive(entry): boolean {\n    if(!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.label === d.name;\n    });\n    return item !== undefined;\n  }\n\n  activate(item) {\n    this.labelActivate.emit(item);\n  }\n\n  deactivate(item) {\n    this.labelDeactivate.emit(item);\n  }\n\n  trackBy(index, item): string {\n    return item.label;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/legend/legend.component.ts","\n        var result = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/sass-loader/lib/loader.js!./scale-legend.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/common/legend/scale-legend.component.scss\n// module id = ./src/common/legend/scale-legend.component.scss\n// module chunks = 0","import {\n  Component, Input, OnChanges, ChangeDetectionStrategy, SimpleChanges, ViewEncapsulation\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n  selector: 'ngx-charts-scale-legend',\n  template: `\n    <div\n      class=\"scale-legend\"\n      [class.horizontal-legend]=\"horizontal\"\n      [style.height.px]=\"horizontal ? undefined : height\"\n      [style.width.px]=\"width\">\n      <div class=\"scale-legend-label\">\n        <span>{{ valueRange[1].toLocaleString() }}</span>\n      </div>\n      <div\n        class=\"scale-legend-wrap\"\n        [style.background]=\"gradient\">\n      </div>\n      <div class=\"scale-legend-label\">\n        <span>{{ valueRange[0].toLocaleString() }}</span>\n      </div>\n    </div>\n  `,\n  styles: [require('./scale-legend.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ScaleLegendComponent implements OnChanges {\n\n  @Input() valueRange;\n  @Input() colors;\n  @Input() height;\n  @Input() width;\n  @Input() horizontal = false;\n\n  gradient: any;\n\n  constructor(private sanitizer: DomSanitizer) { }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const gradientValues = this.gradientString(this.colors.range(), this.colors.domain());\n    const direction = (this.horizontal) ? 'right' : 'bottom';\n    this.gradient = this.sanitizer.bypassSecurityTrustStyle(`linear-gradient(to ${direction}, ${gradientValues})`);\n  }\n\n  /**\n   * Generates the string used in the gradient stylesheet properties\n   * @param  {array} colors array of colors\n   * @param  {array} splits array of splits on a scale of (0, 1)\n   * @return {string}\n   */\n  gradientString(colors, splits): string {\n    // add the 100%\n    splits.push(1);\n    const pairs = [];\n    colors.reverse().forEach((c, i) => {\n      pairs.push(`${c} ${Math.round(splits[i] * 100)}%`);\n    });\n\n    return pairs.join(', ');\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/legend/scale-legend.component.ts","/**\n * Generates a rounded rectanglar path\n *\n * @export\n * @param {*} x, y, w, h, r, tl, tr, bl, br\n * @returns {string}\n */\nexport function roundedRect(x, y, w, h, r, [tl, tr, bl, br]: boolean[]) {\n  let retval = '';\n\n  w = Math.floor(w);\n  h = Math.floor(h);\n\n  w = w === 0 ? 1 : w;\n  h = h === 0 ? 1 : h;\n\n  retval = `M${[x + r, y]}`;\n  retval += `h${w - 2 * r}`;\n\n  if (tr) {\n    retval += `a${[r, r]} 0 0 1 ${[r, r]}`;\n  } else {\n    retval += `h${r}v${r}`;\n  }\n\n  retval += `v${h - 2 * r}`;\n\n  if (br) {\n    retval += `a${[r, r]} 0 0 1 ${[-r, r]}`;\n  } else {\n    retval += `v${r}h${-r}`;\n  }\n\n  retval += `h${2 * r - w}`;\n\n  if (bl) {\n    retval += `a${[r, r]} 0 0 1 ${[-r, -r]}`;\n  } else {\n    retval += `h${-r}v${-r}`;\n  }\n\n  retval += `v${2 * r - h}`;\n\n  if (tl) {\n    retval += `a${[r, r]} 0 0 1 ${[r, -r]}`;\n  } else {\n    retval += `v${-r}h${r}`;\n  }\n\n  retval += `z`;\n\n  return retval;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/shape.helper.ts","import {\n  Component,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\n\n@Component({\n  selector: 'g[ngx-charts-svg-linear-gradient]',\n  template: `\n    <svg:linearGradient\n      [id]=\"name\"\n      [attr.x1]=\"x1\"\n      [attr.y1]=\"y1\"\n      [attr.x2]=\"x2\"\n      [attr.y2]=\"y2\">\n      <svg:stop *ngFor=\"let stop of stops\"\n        [attr.offset]=\"stop.offset + '%'\"\n        [style.stop-color]=\"stop.color\"\n        [style.stop-opacity]=\"stop.opacity\"\n      />\n    </svg:linearGradient>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SvgLinearGradientComponent implements OnChanges {\n\n  @Input() orientation = 'vertical';\n  @Input() name;\n  @Input() stops: any[];\n\n  x1: any;\n  x2: any;\n  y1: any;\n  y2: any;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.x1 = '0%';\n    this.x2 = '0%';\n    this.y1 = '0%';\n    this.y2 = '0%';\n\n    if (this.orientation === 'horizontal') {\n      this.x2 = '100%';\n    } else if (this.orientation === 'vertical') {\n      this.y1 = '100%';\n    }\n\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/svg-linear-gradient.component.ts","import {\n  Component, Input, OnChanges, ChangeDetectionStrategy, SimpleChanges\n} from '@angular/core';\n\n@Component({\n  selector: 'g[ngx-charts-svg-radial-gradient]',\n  template: `\n    <svg:radialGradient\n      [id]=\"name\"\n      [attr.cx]=\"cx\"\n      [attr.cy]=\"cy\"\n      [attr.r]=\"r\"\n      gradientUnits=\"userSpaceOnUse\">\n      <svg:stop *ngFor=\"let stop of stops\"\n        [attr.offset]=\"stop.offset + '%'\"\n        [style.stop-color]=\"stop.color\"\n        [style.stop-opacity]=\"stop.opacity\"\n      />\n    </svg:radialGradient>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SvgRadialGradientComponent implements OnChanges {\n\n  @Input() color: string;\n  @Input() name: string;\n  @Input() startOpacity: number;\n  @Input() endOpacity = 1;\n  @Input() cx: number = 0;\n  @Input() cy: number = 0;\n\n  @Input()\n  get stops(): any[] {\n    return this.stopsInput || this.stopsDefault;\n  }\n\n  set stops(value: any[]) {\n    this.stopsInput = value;\n  }\n\n  r: string;\n\n  private stopsInput: any[];\n  private stopsDefault: any[];\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.r = '30%';\n    if (\n      ('color' in changes) ||\n      ('startOpacity' in changes) ||\n      ('endOpacity' in changes)) {\n        this.stopsDefault = [{\n          offset: 0,\n          color: this.color,\n          opacity: this.startOpacity\n        }, {\n          offset: 100,\n          color: this.color,\n          opacity: this.endOpacity\n        }];\n    }\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/svg-radial-gradient.component.ts","import { timeFormat } from 'd3-time-format';\n\nexport function tickFormat(fieldType, groupByType): (label: string) => string {\n  return function(label: string): string {\n    if (label === 'No Value' || label === 'Other') {\n      return label;\n    }\n    if (fieldType === 'date' && groupByType === 'groupBy') {\n      const formatter = timeFormat('MM/DD/YYYY');\n      return formatter(<any>label);\n    }\n\n    return label.toString();\n  };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tick-format.helper.ts","export * from './timeline.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/timeline/index.ts","\n        var result = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/sass-loader/lib/loader.js!./timeline.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/common/timeline/timeline.component.scss\n// module id = ./src/common/timeline/timeline.component.scss\n// module chunks = 0","import {\n  Component, Input, Output, EventEmitter, ElementRef,\n  OnChanges, ChangeDetectionStrategy,\n  ChangeDetectorRef, SimpleChanges, ViewEncapsulation\n} from '@angular/core';\nimport { brushX } from 'd3-brush';\nimport { scaleLinear, scaleTime, scalePoint } from 'd3-scale';\nimport { select, event as d3event } from 'd3-selection';\n\nimport { id } from '../../utils';\n\n@Component({\n  selector: 'g[ngx-charts-timeline]',\n  template: `\n    <svg:g\n      class=\"timeline\"\n      [attr.transform]=\"transform\">\n      <svg:filter [attr.id]=\"filterId\">\n        <svg:feColorMatrix in=\"SourceGraphic\"\n            type=\"matrix\"\n            values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\" />\n      </svg:filter>\n      <svg:g class=\"embedded-chart\">\n        <ng-content></ng-content>\n      </svg:g>\n      <svg:rect x=\"0\"\n        [attr.width]=\"view[0]\"\n        y=\"0\"\n        [attr.height]=\"height\"\n        class=\"brush-background\"\n      />\n      <svg:g class=\"brush\"></svg:g>\n    </svg:g>\n  `,\n  styles: [require('./timeline.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class Timeline implements OnChanges {\n\n  @Input() view;\n  @Input() state;\n  @Input() results;\n  @Input() scheme;\n  @Input() customColors;\n  @Input() legend;\n  @Input() miniChart;\n  @Input() autoScale;\n  @Input() scaleType;\n  @Input() height: number = 50;\n\n  @Output() select = new EventEmitter();\n  @Output() onDomainChange = new EventEmitter();\n\n  element: HTMLElement;\n  dims: any;\n  xDomain: any[];\n  xScale: any;\n  brush: any;\n  transform: string;\n  initialized: boolean = false;\n  filterId: any;\n  filter: any;\n\n  constructor(\n    element: ElementRef,\n    private cd: ChangeDetectorRef) {\n      this.element = element.nativeElement;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n\n    if (!this.initialized) {\n      this.addBrush();\n      this.initialized = true;\n    }\n  }\n\n  update(): void {\n    this.dims = this.getDims();\n    this.height = this.dims.height;\n    const offsetY = this.view[1] - this.height;\n\n    this.xDomain = this.getXDomain();\n    this.xScale = this.getXScale();\n\n    if (this.brush) {\n      this.updateBrush();\n    }\n\n    this.transform = `translate(0 , ${ offsetY })`;\n\n    this.filterId = 'filter' + id().toString();\n    this.filter = `url(#${this.filterId})`;\n\n    this.cd.markForCheck();\n  }\n\n  getXDomain(): any[] {\n    let values = [];\n\n    for (const results of this.results) {\n      for (const d of results.series) {\n        if (!values.includes(d.name)) {\n          values.push(d.name);\n        }\n      }\n    }\n\n    let domain = [];\n    if (this.scaleType === 'time') {\n      const min = Math.min(...values);\n      const max = Math.max(...values);\n      domain = [min, max];\n    } else if (this.scaleType === 'linear') {\n      values = values.map(v => Number(v));\n      const min = Math.min(...values);\n      const max = Math.max(...values);\n      domain = [min, max];\n    } else {\n      domain = values;\n    }\n\n    return domain;\n  }\n\n  getXScale() {\n    let scale;\n\n    if (this.scaleType === 'time') {\n      scale = scaleTime()\n        .range([0, this.dims.width])\n        .domain(this.xDomain);\n    } else if (this.scaleType === 'linear') {\n      scale = scaleLinear()\n        .range([0, this.dims.width])\n        .domain(this.xDomain);\n    } else if (this.scaleType === 'ordinal') {\n      scale = scalePoint()\n        .range([0, this.dims.width])\n        .padding(0.1)\n        .domain(this.xDomain);\n    }\n\n    return scale;\n  }\n\n  addBrush(): void {\n    if (this.brush) return;\n\n    const height = this.height;\n    const width = this.view[0];\n\n    this.brush = brushX()\n      .extent([[0, 0], [width, height]])\n      .on('brush end', () => {\n        const selection = d3event.selection || this.xScale.range();\n        const newDomain = selection.map(this.xScale.invert);\n\n        this.onDomainChange.emit(newDomain);\n        this.cd.markForCheck();\n      });\n\n    select(this.element)\n      .select('.brush')\n      .call(this.brush);\n  }\n\n  updateBrush(): void {\n    if (!this.brush) return;\n\n    const height = this.height;\n    const width = this.view[0];\n\n    this.brush.extent([[0, 0], [width, height]]);\n    select(this.element)\n      .select('.brush')\n      .call(this.brush);\n\n    // clear hardcoded properties so they can be defined by CSS\n    select(this.element).select('.selection')\n      .attr('fill', undefined)\n      .attr('stroke', undefined)\n      .attr('fill-opacity', undefined);\n\n    this.cd.markForCheck();\n  }\n\n  getDims(): any {\n    const width = this.view[0];\n\n    const dims = {\n      width,\n      height: this.height\n    };\n\n    return dims;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/timeline/timeline.component.ts","import { Component, Input, Output, EventEmitter, ViewChild, ChangeDetectionStrategy, TemplateRef } from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { createMouseEvent } from '../events';\n\n@Component({\n  selector: 'g[ngx-charts-tooltip-area]',\n  template: `\n    <svg:g>\n      <svg:rect\n        class=\"tooltip-area\"\n        [attr.x]=\"0\"\n        y=\"0\"\n        [attr.width]=\"dims.width\"\n        [attr.height]=\"dims.height\"\n        style=\"opacity: 0; cursor: 'auto';\"\n        (mousemove)=\"mouseMove($event)\"\n        (mouseleave)=\"hideTooltip()\"\n      />\n      <xhtml:ng-template #defaultTooltipTemplate let-model=\"model\">\n        <xhtml:div class=\"area-tooltip-container\">\n          <xhtml:div *ngFor=\"let tooltipItem of model\" class=\"tooltip-item\">\n            <span class=\"tooltip-item-color\" [style.background-color]=\"tooltipItem.color\"> </span>\n            {{ getToolTipText(tooltipItem) }}\n          </xhtml:div>\n        </xhtml:div>\n      </xhtml:ng-template>\n      <svg:rect\n        #tooltipAnchor\n        [@animationState]=\"anchorOpacity !== 0 ? 'active' : 'inactive'\"\n        class=\"tooltip-anchor\"\n        [attr.x]=\"anchorPos\"\n        y=\"0\"\n        [attr.width]=\"1\"\n        [attr.height]=\"dims.height\"\n        [style.opacity]=\"anchorOpacity\"\n        [style.pointer-events]=\"'none'\"\n        ngx-tooltip\n        [tooltipDisabled]=\"tooltipDisabled\"\n        [tooltipPlacement]=\"'right'\"\n        [tooltipType]=\"'tooltip'\"\n        [tooltipSpacing]=\"15\"\n        [tooltipTemplate]=\"tooltipTemplate ? tooltipTemplate : defaultTooltipTemplate\"\n        [tooltipContext]=\"anchorValues\"\n        [tooltipImmediateExit]=\"true\"\n      />\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition('inactive => active', [\n        style({\n          opacity: 0\n        }),\n        animate(250, style({ opacity: 0.7 }))\n      ]),\n      transition('active => inactive', [\n        style({\n          opacity: 0.7\n        }),\n        animate(250, style({ opacity: 0 }))\n      ])\n    ])\n  ]\n})\nexport class TooltipArea {\n  anchorOpacity: number = 0;\n  anchorPos: number = -1;\n  anchorValues: any[] = [];\n  lastAnchorPos: number;\n\n  @Input() dims;\n  @Input() xSet;\n  @Input() xScale;\n  @Input() yScale;\n  @Input() results;\n  @Input() colors;\n  @Input() showPercentage: boolean = false;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipTemplate: TemplateRef<any>;\n\n  @Output() hover = new EventEmitter();\n\n  @ViewChild('tooltipAnchor', { static: false }) tooltipAnchor;\n\n  getValues(xVal): any[] {\n    const results = [];\n\n    for (const group of this.results) {\n      const item = group.series.find(d => d.name.toString() === xVal.toString());\n      let groupName = group.name;\n      if (groupName instanceof Date) {\n        groupName = groupName.toLocaleDateString();\n      }\n\n      if (item) {\n        const label = item.name;\n        let val = item.value;\n        if (this.showPercentage) {\n          val = (item.d1 - item.d0).toFixed(2) + '%';\n        }\n        let color;\n        if (this.colors.scaleType === 'linear') {\n          let v = val;\n          if (item.d1) {\n            v = item.d1;\n          }\n          color = this.colors.getColor(v);\n        } else {\n          color = this.colors.getColor(group.name);\n        }\n\n        const data = Object.assign({}, item, {\n          value: val,\n          name: label,\n          series: groupName,\n          min: item.min,\n          max: item.max,\n          color\n        });\n\n        results.push(data);\n      }\n    }\n\n    return results;\n  }\n\n  mouseMove(event) {\n    const xPos = event.pageX - event.target.getBoundingClientRect().left;\n\n    const closestIndex = this.findClosestPointIndex(xPos);\n    const closestPoint = this.xSet[closestIndex];\n    this.anchorPos = this.xScale(closestPoint);\n    this.anchorPos = Math.max(0, this.anchorPos);\n    this.anchorPos = Math.min(this.dims.width, this.anchorPos);\n\n    this.anchorValues = this.getValues(closestPoint);\n    if (this.anchorPos !== this.lastAnchorPos) {\n      const ev = createMouseEvent('mouseleave');\n      this.tooltipAnchor.nativeElement.dispatchEvent(ev);\n      this.anchorOpacity = 0.7;\n      this.hover.emit({\n        value: closestPoint\n      });\n      this.showTooltip();\n\n      this.lastAnchorPos = this.anchorPos;\n    }\n  }\n\n  findClosestPointIndex(xPos) {\n    let minIndex = 0;\n    let maxIndex = this.xSet.length - 1;\n    let minDiff = Number.MAX_VALUE;\n    let closestIndex = 0;\n\n    while (minIndex <= maxIndex) {\n      const currentIndex = ((minIndex + maxIndex) / 2) | 0;\n      const currentElement = this.xScale(this.xSet[currentIndex]);\n\n      const curDiff = Math.abs(currentElement - xPos);\n\n      if (curDiff < minDiff) {\n        minDiff = curDiff;\n        closestIndex = currentIndex;\n      }\n\n      if (currentElement < xPos) {\n        minIndex = currentIndex + 1;\n      } else if (currentElement > xPos) {\n        maxIndex = currentIndex - 1;\n      } else {\n        minDiff = 0;\n        closestIndex = currentIndex;\n        break;\n      }\n    }\n\n    return closestIndex;\n  }\n\n  showTooltip(): void {\n    const event = createMouseEvent('mouseenter');\n    this.tooltipAnchor.nativeElement.dispatchEvent(event);\n  }\n\n  hideTooltip(): void {\n    const event = createMouseEvent('mouseleave');\n    this.tooltipAnchor.nativeElement.dispatchEvent(event);\n    this.anchorOpacity = 0;\n    this.lastAnchorPos = -1;\n  }\n\n  getToolTipText(tooltipItem: any): string {\n    let result: string = '';\n    if (tooltipItem.series !== undefined) {\n      result += tooltipItem.series;\n    } else {\n      result += '???';\n    }\n    result += ': ';\n    if (tooltipItem.value !== undefined) {\n      result += tooltipItem.value.toLocaleString();\n    }\n    if (tooltipItem.min !== undefined || tooltipItem.max !== undefined) {\n      result += ' (';\n      if (tooltipItem.min !== undefined) {\n        if (tooltipItem.max === undefined) {\n          result += '≥';\n        }\n        result += tooltipItem.min.toLocaleString();\n        if (tooltipItem.max !== undefined) {\n          result += ' - ';\n        }\n      } else if (tooltipItem.max !== undefined) {\n        result += '≤';\n      }\n      if (tooltipItem.max !== undefined) {\n        result += tooltipItem.max.toLocaleString();\n      }\n      result += ')';\n    }\n    return result;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip-area.component.ts","export enum AlignmentTypes {\n  left = 'left' as any,\n  center = 'center' as any,\n  right = 'right' as any\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/alignment.type.ts","export * from './tooltip.module';\nexport * from './tooltip.service';\nexport * from './tooltip.component';\nexport * from './tooltip.directive';\n\nexport * from './style.type';\nexport * from './alignment.type';\nexport * from './show.type';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/index.ts","import { ComponentRef } from '@angular/core';\nimport { InjectionService } from './injection.service';\n\nexport abstract class InjectionRegistery {\n\n  protected abstract type: any;\n\n  protected defaults: any = {};\n  protected components: Map<any, any> = new Map();\n\n  constructor(public injectionService: InjectionService) { }\n\n  getByType(type: any = this.type) {\n    return this.components.get(type);\n  }\n\n  create(bindings: any): any {\n    return this.createByType(this.type, bindings);\n  }\n\n  createByType(type: any, bindings: any): any {\n    bindings = this.assignDefaults(bindings);\n\n    const component = this.injectComponent(type, bindings);\n    this.register(type, component);\n\n    return component;\n  }\n\n  destroy(instance): void {\n    const compsByType = this.components.get(instance.componentType);\n\n    if(compsByType) {\n      const idx = compsByType.indexOf(instance);\n\n      if(idx > -1) {\n        const component = compsByType[idx];\n        component.destroy();\n        compsByType.splice(idx, 1);\n      }\n    }\n  }\n\n  destroyAll(): void {\n    this.destroyByType(this.type);\n  }\n\n  destroyByType(type): void {\n    const comps = this.components.get(type);\n\n    if(comps) {\n      for(const comp of comps) {\n        this.destroy(comp);\n      }\n    }\n  }\n\n  protected assignDefaults(bindings): any {\n    const { inputs, outputs } = this.defaults;\n\n    if(!bindings.inputs && !bindings.outputs) {\n      bindings = { inputs: bindings };\n    }\n\n    if(inputs) {\n      bindings.inputs = Object.assign(inputs, bindings.inputs);\n    }\n\n    if(outputs) {\n      bindings.outputs = Object.assign(outputs, bindings.outputs);\n    }\n\n    return bindings;\n  }\n\n  protected injectComponent(type, bindings): ComponentRef<any> {\n    return this.injectionService.appendComponent(type, bindings);\n  }\n\n  protected register(type, component): void {\n    if(!this.components.has(type)) {\n      this.components.set(type, []);\n    }\n\n    const types = this.components.get(type);\n    types.push(component);\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/injection-registery.service.ts","import {\n  ApplicationRef,\n  ComponentFactoryResolver,\n  ComponentRef,\n  Injectable,\n  Injector,\n  EmbeddedViewRef,\n  Type,\n  Renderer2\n} from '@angular/core';\n\n/**\n * Injection service is a helper to append components\n * dynamically to a known location in the DOM, most\n * noteably for dialogs/tooltips appending to body.\n *\n * @export\n * @class InjectionService\n */\n@Injectable()\nexport class InjectionService {\n  static globalRootViewContainer: ComponentRef<any> = null;\n\n  /**\n   * Sets a default global root view container. This is useful for\n   * things like ngUpgrade that doesn't have a ApplicationRef root.\n   *\n   * @param container\n   */\n  static setGlobalRootViewContainer(container: ComponentRef<any>): void {\n    InjectionService.globalRootViewContainer = container;\n  }\n\n  private _container: ComponentRef<any>;\n\n  constructor(\n    private applicationRef: ApplicationRef,\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private injector: Injector\n  ) {}\n\n  /**\n   * Gets the root view container to inject the component to.\n   *\n   * @returns {ComponentRef<any>}\n   *\n   * @memberOf InjectionService\n   */\n  getRootViewContainer(): ComponentRef<any> {\n    const rootComponents = this.applicationRef.components;\n\n    // fix cannot read length of undefined\n    if (rootComponents) {\n      if (rootComponents.length) return rootComponents[0];\n    }\n\n    if (this._container) return this._container;\n    if (InjectionService.globalRootViewContainer) return InjectionService.globalRootViewContainer;\n\n    throw new Error('View Container not found! ngUpgrade needs to manually set this via setRootViewContainer.');\n  }\n\n  /**\n   * Overrides the default root view container. This is useful for\n   * things like ngUpgrade that doesn't have a ApplicationRef root.\n   *\n   * @param {any} container\n   *\n   * @memberOf InjectionService\n   */\n  setRootViewContainer(container): void {\n    this._container = container;\n  }\n\n  /**\n   * Gets the html element for a component ref.\n   *\n   * @param {ComponentRef<any>} componentRef\n   * @returns {HTMLElement}\n   *\n   * @memberOf InjectionService\n   */\n  getComponentRootNode(componentRef: any): HTMLElement {\n    // the top most component root node has no `hostView`\n    if (!componentRef.hostView) return componentRef.element.nativeElement;\n\n    return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n  }\n\n  /**\n   * Gets the root component container html element.\n   *\n   * @returns {HTMLElement}\n   *\n   * @memberOf InjectionService\n   */\n  getRootViewContainerNode(): HTMLElement {\n    return this.getComponentRootNode(this.getRootViewContainer());\n  }\n\n  /**\n   * Projects the bindings onto the component\n   *\n   * @param {ComponentRef<any>} component\n   * @param {*} options\n   * @returns {ComponentRef<any>}\n   *\n   * @memberOf InjectionService\n   */\n  projectComponentBindings(component: ComponentRef<any>, bindings: any): ComponentRef<any> {\n    if (bindings) {\n      if (bindings.inputs !== undefined) {\n        const bindingKeys = Object.getOwnPropertyNames(bindings.inputs);\n        for (const bindingName of bindingKeys) {\n          component.instance[bindingName] = bindings.inputs[bindingName];\n        }\n      }\n\n      if (bindings.outputs !== undefined) {\n        const eventKeys = Object.getOwnPropertyNames(bindings.outputs);\n        for (const eventName of eventKeys) {\n          component.instance[eventName] = bindings.outputs[eventName];\n        }\n      }\n    }\n\n    return component;\n  }\n\n  /**\n   * Appends a component to a adjacent location\n   *\n   * @template T\n   * @param {Type<T>} componentClass\n   * @param {*} [options={}]\n   * @param {Element} [location=this.getRootViewContainerNode()]\n   * @returns {ComponentRef<any>}\n   *\n   * @memberOf InjectionService\n   */\n  appendComponent<T>(\n    componentClass: Type<T>,\n    bindings: any = {},\n    location: Element = this.getRootViewContainerNode()\n  ): ComponentRef<any> {\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentClass);\n    const componentRef: any = componentFactory.create(this.injector);\n    const appRef: any = this.applicationRef;\n    const componentRootNode = this.getComponentRootNode(componentRef);\n\n    // project the options passed to the component instance\n    this.projectComponentBindings(componentRef, bindings);\n\n    appRef.attachView(componentRef.hostView);\n\n    componentRef.onDestroy(() => {\n      appRef.detachView(componentRef.hostView);\n    });\n\n    // use the renderer to append the element for univseral support\n    const renderer: Renderer2 = componentRef.instance.renderer;\n    renderer.appendChild(location, componentRootNode);\n\n    return componentRef;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/injection.service.ts","export * from './placement.type';\nexport * from './position';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/position/index.ts","export enum PlacementTypes {\n  top = 'top' as any,\n  bottom = 'bottom' as any,\n  left = 'left' as any,\n  right = 'right' as any\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/position/placement.type.ts","import { PlacementTypes } from './placement.type';\n\nconst caretOffset = 7;\n\nfunction verticalPosition(elDimensions, popoverDimensions, alignment) {\n  if (alignment === 'top') {\n    return elDimensions.top - caretOffset;\n  }\n\n  if (alignment === 'bottom') {\n    return elDimensions.top + elDimensions.height - popoverDimensions.height + caretOffset;\n  }\n\n  if (alignment === 'center') {\n    return elDimensions.top + elDimensions.height / 2 - popoverDimensions.height / 2;\n  }\n\n  return undefined;\n}\n\nfunction horizontalPosition(elDimensions, popoverDimensions, alignment) {\n  if (alignment === 'left') {\n    return elDimensions.left - caretOffset;\n  }\n\n  if (alignment === 'right') {\n    return elDimensions.left + elDimensions.width - popoverDimensions.width + caretOffset;\n  }\n\n  if (alignment === 'center') {\n    return elDimensions.left + elDimensions.width / 2 - popoverDimensions.width / 2;\n  }\n\n  return undefined;\n}\n\n/**\n * Position helper for the popover directive.\n * \n * @export\n * @class PositionHelper\n */\nexport class PositionHelper {\n\n  /**\n   * Calculate vertical alignment position\n   * \n   * @static\n   * @param {any} elDimensions\n   * @param {any} popoverDimensions\n   * @param {any} alignment\n   * @returns {number}\n   * \n   * @memberOf PositionHelper\n   */\n  static calculateVerticalAlignment(elDimensions, popoverDimensions, alignment): number {\n    let result = verticalPosition(elDimensions, popoverDimensions, alignment);\n\n    if (result + popoverDimensions.height > window.innerHeight) {\n      result = window.innerHeight - popoverDimensions.height;\n    }\n\n    return result;\n  }\n\n  /**\n   * Calculate vertical caret position\n   * \n   * @static\n   * @param {any} elDimensions\n   * @param {any} popoverDimensions\n   * @param {any} caretDimensions\n   * @param {any} alignment\n   * @returns {number}\n   * \n   * @memberOf PositionHelper\n   */\n  static calculateVerticalCaret(elDimensions, popoverDimensions, caretDimensions, alignment): number {\n    let result;\n\n    if (alignment === 'top') {\n      result = elDimensions.height / 2 - caretDimensions.height / 2 + caretOffset;\n    }\n\n    if (alignment === 'bottom') {\n      result = popoverDimensions.height - elDimensions.height / 2 - caretDimensions.height / 2 - caretOffset;\n    }\n\n    if (alignment === 'center') {\n      result = popoverDimensions.height / 2 - caretDimensions.height / 2;\n    }\n\n    const popoverPosition = verticalPosition(elDimensions, popoverDimensions, alignment);\n    if (popoverPosition + popoverDimensions.height > window.innerHeight) {\n      result += (popoverPosition + popoverDimensions.height - window.innerHeight);\n    }\n\n    return result;\n  }\n\n  /**\n   * Calculate horz alignment position\n   * \n   * @static\n   * @param {any} elDimensions\n   * @param {any} popoverDimensions\n   * @param {any} alignment\n   * @returns {number}\n   * \n   * @memberOf PositionHelper\n   */\n  static calculateHorizontalAlignment(elDimensions, popoverDimensions, alignment): number {\n    let result = horizontalPosition(elDimensions, popoverDimensions, alignment);\n\n    if (result + popoverDimensions.width > window.innerWidth) {\n      result = window.innerWidth - popoverDimensions.width;\n    }\n\n    return result;\n  }\n\n  /**\n   * Calculate horz caret position\n   * \n   * @static\n   * @param {any} elDimensions\n   * @param {any} popoverDimensions\n   * @param {any} caretDimensions\n   * @param {any} alignment\n   * @returns {number}\n   * \n   * @memberOf PositionHelper\n   */\n  static calculateHorizontalCaret(elDimensions, popoverDimensions, caretDimensions, alignment): number {\n    let result;\n\n    if (alignment === 'left') {\n      result = elDimensions.width / 2 - caretDimensions.width / 2 + caretOffset;\n    }\n\n    if (alignment === 'right') {\n      result = popoverDimensions.width - elDimensions.width / 2 - caretDimensions.width / 2 - caretOffset;\n    }\n\n    if (alignment === 'center') {\n      result = popoverDimensions.width / 2 - caretDimensions.width / 2;\n    }\n\n    const popoverPosition = horizontalPosition(elDimensions, popoverDimensions, alignment);\n    if (popoverPosition + popoverDimensions.width > window.innerWidth) {\n      result += (popoverPosition + popoverDimensions.width - window.innerWidth);\n    }\n\n    return result;\n  }\n\n  /**\n   * Checks if the element's position should be flipped\n   * \n   * @static\n   * @param {any} elDimensions\n   * @param {any} popoverDimensions\n   * @param {any} placement\n   * @param {any} spacing\n   * @returns {boolean}\n   * \n   * @memberOf PositionHelper\n   */\n  static shouldFlip(elDimensions, popoverDimensions, placement, spacing): boolean {\n    let flip = false;\n\n    if (placement === 'right') {\n      if (elDimensions.left + elDimensions.width + popoverDimensions.width + spacing > window.innerWidth) {\n        flip = true;\n      }\n    }\n\n    if (placement === 'left') {\n      if (elDimensions.left - popoverDimensions.width - spacing < 0) {\n        flip = true;\n      }\n    }\n\n    if (placement === 'top') {\n      if (elDimensions.top - popoverDimensions.height - spacing < 0) {\n        flip = true;\n      }\n    }\n\n    if (placement === 'bottom') {\n      if (elDimensions.top + elDimensions.height + popoverDimensions.height + spacing > window.innerHeight) {\n        flip = true;\n      }\n    }\n\n    return flip;\n  }\n\n  /**\n   * Position caret\n   * \n   * @static\n   * @param {any} placement\n   * @param {any} elmDim\n   * @param {any} hostDim\n   * @param {any} caretDimensions\n   * @param {any} alignment\n   * @returns {*}\n   * \n   * @memberOf PositionHelper\n   */\n  static positionCaret(placement, elmDim, hostDim, caretDimensions, alignment): any {\n    let top = 0;\n    let left = 0;\n\n    if (placement === PlacementTypes.right) {\n      left = -7;\n      top = PositionHelper.calculateVerticalCaret(\n        hostDim, elmDim, caretDimensions, alignment);\n    } else if (placement === PlacementTypes.left) {\n      left = elmDim.width;\n      top = PositionHelper.calculateVerticalCaret(\n        hostDim, elmDim, caretDimensions, alignment);\n    } else if (placement === PlacementTypes.top) {\n      top = elmDim.height;\n      left = PositionHelper.calculateHorizontalCaret(\n        hostDim, elmDim, caretDimensions, alignment);\n    } else if (placement === PlacementTypes.bottom) {\n      top = -7;\n      left = PositionHelper.calculateHorizontalCaret(\n        hostDim, elmDim, caretDimensions, alignment);\n    }\n    \n    return { top, left };\n  }\n\n  /**\n   * Position content\n   * \n   * @static\n   * @param {any} placement\n   * @param {any} elmDim\n   * @param {any} hostDim\n   * @param {any} spacing\n   * @param {any} alignment\n   * @returns {*}\n   * \n   * @memberOf PositionHelper\n   */\n  static positionContent(placement, elmDim, hostDim, spacing, alignment): any {\n    let top = 0;\n    let left = 0;\n\n    if (placement === PlacementTypes.right) {\n      left = hostDim.left + hostDim.width + spacing;\n      top = PositionHelper.calculateVerticalAlignment(\n        hostDim, elmDim, alignment);\n    } else if (placement === PlacementTypes.left) {\n      left = hostDim.left - elmDim.width - spacing;\n      top = PositionHelper.calculateVerticalAlignment(\n        hostDim, elmDim, alignment);\n    } else if (placement === PlacementTypes.top) {\n      top = hostDim.top - elmDim.height - spacing;\n      left = PositionHelper.calculateHorizontalAlignment(\n        hostDim, elmDim, alignment);\n    } else if (placement === PlacementTypes.bottom) {\n      top = hostDim.top + hostDim.height + spacing;\n      left = PositionHelper.calculateHorizontalAlignment(\n        hostDim, elmDim, alignment);\n    }\n\n    return { top, left };\n  }\n\n  /**\n   * Determine placement based on flip\n   * \n   * @static\n   * @param {any} placement\n   * @param {any} elmDim\n   * @param {any} hostDim\n   * @param {any} spacing\n   * @returns {*}\n   * \n   * @memberOf PositionHelper\n   */\n  static determinePlacement(placement, elmDim, hostDim, spacing): any {\n    const shouldFlip = PositionHelper.shouldFlip(\n      hostDim,\n      elmDim,\n      placement,\n      spacing);\n\n    if(shouldFlip) {\n      if (placement === PlacementTypes.right) {\n        return PlacementTypes.left;\n      } else if (placement === PlacementTypes.left) {\n        return PlacementTypes.right;\n      } else if (placement === PlacementTypes.top) {\n        return PlacementTypes.bottom;\n      } else if (placement === PlacementTypes.bottom) {\n        return PlacementTypes.top;\n      }\n    }\n\n    return placement;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/position/position.ts","export enum ShowTypes {\n  all = 'all' as any,\n  focus = 'focus' as any,\n  mouseover = 'mouseover' as any\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/show.type.ts","export enum StyleTypes {\n  popover = 'popover' as any,\n  tooltip = 'tooltip' as any\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/style.type.ts","\n        var result = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/sass-loader/lib/loader.js!./tooltip.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/common/tooltip/tooltip.component.scss\n// module id = ./src/common/tooltip/tooltip.component.scss\n// module chunks = 0","import {\n  Input,\n  Component,\n  ElementRef,\n  AfterViewInit,\n  ViewEncapsulation,\n  HostListener,\n  ViewChild,\n  HostBinding,\n  Renderer2\n} from '@angular/core';\n\nimport { throttleable } from '../../utils/throttle';\nimport { PositionHelper, PlacementTypes } from './position';\n\nimport { StyleTypes } from './style.type';\nimport { AlignmentTypes } from './alignment.type';\n\n@Component({\n  selector: 'ngx-tooltip-content',\n  template: `\n    <div>\n      <span #caretElm [hidden]=\"!showCaret\" class=\"tooltip-caret position-{{ this.placement }}\"> </span>\n      <div class=\"tooltip-content\">\n        <span *ngIf=\"!title\">\n          <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ model: context }\"> </ng-template>\n        </span>\n        <span *ngIf=\"title\" [innerHTML]=\"title\"> </span>\n      </div>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  styles: [require('./tooltip.component.scss')]\n})\nexport class TooltipContentComponent implements AfterViewInit {\n  @Input() host: any;\n  @Input() showCaret: boolean;\n  @Input() type: StyleTypes;\n  @Input() placement: PlacementTypes;\n  @Input() alignment: AlignmentTypes;\n  @Input() spacing: number;\n  @Input() cssClass: string;\n  @Input() title: string;\n  @Input() template: any;\n  @Input() context: any;\n\n  @ViewChild('caretElm', { static: false }) caretElm;\n\n  @HostBinding('class')\n  get cssClasses(): string {\n    let clz = 'ngx-charts-tooltip-content';\n    clz += ` position-${this.placement}`;\n    clz += ` type-${this.type}`;\n    clz += ` ${this.cssClass}`;\n    return clz;\n  }\n\n  constructor(public element: ElementRef, private renderer: Renderer2) {}\n\n  ngAfterViewInit(): void {\n    setTimeout(this.position.bind(this));\n  }\n\n  position(): void {\n    const nativeElm = this.element.nativeElement;\n    const hostDim = this.host.nativeElement.getBoundingClientRect();\n\n    // if no dims were found, never show\n    if (!hostDim.height && !hostDim.width) return;\n\n    const elmDim = nativeElm.getBoundingClientRect();\n    this.checkFlip(hostDim, elmDim);\n    this.positionContent(nativeElm, hostDim, elmDim);\n\n    if (this.showCaret) {\n      this.positionCaret(hostDim, elmDim);\n    }\n\n    // animate its entry\n    setTimeout(() => this.renderer.addClass(nativeElm, 'animate'), 1);\n  }\n\n  positionContent(nativeElm, hostDim, elmDim): void {\n    const { top, left } = PositionHelper.positionContent(this.placement, elmDim, hostDim, this.spacing, this.alignment);\n\n    this.renderer.setStyle(nativeElm, 'top', `${top}px`);\n    this.renderer.setStyle(nativeElm, 'left', `${left}px`);\n  }\n\n  positionCaret(hostDim, elmDim): void {\n    const caretElm = this.caretElm.nativeElement;\n    const caretDimensions = caretElm.getBoundingClientRect();\n    const { top, left } = PositionHelper.positionCaret(\n      this.placement,\n      elmDim,\n      hostDim,\n      caretDimensions,\n      this.alignment\n    );\n\n    this.renderer.setStyle(caretElm, 'top', `${top}px`);\n    this.renderer.setStyle(caretElm, 'left', `${left}px`);\n  }\n\n  checkFlip(hostDim, elmDim): void {\n    this.placement = PositionHelper.determinePlacement(this.placement, elmDim, hostDim, this.spacing);\n  }\n\n  @HostListener('window:resize')\n  @throttleable(100)\n  onWindowResize(): void {\n    this.position();\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/tooltip.component.ts","import {\n  Directive, Input, Output, EventEmitter, HostListener,\n  ViewContainerRef,\n  Renderer2, OnDestroy\n} from '@angular/core';\n\nimport { PlacementTypes } from './position';\nimport { StyleTypes } from './style.type';\nimport { AlignmentTypes } from './alignment.type';\nimport { ShowTypes } from './show.type';\n\nimport { TooltipService } from './tooltip.service';\n\n@Directive({ selector: '[ngx-tooltip]' })\nexport class TooltipDirective implements OnDestroy {\n\n  @Input() tooltipCssClass: string = '';\n  @Input() tooltipTitle: string = '';\n  @Input() tooltipAppendToBody: boolean = true;\n  @Input() tooltipSpacing: number = 10;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipShowCaret: boolean = true;\n  @Input() tooltipPlacement: PlacementTypes = PlacementTypes.top;\n  @Input() tooltipAlignment: AlignmentTypes = AlignmentTypes.center;\n  @Input() tooltipType: StyleTypes = StyleTypes.popover;\n  @Input() tooltipCloseOnClickOutside: boolean = true;\n  @Input() tooltipCloseOnMouseLeave: boolean = true;\n  @Input() tooltipHideTimeout: number = 300;\n  @Input() tooltipShowTimeout: number = 100;\n  @Input() tooltipTemplate: any;\n  @Input() tooltipShowEvent: ShowTypes = ShowTypes.all;\n  @Input() tooltipContext: any;\n  @Input() tooltipImmediateExit: boolean = false;\n\n  @Output() show = new EventEmitter();\n  @Output() hide = new EventEmitter();\n\n  private get listensForFocus(): boolean {\n    return this.tooltipShowEvent === ShowTypes.all ||\n           this.tooltipShowEvent === ShowTypes.focus;\n  }\n\n  private get listensForHover(): boolean {\n    return this.tooltipShowEvent === ShowTypes.all ||\n           this.tooltipShowEvent === ShowTypes.mouseover;\n  }\n\n  private component: any;\n  private timeout: any;\n  private mouseLeaveContentEvent: any;\n  private mouseEnterContentEvent: any;\n  private documentClickEvent: any;\n\n  constructor(\n    private tooltipService: TooltipService,\n    private viewContainerRef: ViewContainerRef,\n    private renderer: Renderer2) {\n  }\n\n  ngOnDestroy(): void {\n    this.hideTooltip(true);\n  }\n\n  @HostListener('focusin')\n  onFocus(): void {\n    if(this.listensForFocus) {\n       this.showTooltip();\n     }\n  }\n\n  @HostListener('blur')\n  onBlur(): void {\n    if(this.listensForFocus) {\n      this.hideTooltip(true);\n    }\n  }\n\n  @HostListener('mouseenter')\n  onMouseEnter(): void {\n    if(this.listensForHover) {\n       this.showTooltip();\n     }\n  }\n\n  @HostListener('mouseleave', ['$event.target'])\n  onMouseLeave(target): void {\n    if(this.listensForHover && this.tooltipCloseOnMouseLeave) {\n      clearTimeout(this.timeout);\n\n      if (this.component) {\n        const contentDom = this.component.instance.element.nativeElement;\n        const contains = contentDom.contains(target);\n        if(contains) return;\n      }\n\n      this.hideTooltip(this.tooltipImmediateExit);\n    }\n  }\n\n  @HostListener('click')\n  onMouseClick() {\n    if(this.listensForHover) {\n      this.hideTooltip(true);\n    }\n  }\n\n  showTooltip(immediate?: boolean): void {\n    if (this.component || this.tooltipDisabled) return;\n\n    const time = immediate ? 0 : this.tooltipShowTimeout;\n\n    clearTimeout(this.timeout);\n    this.timeout = setTimeout(() => {\n      this.tooltipService.destroyAll();\n\n      const options = this.createBoundOptions();\n      this.component = this.tooltipService.create(options);\n\n      // add a tiny timeout to avoid event re-triggers\n      setTimeout(() => {\n        if (this.component) {\n          this.addHideListeners(this.component.instance.element.nativeElement);\n        }\n      }, 10);\n\n      this.show.emit(true);\n    }, time);\n  }\n\n  addHideListeners(tooltip): void {\n    // on mouse enter, cancel the hide triggered by the leave\n    this.mouseEnterContentEvent = this.renderer.listen(tooltip, 'mouseenter', () => {\n      clearTimeout(this.timeout);\n    });\n\n    // content mouse leave listener\n    if(this.tooltipCloseOnMouseLeave) {\n      this.mouseLeaveContentEvent = this.renderer.listen(tooltip, 'mouseleave', () => {\n        this.hideTooltip(this.tooltipImmediateExit);\n      });\n    }\n\n    // content close on click outside\n    if(this.tooltipCloseOnClickOutside) {\n      this.documentClickEvent = this.renderer.listen(document, 'click', (event) => {\n        const contains = tooltip.contains(event.target);\n        if(!contains) this.hideTooltip();\n      });\n    }\n  }\n\n  hideTooltip(immediate: boolean = false): void {\n    if(!this.component) return;\n\n    const destroyFn = () => {\n      // remove events\n      if(this.mouseLeaveContentEvent) this.mouseLeaveContentEvent();\n      if(this.mouseEnterContentEvent) this.mouseEnterContentEvent();\n      if(this.documentClickEvent) this.documentClickEvent();\n\n      // emit events\n      this.hide.emit(true);\n\n      // destroy component\n      this.tooltipService.destroy(this.component);\n      this.component = undefined;\n    };\n\n    clearTimeout(this.timeout);\n    if(!immediate) {\n      this.timeout = setTimeout(destroyFn, this.tooltipHideTimeout);\n    } else {\n      destroyFn();\n    }\n  }\n\n  private createBoundOptions(): any {\n    return {\n      title: this.tooltipTitle,\n      template: this.tooltipTemplate,\n      host: this.viewContainerRef.element,\n      placement: this.tooltipPlacement,\n      alignment: this.tooltipAlignment,\n      type: this.tooltipType,\n      showCaret: this.tooltipShowCaret,\n      cssClass: this.tooltipCssClass,\n      spacing: this.tooltipSpacing,\n      context: this.tooltipContext\n    };\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/tooltip.directive.ts","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TooltipDirective } from './tooltip.directive';\nimport { TooltipContentComponent } from './tooltip.component';\nimport { TooltipService } from './tooltip.service';\n\nimport { InjectionService } from './injection.service';\n\n@NgModule({\n  declarations: [TooltipContentComponent, TooltipDirective],\n  providers: [InjectionService, TooltipService],\n  exports: [TooltipContentComponent, TooltipDirective],\n  imports: [CommonModule],\n  entryComponents: [TooltipContentComponent]\n})\nexport class TooltipModule { }\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/tooltip.module.ts","import { Injectable } from '@angular/core';\nimport { InjectionService } from './injection.service';\nimport { InjectionRegistery } from './injection-registery.service';\nimport { TooltipContentComponent } from './tooltip.component';\n\n@Injectable()\nexport class TooltipService extends InjectionRegistery {\n\n  type: any = TooltipContentComponent;\n\n  constructor(public injectionService: InjectionService) {\n    super(injectionService);\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/tooltip/tooltip.service.ts","export function trimLabel(s, max = 16): string {\n  if(typeof s !== 'string') {\n    if(typeof s === 'number') {\n      return s + '';\n    } else {\n      return '';\n    }\n  }\n  \n  s = s.trim();\n  if(s.length <= max) {\n    return s;\n  } else {\n    return `${s.slice(0, max)}...`;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/trim-label.helper.ts","export interface ViewDimensions {\n  width: number;\n  height: number;\n  xOffset: number;\n}\n\nexport function calculateViewDimensions({\n  width, height, margins, showXAxis = false, showYAxis = false, xAxisHeight = 0,\n  yAxisWidth = 0, showXLabel = false, showYLabel = false, showLegend = false,\n  legendType = 'ordinal', legendPosition = 'right', columns = 12\n}): ViewDimensions {\n  let xOffset = margins[3];\n  let chartWidth = width;\n  let chartHeight = height - margins[0] - margins[2];\n\n  if (showLegend && legendPosition === 'right') {\n    if (legendType === 'ordinal') {\n      columns -= 2;\n    } else {\n      columns -= 1;\n    }\n  }\n\n  chartWidth = chartWidth * columns / 12;\n\n  chartWidth = chartWidth - margins[1] - margins[3];\n\n  if (showXAxis) {\n    chartHeight -= 5;\n    chartHeight -= xAxisHeight;\n\n    if (showXLabel) {\n      // text height + spacing between axis label and tick labels\n      const offset = 25 + 5;\n      chartHeight -= offset;\n    }\n  }\n\n  if (showYAxis) {\n    chartWidth -= 5;\n    chartWidth -= yAxisWidth;\n    xOffset += yAxisWidth;\n    xOffset += 10;\n\n    if (showYLabel) {\n      // text height + spacing between axis label and tick labels\n      const offset = 25 + 5;\n      chartWidth -= offset;\n      xOffset += offset;\n    }\n  }\n\n  chartWidth = Math.max(0, chartWidth);\n  chartHeight = Math.max(0, chartHeight);\n\n  return {\n    width: Math.floor(chartWidth),\n    height: Math.floor(chartHeight),\n    xOffset: Math.floor(xOffset)\n  };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/common/view-dimensions.helper.ts","declare let global: any;\n\n// If we don't check whether 'window' and 'global' variables are defined,\n// code will fail in browser/node with 'variable is undefined' error.\nlet root: any;\nif (typeof window !== 'undefined') {\n  root = window;\n} else if (typeof global !== 'undefined') {\n  root = global;\n}\n\n// tslint:disable-next-line:variable-name\nexport const MouseEvent = root.MouseEvent as MouseEvent & {\n  prototype?: MouseEvent;\n  new (typeArg: string, eventInitDict?: MouseEventInit): MouseEvent;\n};\n\nexport function createMouseEvent(name: string, bubbles: boolean = false, cancelable: boolean = true): MouseEvent {\n  // Calling new of an event does not work correctly on IE. The following is a tested workaround\n  // See https://stackoverflow.com/questions/27176983/dispatchevent-not-working-in-ie11\n  if (typeof(MouseEvent) === 'function') {\n    // Sane browsers\n    return new MouseEvent(name, {bubbles, cancelable});\n  } else {\n    // IE\n    const event = document.createEvent('MouseEvent');\n    event.initEvent(name, bubbles, cancelable);\n    return event;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/events.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./force-directed-graph.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/force-directed-graph/force-directed-graph.component.scss\n// module id = ./src/force-directed-graph/force-directed-graph.component.scss\n// module chunks = 0","import {\n  Component,\n  ContentChild,\n  ElementRef,\n  HostListener,\n  Input,\n  TemplateRef,\n  ViewChild,\n  Output,\n  ViewEncapsulation,\n  EventEmitter,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { forceCollide, forceLink, forceManyBody, forceSimulation, forceX, forceY } from 'd3-force';\n\nimport { ChartComponent } from '../common/charts/chart.component';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\n/* tslint:disable */\nimport { MouseEvent } from '../events';\n\n@Component({\n  selector: 'ngx-charts-force-directed-graph',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event)\"\n      (legendLabelDeactivate)=\"onDeactivate($event)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"force-directed-graph chart\">\n        <svg:g class=\"links\">\n          <svg:g *ngFor=\"let link of links; trackBy: trackLinkBy\">\n            <ng-template\n              *ngIf=\"linkTemplate\"\n              [ngTemplateOutlet]=\"linkTemplate\"\n              [ngTemplateOutletContext]=\"{ $implicit: link }\"\n            ></ng-template>\n            <svg:line\n              *ngIf=\"!linkTemplate\"\n              strokeWidth=\"1\"\n              class=\"edge\"\n              [attr.x1]=\"link.source.x\"\n              [attr.y1]=\"link.source.y\"\n              [attr.x2]=\"link.target.x\"\n              [attr.y2]=\"link.target.y\"\n            />\n          </svg:g>\n        </svg:g>\n        <svg:g class=\"nodes\">\n          <svg:g\n            *ngFor=\"let node of nodes; trackBy: trackNodeBy\"\n            [attr.transform]=\"'translate(' + node.x + ',' + node.y + ')'\"\n            [attr.fill]=\"colors.getColor(groupResultsBy(node))\"\n            [attr.stroke]=\"colors.getColor(groupResultsBy(node))\"\n            (mousedown)=\"onDragStart(node, $event)\"\n            (click)=\"onClick({ name: node.value })\"\n            ngx-tooltip\n            [tooltipDisabled]=\"tooltipDisabled\"\n            [tooltipPlacement]=\"'top'\"\n            [tooltipType]=\"'tooltip'\"\n            [tooltipTitle]=\"tooltipTemplate ? undefined : node.value\"\n            [tooltipTemplate]=\"tooltipTemplate\"\n            [tooltipContext]=\"node\"\n          >\n            <ng-template\n              *ngIf=\"nodeTemplate\"\n              [ngTemplateOutlet]=\"nodeTemplate\"\n              [ngTemplateOutletContext]=\"{ $implicit: node }\"\n            ></ng-template>\n            <svg:circle *ngIf=\"!nodeTemplate\" r=\"5\" />\n          </svg:g>\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss'), require('./force-directed-graph.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ForceDirectedGraphComponent extends BaseChartComponent {\n  @Input()\n  force: any = forceSimulation<any>()\n    .force('charge', forceManyBody())\n    .force('collide', forceCollide(5))\n    .force('x', forceX())\n    .force('y', forceY());\n\n  @Input() forceLink: any = forceLink<any, any>().id(node => node.value);\n  @Input() legend: boolean;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() nodes: any[] = [];\n  @Input() links: Array<{ source: any; target: any }> = [];\n  @Input() activeEntries: any[] = [];\n  @Input() tooltipDisabled: boolean = false;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('linkTemplate', { static: false }) linkTemplate: TemplateRef<any>;\n  @ContentChild('nodeTemplate', { static: false }) nodeTemplate: TemplateRef<any>;\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n  @ViewChild(ChartComponent, { read: ElementRef, static: false })\n  chart: ElementRef;\n\n  colors: ColorHelper;\n  dims: ViewDimensions;\n  draggingNode: any;\n  draggingStart: { x: number; y: number };\n  margin = [0, 0, 0, 0];\n  results = [];\n  seriesDomain: any;\n  transform: string;\n  legendOptions: any;\n\n  @Input() groupResultsBy: (node: any) => string = node => node.value;\n\n  update(): void {\n    super.update();\n\n    // center graph\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showLegend: this.legend,\n      legendPosition: this.legendPosition\n    });\n\n    this.seriesDomain = this.getSeriesDomain();\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `\n      translate(${this.dims.xOffset + this.dims.width / 2}, ${this.margin[0] + this.dims.height / 2})\n    `;\n    if (this.force) {\n      this.force\n        .nodes(this.nodes)\n        .force('link', this.forceLink.links(this.links))\n        .alpha(0.5)\n        .restart();\n    }\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  onActivate(event): void {\n    if (this.activeEntries.indexOf(event) > -1) return;\n    this.activeEntries = [event, ...this.activeEntries];\n    this.activate.emit({ value: event, entries: this.activeEntries });\n  }\n\n  onDeactivate(event): void {\n    const idx = this.activeEntries.indexOf(event);\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: event, entries: this.activeEntries });\n  }\n\n  getSeriesDomain(): any[] {\n    return this.nodes\n      .map(d => this.groupResultsBy(d))\n      .reduce((nodes: any[], node): any[] => (nodes.includes(node) ? nodes : nodes.concat([node])), [])\n      .sort();\n  }\n\n  trackLinkBy(index, link): any {\n    return link.index;\n  }\n\n  trackNodeBy(index, node): any {\n    return node.value;\n  }\n\n  setColors(): void {\n    this.colors = new ColorHelper(this.scheme, 'ordinal', this.seriesDomain, this.customColors);\n  }\n\n  getLegendOptions() {\n    return {\n      scaleType: 'ordinal',\n      domain: this.seriesDomain,\n      colors: this.colors,\n      title: this.legendTitle,\n      position: this.legendPosition\n    };\n  }\n\n  // Easier to use Angular2 event management than use d3.drag\n  onDragStart(node, $event: MouseEvent): void {\n    this.force.alphaTarget(0.3).restart();\n    this.draggingNode = node;\n    this.draggingStart = { x: $event.x - node.x, y: $event.y - node.y };\n    this.draggingNode.fx = $event.x - this.draggingStart.x;\n    this.draggingNode.fy = $event.y - this.draggingStart.y;\n  }\n\n  @HostListener('document:mousemove', ['$event'])\n  onDrag($event: MouseEvent): void {\n    if (!this.draggingNode) return;\n\n    this.draggingNode.fx = $event.x - this.draggingStart.x;\n    this.draggingNode.fy = $event.y - this.draggingStart.y;\n  }\n\n  @HostListener('document:mouseup', ['$event'])\n  onDragEnd($event: MouseEvent): void {\n    if (!this.draggingNode) return;\n\n    this.force.alphaTarget(0);\n    this.draggingNode.fx = undefined;\n    this.draggingNode.fy = undefined;\n    this.draggingNode = undefined;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/force-directed-graph/force-directed-graph.component.ts","import { NgModule } from '@angular/core';\nimport { ForceDirectedGraphComponent } from './force-directed-graph.component';\nimport { ChartCommonModule } from '../common/chart-common.module';\n\n@NgModule({\n  imports: [ChartCommonModule],\n  declarations: [\n    ForceDirectedGraphComponent,\n  ],\n  exports: [\n    ForceDirectedGraphComponent,\n  ]\n})\nexport class ForceDirectedGraphModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/force-directed-graph/force-directed-graph.module.ts","export * from './force-directed-graph.module';\nexport * from './force-directed-graph.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/force-directed-graph/index.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  TemplateRef\n} from '@angular/core';\nimport { formatLabel } from '../common/label.helper';\nimport { ColorHelper } from '../common/color.helper';\n\n@Component({\n  selector: 'g[ngx-charts-gauge-arc]',\n  template: `\n    <svg:g ngx-charts-pie-arc\n      class=\"background-arc\"\n      [startAngle]=\"0\"\n      [endAngle]=\"backgroundArc.endAngle\"\n      [innerRadius]=\"backgroundArc.innerRadius\"\n      [outerRadius]=\"backgroundArc.outerRadius\"\n      [cornerRadius]=\"cornerRadius\"\n      [data]=\"backgroundArc.data\"\n      [animate]=\"false\"\n      [pointerEvents]=\"false\">\n    </svg:g>\n    <svg:g ngx-charts-pie-arc\n      [startAngle]=\"0\"\n      [endAngle]=\"valueArc.endAngle\"\n      [innerRadius]=\"valueArc.innerRadius\"\n      [outerRadius]=\"valueArc.outerRadius\"\n      [cornerRadius]=\"cornerRadius\"\n      [fill]=\"colors.getColor(valueArc.data.name)\"\n      [data]=\"valueArc.data\"\n      [animate]=\"animations\"\n      [isActive]=\"isActive\"\n      (select)=\"select.emit($event)\"\n      (activate)=\"activate.emit($event)\"\n      (deactivate)=\"deactivate.emit($event)\"\n      ngx-tooltip\n      [tooltipDisabled]=\"tooltipDisabled\"\n      [tooltipPlacement]=\"'top'\"\n      [tooltipType]=\"'tooltip'\"\n      [tooltipTitle]=\"tooltipTemplate ? undefined : tooltipText(valueArc)\"\n      [tooltipTemplate]=\"tooltipTemplate\"\n      [tooltipContext]=\"valueArc.data\">\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GaugeArcComponent {\n\n  @Input() backgroundArc: any;\n  @Input() valueArc: any;\n  @Input() cornerRadius: any;\n  @Input() colors: ColorHelper;\n  @Input() isActive: boolean = false;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() valueFormatting: (value: any) => string;\n  @Input() tooltipTemplate: TemplateRef<any>;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n\n  tooltipText(arc): string {\n    const label = formatLabel(arc.data.name);\n    let val;\n\n    if(this.valueFormatting) {\n      val = this.valueFormatting(arc.data.value);\n    } else {\n      val = formatLabel(arc.data.value);\n    }\n\n    return `\n      <span class=\"tooltip-label\">${label}</span>\n      <span class=\"tooltip-val\">${val}</span>\n    `;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/gauge/gauge-arc.component.ts","import {\n  Component,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { line } from 'd3-shape';\n\n@Component({\n  selector: 'g[ngx-charts-gauge-axis]',\n  template: `\n    <svg:g [attr.transform]=\"rotate\">\n        <svg:g *ngFor=\"let tick of ticks.big\"\n            class=\"gauge-tick gauge-tick-large\">\n            <svg:path [attr.d]=\"tick.line\" />\n        </svg:g>\n        <svg:g *ngFor=\"let tick of ticks.big\"\n            class=\"gauge-tick gauge-tick-large\">\n            <svg:text\n                [style.textAnchor]=\"tick.textAnchor\"\n                [attr.transform]=\"tick.textTransform\"\n                alignment-baseline=\"central\">\n                {{tick.text}}\n            </svg:text>\n        </svg:g>\n        <svg:g *ngFor=\"let tick of ticks.small\"\n            class=\"gauge-tick gauge-tick-small\">\n            <svg:path [attr.d]=\"tick.line\" />\n        </svg:g>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GaugeAxisComponent implements OnChanges {\n  @Input() bigSegments: any;\n  @Input() smallSegments: any;\n  @Input() min: any;\n  @Input() max: any;\n  @Input() angleSpan: number;\n  @Input() startAngle: number;\n  @Input() radius: any;\n  @Input() valueScale: any;\n  @Input() tickFormatting: any;\n\n  ticks: any;\n  rotationAngle: number;\n  rotate: string = '';\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.update();\n  }\n\n  update(): void {\n    this.rotationAngle = -90 + this.startAngle;\n    this.rotate = `rotate(${ this.rotationAngle })`;\n    this.ticks = this.getTicks();\n  }\n\n  getTicks(): any {\n    const bigTickSegment = this.angleSpan / this.bigSegments;\n    const smallTickSegment = bigTickSegment / (this.smallSegments);\n    const tickLength = 20;\n    const ticks = {\n      big: [],\n      small: []\n    };\n\n    const startDistance = this.radius + 10;\n    const textDist = startDistance + tickLength + 10;\n\n    for (let i = 0; i <= this.bigSegments; i++) {\n      const angleDeg = i * bigTickSegment;\n      const angle = angleDeg * Math.PI / 180;\n\n      const textAnchor = this.getTextAnchor(angleDeg);\n\n      let skip = false;\n      if (i === 0 && this.angleSpan === 360) {\n        skip = true;\n      }\n\n      if (!skip) {\n        let text = Number.parseFloat(this.valueScale.invert(angleDeg).toString()).toLocaleString();\n        if (this.tickFormatting) {\n          text = this.tickFormatting(text);\n        }\n        ticks.big.push({\n          line: this.getTickPath(startDistance, tickLength, angle),\n          textAnchor,\n          text,\n          textTransform: `\n            translate(${textDist * Math.cos(angle)}, ${textDist * Math.sin(angle)}) rotate(${ -this.rotationAngle })\n          `\n        });\n      }\n\n      if (i === this.bigSegments) {\n        continue;\n      }\n\n      for (let j = 1; j <= this.smallSegments; j++) {\n        const smallAngleDeg = angleDeg + j * smallTickSegment;\n        const smallAngle = smallAngleDeg * Math.PI / 180;\n\n        ticks.small.push({\n          line: this.getTickPath(startDistance, tickLength / 2, smallAngle)\n        });\n      }\n    }\n\n    return ticks;\n  }\n\n  getTextAnchor(angle) {\n    // [0, 45] = 'middle';\n    // [46, 135] = 'start';\n    // [136, 225] = 'middle';\n    // [226, 315] = 'end';\n\n    angle = (this.startAngle + angle) % 360;\n    let textAnchor = 'middle';\n    if (angle > 45 && angle <= 135) {\n      textAnchor = 'start';\n    } else if (angle > 225 && angle <= 315) {\n      textAnchor = 'end';\n    }\n    return textAnchor;\n  }\n\n  getTickPath(startDistance, tickLength, angle): any {\n    const y1 = startDistance * Math.sin(angle);\n    const y2 = (startDistance + tickLength) * Math.sin(angle);\n    const x1 = startDistance * Math.cos(angle);\n    const x2 = (startDistance + tickLength) * Math.cos(angle);\n\n    const points = [{x: x1, y: y1}, {x: x2, y: y2}];\n    const lineGenerator = line<any>().x(d => d.x).y(d => d.y);\n    return lineGenerator(points);\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/gauge/gauge-axis.component.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./gauge.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/gauge/gauge.component.scss\n// module id = ./src/gauge/gauge.component.scss\n// module chunks = 0","import {\n  Component,\n  Input,\n  ElementRef,\n  ViewChild,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { scaleLinear } from 'd3-scale';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\n\n@Component({\n  selector: 'ngx-charts-gauge',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event)\"\n      (legendLabelDeactivate)=\"onDeactivate($event)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"gauge chart\">\n        <svg:g *ngFor=\"let arc of arcs; trackBy: trackBy\" [attr.transform]=\"rotation\">\n          <svg:g\n            ngx-charts-gauge-arc\n            [backgroundArc]=\"arc.backgroundArc\"\n            [valueArc]=\"arc.valueArc\"\n            [cornerRadius]=\"cornerRadius\"\n            [colors]=\"colors\"\n            [isActive]=\"isActive(arc.valueArc.data)\"\n            [tooltipDisabled]=\"tooltipDisabled\"\n            [tooltipTemplate]=\"tooltipTemplate\"\n            [valueFormatting]=\"valueFormatting\"\n            [animations]=\"animations\"\n            (select)=\"onClick($event)\"\n            (activate)=\"onActivate($event)\"\n            (deactivate)=\"onDeactivate($event)\"\n          ></svg:g>\n        </svg:g>\n\n        <svg:g\n          ngx-charts-gauge-axis\n          *ngIf=\"showAxis\"\n          [bigSegments]=\"bigSegments\"\n          [smallSegments]=\"smallSegments\"\n          [min]=\"min\"\n          [max]=\"max\"\n          [radius]=\"outerRadius\"\n          [angleSpan]=\"angleSpan\"\n          [valueScale]=\"valueScale\"\n          [startAngle]=\"startAngle\"\n          [tickFormatting]=\"axisTickFormatting\"\n        ></svg:g>\n\n        <svg:text\n          #textEl\n          *ngIf=\"showText\"\n          [style.textAnchor]=\"'middle'\"\n          [attr.transform]=\"textTransform\"\n          alignment-baseline=\"central\"\n        >\n          <tspan x=\"0\" dy=\"0\">{{ displayValue }}</tspan>\n          <tspan x=\"0\" dy=\"1.2em\">{{ units }}</tspan>\n        </svg:text>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss'), require('./gauge.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GaugeComponent extends BaseChartComponent implements AfterViewInit {\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() min: number = 0;\n  @Input() max: number = 100;\n  @Input() textValue: string;\n  @Input() units: string;\n  @Input() bigSegments: number = 10;\n  @Input() smallSegments: number = 5;\n  @Input() results: any[];\n  @Input() showAxis: boolean = true;\n  @Input() startAngle: number = -120;\n  @Input() angleSpan: number = 240;\n  @Input() activeEntries: any[] = [];\n  @Input() axisTickFormatting: any;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() valueFormatting: (value: any) => string;\n  @Input() showText: boolean = true;\n\n  // Specify margins\n  @Input() margin: any[];\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  @ViewChild('textEl', { static: false }) textEl: ElementRef;\n\n  dims: ViewDimensions;\n  domain: any[];\n  valueDomain: any;\n  valueScale: any;\n\n  colors: ColorHelper;\n  transform: string;\n\n  outerRadius: number;\n  textRadius: number; // max available radius for the text\n  resizeScale: number = 1;\n  rotation: string = '';\n  textTransform: string = 'scale(1, 1)';\n  cornerRadius: number = 10;\n  arcs: any[];\n  displayValue: string;\n  legendOptions: any;\n\n  ngAfterViewInit(): void {\n    super.ngAfterViewInit();\n    setTimeout(() => this.scaleText());\n  }\n\n  update(): void {\n    super.update();\n\n    if (!this.showAxis) {\n      if (!this.margin) {\n        this.margin = [10, 20, 10, 20];\n      }\n    } else {\n      if (!this.margin) {\n        this.margin = [60, 100, 60, 100];\n      }\n    }\n\n    // make the starting angle positive\n    if (this.startAngle < 0) {\n      this.startAngle = (this.startAngle % 360) + 360;\n    }\n\n    this.angleSpan = Math.min(this.angleSpan, 360);\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showLegend: this.legend,\n      legendPosition: this.legendPosition\n    });\n\n    this.domain = this.getDomain();\n    this.valueDomain = this.getValueDomain();\n    this.valueScale = this.getValueScale();\n    this.displayValue = this.getDisplayValue();\n\n    this.outerRadius = Math.min(this.dims.width, this.dims.height) / 2;\n\n    this.arcs = this.getArcs();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    const xOffset = this.margin[3] + this.dims.width / 2;\n    const yOffset = this.margin[0] + this.dims.height / 2;\n\n    this.transform = `translate(${xOffset}, ${yOffset})`;\n    this.rotation = `rotate(${this.startAngle})`;\n    setTimeout(() => this.scaleText(), 50);\n  }\n\n  getArcs(): any[] {\n    const arcs = [];\n\n    const availableRadius = this.outerRadius * 0.7;\n\n    const radiusPerArc = Math.min(availableRadius / this.results.length, 10);\n    const arcWidth = radiusPerArc * 0.7;\n    this.textRadius = this.outerRadius - this.results.length * radiusPerArc;\n    this.cornerRadius = Math.floor(arcWidth / 2);\n\n    let i = 0;\n    for (const d of this.results) {\n      const outerRadius = this.outerRadius - i * radiusPerArc;\n      const innerRadius = outerRadius - arcWidth;\n\n      const backgroundArc = {\n        endAngle: (this.angleSpan * Math.PI) / 180,\n        innerRadius,\n        outerRadius,\n        data: {\n          value: this.max,\n          name: d.name\n        }\n      };\n\n      const valueArc = {\n        endAngle: (Math.min(this.valueScale(d.value), this.angleSpan) * Math.PI) / 180,\n        innerRadius,\n        outerRadius,\n        data: {\n          value: d.value,\n          name: d.name\n        }\n      };\n\n      const arc = {\n        backgroundArc,\n        valueArc\n      };\n\n      arcs.push(arc);\n      i++;\n    }\n\n    return arcs;\n  }\n\n  getDomain(): any[] {\n    return this.results.map(d => d.name);\n  }\n\n  getValueDomain(): any[] {\n    const values = this.results.map(d => d.value);\n    const dataMin = Math.min(...values);\n    const dataMax = Math.max(...values);\n\n    if (this.min !== undefined) {\n      this.min = Math.min(this.min, dataMin);\n    } else {\n      this.min = dataMin;\n    }\n\n    if (this.max !== undefined) {\n      this.max = Math.max(this.max, dataMax);\n    } else {\n      this.max = dataMax;\n    }\n\n    return [this.min, this.max];\n  }\n\n  getValueScale(): any {\n    return scaleLinear()\n      .range([0, this.angleSpan])\n      .nice()\n      .domain(this.valueDomain);\n  }\n\n  getDisplayValue(): string {\n    const value = this.results.map(d => d.value).reduce((a, b) => a + b, 0);\n\n    if (this.textValue && 0 !== this.textValue.length) {\n      return this.textValue.toLocaleString();\n    }\n\n    if (this.valueFormatting) {\n      return this.valueFormatting(value);\n    }\n\n    return value.toLocaleString();\n  }\n\n  scaleText(repeat: boolean = true): void {\n    if (!this.showText) {\n      return;\n    }\n    const { width } = this.textEl.nativeElement.getBoundingClientRect();\n    const oldScale = this.resizeScale;\n\n    if (width === 0) {\n      this.resizeScale = 1;\n    } else {\n      const availableSpace = this.textRadius;\n      this.resizeScale = Math.floor((availableSpace / (width / this.resizeScale)) * 100) / 100;\n    }\n\n    if (this.resizeScale !== oldScale) {\n      this.textTransform = `scale(${this.resizeScale}, ${this.resizeScale})`;\n      this.cd.markForCheck();\n      if (repeat) {\n        setTimeout(() => this.scaleText(false), 50);\n      }\n    }\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  getLegendOptions(): any {\n    return {\n      scaleType: 'ordinal',\n      colors: this.colors,\n      domain: this.domain,\n      title: this.legendTitle,\n      position: this.legendPosition\n    };\n  }\n\n  setColors(): void {\n    this.colors = new ColorHelper(this.scheme, 'ordinal', this.domain, this.customColors);\n  }\n\n  onActivate(item): void {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item): void {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  isActive(entry): boolean {\n    if (!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name && entry.series === d.series;\n    });\n    return item !== undefined;\n  }\n\n  trackBy(index, item): string {\n    return item.valueArc.data.name;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/gauge/gauge.component.ts","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { LinearGaugeComponent } from './linear-gauge.component';\nimport { GaugeComponent } from './gauge.component';\nimport { GaugeArcComponent } from './gauge-arc.component';\nimport { GaugeAxisComponent } from './gauge-axis.component';\nimport { PieChartModule } from '../pie-chart/pie-chart.module';\nimport { BarChartModule } from '../bar-chart/bar-chart.module';\n\n@NgModule({\n  imports: [ChartCommonModule, PieChartModule, BarChartModule],\n  declarations: [\n    LinearGaugeComponent,\n    GaugeComponent,\n    GaugeArcComponent,\n    GaugeAxisComponent\n  ],\n  exports: [\n    LinearGaugeComponent,\n    GaugeComponent,\n    GaugeArcComponent,\n    GaugeAxisComponent\n  ]\n})\nexport class GaugeModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/gauge/gauge.module.ts","export * from './gauge.module';\nexport * from './gauge-arc.component';\nexport * from './gauge-axis.component';\nexport * from './gauge.component';\nexport * from './linear-gauge.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/gauge/index.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./linear-gauge.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/gauge/linear-gauge.component.scss\n// module id = ./src/gauge/linear-gauge.component.scss\n// module chunks = 0","import {\n  Component,\n  Input,\n  ElementRef,\n  ViewChild,\n  AfterViewInit,\n  ViewEncapsulation,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { scaleLinear } from 'd3-scale';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\n\n@Component({\n  selector: 'ngx-charts-linear-gauge',\n  template: `\n    <ngx-charts-chart [view]=\"[width, height]\" [showLegend]=\"false\" [animations]=\"animations\" (click)=\"onClick()\">\n      <svg:g class=\"linear-gauge chart\">\n        <svg:g\n          ngx-charts-bar\n          class=\"background-bar\"\n          [width]=\"dims.width\"\n          [height]=\"3\"\n          [x]=\"margin[3]\"\n          [y]=\"dims.height / 2 + margin[0] - 2\"\n          [data]=\"{}\"\n          [orientation]=\"'horizontal'\"\n          [roundEdges]=\"true\"\n          [animations]=\"animations\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-bar\n          [width]=\"valueScale(value)\"\n          [height]=\"3\"\n          [x]=\"margin[3]\"\n          [y]=\"dims.height / 2 + margin[0] - 2\"\n          [fill]=\"colors.getColor(units)\"\n          [data]=\"{}\"\n          [orientation]=\"'horizontal'\"\n          [roundEdges]=\"true\"\n          [animations]=\"animations\"\n        ></svg:g>\n\n        <svg:line\n          *ngIf=\"hasPreviousValue\"\n          [attr.transform]=\"transformLine\"\n          x1=\"0\"\n          y1=\"5\"\n          x2=\"0\"\n          y2=\"15\"\n          [attr.stroke]=\"colors.getColor(units)\"\n        />\n\n        <svg:line\n          *ngIf=\"hasPreviousValue\"\n          [attr.transform]=\"transformLine\"\n          x1=\"0\"\n          y1=\"-5\"\n          x2=\"0\"\n          y2=\"-15\"\n          [attr.stroke]=\"colors.getColor(units)\"\n        />\n\n        <svg:g [attr.transform]=\"transform\">\n          <svg:g [attr.transform]=\"valueTranslate\">\n            <svg:text\n              #valueTextEl\n              class=\"value\"\n              [style.textAnchor]=\"'middle'\"\n              [attr.transform]=\"valueTextTransform\"\n              alignment-baseline=\"after-edge\"\n            >\n              {{ displayValue }}\n            </svg:text>\n          </svg:g>\n\n          <svg:g [attr.transform]=\"unitsTranslate\">\n            <svg:text\n              #unitsTextEl\n              class=\"units\"\n              [style.textAnchor]=\"'middle'\"\n              [attr.transform]=\"unitsTextTransform\"\n              alignment-baseline=\"before-edge\"\n            >\n              {{ units }}\n            </svg:text>\n          </svg:g>\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss'), require('./linear-gauge.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LinearGaugeComponent extends BaseChartComponent implements AfterViewInit {\n  @Input() min: number = 0;\n  @Input() max: number = 100;\n  @Input() value: number = 0;\n  @Input() units: string;\n  @Input() previousValue;\n  @Input() valueFormatting: any;\n\n  @ViewChild('valueTextEl', { static: false }) valueTextEl: ElementRef;\n  @ViewChild('unitsTextEl', { static: false }) unitsTextEl: ElementRef;\n\n  dims: ViewDimensions;\n  valueDomain: any;\n  valueScale: any;\n\n  colors: ColorHelper;\n  transform: string;\n  margin: any[] = [10, 20, 10, 20];\n  transformLine: string;\n\n  valueResizeScale: number = 1;\n  unitsResizeScale: number = 1;\n  valueTextTransform: string = '';\n  valueTranslate: string = '';\n  unitsTextTransform: string = '';\n  unitsTranslate: string = '';\n  displayValue: string;\n  hasPreviousValue: boolean;\n\n  ngAfterViewInit(): void {\n    super.ngAfterViewInit();\n    setTimeout(() => {\n      this.scaleText('value');\n      this.scaleText('units');\n    });\n  }\n\n  update(): void {\n    super.update();\n\n    this.hasPreviousValue = this.previousValue !== undefined;\n    this.max = Math.max(this.max, this.value);\n    this.min = Math.min(this.min, this.value);\n    if (this.hasPreviousValue) {\n      this.max = Math.max(this.max, this.previousValue);\n      this.min = Math.min(this.min, this.previousValue);\n    }\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin\n    });\n\n    this.valueDomain = this.getValueDomain();\n    this.valueScale = this.getValueScale();\n    this.displayValue = this.getDisplayValue();\n\n    this.setColors();\n\n    const xOffset = this.margin[3] + this.dims.width / 2;\n    const yOffset = this.margin[0] + this.dims.height / 2;\n\n    this.transform = `translate(${xOffset}, ${yOffset})`;\n    this.transformLine = `translate(${this.margin[3] + this.valueScale(this.previousValue)}, ${yOffset})`;\n    this.valueTranslate = `translate(0, -15)`;\n    this.unitsTranslate = `translate(0, 15)`;\n    setTimeout(() => this.scaleText('value'), 50);\n    setTimeout(() => this.scaleText('units'), 50);\n  }\n\n  getValueDomain(): any[] {\n    return [this.min, this.max];\n  }\n\n  getValueScale(): any {\n    return scaleLinear()\n      .range([0, this.dims.width])\n      .domain(this.valueDomain);\n  }\n\n  getDisplayValue(): string {\n    if (this.valueFormatting) {\n      return this.valueFormatting(this.value);\n    }\n    return this.value.toLocaleString();\n  }\n\n  scaleText(element, repeat: boolean = true): void {\n    let el;\n    let resizeScale;\n    if (element === 'value') {\n      el = this.valueTextEl;\n      resizeScale = this.valueResizeScale;\n    } else {\n      el = this.unitsTextEl;\n      resizeScale = this.unitsResizeScale;\n    }\n\n    const { width, height } = el.nativeElement.getBoundingClientRect();\n    if (width === 0 || height === 0) return;\n    const oldScale = resizeScale;\n    const availableWidth = this.dims.width;\n    const availableHeight = Math.max(this.dims.height / 2 - 15, 0);\n    const resizeScaleWidth = Math.floor((availableWidth / (width / resizeScale)) * 100) / 100;\n    const resizeScaleHeight = Math.floor((availableHeight / (height / resizeScale)) * 100) / 100;\n    resizeScale = Math.min(resizeScaleHeight, resizeScaleWidth);\n\n    if (resizeScale !== oldScale) {\n      if (element === 'value') {\n        this.valueResizeScale = resizeScale;\n        this.valueTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n      } else {\n        this.unitsResizeScale = resizeScale;\n        this.unitsTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n      }\n      this.cd.markForCheck();\n      if (repeat) {\n        setTimeout(() => {\n          this.scaleText(element, false);\n        }, 50);\n      }\n    }\n  }\n\n  onClick(): void {\n    this.select.emit({\n      name: 'Value',\n      value: this.value\n    });\n  }\n\n  setColors(): void {\n    this.colors = new ColorHelper(this.scheme, 'ordinal', [this.value], this.customColors);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/gauge/linear-gauge.component.ts","import {\n  Component,\n  Input,\n  SimpleChanges,\n  Output,\n  EventEmitter,\n  OnChanges,\n  OnInit,\n  ChangeDetectionStrategy,\n  TemplateRef\n} from '@angular/core';\nimport { formatLabel } from '../common/label.helper';\n\n@Component({\n  selector: 'g[ngx-charts-heat-map-cell-series]',\n  template: `\n    <svg:g\n      ngx-charts-heat-map-cell\n      *ngFor=\"let c of cells; trackBy: trackBy\"\n      [x]=\"c.x\"\n      [y]=\"c.y\"\n      [width]=\"c.width\"\n      [height]=\"c.height\"\n      [fill]=\"c.fill\"\n      [data]=\"c.data\"\n      (select)=\"onClick(c.cell)\"\n      (activate)=\"activate.emit(c.cell)\"\n      (deactivate)=\"deactivate.emit(c.cell)\"\n      [gradient]=\"gradient\"\n      [animations]=\"animations\"\n      ngx-tooltip\n      [tooltipDisabled]=\"tooltipDisabled\"\n      [tooltipPlacement]=\"'top'\"\n      [tooltipType]=\"'tooltip'\"\n      [tooltipTitle]=\"tooltipTemplate ? undefined : tooltipText(c)\"\n      [tooltipTemplate]=\"tooltipTemplate\"\n      [tooltipContext]=\"{ series: c.series, name: c.label, value: c.data }\"\n    ></svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HeatCellSeriesComponent implements OnChanges, OnInit {\n  @Input() data;\n  @Input() colors;\n  @Input() xScale;\n  @Input() yScale;\n  @Input() gradient: boolean;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipText: any;\n  @Input() tooltipTemplate: TemplateRef<any>;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  cells: any[];\n\n  ngOnInit() {\n    if (!this.tooltipText) {\n      this.tooltipText = this.getTooltipText;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.cells = this.getCells();\n  }\n\n  getCells() {\n    const cells = [];\n\n    this.data.map(row => {\n      row.series.map(cell => {\n        const value = cell.value;\n        cell.series = row.name;\n\n        cells.push({\n          row,\n          cell,\n          x: this.xScale(row.name),\n          y: this.yScale(cell.name),\n          width: this.xScale.bandwidth(),\n          height: this.yScale.bandwidth(),\n          fill: this.colors.getColor(value),\n          data: value,\n          label: formatLabel(cell.name),\n          series: row.name\n        });\n      });\n    });\n\n    return cells;\n  }\n\n  getTooltipText({ label, data, series }): string {\n    return `\n      <span class=\"tooltip-label\">${series} • ${label}</span>\n      <span class=\"tooltip-val\">${data.toLocaleString()}</span>\n    `;\n  }\n\n  trackBy(index, item): string {\n    return item.tooltipText;\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/heat-map/heat-map-cell-series.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  SimpleChanges,\n  ElementRef,\n  OnChanges,\n  ChangeDetectionStrategy,\n  HostListener\n} from '@angular/core';\nimport { select } from 'd3-selection';\n\nimport { id } from '../utils/id';\n\n@Component({\n  selector: 'g[ngx-charts-heat-map-cell]',\n  template: `\n    <svg:g [attr.transform]=\"transform\" class=\"cell\">\n      <defs *ngIf=\"gradient\">\n        <svg:g ngx-charts-svg-linear-gradient orientation=\"vertical\" [name]=\"gradientId\" [stops]=\"gradientStops\" />\n      </defs>\n      <svg:rect\n        [attr.fill]=\"gradient ? gradientUrl : fill\"\n        rx=\"3\"\n        [attr.width]=\"width\"\n        [attr.height]=\"height\"\n        class=\"cell\"\n        style=\"cursor: pointer\"\n        (click)=\"onClick()\"\n      />\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HeatMapCellComponent implements OnChanges {\n  @Input() fill;\n  @Input() x;\n  @Input() y;\n  @Input() width;\n  @Input() height;\n  @Input() data;\n  @Input() label;\n  @Input() gradient: boolean = false;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n\n  element: HTMLElement;\n  transform: string;\n  activeRange: any[];\n  startOpacity: number;\n  gradientId: string;\n  gradientUrl: string;\n  gradientStops: any[];\n\n  constructor(element: ElementRef) {\n    this.element = element.nativeElement;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.transform = `translate(${this.x} , ${this.y})`;\n\n    this.startOpacity = 0.3;\n    this.gradientId = 'grad' + id().toString();\n    this.gradientUrl = `url(#${this.gradientId})`;\n    this.gradientStops = this.getGradientStops();\n\n    if (this.animations) {\n      this.loadAnimation();\n    }\n  }\n\n  getGradientStops() {\n    return [\n      {\n        offset: 0,\n        color: this.fill,\n        opacity: this.startOpacity\n      },\n      {\n        offset: 100,\n        color: this.fill,\n        opacity: 1\n      }\n    ];\n  }\n\n  loadAnimation(): void {\n    const node = select(this.element).select('.cell');\n    node.attr('opacity', 0);\n    this.animateToCurrentForm();\n  }\n\n  animateToCurrentForm(): void {\n    const node = select(this.element).select('.cell');\n\n    node\n      .transition()\n      .duration(750)\n      .attr('opacity', 1);\n  }\n\n  onClick() {\n    this.select.emit(this.data);\n  }\n\n  @HostListener('mouseenter')\n  onMouseEnter(): void {\n    this.activate.emit(this.data);\n  }\n\n  @HostListener('mouseleave')\n  onMouseLeave(): void {\n    this.deactivate.emit(this.data);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/heat-map/heat-map-cell.component.ts","import {\n  Component,\n  Input,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef,\n  Output,\n  EventEmitter\n} from '@angular/core';\nimport { scaleBand } from 'd3-scale';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { getScaleType } from '../common/domain.helper';\n\n@Component({\n  selector: 'ngx-charts-heat-map',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [animations]=\"animations\"\n      [legendOptions]=\"legendOptions\"\n      (legendLabelClick)=\"onClick($event)\"\n    >\n      <svg:g [attr.transform]=\"transform\" class=\"heat-map chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:rect\n          *ngFor=\"let rect of rects\"\n          [attr.x]=\"rect.x\"\n          [attr.y]=\"rect.y\"\n          [attr.rx]=\"rect.rx\"\n          [attr.width]=\"rect.width\"\n          [attr.height]=\"rect.height\"\n          [attr.fill]=\"rect.fill\"\n        />\n        <svg:g\n          ngx-charts-heat-map-cell-series\n          [xScale]=\"xScale\"\n          [yScale]=\"yScale\"\n          [colors]=\"colors\"\n          [data]=\"results\"\n          [gradient]=\"gradient\"\n          [animations]=\"animations\"\n          [tooltipDisabled]=\"tooltipDisabled\"\n          [tooltipTemplate]=\"tooltipTemplate\"\n          [tooltipText]=\"tooltipText\"\n          (select)=\"onClick($event)\"\n          (activate)=\"onActivate($event, undefined)\"\n          (deactivate)=\"onDeactivate($event, undefined)\"\n        />\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None\n})\nexport class HeatMapComponent extends BaseChartComponent {\n  @Input() legend;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() gradient: boolean;\n  @Input() innerPadding: number | number[] = 8;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipText: any;\n  @Input() min: any;\n  @Input() max: any;\n  @Input() activeEntries: any[] = [];\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  xDomain: any[];\n  yDomain: any[];\n  valueDomain: any[];\n  xScale: any;\n  yScale: any;\n  color: any;\n  colors: ColorHelper;\n  colorScale: any;\n  transform: string;\n  rects: any[];\n  margin = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  legendOptions: any;\n  scaleType: string = 'linear';\n\n  update(): void {\n    super.update();\n\n    this.formatDates();\n\n    this.xDomain = this.getXDomain();\n    this.yDomain = this.getYDomain();\n    this.valueDomain = this.getValueDomain();\n\n    this.scaleType = getScaleType(this.valueDomain, false);\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.scaleType,\n      legendPosition: this.legendPosition\n    });\n\n    if (this.scaleType === 'linear') {\n      let min = this.min;\n      let max = this.max;\n      if (!this.min) {\n        min = Math.min(0, ...this.valueDomain);\n      }\n      if (!this.max) {\n        max = Math.max(...this.valueDomain);\n      }\n      this.valueDomain = [min, max];\n    }\n\n    this.xScale = this.getXScale();\n    this.yScale = this.getYScale();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n    this.rects = this.getRects();\n  }\n\n  getXDomain(): any {\n    const domain = [];\n    for (const group of this.results) {\n      if (!domain.includes(group.name)) {\n        domain.push(group.name);\n      }\n    }\n\n    return domain;\n  }\n\n  getYDomain(): any[] {\n    const domain = [];\n\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.name)) {\n          domain.push(d.name);\n        }\n      }\n    }\n\n    return domain;\n  }\n\n  getValueDomain(): any[] {\n    const domain = [];\n\n    for (const group of this.results) {\n      for (const d of group.series) {\n        if (!domain.includes(d.value)) {\n          domain.push(d.value);\n        }\n      }\n    }\n\n    return domain;\n  }\n\n  /**\n   * Converts the input to gap paddingInner in fraction\n   * Supports the following inputs:\n   *    Numbers: 8\n   *    Strings: \"8\", \"8px\", \"8%\"\n   *    Arrays: [8,2], \"8,2\", \"[8,2]\"\n   *    Mixed: [8,\"2%\"], [\"8px\",\"2%\"], \"8,2%\", \"[8,2%]\"\n   *\n   * @param {(string | number | Array<string | number>)} value\n   * @param {number} [index=0]\n   * @param {number} N\n   * @param {number} L\n   * @returns {number}\n   *\n   * @memberOf HeatMapComponent\n   */\n  getDimension(value: string | number | Array<string | number>, index = 0, N: number, L: number): number {\n    if (typeof value === 'string') {\n      value = value\n        .replace('[', '')\n        .replace(']', '')\n        .replace('px', '')\n        .replace('\\'', '');\n\n      if (value.includes(',')) {\n        value = value.split(',');\n      }\n    }\n    if (Array.isArray(value) && typeof index === 'number') {\n      return this.getDimension(value[index], null, N, L);\n    }\n    if (typeof value === 'string' && value.includes('%')) {\n      return +value.replace('%', '') / 100;\n    }\n    return N / (L / +value + 1);\n  }\n\n  getXScale(): any {\n    const f = this.getDimension(this.innerPadding, 0, this.xDomain.length, this.dims.width);\n    return scaleBand()\n      .rangeRound([0, this.dims.width])\n      .domain(this.xDomain)\n      .paddingInner(f);\n  }\n\n  getYScale(): any {\n    const f = this.getDimension(this.innerPadding, 1, this.yDomain.length, this.dims.height);\n    return scaleBand()\n      .rangeRound([this.dims.height, 0])\n      .domain(this.yDomain)\n      .paddingInner(f);\n  }\n\n  getRects(): any[] {\n    const rects = [];\n\n    this.xDomain.map(xVal => {\n      this.yDomain.map(yVal => {\n        rects.push({\n          x: this.xScale(xVal),\n          y: this.yScale(yVal),\n          rx: 3,\n          width: this.xScale.bandwidth(),\n          height: this.yScale.bandwidth(),\n          fill: 'rgba(200,200,200,0.03)'\n        });\n      });\n    });\n\n    return rects;\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  setColors(): void {\n    this.colors = new ColorHelper(this.scheme, this.scaleType, this.valueDomain);\n  }\n\n  getLegendOptions() {\n    return {\n      scaleType: this.scaleType,\n      domain: this.valueDomain,\n      colors: this.scaleType === 'ordinal' ? this.colors : this.colors.scale,\n      title: this.scaleType === 'ordinal' ? this.legendTitle : undefined,\n      position: this.legendPosition\n    };\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    const items = this.results\n      .map(g => g.series)\n      .flat()\n      .filter(i => {\n        if (fromLegend) {\n          return i.label === item.name;\n        } else {\n          return i.name === item.name && i.series === item.series;\n        }\n      });\n\n    this.activeEntries = [...items];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(event, group, fromLegend = false) {\n    const item = Object.assign({}, event);\n    if (group) {\n      item.series = group.name;\n    }\n\n    this.activeEntries = this.activeEntries.filter(i => {\n      if (fromLegend) {\n        return i.label !== item.name;\n      } else {\n        return !(i.name === item.name && i.series === item.series);\n      }\n    });\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/heat-map/heat-map.component.ts","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { HeatMapCellComponent } from './heat-map-cell.component';\nimport { HeatCellSeriesComponent } from './heat-map-cell-series.component';\nimport { HeatMapComponent } from './heat-map.component';\n\n@NgModule({\n  imports: [ChartCommonModule],\n  declarations: [\n    HeatMapCellComponent,\n    HeatCellSeriesComponent,\n    HeatMapComponent\n  ],\n  exports: [\n    HeatMapCellComponent,\n    HeatCellSeriesComponent,\n    HeatMapComponent\n  ]\n})\nexport class HeatMapModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/heat-map/heat-map.module.ts","export * from './heat-map.module';\nexport * from './heat-map.component';\nexport * from './heat-map-cell.component';\nexport * from './heat-map-cell-series.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/heat-map/index.ts","export * from './ngx-charts.module';\nexport * from './common';\nexport * from './area-chart';\nexport * from './bar-chart';\nexport * from './bubble-chart';\nexport * from './force-directed-graph';\nexport * from './heat-map';\nexport * from './line-chart';\nexport * from './polar-chart';\nexport * from './number-card';\nexport * from './pie-chart';\nexport * from './tree-map';\nexport * from './gauge';\nexport * from './models/chart-data.model';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/index.ts","export * from './line-chart.module';\nexport * from './line-chart.component';\nexport * from './line.component';\nexport * from './line-series.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/line-chart/index.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  HostListener,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleLinear, scaleTime, scalePoint } from 'd3-scale';\nimport { curveLinear } from 'd3-shape';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { id } from '../utils/id';\nimport { getUniqueXDomainValues, getScaleType } from '../common/domain.helper';\n\n@Component({\n  selector: 'ngx-charts-line-chart',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event)\"\n      (legendLabelDeactivate)=\"onDeactivate($event)\"\n    >\n      <svg:defs>\n        <svg:clipPath [attr.id]=\"clipPathId\">\n          <svg:rect\n            [attr.width]=\"dims.width + 10\"\n            [attr.height]=\"dims.height + 10\"\n            [attr.transform]=\"'translate(-5, -5)'\"\n          />\n        </svg:clipPath>\n      </svg:defs>\n      <svg:g [attr.transform]=\"transform\" class=\"line-chart chart\">\n        <svg:g\n          ngx-charts-x-axis\n          *ngIf=\"xAxis\"\n          [xScale]=\"xScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showXAxisLabel\"\n          [labelText]=\"xAxisLabel\"\n          [trimTicks]=\"trimXAxisTicks\"\n          [rotateTicks]=\"rotateXAxisTicks\"\n          [maxTickLength]=\"maxXAxisTickLength\"\n          [tickFormatting]=\"xAxisTickFormatting\"\n          [ticks]=\"xAxisTicks\"\n          (dimensionsChanged)=\"updateXAxisHeight($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          *ngIf=\"yAxis\"\n          [yScale]=\"yScale\"\n          [dims]=\"dims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          [ticks]=\"yAxisTicks\"\n          [referenceLines]=\"referenceLines\"\n          [showRefLines]=\"showRefLines\"\n          [showRefLabels]=\"showRefLabels\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g [attr.clip-path]=\"clipPath\">\n          <svg:g *ngFor=\"let series of results; trackBy: trackBy\" [@animationState]=\"'active'\">\n            <svg:g\n              ngx-charts-line-series\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [colors]=\"colors\"\n              [data]=\"series\"\n              [activeEntries]=\"activeEntries\"\n              [scaleType]=\"scaleType\"\n              [curve]=\"curve\"\n              [rangeFillOpacity]=\"rangeFillOpacity\"\n              [hasRange]=\"hasRange\"\n              [animations]=\"animations\"\n            />\n          </svg:g>\n\n          <svg:g *ngIf=\"!tooltipDisabled\" (mouseleave)=\"hideCircles()\">\n            <svg:g\n              ngx-charts-tooltip-area\n              [dims]=\"dims\"\n              [xSet]=\"xSet\"\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [results]=\"results\"\n              [colors]=\"colors\"\n              [tooltipDisabled]=\"tooltipDisabled\"\n              [tooltipTemplate]=\"seriesTooltipTemplate\"\n              (hover)=\"updateHoveredVertical($event)\"\n            />\n\n            <svg:g *ngFor=\"let series of results\">\n              <svg:g\n                ngx-charts-circle-series\n                [xScale]=\"xScale\"\n                [yScale]=\"yScale\"\n                [colors]=\"colors\"\n                [data]=\"series\"\n                [scaleType]=\"scaleType\"\n                [visibleValue]=\"hoveredVertical\"\n                [activeEntries]=\"activeEntries\"\n                [tooltipDisabled]=\"tooltipDisabled\"\n                [tooltipTemplate]=\"tooltipTemplate\"\n                (select)=\"onClick($event)\"\n                (activate)=\"onActivate($event)\"\n                (deactivate)=\"onDeactivate($event)\"\n              />\n            </svg:g>\n          </svg:g>\n        </svg:g>\n      </svg:g>\n      <svg:g\n        ngx-charts-timeline\n        *ngIf=\"timeline && scaleType != 'ordinal'\"\n        [attr.transform]=\"timelineTransform\"\n        [results]=\"results\"\n        [view]=\"[timelineWidth, height]\"\n        [height]=\"timelineHeight\"\n        [scheme]=\"scheme\"\n        [customColors]=\"customColors\"\n        [scaleType]=\"scaleType\"\n        [legend]=\"legend\"\n        (onDomainChange)=\"updateDomain($event)\"\n      >\n        <svg:g *ngFor=\"let series of results; trackBy: trackBy\">\n          <svg:g\n            ngx-charts-line-series\n            [xScale]=\"timelineXScale\"\n            [yScale]=\"timelineYScale\"\n            [colors]=\"colors\"\n            [data]=\"series\"\n            [scaleType]=\"scaleType\"\n            [curve]=\"curve\"\n            [hasRange]=\"hasRange\"\n            [animations]=\"animations\"\n          />\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1\n        }),\n        animate(\n          500,\n          style({\n            opacity: 0\n          })\n        )\n      ])\n    ])\n  ]\n})\nexport class LineChartComponent extends BaseChartComponent {\n  @Input() legend;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis;\n  @Input() yAxis;\n  @Input() showXAxisLabel;\n  @Input() showYAxisLabel;\n  @Input() xAxisLabel;\n  @Input() yAxisLabel;\n  @Input() autoScale;\n  @Input() timeline;\n  @Input() gradient: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() curve: any = curveLinear;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() rangeFillOpacity: number;\n  @Input() trimXAxisTicks: boolean = true;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() rotateXAxisTicks: boolean = true;\n  @Input() maxXAxisTickLength: number = 16;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: any;\n  @Input() yAxisTickFormatting: any;\n  @Input() xAxisTicks: any[];\n  @Input() yAxisTicks: any[];\n  @Input() roundDomains: boolean = false;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() showRefLines: boolean = false;\n  @Input() referenceLines: any;\n  @Input() showRefLabels: boolean = true;\n  @Input() xScaleMin: any;\n  @Input() xScaleMax: any;\n  @Input() yScaleMin: number;\n  @Input() yScaleMax: number;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n  @ContentChild('seriesTooltipTemplate', { static: false }) seriesTooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  xSet: any;\n  xDomain: any;\n  yDomain: any;\n  seriesDomain: any;\n  yScale: any;\n  xScale: any;\n  colors: ColorHelper;\n  scaleType: string;\n  transform: string;\n  clipPath: string;\n  clipPathId: string;\n  series: any;\n  areaPath: any;\n  margin = [10, 20, 10, 20];\n  hoveredVertical: any; // the value of the x axis that is hovered over\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  filteredDomain: any;\n  legendOptions: any;\n  hasRange: boolean; // whether the line has a min-max range around it\n  timelineWidth: any;\n  timelineHeight: number = 50;\n  timelineXScale: any;\n  timelineYScale: any;\n  timelineXDomain: any;\n  timelineTransform: any;\n  timelinePadding: number = 10;\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    if (this.timeline) {\n      this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n    }\n\n    this.xDomain = this.getXDomain();\n    if (this.filteredDomain) {\n      this.xDomain = this.filteredDomain;\n    }\n\n    this.yDomain = this.getYDomain();\n    this.seriesDomain = this.getSeriesDomain();\n\n    this.xScale = this.getXScale(this.xDomain, this.dims.width);\n    this.yScale = this.getYScale(this.yDomain, this.dims.height);\n\n    this.updateTimeline();\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n\n    this.clipPathId = 'clip' + id().toString();\n    this.clipPath = `url(#${this.clipPathId})`;\n  }\n\n  updateTimeline(): void {\n    if (this.timeline) {\n      this.timelineWidth = this.dims.width;\n      this.timelineXDomain = this.getXDomain();\n      this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n      this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n      this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n    }\n  }\n\n  getXDomain(): any[] {\n    let values = getUniqueXDomainValues(this.results);\n\n    this.scaleType = getScaleType(values);\n    let domain = [];\n\n    if (this.scaleType === 'linear') {\n      values = values.map(v => Number(v));\n    }\n\n    let min;\n    let max;\n    if (this.scaleType === 'time' || this.scaleType === 'linear') {\n      min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n\n      max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n    }\n\n    if (this.scaleType === 'time') {\n      domain = [new Date(min), new Date(max)];\n      this.xSet = [...values].sort((a, b) => {\n        const aDate = a.getTime();\n        const bDate = b.getTime();\n        if (aDate > bDate) return 1;\n        if (bDate > aDate) return -1;\n        return 0;\n      });\n    } else if (this.scaleType === 'linear') {\n      domain = [min, max];\n      // Use compare function to sort numbers numerically\n      this.xSet = [...values].sort((a, b) => a - b);\n    } else {\n      domain = values;\n      this.xSet = values;\n    }\n\n    return domain;\n  }\n\n  getYDomain(): any[] {\n    const domain = [];\n    for (const results of this.results) {\n      for (const d of results.series) {\n        if (domain.indexOf(d.value) < 0) {\n          domain.push(d.value);\n        }\n        if (d.min !== undefined) {\n          this.hasRange = true;\n          if (domain.indexOf(d.min) < 0) {\n            domain.push(d.min);\n          }\n        }\n        if (d.max !== undefined) {\n          this.hasRange = true;\n          if (domain.indexOf(d.max) < 0) {\n            domain.push(d.max);\n          }\n        }\n      }\n    }\n\n    const values = [...domain];\n    if (!this.autoScale) {\n      values.push(0);\n    }\n\n    const min = this.yScaleMin ? this.yScaleMin : Math.min(...values);\n\n    const max = this.yScaleMax ? this.yScaleMax : Math.max(...values);\n\n    return [min, max];\n  }\n\n  getSeriesDomain(): any[] {\n    return this.results.map(d => d.name);\n  }\n\n  getXScale(domain, width): any {\n    let scale;\n\n    if (this.scaleType === 'time') {\n      scale = scaleTime()\n        .range([0, width])\n        .domain(domain);\n    } else if (this.scaleType === 'linear') {\n      scale = scaleLinear()\n        .range([0, width])\n        .domain(domain);\n\n      if (this.roundDomains) {\n        scale = scale.nice();\n      }\n    } else if (this.scaleType === 'ordinal') {\n      scale = scalePoint()\n        .range([0, width])\n        .padding(0.1)\n        .domain(domain);\n    }\n\n    return scale;\n  }\n\n  getYScale(domain, height): any {\n    const scale = scaleLinear()\n      .range([height, 0])\n      .domain(domain);\n\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  updateDomain(domain): void {\n    this.filteredDomain = domain;\n    this.xDomain = this.filteredDomain;\n    this.xScale = this.getXScale(this.xDomain, this.dims.width);\n  }\n\n  updateHoveredVertical(item): void {\n    this.hoveredVertical = item.value;\n    this.deactivateAll();\n  }\n\n  @HostListener('mouseleave')\n  hideCircles(): void {\n    this.hoveredVertical = null;\n    this.deactivateAll();\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  trackBy(index, item): string {\n    return item.name;\n  }\n\n  setColors(): void {\n    let domain;\n    if (this.schemeType === 'ordinal') {\n      domain = this.seriesDomain;\n    } else {\n      domain = this.yDomain;\n    }\n\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    const opts = {\n      scaleType: this.schemeType,\n      colors: undefined,\n      domain: [],\n      title: undefined,\n      position: this.legendPosition\n    };\n    if (opts.scaleType === 'ordinal') {\n      opts.domain = this.seriesDomain;\n      opts.colors = this.colors;\n      opts.title = this.legendTitle;\n    } else {\n      opts.domain = this.yDomain;\n      opts.colors = this.colors.scale;\n    }\n    return opts;\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(item) {\n    this.deactivateAll();\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item) {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  deactivateAll() {\n    this.activeEntries = [...this.activeEntries];\n    for (const entry of this.activeEntries) {\n      this.deactivate.emit({ value: entry, entries: [] });\n    }\n    this.activeEntries = [];\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/line-chart/line-chart.component.ts","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { LineComponent } from './line.component';\nimport { LineChartComponent } from './line-chart.component';\nimport { LineSeriesComponent } from './line-series.component';\n\n@NgModule({\n  imports: [ChartCommonModule],\n  declarations: [\n    LineComponent,\n    LineChartComponent,\n    LineSeriesComponent\n  ],\n  exports: [\n    LineComponent,\n    LineChartComponent,\n    LineSeriesComponent\n  ]\n})\nexport class LineChartModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/line-chart/line-chart.module.ts","import {\n  Component,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { area, line } from 'd3-shape';\n\nimport { id } from '../utils/id';\nimport { sortLinear, sortByTime, sortByDomain } from '../utils/sort';\n\n@Component({\n  selector: 'g[ngx-charts-line-series]',\n  template: `\n    <svg:g>\n      <defs>\n        <svg:g ngx-charts-svg-linear-gradient *ngIf=\"hasGradient\"\n          orientation=\"vertical\"\n          [name]=\"gradientId\"\n          [stops]=\"gradientStops\"\n        />\n      </defs>\n      <svg:g ngx-charts-area\n        class=\"line-highlight\"\n        [data]=\"data\"\n        [path]=\"areaPath\"\n        [fill]=\"hasGradient ? gradientUrl : colors.getColor(data.name)\"\n        [opacity]=\"0.25\"\n        [startOpacity]=\"0\"\n        [gradient]=\"true\"\n        [stops]=\"areaGradientStops\"\n        [class.active]=\"isActive(data)\"\n        [class.inactive]=\"isInactive(data)\"\n        [animations]=\"animations\"\n      />\n      <svg:g ngx-charts-line\n        class=\"line-series\"\n        [data]=\"data\"\n        [path]=\"path\"\n        [stroke]=\"stroke\"\n        [animations]=\"animations\"\n        [class.active]=\"isActive(data)\"\n        [class.inactive]=\"isInactive(data)\"\n      />\n     <svg:g ngx-charts-area\n        *ngIf=\"hasRange\"\n        class=\"line-series-range\"\n        [data]=\"data\"\n        [path]=\"outerPath\"\n        [fill]=\"hasGradient ? gradientUrl : colors.getColor(data.name)\"\n        [class.active]=\"isActive(data)\"\n        [class.inactive]=\"isInactive(data)\"\n        [opacity]=\"rangeFillOpacity\"\n        [animations]=\"animations\"\n      />\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LineSeriesComponent implements OnChanges {\n\n  @Input() data;\n  @Input() xScale;\n  @Input() yScale;\n  @Input() colors;\n  @Input() scaleType;\n  @Input() curve: any;\n  @Input() activeEntries: any[];\n  @Input() rangeFillOpacity: number;\n  @Input() hasRange: boolean;\n  @Input() animations: boolean = true;\n\n  path: string;\n  outerPath: string;\n  areaPath: string;\n  gradientId: string;\n  gradientUrl: string;\n  hasGradient: boolean;\n  gradientStops: any[];\n  areaGradientStops: any[];\n  stroke: any;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.updateGradients();\n\n    const data = this.sortData(this.data.series);\n\n    const lineGen = this.getLineGenerator();\n    this.path = lineGen(data) || '';\n\n    const areaGen = this.getAreaGenerator();\n    this.areaPath = areaGen(data) || '';\n\n    if (this.hasRange) {\n      const range = this.getRangeGenerator();\n      this.outerPath = range(data) || '';\n    }\n\n    if (this.hasGradient) {\n      this.stroke = this.gradientUrl;\n      const values = this.data.series.map(d => d.value);\n      const max = Math.max(...values);\n      const min = Math.min(...values);\n      if (max === min) {\n        this.stroke = this.colors.getColor(max);\n      }\n    } else {\n      this.stroke = this.colors.getColor(this.data.name);\n    }\n  }\n\n  getLineGenerator(): any {\n    return line<any>()\n      .x(d => {\n        const label = d.name;\n        let value;\n        if (this.scaleType === 'time') {\n          value = this.xScale(label);\n        } else if (this.scaleType === 'linear') {\n          value = this.xScale(Number(label));\n        } else {\n          value = this.xScale(label);\n        }\n        return value;\n      })\n      .y(d => this.yScale(d.value))\n      .curve(this.curve);\n  }\n\n  getRangeGenerator(): any {\n    return area<any>()\n        .x(d => {\n          const label = d.name;\n          let value;\n          if (this.scaleType === 'time') {\n            value = this.xScale(label);\n          } else if (this.scaleType === 'linear') {\n            value = this.xScale(Number(label));\n          } else {\n            value = this.xScale(label);\n          }\n          return value;\n        })\n        .y0(d => this.yScale(typeof d.min === 'number' ? d.min : d.value))\n        .y1(d => this.yScale(typeof d.max === 'number' ? d.max : d.value))\n        .curve(this.curve);\n  }\n\n  getAreaGenerator(): any {\n    const xProperty = (d) => {\n      const label = d.name;\n      return this.xScale(label);\n    };\n\n    return area<any>()\n      .x(xProperty)\n      .y0(() => this.yScale.range()[0])\n      .y1(d => this.yScale(d.value))\n      .curve(this.curve);\n  }\n\n  sortData(data) {\n    if (this.scaleType === 'linear') {\n      data = sortLinear(data, 'name');\n    } else if (this.scaleType === 'time') {\n      data = sortByTime(data, 'name');\n    } else {\n      data = sortByDomain(data, 'name', 'asc', this.xScale.domain());\n    }\n\n    return data;\n  }\n\n  updateGradients() {\n    if (this.colors.scaleType === 'linear') {\n      this.hasGradient = true;\n      this.gradientId = 'grad' + id().toString();\n      this.gradientUrl = `url(#${this.gradientId})`;\n      const values = this.data.series.map(d => d.value);\n      const max = Math.max(...values);\n      const min = Math.min(...values);\n      this.gradientStops = this.colors.getLinearGradientStops(max, min);\n      this.areaGradientStops = this.colors.getLinearGradientStops(max);\n    } else {\n      this.hasGradient = false;\n      this.gradientStops = undefined;\n      this.areaGradientStops = undefined;\n    }\n  }\n\n  isActive(entry): boolean {\n    if(!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name;\n    });\n    return item !== undefined;\n  }\n\n  isInactive(entry): boolean {\n    if(!this.activeEntries || this.activeEntries.length === 0) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name;\n    });\n    return item === undefined;\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/line-chart/line-series.component.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  ElementRef,\n  ChangeDetectionStrategy,\n  SimpleChanges\n} from '@angular/core';\nimport {\n  trigger,\n  style,\n  animate,\n  transition\n} from '@angular/animations';\nimport { select } from 'd3-selection';\n\n@Component({\n  selector: 'g[ngx-charts-line]',\n  template: `\n    <svg:path\n      [@animationState]=\"'active'\"\n      class=\"line\"\n      [attr.d]=\"initialPath\"\n      [attr.fill]=\"fill\"\n      [attr.stroke]=\"stroke\"\n      stroke-width=\"1.5px\"\n    />\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':enter', [\n        style({\n          strokeDasharray: 2000,\n          strokeDashoffset: 2000,\n        }),\n        animate(1000, style({\n          strokeDashoffset: 0\n        }))\n      ])\n    ])\n  ]\n})\nexport class LineComponent implements OnChanges {\n\n  @Input() path;\n  @Input() stroke;\n  @Input() data;\n  @Input() fill: string = 'none';\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n\n  initialized: boolean = false;\n  initialPath: string;\n\n  constructor(private element: ElementRef) {\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!this.initialized) {\n      this.initialized = true;\n      this.initialPath = this.path;\n    } else {\n      this.updatePathEl();\n    }\n  }\n\n  updatePathEl(): void {\n    const node = select(this.element.nativeElement).select('.line');\n\n    if (this.animations) {\n      node\n        .transition().duration(750)\n        .attr('d', this.path);\n    } else {\n      node.attr('d', this.path);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/line-chart/line.component.ts","import './polyfills';\n\nimport { NgModule } from '@angular/core';\nimport { ChartCommonModule } from './common/chart-common.module';\nimport { AreaChartModule } from './area-chart/area-chart.module';\nimport { BarChartModule } from './bar-chart/bar-chart.module';\nimport { BubbleChartModule } from './bubble-chart/bubble-chart.module';\nimport { ForceDirectedGraphModule } from './force-directed-graph/force-directed-graph.module';\nimport { HeatMapModule } from './heat-map/heat-map.module';\nimport { LineChartModule } from './line-chart/line-chart.module';\nimport { PolarChartModule } from './polar-chart/polar-chart.module';\nimport { NumberCardModule } from './number-card/number-card.module';\nimport { PieChartModule } from './pie-chart/pie-chart.module';\nimport { TreeMapModule } from './tree-map/tree-map.module';\nimport { GaugeModule } from './gauge/gauge.module';\n\n@NgModule({\n  exports: [\n    ChartCommonModule,\n    AreaChartModule,\n    BarChartModule,\n    BubbleChartModule,\n    ForceDirectedGraphModule,\n    HeatMapModule,\n    LineChartModule,\n    PolarChartModule,\n    NumberCardModule,\n    PieChartModule,\n    TreeMapModule,\n    GaugeModule\n  ]\n})\nexport class NgxChartsModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/ngx-charts.module.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { invertColor } from '../utils/color-utils';\n\nexport interface CardModel {\n  x;\n  y;\n  width: number;\n  height: number;\n  color: string;\n  label: string;\n  data;\n  tooltipText: string;\n}\n\n@Component({\n  selector: 'g[ngx-charts-card-series]',\n  template: `\n    <svg:rect\n      *ngFor=\"let c of emptySlots; trackBy: trackBy\"\n      class=\"card-empty\"\n      [attr.x]=\"c.x\"\n      [attr.y]=\"c.y\"\n      [style.fill]=\"emptyColor\"\n      [attr.width]=\"c.width\"\n      [attr.height]=\"c.height\"\n      rx=\"3\"\n      ry=\"3\"\n    />\n    <svg:g\n      ngx-charts-card\n      *ngFor=\"let c of cards; trackBy: trackBy\"\n      [x]=\"c.x\"\n      [y]=\"c.y\"\n      [width]=\"c.width\"\n      [height]=\"c.height\"\n      [color]=\"c.color\"\n      [bandColor]=\"c.bandColor\"\n      [textColor]=\"c.textColor\"\n      [data]=\"c.data\"\n      [label]=\"c.label\"\n      [medianSize]=\"medianSize\"\n      [valueFormatting]=\"valueFormatting\"\n      [labelFormatting]=\"labelFormatting\"\n      [animations]=\"animations\"\n      (select)=\"onClick($event)\"\n    />\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CardSeriesComponent implements OnChanges {\n  @Input() data: any[];\n  @Input() slots: any[];\n  @Input() dims;\n  @Input() colors;\n  @Input() innerPadding = 15;\n\n  @Input() cardColor;\n  @Input() bandColor;\n  @Input() emptyColor = 'rgba(0, 0, 0, 0)';\n  @Input() textColor;\n  @Input() valueFormatting: any;\n  @Input() labelFormatting: any;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n\n  cards: CardModel[];\n  emptySlots: any[];\n  medianSize: number;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    if (this.data.length > 2) {\n      const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n\n      const sortedLengths = this.data\n        .map(d => {\n          const hasValue = d && d.data && typeof d.data.value !== 'undefined' && d.data.value !== null;\n          return hasValue\n            ? valueFormatting({\n                data: d.data,\n                label: d ? d.data.name : '',\n                value: d && d.data ? d.data.value : ''\n              }).length\n            : 0;\n        })\n        .sort((a, b) => b - a);\n      const idx = Math.ceil(this.data.length / 2);\n      this.medianSize = sortedLengths[idx];\n    }\n\n    const cards = this.getCards();\n    this.cards = cards.filter(d => d.data.value !== null);\n    this.emptySlots = cards.filter(d => d.data.value === null);\n  }\n\n  getCards(): any[] {\n    const yPadding =\n      typeof this.innerPadding === 'number' ? this.innerPadding : this.innerPadding[0] + this.innerPadding[2];\n    const xPadding =\n      typeof this.innerPadding === 'number' ? this.innerPadding : this.innerPadding[1] + this.innerPadding[3];\n\n    return this.data.map((d, index) => {\n      let label = d.data.name;\n      if (label && label.constructor.name === 'Date') {\n        label = label.toLocaleDateString();\n      } else {\n        label = label ? label.toLocaleString() : label;\n      }\n\n      const value = d.data.value;\n      const valueColor = label ? this.colors.getColor(label) : this.emptyColor;\n      const color = this.cardColor || valueColor || '#000';\n      return {\n        x: d.x,\n        y: d.y,\n        width: d.width - xPadding,\n        height: d.height - yPadding,\n        color,\n        bandColor: this.bandColor || valueColor,\n        textColor: this.textColor || invertColor(color),\n        label,\n        data: d.data,\n        tooltipText: `${label}: ${value}`\n      };\n    });\n  }\n\n  trackBy(index, card): string {\n    return card.label;\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/number-card/card-series.component.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./card.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/number-card/card.component.scss\n// module id = ./src/number-card/card.component.scss\n// module chunks = 0","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ElementRef,\n  SimpleChanges,\n  OnChanges,\n  ViewChild,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  NgZone,\n  OnDestroy\n} from '@angular/core';\nimport { trimLabel } from '../common/trim-label.helper';\nimport { roundedRect } from '../common/shape.helper';\nimport { count, decimalChecker } from '../common/count';\n\n@Component({\n  selector: 'g[ngx-charts-card]',\n  template: `\n    <svg:g [attr.transform]=\"transform\" class=\"cell\" (click)=\"onClick()\">\n      <svg:rect class=\"card\" [style.fill]=\"color\" [attr.width]=\"cardWidth\" [attr.height]=\"cardHeight\" rx=\"3\" ry=\"3\" />\n      <svg:path\n        *ngIf=\"bandColor && bandColor !== color\"\n        class=\"card-band\"\n        [attr.fill]=\"bandColor\"\n        [attr.transform]=\"transformBand\"\n        stroke=\"none\"\n        [attr.d]=\"bandPath\"\n      />\n      <title>{{ label }}</title>\n      <svg:foreignObject\n        class=\"trimmed-label\"\n        x=\"5\"\n        [attr.x]=\"textPadding[3]\"\n        [attr.y]=\"cardHeight - textPadding[2]\"\n        [attr.width]=\"textWidth\"\n        [attr.height]=\"labelFontSize + textPadding[2]\"\n        alignment-baseline=\"hanging\"\n      >\n        <xhtml:p\n          [style.color]=\"textColor\"\n          [style.fontSize.px]=\"labelFontSize\"\n          [style.lineHeight.px]=\"labelFontSize\"\n          [innerHTML]=\"formattedLabel\"\n        >\n        </xhtml:p>\n      </svg:foreignObject>\n      <svg:text\n        #textEl\n        class=\"value-text\"\n        [attr.x]=\"textPadding[3]\"\n        [attr.y]=\"textPadding[0]\"\n        [style.fill]=\"textColor\"\n        text-anchor=\"start\"\n        alignment-baseline=\"hanging\"\n        [style.font-size.pt]=\"textFontSize\"\n      >\n        {{ value }}\n      </svg:text>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CardComponent implements OnChanges, OnDestroy {\n  @Input() color;\n  @Input() bandColor;\n  @Input() textColor;\n\n  @Input() x;\n  @Input() y;\n  @Input() width;\n  @Input() height;\n  @Input() label;\n  @Input() data;\n  @Input() medianSize: number;\n  @Input() valueFormatting: any;\n  @Input() labelFormatting: any;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n\n  @ViewChild('textEl', { static: false }) textEl: ElementRef;\n\n  element: HTMLElement;\n  value: string = '';\n  transform: string;\n  formattedLabel: string;\n  cardWidth: number;\n  cardHeight: number;\n  textWidth: number;\n  textFontSize: number = 12;\n  textTransform: string = '';\n  initialized: boolean = false;\n  animationReq: any;\n\n  bandHeight: number = 10;\n  transformBand: string;\n  textPadding = [10, 20, 5, 20];\n  labelFontSize = 15;\n\n  bandPath: string;\n\n  constructor(element: ElementRef, private cd: ChangeDetectorRef, private zone: NgZone) {\n    this.element = element.nativeElement;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  ngOnDestroy(): void {\n    cancelAnimationFrame(this.animationReq);\n  }\n\n  update(): void {\n    this.zone.run(() => {\n      const hasValue = this.data && typeof this.data.value !== 'undefined';\n      const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n      const labelFormatting = this.labelFormatting || (card => trimLabel(card.label, 55));\n\n      this.transform = `translate(${this.x} , ${this.y})`;\n\n      this.textWidth = Math.max(0, this.width) - this.textPadding[1] - this.textPadding[3];\n      this.cardWidth = Math.max(0, this.width);\n      this.cardHeight = Math.max(0, this.height);\n\n      this.label = this.label ? this.label : this.data.name;\n\n      const cardData = {\n        label: this.label,\n        data: this.data,\n        value: this.data.value\n      };\n\n      this.formattedLabel = labelFormatting(cardData);\n      this.transformBand = `translate(0 , ${this.cardHeight - this.bandHeight})`;\n\n      const value = hasValue ? valueFormatting(cardData) : '';\n\n      this.value = this.paddedValue(value);\n      this.setPadding();\n\n      this.bandPath = roundedRect(0, 0, this.cardWidth, this.bandHeight, 3, [false, false, true, true]);\n\n      setTimeout(() => {\n        this.scaleText();\n        this.value = value;\n        if (hasValue && !this.initialized) {\n          setTimeout(() => this.startCount(), 20);\n        }\n      }, 8);\n    });\n  }\n\n  paddedValue(value: string) {\n    if (this.medianSize && this.medianSize > value.length) {\n      value += '\\u2007'.repeat(this.medianSize - value.length);\n    }\n    return value;\n  }\n\n  startCount(): void {\n    if (!this.initialized && this.animations) {\n      cancelAnimationFrame(this.animationReq);\n\n      const val = this.data.value;\n      const decs = decimalChecker(val);\n      const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n\n      const callback = ({ value, finished }) => {\n        this.zone.run(() => {\n          value = finished ? val : value;\n          this.value = valueFormatting({ label: this.label, data: this.data, value });\n          if (!finished) {\n            this.value = this.paddedValue(this.value);\n          }\n          this.cd.markForCheck();\n        });\n      };\n\n      this.animationReq = count(0, val, decs, 1, callback);\n      this.initialized = true;\n    }\n  }\n\n  scaleText(): void {\n    this.zone.run(() => {\n      const { width, height } = this.textEl.nativeElement.getBoundingClientRect();\n      if (width === 0 || height === 0) {\n        return;\n      }\n\n      const textPadding = (this.textPadding[1] = this.textPadding[3] = this.cardWidth / 8);\n      const availableWidth = this.cardWidth - 2 * textPadding;\n      const availableHeight = this.cardHeight / 3;\n\n      const resizeScale = Math.min(availableWidth / width, availableHeight / height);\n      this.textFontSize = Math.floor(this.textFontSize * resizeScale);\n      this.labelFontSize = Math.min(this.textFontSize, 15);\n\n      this.setPadding();\n      this.cd.markForCheck();\n    });\n  }\n\n  setPadding() {\n    this.textPadding[1] = this.textPadding[3] = this.cardWidth / 8;\n    const padding = this.cardHeight / 2;\n    this.textPadding[0] = padding - this.textFontSize - this.labelFontSize / 2;\n    this.textPadding[2] = padding - this.labelFontSize;\n  }\n\n  onClick(): void {\n    this.select.emit(this.data);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/number-card/card.component.ts","export * from './number-card.module';\nexport * from './number-card.component';\nexport * from './card.component';\nexport * from './card-series.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/number-card/index.ts","import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { gridLayout, gridSize } from '../common/grid-layout.helper';\n\n@Component({\n  selector: 'ngx-charts-number-card',\n  template: `\n    <ngx-charts-chart [view]=\"[width, height]\" [showLegend]=\"false\" [animations]=\"animations\">\n      <svg:g [attr.transform]=\"transform\" class=\"number-card chart\" [class.clickable]=\"clickable\">\n        <svg:g\n          ngx-charts-card-series\n          [colors]=\"colors\"\n          [cardColor]=\"cardColor\"\n          [bandColor]=\"bandColor\"\n          [textColor]=\"textColor\"\n          [emptyColor]=\"emptyColor\"\n          [data]=\"data\"\n          [dims]=\"dims\"\n          [innerPadding]=\"innerPadding\"\n          [valueFormatting]=\"valueFormatting\"\n          [labelFormatting]=\"labelFormatting\"\n          [animations]=\"animations\"\n          (select)=\"onClick($event)\"\n        />\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss'), require('./card.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NumberCardComponent extends BaseChartComponent {\n  @Input() cardColor: string;\n  @Input() bandColor: string;\n  @Input() emptyColor: string = 'rgba(0, 0, 0, 0)';\n  @Input() innerPadding = 15;\n  @Input() textColor: string;\n  @Input() valueFormatting: any;\n  @Input() labelFormatting: any;\n  @Input() designatedTotal: number;\n\n  dims: ViewDimensions;\n  data: any[];\n  slots: any[];\n  colors: ColorHelper;\n  transform: string;\n  domain: any[];\n  margin = [10, 10, 10, 10];\n\n  backgroundCards: any[];\n\n  get clickable() {\n    return !!this.select.observers.length;\n  }\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin\n    });\n\n    this.formatDates();\n\n    this.domain = this.getDomain();\n\n    this.setColors();\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n\n    const size = gridSize(this.dims, this.results.length, 150);\n    const N = size[0] * size[1];\n\n    const data = this.results.slice();\n\n    while (data.length < N) {\n      data.push({ value: null });\n    }\n\n    this.data = gridLayout(this.dims, data, 150, this.designatedTotal);\n  }\n\n  getDomain(): any[] {\n    return this.results.map(d => d.label);\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  setColors(): void {\n    this.colors = new ColorHelper(this.scheme, 'ordinal', this.domain, this.customColors);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/number-card/number-card.component.ts","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { CardComponent } from './card.component';\nimport { CardSeriesComponent } from './card-series.component';\nimport { NumberCardComponent } from './number-card.component';\n\n@NgModule({\n  imports: [ChartCommonModule],\n  declarations: [\n    CardComponent,\n    CardSeriesComponent,\n    NumberCardComponent\n  ],\n  exports: [\n    CardComponent,\n    CardSeriesComponent,\n    NumberCardComponent\n  ]\n})\nexport class NumberCardModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/number-card/number-card.module.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./advanced-pie-chart.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pie-chart/advanced-pie-chart.component.scss\n// module id = ./src/pie-chart/advanced-pie-chart.component.scss\n// module chunks = 0","import {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { DataItem } from '../models/chart-data.model';\n\n@Component({\n  selector: 'ngx-charts-advanced-pie-chart',\n  template: `\n    <div [style.width.px]=\"width\" [style.height.px]=\"height\">\n      <div class=\"advanced-pie chart\" [style.width.px]=\"dims.width\" [style.height.px]=\"dims.height\">\n        <ngx-charts-chart [view]=\"[width, height]\" [showLegend]=\"false\" [animations]=\"animations\">\n          <svg:g [attr.transform]=\"transform\" class=\"pie chart\">\n            <svg:g\n              ngx-charts-pie-series\n              [colors]=\"colors\"\n              [series]=\"results\"\n              [innerRadius]=\"innerRadius\"\n              [activeEntries]=\"activeEntries\"\n              [outerRadius]=\"outerRadius\"\n              [gradient]=\"gradient\"\n              [tooltipDisabled]=\"tooltipDisabled\"\n              [tooltipTemplate]=\"tooltipTemplate\"\n              [tooltipText]=\"tooltipText\"\n              (select)=\"onClick($event)\"\n              (activate)=\"onActivate($event)\"\n              (deactivate)=\"onDeactivate($event)\"\n              [animations]=\"animations\"\n            ></svg:g>\n          </svg:g>\n        </ngx-charts-chart>\n      </div>\n      <div class=\"advanced-pie-legend-wrapper\" [style.width.px]=\"width - dims.width\" [style.height.px]=\"height\">\n        <ngx-charts-advanced-legend\n          [data]=\"results\"\n          [colors]=\"colors\"\n          [width]=\"width - dims.width - margin[1]\"\n          [label]=\"label\"\n          [animations]=\"animations\"\n          [valueFormatting]=\"valueFormatting\"\n          [labelFormatting]=\"nameFormatting\"\n          [percentageFormatting]=\"percentageFormatting\"\n          (select)=\"onClick($event)\"\n          (activate)=\"onActivate($event, true)\"\n          (deactivate)=\"onDeactivate($event, true)\"\n        >\n        </ngx-charts-advanced-legend>\n      </div>\n    </div>\n  `,\n  styles: [require('../common/base-chart.component.scss'), require('./advanced-pie-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AdvancedPieChartComponent extends BaseChartComponent {\n  @Input() gradient: boolean;\n  @Input() activeEntries: any[] = [];\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipText: any;\n  @Input() label: string = 'Total';\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  data: any;\n  dims: ViewDimensions;\n  domain: any[];\n  outerRadius: number;\n  innerRadius: number;\n  transform: string;\n  colors: ColorHelper;\n  legendWidth: number;\n  margin = [20, 20, 20, 20];\n\n  @Input() valueFormatting: (value: number) => any;\n  @Input() nameFormatting: (value: string) => any;\n  @Input() percentageFormatting: (value: number) => any;\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: (this.width * 4) / 12.0,\n      height: this.height,\n      margins: this.margin\n    });\n\n    this.formatDates();\n\n    this.domain = this.getDomain();\n    this.setColors();\n\n    const xOffset = this.dims.width / 2;\n    const yOffset = this.margin[0] + this.dims.height / 2;\n    this.legendWidth = this.width - this.dims.width - this.margin[1];\n\n    this.outerRadius = Math.min(this.dims.width, this.dims.height) / 2.5;\n    this.innerRadius = this.outerRadius * 0.75;\n\n    this.transform = `translate(${xOffset} , ${yOffset})`;\n  }\n\n  getDomain(): any[] {\n    return this.results.map(d => d.label);\n  }\n\n  onClick(data: DataItem) {\n    this.select.emit(data);\n  }\n\n  setColors(): void {\n    this.colors = new ColorHelper(this.scheme, 'ordinal', this.domain, this.customColors);\n  }\n\n  onActivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/pie-chart/advanced-pie-chart.component.ts","export * from './pie-chart.module';\nexport * from './advanced-pie-chart.component';\nexport * from './pie-chart.component';\nexport * from './pie-arc.component';\nexport * from './pie-grid.component';\nexport * from './pie-grid-series.component';\nexport * from './pie-series.component';\nexport * from './pie-label.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/pie-chart/index.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ElementRef,\n  SimpleChanges,\n  OnChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { interpolate } from 'd3-interpolate';\nimport { select } from 'd3-selection';\nimport { arc } from 'd3-shape';\n\nimport { id } from '../utils/id';\n/* tslint:disable */\nimport { MouseEvent } from '../events';\n\n@Component({\n  selector: 'g[ngx-charts-pie-arc]',\n  template: `\n    <svg:g class=\"arc-group\">\n      <svg:defs *ngIf=\"gradient\">\n        <svg:g ngx-charts-svg-radial-gradient\n          [color]=\"fill\"\n          orientation=\"vertical\"\n          [name]=\"radialGradientId\"\n          [startOpacity]=\"startOpacity\"\n        />\n      </svg:defs>\n      <svg:path\n        [attr.d]=\"path\"\n        class=\"arc\"\n        [class.active]=\"isActive\"\n        [attr.fill]=\"getGradient()\"\n        (click)=\"onClick()\"\n        (dblclick)=\"onDblClick($event)\"\n        (mouseenter)=\"activate.emit(data)\"\n        (mouseleave)=\"deactivate.emit(data)\"\n        [style.pointer-events]=\"getPointerEvents()\"\n      />\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieArcComponent implements OnChanges {\n  @Input() fill;\n  @Input() startAngle: number = 0;\n  @Input() endAngle: number = Math.PI * 2;\n  @Input() innerRadius;\n  @Input() outerRadius;\n  @Input() cornerRadius: number = 0;\n  @Input() value;\n  @Input() max;\n  @Input() data;\n  @Input() explodeSlices: boolean = false;\n  @Input() gradient: boolean = false;\n  @Input() animate: boolean = true;\n  @Input() pointerEvents: boolean = true;\n  @Input() isActive: boolean = false;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n  @Output() dblclick = new EventEmitter();\n\n  element: HTMLElement;\n  path: any;\n  startOpacity: number;\n  radialGradientId: string;\n  linearGradientId: string;\n  gradientFill: string;\n  initialized: boolean = false;\n  private _timeout;\n\n  constructor(element: ElementRef) {\n    this.element = element.nativeElement;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  getGradient() {\n    return this.gradient ? this.gradientFill : this.fill;\n  }\n\n  getPointerEvents() {\n    return this.pointerEvents ? 'auto' : 'none';\n  }\n\n  update(): void {\n    const calc = this.calculateArc();\n    this.startOpacity = 0.5;\n    this.radialGradientId = 'linearGrad' + id().toString();\n    this.gradientFill = `url(#${this.radialGradientId})`;\n\n    if (this.animate) {\n      if (this.initialized) {\n        this.updateAnimation();\n      } else {\n        this.loadAnimation();\n        this.initialized = true;\n      }\n    } else {\n      this.path = calc.startAngle(this.startAngle).endAngle(this.endAngle)();\n    }\n  }\n\n  calculateArc(): any {\n    let outerRadius = this.outerRadius;\n    if (this.explodeSlices && this.innerRadius === 0) {\n      outerRadius = (this.outerRadius * this.value) / this.max;\n    }\n\n    return arc()\n      .innerRadius(this.innerRadius)\n      .outerRadius(outerRadius)\n      .cornerRadius(this.cornerRadius);\n  }\n\n  loadAnimation(): void {\n    const node = select(this.element)\n      .selectAll('.arc')\n      .data([{ startAngle: this.startAngle, endAngle: this.endAngle }]);\n\n    const calc = this.calculateArc();\n\n    node\n      .transition()\n      .attrTween('d', function(d) {\n        (<any>this)._current = (<any>this)._current || d;\n        const copyOfD = Object.assign({}, d);\n        copyOfD.endAngle = copyOfD.startAngle;\n        const interpolater = interpolate(copyOfD, copyOfD);\n        (<any>this)._current = interpolater(0);\n        return function(t) {\n          return calc(interpolater(t));\n        };\n      })\n      .transition()\n      .duration(750)\n      .attrTween('d', function(d) {\n        (<any>this)._current = (<any>this)._current || d;\n        const interpolater = interpolate((<any>this)._current, d);\n        (<any>this)._current = interpolater(0);\n        return function(t) {\n          return calc(interpolater(t));\n        };\n      });\n  }\n\n  updateAnimation(): void {\n    const node = select(this.element)\n      .selectAll('.arc')\n      .data([{ startAngle: this.startAngle, endAngle: this.endAngle }]);\n\n    const calc = this.calculateArc();\n\n    node\n      .transition()\n      .duration(750)\n      .attrTween('d', function(d) {\n        (<any>this)._current = (<any>this)._current || d;\n        const interpolater = interpolate((<any>this)._current, d);\n        (<any>this)._current = interpolater(0);\n        return function(t) {\n          return calc(interpolater(t));\n        };\n      });\n  }\n\n  onClick(): void {\n    clearTimeout(this._timeout);\n    this._timeout = setTimeout(() => this.select.emit(this.data), 200);\n  }\n\n  onDblClick(event: MouseEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    clearTimeout(this._timeout);\n\n    this.dblclick.emit({\n      data: this.data,\n      nativeEvent: event\n    });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/pie-chart/pie-arc.component.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./pie-chart.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pie-chart/pie-chart.component.scss\n// module id = ./src/pie-chart/pie-chart.component.scss\n// module chunks = 0","import {\n  Component,\n  Input,\n  Output,\n  ViewEncapsulation,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { DataItem } from '../models/chart-data.model';\n\n@Component({\n  selector: 'ngx-charts-pie-chart',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelActivate)=\"onActivate($event, true)\"\n      (legendLabelDeactivate)=\"onDeactivate($event, true)\"\n      (legendLabelClick)=\"onClick($event)\"\n    >\n      <svg:g [attr.transform]=\"translation\" class=\"pie-chart chart\">\n        <svg:g\n          ngx-charts-pie-series\n          [colors]=\"colors\"\n          [series]=\"data\"\n          [showLabels]=\"labels\"\n          [labelFormatting]=\"labelFormatting\"\n          [trimLabels]=\"trimLabels\"\n          [maxLabelLength]=\"maxLabelLength\"\n          [activeEntries]=\"activeEntries\"\n          [innerRadius]=\"innerRadius\"\n          [outerRadius]=\"outerRadius\"\n          [explodeSlices]=\"explodeSlices\"\n          [gradient]=\"gradient\"\n          [animations]=\"animations\"\n          [tooltipDisabled]=\"tooltipDisabled\"\n          [tooltipTemplate]=\"tooltipTemplate\"\n          [tooltipText]=\"tooltipText\"\n          (dblclick)=\"dblclick.emit($event)\"\n          (select)=\"onClick($event)\"\n          (activate)=\"onActivate($event)\"\n          (deactivate)=\"onDeactivate($event)\"\n        />\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss'), require('./pie-chart.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieChartComponent extends BaseChartComponent {\n  @Input() labels = false;\n  @Input() legend = false;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() explodeSlices = false;\n  @Input() doughnut = false;\n  @Input() arcWidth = 0.25;\n  @Input() gradient: boolean;\n  @Input() activeEntries: any[] = [];\n  @Input() tooltipDisabled: boolean = false;\n  @Input() labelFormatting: any;\n  @Input() trimLabels: boolean = true;\n  @Input() maxLabelLength: number = 10;\n  @Input() tooltipText: any;\n  @Output() dblclick = new EventEmitter();\n  // optional margins\n  @Input() margins: number[];\n  @Output() select = new EventEmitter();\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  translation: string;\n  outerRadius: number;\n  innerRadius: number;\n  data: any;\n  colors: ColorHelper;\n  domain: any;\n  dims: any;\n  legendOptions: any;\n\n  update(): void {\n    super.update();\n\n    if (this.labels && this.hasNoOptionalMarginsSet()) {\n      this.margins = [30, 80, 30, 80];\n    } else if (!this.labels && this.hasNoOptionalMarginsSet()) {\n      // default value for margins\n      this.margins = [20, 20, 20, 20];\n    }\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margins,\n      showLegend: this.legend,\n      legendPosition: this.legendPosition\n    });\n\n    this.formatDates();\n\n    const xOffset = this.margins[3] + this.dims.width / 2;\n    const yOffset = this.margins[0] + this.dims.height / 2;\n    this.translation = `translate(${xOffset}, ${yOffset})`;\n    this.outerRadius = Math.min(this.dims.width, this.dims.height);\n    if (this.labels) {\n      // make room for labels\n      this.outerRadius /= 3;\n    } else {\n      this.outerRadius /= 2;\n    }\n    this.innerRadius = 0;\n    if (this.doughnut) {\n      this.innerRadius = this.outerRadius * (1 - this.arcWidth);\n    }\n\n    this.domain = this.getDomain();\n\n    // sort data according to domain\n    this.data = this.results.sort((a, b) => {\n      return this.domain.indexOf(a.name) - this.domain.indexOf(b.name);\n    });\n\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n  }\n\n  getDomain(): any[] {\n    return this.results.map(d => d.label);\n  }\n\n  onClick(data: DataItem): void {\n    this.select.emit(data);\n  }\n\n  setColors(): void {\n    this.colors = new ColorHelper(this.scheme, 'ordinal', this.domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    return {\n      scaleType: 'ordinal',\n      domain: this.domain,\n      colors: this.colors,\n      title: this.legendTitle,\n      position: this.legendPosition\n    };\n  }\n\n  onActivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  private hasNoOptionalMarginsSet(): boolean {\n    return !this.margins || this.margins.length <= 0;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/pie-chart/pie-chart.component.ts","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { AdvancedPieChartComponent } from './advanced-pie-chart.component';\nimport { PieLabelComponent } from './pie-label.component';\nimport { PieArcComponent } from './pie-arc.component';\nimport { PieChartComponent } from './pie-chart.component';\nimport { PieGridComponent } from './pie-grid.component';\nimport { PieGridSeriesComponent } from './pie-grid-series.component';\nimport { PieSeriesComponent } from './pie-series.component';\n\n@NgModule({\n  imports: [ChartCommonModule],\n  declarations: [\n    AdvancedPieChartComponent,\n    PieLabelComponent,\n    PieArcComponent,\n    PieChartComponent,\n    PieGridComponent,\n    PieGridSeriesComponent,\n    PieSeriesComponent\n  ],\n  exports: [\n    AdvancedPieChartComponent,\n    PieLabelComponent,\n    PieArcComponent,\n    PieChartComponent,\n    PieGridComponent,\n    PieGridSeriesComponent,\n    PieSeriesComponent\n  ]\n})\nexport class PieChartModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/pie-chart/pie-chart.module.ts","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ElementRef,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectionStrategy\n} from '@angular/core';\nimport { pie } from 'd3-shape';\n\n@Component({\n  selector: 'g[ngx-charts-pie-grid-series]',\n  template: `\n    <svg:g class=\"pie-grid-arcs\">\n      <svg:g\n        ngx-charts-pie-arc\n        *ngFor=\"let arc of arcs; trackBy: trackBy\"\n        [attr.class]=\"arc.class\"\n        [startAngle]=\"arc.startAngle\"\n        [endAngle]=\"arc.endAngle\"\n        [innerRadius]=\"innerRadius\"\n        [outerRadius]=\"outerRadius\"\n        [fill]=\"color(arc)\"\n        [value]=\"arc.data.value\"\n        [data]=\"arc.data\"\n        [gradient]=\"false\"\n        [pointerEvents]=\"arc.pointerEvents\"\n        [animate]=\"arc.animate\"\n        (select)=\"onClick($event)\"\n        (activate)=\"activate.emit($event)\"\n        (deactivate)=\"deactivate.emit($event)\"\n      ></svg:g>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieGridSeriesComponent implements OnChanges {\n  @Input() colors;\n  @Input() data;\n  @Input() innerRadius = 70;\n  @Input() outerRadius = 80;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n\n  element: HTMLElement;\n  layout: any;\n  arcs: any;\n\n  constructor(element: ElementRef) {\n    this.element = element.nativeElement;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.layout = pie<any, any>()\n      .value(d => d.data.value)\n      .sort(null);\n\n    this.arcs = this.getArcs();\n  }\n\n  getArcs(): any[] {\n    return this.layout(this.data).map((arc, index) => {\n      const label = arc.data.data.name;\n      const other = arc.data.data.other;\n\n      if (index === 0) {\n        arc.startAngle = 0;\n      }\n\n      const color = this.colors(label);\n      return {\n        data: arc.data.data,\n        class: 'arc ' + 'arc' + index,\n        fill: color,\n        startAngle: other ? 0 : arc.startAngle,\n        endAngle: arc.endAngle,\n        animate: this.animations && !other,\n        pointerEvents: !other\n      };\n    });\n  }\n\n  onClick(data): void {\n    this.select.emit(this.data[0].data);\n  }\n\n  trackBy(index, item): string {\n    return item.data.name;\n  }\n\n  label(arc): string {\n    return arc.data.name;\n  }\n\n  color(arc): any {\n    return this.colors(this.label(arc));\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/pie-chart/pie-grid-series.component.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./pie-grid.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pie-chart/pie-grid.component.scss\n// module id = ./src/pie-chart/pie-grid.component.scss\n// module chunks = 0","import {\n  Component,\n  Input,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef,\n  Output,\n  EventEmitter\n} from '@angular/core';\nimport { min } from 'd3-array';\nimport { format } from 'd3-format';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { trimLabel } from '../common/trim-label.helper';\nimport { gridLayout } from '../common/grid-layout.helper';\nimport { formatLabel } from '../common/label.helper';\nimport { DataItem } from '../models/chart-data.model';\n\n@Component({\n  selector: 'ngx-charts-pie-grid',\n  template: `\n    <ngx-charts-chart [view]=\"[width, height]\" [showLegend]=\"false\" [animations]=\"animations\">\n      <svg:g [attr.transform]=\"transform\" class=\"pie-grid chart\">\n        <svg:g *ngFor=\"let series of series\" class=\"pie-grid-item\" [attr.transform]=\"series.transform\">\n          <svg:g\n            ngx-charts-pie-grid-series\n            [colors]=\"series.colors\"\n            [data]=\"series.data\"\n            [innerRadius]=\"series.innerRadius\"\n            [outerRadius]=\"series.outerRadius\"\n            [animations]=\"animations\"\n            (select)=\"onClick($event)\"\n            ngx-tooltip\n            [tooltipDisabled]=\"tooltipDisabled\"\n            [tooltipPlacement]=\"'top'\"\n            [tooltipType]=\"'tooltip'\"\n            [tooltipTitle]=\"tooltipTemplate ? undefined : tooltipText({ data: series })\"\n            [tooltipTemplate]=\"tooltipTemplate\"\n            [tooltipContext]=\"series.data[0].data\"\n            (activate)=\"onActivate($event)\"\n            (deactivate)=\"onDeactivate($event)\"\n          />\n          <svg:text\n            *ngIf=\"animations\"\n            class=\"label percent-label\"\n            dy=\"-0.5em\"\n            x=\"0\"\n            y=\"5\"\n            ngx-charts-count-up\n            [countTo]=\"series.percent\"\n            [countSuffix]=\"'%'\"\n            text-anchor=\"middle\"\n          ></svg:text>\n          <svg:text *ngIf=\"!animations\" class=\"label percent-label\" dy=\"-0.5em\" x=\"0\" y=\"5\" text-anchor=\"middle\">\n            {{ series.percent.toLocaleString() }}\n          </svg:text>\n          <svg:text class=\"label\" dy=\"0.5em\" x=\"0\" y=\"5\" text-anchor=\"middle\">\n            {{ series.label }}\n          </svg:text>\n          <svg:text\n            *ngIf=\"animations\"\n            class=\"label\"\n            dy=\"1.23em\"\n            x=\"0\"\n            [attr.y]=\"series.outerRadius\"\n            text-anchor=\"middle\"\n            ngx-charts-count-up\n            [countTo]=\"series.total\"\n            [countPrefix]=\"label + ': '\"\n          ></svg:text>\n          <svg:text\n            *ngIf=\"!animations\"\n            class=\"label\"\n            dy=\"1.23em\"\n            x=\"0\"\n            [attr.y]=\"series.outerRadius\"\n            text-anchor=\"middle\"\n          >\n            {{ label }}: {{ series.total.toLocaleString() }}\n          </svg:text>\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('../common/base-chart.component.scss'), require('./pie-grid.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieGridComponent extends BaseChartComponent {\n  @Input() designatedTotal: number;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipText: (o: any) => any;\n  @Input() label: string = 'Total';\n  @Input() minWidth: number = 150;\n  @Input() activeEntries: any[] = [];\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  dims: ViewDimensions;\n  data: any[];\n  transform: string;\n  series: any[];\n  domain: any[];\n  colorScale: ColorHelper;\n  margin = [20, 20, 20, 20];\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin\n    });\n\n    this.formatDates();\n\n    this.domain = this.getDomain();\n\n    this.data = gridLayout(this.dims, this.results, this.minWidth, this.designatedTotal);\n    this.transform = `translate(${this.margin[3]} , ${this.margin[0]})`;\n\n    this.series = this.getSeries();\n    this.setColors();\n\n    this.tooltipText = this.tooltipText || this.defaultTooltipText;\n  }\n\n  defaultTooltipText({ data }): string {\n    const label = trimLabel(formatLabel(data.name));\n    const val = data.value.toLocaleString();\n    return `\n      <span class=\"tooltip-label\">${label}</span>\n      <span class=\"tooltip-val\">${val}</span>\n    `;\n  }\n\n  getDomain(): any[] {\n    return this.results.map(d => d.label);\n  }\n\n  getSeries(): any[] {\n    const total = this.designatedTotal ? this.designatedTotal : this.getTotal();\n\n    return this.data.map(d => {\n      const baselineLabelHeight = 20;\n      const padding = 10;\n      const name = d.data.name;\n      const label = formatLabel(name);\n      const value = d.data.value;\n      const radius = min([d.width - padding, d.height - baselineLabelHeight]) / 2 - 5;\n      const innerRadius = radius * 0.9;\n\n      let count = 0;\n      const colors = () => {\n        count += 1;\n        if (count === 1) {\n          return 'rgba(100,100,100,0.3)';\n        } else {\n          return this.colorScale.getColor(label);\n        }\n      };\n\n      const xPos = d.x + (d.width - padding) / 2;\n      const yPos = d.y + (d.height - baselineLabelHeight) / 2;\n\n      return {\n        transform: `translate(${xPos}, ${yPos})`,\n        colors,\n        innerRadius,\n        outerRadius: radius,\n        name,\n        label: trimLabel(label),\n        total: value,\n        value,\n        percent: format('.1%')(d.data.percent),\n        data: [\n          d,\n          {\n            data: {\n              other: true,\n              value: total - value,\n              name: d.data.name\n            }\n          }\n        ]\n      };\n    });\n  }\n\n  getTotal(): any {\n    return this.results.map(d => d.value).reduce((sum, d) => sum + d, 0);\n  }\n\n  onClick(data: DataItem): void {\n    this.select.emit(data);\n  }\n\n  setColors(): void {\n    this.colorScale = new ColorHelper(this.scheme, 'ordinal', this.domain, this.customColors);\n  }\n\n  onActivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n    if (idx > -1) {\n      return;\n    }\n\n    this.activeEntries = [item, ...this.activeEntries];\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item, fromLegend = false) {\n    item = this.results.find(d => {\n      if (fromLegend) {\n        return d.label === item.name;\n      } else {\n        return d.name === item.name;\n      }\n    });\n\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value && d.series === item.series;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/pie-chart/pie-grid.component.ts","import { Component, Input, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { arc } from 'd3-shape';\n\nimport { trimLabel } from '../common/trim-label.helper';\n\n@Component({\n  selector: 'g[ngx-charts-pie-label]',\n  template: `\n    <title>{{label}}</title>\n    <svg:g\n      [attr.transform]=\"attrTransform\"\n      [style.transform]=\"styleTransform\"\n      [style.transition]=\"textTransition\">\n      <svg:text\n        class=\"pie-label\"\n        [class.animation]=\"animations\"\n        dy=\".35em\"\n        [style.textAnchor]=\"textAnchor()\"\n        [style.shapeRendering]=\"'crispEdges'\">\n        {{labelTrim ? trimLabel(label, labelTrimSize) : label}}\n      </svg:text>\n    </svg:g>\n    <svg:path\n      [attr.d]=\"line\"\n      [attr.stroke]=\"color\"\n      fill=\"none\"\n      class=\"pie-label-line line\"\n      [class.animation]=\"animations\">\n    </svg:path>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieLabelComponent implements OnChanges {\n  @Input() data;\n  @Input() radius;\n  @Input() label;\n  @Input() color;\n  @Input() max;\n  @Input() value;\n  @Input() explodeSlices;\n  @Input() animations: boolean = true;\n  @Input() labelTrim: boolean = true;\n  @Input() labelTrimSize: number = 10;\n\n  trimLabel: (label: string, max?: number) => string;\n  line: string;\n\n  private readonly isIE = /(edge|msie|trident)/i.test(navigator.userAgent);\n\n  constructor() {\n    this.trimLabel = trimLabel;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    let startRadius = this.radius;\n    if (this.explodeSlices) {\n      startRadius = this.radius * this.value / this.max;\n    }\n\n    const innerArc = arc()\n      .innerRadius(startRadius)\n      .outerRadius(startRadius);\n\n    // Calculate innerPos then scale outer position to match label position\n    const innerPos = innerArc.centroid(this.data);\n\n    let scale = this.data.pos[1] / innerPos[1];\n    if (this.data.pos[1] === 0 || innerPos[1] === 0) {\n      scale = 1;\n    }\n    const outerPos = [scale * innerPos[0], scale * innerPos[1]];\n\n    this.line = `M${innerPos}L${outerPos}L${this.data.pos}`;\n  }\n\n  get textX(): number {\n    return this.data.pos[0];\n  }\n\n  get textY(): number {\n    return this.data.pos[1];\n  }\n\n  get styleTransform(): string {\n    return this.isIE ? null : `translate3d(${this.textX}px,${this.textY}px, 0)`;\n  }\n\n  get attrTransform(): string {\n    return !this.isIE ? null : `translate(${this.textX},${this.textY})`;\n  }\n\n  get textTransition(): string {\n    return this.isIE || !this.animations ? null : 'transform 0.75s';\n  }\n\n  textAnchor(): any {\n    return this.midAngle(this.data) < Math.PI ? 'start' : 'end';\n  }\n\n  midAngle(d): number {\n    return d.startAngle + (d.endAngle - d.startAngle) / 2;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/pie-chart/pie-label.component.ts","import {\n  Component,\n  SimpleChanges,\n  Input,\n  Output,\n  EventEmitter,\n  OnChanges,\n  ChangeDetectionStrategy,\n  TemplateRef\n} from '@angular/core';\nimport { max } from 'd3-array';\nimport { arc, pie } from 'd3-shape';\n\nimport { formatLabel } from '../common/label.helper';\n\n@Component({\n  selector: 'g[ngx-charts-pie-series]',\n  template: `\n    <svg:g *ngFor=\"let arc of data; trackBy: trackBy\">\n      <svg:g\n        ngx-charts-pie-label\n        *ngIf=\"labelVisible(arc)\"\n        [data]=\"arc\"\n        [radius]=\"outerRadius\"\n        [color]=\"color(arc)\"\n        [label]=\"labelText(arc)\"\n        [labelTrim]=\"trimLabels\"\n        [labelTrimSize]=\"maxLabelLength\"\n        [max]=\"max\"\n        [value]=\"arc.value\"\n        [explodeSlices]=\"explodeSlices\"\n        [animations]=\"animations\"\n      ></svg:g>\n      <svg:g\n        ngx-charts-pie-arc\n        [startAngle]=\"arc.startAngle\"\n        [endAngle]=\"arc.endAngle\"\n        [innerRadius]=\"innerRadius\"\n        [outerRadius]=\"outerRadius\"\n        [fill]=\"color(arc)\"\n        [value]=\"arc.data.value\"\n        [gradient]=\"gradient\"\n        [data]=\"arc.data\"\n        [max]=\"max\"\n        [explodeSlices]=\"explodeSlices\"\n        [isActive]=\"isActive(arc.data)\"\n        [animate]=\"animations\"\n        (select)=\"onClick($event)\"\n        (activate)=\"activate.emit($event)\"\n        (deactivate)=\"deactivate.emit($event)\"\n        (dblclick)=\"dblclick.emit($event)\"\n        ngx-tooltip\n        [tooltipDisabled]=\"tooltipDisabled\"\n        [tooltipPlacement]=\"'top'\"\n        [tooltipType]=\"'tooltip'\"\n        [tooltipTitle]=\"getTooltipTitle(arc)\"\n        [tooltipTemplate]=\"tooltipTemplate\"\n        [tooltipContext]=\"arc.data\"\n      ></svg:g>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PieSeriesComponent implements OnChanges {\n  @Input() colors;\n  @Input() series: any = [];\n  @Input() dims;\n  @Input() innerRadius = 60;\n  @Input() outerRadius = 80;\n  @Input() explodeSlices;\n  @Input() showLabels;\n  @Input() gradient: boolean;\n  @Input() activeEntries: any[];\n  @Input() labelFormatting: any;\n  @Input() trimLabels: boolean = true;\n  @Input() maxLabelLength: number = 10;\n  @Input() tooltipText: (o: any) => any;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipTemplate: TemplateRef<any>;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n  @Output() dblclick = new EventEmitter();\n\n  max: number;\n  data: any;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    const pieGenerator = pie<any, any>()\n      .value(d => d.value)\n      .sort(null);\n\n    const arcData = pieGenerator(this.series);\n\n    this.max = max(arcData, d => {\n      return d.value;\n    });\n\n    this.data = this.calculateLabelPositions(arcData);\n    this.tooltipText = this.tooltipText || this.defaultTooltipText;\n  }\n\n  midAngle(d): number {\n    return d.startAngle + (d.endAngle - d.startAngle) / 2;\n  }\n\n  outerArc(): any {\n    const factor = 1.5;\n\n    return arc()\n      .innerRadius(this.outerRadius * factor)\n      .outerRadius(this.outerRadius * factor);\n  }\n\n  calculateLabelPositions(pieData): any {\n    const factor = 1.5;\n    const minDistance = 10;\n    const labelPositions = pieData;\n\n    labelPositions.forEach(d => {\n      d.pos = this.outerArc().centroid(d);\n      d.pos[0] = factor * this.outerRadius * (this.midAngle(d) < Math.PI ? 1 : -1);\n    });\n\n    for (let i = 0; i < labelPositions.length - 1; i++) {\n      const a = labelPositions[i];\n      if (!this.labelVisible(a)) {\n        continue;\n      }\n\n      for (let j = i + 1; j < labelPositions.length; j++) {\n        const b = labelPositions[j];\n        if (!this.labelVisible(b)) {\n          continue;\n        }\n        // if they're on the same side\n        if (b.pos[0] * a.pos[0] > 0) {\n          // if they're overlapping\n          const o = minDistance - Math.abs(b.pos[1] - a.pos[1]);\n          if (o > 0) {\n            // push the second up or down\n            b.pos[1] += Math.sign(b.pos[0]) * o;\n          }\n        }\n      }\n    }\n\n    return labelPositions;\n  }\n\n  labelVisible(myArc): boolean {\n    return this.showLabels && myArc.endAngle - myArc.startAngle > Math.PI / 30;\n  }\n\n  getTooltipTitle(a) {\n    return this.tooltipTemplate ? undefined : this.tooltipText(a);\n  }\n\n  labelText(myArc): string {\n    if (this.labelFormatting) {\n      return this.labelFormatting(myArc.data.name);\n    }\n    return this.label(myArc);\n  }\n\n  label(myArc): string {\n    return formatLabel(myArc.data.name);\n  }\n\n  defaultTooltipText(myArc): string {\n    const label = this.label(myArc);\n    const val = formatLabel(myArc.data.value);\n\n    return `\n      <span class=\"tooltip-label\">${label}</span>\n      <span class=\"tooltip-val\">${val}</span>\n    `;\n  }\n\n  color(myArc): any {\n    return this.colors.getColor(this.label(myArc));\n  }\n\n  trackBy(index, item): string {\n    return item.data.name;\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  isActive(entry): boolean {\n    if (!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name && entry.series === d.series;\n    });\n    return item !== undefined;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/pie-chart/pie-series.component.ts","export * from './polar-chart.module';\nexport * from './polar-chart.component';\nexport * from './polar-series.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/polar-chart/index.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./polar-chart.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/polar-chart/polar-chart.component.scss\n// module id = ./src/polar-chart/polar-chart.component.scss\n// module chunks = 0","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { trigger, style, animate, transition } from '@angular/animations';\nimport { scaleLinear, scaleTime, scalePoint } from 'd3-scale';\nimport { curveCardinalClosed } from 'd3-shape';\n\nimport { calculateViewDimensions, ViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { getScaleType } from '../common/domain.helper';\nimport { isDate } from '../utils/types';\n\nconst twoPI = 2 * Math.PI;\n\n@Component({\n  selector: 'ngx-charts-polar-chart',\n  template: `\n    <ngx-charts-chart\n      [view]=\"[width, height]\"\n      [showLegend]=\"legend\"\n      [legendOptions]=\"legendOptions\"\n      [activeEntries]=\"activeEntries\"\n      [animations]=\"animations\"\n      (legendLabelClick)=\"onClick($event)\"\n      (legendLabelActivate)=\"onActivate($event)\"\n      (legendLabelDeactivate)=\"onDeactivate($event)\"\n    >\n      <svg:g class=\"polar-chart chart\" [attr.transform]=\"transform\">\n        <svg:g [attr.transform]=\"transformPlot\">\n          <svg:circle class=\"polar-chart-background\" cx=\"0\" cy=\"0\" [attr.r]=\"this.outerRadius\" />\n          <svg:g *ngIf=\"showGridLines\">\n            <svg:circle\n              *ngFor=\"let r of radiusTicks\"\n              class=\"gridline-path radial-gridline-path\"\n              cx=\"0\"\n              cy=\"0\"\n              [attr.r]=\"r\"\n            />\n          </svg:g>\n          <svg:g *ngIf=\"xAxis\">\n            <svg:g\n              ngx-charts-pie-label\n              *ngFor=\"let tick of thetaTicks\"\n              [data]=\"tick\"\n              [radius]=\"outerRadius\"\n              [label]=\"tick.label\"\n              [max]=\"outerRadius\"\n              [value]=\"showGridLines ? 1 : outerRadius\"\n              [explodeSlices]=\"true\"\n              [animations]=\"animations\"\n              [labelTrim]=\"labelTrim\"\n              [labelTrimSize]=\"labelTrimSize\"\n            ></svg:g>\n          </svg:g>\n        </svg:g>\n        <svg:g\n          ngx-charts-y-axis\n          [attr.transform]=\"transformYAxis\"\n          *ngIf=\"yAxis\"\n          [yScale]=\"yAxisScale\"\n          [dims]=\"yAxisDims\"\n          [showGridLines]=\"showGridLines\"\n          [showLabel]=\"showYAxisLabel\"\n          [labelText]=\"yAxisLabel\"\n          [trimTicks]=\"trimYAxisTicks\"\n          [maxTickLength]=\"maxYAxisTickLength\"\n          [tickFormatting]=\"yAxisTickFormatting\"\n          (dimensionsChanged)=\"updateYAxisWidth($event)\"\n        ></svg:g>\n        <svg:g\n          ngx-charts-axis-label\n          *ngIf=\"xAxis && showXAxisLabel\"\n          [label]=\"xAxisLabel\"\n          [offset]=\"labelOffset\"\n          [orient]=\"'bottom'\"\n          [height]=\"dims.height\"\n          [width]=\"dims.width\"\n        ></svg:g>\n        <svg:g [attr.transform]=\"transformPlot\">\n          <svg:g *ngFor=\"let series of results; trackBy: trackBy\" [@animationState]=\"'active'\">\n            <svg:g\n              ngx-charts-polar-series\n              [gradient]=\"gradient\"\n              [xScale]=\"xScale\"\n              [yScale]=\"yScale\"\n              [colors]=\"colors\"\n              [data]=\"series\"\n              [activeEntries]=\"activeEntries\"\n              [scaleType]=\"scaleType\"\n              [curve]=\"curve\"\n              [rangeFillOpacity]=\"rangeFillOpacity\"\n              [animations]=\"animations\"\n              [tooltipDisabled]=\"tooltipDisabled\"\n              [tooltipTemplate]=\"tooltipTemplate\"\n              (select)=\"onClick($event)\"\n              (activate)=\"onActivate($event)\"\n              (deactivate)=\"onDeactivate($event)\"\n            />\n          </svg:g>\n        </svg:g>\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [\n    require('../common/base-chart.component.scss'),\n    require('../pie-chart/pie-chart.component.scss'),\n    require('./polar-chart.component.scss')\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('animationState', [\n      transition(':leave', [\n        style({\n          opacity: 1\n        }),\n        animate(\n          500,\n          style({\n            opacity: 0\n          })\n        )\n      ])\n    ])\n  ]\n})\nexport class PolarChartComponent extends BaseChartComponent {\n  @Input() legend: boolean;\n  @Input() legendTitle: string = 'Legend';\n  @Input() legendPosition: string = 'right';\n  @Input() xAxis: boolean;\n  @Input() yAxis: boolean;\n  @Input() showXAxisLabel: boolean;\n  @Input() showYAxisLabel: boolean;\n  @Input() xAxisLabel: string;\n  @Input() yAxisLabel: string;\n  @Input() autoScale: boolean;\n  @Input() showGridLines: boolean = true;\n  @Input() curve: any = curveCardinalClosed;\n  @Input() activeEntries: any[] = [];\n  @Input() schemeType: string;\n  @Input() rangeFillOpacity: number = 0.15;\n  @Input() trimYAxisTicks: boolean = true;\n  @Input() maxYAxisTickLength: number = 16;\n  @Input() xAxisTickFormatting: (o: any) => any;\n  @Input() yAxisTickFormatting: (o: any) => any;\n  @Input() roundDomains: boolean = false;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() showSeriesOnHover: boolean = true;\n  @Input() gradient: boolean = false;\n  @Input() yAxisMinScale: number = 0;\n  @Input() labelTrim: boolean = true;\n  @Input() labelTrimSize: number = 10;\n\n  @Output() activate: EventEmitter<any> = new EventEmitter();\n  @Output() deactivate: EventEmitter<any> = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: ViewDimensions;\n  yAxisDims: ViewDimensions;\n  labelOffset: number;\n  xDomain: any;\n  yDomain: any;\n  seriesDomain: any;\n  yScale: any; // -> rScale\n  xScale: any; // -> tScale\n  yAxisScale: any; // -> yScale\n  colors: ColorHelper;\n  scaleType: string;\n  transform: string;\n  transformPlot: string;\n  transformYAxis: string;\n  transformXAxis: string;\n  series: any; // ???\n  margin = [10, 20, 10, 20];\n  xAxisHeight: number = 0;\n  yAxisWidth: number = 0;\n  filteredDomain: any;\n  legendOptions: any;\n  thetaTicks: any[];\n  radiusTicks: number[];\n  outerRadius: number;\n\n  update(): void {\n    super.update();\n\n    this.setDims();\n\n    this.setScales();\n    this.setColors();\n    this.legendOptions = this.getLegendOptions();\n\n    this.setTicks();\n  }\n\n  setDims() {\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin,\n      showXAxis: this.xAxis,\n      showYAxis: this.yAxis,\n      xAxisHeight: this.xAxisHeight,\n      yAxisWidth: this.yAxisWidth,\n      showXLabel: this.showXAxisLabel,\n      showYLabel: this.showYAxisLabel,\n      showLegend: this.legend,\n      legendType: this.schemeType,\n      legendPosition: this.legendPosition\n    });\n\n    const halfWidth = Math.floor(this.dims.width / 2);\n    const halfHeight = Math.floor(this.dims.height / 2);\n\n    const outerRadius = (this.outerRadius = Math.min(halfHeight / 1.5, halfWidth / 1.5));\n\n    const yOffset = Math.max(0, halfHeight - outerRadius);\n\n    this.yAxisDims = {\n      ...this.dims,\n      width: halfWidth\n    };\n\n    this.transform = `translate(${this.dims.xOffset}, ${this.margin[0]})`;\n    this.transformYAxis = `translate(0, ${yOffset})`;\n    this.labelOffset = this.dims.height + 40;\n    this.transformPlot = `translate(${halfWidth}, ${halfHeight})`;\n  }\n\n  setScales() {\n    const xValues = this.getXValues();\n    this.scaleType = getScaleType(xValues);\n    this.xDomain = this.filteredDomain || this.getXDomain(xValues);\n\n    this.yDomain = this.getYDomain();\n    this.seriesDomain = this.getSeriesDomain();\n\n    this.xScale = this.getXScale(this.xDomain, twoPI);\n    this.yScale = this.getYScale(this.yDomain, this.outerRadius);\n    this.yAxisScale = this.getYScale(this.yDomain.reverse(), this.outerRadius);\n  }\n\n  setTicks() {\n    let tickFormat;\n    if (this.xAxisTickFormatting) {\n      tickFormat = this.xAxisTickFormatting;\n    } else if (this.xScale.tickFormat) {\n      tickFormat = this.xScale.tickFormat.apply(this.xScale, [5]);\n    } else {\n      tickFormat = d => {\n        if (isDate(d)) {\n          return d.toLocaleDateString();\n        }\n        return d.toLocaleString();\n      };\n    }\n\n    const outerRadius = this.outerRadius;\n    const s = 1.1;\n\n    this.thetaTicks = this.xDomain.map(d => {\n      const startAngle = this.xScale(d);\n      const dd = s * outerRadius * (startAngle > Math.PI ? -1 : 1);\n      const label = tickFormat(d);\n\n      const startPos = [outerRadius * Math.sin(startAngle), -outerRadius * Math.cos(startAngle)];\n      const pos = [dd, s * startPos[1]];\n      return {\n        innerRadius: 0,\n        outerRadius,\n        startAngle,\n        endAngle: startAngle,\n        value: outerRadius,\n        label,\n        startPos,\n        pos\n      };\n    });\n\n    const minDistance = 10;\n\n    /* from pie chart, abstract out -*/\n    for (let i = 0; i < this.thetaTicks.length - 1; i++) {\n      const a = this.thetaTicks[i];\n\n      for (let j = i + 1; j < this.thetaTicks.length; j++) {\n        const b = this.thetaTicks[j];\n        // if they're on the same side\n        if (b.pos[0] * a.pos[0] > 0) {\n          // if they're overlapping\n          const o = minDistance - Math.abs(b.pos[1] - a.pos[1]);\n          if (o > 0) {\n            // push the second up or down\n            b.pos[1] += Math.sign(b.pos[0]) * o;\n          }\n        }\n      }\n    }\n\n    this.radiusTicks = this.yAxisScale.ticks(Math.floor(this.dims.height / 50)).map(d => this.yScale(d));\n  }\n\n  getXValues(): any[] {\n    const values = [];\n    for (const results of this.results) {\n      for (const d of results.series) {\n        if (!values.includes(d.name)) {\n          values.push(d.name);\n        }\n      }\n    }\n    return values;\n  }\n\n  getXDomain(values = this.getXValues()): any[] {\n    if (this.scaleType === 'time') {\n      const min = Math.min(...values);\n      const max = Math.max(...values);\n      return [min, max];\n    } else if (this.scaleType === 'linear') {\n      values = values.map(v => Number(v));\n      const min = Math.min(...values);\n      const max = Math.max(...values);\n      return [min, max];\n    }\n    return values;\n  }\n\n  getYValues(): any[] {\n    const domain = [];\n\n    for (const results of this.results) {\n      for (const d of results.series) {\n        if (domain.indexOf(d.value) < 0) {\n          domain.push(d.value);\n        }\n        if (d.min !== undefined) {\n          if (domain.indexOf(d.min) < 0) {\n            domain.push(d.min);\n          }\n        }\n        if (d.max !== undefined) {\n          if (domain.indexOf(d.max) < 0) {\n            domain.push(d.max);\n          }\n        }\n      }\n    }\n    return domain;\n  }\n\n  getYDomain(domain = this.getYValues()): any[] {\n    let min = Math.min(...domain);\n    const max = Math.max(this.yAxisMinScale, ...domain);\n\n    min = Math.max(0, min);\n    if (!this.autoScale) {\n      min = Math.min(0, min);\n    }\n\n    return [min, max];\n  }\n\n  getSeriesDomain(): any[] {\n    return this.results.map(d => d.name);\n  }\n\n  getXScale(domain, width): any {\n    switch (this.scaleType) {\n      case 'time':\n        return scaleTime()\n          .range([0, width])\n          .domain(domain);\n      case 'linear':\n        const scale = scaleLinear()\n          .range([0, width])\n          .domain(domain);\n        return this.roundDomains ? scale.nice() : scale;\n      default:\n        return scalePoint()\n          .range([0, width - twoPI / domain.length])\n          .padding(0)\n          .domain(domain);\n    }\n  }\n\n  getYScale(domain, height): any {\n    const scale = scaleLinear()\n      .range([0, height])\n      .domain(domain);\n\n    return this.roundDomains ? scale.nice() : scale;\n  }\n\n  onClick(data, series?): void {\n    if (series) {\n      data.series = series.name;\n    }\n\n    this.select.emit(data);\n  }\n\n  setColors(): void {\n    const domain = this.schemeType === 'ordinal' ? this.seriesDomain : this.yDomain.reverse();\n    this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n  }\n\n  getLegendOptions() {\n    if (this.schemeType === 'ordinal') {\n      return {\n        scaleType: this.schemeType,\n        colors: this.colors,\n        domain: this.seriesDomain,\n        title: this.legendTitle,\n        position: this.legendPosition\n      };\n    }\n    return {\n      scaleType: this.schemeType,\n      colors: this.colors.scale,\n      domain: this.yDomain,\n      title: undefined,\n      position: this.legendPosition\n    };\n  }\n\n  updateYAxisWidth({ width }): void {\n    this.yAxisWidth = width;\n    this.update();\n  }\n\n  updateXAxisHeight({ height }): void {\n    this.xAxisHeight = height;\n    this.update();\n  }\n\n  onActivate(item) {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n    if (idx > -1) {\n      return;\n    }\n    this.activeEntries = this.showSeriesOnHover ? [item, ...this.activeEntries] : this.activeEntries;\n    this.activate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  onDeactivate(item) {\n    const idx = this.activeEntries.findIndex(d => {\n      return d.name === item.name && d.value === item.value;\n    });\n\n    this.activeEntries.splice(idx, 1);\n    this.activeEntries = [...this.activeEntries];\n\n    this.deactivate.emit({ value: item, entries: this.activeEntries });\n  }\n\n  deactivateAll() {\n    this.activeEntries = [...this.activeEntries];\n    for (const entry of this.activeEntries) {\n      this.deactivate.emit({ value: entry, entries: [] });\n    }\n    this.activeEntries = [];\n  }\n\n  trackBy(index, item) {\n    return item.name;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/polar-chart/polar-chart.component.ts","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { PolarChartComponent } from './polar-chart.component';\nimport { PolarSeriesComponent } from './polar-series.component';\nimport { PieChartModule } from '../pie-chart/';\nimport { LineChartModule } from '../line-chart/';\n\n@NgModule({\n  imports: [ChartCommonModule, PieChartModule, LineChartModule],\n  declarations: [\n    PolarChartComponent,\n    PolarSeriesComponent\n  ],\n  exports: [\n    PolarChartComponent,\n    PolarSeriesComponent\n  ]\n})\nexport class PolarChartModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/polar-chart/polar-chart.module.ts","import {\n  Component,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  ChangeDetectionStrategy,\n  TemplateRef,\n  Output,\n  EventEmitter\n} from '@angular/core';\nimport { lineRadial } from 'd3-shape';\n\nimport { id } from '../utils/id';\nimport { sortLinear, sortByTime, sortByDomain } from '../utils/sort';\n\n@Component({\n  selector: 'g[ngx-charts-polar-series]',\n  template: `\n    <svg:g class=\"polar-charts-series\">\n      <defs>\n        <svg:g\n          ngx-charts-svg-radial-gradient\n          *ngIf=\"hasGradient\"\n          orientation=\"vertical\"\n          [color]=\"seriesColor\"\n          [name]=\"gradientId\"\n          [startOpacity]=\"0.25\"\n          [endOpacity]=\"1\"\n          [stops]=\"gradientStops\"\n        />\n      </defs>\n      <svg:g\n        ngx-charts-line\n        class=\"polar-series-path\"\n        [path]=\"path\"\n        [stroke]=\"hasGradient ? gradientUrl : seriesColor\"\n        [class.active]=\"active\"\n        [class.inactive]=\"inactive\"\n        [attr.fill-opacity]=\"rangeFillOpacity\"\n        [fill]=\"hasGradient ? gradientUrl : seriesColor\"\n        [animations]=\"animations\"\n      />\n      <svg:g\n        ngx-charts-circle\n        *ngFor=\"let circle of circles\"\n        class=\"circle\"\n        [cx]=\"circle.cx\"\n        [cy]=\"circle.cy\"\n        [r]=\"circleRadius\"\n        [fill]=\"circle.color\"\n        [style.opacity]=\"inactive ? 0.2 : 1\"\n        ngx-tooltip\n        [tooltipDisabled]=\"tooltipDisabled\"\n        [tooltipPlacement]=\"'top'\"\n        tooltipType=\"tooltip\"\n        [tooltipTitle]=\"tooltipTemplate ? undefined : tooltipText(circle)\"\n        [tooltipTemplate]=\"tooltipTemplate\"\n        [tooltipContext]=\"circle.data\"\n        (select)=\"select.emit(circle.data)\"\n        (activate)=\"activate.emit({ name: circle.data.series })\"\n        (deactivate)=\"deactivate.emit({ name: circle.data.series })\"\n      ></svg:g>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PolarSeriesComponent implements OnChanges {\n  @Input() name;\n  @Input() data;\n  @Input() xScale; // Theta\n  @Input() yScale; // R\n  @Input() colors;\n  @Input() scaleType;\n  @Input() curve: any;\n  @Input() activeEntries: any[];\n  @Input() rangeFillOpacity: number;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipText: (o: any) => string;\n  @Input() gradient: boolean = false;\n  @Input() tooltipTemplate: TemplateRef<any>;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n  @Output() activate = new EventEmitter();\n  @Output() deactivate = new EventEmitter();\n\n  path: string;\n  circles: any[];\n  circleRadius: number = 3;\n\n  outerPath: string;\n  areaPath: string;\n  gradientId: string;\n  gradientUrl: string;\n  hasGradient: boolean;\n  gradientStops: any[];\n  areaGradientStops: any[];\n  seriesColor: string;\n\n  active: boolean;\n  inactive: boolean;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.update();\n  }\n\n  update(): void {\n    this.updateGradients();\n\n    const line = this.getLineGenerator();\n\n    const data = this.sortData(this.data.series);\n\n    const seriesName = this.data.name;\n    const linearScaleType = this.colors.scaleType === 'linear';\n    const min = this.yScale.domain()[0];\n    this.seriesColor = this.colors.getColor(linearScaleType ? min : seriesName);\n\n    this.path = line(data) || '';\n\n    this.circles = data.map(d => {\n      const a = this.getAngle(d);\n      const r = this.getRadius(d);\n      const value = d.value;\n\n      const color = this.colors.getColor(linearScaleType ? Math.abs(value) : seriesName);\n\n      const cData = Object.assign({}, d, {\n        series: seriesName,\n        value,\n        name: d.name\n      });\n\n      return {\n        data: cData,\n        cx: r * Math.sin(a),\n        cy: -r * Math.cos(a),\n        value,\n        color,\n        label: d.name\n      };\n    });\n\n    this.active = this.isActive(this.data);\n    this.inactive = this.isInactive(this.data);\n    this.tooltipText = this.tooltipText || (c => this.defaultTooltipText(c));\n  }\n\n  getAngle(d) {\n    const label = d.name;\n    if (this.scaleType === 'time') {\n      return this.xScale(label);\n    } else if (this.scaleType === 'linear') {\n      return this.xScale(Number(label));\n    }\n    return this.xScale(label);\n  }\n\n  getRadius(d) {\n    return this.yScale(d.value);\n  }\n\n  getLineGenerator(): any {\n    return lineRadial<any>()\n      .angle(d => this.getAngle(d))\n      .radius(d => this.getRadius(d))\n      .curve(this.curve);\n  }\n\n  sortData(data) {\n    if (this.scaleType === 'linear') {\n      return sortLinear(data, 'name');\n    } else if (this.scaleType === 'time') {\n      return sortByTime(data, 'name');\n    }\n    return sortByDomain(data, 'name', 'asc', this.xScale.domain());\n  }\n\n  isActive(entry): boolean {\n    if (!this.activeEntries) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name;\n    });\n    return item !== undefined;\n  }\n\n  isInactive(entry): boolean {\n    if (!this.activeEntries || this.activeEntries.length === 0) return false;\n    const item = this.activeEntries.find(d => {\n      return entry.name === d.name;\n    });\n    return item === undefined;\n  }\n\n  defaultTooltipText({ label, value }): string {\n    return `\n      <span class=\"tooltip-label\">${this.data.name} • ${label}</span>\n      <span class=\"tooltip-val\">${value.toLocaleString()}</span>\n    `;\n  }\n\n  updateGradients() {\n    this.hasGradient = this.gradient || this.colors.scaleType === 'linear';\n\n    if (!this.hasGradient) {\n      return;\n    }\n\n    this.gradientId = 'grad' + id().toString();\n    this.gradientUrl = `url(#${this.gradientId})`;\n\n    if (this.colors.scaleType === 'linear') {\n      const values = this.data.series.map(d => d.value);\n      const max = Math.max(...values);\n      const min = Math.min(...values);\n      this.gradientStops = this.colors.getLinearGradientStops(max, min);\n    } else {\n      this.gradientStops = undefined;\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/polar-chart/polar-series.component.ts","// The export is needed here to generate a valid polyfills.metadata.json file\nexport function ngxChartsPolyfills() {\n  // IE11 fix\n  // Ref: https://github.com/swimlane/ngx-charts/issues/386\n  if (typeof(SVGElement) !== 'undefined' && typeof SVGElement.prototype.contains === 'undefined') {\n    SVGElement.prototype.contains = HTMLDivElement.prototype.contains;\n  }\n}\n\nngxChartsPolyfills();\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/polyfills.ts","export * from './tree-map.module';\nexport * from './tree-map.component';\nexport * from './tree-map-cell.component';\nexport * from './tree-map-cell-series.component';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/tree-map/index.ts","import {\n  Component,\n  OnChanges,\n  Input,\n  Output,\n  SimpleChanges,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  TemplateRef\n} from '@angular/core';\n\n@Component({\n  selector: 'g[ngx-charts-tree-map-cell-series]',\n  template: `\n    <svg:g\n      ngx-charts-tree-map-cell\n      *ngFor=\"let c of cells; trackBy: trackBy\"\n      [data]=\"c.data\"\n      [x]=\"c.x\"\n      [y]=\"c.y\"\n      [width]=\"c.width\"\n      [height]=\"c.height\"\n      [fill]=\"c.fill\"\n      [label]=\"c.label\"\n      [value]=\"c.value\"\n      [valueType]=\"c.valueType\"\n      [valueFormatting]=\"valueFormatting\"\n      [labelFormatting]=\"labelFormatting\"\n      [gradient]=\"gradient\"\n      [animations]=\"animations\"\n      (select)=\"onClick($event)\"\n      ngx-tooltip\n      [tooltipDisabled]=\"tooltipDisabled\"\n      [tooltipPlacement]=\"'top'\"\n      [tooltipType]=\"'tooltip'\"\n      [tooltipTitle]=\"tooltipTemplate ? undefined : getTooltipText(c)\"\n      [tooltipTemplate]=\"tooltipTemplate\"\n      [tooltipContext]=\"c.data\"\n    ></svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeMapCellSeriesComponent implements OnChanges {\n  @Input() data;\n  @Input() dims;\n  @Input() colors;\n  @Input() valueFormatting: any;\n  @Input() labelFormatting: any;\n  @Input() gradient: boolean = false;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() tooltipTemplate: TemplateRef<any>;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n\n  cells: any[];\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.cells = this.getCells();\n  }\n\n  getCells(): any[] {\n    return this.data.children\n      .filter(d => {\n        return d.depth === 1;\n      })\n      .map((d, index) => {\n        const label = d.id;\n\n        return {\n          data: d.data,\n          x: d.x0,\n          y: d.y0,\n          width: d.x1 - d.x0,\n          height: d.y1 - d.y0,\n          fill: this.colors.getColor(label),\n          label,\n          value: d.value,\n          valueType: d.valueType\n        };\n      });\n  }\n\n  getTooltipText({ label, value }): string {\n    return `\n      <span class=\"tooltip-label\">${label}</span>\n      <span class=\"tooltip-val\">${value.toLocaleString()}</span>\n    `;\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  trackBy(index, item): string {\n    return item.label;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/tree-map/tree-map-cell-series.component.ts","import { Component, Input, Output, EventEmitter, ElementRef, OnChanges, ChangeDetectionStrategy } from '@angular/core';\nimport { select } from 'd3-selection';\n\nimport { invertColor } from '../utils/color-utils';\nimport { trimLabel } from '../common/trim-label.helper';\nimport { id } from '../utils/id';\n\n@Component({\n  selector: 'g[ngx-charts-tree-map-cell]',\n  template: `\n    <svg:g>\n      <defs *ngIf=\"gradient\">\n        <svg:g ngx-charts-svg-linear-gradient orientation=\"vertical\" [name]=\"gradientId\" [stops]=\"gradientStops\" />\n      </defs>\n      <svg:rect\n        [attr.fill]=\"gradient ? gradientUrl : fill\"\n        [attr.width]=\"width\"\n        [attr.height]=\"height\"\n        [attr.x]=\"x\"\n        [attr.y]=\"y\"\n        [style.cursor]=\"'pointer'\"\n        class=\"cell\"\n        (click)=\"onClick()\"\n      />\n      <svg:foreignObject\n        *ngIf=\"width >= 70 && height >= 35\"\n        [attr.x]=\"x\"\n        [attr.y]=\"y\"\n        [attr.width]=\"width\"\n        [attr.height]=\"height\"\n        class=\"treemap-label\"\n        [style.pointer-events]=\"'none'\"\n      >\n        <xhtml:p [style.color]=\"getTextColor()\" [style.height]=\"height + 'px'\" [style.width]=\"width + 'px'\">\n          <xhtml:span class=\"treemap-label\" [innerHTML]=\"formattedLabel\"> </xhtml:span>\n          <xhtml:br />\n          <xhtml:span\n            *ngIf=\"animations\"\n            class=\"treemap-val\"\n            ngx-charts-count-up\n            [countTo]=\"value\"\n            [valueFormatting]=\"valueFormatting\"\n          >\n          </xhtml:span>\n          <xhtml:span *ngIf=\"!animations\" class=\"treemap-val\">\n            {{ formattedValue }}\n          </xhtml:span>\n        </xhtml:p>\n      </svg:foreignObject>\n    </svg:g>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeMapCellComponent implements OnChanges {\n  @Input() data;\n  @Input() fill;\n  @Input() x;\n  @Input() y;\n  @Input() width;\n  @Input() height;\n  @Input() label;\n  @Input() value;\n  @Input() valueType;\n  @Input() valueFormatting: any;\n  @Input() labelFormatting: any;\n  @Input() gradient: boolean = false;\n  @Input() animations: boolean = true;\n\n  @Output() select = new EventEmitter();\n\n  gradientStops: any[];\n  gradientId: string;\n  gradientUrl: string;\n\n  element: HTMLElement;\n  transform: string;\n  formattedLabel: string;\n  formattedValue: string;\n  initialized: boolean = false;\n\n  constructor(element: ElementRef) {\n    this.element = element.nativeElement;\n  }\n\n  ngOnChanges(): void {\n    this.update();\n\n    this.valueFormatting = this.valueFormatting || (value => value.toLocaleString());\n    const labelFormatting = this.labelFormatting || (cell => trimLabel(cell.label, 55));\n\n    const cellData = {\n      data: this.data,\n      label: this.label,\n      value: this.value\n    };\n\n    this.formattedValue = this.valueFormatting(cellData.value);\n    this.formattedLabel = labelFormatting(cellData);\n\n    this.gradientId = 'grad' + id().toString();\n    this.gradientUrl = `url(#${this.gradientId})`;\n    this.gradientStops = this.getGradientStops();\n  }\n\n  update(): void {\n    if (this.initialized) {\n      this.animateToCurrentForm();\n    } else {\n      if (this.animations) {\n        this.loadAnimation();\n      }\n      this.initialized = true;\n    }\n  }\n\n  loadAnimation(): void {\n    const node = select(this.element).select('.cell');\n\n    node\n      .attr('opacity', 0)\n      .attr('x', this.x)\n      .attr('y', this.y);\n\n    this.animateToCurrentForm();\n  }\n\n  getTextColor(): string {\n    return invertColor(this.fill);\n  }\n\n  animateToCurrentForm(): void {\n    const node = select(this.element).select('.cell');\n\n    if (this.animations) {\n      node\n        .transition()\n        .duration(750)\n        .attr('opacity', 1)\n        .attr('x', this.x)\n        .attr('y', this.y)\n        .attr('width', this.width)\n        .attr('height', this.height);\n    } else {\n      node\n        .attr('opacity', 1)\n        .attr('x', this.x)\n        .attr('y', this.y)\n        .attr('width', this.width)\n        .attr('height', this.height);\n    }\n  }\n\n  onClick(): void {\n    this.select.emit(this.data);\n  }\n\n  getGradientStops() {\n    return [\n      {\n        offset: 0,\n        color: this.fill,\n        opacity: 0.3\n      },\n      {\n        offset: 100,\n        color: this.fill,\n        opacity: 1\n      }\n    ];\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/tree-map/tree-map-cell.component.ts","\n        var result = require(\"!!../../node_modules/css-loader/index.js!../../node_modules/sass-loader/lib/loader.js!./tree-map.component.scss\");\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/tree-map/tree-map.component.scss\n// module id = ./src/tree-map/tree-map.component.scss\n// module chunks = 0","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  ContentChild,\n  TemplateRef\n} from '@angular/core';\nimport { treemap, stratify } from 'd3-hierarchy';\n\nimport { BaseChartComponent } from '../common/base-chart.component';\nimport { calculateViewDimensions } from '../common/view-dimensions.helper';\nimport { ColorHelper } from '../common/color.helper';\n\n@Component({\n  selector: 'ngx-charts-tree-map',\n  template: `\n    <ngx-charts-chart [view]=\"[width, height]\" [showLegend]=\"false\" [animations]=\"animations\">\n      <svg:g [attr.transform]=\"transform\" class=\"tree-map chart\">\n        <svg:g\n          ngx-charts-tree-map-cell-series\n          [colors]=\"colors\"\n          [data]=\"data\"\n          [dims]=\"dims\"\n          [tooltipDisabled]=\"tooltipDisabled\"\n          [tooltipTemplate]=\"tooltipTemplate\"\n          [valueFormatting]=\"valueFormatting\"\n          [labelFormatting]=\"labelFormatting\"\n          [gradient]=\"gradient\"\n          [animations]=\"animations\"\n          (select)=\"onClick($event)\"\n        />\n      </svg:g>\n    </ngx-charts-chart>\n  `,\n  styles: [require('./tree-map.component.scss')],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeMapComponent extends BaseChartComponent {\n  @Input() results;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() valueFormatting: any;\n  @Input() labelFormatting: any;\n  @Input() gradient: boolean = false;\n\n  @Output() select = new EventEmitter();\n\n  @ContentChild('tooltipTemplate', { static: false }) tooltipTemplate: TemplateRef<any>;\n\n  dims: any;\n  domain: any;\n  transform: any;\n  colors: ColorHelper;\n  treemap: any;\n  data: any;\n  margin = [10, 10, 10, 10];\n\n  update(): void {\n    super.update();\n\n    this.dims = calculateViewDimensions({\n      width: this.width,\n      height: this.height,\n      margins: this.margin\n    });\n\n    this.domain = this.getDomain();\n\n    this.treemap = treemap<any>().size([this.dims.width, this.dims.height]);\n\n    const rootNode = {\n      name: 'root',\n      value: 0,\n      isRoot: true\n    };\n\n    const root = stratify<any>()\n      .id(d => {\n        let label = d.name;\n\n        if (label.constructor.name === 'Date') {\n          label = label.toLocaleDateString();\n        } else {\n          label = label.toLocaleString();\n        }\n        return label;\n      })\n      .parentId(d => (d.isRoot ? null : 'root'))([rootNode, ...this.results])\n      .sum(d => d.value);\n\n    this.data = this.treemap(root);\n\n    this.setColors();\n\n    this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n  }\n\n  getDomain(): any[] {\n    return this.results.map(d => d.name);\n  }\n\n  onClick(data): void {\n    this.select.emit(data);\n  }\n\n  setColors(): void {\n    this.colors = new ColorHelper(this.scheme, 'ordinal', this.domain, this.customColors);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/tree-map/tree-map.component.ts","import { NgModule } from '@angular/core';\nimport { ChartCommonModule } from '../common/chart-common.module';\nimport { TreeMapCellComponent } from './tree-map-cell.component';\nimport { TreeMapCellSeriesComponent } from './tree-map-cell-series.component';\nimport { TreeMapComponent } from './tree-map.component';\n\n@NgModule({\n  imports: [ChartCommonModule],\n  declarations: [\n    TreeMapCellComponent,\n    TreeMapCellSeriesComponent,\n    TreeMapComponent\n  ],\n  exports: [\n    TreeMapCellComponent,\n    TreeMapCellSeriesComponent,\n    TreeMapComponent\n  ]\n})\nexport class TreeMapModule {}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/tree-map/tree-map.module.ts","export let colorSets = [\n  {\n    name: 'vivid',\n    selectable: true,\n    group: 'Ordinal',\n    domain: [\n      '#647c8a', '#3f51b5', '#2196f3', '#00b862', '#afdf0a', '#a7b61a', '#f3e562', '#ff9800', '#ff5722', '#ff4514'\n    ]\n  },\n  {\n    name: 'natural',\n    selectable: true,\n    group: 'Ordinal',\n    domain: [\n      '#bf9d76', '#e99450', '#d89f59', '#f2dfa7', '#a5d7c6', '#7794b1', '#afafaf', '#707160', '#ba9383', '#d9d5c3'\n    ]\n  },\n  {\n    name: 'cool',\n    selectable: true,\n    group: 'Ordinal',\n    domain: [\n      '#a8385d', '#7aa3e5', '#a27ea8', '#aae3f5', '#adcded', '#a95963', '#8796c0', '#7ed3ed', '#50abcc', '#ad6886'\n    ]\n  },\n  {\n    name: 'fire',\n    selectable: true,\n    group: 'Ordinal',\n    domain: [\n      '#ff3d00', '#bf360c', '#ff8f00', '#ff6f00', '#ff5722', '#e65100', '#ffca28', '#ffab00'\n    ]\n  },\n  {\n    name: 'solar',\n    selectable: true,\n    group: 'Continuous',\n    domain: [\n      '#fff8e1', '#ffecb3', '#ffe082', '#ffd54f', '#ffca28', '#ffc107', '#ffb300', '#ffa000', '#ff8f00', '#ff6f00'\n    ]\n  },\n  {\n    name: 'air',\n    selectable: true,\n    group: 'Continuous',\n    domain: [\n      '#e1f5fe', '#b3e5fc', '#81d4fa', '#4fc3f7', '#29b6f6', '#03a9f4', '#039be5', '#0288d1', '#0277bd', '#01579b'\n    ]\n  },\n  {\n    name: 'aqua',\n    selectable: true,\n    group: 'Continuous',\n    domain: [\n      '#e0f7fa', '#b2ebf2', '#80deea', '#4dd0e1', '#26c6da', '#00bcd4', '#00acc1', '#0097a7', '#00838f', '#006064'\n    ]\n  },\n  {\n    name: 'flame',\n    selectable: false,\n    group: 'Ordinal',\n    domain: [\n      '#A10A28', '#D3342D', '#EF6D49', '#FAAD67', '#FDDE90', '#DBED91', '#A9D770', '#6CBA67', '#2C9653', '#146738'\n    ]\n  },\n  {\n    name: 'ocean',\n    selectable: false,\n    group: 'Ordinal',\n    domain: [\n      '#1D68FB', '#33C0FC', '#4AFFFE', '#AFFFFF', '#FFFC63', '#FDBD2D', '#FC8A25', '#FA4F1E', '#FA141B', '#BA38D1'\n    ]\n  },\n  {\n    name: 'forest',\n    selectable: false,\n    group: 'Ordinal',\n    domain: [\n      '#55C22D', '#C1F33D', '#3CC099', '#AFFFFF', '#8CFC9D', '#76CFFA', '#BA60FB', '#EE6490', '#C42A1C', '#FC9F32'\n    ]\n  },\n  {\n    name: 'horizon',\n    selectable: false,\n    group: 'Ordinal',\n    domain: [\n      '#2597FB', '#65EBFD', '#99FDD0', '#FCEE4B', '#FEFCFA', '#FDD6E3', '#FCB1A8', '#EF6F7B', '#CB96E8', '#EFDEE0'\n    ]\n  },\n  {\n    name: 'neons',\n    selectable: false,\n    group: 'Ordinal',\n    domain: [\n      '#FF3333', '#FF33FF', '#CC33FF', '#0000FF', '#33CCFF', '#33FFFF', '#33FF66', '#CCFF33', '#FFCC00', '#FF6600'\n    ]\n  },\n  {\n    name: 'picnic',\n    selectable: false,\n    group: 'Ordinal',\n    domain: [\n      '#FAC51D', '#66BD6D', '#FAA026', '#29BB9C', '#E96B56', '#55ACD2', '#B7332F', '#2C83C9', '#9166B8', '#92E7E8'\n    ]\n  },\n  {\n    name: 'night',\n    selectable: false,\n    group: 'Ordinal',\n    domain: [\n      '#2B1B5A', '#501356', '#183356', '#28203F', '#391B3C', '#1E2B3C', '#120634',\n      '#2D0432', '#051932', '#453080', '#75267D', '#2C507D', '#4B3880', '#752F7D', '#35547D'\n    ]\n  },\n  {\n    name: 'nightLights',\n    selectable: false,\n    group: 'Ordinal',\n    domain: [\n      '#4e31a5', '#9c25a7', '#3065ab', '#57468b', '#904497', '#46648b', \n      '#32118d', '#a00fb3', '#1052a2', '#6e51bd', '#b63cc3', '#6c97cb', '#8671c1', '#b455be', '#7496c3'\n    ]\n  }\n];\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/utils/color-sets.ts","import * as d3_color from 'd3-color';\n\n/**\n * Converts a hex to RGB\n *\n * @export\n * @param {string} hex\n * @returns {*}\n */\nexport function hexToRgb(value: string): any {\n  // deprecated, use d3.color()\n  return d3_color.rgb(value);\n}\n\n/**\n * Accepts a color (string) and returns a inverted hex color (string)\n * http://stackoverflow.com/questions/9600295/automatically-change-text-color-to-assure-readability\n *\n * @export\n * @param {any} value\n * @returns {string}\n */\nexport function invertColor(value: string): string {\n  const color = d3_color.rgb(value);\n  const { r, g, b, opacity } = color;\n  if (opacity === 0) {\n    return color.toString();\n  }\n  const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n  const depth = (yiq >= 128) ? -.8 : .8;\n\n  return shadeRGBColor(color, depth);\n}\n\n/**\n * Given a rgb, it will darken/lighten\n * http://stackoverflow.com/questions/5560248/programmatically-lighten-or-darken-a-hex-color-or-rgb-and-blend-colors\n *\n * @export\n * @param {any} { r, g, b }\n * @param {any} percent\n * @returns\n */\nexport function shadeRGBColor({ r, g, b }, percent) {\n  const t = percent < 0 ? 0 : 255;\n  const p = percent < 0 ? percent * -1 : percent;\n\n  r = (Math.round((t - r) * p) + r);\n  g = (Math.round((t - g) * p) + g);\n  b = (Math.round((t - b) * p) + b);\n\n  return `rgb(${r}, ${g}, ${b})`;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/utils/color-utils.ts","const cache = {};\n\n/**\n * Generates a short id.\n *\n * Description:\n *   A 4-character alphanumeric sequence (364 = 1.6 million)\n *   This should only be used for JavaScript specific models.\n *   http://stackoverflow.com/questions/6248666/how-to-generate-short-uid-like-ax4j9z-in-js\n *\n *   Example: `ebgf`\n */\nexport function id(): string {\n  let newId = ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);\n\n  // append a 'a' because neo gets mad\n  newId = `a${newId}`;\n\n  // ensure not already used\n  if(!cache[newId]) {\n    cache[newId] = true;\n    return newId;\n  }\n\n  return id();\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/utils/id.ts","export * from './id';\nexport * from './color-sets';\nexport * from './sort';\nexport * from './throttle';\nexport * from './color-utils';\nexport * from './visibility-observer';\nexport * from './types';\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/utils/index.ts","export function sortLinear(data, property, direction = 'asc') {\n  return data.sort((a, b) => {\n    if (direction === 'asc') {\n      return a[property] - b[property];\n    } else {\n      return b[property] - a[property];\n    }\n  });\n}\n\nexport function sortByDomain(data, property, direction = 'asc', domain) {\n  return data.sort((a, b) => {\n    const aVal = a[property];\n    const bVal = b[property];\n\n    const aIdx = domain.indexOf(aVal);\n    const bIdx = domain.indexOf(bVal);\n\n    if (direction === 'asc') {\n      return aIdx - bIdx;\n    } else {\n      return bIdx - aIdx;\n    }\n  });\n}\n\nexport function sortByTime(data, property, direction = 'asc') {\n  return data.sort((a, b) => {\n    const aDate = a[property].getTime();\n    const bDate = b[property].getTime();\n\n    if (direction === 'asc') {\n      if (aDate > bDate) return 1;\n      if (bDate > aDate) return -1;\n      return 0;\n    } else {\n      if (aDate > bDate) return -1;\n      if (bDate > aDate) return 1;\n      return 0;\n    }\n  });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/utils/sort.ts","\n/**\n * Throttle a function\n *\n * @export\n * @param {*}      func\n * @param {number} wait\n * @param {*}      [options]\n * @returns\n */\nexport function throttle(func: any, wait: number, options?: any) {\n  options = options || {};\n  let context;\n  let args;\n  let result;\n  let timeout = null;\n  let previous = 0;\n\n  function later() {\n    previous = options.leading === false ? 0 : +new Date();\n    timeout = null;\n    result = func.apply(context, args);\n  }\n\n  return function() {\n    const now = +new Date();\n\n    if (!previous && options.leading === false) {\n      previous = now;\n    }\n\n    const remaining = wait - (now - previous);\n    context = this;\n    args = arguments;\n\n    if (remaining <= 0) {\n      clearTimeout(timeout);\n      timeout = null;\n      previous = now;\n      result = func.apply(context, args);\n    } else if (!timeout && options.trailing !== false) {\n      timeout = setTimeout(later, remaining);\n    }\n\n    return result;\n  };\n}\n\n/**\n * Throttle decorator\n *\n *  class MyClass {\n *    throttleable(10)\n *    myFn() { ... }\n *  }\n *\n * @export\n * @param {number} duration\n * @param {*} [options]\n * @returns\n */\nexport function throttleable(duration: number, options?: any) {\n  return function innerDecorator(target, key, descriptor) {\n    return {\n      configurable: true,\n      enumerable: descriptor.enumerable,\n      get: function getter() {\n        Object.defineProperty(this, key, {\n          configurable: true,\n          enumerable: descriptor.enumerable,\n          value: throttle(descriptor.value, duration, options)\n        });\n\n        return this[key];\n      }\n    };\n  };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/utils/throttle.ts","\nexport function isDate(value) {\n  return toString.call(value) === '[object Date]';\n}\n\nexport function isNumber(value) {\n  return typeof value === 'number';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/utils/types.ts","import { Output, EventEmitter, NgZone } from '@angular/core';\n\n/**\n * Visibility Observer\n */\nexport class VisibilityObserver {\n\n  @Output() visible: EventEmitter<any> = new EventEmitter();\n\n  timeout: any;\n  isVisible: boolean = false;\n\n  constructor(private element: any, private zone: NgZone) {\n    this.runCheck();\n  }\n\n  destroy(): void {\n    clearTimeout(this.timeout);\n  }\n\n  onVisibilityChange(): void {\n    // trigger zone recalc for columns\n    this.zone.run(() => {\n      this.isVisible = true;\n      this.visible.emit(true);\n    });\n  }\n\n  runCheck(): void {\n    const check = () => {\n      if (!this.element) {\n        return;\n      }\n\n      // https://davidwalsh.name/offsetheight-visibility\n      const { offsetHeight, offsetWidth } = this.element.nativeElement;\n\n      if (offsetHeight && offsetWidth) {\n        clearTimeout(this.timeout);\n        this.onVisibilityChange();\n      } else {\n        clearTimeout(this.timeout);\n        this.zone.runOutsideAngular(() => {\n          this.timeout = setTimeout(() => check(), 100);\n        });\n      }\n    };\n\n    this.zone.runOutsideAngular(() => {\n      this.timeout = setTimeout(() => check());\n    });\n  }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/angular2-template-loader!./src/utils/visibility-observer.ts","module.exports = __WEBPACK_EXTERNAL_MODULE__angular_animations__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"@angular/animations\"\n// module id = @angular/animations\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE__angular_common__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"@angular/common\"\n// module id = @angular/common\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE__angular_core__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"@angular/core\"\n// module id = @angular/core\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE__angular_platform_browser__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"@angular/platform-browser\"\n// module id = @angular/platform-browser\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_array__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-array\"\n// module id = d3-array\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_brush__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-brush\"\n// module id = d3-brush\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_color__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-color\"\n// module id = d3-color\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_force__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-force\"\n// module id = d3-force\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_format__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-format\"\n// module id = d3-format\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_hierarchy__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-hierarchy\"\n// module id = d3-hierarchy\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_interpolate__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-interpolate\"\n// module id = d3-interpolate\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_scale__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-scale\"\n// module id = d3-scale\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_selection__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-selection\"\n// module id = d3-selection\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_shape__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-shape\"\n// module id = d3-shape\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_d3_time_format__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"d3-time-format\"\n// module id = d3-time-format\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_rxjs__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"rxjs\"\n// module id = rxjs\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_rxjs_operators__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"rxjs/operators\"\n// module id = rxjs/operators\n// module chunks = 0"],"sourceRoot":""}