{"version":3,"sources":["node_modules/rfdc/index.js","src/app/_services/statistics.service.ts","node_modules/d3-selection/src/namespaces.js","node_modules/d3-selection/src/namespace.js","node_modules/d3-selection/src/creator.js","node_modules/d3-selection/src/selector.js","node_modules/d3-selection/src/selection/select.js","node_modules/d3-selection/src/array.js","node_modules/d3-selection/src/selectorAll.js","node_modules/d3-selection/src/selection/selectAll.js","node_modules/d3-selection/src/matcher.js","node_modules/d3-selection/src/selection/selectChild.js","node_modules/d3-selection/src/selection/selectChildren.js","node_modules/d3-selection/src/selection/filter.js","node_modules/d3-selection/src/selection/sparse.js","node_modules/d3-selection/src/selection/enter.js","node_modules/d3-selection/src/constant.js","node_modules/d3-selection/src/selection/data.js","node_modules/d3-selection/src/selection/exit.js","node_modules/d3-selection/src/selection/join.js","node_modules/d3-selection/src/selection/merge.js","node_modules/d3-selection/src/selection/order.js","node_modules/d3-selection/src/selection/sort.js","node_modules/d3-selection/src/selection/call.js","node_modules/d3-selection/src/selection/nodes.js","node_modules/d3-selection/src/selection/node.js","node_modules/d3-selection/src/selection/size.js","node_modules/d3-selection/src/selection/empty.js","node_modules/d3-selection/src/selection/each.js","node_modules/d3-selection/src/selection/attr.js","node_modules/d3-selection/src/window.js","node_modules/d3-selection/src/selection/style.js","node_modules/d3-selection/src/selection/property.js","node_modules/d3-selection/src/selection/classed.js","node_modules/d3-selection/src/selection/text.js","node_modules/d3-selection/src/selection/html.js","node_modules/d3-selection/src/selection/raise.js","node_modules/d3-selection/src/selection/lower.js","node_modules/d3-selection/src/selection/append.js","node_modules/d3-selection/src/selection/insert.js","node_modules/d3-selection/src/selection/remove.js","node_modules/d3-selection/src/selection/clone.js","node_modules/d3-selection/src/selection/datum.js","node_modules/d3-selection/src/selection/on.js","node_modules/d3-selection/src/selection/dispatch.js","node_modules/d3-selection/src/selection/iterator.js","node_modules/d3-selection/src/selection/index.js","node_modules/d3-selection/src/select.js","node_modules/d3-selection/src/sourceEvent.js","node_modules/d3-selection/src/pointer.js","node_modules/d3-dispatch/src/dispatch.js","node_modules/d3-drag/src/noevent.js","node_modules/d3-drag/src/nodrag.js","node_modules/d3-color/src/define.js","node_modules/d3-color/src/color.js","node_modules/d3-interpolate/src/basis.js","node_modules/d3-interpolate/src/basisClosed.js","node_modules/d3-interpolate/src/constant.js","node_modules/d3-interpolate/src/color.js","node_modules/d3-interpolate/src/rgb.js","node_modules/d3-interpolate/src/numberArray.js","node_modules/d3-interpolate/src/array.js","node_modules/d3-interpolate/src/date.js","node_modules/d3-interpolate/src/number.js","node_modules/d3-interpolate/src/object.js","node_modules/d3-interpolate/src/string.js","node_modules/d3-interpolate/src/value.js","node_modules/d3-interpolate/src/round.js","node_modules/d3-interpolate/src/transform/decompose.js","node_modules/d3-interpolate/src/transform/parse.js","node_modules/d3-interpolate/src/transform/index.js","node_modules/d3-timer/src/timer.js","node_modules/d3-timer/src/timeout.js","node_modules/d3-transition/src/transition/schedule.js","node_modules/d3-transition/src/interrupt.js","node_modules/d3-transition/src/selection/interrupt.js","node_modules/d3-transition/src/transition/tween.js","node_modules/d3-transition/src/transition/interpolate.js","node_modules/d3-transition/src/transition/attr.js","node_modules/d3-transition/src/transition/attrTween.js","node_modules/d3-transition/src/transition/delay.js","node_modules/d3-transition/src/transition/duration.js","node_modules/d3-transition/src/transition/ease.js","node_modules/d3-transition/src/transition/easeVarying.js","node_modules/d3-transition/src/transition/filter.js","node_modules/d3-transition/src/transition/merge.js","node_modules/d3-transition/src/transition/on.js","node_modules/d3-transition/src/transition/remove.js","node_modules/d3-transition/src/transition/select.js","node_modules/d3-transition/src/transition/selectAll.js","node_modules/d3-transition/src/transition/selection.js","node_modules/d3-transition/src/transition/style.js","node_modules/d3-transition/src/transition/styleTween.js","node_modules/d3-transition/src/transition/text.js","node_modules/d3-transition/src/transition/textTween.js","node_modules/d3-transition/src/transition/transition.js","node_modules/d3-transition/src/transition/end.js","node_modules/d3-transition/src/transition/index.js","node_modules/d3-ease/src/cubic.js","node_modules/d3-transition/src/selection/transition.js","node_modules/d3-transition/src/selection/index.js","node_modules/d3-brush/src/constant.js","node_modules/d3-brush/src/event.js","node_modules/d3-brush/src/noevent.js","node_modules/d3-brush/src/brush.js","node_modules/d3-array/src/ascending.js","node_modules/d3-array/src/descending.js","node_modules/d3-array/src/bisector.js","node_modules/d3-array/src/number.js","node_modules/d3-array/src/bisect.js","node_modules/internmap/src/index.js","node_modules/d3-array/src/ticks.js","node_modules/d3-array/src/max.js","node_modules/d3-array/src/quantile.js","node_modules/d3-array/src/range.js","node_modules/d3-scale/src/init.js","node_modules/d3-scale/src/ordinal.js","node_modules/d3-scale/src/band.js","node_modules/d3-scale/src/constant.js","node_modules/d3-scale/src/number.js","node_modules/d3-scale/src/continuous.js","node_modules/d3-format/src/formatDecimal.js","node_modules/d3-format/src/exponent.js","node_modules/d3-format/src/formatGroup.js","node_modules/d3-format/src/formatNumerals.js","node_modules/d3-format/src/formatSpecifier.js","node_modules/d3-format/src/formatTrim.js","node_modules/d3-format/src/formatPrefixAuto.js","node_modules/d3-format/src/formatRounded.js","node_modules/d3-format/src/formatTypes.js","node_modules/d3-format/src/identity.js","node_modules/d3-format/src/locale.js","node_modules/d3-format/src/defaultLocale.js","node_modules/d3-format/src/precisionFixed.js","node_modules/d3-format/src/precisionPrefix.js","node_modules/d3-format/src/precisionRound.js","node_modules/d3-scale/src/tickFormat.js","node_modules/d3-scale/src/linear.js","node_modules/d3-scale/src/nice.js","node_modules/d3-scale/src/quantile.js","node_modules/d3-time/src/interval.js","node_modules/d3-time/src/millisecond.js","node_modules/d3-time/src/second.js","node_modules/d3-time/src/minute.js","node_modules/d3-time/src/hour.js","node_modules/d3-time/src/day.js","node_modules/d3-time/src/week.js","node_modules/d3-time/src/month.js","node_modules/d3-time/src/year.js","node_modules/d3-time/src/ticks.js","node_modules/d3-time-format/node_modules/d3-time/src/interval.js","node_modules/d3-time-format/node_modules/d3-time/src/day.js","node_modules/d3-time-format/node_modules/d3-time/src/week.js","node_modules/d3-time-format/node_modules/d3-time/src/year.js","node_modules/d3-time-format/node_modules/d3-time/src/utcDay.js","node_modules/d3-time-format/node_modules/d3-time/src/utcWeek.js","node_modules/d3-time-format/node_modules/d3-time/src/utcYear.js","node_modules/d3-time-format/src/locale.js","node_modules/d3-time-format/src/defaultLocale.js","node_modules/d3-scale/src/time.js","node_modules/d3-shape/src/constant.js","node_modules/d3-shape/src/math.js","node_modules/d3-path/src/path.js","node_modules/d3-shape/src/path.js","node_modules/d3-shape/src/arc.js","node_modules/d3-shape/src/array.js","node_modules/d3-shape/src/curve/linear.js","node_modules/d3-shape/src/point.js","node_modules/d3-shape/src/line.js","node_modules/d3-shape/src/area.js","node_modules/d3-shape/src/descending.js","node_modules/d3-shape/src/identity.js","node_modules/d3-shape/src/pie.js","node_modules/@swimlane/ngx-charts/fesm2020/swimlane-ngx-charts.mjs","src/app/_pipes/day-of-week.pipe.ts","src/app/statistics/_components/day-breakdown/day-breakdown.component.ts","src/app/statistics/_components/day-breakdown/day-breakdown.component.html","src/app/statistics/_components/top-readers/top-readers.component.ts","src/app/statistics/_components/top-readers/top-readers.component.html","src/app/statistics/_components/reading-activity/reading-activity.component.ts","src/app/statistics/_components/reading-activity/reading-activity.component.html","src/app/statistics/_components/stat-list/stat-list.component.ts","src/app/statistics/_components/stat-list/stat-list.component.html","src/app/statistics/_components/_modals/generic-list-modal/generic-list-modal.component.ts","src/app/statistics/_components/_modals/generic-list-modal/generic-list-modal.component.html","src/app/_pipes/time-duration.pipe.ts"],"sourcesContent":["'use strict';\n\nmodule.exports = rfdc;\nfunction copyBuffer(cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur);\n }\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length);\n}\nfunction rfdc(opts) {\n opts = opts || {};\n if (opts.circles) return rfdcCircles(opts);\n return opts.proto ? cloneProto : clone;\n function cloneArray(a, fn) {\n var keys = Object.keys(a);\n var a2 = new Array(keys.length);\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n var cur = a[k];\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur;\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur);\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur);\n } else {\n a2[k] = fn(cur);\n }\n }\n return a2;\n }\n function clone(o) {\n if (typeof o !== 'object' || o === null) return o;\n if (o instanceof Date) return new Date(o);\n if (Array.isArray(o)) return cloneArray(o, clone);\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone));\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone));\n var o2 = {};\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue;\n var cur = o[k];\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur;\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur);\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone));\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone));\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur);\n } else {\n o2[k] = clone(cur);\n }\n }\n return o2;\n }\n function cloneProto(o) {\n if (typeof o !== 'object' || o === null) return o;\n if (o instanceof Date) return new Date(o);\n if (Array.isArray(o)) return cloneArray(o, cloneProto);\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto));\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto));\n var o2 = {};\n for (var k in o) {\n var cur = o[k];\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur;\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur);\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto));\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto));\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur);\n } else {\n o2[k] = cloneProto(cur);\n }\n }\n return o2;\n }\n}\nfunction rfdcCircles(opts) {\n var refs = [];\n var refsNew = [];\n return opts.proto ? cloneProto : clone;\n function cloneArray(a, fn) {\n var keys = Object.keys(a);\n var a2 = new Array(keys.length);\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n var cur = a[k];\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur;\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur);\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur);\n } else {\n var index = refs.indexOf(cur);\n if (index !== -1) {\n a2[k] = refsNew[index];\n } else {\n a2[k] = fn(cur);\n }\n }\n }\n return a2;\n }\n function clone(o) {\n if (typeof o !== 'object' || o === null) return o;\n if (o instanceof Date) return new Date(o);\n if (Array.isArray(o)) return cloneArray(o, clone);\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone));\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone));\n var o2 = {};\n refs.push(o);\n refsNew.push(o2);\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue;\n var cur = o[k];\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur;\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur);\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone));\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone));\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur);\n } else {\n var i = refs.indexOf(cur);\n if (i !== -1) {\n o2[k] = refsNew[i];\n } else {\n o2[k] = clone(cur);\n }\n }\n }\n refs.pop();\n refsNew.pop();\n return o2;\n }\n function cloneProto(o) {\n if (typeof o !== 'object' || o === null) return o;\n if (o instanceof Date) return new Date(o);\n if (Array.isArray(o)) return cloneArray(o, cloneProto);\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto));\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto));\n var o2 = {};\n refs.push(o);\n refsNew.push(o2);\n for (var k in o) {\n var cur = o[k];\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur;\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur);\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto));\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto));\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur);\n } else {\n var i = refs.indexOf(cur);\n if (i !== -1) {\n o2[k] = refsNew[i];\n } else {\n o2[k] = cloneProto(cur);\n }\n }\n }\n refs.pop();\n refsNew.pop();\n return o2;\n }\n}","import { HttpClient } from '@angular/common/http';\nimport {inject, Injectable} from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { UserReadStatistics } from '../statistics/_models/user-read-statistics';\nimport { PublicationStatusPipe } from '../_pipes/publication-status.pipe';\nimport { map } from 'rxjs';\nimport { MangaFormatPipe } from '../_pipes/manga-format.pipe';\nimport { FileExtensionBreakdown } from '../statistics/_models/file-breakdown';\nimport { TopUserRead } from '../statistics/_models/top-reads';\nimport { ReadHistoryEvent } from '../statistics/_models/read-history-event';\nimport { ServerStatistics } from '../statistics/_models/server-statistics';\nimport { StatCount } from '../statistics/_models/stat-count';\nimport { PublicationStatus } from '../_models/metadata/publication-status';\nimport { MangaFormat } from '../_models/manga-format';\nimport { TextResonse } from '../_types/text-response';\nimport {TranslocoService} from \"@ngneat/transloco\";\nimport {KavitaPlusMetadataBreakdown} from \"../statistics/_models/kavitaplus-metadata-breakdown\";\n\nexport enum DayOfWeek\n{\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StatisticsService {\n\n baseUrl = environment.apiUrl;\n translocoService = inject(TranslocoService);\n publicationStatusPipe = new PublicationStatusPipe(this.translocoService);\n mangaFormatPipe = new MangaFormatPipe(this.translocoService);\n\n constructor(private httpClient: HttpClient) { }\n\n getUserStatistics(userId: number, libraryIds: Array = []) {\n // TODO: Convert to httpParams object\n let url = 'stats/user/' + userId + '/read';\n if (libraryIds.length > 0) url += '?libraryIds=' + libraryIds.join(',');\n\n return this.httpClient.get(this.baseUrl + url);\n }\n\n getServerStatistics() {\n return this.httpClient.get(this.baseUrl + 'stats/server/stats');\n }\n\n getYearRange() {\n return this.httpClient.get[]>(this.baseUrl + 'stats/server/count/year').pipe(\n map(spreads => spreads.map(spread => {\n return {name: spread.value + '', value: spread.count};\n })));\n }\n\n getTopYears() {\n return this.httpClient.get[]>(this.baseUrl + 'stats/server/top/years').pipe(\n map(spreads => spreads.map(spread => {\n return {name: spread.value + '', value: spread.count};\n })));\n }\n\n getPagesPerYear(userId = 0) {\n return this.httpClient.get[]>(this.baseUrl + 'stats/pages-per-year?userId=' + userId).pipe(\n map(spreads => spreads.map(spread => {\n return {name: spread.value + '', value: spread.count};\n })));\n }\n\n getWordsPerYear(userId = 0) {\n return this.httpClient.get[]>(this.baseUrl + 'stats/words-per-year?userId=' + userId).pipe(\n map(spreads => spreads.map(spread => {\n return {name: spread.value + '', value: spread.count};\n })));\n }\n\n getTopUsers(days: number = 0) {\n return this.httpClient.get(this.baseUrl + 'stats/server/top/users?days=' + days);\n }\n\n getReadingHistory(userId: number) {\n return this.httpClient.get(this.baseUrl + 'stats/user/reading-history?userId=' + userId);\n }\n\n getPublicationStatus() {\n return this.httpClient.get[]>(this.baseUrl + 'stats/server/count/publication-status').pipe(\n map(spreads => spreads.map(spread => {\n return {name: this.publicationStatusPipe.transform(spread.value), value: spread.count};\n })));\n }\n\n getMangaFormat() {\n return this.httpClient.get[]>(this.baseUrl + 'stats/server/count/manga-format').pipe(\n map(spreads => spreads.map(spread => {\n return {name: this.mangaFormatPipe.transform(spread.value), value: spread.count};\n })));\n }\n\n getTotalSize() {\n return this.httpClient.get(this.baseUrl + 'stats/server/file-size', TextResonse);\n }\n\n getFileBreakdown() {\n return this.httpClient.get(this.baseUrl + 'stats/server/file-breakdown');\n }\n\n getReadCountByDay(userId: number = 0, days: number = 0) {\n return this.httpClient.get>(this.baseUrl + 'stats/reading-count-by-day?userId=' + userId + '&days=' + days);\n }\n\n getDayBreakdown( userId = 0) {\n return this.httpClient.get>>(this.baseUrl + 'stats/day-breakdown?userId=' + userId);\n }\n\n getKavitaPlusMetadataBreakdown() {\n return this.httpClient.get(this.baseUrl + 'stats/kavitaplus-metadata-breakdown');\n }\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};","import namespaces from \"./namespaces.js\";\nexport default function (name) {\n var prefix = name += \"\",\n i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {\n space: namespaces[prefix],\n local: name\n } : name; // eslint-disable-line no-prototype-builtins\n}","import namespace from \"./namespace.js\";\nimport { xhtml } from \"./namespaces.js\";\nfunction creatorInherit(name) {\n return function () {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml ? document.createElement(name) : document.createElementNS(uri, name);\n };\n}\nfunction creatorFixed(fullname) {\n return function () {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\nexport default function (name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}","function none() {}\nexport default function (selector) {\n return selector == null ? none : function () {\n return this.querySelector(selector);\n };\n}","import { Selection } from \"./index.js\";\nimport selector from \"../selector.js\";\nexport default function (select) {\n if (typeof select !== \"function\") select = selector(select);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n return new Selection(subgroups, this._parents);\n}","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}","function empty() {\n return [];\n}\nexport default function (selector) {\n return selector == null ? empty : function () {\n return this.querySelectorAll(selector);\n };\n}","import { Selection } from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\nfunction arrayAll(select) {\n return function () {\n return array(select.apply(this, arguments));\n };\n}\nexport default function (select) {\n if (typeof select === \"function\") select = arrayAll(select);else select = selectorAll(select);\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n return new Selection(subgroups, parents);\n}","export default function (selector) {\n return function () {\n return this.matches(selector);\n };\n}\nexport function childMatcher(selector) {\n return function (node) {\n return node.matches(selector);\n };\n}","import { childMatcher } from \"../matcher.js\";\nvar find = Array.prototype.find;\nfunction childFind(match) {\n return function () {\n return find.call(this.children, match);\n };\n}\nfunction childFirst() {\n return this.firstElementChild;\n}\nexport default function (match) {\n return this.select(match == null ? childFirst : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}","import { childMatcher } from \"../matcher.js\";\nvar filter = Array.prototype.filter;\nfunction children() {\n return Array.from(this.children);\n}\nfunction childrenFilter(match) {\n return function () {\n return filter.call(this.children, match);\n };\n}\nexport default function (match) {\n return this.selectAll(match == null ? children : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}","import { Selection } from \"./index.js\";\nimport matcher from \"../matcher.js\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n return new Selection(subgroups, this._parents);\n}","export default function (update) {\n return new Array(update.length);\n}","import sparse from \"./sparse.js\";\nimport { Selection } from \"./index.js\";\nexport default function () {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function (child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function (child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function (selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function (selector) {\n return this._parent.querySelectorAll(selector);\n }\n};","export default function (x) {\n return function () {\n return x;\n };\n}","import { Selection } from \"./index.js\";\nimport { EnterNode } from \"./enter.js\";\nimport constant from \"../constant.js\";\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map(),\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {\n exit[i] = node;\n }\n }\n}\nfunction datum(node) {\n return node.__data__;\n}\nexport default function (value, key) {\n if (!arguments.length) return Array.from(this, datum);\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n if (typeof value !== \"function\") value = constant(value);\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}","import sparse from \"./sparse.js\";\nimport { Selection } from \"./index.js\";\nexport default function () {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}","export default function (onenter, onupdate, onexit) {\n var enter = this.enter(),\n update = this,\n exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove();else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}","import { Selection } from \"./index.js\";\nexport default function (context) {\n var selection = context.selection ? context.selection() : context;\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n return new Selection(merges, this._parents);\n}","export default function () {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n}","import { Selection } from \"./index.js\";\nexport default function (compare) {\n if (!compare) compare = ascending;\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n return new Selection(sortgroups, this._parents).order();\n}\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","export default function () {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}","export default function () {\n return Array.from(this);\n}","export default function () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n return null;\n}","export default function () {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}","export default function () {\n return !this.node();\n}","export default function (callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n return this;\n}","import namespace from \"../namespace.js\";\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\nfunction attrConstant(name, value) {\n return function () {\n this.setAttribute(name, value);\n };\n}\nfunction attrConstantNS(fullname, value) {\n return function () {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\nfunction attrFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);else this.setAttribute(name, v);\n };\n}\nfunction attrFunctionNS(fullname, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\nexport default function (name, value) {\n var fullname = namespace(name);\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}","export default function (node) {\n return node.ownerDocument && node.ownerDocument.defaultView // node is a Node\n || node.document && node // node is a Window\n || node.defaultView; // node is a Document\n}","import defaultView from \"../window.js\";\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\nfunction styleConstant(name, value, priority) {\n return function () {\n this.style.setProperty(name, value, priority);\n };\n}\nfunction styleFunction(name, value, priority) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);else this.style.setProperty(name, v, priority);\n };\n}\nexport default function (name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}","function propertyRemove(name) {\n return function () {\n delete this[name];\n };\n}\nfunction propertyConstant(name, value) {\n return function () {\n this[name] = value;\n };\n}\nfunction propertyFunction(name, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];else this[name] = v;\n };\n}\nexport default function (name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\nClassList.prototype = {\n add: function (name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function (name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function (name) {\n return this._names.indexOf(name) >= 0;\n }\n};\nfunction classedAdd(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n while (++i < n) list.add(names[i]);\n}\nfunction classedRemove(node, names) {\n var list = classList(node),\n i = -1,\n n = names.length;\n while (++i < n) list.remove(names[i]);\n}\nfunction classedTrue(names) {\n return function () {\n classedAdd(this, names);\n };\n}\nfunction classedFalse(names) {\n return function () {\n classedRemove(this, names);\n };\n}\nfunction classedFunction(names, value) {\n return function () {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\nexport default function (name, value) {\n var names = classArray(name + \"\");\n if (arguments.length < 2) {\n var list = classList(this.node()),\n i = -1,\n n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}","function textRemove() {\n this.textContent = \"\";\n}\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\nfunction textFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\nexport default function (value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}","function htmlRemove() {\n this.innerHTML = \"\";\n}\nfunction htmlConstant(value) {\n return function () {\n this.innerHTML = value;\n };\n}\nfunction htmlFunction(value) {\n return function () {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\nexport default function (value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\nexport default function () {\n return this.each(raise);\n}","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\nexport default function () {\n return this.each(lower);\n}","import creator from \"../creator.js\";\nexport default function (name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function () {\n return this.appendChild(create.apply(this, arguments));\n });\n}","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\nfunction constantNull() {\n return null;\n}\nexport default function (name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function () {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\nexport default function () {\n return this.each(remove);\n}","function selection_cloneShallow() {\n var clone = this.cloneNode(false),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true),\n parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\nexport default function (deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}","export default function (value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}","function contextListener(listener) {\n return function (event) {\n listener.call(this, event, this.__data__);\n };\n}\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {\n type: t,\n name: name\n };\n });\n}\nfunction onRemove(typename) {\n return function () {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;else delete this.__on;\n };\n}\nfunction onAdd(typename, value, options) {\n return function () {\n var on = this.__on,\n o,\n listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {\n type: typename.type,\n name: typename.name,\n value: value,\n listener: listener,\n options: options\n };\n if (!on) this.__on = [o];else on.push(o);\n };\n}\nexport default function (typename, value, options) {\n var typenames = parseTypenames(typename + \"\"),\n i,\n n = typenames.length,\n t;\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}","import defaultView from \"../window.js\";\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;else event.initEvent(type, false, false);\n }\n node.dispatchEvent(event);\n}\nfunction dispatchConstant(type, params) {\n return function () {\n return dispatchEvent(this, type, params);\n };\n}\nfunction dispatchFunction(type, params) {\n return function () {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\nexport default function (type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}","export default function* () {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\nexport var root = [null];\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\nfunction selection_selection() {\n return this;\n}\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\nexport default selection;","import { Selection, root } from \"./selection/index.js\";\nexport default function (selector) {\n return typeof selector === \"string\" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root);\n}","export default function (event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}","import sourceEvent from \"./sourceEvent.js\";\nexport default function (event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}","var noop = {\n value: () => {}\n};\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\nfunction Dispatch(_) {\n this._ = _;\n}\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function (t) {\n var name = \"\",\n i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {\n type: t,\n name: name\n };\n });\n}\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function (typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n return this;\n },\n copy: function () {\n var copy = {},\n _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function (type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function (type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({\n name: name,\n value: callback\n });\n return type;\n}\nexport default dispatch;","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {\n passive: false\n};\nexport const nonpassivecapture = {\n capture: true,\n passive: false\n};\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\nexport default function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}","import { select } from \"d3-selection\";\nimport noevent, { nonpassivecapture } from \"./noevent.js\";\nexport default function (view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function () {\n selection.on(\"click.drag\", null);\n }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}","export default function (constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}","import define, { extend } from \"./define.js\";\nexport function Color() {}\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb(m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, (m & 0xf) << 4 | m & 0xf, 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba(m >> 12 & 0xf | m >> 8 & 0xf0, m >> 8 & 0xf | m >> 4 & 0xf0, m >> 4 & 0xf | m & 0xf0, ((m & 0xf) << 4 | m & 0xf) / 0xff) // #f000\n : null // invalid hex\n ) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;else if (l <= 0 || l >= 1) h = s = NaN;else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;else if (g === max) h = (b - r) / s + 2;else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity);\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1,\n t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nexport default function (values) {\n var n = values.length - 1;\n return function (t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","import { basis } from \"./basis.js\";\nexport default function (values) {\n var n = values.length;\n return function (t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}","export default (x => () => x);","import constant from \"./constant.js\";\nfunction linear(a, d) {\n return function (t) {\n return a + t * d;\n };\n}\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function (t) {\n return Math.pow(a + t * b, y);\n };\n}\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function (a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}","import { rgb as colorRgb } from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, { gamma } from \"./color.js\";\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function (t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n rgb.gamma = rgbGamma;\n return rgb;\n})(1);\nfunction rgbSpline(spline) {\n return function (colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i,\n color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function (t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);","export default function (a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function (t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}","import value from \"./value.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n return function (t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}","export default function (a, b) {\n var d = new Date();\n return a = +a, b = +b, function (t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return a * (1 - t) + b * t;\n };\n}","import value from \"./value.js\";\nexport default function (a, b) {\n var i = {},\n c = {},\n k;\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n return function (t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}","import number from \"./number.js\";\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\nfunction zero(b) {\n return function () {\n return b;\n };\n}\nfunction one(b) {\n return function (t) {\n return b(t) + \"\";\n };\n}\nexport default function (a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0,\n // scan index for next number in b\n am,\n // current match in a\n bm,\n // current match in b\n bs,\n // string preceding current number in b, if any\n i = -1,\n // index in s\n s = [],\n // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else {\n // interpolate non-matching numbers\n s[++i] = null;\n q.push({\n i: i,\n x: number(am, bm)\n });\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function (t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}","import { color } from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport { genericArray } from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, { isNumberArray } from \"./numberArray.js\";\nexport default function (a, b) {\n var t = typeof b,\n c;\n return b == null || t === \"boolean\" ? constant(b) : (t === \"number\" ? number : t === \"string\" ? (c = color(b)) ? (b = c, rgb) : string : b instanceof color ? rgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : number)(a, b);\n}","export default function (a, b) {\n return a = +a, b = +b, function (t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}","var degrees = 180 / Math.PI;\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nexport default function (a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}","import decompose, { identity } from \"./decompose.js\";\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}","import number from \"../number.js\";\nimport { parseCss, parseSvg } from \"./parse.js\";\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;else if (b - a > 180) a += 360; // shortest path\n q.push({\n i: s.push(pop(s) + \"rotate(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({\n i: s.push(pop(s) + \"skewX(\", null, degParen) - 2,\n x: number(a, b)\n });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: number(xa, xb)\n }, {\n i: i - 2,\n x: number(ya, yb)\n });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n return function (a, b) {\n var s = [],\n // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function (t) {\n var i = -1,\n n = q.length,\n o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");","var frame = 0,\n // is an animation frame pending?\n timeout = 0,\n // is a timeout pending?\n interval = 0,\n // are any timers active?\n pokeDelay = 1000,\n // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function (f) {\n setTimeout(f, 17);\n };\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\nfunction clearNow() {\n clockNow = 0;\n}\nexport function Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function (callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function () {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nexport function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead,\n e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\nfunction poke() {\n var now = clock.now(),\n delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\nfunction nap() {\n var t0,\n t1 = taskHead,\n t2,\n time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}","import { Timer } from \"./timer.js\";\nexport default function (callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}","import { dispatch } from \"d3-dispatch\";\nimport { timer, timeout } from \"d3-timer\";\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\nexport default function (node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index,\n // For context during callback.\n group: group,\n // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function () {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}","import { STARTING, ENDING, ENDED } from \"./transition/schedule.js\";\nexport default function (node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n if (!schedules) return;\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) {\n empty = false;\n continue;\n }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n if (empty) delete node.__transition;\n}","import interrupt from \"../interrupt.js\";\nexport default function (name) {\n return this.each(function () {\n interrupt(this, name);\n });\n}","import { get, set } from \"./schedule.js\";\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n schedule.tween = tween1;\n };\n}\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error();\n return function () {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {\n name: name,\n value: value\n }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n schedule.tween = tween1;\n };\n}\nexport default function (name, value) {\n var id = this._id;\n name += \"\";\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n transition.each(function () {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n return function (node) {\n return get(node, id).value[name];\n };\n}","import { color } from \"d3-color\";\nimport { interpolateNumber, interpolateRgb, interpolateString } from \"d3-interpolate\";\nexport default function (a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\n}","import { interpolateTransformSvg as interpolateTransform } from \"d3-interpolate\";\nimport { namespace } from \"d3-selection\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\nfunction attrRemove(name) {\n return function () {\n this.removeAttribute(name);\n };\n}\nfunction attrRemoveNS(fullname) {\n return function () {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\nfunction attrFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0,\n value1 = value(this),\n string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\nexport default function (name, value) {\n var fullname = namespace(name),\n i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}","import { namespace } from \"d3-selection\";\nfunction attrInterpolate(name, i) {\n return function (t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\nfunction attrInterpolateNS(fullname, i) {\n return function (t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nexport default function (name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}","import { get, init } from \"./schedule.js\";\nfunction delayFunction(id, value) {\n return function () {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\nfunction delayConstant(id, value) {\n return value = +value, function () {\n init(this, id).delay = value;\n };\n}\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id, value)) : get(this.node(), id).delay;\n}","import { get, set } from \"./schedule.js\";\nfunction durationFunction(id, value) {\n return function () {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\nfunction durationConstant(id, value) {\n return value = +value, function () {\n set(this, id).duration = value;\n };\n}\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id, value)) : get(this.node(), id).duration;\n}","import { get, set } from \"./schedule.js\";\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error();\n return function () {\n set(this, id).ease = value;\n };\n}\nexport default function (value) {\n var id = this._id;\n return arguments.length ? this.each(easeConstant(id, value)) : get(this.node(), id).ease;\n}","import { set } from \"./schedule.js\";\nfunction easeVarying(id, value) {\n return function () {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error();\n set(this, id).ease = v;\n };\n}\nexport default function (value) {\n if (typeof value !== \"function\") throw new Error();\n return this.each(easeVarying(this._id, value));\n}","import { matcher } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nexport default function (match) {\n if (typeof match !== \"function\") match = matcher(match);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n return new Transition(subgroups, this._parents, this._name, this._id);\n}","import { Transition } from \"./index.js\";\nexport default function (transition) {\n if (transition._id !== this._id) throw new Error();\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n return new Transition(merges, this._parents, this._name, this._id);\n}","import { get, set, init } from \"./schedule.js\";\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function (t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\nfunction onFunction(id, name, listener) {\n var on0,\n on1,\n sit = start(name) ? init : set;\n return function () {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n schedule.on = on1;\n };\n}\nexport default function (name, listener) {\n var id = this._id;\n return arguments.length < 2 ? get(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener));\n}","function removeFunction(id) {\n return function () {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\nexport default function () {\n return this.on(\"end.remove\", removeFunction(this._id));\n}","import { selector } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selector(select);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n return new Transition(subgroups, this._parents, name, id);\n}","import { selectorAll } from \"d3-selection\";\nimport { Transition } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function (select) {\n var name = this._name,\n id = this._id;\n if (typeof select !== \"function\") select = selectorAll(select);\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n return new Transition(subgroups, parents, name, id);\n}","import { selection } from \"d3-selection\";\nvar Selection = selection.prototype.constructor;\nexport default function () {\n return new Selection(this._groups, this._parents);\n}","import { interpolateTransformCss as interpolateTransform } from \"d3-interpolate\";\nimport { style } from \"d3-selection\";\nimport { set } from \"./schedule.js\";\nimport { tweenValue } from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\nfunction styleNull(name, interpolate) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\nfunction styleRemove(name) {\n return function () {\n this.style.removeProperty(name);\n };\n}\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function () {\n var string0 = style(this, name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\nfunction styleFunction(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function () {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\nfunction styleMaybeRemove(id, name) {\n var on0,\n on1,\n listener0,\n key = \"style.\" + name,\n event = \"end.\" + key,\n remove;\n return function () {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n schedule.on = on1;\n };\n}\nexport default function (name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on(\"end.style.\" + name, null);\n}","function styleInterpolate(name, i, priority) {\n return function (t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\nexport default function (name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}","import { tweenValue } from \"./tween.js\";\nfunction textConstant(value) {\n return function () {\n this.textContent = value;\n };\n}\nfunction textFunction(value) {\n return function () {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\nexport default function (value) {\n return this.tween(\"text\", typeof value === \"function\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\n}","function textInterpolate(i) {\n return function (t) {\n this.textContent = i.call(this, t);\n };\n}\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nexport default function (value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error();\n return this.tween(key, textTween(value));\n}","import { Transition, newId } from \"./index.js\";\nimport schedule, { get } from \"./schedule.js\";\nexport default function () {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n return new Transition(groups, this._parents, name, id1);\n}","import { set } from \"./schedule.js\";\nexport default function () {\n var on0,\n on1,\n that = this,\n id = that._id,\n size = that.size();\n return new Promise(function (resolve, reject) {\n var cancel = {\n value: reject\n },\n end = {\n value: function () {\n if (--size === 0) resolve();\n }\n };\n that.each(function () {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}","import { selection } from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\nvar id = 0;\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\nexport default function transition(name) {\n return selection().transition(name);\n}\nexport function newId() {\n return ++id;\n}\nvar selection_prototype = selection.prototype;\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};","export function cubicIn(t) {\n return t * t * t;\n}\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}","import { Transition, newId } from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport { easeCubicInOut } from \"d3-ease\";\nimport { now } from \"d3-timer\";\nvar defaultTiming = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\nexport default function (name) {\n var id, timing;\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n return new Transition(groups, this._parents, name, id);\n}","import { selection } from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;","export default (x => () => x);","export default function BrushEvent(type, {\n sourceEvent,\n target,\n selection,\n mode,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {\n value: type,\n enumerable: true,\n configurable: true\n },\n sourceEvent: {\n value: sourceEvent,\n enumerable: true,\n configurable: true\n },\n target: {\n value: target,\n enumerable: true,\n configurable: true\n },\n selection: {\n value: selection,\n enumerable: true,\n configurable: true\n },\n mode: {\n value: mode,\n enumerable: true,\n configurable: true\n },\n _: {\n value: dispatch\n }\n });\n}","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\nexport default function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}","import { dispatch } from \"d3-dispatch\";\nimport { dragDisable, dragEnable } from \"d3-drag\";\nimport { interpolate } from \"d3-interpolate\";\nimport { pointer, select } from \"d3-selection\";\nimport { interrupt } from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, { nopropagation } from \"./noevent.js\";\nvar MODE_DRAG = {\n name: \"drag\"\n },\n MODE_SPACE = {\n name: \"space\"\n },\n MODE_HANDLE = {\n name: \"handle\"\n },\n MODE_CENTER = {\n name: \"center\"\n };\nconst {\n abs,\n max,\n min\n} = Math;\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function (x, e) {\n return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]];\n },\n output: function (xy) {\n return xy && [xy[0][0], xy[1][0]];\n }\n};\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function (y, e) {\n return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]];\n },\n output: function (xy) {\n return xy && [xy[0][1], xy[1][1]];\n }\n};\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function (xy) {\n return xy == null ? null : number2(xy);\n },\n output: function (xy) {\n return xy;\n }\n};\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\nfunction type(t) {\n return {\n type: t\n };\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\nfunction empty(extent) {\n return extent[0][0] === extent[1][0] || extent[0][1] === extent[1][1];\n}\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\nexport function brushX() {\n return brush(X);\n}\nexport function brushY() {\n return brush(Y);\n}\nexport default function () {\n return brush(XY);\n}\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n function brush(group) {\n var overlay = group.property(\"__brush\", initialize).selectAll(\".overlay\").data([type(\"overlay\")]);\n overlay.enter().append(\"rect\").attr(\"class\", \"overlay\").attr(\"pointer-events\", \"all\").attr(\"cursor\", cursors.overlay).merge(overlay).each(function () {\n var extent = local(this).extent;\n select(this).attr(\"x\", extent[0][0]).attr(\"y\", extent[0][1]).attr(\"width\", extent[1][0] - extent[0][0]).attr(\"height\", extent[1][1] - extent[0][1]);\n });\n group.selectAll(\".selection\").data([type(\"selection\")]).enter().append(\"rect\").attr(\"class\", \"selection\").attr(\"cursor\", cursors.selection).attr(\"fill\", \"#777\").attr(\"fill-opacity\", 0.3).attr(\"stroke\", \"#fff\").attr(\"shape-rendering\", \"crispEdges\");\n var handle = group.selectAll(\".handle\").data(dim.handles, function (d) {\n return d.type;\n });\n handle.exit().remove();\n handle.enter().append(\"rect\").attr(\"class\", function (d) {\n return \"handle handle--\" + d.type;\n }).attr(\"cursor\", function (d) {\n return cursors[d.type];\n });\n group.each(redraw).attr(\"fill\", \"none\").attr(\"pointer-events\", \"all\").on(\"mousedown.brush\", started).filter(touchable).on(\"touchstart.brush\", started).on(\"touchmove.brush\", touchmoved).on(\"touchend.brush touchcancel.brush\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n brush.move = function (group, selection, event) {\n if (group.tween) {\n group.on(\"start.brush\", function (event) {\n emitter(this, arguments).beforestart().start(event);\n }).on(\"interrupt.brush end.brush\", function (event) {\n emitter(this, arguments).end(event);\n }).tween(\"brush\", function () {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group.each(function () {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n brush.clear = function (group, event) {\n brush.move(group, null, event);\n };\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n if (selection) {\n group.selectAll(\".selection\").style(\"display\", null).attr(\"x\", selection[0][0]).attr(\"y\", selection[0][1]).attr(\"width\", selection[1][0] - selection[0][0]).attr(\"height\", selection[1][1] - selection[0][1]);\n group.selectAll(\".handle\").style(\"display\", null).attr(\"x\", function (d) {\n return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2;\n }).attr(\"y\", function (d) {\n return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2;\n }).attr(\"width\", function (d) {\n return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize;\n }).attr(\"height\", function (d) {\n return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize;\n });\n } else {\n group.selectAll(\".selection,.handle\").style(\"display\", \"none\").attr(\"x\", null).attr(\"y\", null).attr(\"width\", null).attr(\"height\", null);\n }\n }\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n Emitter.prototype = {\n beforestart: function () {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function (event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);else this.emit(\"brush\", event);\n return this;\n },\n brush: function (event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function (event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function (type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(type, this.that, new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }), d);\n }\n };\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : keys && event.altKey ? MODE_CENTER : MODE_HANDLE,\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0],\n w0,\n w1,\n N = extent[0][1],\n n0,\n n1,\n E = extent[1][0],\n e0,\n e1,\n S = extent[1][1],\n s0,\n s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[w0 = dim === Y ? W : min(pts[0][0], pts[1][0]), n0 = dim === X ? N : min(pts[0][1], pts[1][1])], [e0 = dim === Y ? E : max(pts[0][0], pts[1][0]), s0 = dim === X ? S : max(pts[0][1], pts[1][1])]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n var group = select(that).attr(\"pointer-events\", \"none\");\n var overlay = group.selectAll(\".overlay\").attr(\"cursor\", cursors[type]);\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view).on(\"mousemove.brush\", moved, true).on(\"mouseup.brush\", ended, true);\n if (keys) view.on(\"keydown.brush\", keydowned, true).on(\"keyup.brush\", keyupped, true);\n dragDisable(event.view);\n }\n redraw.call(that);\n emit.start(event, mode.name);\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points) if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1])) lockY = true;else lockX = true;\n }\n for (const point of points) if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n function move(event) {\n const point = points[0],\n point0 = point.point0;\n var t;\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG:\n {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE:\n {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER:\n {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n if (selection[0][0] !== w1 || selection[0][1] !== n1 || selection[1][0] !== e1 || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function () {\n touchending = null;\n }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n function keydowned(event) {\n switch (event.keyCode) {\n case 16:\n {\n // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18:\n {\n // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32:\n {\n // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx;else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy;else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default:\n return;\n }\n noevent(event);\n }\n function keyupped(event) {\n switch (event.keyCode) {\n case 16:\n {\n // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18:\n {\n // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1;else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1;else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32:\n {\n // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1;else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1;else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default:\n return;\n }\n noevent(event);\n }\n }\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n function initialize() {\n var state = this.__brush || {\n selection: null\n };\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n brush.extent = function (_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n brush.filter = function (_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n brush.touchable = function (_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n brush.handleSize = function (_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n brush.keyModifiers = function (_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n brush.on = function () {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n return brush;\n}","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}","export default function descending(a, b) {\n return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = lo + hi >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = lo + hi >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n return {\n left,\n center,\n right\n };\n}\nfunction zero() {\n return 0;\n}","export default function number(x) {\n return x === null ? NaN : +x;\n}\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {\n _intern: {\n value: new Map()\n },\n _key: {\n value: key\n }\n });\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {\n _intern: {\n value: new Map()\n },\n _key: {\n value: key\n }\n });\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\nfunction intern_get({\n _intern,\n _key\n}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\nfunction intern_set({\n _intern,\n _key\n}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\nfunction intern_delete({\n _intern,\n _key\n}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start,\n [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1,\n ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start,\n inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n }\n }\n return max;\n}","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, { numbers } from \"./number.js\";\nimport { ascendingDefined } from \"./sort.js\";\nimport greatest from \"./greatest.js\";\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), i => numbers[i]);\n return i >= 0 ? i : -1;\n}","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n while (++i < n) {\n range[i] = start + i * step;\n }\n return range;\n}","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0:\n break;\n case 1:\n this.range(domain);\n break;\n default:\n this.range(range).domain(domain);\n break;\n }\n return this;\n}\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0:\n break;\n case 1:\n {\n if (typeof domain === \"function\") this.interpolator(domain);else this.range(domain);\n break;\n }\n default:\n {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);else this.range(interpolator);\n break;\n }\n }\n return this;\n}","import { InternMap } from \"d3-array\";\nimport { initRange } from \"./init.js\";\nexport const implicit = Symbol(\"implicit\");\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n scale.copy = function () {\n return ordinal(domain, range).unknown(unknown);\n };\n initRange.apply(scale, arguments);\n return scale;\n}","import { range as sequence } from \"d3-array\";\nimport { initRange } from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n delete scale.unknown;\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function (i) {\n return start + step * i;\n });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n scale.domain = function (_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n scale.range = function (_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n scale.rangeRound = function (_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n scale.bandwidth = function () {\n return bandwidth;\n };\n scale.step = function () {\n return step;\n };\n scale.round = function (_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n scale.padding = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n scale.paddingInner = function (_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n scale.paddingOuter = function (_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n scale.align = function (_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n scale.copy = function () {\n return band(domain(), [r0, r1]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n };\n return initRange.apply(rescale(), arguments);\n}\nfunction pointish(scale) {\n var copy = scale.copy;\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n scale.copy = function () {\n return pointish(copy());\n };\n return scale;\n}\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}","export default function constants(x) {\n return function () {\n return x;\n };\n}","export default function number(x) {\n return +x;\n}","import { bisect } from \"d3-array\";\nimport { interpolate as interpolateValue, interpolateNumber, interpolateRound } from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\nvar unit = [0, 1];\nexport function identity(x) {\n return x;\n}\nfunction normalize(a, b) {\n return (b -= a = +a) ? function (x) {\n return (x - a) / b;\n } : constant(isNaN(b) ? NaN : 0.5);\n}\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function (x) {\n return Math.max(a, Math.min(b, x));\n };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0],\n d1 = domain[1],\n r0 = range[0],\n r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function (x) {\n return r0(d0(x));\n };\n}\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n return function (x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\nexport function copy(source, target) {\n return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());\n}\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n scale.invert = function (y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n scale.domain = function (_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n scale.rangeRound = function (_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n scale.clamp = function (_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n scale.interpolate = function (_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n return function (t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\nexport default function continuous() {\n return transformer()(identity, identity);\n}","export default function (x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i,\n coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient, +x.slice(i + 1)];\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}","export default function (grouping, thousands) {\n return function (value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n return t.reverse().join(thousands);\n };\n}","export default function (numerals) {\n return function (value) {\n return value.replace(/[0-9]/g, function (i) {\n return numerals[+i];\n });\n };\n}","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\nFormatSpecifier.prototype.toString = function () {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === undefined ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function (s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport var prefixExponent;\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}","import { formatDecimalParts } from \"./formatDecimal.js\";\nexport default function (x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": x => Math.round(x).toString(2),\n \"c\": x => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": x => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": x => Math.round(x).toString(16).toUpperCase(),\n \"x\": x => Math.round(x).toString(16)\n};","export default function (x) {\n return x;\n}","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport { prefixExponent } from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\nvar map = Array.prototype.map,\n prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nexport default function (locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || fill === \"0\" && align === \"=\") zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i,\n n,\n c;\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n return numerals(value);\n }\n format.toString = function () {\n return specifier + \"\";\n };\n return format;\n }\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function (value) {\n return f(k * value) + prefix;\n };\n }\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var format;\nexport var formatPrefix;\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}","import exponent from \"./exponent.js\";\nexport default function (step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}","import exponent from \"./exponent.js\";\nexport default function (step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}","import exponent from \"./exponent.js\";\nexport default function (step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}","import { tickStep } from \"d3-array\";\nimport { format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound } from \"d3-format\";\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\":\n {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\":\n {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\":\n {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}","import { ticks, tickIncrement } from \"d3-array\";\nimport continuous, { copy } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\nexport function linearish(scale) {\n var domain = scale.domain;\n scale.ticks = function (count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n scale.tickFormat = function (count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n scale.nice = function (count) {\n if (count == null) count = 10;\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start;\n d[i1] = stop;\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n return scale;\n };\n return scale;\n}\nexport default function linear() {\n var scale = continuous();\n scale.copy = function () {\n return copy(scale, linear());\n };\n initRange.apply(scale, arguments);\n return linearish(scale);\n}","export default function nice(domain, interval) {\n domain = domain.slice();\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}","import { ascending, bisect, quantileSorted as threshold } from \"d3-array\";\nimport { initRange } from \"./init.js\";\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n function rescale() {\n var i = 0,\n n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n scale.invertExtent = function (y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [i > 0 ? thresholds[i - 1] : domain[0], i < thresholds.length ? thresholds[i] : domain[domain.length - 1]];\n };\n scale.domain = function (_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n scale.range = function (_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n scale.unknown = function (_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n scale.quantiles = function () {\n return thresholds.slice();\n };\n scale.copy = function () {\n return quantile().domain(domain).range(range).unknown(unknown);\n };\n return initRange.apply(scale, arguments);\n}","const t0 = new Date(),\n t1 = new Date();\nexport function timeInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n interval.floor = date => {\n return floori(date = new Date(+date)), date;\n };\n interval.ceil = date => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n interval.round = date => {\n const d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start); while (previous < start && start < stop);\n return range;\n };\n interval.filter = test => {\n return timeInterval(date => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n interval.every = step => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? d => field(d) % step === 0 : d => interval.count(0, d) % step === 0);\n };\n }\n return interval;\n}","import { timeInterval } from \"./interval.js\";\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = k => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval(date => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\nexport const milliseconds = millisecond.range;","import { timeInterval } from \"./interval.js\";\nimport { durationSecond } from \"./duration.js\";\nexport const second = timeInterval(date => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, date => {\n return date.getUTCSeconds();\n});\nexport const seconds = second.range;","import { timeInterval } from \"./interval.js\";\nimport { durationMinute, durationSecond } from \"./duration.js\";\nexport const timeMinute = timeInterval(date => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, date => {\n return date.getMinutes();\n});\nexport const timeMinutes = timeMinute.range;\nexport const utcMinute = timeInterval(date => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, date => {\n return date.getUTCMinutes();\n});\nexport const utcMinutes = utcMinute.range;","import { timeInterval } from \"./interval.js\";\nimport { durationHour, durationMinute, durationSecond } from \"./duration.js\";\nexport const timeHour = timeInterval(date => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, date => {\n return date.getHours();\n});\nexport const timeHours = timeHour.range;\nexport const utcHour = timeInterval(date => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, date => {\n return date.getUTCHours();\n});\nexport const utcHours = utcHour.range;","import { timeInterval } from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nexport const timeDay = timeInterval(date => date.setHours(0, 0, 0, 0), (date, step) => date.setDate(date.getDate() + step), (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay, date => date.getDate() - 1);\nexport const timeDays = timeDay.range;\nexport const utcDay = timeInterval(date => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, date => {\n return date.getUTCDate() - 1;\n});\nexport const utcDays = utcDay.range;\nexport const unixDay = timeInterval(date => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, date => {\n return Math.floor(date / durationDay);\n});\nexport const unixDays = unixDay.range;","import { timeInterval } from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\nfunction timeWeekday(i) {\n return timeInterval(date => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\nfunction utcWeekday(i) {\n return timeInterval(date => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;","import { timeInterval } from \"./interval.js\";\nexport const timeMonth = timeInterval(date => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, date => {\n return date.getMonth();\n});\nexport const timeMonths = timeMonth.range;\nexport const utcMonth = timeInterval(date => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, date => {\n return date.getUTCMonth();\n});\nexport const utcMonths = utcMonth.range;","import { timeInterval } from \"./interval.js\";\nexport const timeYear = timeInterval(date => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, date => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = k => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval(date => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\nexport const timeYears = timeYear.range;\nexport const utcYear = timeInterval(date => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, date => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = k => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval(date => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\nexport const utcYears = utcYear.range;","import { bisector, tickStep } from \"d3-array\";\nimport { durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear } from \"./duration.js\";\nimport { millisecond } from \"./millisecond.js\";\nimport { second } from \"./second.js\";\nimport { timeMinute, utcMinute } from \"./minute.js\";\nimport { timeHour, utcHour } from \"./hour.js\";\nimport { timeDay, unixDay } from \"./day.js\";\nimport { timeSunday, utcSunday } from \"./week.js\";\nimport { timeMonth, utcMonth } from \"./month.js\";\nimport { timeYear, utcYear } from \"./year.js\";\nfunction ticker(year, month, week, day, hour, minute) {\n const tickIntervals = [[second, 1, durationSecond], [second, 5, 5 * durationSecond], [second, 15, 15 * durationSecond], [second, 30, 30 * durationSecond], [minute, 1, durationMinute], [minute, 5, 5 * durationMinute], [minute, 15, 15 * durationMinute], [minute, 30, 30 * durationMinute], [hour, 1, durationHour], [hour, 3, 3 * durationHour], [hour, 6, 6 * durationHour], [hour, 12, 12 * durationHour], [day, 1, durationDay], [day, 2, 2 * durationDay], [week, 1, durationWeek], [month, 1, durationMonth], [month, 3, 3 * durationMonth], [year, 1, durationYear]];\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n return [ticks, tickInterval];\n}\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\nexport { utcTicks, utcTickInterval, timeTicks, timeTickInterval };","var t0 = new Date(),\n t1 = new Date();\nexport default function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;\n }\n interval.floor = function (date) {\n return floori(date = new Date(+date)), date;\n };\n interval.ceil = function (date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n interval.round = function (date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n interval.offset = function (date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n interval.range = function (start, stop, step) {\n var range = [],\n previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start); while (previous < start && start < stop);\n return range;\n };\n interval.filter = function (test) {\n return newInterval(function (date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function (date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n if (count) {\n interval.count = function (start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n interval.every = function (step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {\n return field(d) % step === 0;\n } : function (d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n return interval;\n}","import interval from \"./interval.js\";\nimport { durationDay, durationMinute } from \"./duration.js\";\nvar day = interval(date => date.setHours(0, 0, 0, 0), (date, step) => date.setDate(date.getDate() + step), (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay, date => date.getDate() - 1);\nexport default day;\nexport var days = day.range;","import interval from \"./interval.js\";\nimport { durationMinute, durationWeek } from \"./duration.js\";\nfunction weekday(i) {\n return interval(function (date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function (start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;","import interval from \"./interval.js\";\nvar year = interval(function (date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function (start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function (date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\nexport default year;\nexport var years = year.range;","import interval from \"./interval.js\";\nimport { durationDay } from \"./duration.js\";\nvar utcDay = interval(function (date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function (start, end) {\n return (end - start) / durationDay;\n}, function (date) {\n return date.getUTCDate() - 1;\n});\nexport default utcDay;\nexport var utcDays = utcDay.range;","import interval from \"./interval.js\";\nimport { durationWeek } from \"./duration.js\";\nfunction utcWeekday(i) {\n return interval(function (date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function (start, end) {\n return (end - start) / durationWeek;\n });\n}\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;","import interval from \"./interval.js\";\nvar utcYear = interval(function (date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function (start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function (date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function (k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function (date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function (date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\nexport default utcYear;\nexport var utcYears = utcYear.range;","import { timeDay, timeSunday, timeMonday, timeThursday, timeYear, utcDay, utcSunday, utcMonday, utcThursday, utcYear } from \"d3-time\";\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\nfunction newDate(y, m, d) {\n return {\n y: y,\n m: m,\n d: d,\n H: 0,\n M: 0,\n S: 0,\n L: 0\n };\n}\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n function newFormat(specifier, formats) {\n return function (date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n if (!(date instanceof Date)) date = new Date(+date);\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n function newParse(specifier, Z) {\n return function (string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week,\n day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || (j = parse(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n return {\n format: function (specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function () {\n return specifier;\n };\n return f;\n },\n parse: function (specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function () {\n return specifier;\n };\n return p;\n },\n utcFormat: function (specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function () {\n return specifier;\n };\n return f;\n },\n utcParse: function (specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function () {\n return specifier;\n };\n return p;\n }\n };\n}\nvar pads = {\n \"-\": \"\",\n \"_\": \" \",\n \"0\": \"0\"\n },\n numberRe = /^\\s*\\d+/,\n // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\nfunction dISO(d) {\n var day = d.getDay();\n return day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d);\n}\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = day >= 4 || day === 0 ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n}\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);\n}\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = day >= 4 || day === 0 ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\nfunction formatUTCZone() {\n return \"+0000\";\n}\nfunction formatLiteralPercent() {\n return \"%\";\n}\nfunction formatUnixTimestamp(d) {\n return +d;\n}\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}","import formatLocale from \"./locale.js\";\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}","import { timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval } from \"d3-time\";\nimport { timeFormat } from \"d3-time-format\";\nimport continuous, { copy } from \"./continuous.js\";\nimport { initRange } from \"./init.js\";\nimport nice from \"./nice.js\";\nfunction date(t) {\n return new Date(t);\n}\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? week(date) < date ? formatDay : formatWeek : year(date) < date ? formatMonth : formatYear)(date);\n }\n scale.invert = function (y) {\n return new Date(invert(y));\n };\n scale.domain = function (_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n scale.ticks = function (interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n scale.tickFormat = function (count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n scale.nice = function (interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n scale.copy = function () {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n return scale;\n}\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}","export default function (x) {\n return function constant() {\n return x;\n };\n}","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function (strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 =\n // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon)) ;\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\nexport function path() {\n return new Path();\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}","import { Path } from \"d3-path\";\nexport function withPath(shape) {\n let digits = 3;\n shape.digits = function (_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n return () => new Path(digits);\n}","import constant from \"./constant.js\";\nimport { abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau } from \"./math.js\";\nimport { withPath } from \"./path.js\";\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0,\n y10 = y1 - y0,\n x32 = x3 - x2,\n y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\nexport default function () {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n context.closePath();\n if (buffer) return context = null, buffer + \"\" || null;\n }\n arc.centroid = function () {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n arc.innerRadius = function (_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n arc.outerRadius = function (_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n arc.cornerRadius = function (_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n arc.padRadius = function (_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n arc.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n arc.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n arc.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n arc.context = function (_) {\n return arguments.length ? (context = _ == null ? null : _, arc) : context;\n };\n return arc;\n}","export var slice = Array.prototype.slice;\nexport default function (x) {\n return typeof x === \"object\" && \"length\" in x ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}","function Linear(context) {\n this._context = context;\n}\nLinear.prototype = {\n areaStart: function () {\n this._line = 0;\n },\n areaEnd: function () {\n this._line = NaN;\n },\n lineStart: function () {\n this._point = 0;\n },\n lineEnd: function () {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function (x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y);\n break;\n case 1:\n this._point = 2;\n // falls through\n default:\n this._context.lineTo(x, y);\n break;\n }\n }\n};\nexport default function (context) {\n return new Linear(context);\n}","export function x(p) {\n return p[0];\n}\nexport function y(p) {\n return p[1];\n}","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport { withPath } from \"./path.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function (x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n x = typeof x === \"function\" ? x : x === undefined ? pointX : constant(x);\n y = typeof y === \"function\" ? y : y === undefined ? pointY : constant(y);\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n if (context == null) output = curve(buffer = path());\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n if (buffer) return output = null, buffer + \"\" || null;\n }\n line.x = function (_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n line.y = function (_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n line.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n line.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n line.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n return line;\n}","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport { withPath } from \"./path.js\";\nimport { x as pointX, y as pointY } from \"./point.js\";\nexport default function (x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n x0 = typeof x0 === \"function\" ? x0 : x0 === undefined ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : y0 === undefined ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : y1 === undefined ? pointY : constant(+y1);\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n if (context == null) output = curve(buffer = path());\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n if (buffer) return output = null, buffer + \"\" || null;\n }\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n area.x = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n area.x0 = function (_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n area.x1 = function (_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n area.y = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n area.y0 = function (_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n area.y1 = function (_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n area.lineX0 = area.lineY0 = function () {\n return arealine().x(x0).y(y0);\n };\n area.lineY1 = function () {\n return arealine().x(x0).y(y1);\n };\n area.lineX1 = function () {\n return arealine().x(x1).y(y0);\n };\n area.defined = function (_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n area.curve = function (_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n area.context = function (_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n return area;\n}","export default function (a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}","export default function (d) {\n return d;\n}","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport { tau } from \"./math.js\";\nexport default function () {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function (i, j) {\n return sortValues(arcs[i], arcs[j]);\n });else if (sort != null) index.sort(function (i, j) {\n return sort(data[i], data[j]);\n });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n return arcs;\n }\n pie.value = function (_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n pie.sortValues = function (_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n pie.sort = function (_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n pie.startAngle = function (_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n pie.endAngle = function (_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n pie.padAngle = function (_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n return pie;\n}","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, ViewEncapsulation, Inject, Input, ViewChild, HostBinding, HostListener, Injectable, ChangeDetectionStrategy, EventEmitter, Output, Directive, NgModule, ContentChild } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { isPlatformBrowser, isPlatformServer, CommonModule } from '@angular/common';\nimport { __decorate } from 'tslib';\nimport { DomPortalOutlet, ComponentPortal } from '@angular/cdk/portal';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { select } from 'd3-selection';\nimport { brushX } from 'd3-brush';\nimport { scaleTime, scaleLinear, scalePoint, scaleOrdinal, scaleQuantile, scaleBand } from 'd3-scale';\nimport { area, curveLinear, line, arc, lineRadial, curveCardinalClosed, pie } from 'd3-shape';\nimport { range, min, max, quantile } from 'd3-array';\nimport { interpolate } from 'd3-interpolate';\nimport { easeSinInOut } from 'd3-ease';\nimport rfdc from 'rfdc';\nimport { format } from 'd3-format';\nimport * as d3_color from 'd3-color';\nimport { treemap, stratify } from 'd3-hierarchy';\nimport { sankey, sankeyLeft, sankeyLinkHorizontal } from 'd3-sankey';\nimport { timeFormat } from 'd3-time-format';\n\n/**\n * Throttle a function\n *\n */\nconst _c0 = [\"caretElm\"];\nconst _c1 = a0 => ({\n model: a0\n});\nfunction TooltipContentComponent_span_4_ng_template_1_Template(rf, ctx) {}\nfunction TooltipContentComponent_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtemplate(1, TooltipContentComponent_span_4_ng_template_1_Template, 0, 0, \"ng-template\", 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c1, ctx_r0.context));\n }\n}\nfunction TooltipContentComponent_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 6);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"innerHTML\", ctx_r0.title, i0.ɵɵsanitizeHtml);\n }\n}\nfunction LegendComponent_header_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"header\", 4)(1, \"span\", 5);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r0.title);\n }\n}\nfunction LegendComponent_li_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 6)(1, \"ngx-charts-legend-entry\", 7);\n i0.ɵɵlistener(\"select\", function LegendComponent_li_4_Template_ngx_charts_legend_entry_select_1_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.labelClick.emit($event));\n })(\"activate\", function LegendComponent_li_4_Template_ngx_charts_legend_entry_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.activate($event));\n })(\"deactivate\", function LegendComponent_li_4_Template_ngx_charts_legend_entry_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.deactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const entry_r3 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"label\", entry_r3.label)(\"formattedLabel\", entry_r3.formattedLabel)(\"color\", entry_r3.color)(\"isActive\", ctx_r0.isActive(entry_r3));\n }\n}\nconst _c2 = [\"*\"];\nfunction ChartComponent_ngx_charts_scale_legend_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"ngx-charts-scale-legend\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"horizontal\", ctx_r0.legendOptions && ctx_r0.legendOptions.position === ctx_r0.LegendPosition.Below)(\"valueRange\", ctx_r0.legendOptions.domain)(\"colors\", ctx_r0.legendOptions.colors)(\"height\", ctx_r0.view[1])(\"width\", ctx_r0.legendWidth);\n }\n}\nfunction ChartComponent_ngx_charts_legend_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ngx-charts-legend\", 5);\n i0.ɵɵlistener(\"labelClick\", function ChartComponent_ngx_charts_legend_4_Template_ngx_charts_legend_labelClick_0_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.legendLabelClick.emit($event));\n })(\"labelActivate\", function ChartComponent_ngx_charts_legend_4_Template_ngx_charts_legend_labelActivate_0_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.legendLabelActivate.emit($event));\n })(\"labelDeactivate\", function ChartComponent_ngx_charts_legend_4_Template_ngx_charts_legend_labelDeactivate_0_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.legendLabelDeactivate.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"horizontal\", ctx_r0.legendOptions && ctx_r0.legendOptions.position === ctx_r0.LegendPosition.Below)(\"data\", ctx_r0.legendOptions.domain)(\"title\", ctx_r0.legendOptions.title)(\"colors\", ctx_r0.legendOptions.colors)(\"height\", ctx_r0.view[1])(\"width\", ctx_r0.legendWidth)(\"activeEntries\", ctx_r0.activeEntries);\n }\n}\nconst _c3 = [\"ngx-charts-axis-label\", \"\"];\nconst _c4 = [\"ticksel\"];\nconst _c5 = [\"ngx-charts-x-axis-ticks\", \"\"];\nfunction XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementContainer(0);\n }\n}\nfunction XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0__svg_tspan_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"tspan\", 10);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tickLine_r1 = ctx.$implicit;\n const i_r2 = ctx.index;\n i0.ɵɵattribute(\"y\", i_r2 * 12);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", tickLine_r1, \" \");\n }\n}\nfunction XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0__svg_tspan_1_Template, 2, 2, \"tspan\", 9);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const tickLines_r3 = ctx.ngIf;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", tickLines_r3);\n }\n}\nfunction XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0_Template, 2, 1, \"ng-container\", 6);\n }\n if (rf & 2) {\n const tick_r4 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r4.tickChunks(tick_r4));\n }\n}\nfunction XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const tickFormatted_r6 = i0.ɵɵnextContext().ngIf;\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r4.tickTrim(tickFormatted_r6), \" \");\n }\n}\nfunction XAxisTicksComponent__svg_g_2__svg_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"title\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"text\", 7);\n i0.ɵɵtemplate(4, XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_container_4_Template, 1, 0, \"ng-container\", 8);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5_Template, 1, 1, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(7, XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_7_Template, 1, 1, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const tickFormatted_r6 = ctx.ngIf;\n const tmplMultilineTick_r7 = i0.ɵɵreference(6);\n const tmplSinglelineTick_r8 = i0.ɵɵreference(8);\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(tickFormatted_r6);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"text-anchor\", ctx_r4.textAnchor)(\"transform\", ctx_r4.textTransform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r4.isWrapTicksSupported)(\"ngIfThen\", tmplMultilineTick_r7)(\"ngIfElse\", tmplSinglelineTick_r8);\n }\n}\nfunction XAxisTicksComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 5);\n i0.ɵɵtemplate(1, XAxisTicksComponent__svg_g_2__svg_ng_container_1_Template, 9, 6, \"ng-container\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tick_r4 = ctx.$implicit;\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r4.tickTransform(tick_r4));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r4.tickFormat(tick_r4));\n }\n}\nfunction XAxisTicksComponent__svg_g_3__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"line\", 11);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"transform\", ctx_r4.gridLineTransform());\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"y1\", -ctx_r4.gridLineHeight);\n }\n}\nfunction XAxisTicksComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, XAxisTicksComponent__svg_g_3__svg_g_1_Template, 2, 2, \"g\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tick_r9 = ctx.$implicit;\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r4.tickTransform(tick_r9));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r4.showGridLines);\n }\n}\nconst _c6 = [\"ngx-charts-x-axis\", \"\"];\nfunction XAxisComponent__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2);\n i0.ɵɵlistener(\"dimensionsChanged\", function XAxisComponent__svg_g_1_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.emitTicksHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"trimTicks\", ctx_r1.trimTicks)(\"rotateTicks\", ctx_r1.rotateTicks)(\"maxTickLength\", ctx_r1.maxTickLength)(\"tickFormatting\", ctx_r1.tickFormatting)(\"tickArguments\", ctx_r1.tickArguments)(\"tickStroke\", ctx_r1.tickStroke)(\"scale\", ctx_r1.xScale)(\"orient\", ctx_r1.xOrient)(\"showGridLines\", ctx_r1.showGridLines)(\"gridLineHeight\", ctx_r1.dims.height)(\"width\", ctx_r1.dims.width)(\"tickValues\", ctx_r1.ticks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction XAxisComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 3);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"label\", ctx_r1.labelText)(\"offset\", ctx_r1.labelOffset)(\"orient\", ctx_r1.orientation.Bottom)(\"height\", ctx_r1.dims.height)(\"width\", ctx_r1.dims.width);\n }\n}\nconst _c7 = [\"ngx-charts-y-axis-ticks\", \"\"];\nfunction YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementContainer(0);\n }\n}\nfunction YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0__svg_ng_container_1__svg_tspan_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"tspan\", 12);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tickLine_r1 = ctx.$implicit;\n const i_r2 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext(6);\n i0.ɵɵattribute(\"y\", i_r2 * (8 + ctx_r2.tickSpacing));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", tickLine_r1, \" \");\n }\n}\nfunction YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0__svg_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0__svg_ng_container_1__svg_tspan_1_Template, 2, 2, \"tspan\", 11);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const tickLines_r4 = i0.ɵɵnextContext().ngIf;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", tickLines_r4);\n }\n}\nfunction YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0__svg_ng_container_1_Template, 2, 1, \"ng-container\", 10);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const tickLines_r4 = ctx.ngIf;\n i0.ɵɵnextContext(2);\n const tmplSinglelineTick_r5 = i0.ɵɵreference(8);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", tickLines_r4.length > 1)(\"ngIfElse\", tmplSinglelineTick_r5);\n }\n}\nfunction YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0_Template, 2, 2, \"ng-container\", 7);\n }\n if (rf & 2) {\n const tick_r6 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.tickChunks(tick_r6));\n }\n}\nfunction YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const tickFormatted_r7 = i0.ɵɵnextContext().ngIf;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r2.tickTrim(tickFormatted_r7), \" \");\n }\n}\nfunction YAxisTicksComponent__svg_g_2__svg_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"title\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"text\", 8);\n i0.ɵɵtemplate(4, YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_container_4_Template, 1, 0, \"ng-container\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5_Template, 1, 1, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(7, YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_7_Template, 1, 1, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const tickFormatted_r7 = ctx.ngIf;\n const tmplMultilineTick_r8 = i0.ɵɵreference(6);\n const tmplSinglelineTick_r5 = i0.ɵɵreference(8);\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(tickFormatted_r7);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"font-size\", \"12px\");\n i0.ɵɵattribute(\"dy\", ctx_r2.dy)(\"x\", ctx_r2.x1)(\"y\", ctx_r2.y1)(\"text-anchor\", ctx_r2.textAnchor);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.wrapTicks)(\"ngIfThen\", tmplMultilineTick_r8)(\"ngIfElse\", tmplSinglelineTick_r5);\n }\n}\nfunction YAxisTicksComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵtemplate(1, YAxisTicksComponent__svg_g_2__svg_ng_container_1_Template, 9, 10, \"ng-container\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tick_r6 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r2.transform(tick_r6));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.tickFormat(tick_r6));\n }\n}\nfunction YAxisTicksComponent__svg_path_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"path\", 13);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"d\", ctx_r2.referenceAreaPath)(\"transform\", ctx_r2.gridLineTransform());\n }\n}\nfunction YAxisTicksComponent__svg_g_4__svg_g_1__svg_line_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"line\", 15);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵattribute(\"x2\", ctx_r2.gridLineWidth);\n }\n}\nfunction YAxisTicksComponent__svg_g_4__svg_g_1__svg_line_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"line\", 15);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵattribute(\"x2\", -ctx_r2.gridLineWidth);\n }\n}\nfunction YAxisTicksComponent__svg_g_4__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, YAxisTicksComponent__svg_g_4__svg_g_1__svg_line_1_Template, 1, 1, \"line\", 14)(2, YAxisTicksComponent__svg_g_4__svg_g_1__svg_line_2_Template, 1, 1, \"line\", 14);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"transform\", ctx_r2.gridLineTransform());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.orient === ctx_r2.Orientation.Left);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.orient === ctx_r2.Orientation.Right);\n }\n}\nfunction YAxisTicksComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, YAxisTicksComponent__svg_g_4__svg_g_1_Template, 3, 3, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tick_r9 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r2.transform(tick_r9));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showGridLines);\n }\n}\nfunction YAxisTicksComponent__svg_g_5__svg_g_1__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"title\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"text\", 17);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const refLine_r10 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r2.tickTrim(ctx_r2.tickFormat(refLine_r10.value)));\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"dy\", ctx_r2.dy)(\"y\", -6)(\"x\", ctx_r2.gridLineWidth)(\"text-anchor\", ctx_r2.textAnchor);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", refLine_r10.name, \" \");\n }\n}\nfunction YAxisTicksComponent__svg_g_5__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"line\", 16);\n i0.ɵɵtemplate(2, YAxisTicksComponent__svg_g_5__svg_g_1__svg_g_2_Template, 5, 6, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const refLine_r10 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r2.transform(refLine_r10.value));\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"x2\", ctx_r2.gridLineWidth)(\"transform\", ctx_r2.gridLineTransform());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showRefLabels);\n }\n}\nfunction YAxisTicksComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, YAxisTicksComponent__svg_g_5__svg_g_1_Template, 3, 4, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showRefLines);\n }\n}\nconst _c8 = [\"ngx-charts-y-axis\", \"\"];\nfunction YAxisComponent__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2);\n i0.ɵɵlistener(\"dimensionsChanged\", function YAxisComponent__svg_g_1_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.emitTicksWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"trimTicks\", ctx_r1.trimTicks)(\"maxTickLength\", ctx_r1.maxTickLength)(\"tickFormatting\", ctx_r1.tickFormatting)(\"tickArguments\", ctx_r1.tickArguments)(\"tickValues\", ctx_r1.ticks)(\"tickStroke\", ctx_r1.tickStroke)(\"scale\", ctx_r1.yScale)(\"orient\", ctx_r1.yOrient)(\"showGridLines\", ctx_r1.showGridLines)(\"gridLineWidth\", ctx_r1.dims.width)(\"referenceLines\", ctx_r1.referenceLines)(\"showRefLines\", ctx_r1.showRefLines)(\"showRefLabels\", ctx_r1.showRefLabels)(\"height\", ctx_r1.dims.height)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction YAxisComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 3);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"label\", ctx_r1.labelText)(\"offset\", ctx_r1.labelOffset)(\"orient\", ctx_r1.yOrient)(\"height\", ctx_r1.dims.height)(\"width\", ctx_r1.dims.width);\n }\n}\nconst _c9 = [\"ngx-charts-svg-linear-gradient\", \"\"];\nfunction SvgLinearGradientComponent__svg_stop_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"stop\");\n }\n if (rf & 2) {\n const stop_r1 = ctx.$implicit;\n i0.ɵɵstyleProp(\"stop-color\", stop_r1.color)(\"stop-opacity\", stop_r1.opacity);\n i0.ɵɵattribute(\"offset\", stop_r1.offset + \"%\");\n }\n}\nconst _c10 = [\"ngx-charts-circle\", \"\"];\nconst _c11 = [\"ngx-charts-circle-series\", \"\"];\nconst _c12 = a0 => ({\n name: a0\n});\nfunction CircleSeriesComponent__svg_g_0__svg_rect_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"rect\", 4);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵattribute(\"x\", ctx_r1.circle.cx - ctx_r1.circle.radius)(\"y\", ctx_r1.circle.cy)(\"width\", ctx_r1.circle.radius * 2)(\"height\", ctx_r1.circle.height)(\"fill\", ctx_r1.gradientFill);\n }\n}\nfunction CircleSeriesComponent__svg_g_0__svg_rect_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"rect\", 4);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"x\", ctx_r1.circle.cx - ctx_r1.circle.radius)(\"y\", ctx_r1.circle.cy)(\"width\", ctx_r1.circle.radius * 2)(\"height\", ctx_r1.circle.height)(\"fill\", ctx_r1.gradientFill);\n }\n}\nfunction CircleSeriesComponent__svg_g_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"defs\");\n i0.ɵɵelement(2, \"g\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, CircleSeriesComponent__svg_g_0__svg_rect_3_Template, 1, 6, \"rect\", 2)(4, CircleSeriesComponent__svg_g_0__svg_rect_4_Template, 1, 5, \"rect\", 2);\n i0.ɵɵelementStart(5, \"g\", 3);\n i0.ɵɵlistener(\"select\", function CircleSeriesComponent__svg_g_0_Template_g_select_5_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onClick(ctx_r1.circle.data));\n })(\"activate\", function CircleSeriesComponent__svg_g_0_Template_g_activate_5_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.activateCircle());\n })(\"deactivate\", function CircleSeriesComponent__svg_g_0_Template_g_deactivate_5_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.deactivateCircle());\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"orientation\", ctx_r1.barOrientation.Vertical)(\"name\", ctx_r1.gradientId)(\"stops\", ctx_r1.circle.gradientStops);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.isSSR && ctx_r1.barVisible && ctx_r1.type === \"standard\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isSSR && ctx_r1.barVisible && ctx_r1.type === \"standard\");\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"active\", ctx_r1.isActive(i0.ɵɵpureFunction1(20, _c12, ctx_r1.circle.seriesName)));\n i0.ɵɵproperty(\"cx\", ctx_r1.circle.cx)(\"cy\", ctx_r1.circle.cy)(\"r\", ctx_r1.circle.radius)(\"fill\", ctx_r1.circle.color)(\"pointerEvents\", ctx_r1.circle.value === 0 ? \"none\" : \"all\")(\"data\", ctx_r1.circle.value)(\"classNames\", ctx_r1.circle.classNames)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipPlacement\", ctx_r1.placementTypes.Top)(\"tooltipType\", ctx_r1.styleTypes.tooltip)(\"tooltipTitle\", ctx_r1.tooltipTemplate ? undefined : ctx_r1.getTooltipText(ctx_r1.circle))(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"tooltipContext\", ctx_r1.circle.data);\n }\n}\nconst _c13 = [\"ngx-charts-grid-panel\", \"\"];\nconst _c14 = [\"ngx-charts-grid-panel-series\", \"\"];\nfunction GridPanelSeriesComponent__svg_g_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 1);\n }\n if (rf & 2) {\n const gridPanel_r1 = ctx.$implicit;\n i0.ɵɵclassProp(\"grid-panel\", true)(\"odd\", gridPanel_r1.class === \"odd\")(\"even\", gridPanel_r1.class === \"even\");\n i0.ɵɵproperty(\"height\", gridPanel_r1.height)(\"width\", gridPanel_r1.width)(\"x\", gridPanel_r1.x)(\"y\", gridPanel_r1.y);\n }\n}\nconst _c15 = [\"ngx-charts-svg-radial-gradient\", \"\"];\nfunction SvgRadialGradientComponent__svg_stop_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"stop\");\n }\n if (rf & 2) {\n const stop_r1 = ctx.$implicit;\n i0.ɵɵstyleProp(\"stop-color\", stop_r1.color)(\"stop-opacity\", stop_r1.opacity);\n i0.ɵɵattribute(\"offset\", stop_r1.offset + \"%\");\n }\n}\nconst _c16 = [\"ngx-charts-area\", \"\"];\nfunction AreaComponent__svg_defs_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"defs\");\n i0.ɵɵelement(1, \"g\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"orientation\", ctx_r0.barOrientation.Vertical)(\"name\", ctx_r0.gradientId)(\"stops\", ctx_r0.gradientStops);\n }\n}\nconst _c17 = [\"ngx-charts-count-up\", \"\"];\nconst _c18 = [\"tooltipAnchor\"];\nconst _c19 = [\"ngx-charts-tooltip-area\", \"\"];\nfunction TooltipArea__svg_ng_template_2_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵelement(1, \"span\", 7);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tooltipItem_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"background-color\", tooltipItem_r2.color);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r2.getToolTipText(tooltipItem_r2), \" \");\n }\n}\nfunction TooltipArea__svg_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵtemplate(1, TooltipArea__svg_ng_template_2_div_1_Template, 3, 3, \"div\", 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const model_r4 = ctx.model;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", model_r4);\n }\n}\nconst _c20 = [\"ngx-charts-timeline\", \"\"];\nfunction AdvancedLegendComponent_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"countTo\", ctx_r0.roundedTotal)(\"valueFormatting\", ctx_r0.valueFormatting);\n }\n}\nfunction AdvancedLegendComponent_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.valueFormatting ? ctx_r0.valueFormatting(ctx_r0.roundedTotal) : ctx_r0.defaultValueFormatting(ctx_r0.roundedTotal), \" \");\n }\n}\nfunction AdvancedLegendComponent_div_7_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 16);\n }\n if (rf & 2) {\n const legendItem_r3 = i0.ɵɵnextContext().$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"countTo\", legendItem_r3._value)(\"valueFormatting\", ctx_r0.valueFormatting);\n }\n}\nfunction AdvancedLegendComponent_div_7_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 17);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const legendItem_r3 = i0.ɵɵnextContext().$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.valueFormatting ? ctx_r0.valueFormatting(legendItem_r3.value) : ctx_r0.defaultValueFormatting(legendItem_r3.value), \" \");\n }\n}\nfunction AdvancedLegendComponent_div_7_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 18);\n }\n if (rf & 2) {\n const legendItem_r3 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"countTo\", legendItem_r3.percentage)(\"countSuffix\", \"%\");\n }\n}\nfunction AdvancedLegendComponent_div_7_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const legendItem_r3 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\", legendItem_r3.percentage.toLocaleString(), \"%\");\n }\n}\nfunction AdvancedLegendComponent_div_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 9);\n i0.ɵɵlistener(\"mouseenter\", function AdvancedLegendComponent_div_7_Template_div_mouseenter_0_listener() {\n const legendItem_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.activate.emit(legendItem_r3.data));\n })(\"mouseleave\", function AdvancedLegendComponent_div_7_Template_div_mouseleave_0_listener() {\n const legendItem_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.deactivate.emit(legendItem_r3.data));\n })(\"click\", function AdvancedLegendComponent_div_7_Template_div_click_0_listener() {\n const legendItem_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.select.emit(legendItem_r3.data));\n });\n i0.ɵɵelement(1, \"div\", 10);\n i0.ɵɵtemplate(2, AdvancedLegendComponent_div_7_div_2_Template, 1, 2, \"div\", 11)(3, AdvancedLegendComponent_div_7_div_3_Template, 2, 1, \"div\", 12);\n i0.ɵɵelementStart(4, \"div\", 13);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, AdvancedLegendComponent_div_7_div_6_Template, 1, 2, \"div\", 14)(7, AdvancedLegendComponent_div_7_div_7_Template, 2, 1, \"div\", 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const legendItem_r3 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"border-left-color\", legendItem_r3.color);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.animations);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.animations);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(legendItem_r3.displayLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.animations);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.animations);\n }\n}\nconst _c21 = [\"ngx-charts-area-series\", \"\"];\nconst _c22 = [\"tooltipTemplate\"];\nconst _c23 = [\"seriesTooltipTemplate\"];\nconst _c24 = (a0, a1) => [a0, a1];\nfunction AreaChartComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 7);\n i0.ɵɵlistener(\"dimensionsChanged\", function AreaChartComponent__svg_g_5_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction AreaChartComponent__svg_g_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 8);\n i0.ɵɵlistener(\"dimensionsChanged\", function AreaChartComponent__svg_g_6_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction AreaChartComponent__svg_g_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"g\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"baseValue\", ctx_r1.baseValue)(\"colors\", ctx_r1.colors)(\"data\", series_r4)(\"activeEntries\", ctx_r1.activeEntries)(\"scaleType\", ctx_r1.scaleType)(\"gradient\", ctx_r1.gradient)(\"curve\", ctx_r1.curve)(\"animations\", ctx_r1.animations);\n }\n}\nfunction AreaChartComponent__svg_g_9__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 13);\n i0.ɵɵlistener(\"select\", function AreaChartComponent__svg_g_9__svg_g_2_Template_g_select_1_listener($event) {\n const series_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, series_r7));\n })(\"activate\", function AreaChartComponent__svg_g_9__svg_g_2_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function AreaChartComponent__svg_g_9__svg_g_2_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const series_r7 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"activeEntries\", ctx_r1.activeEntries)(\"data\", series_r7)(\"scaleType\", ctx_r1.scaleType)(\"visibleValue\", ctx_r1.hoveredVertical)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate);\n }\n}\nfunction AreaChartComponent__svg_g_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 10);\n i0.ɵɵlistener(\"mouseleave\", function AreaChartComponent__svg_g_9_Template_g_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.hideCircles());\n });\n i0.ɵɵelementStart(1, \"g\", 11);\n i0.ɵɵlistener(\"hover\", function AreaChartComponent__svg_g_9_Template_g_hover_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateHoveredVertical($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, AreaChartComponent__svg_g_9__svg_g_2_Template, 2, 9, \"g\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"dims\", ctx_r1.dims)(\"xSet\", ctx_r1.xSet)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"results\", ctx_r1.results)(\"colors\", ctx_r1.colors)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.seriesTooltipTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results);\n }\n}\nfunction AreaChartComponent__svg_g_10__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"g\", 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r9 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.timelineXScale)(\"yScale\", ctx_r1.timelineYScale)(\"baseValue\", ctx_r1.baseValue)(\"colors\", ctx_r1.colors)(\"data\", series_r9)(\"scaleType\", ctx_r1.scaleType)(\"gradient\", ctx_r1.gradient)(\"curve\", ctx_r1.curve)(\"animations\", ctx_r1.animations);\n }\n}\nfunction AreaChartComponent__svg_g_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 14);\n i0.ɵɵlistener(\"onDomainChange\", function AreaChartComponent__svg_g_10_Template_g_onDomainChange_0_listener($event) {\n i0.ɵɵrestoreView(_r8);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateDomain($event));\n });\n i0.ɵɵtemplate(1, AreaChartComponent__svg_g_10__svg_g_1_Template, 2, 9, \"g\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"results\", ctx_r1.results)(\"view\", i0.ɵɵpureFunction2(10, _c24, ctx_r1.timelineWidth, ctx_r1.height))(\"height\", ctx_r1.timelineHeight)(\"scheme\", ctx_r1.scheme)(\"customColors\", ctx_r1.customColors)(\"legend\", ctx_r1.legend)(\"scaleType\", ctx_r1.scaleType);\n i0.ɵɵattribute(\"transform\", ctx_r1.timelineTransform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction AreaChartNormalizedComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 7);\n i0.ɵɵlistener(\"dimensionsChanged\", function AreaChartNormalizedComponent__svg_g_5_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction AreaChartNormalizedComponent__svg_g_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 8);\n i0.ɵɵlistener(\"dimensionsChanged\", function AreaChartNormalizedComponent__svg_g_6_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction AreaChartNormalizedComponent__svg_g_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"g\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"data\", series_r4)(\"scaleType\", ctx_r1.scaleType)(\"activeEntries\", ctx_r1.activeEntries)(\"gradient\", ctx_r1.gradient)(\"normalized\", true)(\"curve\", ctx_r1.curve)(\"animations\", ctx_r1.animations);\n }\n}\nfunction AreaChartNormalizedComponent__svg_g_9__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 13);\n i0.ɵɵlistener(\"select\", function AreaChartNormalizedComponent__svg_g_9__svg_g_2_Template_g_select_1_listener($event) {\n const series_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, series_r7));\n })(\"activate\", function AreaChartNormalizedComponent__svg_g_9__svg_g_2_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function AreaChartNormalizedComponent__svg_g_9__svg_g_2_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const series_r7 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.seriesType.Stacked)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"activeEntries\", ctx_r1.activeEntries)(\"data\", series_r7)(\"scaleType\", ctx_r1.scaleType)(\"visibleValue\", ctx_r1.hoveredVertical)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate);\n }\n}\nfunction AreaChartNormalizedComponent__svg_g_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 10);\n i0.ɵɵlistener(\"mouseleave\", function AreaChartNormalizedComponent__svg_g_9_Template_g_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.hideCircles());\n });\n i0.ɵɵelementStart(1, \"g\", 11);\n i0.ɵɵlistener(\"hover\", function AreaChartNormalizedComponent__svg_g_9_Template_g_hover_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateHoveredVertical($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, AreaChartNormalizedComponent__svg_g_9__svg_g_2_Template, 2, 10, \"g\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"dims\", ctx_r1.dims)(\"xSet\", ctx_r1.xSet)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"results\", ctx_r1.results)(\"colors\", ctx_r1.colors)(\"showPercentage\", true)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.seriesTooltipTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results);\n }\n}\nfunction AreaChartNormalizedComponent__svg_g_10__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"g\", 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r9 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.timelineXScale)(\"yScale\", ctx_r1.timelineYScale)(\"colors\", ctx_r1.colors)(\"data\", series_r9)(\"scaleType\", ctx_r1.scaleType)(\"gradient\", ctx_r1.gradient)(\"normalized\", true)(\"curve\", ctx_r1.curve)(\"animations\", ctx_r1.animations);\n }\n}\nfunction AreaChartNormalizedComponent__svg_g_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 14);\n i0.ɵɵlistener(\"onDomainChange\", function AreaChartNormalizedComponent__svg_g_10_Template_g_onDomainChange_0_listener($event) {\n i0.ɵɵrestoreView(_r8);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateDomain($event));\n });\n i0.ɵɵtemplate(1, AreaChartNormalizedComponent__svg_g_10__svg_g_1_Template, 2, 9, \"g\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"results\", ctx_r1.results)(\"view\", i0.ɵɵpureFunction2(10, _c24, ctx_r1.timelineWidth, ctx_r1.height))(\"height\", ctx_r1.timelineHeight)(\"scheme\", ctx_r1.scheme)(\"customColors\", ctx_r1.customColors)(\"legend\", ctx_r1.legend)(\"scaleType\", ctx_r1.scaleType);\n i0.ɵɵattribute(\"transform\", ctx_r1.timelineTransform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nconst _c25 = \".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\";\nfunction AreaChartStackedComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 7);\n i0.ɵɵlistener(\"dimensionsChanged\", function AreaChartStackedComponent__svg_g_5_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction AreaChartStackedComponent__svg_g_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 8);\n i0.ɵɵlistener(\"dimensionsChanged\", function AreaChartStackedComponent__svg_g_6_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction AreaChartStackedComponent__svg_g_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"g\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"data\", series_r4)(\"scaleType\", ctx_r1.scaleType)(\"gradient\", ctx_r1.gradient)(\"activeEntries\", ctx_r1.activeEntries)(\"stacked\", true)(\"curve\", ctx_r1.curve)(\"animations\", ctx_r1.animations);\n }\n}\nfunction AreaChartStackedComponent__svg_g_9__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 12);\n i0.ɵɵlistener(\"select\", function AreaChartStackedComponent__svg_g_9__svg_g_2_Template_g_select_1_listener($event) {\n const series_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, series_r7));\n })(\"activate\", function AreaChartStackedComponent__svg_g_9__svg_g_2_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function AreaChartStackedComponent__svg_g_9__svg_g_2_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const series_r7 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.seriesType.Stacked)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"activeEntries\", ctx_r1.activeEntries)(\"data\", series_r7)(\"scaleType\", ctx_r1.scaleType)(\"visibleValue\", ctx_r1.hoveredVertical)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate);\n }\n}\nfunction AreaChartStackedComponent__svg_g_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 10);\n i0.ɵɵlistener(\"mouseleave\", function AreaChartStackedComponent__svg_g_9_Template_g_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.hideCircles());\n });\n i0.ɵɵelementStart(1, \"g\", 11);\n i0.ɵɵlistener(\"hover\", function AreaChartStackedComponent__svg_g_9_Template_g_hover_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateHoveredVertical($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, AreaChartStackedComponent__svg_g_9__svg_g_2_Template, 2, 10, \"g\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"dims\", ctx_r1.dims)(\"xSet\", ctx_r1.xSet)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"results\", ctx_r1.results)(\"colors\", ctx_r1.colors)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.seriesTooltipTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction AreaChartStackedComponent__svg_g_10__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"g\", 14);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r9 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.timelineXScale)(\"yScale\", ctx_r1.timelineYScale)(\"colors\", ctx_r1.colors)(\"data\", series_r9)(\"scaleType\", ctx_r1.scaleType)(\"gradient\", ctx_r1.gradient)(\"stacked\", true)(\"curve\", ctx_r1.curve)(\"animations\", ctx_r1.animations);\n }\n}\nfunction AreaChartStackedComponent__svg_g_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 13);\n i0.ɵɵlistener(\"onDomainChange\", function AreaChartStackedComponent__svg_g_10_Template_g_onDomainChange_0_listener($event) {\n i0.ɵɵrestoreView(_r8);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateDomain($event));\n });\n i0.ɵɵtemplate(1, AreaChartStackedComponent__svg_g_10__svg_g_1_Template, 2, 9, \"g\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"results\", ctx_r1.results)(\"view\", i0.ɵɵpureFunction2(10, _c24, ctx_r1.timelineWidth, ctx_r1.height))(\"height\", ctx_r1.timelineHeight)(\"scheme\", ctx_r1.scheme)(\"customColors\", ctx_r1.customColors)(\"legend\", ctx_r1.legend)(\"scaleType\", ctx_r1.scaleType);\n i0.ɵɵattribute(\"transform\", ctx_r1.timelineTransform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nconst _c26 = [\"ngx-charts-bar\", \"\"];\nfunction BarComponent__svg_defs_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"defs\");\n i0.ɵɵelement(1, \"g\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"orientation\", ctx_r0.orientation)(\"name\", ctx_r0.gradientId)(\"stops\", ctx_r0.gradientStops);\n }\n}\nconst _c27 = [\"ngx-charts-bar-label\", \"\"];\nconst _c28 = [\"ngx-charts-series-horizontal\", \"\"];\nfunction SeriesHorizontal__svg_g_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2);\n i0.ɵɵlistener(\"select\", function SeriesHorizontal__svg_g_0_Template_g_select_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.click($event));\n })(\"activate\", function SeriesHorizontal__svg_g_0_Template_g_activate_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.activate.emit($event));\n })(\"deactivate\", function SeriesHorizontal__svg_g_0_Template_g_deactivate_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.deactivate.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const bar_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@animationState\", \"active\")(\"width\", bar_r3.width)(\"height\", bar_r3.height)(\"x\", bar_r3.x)(\"y\", bar_r3.y)(\"fill\", bar_r3.color)(\"stops\", bar_r3.gradientStops)(\"data\", bar_r3.data)(\"orientation\", ctx_r1.barOrientation.Horizontal)(\"roundEdges\", bar_r3.roundEdges)(\"gradient\", ctx_r1.gradient)(\"isActive\", ctx_r1.isActive(bar_r3.data))(\"ariaLabel\", bar_r3.ariaLabel)(\"animations\", ctx_r1.animations)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipPlacement\", ctx_r1.tooltipPlacement)(\"tooltipType\", ctx_r1.tooltipType)(\"tooltipTitle\", ctx_r1.tooltipTemplate ? undefined : bar_r3.tooltipText)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"tooltipContext\", bar_r3.data)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction SeriesHorizontal__svg_g_1__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 4);\n i0.ɵɵlistener(\"dimensionsChanged\", function SeriesHorizontal__svg_g_1__svg_g_1_Template_g_dimensionsChanged_0_listener($event) {\n const i_r5 = i0.ɵɵrestoreView(_r4).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.dataLabelWidthChanged.emit({\n size: $event,\n index: i_r5\n }));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const b_r6 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"barX\", b_r6.x)(\"barY\", b_r6.y)(\"barWidth\", b_r6.width)(\"barHeight\", b_r6.height)(\"value\", b_r6.total)(\"valueFormatting\", ctx_r1.dataLabelFormatting)(\"orientation\", ctx_r1.barOrientation.Horizontal);\n }\n}\nfunction SeriesHorizontal__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, SeriesHorizontal__svg_g_1__svg_g_1_Template, 1, 7, \"g\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.barsForDataLabels)(\"ngForTrackBy\", ctx_r1.trackDataLabelBy);\n }\n}\nfunction BarHorizontalComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 5);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarHorizontalComponent__svg_g_2_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarHorizontalComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarHorizontalComponent__svg_g_3_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"yAxisOffset\", ctx_r1.dataLabelMaxWidth.negative)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarHorizontal2DComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarHorizontal2DComponent__svg_g_3_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.valueScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarHorizontal2DComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 7);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarHorizontal2DComponent__svg_g_4_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.groupScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"yAxisOffset\", ctx_r1.dataLabelMaxWidth.negative)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarHorizontal2DComponent__svg_g_5__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 9);\n i0.ɵɵlistener(\"select\", function BarHorizontal2DComponent__svg_g_5__svg_g_1_Template_g_select_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r5));\n })(\"activate\", function BarHorizontal2DComponent__svg_g_5__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r5));\n })(\"deactivate\", function BarHorizontal2DComponent__svg_g_5__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r5));\n })(\"dataLabelWidthChanged\", function BarHorizontal2DComponent__svg_g_5__svg_g_1_Template_g_dataLabelWidthChanged_1_listener($event) {\n const index_r6 = i0.ɵɵrestoreView(_r4).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDataLabelMaxWidthChanged($event, index_r6));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r5));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.valueScale)(\"activeEntries\", ctx_r1.activeEntries)(\"yScale\", ctx_r1.innerScale)(\"colors\", ctx_r1.colors)(\"series\", group_r5.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"seriesName\", group_r5.name)(\"roundEdges\", ctx_r1.roundEdges)(\"animations\", ctx_r1.animations)(\"showDataLabel\", ctx_r1.showDataLabel)(\"dataLabelFormatting\", ctx_r1.dataLabelFormatting)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarHorizontal2DComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarHorizontal2DComponent__svg_g_5__svg_g_1_Template, 2, 17, \"g\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarHorizontal2DComponent__svg_g_6__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 9);\n i0.ɵɵlistener(\"select\", function BarHorizontal2DComponent__svg_g_6__svg_g_1_Template_g_select_1_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r8));\n })(\"activate\", function BarHorizontal2DComponent__svg_g_6__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r8));\n })(\"deactivate\", function BarHorizontal2DComponent__svg_g_6__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r8));\n })(\"dataLabelWidthChanged\", function BarHorizontal2DComponent__svg_g_6__svg_g_1_Template_g_dataLabelWidthChanged_1_listener($event) {\n const index_r9 = i0.ɵɵrestoreView(_r7).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDataLabelMaxWidthChanged($event, index_r9));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r8));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.valueScale)(\"activeEntries\", ctx_r1.activeEntries)(\"yScale\", ctx_r1.innerScale)(\"colors\", ctx_r1.colors)(\"series\", group_r8.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"seriesName\", group_r8.name)(\"roundEdges\", ctx_r1.roundEdges)(\"animations\", ctx_r1.animations)(\"showDataLabel\", ctx_r1.showDataLabel)(\"dataLabelFormatting\", ctx_r1.dataLabelFormatting)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarHorizontal2DComponent__svg_g_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarHorizontal2DComponent__svg_g_6__svg_g_1_Template, 2, 16, \"g\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarHorizontalNormalizedComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 5);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarHorizontalNormalizedComponent__svg_g_2_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarHorizontalNormalizedComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarHorizontalNormalizedComponent__svg_g_3_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarHorizontalNormalizedComponent__svg_g_4__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 8);\n i0.ɵɵlistener(\"select\", function BarHorizontalNormalizedComponent__svg_g_4__svg_g_1_Template_g_select_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r5));\n })(\"activate\", function BarHorizontalNormalizedComponent__svg_g_4__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r5));\n })(\"deactivate\", function BarHorizontalNormalizedComponent__svg_g_4__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r5));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r5));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.barChartType.Normalized)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"activeEntries\", ctx_r1.activeEntries)(\"colors\", ctx_r1.colors)(\"series\", group_r5.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"seriesName\", group_r5.name)(\"animations\", ctx_r1.animations)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarHorizontalNormalizedComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarHorizontalNormalizedComponent__svg_g_4__svg_g_1_Template, 2, 15, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarHorizontalNormalizedComponent__svg_g_5__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 8);\n i0.ɵɵlistener(\"select\", function BarHorizontalNormalizedComponent__svg_g_5__svg_g_1_Template_g_select_1_listener($event) {\n const group_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r7));\n })(\"activate\", function BarHorizontalNormalizedComponent__svg_g_5__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r7));\n })(\"deactivate\", function BarHorizontalNormalizedComponent__svg_g_5__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r7));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r7 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r7));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.barChartType.Normalized)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"activeEntries\", ctx_r1.activeEntries)(\"colors\", ctx_r1.colors)(\"series\", group_r7.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"seriesName\", group_r7.name)(\"animations\", ctx_r1.animations)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarHorizontalNormalizedComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarHorizontalNormalizedComponent__svg_g_5__svg_g_1_Template, 2, 14, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarHorizontalStackedComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 5);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarHorizontalStackedComponent__svg_g_2_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarHorizontalStackedComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarHorizontalStackedComponent__svg_g_3_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"yAxisOffset\", ctx_r1.dataLabelMaxWidth.negative)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarHorizontalStackedComponent__svg_g_4__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 8);\n i0.ɵɵlistener(\"select\", function BarHorizontalStackedComponent__svg_g_4__svg_g_1_Template_g_select_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r5));\n })(\"activate\", function BarHorizontalStackedComponent__svg_g_4__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r5));\n })(\"deactivate\", function BarHorizontalStackedComponent__svg_g_4__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r5));\n })(\"dataLabelWidthChanged\", function BarHorizontalStackedComponent__svg_g_4__svg_g_1_Template_g_dataLabelWidthChanged_1_listener($event) {\n const index_r6 = i0.ɵɵrestoreView(_r4).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDataLabelMaxWidthChanged($event, index_r6));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r5));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.barChartType.Stacked)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"series\", group_r5.series)(\"activeEntries\", ctx_r1.activeEntries)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"seriesName\", group_r5.name)(\"animations\", ctx_r1.animations)(\"showDataLabel\", ctx_r1.showDataLabel)(\"dataLabelFormatting\", ctx_r1.dataLabelFormatting)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarHorizontalStackedComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarHorizontalStackedComponent__svg_g_4__svg_g_1_Template, 2, 17, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarHorizontalStackedComponent__svg_g_5__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 8);\n i0.ɵɵlistener(\"select\", function BarHorizontalStackedComponent__svg_g_5__svg_g_1_Template_g_select_1_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r8));\n })(\"activate\", function BarHorizontalStackedComponent__svg_g_5__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r8));\n })(\"deactivate\", function BarHorizontalStackedComponent__svg_g_5__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r8));\n })(\"dataLabelWidthChanged\", function BarHorizontalStackedComponent__svg_g_5__svg_g_1_Template_g_dataLabelWidthChanged_1_listener($event) {\n const index_r9 = i0.ɵɵrestoreView(_r7).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDataLabelMaxWidthChanged($event, index_r9));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r8));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.barChartType.Stacked)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"series\", group_r8.series)(\"activeEntries\", ctx_r1.activeEntries)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"seriesName\", group_r8.name)(\"animations\", ctx_r1.animations)(\"showDataLabel\", ctx_r1.showDataLabel)(\"dataLabelFormatting\", ctx_r1.dataLabelFormatting)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarHorizontalStackedComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarHorizontalStackedComponent__svg_g_5__svg_g_1_Template, 2, 16, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nconst _c29 = [\"ngx-charts-series-vertical\", \"\"];\nfunction SeriesVerticalComponent__svg_g_0__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2);\n i0.ɵɵlistener(\"select\", function SeriesVerticalComponent__svg_g_0__svg_g_1_Template_g_select_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n })(\"activate\", function SeriesVerticalComponent__svg_g_0__svg_g_1_Template_g_activate_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.activate.emit($event));\n })(\"deactivate\", function SeriesVerticalComponent__svg_g_0__svg_g_1_Template_g_deactivate_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.deactivate.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const bar_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\")(\"@.disabled\", !ctx_r1.animations)(\"width\", bar_r3.width)(\"height\", bar_r3.height)(\"x\", bar_r3.x)(\"y\", bar_r3.y)(\"fill\", bar_r3.color)(\"stops\", bar_r3.gradientStops)(\"data\", bar_r3.data)(\"orientation\", ctx_r1.barOrientation.Vertical)(\"roundEdges\", bar_r3.roundEdges)(\"gradient\", ctx_r1.gradient)(\"ariaLabel\", bar_r3.ariaLabel)(\"isActive\", ctx_r1.isActive(bar_r3.data))(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipPlacement\", ctx_r1.tooltipPlacement)(\"tooltipType\", ctx_r1.tooltipType)(\"tooltipTitle\", ctx_r1.tooltipTemplate ? undefined : bar_r3.tooltipText)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"tooltipContext\", bar_r3.data)(\"noBarWhenZero\", ctx_r1.noBarWhenZero)(\"animations\", ctx_r1.animations);\n }\n}\nfunction SeriesVerticalComponent__svg_g_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, SeriesVerticalComponent__svg_g_0__svg_g_1_Template, 1, 22, \"g\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.bars)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction SeriesVerticalComponent__svg_g_1__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2);\n i0.ɵɵlistener(\"select\", function SeriesVerticalComponent__svg_g_1__svg_g_1_Template_g_select_0_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n })(\"activate\", function SeriesVerticalComponent__svg_g_1__svg_g_1_Template_g_activate_0_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.activate.emit($event));\n })(\"deactivate\", function SeriesVerticalComponent__svg_g_1__svg_g_1_Template_g_deactivate_0_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.deactivate.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const bar_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"width\", bar_r5.width)(\"height\", bar_r5.height)(\"x\", bar_r5.x)(\"y\", bar_r5.y)(\"fill\", bar_r5.color)(\"stops\", bar_r5.gradientStops)(\"data\", bar_r5.data)(\"orientation\", ctx_r1.barOrientation.Vertical)(\"roundEdges\", bar_r5.roundEdges)(\"gradient\", ctx_r1.gradient)(\"ariaLabel\", bar_r5.ariaLabel)(\"isActive\", ctx_r1.isActive(bar_r5.data))(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipPlacement\", ctx_r1.tooltipPlacement)(\"tooltipType\", ctx_r1.tooltipType)(\"tooltipTitle\", ctx_r1.tooltipTemplate ? undefined : bar_r5.tooltipText)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"tooltipContext\", bar_r5.data)(\"noBarWhenZero\", ctx_r1.noBarWhenZero)(\"animations\", ctx_r1.animations);\n }\n}\nfunction SeriesVerticalComponent__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, SeriesVerticalComponent__svg_g_1__svg_g_1_Template, 1, 20, \"g\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.bars)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction SeriesVerticalComponent__svg_g_2__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 4);\n i0.ɵɵlistener(\"dimensionsChanged\", function SeriesVerticalComponent__svg_g_2__svg_g_1_Template_g_dimensionsChanged_0_listener($event) {\n const i_r7 = i0.ɵɵrestoreView(_r6).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.dataLabelHeightChanged.emit({\n size: $event,\n index: i_r7\n }));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const b_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"barX\", b_r8.x)(\"barY\", b_r8.y)(\"barWidth\", b_r8.width)(\"barHeight\", b_r8.height)(\"value\", b_r8.total)(\"valueFormatting\", ctx_r1.dataLabelFormatting)(\"orientation\", ctx_r1.barOrientation.Vertical);\n }\n}\nfunction SeriesVerticalComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, SeriesVerticalComponent__svg_g_2__svg_g_1_Template, 1, 7, \"g\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.barsForDataLabels)(\"ngForTrackBy\", ctx_r1.trackDataLabelBy);\n }\n}\nfunction BarVerticalComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 5);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarVerticalComponent__svg_g_2_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"xAxisOffset\", ctx_r1.dataLabelMaxHeight.negative)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarVerticalComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarVerticalComponent__svg_g_3_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarVertical2DComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarVertical2DComponent__svg_g_3_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.groupScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"xAxisOffset\", ctx_r1.dataLabelMaxHeight.negative)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarVertical2DComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 7);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarVertical2DComponent__svg_g_4_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.valueScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarVertical2DComponent__svg_g_5__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 9);\n i0.ɵɵlistener(\"select\", function BarVertical2DComponent__svg_g_5__svg_g_1_Template_g_select_0_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r5));\n })(\"activate\", function BarVertical2DComponent__svg_g_5__svg_g_1_Template_g_activate_0_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r5));\n })(\"deactivate\", function BarVertical2DComponent__svg_g_5__svg_g_1_Template_g_deactivate_0_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r5));\n })(\"dataLabelHeightChanged\", function BarVertical2DComponent__svg_g_5__svg_g_1_Template_g_dataLabelHeightChanged_0_listener($event) {\n const index_r6 = i0.ɵɵrestoreView(_r4).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDataLabelMaxHeightChanged($event, index_r6));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const group_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\")(\"activeEntries\", ctx_r1.activeEntries)(\"xScale\", ctx_r1.innerScale)(\"yScale\", ctx_r1.valueScale)(\"colors\", ctx_r1.colors)(\"series\", group_r5.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"showDataLabel\", ctx_r1.showDataLabel)(\"dataLabelFormatting\", ctx_r1.dataLabelFormatting)(\"seriesName\", group_r5.name)(\"roundEdges\", ctx_r1.roundEdges)(\"animations\", ctx_r1.animations)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r5));\n }\n}\nfunction BarVertical2DComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarVertical2DComponent__svg_g_5__svg_g_1_Template, 1, 17, \"g\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarVertical2DComponent__svg_g_6__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 9);\n i0.ɵɵlistener(\"select\", function BarVertical2DComponent__svg_g_6__svg_g_1_Template_g_select_0_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r8));\n })(\"activate\", function BarVertical2DComponent__svg_g_6__svg_g_1_Template_g_activate_0_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r8));\n })(\"deactivate\", function BarVertical2DComponent__svg_g_6__svg_g_1_Template_g_deactivate_0_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r8));\n })(\"dataLabelHeightChanged\", function BarVertical2DComponent__svg_g_6__svg_g_1_Template_g_dataLabelHeightChanged_0_listener($event) {\n const index_r9 = i0.ɵɵrestoreView(_r7).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDataLabelMaxHeightChanged($event, index_r9));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const group_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"activeEntries\", ctx_r1.activeEntries)(\"xScale\", ctx_r1.innerScale)(\"yScale\", ctx_r1.valueScale)(\"colors\", ctx_r1.colors)(\"series\", group_r8.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"showDataLabel\", ctx_r1.showDataLabel)(\"dataLabelFormatting\", ctx_r1.dataLabelFormatting)(\"seriesName\", group_r8.name)(\"roundEdges\", ctx_r1.roundEdges)(\"animations\", ctx_r1.animations)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r8));\n }\n}\nfunction BarVertical2DComponent__svg_g_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarVertical2DComponent__svg_g_6__svg_g_1_Template, 1, 16, \"g\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarVerticalNormalizedComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 5);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarVerticalNormalizedComponent__svg_g_2_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarVerticalNormalizedComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarVerticalNormalizedComponent__svg_g_3_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarVerticalNormalizedComponent__svg_g_4__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 8);\n i0.ɵɵlistener(\"select\", function BarVerticalNormalizedComponent__svg_g_4__svg_g_1_Template_g_select_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r5));\n })(\"activate\", function BarVerticalNormalizedComponent__svg_g_4__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r5));\n })(\"deactivate\", function BarVerticalNormalizedComponent__svg_g_4__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r5));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r5));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.barChartType.Normalized)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"activeEntries\", ctx_r1.activeEntries)(\"colors\", ctx_r1.colors)(\"series\", group_r5.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"seriesName\", group_r5.name)(\"animations\", ctx_r1.animations)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarVerticalNormalizedComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarVerticalNormalizedComponent__svg_g_4__svg_g_1_Template, 2, 15, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarVerticalNormalizedComponent__svg_g_5__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 8);\n i0.ɵɵlistener(\"select\", function BarVerticalNormalizedComponent__svg_g_5__svg_g_1_Template_g_select_1_listener($event) {\n const group_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r7));\n })(\"activate\", function BarVerticalNormalizedComponent__svg_g_5__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r7));\n })(\"deactivate\", function BarVerticalNormalizedComponent__svg_g_5__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r7));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r7 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r7));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.barChartType.Normalized)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"activeEntries\", ctx_r1.activeEntries)(\"colors\", ctx_r1.colors)(\"series\", group_r7.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"seriesName\", group_r7.name)(\"animations\", ctx_r1.animations)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarVerticalNormalizedComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarVerticalNormalizedComponent__svg_g_5__svg_g_1_Template, 2, 14, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarVerticalStackedComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 5);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarVerticalStackedComponent__svg_g_2_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"xAxisOffset\", ctx_r1.dataLabelMaxHeight.negative)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarVerticalStackedComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function BarVerticalStackedComponent__svg_g_3_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BarVerticalStackedComponent__svg_g_4__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 8);\n i0.ɵɵlistener(\"select\", function BarVerticalStackedComponent__svg_g_4__svg_g_1_Template_g_select_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r5));\n })(\"activate\", function BarVerticalStackedComponent__svg_g_4__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r5));\n })(\"deactivate\", function BarVerticalStackedComponent__svg_g_4__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r5));\n })(\"dataLabelHeightChanged\", function BarVerticalStackedComponent__svg_g_4__svg_g_1_Template_g_dataLabelHeightChanged_1_listener($event) {\n const index_r6 = i0.ɵɵrestoreView(_r4).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDataLabelMaxHeightChanged($event, index_r6));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r5));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.barChartType.Stacked)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"activeEntries\", ctx_r1.activeEntries)(\"colors\", ctx_r1.colors)(\"series\", group_r5.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"showDataLabel\", ctx_r1.showDataLabel)(\"dataLabelFormatting\", ctx_r1.dataLabelFormatting)(\"seriesName\", group_r5.name)(\"animations\", ctx_r1.animations)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarVerticalStackedComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarVerticalStackedComponent__svg_g_4__svg_g_1_Template, 2, 17, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BarVerticalStackedComponent__svg_g_5__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 8);\n i0.ɵɵlistener(\"select\", function BarVerticalStackedComponent__svg_g_5__svg_g_1_Template_g_select_1_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, group_r8));\n })(\"activate\", function BarVerticalStackedComponent__svg_g_5__svg_g_1_Template_g_activate_1_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event, group_r8));\n })(\"deactivate\", function BarVerticalStackedComponent__svg_g_5__svg_g_1_Template_g_deactivate_1_listener($event) {\n const group_r8 = i0.ɵɵrestoreView(_r7).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event, group_r8));\n })(\"dataLabelHeightChanged\", function BarVerticalStackedComponent__svg_g_5__svg_g_1_Template_g_dataLabelHeightChanged_1_listener($event) {\n const index_r9 = i0.ɵɵrestoreView(_r7).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDataLabelMaxHeightChanged($event, index_r9));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"transform\", ctx_r1.groupTransform(group_r8));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.barChartType.Stacked)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"activeEntries\", ctx_r1.activeEntries)(\"colors\", ctx_r1.colors)(\"series\", group_r8.series)(\"dims\", ctx_r1.dims)(\"gradient\", ctx_r1.gradient)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"showDataLabel\", ctx_r1.showDataLabel)(\"dataLabelFormatting\", ctx_r1.dataLabelFormatting)(\"seriesName\", group_r8.name)(\"animations\", ctx_r1.animations)(\"noBarWhenZero\", ctx_r1.noBarWhenZero);\n }\n}\nfunction BarVerticalStackedComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BarVerticalStackedComponent__svg_g_5__svg_g_1_Template, 2, 16, \"g\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nconst _c30 = [\"ngx-charts-box\", \"\"];\nfunction BoxComponent__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 5);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"orientation\", ctx_r0.BarOrientation.Vertical)(\"name\", ctx_r0.gradientId)(\"stops\", ctx_r0.gradientStops);\n }\n}\nfunction BoxComponent__svg_line_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"line\", 6);\n }\n if (rf & 2) {\n const line_r2 = ctx.$implicit;\n const i_r3 = ctx.index;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"hidden\", ctx_r0.hideBar);\n i0.ɵɵattribute(\"x1\", line_r2.v1.x)(\"y1\", line_r2.v1.y)(\"x2\", line_r2.v2.x)(\"y2\", line_r2.v2.y)(\"stroke\", ctx_r0.strokeColor)(\"stroke-width\", i_r3 === 2 ? ctx_r0.medianLineWidth : ctx_r0.whiskerStrokeWidth)(\"mask\", i_r3 ? undefined : ctx_r0.maskLine);\n }\n}\nconst _c31 = [\"ngx-charts-box-series\", \"\"];\nfunction BoxChartComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 5);\n i0.ɵɵlistener(\"activate\", function BoxChartComponent__svg_g_5_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function BoxChartComponent__svg_g_5_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n })(\"select\", function BoxChartComponent__svg_g_5_Template_g_select_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const result_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"roundEdges\", ctx_r1.roundEdges)(\"strokeColor\", ctx_r1.strokeColor)(\"strokeWidth\", ctx_r1.strokeWidth)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"series\", result_r3)(\"dims\", ctx_r1.dims)(\"animations\", ctx_r1.animations)(\"gradient\", ctx_r1.gradient);\n }\n}\nconst _c32 = [\"ngx-charts-bubble-series\", \"\"];\nfunction BubbleSeriesComponent__svg_g_0__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2);\n i0.ɵɵlistener(\"select\", function BubbleSeriesComponent__svg_g_0__svg_g_2_Template_g_select_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const circle_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.onClick(circle_r2.data));\n })(\"activate\", function BubbleSeriesComponent__svg_g_0__svg_g_2_Template_g_activate_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const circle_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.activateCircle(circle_r2));\n })(\"deactivate\", function BubbleSeriesComponent__svg_g_0__svg_g_2_Template_g_deactivate_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const circle_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.deactivateCircle(circle_r2));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const circle_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"opacity\", circle_r2.opacity);\n i0.ɵɵclassProp(\"active\", circle_r2.isActive);\n i0.ɵɵproperty(\"@animationState\", \"active\")(\"cx\", 0)(\"cy\", 0)(\"r\", circle_r2.radius)(\"fill\", circle_r2.color)(\"pointerEvents\", \"all\")(\"data\", circle_r2.value)(\"classNames\", circle_r2.classNames)(\"tooltipDisabled\", ctx_r2.tooltipDisabled)(\"tooltipPlacement\", ctx_r2.placementTypes.Top)(\"tooltipType\", ctx_r2.styleTypes.tooltip)(\"tooltipTitle\", ctx_r2.tooltipTemplate ? undefined : ctx_r2.getTooltipText(circle_r2))(\"tooltipTemplate\", ctx_r2.tooltipTemplate)(\"tooltipContext\", circle_r2.data);\n }\n}\nfunction BubbleSeriesComponent__svg_g_0__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2);\n i0.ɵɵlistener(\"select\", function BubbleSeriesComponent__svg_g_0__svg_g_3_Template_g_select_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const circle_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.onClick(circle_r2.data));\n })(\"activate\", function BubbleSeriesComponent__svg_g_0__svg_g_3_Template_g_activate_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const circle_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.activateCircle(circle_r2));\n })(\"deactivate\", function BubbleSeriesComponent__svg_g_0__svg_g_3_Template_g_deactivate_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const circle_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.deactivateCircle(circle_r2));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const circle_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"opacity\", circle_r2.opacity);\n i0.ɵɵclassProp(\"active\", circle_r2.isActive);\n i0.ɵɵproperty(\"cx\", 0)(\"cy\", 0)(\"r\", circle_r2.radius)(\"fill\", circle_r2.color)(\"pointerEvents\", \"all\")(\"data\", circle_r2.value)(\"classNames\", circle_r2.classNames)(\"tooltipDisabled\", ctx_r2.tooltipDisabled)(\"tooltipPlacement\", ctx_r2.placementTypes.Top)(\"tooltipType\", ctx_r2.styleTypes.tooltip)(\"tooltipTitle\", ctx_r2.tooltipTemplate ? undefined : ctx_r2.getTooltipText(circle_r2))(\"tooltipTemplate\", ctx_r2.tooltipTemplate)(\"tooltipContext\", circle_r2.data);\n }\n}\nfunction BubbleSeriesComponent__svg_g_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\");\n i0.ɵɵtemplate(2, BubbleSeriesComponent__svg_g_0__svg_g_2_Template, 1, 18, \"g\", 1)(3, BubbleSeriesComponent__svg_g_0__svg_g_3_Template, 1, 17, \"g\", 1);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const circle_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", circle_r2.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSSR);\n }\n}\nfunction BubbleChartComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function BubbleChartComponent__svg_g_5_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"showGridLines\", ctx_r1.showGridLines)(\"dims\", ctx_r1.dims)(\"xScale\", ctx_r1.xScale)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BubbleChartComponent__svg_g_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 7);\n i0.ɵɵlistener(\"dimensionsChanged\", function BubbleChartComponent__svg_g_6_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"showGridLines\", ctx_r1.showGridLines)(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction BubbleChartComponent__svg_g_8__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 9);\n i0.ɵɵlistener(\"select\", function BubbleChartComponent__svg_g_8__svg_g_1_Template_g_select_1_listener($event) {\n const series_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, series_r5));\n })(\"activate\", function BubbleChartComponent__svg_g_8__svg_g_1_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function BubbleChartComponent__svg_g_8__svg_g_1_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const series_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"rScale\", ctx_r1.rScale)(\"xScaleType\", ctx_r1.xScaleType)(\"yScaleType\", ctx_r1.yScaleType)(\"xAxisLabel\", ctx_r1.xAxisLabel)(\"yAxisLabel\", ctx_r1.yAxisLabel)(\"colors\", ctx_r1.colors)(\"data\", series_r5)(\"activeEntries\", ctx_r1.activeEntries)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate);\n }\n}\nfunction BubbleChartComponent__svg_g_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BubbleChartComponent__svg_g_8__svg_g_1_Template, 2, 13, \"g\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"clip-path\", ctx_r1.clipPath);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.data)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction BubbleChartComponent__svg_g_9__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 9);\n i0.ɵɵlistener(\"select\", function BubbleChartComponent__svg_g_9__svg_g_1_Template_g_select_1_listener($event) {\n const series_r7 = i0.ɵɵrestoreView(_r6).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event, series_r7));\n })(\"activate\", function BubbleChartComponent__svg_g_9__svg_g_1_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function BubbleChartComponent__svg_g_9__svg_g_1_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const series_r7 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"rScale\", ctx_r1.rScale)(\"xScaleType\", ctx_r1.xScaleType)(\"yScaleType\", ctx_r1.yScaleType)(\"xAxisLabel\", ctx_r1.xAxisLabel)(\"yAxisLabel\", ctx_r1.yAxisLabel)(\"colors\", ctx_r1.colors)(\"data\", series_r7)(\"activeEntries\", ctx_r1.activeEntries)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate);\n }\n}\nfunction BubbleChartComponent__svg_g_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, BubbleChartComponent__svg_g_9__svg_g_1_Template, 2, 12, \"g\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"clip-path\", ctx_r1.clipPath);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.data)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nconst _c33 = [\"ngx-charts-heat-map-cell\", \"\"];\nfunction HeatMapCellComponent__svg_defs_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"defs\");\n i0.ɵɵelement(1, \"g\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"orientation\", ctx_r0.barOrientation.Vertical)(\"name\", ctx_r0.gradientId)(\"stops\", ctx_r0.gradientStops);\n }\n}\nconst _c34 = [\"ngx-charts-heat-map-cell-series\", \"\"];\nconst _c35 = (a0, a1, a2) => ({\n series: a0,\n name: a1,\n value: a2\n});\nfunction HeatCellSeriesComponent__svg_g_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 1);\n i0.ɵɵlistener(\"select\", function HeatCellSeriesComponent__svg_g_0_Template_g_select_0_listener() {\n const c_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.onClick(c_r2.cell));\n })(\"activate\", function HeatCellSeriesComponent__svg_g_0_Template_g_activate_0_listener() {\n const c_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.activate.emit(c_r2.cell));\n })(\"deactivate\", function HeatCellSeriesComponent__svg_g_0_Template_g_deactivate_0_listener() {\n const c_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.deactivate.emit(c_r2.cell));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const c_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"x\", c_r2.x)(\"y\", c_r2.y)(\"width\", c_r2.width)(\"height\", c_r2.height)(\"fill\", c_r2.fill)(\"data\", c_r2.data)(\"gradient\", ctx_r2.gradient)(\"animations\", ctx_r2.animations)(\"tooltipDisabled\", ctx_r2.tooltipDisabled)(\"tooltipPlacement\", ctx_r2.placementTypes.Top)(\"tooltipType\", ctx_r2.styleTypes.tooltip)(\"tooltipTitle\", ctx_r2.tooltipTemplate ? undefined : ctx_r2.tooltipText(c_r2))(\"tooltipTemplate\", ctx_r2.tooltipTemplate)(\"tooltipContext\", i0.ɵɵpureFunction3(14, _c35, c_r2.series, c_r2.label, c_r2.data));\n }\n}\nfunction HeatMapComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 6);\n i0.ɵɵlistener(\"dimensionsChanged\", function HeatMapComponent__svg_g_2_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction HeatMapComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 7);\n i0.ɵɵlistener(\"dimensionsChanged\", function HeatMapComponent__svg_g_3_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction HeatMapComponent__svg_rect_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"rect\");\n }\n if (rf & 2) {\n const rect_r4 = ctx.$implicit;\n i0.ɵɵattribute(\"x\", rect_r4.x)(\"y\", rect_r4.y)(\"rx\", rect_r4.rx)(\"width\", rect_r4.width)(\"height\", rect_r4.height)(\"fill\", rect_r4.fill);\n }\n}\nconst _c36 = [\"ngx-charts-line\", \"\"];\nfunction LineComponent__svg_g_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵattribute(\"d\", ctx_r0.initialPath)(\"fill\", ctx_r0.fill)(\"stroke\", ctx_r0.stroke);\n }\n}\nfunction LineComponent__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"path\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"d\", ctx_r0.initialPath)(\"fill\", ctx_r0.fill)(\"stroke\", ctx_r0.stroke);\n }\n}\nconst _c37 = [\"ngx-charts-line-series\", \"\"];\nfunction LineSeriesComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"orientation\", ctx_r0.barOrientation.Vertical)(\"name\", ctx_r0.gradientId)(\"stops\", ctx_r0.gradientStops);\n }\n}\nfunction LineSeriesComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 5);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"active\", ctx_r0.isActive(ctx_r0.data))(\"inactive\", ctx_r0.isInactive(ctx_r0.data));\n i0.ɵɵproperty(\"data\", ctx_r0.data)(\"path\", ctx_r0.outerPath)(\"fill\", ctx_r0.hasGradient ? ctx_r0.gradientUrl : ctx_r0.colors.getColor(ctx_r0.data.name))(\"opacity\", ctx_r0.rangeFillOpacity)(\"animations\", ctx_r0.animations);\n }\n}\nfunction LineChartComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 7);\n i0.ɵɵlistener(\"dimensionsChanged\", function LineChartComponent__svg_g_5_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateXAxisHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showXAxisLabel)(\"labelText\", ctx_r1.xAxisLabel)(\"trimTicks\", ctx_r1.trimXAxisTicks)(\"rotateTicks\", ctx_r1.rotateXAxisTicks)(\"maxTickLength\", ctx_r1.maxXAxisTickLength)(\"tickFormatting\", ctx_r1.xAxisTickFormatting)(\"ticks\", ctx_r1.xAxisTicks)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction LineChartComponent__svg_g_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 8);\n i0.ɵɵlistener(\"dimensionsChanged\", function LineChartComponent__svg_g_6_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yScale)(\"dims\", ctx_r1.dims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"ticks\", ctx_r1.yAxisTicks)(\"referenceLines\", ctx_r1.referenceLines)(\"showRefLines\", ctx_r1.showRefLines)(\"showRefLabels\", ctx_r1.showRefLabels)(\"wrapTicks\", ctx_r1.wrapTicks);\n }\n}\nfunction LineChartComponent__svg_g_8__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"g\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"data\", series_r4)(\"activeEntries\", ctx_r1.activeEntries)(\"scaleType\", ctx_r1.scaleType)(\"curve\", ctx_r1.curve)(\"rangeFillOpacity\", ctx_r1.rangeFillOpacity)(\"hasRange\", ctx_r1.hasRange)(\"animations\", ctx_r1.animations);\n }\n}\nfunction LineChartComponent__svg_g_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, LineChartComponent__svg_g_8__svg_g_1_Template, 2, 11, \"g\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction LineChartComponent__svg_g_9__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"g\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r5 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"data\", series_r5)(\"activeEntries\", ctx_r1.activeEntries)(\"scaleType\", ctx_r1.scaleType)(\"curve\", ctx_r1.curve)(\"rangeFillOpacity\", ctx_r1.rangeFillOpacity)(\"hasRange\", ctx_r1.hasRange)(\"animations\", ctx_r1.animations);\n }\n}\nfunction LineChartComponent__svg_g_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, LineChartComponent__svg_g_9__svg_g_1_Template, 2, 10, \"g\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction LineChartComponent__svg_g_10__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 14);\n i0.ɵɵlistener(\"select\", function LineChartComponent__svg_g_10__svg_g_2_Template_g_select_1_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n })(\"activate\", function LineChartComponent__svg_g_10__svg_g_2_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function LineChartComponent__svg_g_10__svg_g_2_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const series_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"data\", series_r8)(\"scaleType\", ctx_r1.scaleType)(\"visibleValue\", ctx_r1.hoveredVertical)(\"activeEntries\", ctx_r1.activeEntries)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate);\n }\n}\nfunction LineChartComponent__svg_g_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 11);\n i0.ɵɵlistener(\"mouseleave\", function LineChartComponent__svg_g_10_Template_g_mouseleave_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.hideCircles());\n });\n i0.ɵɵelementStart(1, \"g\", 12);\n i0.ɵɵlistener(\"hover\", function LineChartComponent__svg_g_10_Template_g_hover_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateHoveredVertical($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, LineChartComponent__svg_g_10__svg_g_2_Template, 2, 9, \"g\", 13);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"dims\", ctx_r1.dims)(\"xSet\", ctx_r1.xSet)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"results\", ctx_r1.results)(\"colors\", ctx_r1.colors)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.seriesTooltipTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results);\n }\n}\nfunction LineChartComponent__svg_g_11__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵelement(1, \"g\", 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r10 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx_r1.timelineXScale)(\"yScale\", ctx_r1.timelineYScale)(\"colors\", ctx_r1.colors)(\"data\", series_r10)(\"scaleType\", ctx_r1.scaleType)(\"curve\", ctx_r1.curve)(\"hasRange\", ctx_r1.hasRange)(\"animations\", ctx_r1.animations);\n }\n}\nfunction LineChartComponent__svg_g_11_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 15);\n i0.ɵɵlistener(\"onDomainChange\", function LineChartComponent__svg_g_11_Template_g_onDomainChange_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateDomain($event));\n });\n i0.ɵɵtemplate(1, LineChartComponent__svg_g_11__svg_g_1_Template, 2, 8, \"g\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"results\", ctx_r1.results)(\"view\", i0.ɵɵpureFunction2(10, _c24, ctx_r1.timelineWidth, ctx_r1.height))(\"height\", ctx_r1.timelineHeight)(\"scheme\", ctx_r1.scheme)(\"customColors\", ctx_r1.customColors)(\"scaleType\", ctx_r1.scaleType)(\"legend\", ctx_r1.legend);\n i0.ɵɵattribute(\"transform\", ctx_r1.timelineTransform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nconst _c38 = [\"ngx-charts-pie-label\", \"\"];\nconst _c39 = [\"ngx-charts-polar-series\", \"\"];\nfunction PolarSeriesComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"color\", ctx_r0.seriesColor)(\"name\", ctx_r0.gradientId)(\"startOpacity\", 0.25)(\"endOpacity\", 1)(\"stops\", ctx_r0.gradientStops);\n }\n}\nfunction PolarSeriesComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 5);\n i0.ɵɵlistener(\"select\", function PolarSeriesComponent__svg_g_4_Template_g_select_0_listener() {\n const circle_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.select.emit(circle_r3.data));\n })(\"activate\", function PolarSeriesComponent__svg_g_4_Template_g_activate_0_listener() {\n const circle_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.activate.emit({\n name: circle_r3.data.series\n }));\n })(\"deactivate\", function PolarSeriesComponent__svg_g_4_Template_g_deactivate_0_listener() {\n const circle_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.deactivate.emit({\n name: circle_r3.data.series\n }));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const circle_r3 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"opacity\", ctx_r0.inactive ? 0.2 : 1);\n i0.ɵɵproperty(\"cx\", circle_r3.cx)(\"cy\", circle_r3.cy)(\"r\", ctx_r0.circleRadius)(\"fill\", circle_r3.color)(\"tooltipDisabled\", ctx_r0.tooltipDisabled)(\"tooltipPlacement\", ctx_r0.placementTypes.Top)(\"tooltipType\", ctx_r0.styleTypes.tooltip)(\"tooltipTitle\", ctx_r0.tooltipTemplate ? undefined : ctx_r0.tooltipText(circle_r3))(\"tooltipTemplate\", ctx_r0.tooltipTemplate)(\"tooltipContext\", circle_r3.data);\n }\n}\nfunction PolarChartComponent__svg_g_4__svg_circle_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"circle\", 7);\n }\n if (rf & 2) {\n const r_r1 = ctx.$implicit;\n i0.ɵɵattribute(\"r\", r_r1);\n }\n}\nfunction PolarChartComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, PolarChartComponent__svg_g_4__svg_circle_1_Template, 1, 1, \"circle\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.radiusTicks);\n }\n}\nfunction PolarChartComponent__svg_g_5__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 9);\n }\n if (rf & 2) {\n const tick_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"data\", tick_r3)(\"radius\", ctx_r1.outerRadius)(\"label\", tick_r3.label)(\"max\", ctx_r1.outerRadius)(\"value\", ctx_r1.showGridLines ? 1 : ctx_r1.outerRadius)(\"explodeSlices\", true)(\"animations\", ctx_r1.animations)(\"labelTrim\", ctx_r1.labelTrim)(\"labelTrimSize\", ctx_r1.labelTrimSize);\n }\n}\nfunction PolarChartComponent__svg_g_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, PolarChartComponent__svg_g_5__svg_g_1_Template, 1, 9, \"g\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.thetaTicks);\n }\n}\nfunction PolarChartComponent__svg_g_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 10);\n i0.ɵɵlistener(\"dimensionsChanged\", function PolarChartComponent__svg_g_6_Template_g_dimensionsChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateYAxisWidth($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"yScale\", ctx_r1.yAxisScale)(\"dims\", ctx_r1.yAxisDims)(\"showGridLines\", ctx_r1.showGridLines)(\"showLabel\", ctx_r1.showYAxisLabel)(\"labelText\", ctx_r1.yAxisLabel)(\"trimTicks\", ctx_r1.trimYAxisTicks)(\"maxTickLength\", ctx_r1.maxYAxisTickLength)(\"tickFormatting\", ctx_r1.yAxisTickFormatting)(\"wrapTicks\", ctx_r1.wrapTicks);\n i0.ɵɵattribute(\"transform\", ctx_r1.transformYAxis);\n }\n}\nfunction PolarChartComponent__svg_g_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 11);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"label\", ctx_r1.xAxisLabel)(\"offset\", ctx_r1.labelOffset)(\"orient\", ctx_r1.orientation.Bottom)(\"height\", ctx_r1.dims.height)(\"width\", ctx_r1.dims.width);\n }\n}\nfunction PolarChartComponent__svg_g_8__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 13);\n i0.ɵɵlistener(\"select\", function PolarChartComponent__svg_g_8__svg_g_1_Template_g_select_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n })(\"activate\", function PolarChartComponent__svg_g_8__svg_g_1_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function PolarChartComponent__svg_g_8__svg_g_1_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const series_r6 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"@animationState\", \"active\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gradient\", ctx_r1.gradient)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"data\", series_r6)(\"activeEntries\", ctx_r1.activeEntries)(\"scaleType\", ctx_r1.scaleType)(\"curve\", ctx_r1.curve)(\"rangeFillOpacity\", ctx_r1.rangeFillOpacity)(\"animations\", ctx_r1.animations)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate);\n }\n}\nfunction PolarChartComponent__svg_g_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, PolarChartComponent__svg_g_8__svg_g_1_Template, 2, 13, \"g\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r1.transformPlot);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nfunction PolarChartComponent__svg_g_9__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 13);\n i0.ɵɵlistener(\"select\", function PolarChartComponent__svg_g_9__svg_g_1_Template_g_select_1_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n })(\"activate\", function PolarChartComponent__svg_g_9__svg_g_1_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function PolarChartComponent__svg_g_9__svg_g_1_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const series_r8 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gradient\", ctx_r1.gradient)(\"xScale\", ctx_r1.xScale)(\"yScale\", ctx_r1.yScale)(\"colors\", ctx_r1.colors)(\"data\", series_r8)(\"activeEntries\", ctx_r1.activeEntries)(\"scaleType\", ctx_r1.scaleType)(\"curve\", ctx_r1.curve)(\"rangeFillOpacity\", ctx_r1.rangeFillOpacity)(\"animations\", ctx_r1.animations)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate);\n }\n}\nfunction PolarChartComponent__svg_g_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, PolarChartComponent__svg_g_9__svg_g_1_Template, 2, 12, \"g\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r1.transformPlot);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.results)(\"ngForTrackBy\", ctx_r1.trackBy);\n }\n}\nconst _c40 = [\"ngx-charts-pie-arc\", \"\"];\nfunction PieArcComponent__svg_defs_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"defs\");\n i0.ɵɵelement(1, \"g\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"color\", ctx_r0.fill)(\"name\", ctx_r0.radialGradientId)(\"startOpacity\", ctx_r0.startOpacity);\n }\n}\nconst _c41 = [\"ngx-charts-pie-series\", \"\"];\nfunction PieSeriesComponent__svg_g_0__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 3);\n }\n if (rf & 2) {\n const arc_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"data\", arc_r2)(\"radius\", ctx_r2.outerRadius)(\"color\", ctx_r2.color(arc_r2))(\"label\", ctx_r2.labelText(arc_r2))(\"labelTrim\", ctx_r2.trimLabels)(\"labelTrimSize\", ctx_r2.maxLabelLength)(\"max\", ctx_r2.max)(\"value\", arc_r2.value)(\"explodeSlices\", ctx_r2.explodeSlices)(\"animations\", ctx_r2.animations);\n }\n}\nfunction PieSeriesComponent__svg_g_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, PieSeriesComponent__svg_g_0__svg_g_1_Template, 1, 10, \"g\", 1);\n i0.ɵɵelementStart(2, \"g\", 2);\n i0.ɵɵlistener(\"select\", function PieSeriesComponent__svg_g_0_Template_g_select_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.onClick($event));\n })(\"activate\", function PieSeriesComponent__svg_g_0_Template_g_activate_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.activate.emit($event));\n })(\"deactivate\", function PieSeriesComponent__svg_g_0_Template_g_deactivate_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.deactivate.emit($event));\n })(\"dblclick\", function PieSeriesComponent__svg_g_0_Template_g_dblclick_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.dblclick.emit($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const arc_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.labelVisible(arc_r2));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"startAngle\", arc_r2.startAngle)(\"endAngle\", arc_r2.endAngle)(\"innerRadius\", ctx_r2.innerRadius)(\"outerRadius\", ctx_r2.outerRadius)(\"fill\", ctx_r2.color(arc_r2))(\"value\", arc_r2.data.value)(\"gradient\", ctx_r2.gradient)(\"data\", arc_r2.data)(\"max\", ctx_r2.max)(\"explodeSlices\", ctx_r2.explodeSlices)(\"isActive\", ctx_r2.isActive(arc_r2.data))(\"animate\", ctx_r2.animations)(\"tooltipDisabled\", ctx_r2.tooltipDisabled)(\"tooltipPlacement\", ctx_r2.placementTypes.Top)(\"tooltipType\", ctx_r2.styleTypes.tooltip)(\"tooltipTitle\", ctx_r2.getTooltipTitle(arc_r2))(\"tooltipTemplate\", ctx_r2.tooltipTemplate)(\"tooltipContext\", arc_r2.data);\n }\n}\nconst _c42 = \".pie-label{font-size:11px}.pie-label.animation{animation:.75s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pie-label-line{stroke-dasharray:100%}.pie-label-line.animation{animation:3s linear drawOut;transition:d .75s}@keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}\\n\";\nconst _c43 = [\"ngx-charts-pie-grid-series\", \"\"];\nfunction PieGridSeriesComponent__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2);\n i0.ɵɵlistener(\"select\", function PieGridSeriesComponent__svg_g_1_Template_g_select_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n })(\"activate\", function PieGridSeriesComponent__svg_g_1_Template_g_activate_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.activate.emit($event));\n })(\"deactivate\", function PieGridSeriesComponent__svg_g_1_Template_g_deactivate_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.deactivate.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const arc_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"startAngle\", arc_r3.startAngle)(\"endAngle\", arc_r3.endAngle)(\"innerRadius\", ctx_r1.innerRadius)(\"outerRadius\", ctx_r1.outerRadius)(\"fill\", ctx_r1.color(arc_r3))(\"value\", arc_r3.data.value)(\"data\", arc_r3.data)(\"gradient\", false)(\"pointerEvents\", arc_r3.pointerEvents)(\"animate\", arc_r3.animate);\n i0.ɵɵattribute(\"class\", arc_r3.class);\n }\n}\nconst _c44 = a0 => ({\n data: a0\n});\nfunction PieGridComponent__svg_g_2__svg_text_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"text\", 10);\n }\n if (rf & 2) {\n const series_r3 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"countTo\", series_r3.percent)(\"countSuffix\", \"%\");\n }\n}\nfunction PieGridComponent__svg_g_2__svg_text_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"text\", 11);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r3 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", series_r3.percent.toLocaleString(), \" \");\n }\n}\nfunction PieGridComponent__svg_g_2__svg_text_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"text\", 12);\n }\n if (rf & 2) {\n const series_r3 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"countTo\", series_r3.total)(\"countPrefix\", ctx_r1.label + \": \");\n i0.ɵɵattribute(\"y\", series_r3.outerRadius);\n }\n}\nfunction PieGridComponent__svg_g_2__svg_text_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"text\", 13);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r3 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"y\", series_r3.outerRadius);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate2(\" \", ctx_r1.label, \": \", series_r3.total.toLocaleString(), \" \");\n }\n}\nfunction PieGridComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 3)(1, \"g\", 4);\n i0.ɵɵlistener(\"select\", function PieGridComponent__svg_g_2_Template_g_select_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n })(\"activate\", function PieGridComponent__svg_g_2_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function PieGridComponent__svg_g_2_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, PieGridComponent__svg_g_2__svg_text_2_Template, 1, 2, \"text\", 5)(3, PieGridComponent__svg_g_2__svg_text_3_Template, 2, 1, \"text\", 6);\n i0.ɵɵelementStart(4, \"text\", 7);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, PieGridComponent__svg_g_2__svg_text_6_Template, 1, 3, \"text\", 8)(7, PieGridComponent__svg_g_2__svg_text_7_Template, 2, 3, \"text\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const series_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", series_r3.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"colors\", series_r3.colors)(\"data\", series_r3.data)(\"innerRadius\", series_r3.innerRadius)(\"outerRadius\", series_r3.outerRadius)(\"animations\", ctx_r1.animations)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipPlacement\", ctx_r1.placementTypes.Top)(\"tooltipType\", ctx_r1.styleTypes.tooltip)(\"tooltipTitle\", ctx_r1.tooltipTemplate ? undefined : ctx_r1.tooltipText(i0.ɵɵpureFunction1(17, _c44, series_r3)))(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"tooltipContext\", series_r3.data[0].data);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.animations);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.animations);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", series_r3.label, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.animations);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.animations);\n }\n}\nconst _c45 = [\"textEl\"];\nconst _c46 = [\"ngx-charts-card\", \"\"];\nfunction CardComponent__svg_path_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"path\", 7);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"fill\", ctx_r1.bandColor)(\"transform\", ctx_r1.transformBand)(\"d\", ctx_r1.bandPath);\n }\n}\nconst _c47 = [\"ngx-charts-card-series\", \"\"];\nfunction CardSeriesComponent__svg_rect_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"rect\", 2);\n }\n if (rf & 2) {\n const c_r1 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"fill\", ctx_r1.emptyColor);\n i0.ɵɵattribute(\"x\", c_r1.x)(\"y\", c_r1.y)(\"width\", c_r1.width)(\"height\", c_r1.height);\n }\n}\nfunction CardSeriesComponent__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 3);\n i0.ɵɵlistener(\"select\", function CardSeriesComponent__svg_g_1_Template_g_select_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const c_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"x\", c_r4.x)(\"y\", c_r4.y)(\"width\", c_r4.width)(\"height\", c_r4.height)(\"color\", c_r4.color)(\"bandColor\", c_r4.bandColor)(\"textColor\", c_r4.textColor)(\"data\", c_r4.data)(\"label\", c_r4.label)(\"medianSize\", ctx_r1.medianSize)(\"valueFormatting\", ctx_r1.valueFormatting)(\"labelFormatting\", ctx_r1.labelFormatting)(\"animations\", ctx_r1.animations);\n }\n}\nconst _c48 = [\"ngx-charts-tree-map-cell\", \"\"];\nfunction TreeMapCellComponent__svg_defs_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"defs\");\n i0.ɵɵelement(1, \"g\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"orientation\", ctx_r0.orientation.Vertical)(\"name\", ctx_r0.gradientId)(\"stops\", ctx_r0.gradientStops);\n }\n}\nfunction TreeMapCellComponent__svg_foreignObject_3_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 8);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"countTo\", ctx_r0.value)(\"valueFormatting\", ctx_r0.valueFormatting);\n }\n}\nfunction TreeMapCellComponent__svg_foreignObject_3_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 9);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.formattedValue, \" \");\n }\n}\nfunction TreeMapCellComponent__svg_foreignObject_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"foreignObject\", 4);\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(1, \"p\");\n i0.ɵɵelement(2, \"span\", 5)(3, \"br\");\n i0.ɵɵtemplate(4, TreeMapCellComponent__svg_foreignObject_3_span_4_Template, 1, 2, \"span\", 6)(5, TreeMapCellComponent__svg_foreignObject_3_span_5_Template, 2, 1, \"span\", 7);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"pointer-events\", \"none\");\n i0.ɵɵattribute(\"x\", ctx_r0.x)(\"y\", ctx_r0.y)(\"width\", ctx_r0.width)(\"height\", ctx_r0.height);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"color\", ctx_r0.getTextColor())(\"height\", ctx_r0.height + \"px\")(\"width\", ctx_r0.width + \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"innerHTML\", ctx_r0.formattedLabel, i0.ɵɵsanitizeHtml);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.animations);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.animations);\n }\n}\nconst _c49 = [\"ngx-charts-tree-map-cell-series\", \"\"];\nfunction TreeMapCellSeriesComponent__svg_g_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 1);\n i0.ɵɵlistener(\"select\", function TreeMapCellSeriesComponent__svg_g_0_Template_g_select_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const c_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"data\", c_r3.data)(\"x\", c_r3.x)(\"y\", c_r3.y)(\"width\", c_r3.width)(\"height\", c_r3.height)(\"fill\", c_r3.fill)(\"label\", c_r3.label)(\"value\", c_r3.value)(\"valueFormatting\", ctx_r1.valueFormatting)(\"labelFormatting\", ctx_r1.labelFormatting)(\"gradient\", ctx_r1.gradient)(\"animations\", ctx_r1.animations)(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipPlacement\", ctx_r1.placementTypes.Top)(\"tooltipType\", ctx_r1.styleTypes.tooltip)(\"tooltipTitle\", ctx_r1.tooltipTemplate ? undefined : ctx_r1.getTooltipText(c_r3))(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"tooltipContext\", c_r3.data);\n }\n}\nconst _c50 = [\"valueTextEl\"];\nconst _c51 = [\"unitsTextEl\"];\nconst _c52 = () => ({});\nfunction LinearGaugeComponent__svg_line_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"line\", 10);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r1.transformLine)(\"stroke\", ctx_r1.colors.getColor(ctx_r1.units));\n }\n}\nfunction LinearGaugeComponent__svg_line_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"line\", 11);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r1.transformLine)(\"stroke\", ctx_r1.colors.getColor(ctx_r1.units));\n }\n}\nconst _c53 = [\"ngx-charts-gauge-arc\", \"\"];\nconst _c54 = [\"ngx-charts-gauge-axis\", \"\"];\nfunction GaugeAxisComponent__svg_g_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2);\n i0.ɵɵelement(1, \"path\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tick_r1 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"d\", tick_r1.line);\n }\n}\nfunction GaugeAxisComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 2)(1, \"text\", 3);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const tick_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"text-anchor\", tick_r2.textAnchor);\n i0.ɵɵattribute(\"transform\", tick_r2.textTransform);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", tick_r2.text, \" \");\n }\n}\nfunction GaugeAxisComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 4);\n i0.ɵɵelement(1, \"path\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tick_r3 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"d\", tick_r3.line);\n }\n}\nfunction GaugeComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"g\", 6);\n i0.ɵɵlistener(\"select\", function GaugeComponent__svg_g_2_Template_g_select_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onClick($event));\n })(\"activate\", function GaugeComponent__svg_g_2_Template_g_activate_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onActivate($event));\n })(\"deactivate\", function GaugeComponent__svg_g_2_Template_g_deactivate_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onDeactivate($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const arc_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", ctx_r1.rotation);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"backgroundArc\", arc_r3.backgroundArc)(\"valueArc\", arc_r3.valueArc)(\"cornerRadius\", ctx_r1.cornerRadius)(\"colors\", ctx_r1.colors)(\"isActive\", ctx_r1.isActive(arc_r3.valueArc.data))(\"tooltipDisabled\", ctx_r1.tooltipDisabled)(\"tooltipTemplate\", ctx_r1.tooltipTemplate)(\"valueFormatting\", ctx_r1.valueFormatting)(\"animations\", ctx_r1.animations);\n }\n}\nfunction GaugeComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 7);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"bigSegments\", ctx_r1.bigSegments)(\"smallSegments\", ctx_r1.smallSegments)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"radius\", ctx_r1.outerRadius)(\"angleSpan\", ctx_r1.angleSpan)(\"valueScale\", ctx_r1.valueScale)(\"startAngle\", ctx_r1.startAngle)(\"tickFormatting\", ctx_r1.axisTickFormatting);\n }\n}\nfunction GaugeComponent__svg_text_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"text\", 8, 0)(2, \"tspan\", 9);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"tspan\", 10);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-anchor\", \"middle\");\n i0.ɵɵattribute(\"transform\", ctx_r1.textTransform);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx_r1.displayValue);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.units);\n }\n}\nfunction SankeyComponent__svg_g_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 5)(1, \"defs\")(2, \"linearGradient\", 6);\n i0.ɵɵelement(3, \"stop\", 7)(4, \"stop\", 8);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"path\", 9);\n i0.ɵɵlistener(\"click\", function SankeyComponent__svg_g_2_Template_path_click_5_listener() {\n const link_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.select.emit(link_r2.data));\n })(\"mouseenter\", function SankeyComponent__svg_g_2_Template_path_mouseenter_5_listener() {\n const link_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.activate.emit(link_r2.data));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const link_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"tooltipDisabled\", ctx_r2.tooltipDisabled)(\"tooltipType\", ctx_r2.styleTypes.tooltip)(\"tooltipPlacement\", \"top\")(\"tooltipTitle\", ctx_r2.tooltipTemplate ? undefined : link_r2.tooltip)(\"tooltipTemplate\", ctx_r2.tooltipTemplate)(\"tooltipContext\", link_r2.data);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"id\", link_r2.id)(\"x1\", link_r2.source.x1)(\"x2\", link_r2.target.x0);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"stop-color\", link_r2.startColor);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"stop-color\", link_r2.endColor);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"d\", link_r2.path)(\"stroke\", link_r2.gradientFill)(\"stroke-width\", link_r2.strokeWidth);\n }\n}\nfunction SankeyComponent__svg_g_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 10)(1, \"rect\", 11);\n i0.ɵɵlistener(\"click\", function SankeyComponent__svg_g_3_Template_rect_click_1_listener() {\n const rect_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.select.emit(rect_r5.data));\n })(\"mouseenter\", function SankeyComponent__svg_g_3_Template_rect_mouseenter_1_listener() {\n const rect_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.activate.emit(rect_r5.data));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const rect_r5 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", rect_r5.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"tooltipDisabled\", ctx_r2.tooltipDisabled)(\"tooltipType\", ctx_r2.styleTypes.tooltip)(\"tooltipPlacement\", \"top\")(\"tooltipTitle\", ctx_r2.tooltipTemplate ? undefined : rect_r5.tooltip)(\"tooltipTemplate\", ctx_r2.tooltipTemplate)(\"tooltipContext\", rect_r5.data);\n i0.ɵɵattribute(\"x\", 0)(\"y\", 0)(\"width\", rect_r5.width)(\"height\", rect_r5.height)(\"fill\", rect_r5.fill);\n }\n}\nfunction SankeyComponent__svg_g_4__svg_text_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"text\", 13);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const rect_r6 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵattribute(\"x\", rect_r6.width + 5)(\"y\", rect_r6.height / 2)(\"text-anchor\", rect_r6.labelAnchor)(\"dx\", rect_r6.labelAnchor === \"end\" ? -25 : 0);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", rect_r6.label, \" \");\n }\n}\nfunction SankeyComponent__svg_g_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, SankeyComponent__svg_g_4__svg_text_1_Template, 2, 5, \"text\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const rect_r6 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"transform\", rect_r6.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showLabels && rect_r6.height > 15);\n }\n}\nfunction throttle(func, wait, options) {\n options = options || {};\n let context;\n let args;\n let result;\n let timeout = null;\n let previous = 0;\n function later() {\n previous = options.leading === false ? 0 : +new Date();\n timeout = null;\n result = func.apply(context, args);\n }\n return function () {\n const now = +new Date();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n context = this;\n // eslint-disable-next-line prefer-rest-params\n args = arguments;\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 return result;\n };\n}\n/**\n * Throttle decorator\n *\n * class MyClass {\n * throttleable(10)\n * myFn() { ... }\n * }\n */\nfunction throttleable(duration, options) {\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 return this[key];\n }\n };\n };\n}\nvar PlacementTypes = /*#__PURE__*/function (PlacementTypes) {\n PlacementTypes[\"Top\"] = \"top\";\n PlacementTypes[\"Bottom\"] = \"bottom\";\n PlacementTypes[\"Left\"] = \"left\";\n PlacementTypes[\"Right\"] = \"right\";\n PlacementTypes[\"Center\"] = \"center\";\n return PlacementTypes;\n}(PlacementTypes || {});\nconst caretOffset = 7;\nfunction verticalPosition(elDimensions, popoverDimensions, alignment) {\n if (alignment === PlacementTypes.Top) {\n return elDimensions.top - caretOffset;\n }\n if (alignment === PlacementTypes.Bottom) {\n return elDimensions.top + elDimensions.height - popoverDimensions.height + caretOffset;\n }\n if (alignment === PlacementTypes.Center) {\n return elDimensions.top + elDimensions.height / 2 - popoverDimensions.height / 2;\n }\n return undefined;\n}\nfunction horizontalPosition(elDimensions, popoverDimensions, alignment) {\n if (alignment === PlacementTypes.Left) {\n return elDimensions.left - caretOffset;\n }\n if (alignment === PlacementTypes.Right) {\n return elDimensions.left + elDimensions.width - popoverDimensions.width + caretOffset;\n }\n if (alignment === PlacementTypes.Center) {\n return elDimensions.left + elDimensions.width / 2 - popoverDimensions.width / 2;\n }\n return undefined;\n}\n/**\n * Position helper for the popover directive.\n *\n * @export\n */\nclass PositionHelper {\n /**\n * Calculate vertical alignment position\n *\n * @memberOf PositionHelper\n */\n static calculateVerticalAlignment(elDimensions, popoverDimensions, alignment) {\n let result = verticalPosition(elDimensions, popoverDimensions, alignment);\n if (result + popoverDimensions.height > window.innerHeight) {\n result = window.innerHeight - popoverDimensions.height;\n }\n return result;\n }\n /**\n * Calculate vertical caret position\n *\n * @memberOf PositionHelper\n */\n static calculateVerticalCaret(elDimensions, popoverDimensions, caretDimensions, alignment) {\n let result;\n if (alignment === PlacementTypes.Top) {\n result = elDimensions.height / 2 - caretDimensions.height / 2 + caretOffset;\n }\n if (alignment === PlacementTypes.Bottom) {\n result = popoverDimensions.height - elDimensions.height / 2 - caretDimensions.height / 2 - caretOffset;\n }\n if (alignment === PlacementTypes.Center) {\n result = popoverDimensions.height / 2 - caretDimensions.height / 2;\n }\n const popoverPosition = verticalPosition(elDimensions, popoverDimensions, alignment);\n if (popoverPosition + popoverDimensions.height > window.innerHeight) {\n result += popoverPosition + popoverDimensions.height - window.innerHeight;\n }\n return result;\n }\n /**\n * Calculate horz alignment position\n *\n * @memberOf PositionHelper\n */\n static calculateHorizontalAlignment(elDimensions, popoverDimensions, alignment) {\n let result = horizontalPosition(elDimensions, popoverDimensions, alignment);\n if (result + popoverDimensions.width > window.innerWidth) {\n result = window.innerWidth - popoverDimensions.width;\n }\n return result;\n }\n /**\n * Calculate horz caret position\n *\n * @memberOf PositionHelper\n */\n static calculateHorizontalCaret(elDimensions, popoverDimensions, caretDimensions, alignment) {\n let result;\n if (alignment === PlacementTypes.Left) {\n result = elDimensions.width / 2 - caretDimensions.width / 2 + caretOffset;\n }\n if (alignment === PlacementTypes.Right) {\n result = popoverDimensions.width - elDimensions.width / 2 - caretDimensions.width / 2 - caretOffset;\n }\n if (alignment === PlacementTypes.Center) {\n result = popoverDimensions.width / 2 - caretDimensions.width / 2;\n }\n const popoverPosition = horizontalPosition(elDimensions, popoverDimensions, alignment);\n if (popoverPosition + popoverDimensions.width > window.innerWidth) {\n result += popoverPosition + popoverDimensions.width - window.innerWidth;\n }\n return result;\n }\n /**\n * Checks if the element's position should be flipped\n *\n * @memberOf PositionHelper\n */\n static shouldFlip(elDimensions, popoverDimensions, placement, spacing) {\n let flip = false;\n if (placement === PlacementTypes.Right) {\n if (elDimensions.left + elDimensions.width + popoverDimensions.width + spacing > window.innerWidth) {\n flip = true;\n }\n }\n if (placement === PlacementTypes.Left) {\n if (elDimensions.left - popoverDimensions.width - spacing < 0) {\n flip = true;\n }\n }\n if (placement === PlacementTypes.Top) {\n if (elDimensions.top - popoverDimensions.height - spacing < 0) {\n flip = true;\n }\n }\n if (placement === PlacementTypes.Bottom) {\n if (elDimensions.top + elDimensions.height + popoverDimensions.height + spacing > window.innerHeight) {\n flip = true;\n }\n }\n return flip;\n }\n /**\n * Position caret\n *\n * @memberOf PositionHelper\n */\n static positionCaret(placement, elmDim, hostDim, caretDimensions, alignment) {\n let top = 0;\n let left = 0;\n if (placement === PlacementTypes.Right) {\n left = -7;\n top = PositionHelper.calculateVerticalCaret(hostDim, elmDim, caretDimensions, alignment);\n } else if (placement === PlacementTypes.Left) {\n left = elmDim.width;\n top = PositionHelper.calculateVerticalCaret(hostDim, elmDim, caretDimensions, alignment);\n } else if (placement === PlacementTypes.Top) {\n top = elmDim.height;\n left = PositionHelper.calculateHorizontalCaret(hostDim, elmDim, caretDimensions, alignment);\n } else if (placement === PlacementTypes.Bottom) {\n top = -7;\n left = PositionHelper.calculateHorizontalCaret(hostDim, elmDim, caretDimensions, alignment);\n }\n return {\n top,\n left\n };\n }\n /**\n * Position content\n *\n * @memberOf PositionHelper\n */\n static positionContent(placement, elmDim, hostDim, spacing, alignment) {\n let top = 0;\n let left = 0;\n if (placement === PlacementTypes.Right) {\n left = hostDim.left + hostDim.width + spacing;\n top = PositionHelper.calculateVerticalAlignment(hostDim, elmDim, alignment);\n } else if (placement === PlacementTypes.Left) {\n left = hostDim.left - elmDim.width - spacing;\n top = PositionHelper.calculateVerticalAlignment(hostDim, elmDim, alignment);\n } else if (placement === PlacementTypes.Top) {\n top = hostDim.top - elmDim.height - spacing;\n left = PositionHelper.calculateHorizontalAlignment(hostDim, elmDim, alignment);\n } else if (placement === PlacementTypes.Bottom) {\n top = hostDim.top + hostDim.height + spacing;\n left = PositionHelper.calculateHorizontalAlignment(hostDim, elmDim, alignment);\n }\n return {\n top,\n left\n };\n }\n /**\n * Determine placement based on flip\n *\n * @memberOf PositionHelper\n */\n static determinePlacement(placement, elmDim, hostDim, spacing) {\n const shouldFlip = PositionHelper.shouldFlip(hostDim, elmDim, placement, spacing);\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 return placement;\n }\n}\nlet TooltipContentComponent = /*#__PURE__*/(() => {\n class TooltipContentComponent {\n constructor(element, renderer, platformId) {\n this.element = element;\n this.renderer = renderer;\n this.platformId = platformId;\n }\n get cssClasses() {\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 ngAfterViewInit() {\n setTimeout(this.position.bind(this));\n }\n position() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const nativeElm = this.element.nativeElement;\n const hostDim = this.host.nativeElement.getBoundingClientRect();\n // if no dims were found, never show\n if (!hostDim.height && !hostDim.width) return;\n const elmDim = nativeElm.getBoundingClientRect();\n this.checkFlip(hostDim, elmDim);\n this.positionContent(nativeElm, hostDim, elmDim);\n if (this.showCaret) {\n this.positionCaret(hostDim, elmDim);\n }\n // animate its entry\n setTimeout(() => this.renderer.addClass(nativeElm, 'animate'), 1);\n }\n positionContent(nativeElm, hostDim, elmDim) {\n const {\n top,\n left\n } = PositionHelper.positionContent(this.placement, elmDim, hostDim, this.spacing, this.alignment);\n this.renderer.setStyle(nativeElm, 'top', `${top}px`);\n this.renderer.setStyle(nativeElm, 'left', `${left}px`);\n }\n positionCaret(hostDim, elmDim) {\n const caretElm = this.caretElm.nativeElement;\n const caretDimensions = caretElm.getBoundingClientRect();\n const {\n top,\n left\n } = PositionHelper.positionCaret(this.placement, elmDim, hostDim, caretDimensions, this.alignment);\n this.renderer.setStyle(caretElm, 'top', `${top}px`);\n this.renderer.setStyle(caretElm, 'left', `${left}px`);\n }\n checkFlip(hostDim, elmDim) {\n this.placement = PositionHelper.determinePlacement(this.placement, elmDim, hostDim, this.spacing);\n }\n onWindowResize() {\n this.position();\n }\n }\n TooltipContentComponent.ɵfac = function TooltipContentComponent_Factory(t) {\n return new (t || TooltipContentComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n TooltipContentComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TooltipContentComponent,\n selectors: [[\"ngx-tooltip-content\"]],\n viewQuery: function TooltipContentComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.caretElm = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function TooltipContentComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"resize\", function TooltipContentComponent_resize_HostBindingHandler() {\n return ctx.onWindowResize();\n }, false, i0.ɵɵresolveWindow);\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.cssClasses);\n }\n },\n inputs: {\n host: \"host\",\n showCaret: \"showCaret\",\n type: \"type\",\n placement: \"placement\",\n alignment: \"alignment\",\n spacing: \"spacing\",\n cssClass: \"cssClass\",\n title: \"title\",\n template: \"template\",\n context: \"context\"\n },\n decls: 6,\n vars: 6,\n consts: [[\"caretElm\", \"\"], [3, \"hidden\"], [1, \"tooltip-content\"], [4, \"ngIf\"], [3, \"innerHTML\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"innerHTML\"]],\n template: function TooltipContentComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵelement(1, \"span\", 1, 0);\n i0.ɵɵelementStart(3, \"div\", 2);\n i0.ɵɵtemplate(4, TooltipContentComponent_span_4_Template, 2, 4, \"span\", 3)(5, TooltipContentComponent_span_5_Template, 1, 1, \"span\", 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵclassMapInterpolate1(\"tooltip-caret position-\", ctx.placement, \"\");\n i0.ɵɵproperty(\"hidden\", !ctx.showCaret);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", !ctx.title);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.title);\n }\n },\n dependencies: [i2.NgIf, i2.NgTemplateOutlet],\n styles: [\".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\\n\"],\n encapsulation: 2\n });\n __decorate([throttleable(100)], TooltipContentComponent.prototype, \"onWindowResize\", null);\n return TooltipContentComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass InjectionRegisteryService {\n constructor(injectionService) {\n this.injectionService = injectionService;\n this.defaults = {};\n this.components = new Map();\n }\n getByType(type = this.type) {\n return this.components.get(type);\n }\n create(bindings) {\n return this.createByType(this.type, bindings);\n }\n createByType(type, bindings) {\n bindings = this.assignDefaults(bindings);\n const component = this.injectComponent(type, bindings);\n this.register(type, component);\n return component;\n }\n destroy(instance) {\n const compsByType = this.components.get(instance.componentType);\n if (compsByType && compsByType.length) {\n const idx = compsByType.indexOf(instance);\n if (idx > -1) {\n const component = compsByType[idx];\n component.destroy();\n compsByType.splice(idx, 1);\n }\n }\n }\n destroyAll() {\n this.destroyByType(this.type);\n }\n destroyByType(type) {\n const comps = this.components.get(type);\n if (comps && comps.length) {\n let i = comps.length - 1;\n while (i >= 0) {\n this.destroy(comps[i--]);\n }\n }\n }\n injectComponent(type, bindings) {\n return this.injectionService.appendComponent(type, bindings);\n }\n assignDefaults(bindings) {\n const inputs = {\n ...this.defaults.inputs\n };\n const outputs = {\n ...this.defaults.outputs\n };\n if (!bindings.inputs && !bindings.outputs) {\n bindings = {\n inputs: bindings\n };\n }\n if (inputs) {\n bindings.inputs = {\n ...inputs,\n ...bindings.inputs\n };\n }\n if (outputs) {\n bindings.outputs = {\n ...outputs,\n ...bindings.outputs\n };\n }\n return bindings;\n }\n register(type, component) {\n if (!this.components.has(type)) {\n this.components.set(type, []);\n }\n const types = this.components.get(type);\n types.push(component);\n }\n}\nfunction isViewContainerRef(x) {\n return x.element;\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 */\nlet InjectionService = /*#__PURE__*/(() => {\n class InjectionService {\n constructor(applicationRef, componentFactoryResolver, injector) {\n this.applicationRef = applicationRef;\n this.componentFactoryResolver = componentFactoryResolver;\n this.injector = injector;\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) {\n InjectionService.globalRootViewContainer = container;\n }\n /**\n * Gets the root view container to inject the component to.\n *\n * @memberOf InjectionService\n */\n getRootViewContainer() {\n if (this._container) return this._container;\n if (InjectionService.globalRootViewContainer) return InjectionService.globalRootViewContainer;\n if (this.applicationRef.components.length) return this.applicationRef.components[0];\n throw new Error('View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.');\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 container\n *\n * @memberOf InjectionService\n */\n setRootViewContainer(container) {\n this._container = container;\n }\n /**\n * Gets the html element for a component ref.\n *\n * @param componentRef\n *\n * @memberOf InjectionService\n */\n getComponentRootNode(component) {\n if (isViewContainerRef(component)) {\n return component.element.nativeElement;\n }\n if (component.hostView && component.hostView.rootNodes.length > 0) {\n return component.hostView.rootNodes[0];\n }\n // the top most component root node has no `hostView`\n return component.location.nativeElement;\n }\n /**\n * Gets the root component container html element.\n *\n * @memberOf InjectionService\n */\n getRootViewContainerNode(component) {\n return this.getComponentRootNode(component);\n }\n /**\n * Projects the bindings onto the component\n *\n * @param component\n * @param options\n *\n * @memberOf InjectionService\n */\n projectComponentBindings(component, bindings) {\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 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 return component;\n }\n /**\n * Appends a component to a adjacent location\n *\n * @param componentClass\n * @param [options={}]\n * @param [location]\n *\n * @memberOf InjectionService\n */\n appendComponent(componentClass, bindings = {}, location) {\n if (!location) location = this.getRootViewContainer();\n const appendLocation = this.getComponentRootNode(location);\n const portalHost = new DomPortalOutlet(appendLocation, this.componentFactoryResolver, this.applicationRef, this.injector);\n const portal = new ComponentPortal(componentClass);\n const componentRef = portalHost.attach(portal);\n this.projectComponentBindings(componentRef, bindings);\n return componentRef;\n }\n }\n InjectionService.globalRootViewContainer = null;\n InjectionService.ɵfac = function InjectionService_Factory(t) {\n return new (t || InjectionService)(i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.Injector));\n };\n InjectionService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InjectionService,\n factory: InjectionService.ɵfac\n });\n return InjectionService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TooltipService = /*#__PURE__*/(() => {\n class TooltipService extends InjectionRegisteryService {\n constructor(injectionService) {\n super(injectionService);\n this.type = TooltipContentComponent;\n }\n }\n TooltipService.ɵfac = function TooltipService_Factory(t) {\n return new (t || TooltipService)(i0.ɵɵinject(InjectionService));\n };\n TooltipService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TooltipService,\n factory: TooltipService.ɵfac\n });\n return TooltipService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar LegendPosition = /*#__PURE__*/function (LegendPosition) {\n LegendPosition[\"Right\"] = \"right\";\n LegendPosition[\"Below\"] = \"below\";\n return LegendPosition;\n}(LegendPosition || {});\nvar LegendType = /*#__PURE__*/function (LegendType) {\n LegendType[\"ScaleLegend\"] = \"scaleLegend\";\n LegendType[\"Legend\"] = \"legend\";\n return LegendType;\n}(LegendType || {});\nvar ScaleType = /*#__PURE__*/function (ScaleType) {\n ScaleType[\"Time\"] = \"time\";\n ScaleType[\"Linear\"] = \"linear\";\n ScaleType[\"Ordinal\"] = \"ordinal\";\n ScaleType[\"Quantile\"] = \"quantile\";\n return ScaleType;\n}(ScaleType || {});\nlet ScaleLegendComponent = /*#__PURE__*/(() => {\n class ScaleLegendComponent {\n constructor() {\n this.horizontal = false;\n }\n ngOnChanges(changes) {\n const gradientValues = this.gradientString(this.colors.range(), this.colors.domain());\n const direction = this.horizontal ? 'right' : 'bottom';\n this.gradient = `linear-gradient(to ${direction}, ${gradientValues})`;\n }\n /**\n * Generates the string used in the gradient stylesheet properties\n * @param colors array of colors\n * @param splits array of splits on a scale of (0, 1)\n */\n gradientString(colors, splits) {\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 return pairs.join(', ');\n }\n }\n ScaleLegendComponent.ɵfac = function ScaleLegendComponent_Factory(t) {\n return new (t || ScaleLegendComponent)();\n };\n ScaleLegendComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ScaleLegendComponent,\n selectors: [[\"ngx-charts-scale-legend\"]],\n inputs: {\n valueRange: \"valueRange\",\n colors: \"colors\",\n height: \"height\",\n width: \"width\",\n horizontal: \"horizontal\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 8,\n vars: 10,\n consts: [[1, \"scale-legend\"], [1, \"scale-legend-label\"], [1, \"scale-legend-wrap\"]],\n template: function ScaleLegendComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1)(2, \"span\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n i0.ɵɵelement(4, \"div\", 2);\n i0.ɵɵelementStart(5, \"div\", 1)(6, \"span\");\n i0.ɵɵtext(7);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"height\", ctx.horizontal ? undefined : ctx.height, \"px\")(\"width\", ctx.width, \"px\");\n i0.ɵɵclassProp(\"horizontal-legend\", ctx.horizontal);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx.valueRange[1].toLocaleString());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"background\", ctx.gradient);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx.valueRange[0].toLocaleString());\n }\n },\n styles: [\".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return ScaleLegendComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Formats a label given a date, number or string.\n *\n * @export\n */\nfunction formatLabel(label) {\n if (label instanceof Date) {\n label = label.toLocaleDateString();\n } else {\n label = label.toLocaleString();\n }\n return label;\n}\n/**\n * Escapes a label.\n *\n * @export\n */\nfunction escapeLabel(label) {\n return label.toLocaleString().replace(/[&'`\"<>]/g, match => {\n return {\n '&': '&',\n // tslint:disable-next-line: quotemark\n \"'\": ''',\n '`': '`',\n '\"': '"',\n '<': '<',\n '>': '>'\n }[match];\n });\n}\nlet LegendEntryComponent = /*#__PURE__*/(() => {\n class LegendEntryComponent {\n constructor() {\n this.isActive = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.toggle = new EventEmitter();\n }\n get trimmedLabel() {\n return this.formattedLabel || '(empty)';\n }\n onMouseEnter() {\n this.activate.emit({\n name: this.label\n });\n }\n onMouseLeave() {\n this.deactivate.emit({\n name: this.label\n });\n }\n }\n LegendEntryComponent.ɵfac = function LegendEntryComponent_Factory(t) {\n return new (t || LegendEntryComponent)();\n };\n LegendEntryComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LegendEntryComponent,\n selectors: [[\"ngx-charts-legend-entry\"]],\n hostBindings: function LegendEntryComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseenter\", function LegendEntryComponent_mouseenter_HostBindingHandler() {\n return ctx.onMouseEnter();\n })(\"mouseleave\", function LegendEntryComponent_mouseleave_HostBindingHandler() {\n return ctx.onMouseLeave();\n });\n }\n },\n inputs: {\n color: \"color\",\n label: \"label\",\n formattedLabel: \"formattedLabel\",\n isActive: \"isActive\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\",\n toggle: \"toggle\"\n },\n decls: 4,\n vars: 6,\n consts: [[\"tabindex\", \"-1\", 3, \"click\", \"title\"], [1, \"legend-label-color\", 3, \"click\"], [1, \"legend-label-text\"]],\n template: function LegendEntryComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵlistener(\"click\", function LegendEntryComponent_Template_span_click_0_listener() {\n return ctx.select.emit(ctx.formattedLabel);\n });\n i0.ɵɵelementStart(1, \"span\", 1);\n i0.ɵɵlistener(\"click\", function LegendEntryComponent_Template_span_click_1_listener() {\n return ctx.toggle.emit(ctx.formattedLabel);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"span\", 2);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"active\", ctx.isActive);\n i0.ɵɵproperty(\"title\", ctx.formattedLabel);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"background-color\", ctx.color);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx.trimmedLabel, \" \");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n return LegendEntryComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LegendComponent = /*#__PURE__*/(() => {\n class LegendComponent {\n constructor(cd) {\n this.cd = cd;\n this.horizontal = false;\n this.labelClick = new EventEmitter();\n this.labelActivate = new EventEmitter();\n this.labelDeactivate = new EventEmitter();\n this.legendEntries = [];\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.cd.markForCheck();\n this.legendEntries = this.getLegendEntries();\n }\n getLegendEntries() {\n const items = [];\n for (const label of this.data) {\n const formattedLabel = formatLabel(label);\n const idx = items.findIndex(i => {\n return i.label === formattedLabel;\n });\n if (idx === -1) {\n items.push({\n label,\n formattedLabel,\n color: this.colors.getColor(label)\n });\n }\n }\n return items;\n }\n isActive(entry) {\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 activate(item) {\n this.labelActivate.emit(item);\n }\n deactivate(item) {\n this.labelDeactivate.emit(item);\n }\n trackBy(index, item) {\n return item.label;\n }\n }\n LegendComponent.ɵfac = function LegendComponent_Factory(t) {\n return new (t || LegendComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n LegendComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LegendComponent,\n selectors: [[\"ngx-charts-legend\"]],\n inputs: {\n data: \"data\",\n title: \"title\",\n colors: \"colors\",\n height: \"height\",\n width: \"width\",\n activeEntries: \"activeEntries\",\n horizontal: \"horizontal\"\n },\n outputs: {\n labelClick: \"labelClick\",\n labelActivate: \"labelActivate\",\n labelDeactivate: \"labelDeactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 5,\n vars: 9,\n consts: [[\"class\", \"legend-title\", 4, \"ngIf\"], [1, \"legend-wrap\"], [1, \"legend-labels\"], [\"class\", \"legend-label\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"legend-title\"], [1, \"legend-title-text\"], [1, \"legend-label\"], [3, \"select\", \"activate\", \"deactivate\", \"label\", \"formattedLabel\", \"color\", \"isActive\"]],\n template: function LegendComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, LegendComponent_header_1_Template, 3, 1, \"header\", 0);\n i0.ɵɵelementStart(2, \"div\", 1)(3, \"ul\", 2);\n i0.ɵɵtemplate(4, LegendComponent_li_4_Template, 2, 4, \"li\", 3);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"width\", ctx.width, \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.title == null ? null : ctx.title.length) > 0);\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"max-height\", ctx.height - 45, \"px\");\n i0.ɵɵclassProp(\"horizontal-legend\", ctx.horizontal);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.legendEntries)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [LegendEntryComponent, i2.NgIf, i2.NgForOf],\n styles: [\".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return LegendComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ChartComponent = /*#__PURE__*/(() => {\n class ChartComponent {\n constructor() {\n this.showLegend = false;\n this.animations = true;\n this.legendLabelClick = new EventEmitter();\n this.legendLabelActivate = new EventEmitter();\n this.legendLabelDeactivate = new EventEmitter();\n this.LegendPosition = LegendPosition;\n this.LegendType = LegendType;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n let legendColumns = 0;\n if (this.showLegend) {\n this.legendType = this.getLegendType();\n if (!this.legendOptions || this.legendOptions.position === LegendPosition.Right) {\n if (this.legendType === LegendType.ScaleLegend) {\n legendColumns = 1;\n } else {\n legendColumns = 2;\n }\n }\n }\n const chartColumns = 12 - legendColumns;\n this.chartWidth = Math.floor(this.view[0] * chartColumns / 12.0);\n this.legendWidth = !this.legendOptions || this.legendOptions.position === LegendPosition.Right ? Math.floor(this.view[0] * legendColumns / 12.0) : this.chartWidth;\n }\n getLegendType() {\n return this.legendOptions.scaleType === ScaleType.Linear ? LegendType.ScaleLegend : LegendType.Legend;\n }\n }\n ChartComponent.ɵfac = function ChartComponent_Factory(t) {\n return new (t || ChartComponent)();\n };\n ChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ChartComponent,\n selectors: [[\"ngx-charts-chart\"]],\n inputs: {\n view: \"view\",\n showLegend: \"showLegend\",\n legendOptions: \"legendOptions\",\n legendType: \"legendType\",\n activeEntries: \"activeEntries\",\n animations: \"animations\"\n },\n outputs: {\n legendLabelClick: \"legendLabelClick\",\n legendLabelActivate: \"legendLabelActivate\",\n legendLabelDeactivate: \"legendLabelDeactivate\"\n },\n features: [i0.ɵɵProvidersFeature([TooltipService]), i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c2,\n decls: 5,\n vars: 8,\n consts: [[1, \"ngx-charts-outer\"], [1, \"ngx-charts\"], [\"class\", \"chart-legend\", 3, \"horizontal\", \"valueRange\", \"colors\", \"height\", \"width\", 4, \"ngIf\"], [\"class\", \"chart-legend\", 3, \"horizontal\", \"data\", \"title\", \"colors\", \"height\", \"width\", \"activeEntries\", \"labelClick\", \"labelActivate\", \"labelDeactivate\", 4, \"ngIf\"], [1, \"chart-legend\", 3, \"horizontal\", \"valueRange\", \"colors\", \"height\", \"width\"], [1, \"chart-legend\", 3, \"labelClick\", \"labelActivate\", \"labelDeactivate\", \"horizontal\", \"data\", \"title\", \"colors\", \"height\", \"width\", \"activeEntries\"]],\n template: function ChartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, ChartComponent_ngx_charts_scale_legend_3_Template, 1, 5, \"ngx-charts-scale-legend\", 2)(4, ChartComponent_ngx_charts_legend_4_Template, 1, 7, \"ngx-charts-legend\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"width\", ctx.view[0], \"px\")(\"height\", ctx.view[1], \"px\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"width\", ctx.chartWidth)(\"height\", ctx.view[1]);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.showLegend && ctx.legendType === ctx.LegendType.ScaleLegend);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showLegend && ctx.legendType === ctx.LegendType.Legend);\n }\n },\n dependencies: [ScaleLegendComponent, LegendComponent, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return ChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Visibility Observer\n */\nlet VisibilityObserver = /*#__PURE__*/(() => {\n class VisibilityObserver {\n constructor(element, zone) {\n this.element = element;\n this.zone = zone;\n this.visible = new EventEmitter();\n this.isVisible = false;\n this.runCheck();\n }\n destroy() {\n clearTimeout(this.timeout);\n }\n onVisibilityChange() {\n // trigger zone recalc for columns\n this.zone.run(() => {\n this.isVisible = true;\n this.visible.emit(true);\n });\n }\n runCheck() {\n const check = () => {\n if (!this.element) {\n return;\n }\n // https://davidwalsh.name/offsetheight-visibility\n const {\n offsetHeight,\n offsetWidth\n } = this.element.nativeElement;\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 this.zone.runOutsideAngular(() => {\n this.timeout = setTimeout(() => check());\n });\n }\n }\n VisibilityObserver.ɵfac = function VisibilityObserver_Factory(t) {\n return new (t || VisibilityObserver)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n VisibilityObserver.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: VisibilityObserver,\n selectors: [[\"visibility-observer\"]],\n outputs: {\n visible: \"visible\"\n }\n });\n return VisibilityObserver;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction isDate(value) {\n return toString.call(value) === '[object Date]';\n}\nfunction isNumber(value) {\n return typeof value === 'number';\n}\nlet BaseChartComponent = /*#__PURE__*/(() => {\n class BaseChartComponent {\n constructor(chartElement, zone, cd, platformId) {\n this.chartElement = chartElement;\n this.zone = zone;\n this.cd = cd;\n this.platformId = platformId;\n this.scheme = 'cool';\n this.schemeType = ScaleType.Ordinal;\n this.animations = true;\n this.select = new EventEmitter();\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.animations = false;\n }\n }\n ngAfterViewInit() {\n this.bindWindowResizeEvent();\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 ngOnDestroy() {\n this.unbindEvents();\n if (this.visibilityObserver) {\n this.visibilityObserver.visible.unsubscribe();\n this.visibilityObserver.destroy();\n }\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n if (this.results) {\n this.results = this.cloneData(this.results);\n } else {\n this.results = [];\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 // default values if width or height are 0 or undefined\n if (!this.width) {\n this.width = 600;\n }\n if (!this.height) {\n this.height = 400;\n }\n this.width = Math.floor(this.width);\n this.height = Math.floor(this.height);\n if (this.cd) {\n this.cd.markForCheck();\n }\n }\n getContainerDims() {\n let width;\n let height;\n const hostElem = this.chartElement.nativeElement;\n if (isPlatformBrowser(this.platformId) && hostElem.parentNode !== null) {\n // Get the container dimensions\n const dims = hostElem.parentNode.getBoundingClientRect();\n width = dims.width;\n height = dims.height;\n }\n if (width && height) {\n return {\n width,\n height\n };\n }\n return null;\n }\n /**\n * Converts all date objects that appear as name\n * into formatted date strings\n */\n formatDates() {\n for (let i = 0; i < this.results.length; i++) {\n const g = this.results[i];\n g.label = g.name;\n if (isDate(g.label)) {\n g.label = g.label.toLocaleDateString();\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 (isDate(d.label)) {\n d.label = d.label.toLocaleDateString();\n }\n }\n }\n }\n }\n unbindEvents() {\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n bindWindowResizeEvent() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const source = fromEvent(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 * Clones the data into a new object\n *\n * @memberOf BaseChart\n */\n cloneData(data) {\n const results = [];\n for (const item of data) {\n const copy = {};\n if (item['name'] !== undefined) {\n copy['name'] = item['name'];\n }\n if (item['value'] !== undefined) {\n copy['value'] = item['value'];\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 if (item['extra'] !== undefined) {\n copy['extra'] = JSON.parse(JSON.stringify(item['extra']));\n }\n if (item['source'] !== undefined) {\n copy['source'] = item['source'];\n }\n if (item['target'] !== undefined) {\n copy['target'] = item['target'];\n }\n results.push(copy);\n }\n return results;\n }\n }\n BaseChartComponent.ɵfac = function BaseChartComponent_Factory(t) {\n return new (t || BaseChartComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n BaseChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BaseChartComponent,\n selectors: [[\"base-chart\"]],\n inputs: {\n results: \"results\",\n view: \"view\",\n scheme: \"scheme\",\n schemeType: \"schemeType\",\n customColors: \"customColors\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 1,\n vars: 0,\n template: function BaseChartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\");\n }\n },\n encapsulation: 2\n });\n return BaseChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar Orientation = /*#__PURE__*/function (Orientation) {\n Orientation[\"Top\"] = \"top\";\n Orientation[\"Bottom\"] = \"bottom\";\n Orientation[\"Left\"] = \"left\";\n Orientation[\"Right\"] = \"right\";\n return Orientation;\n}(Orientation || {});\nlet AxisLabelComponent = /*#__PURE__*/(() => {\n class AxisLabelComponent {\n constructor(element) {\n this.textHeight = 25;\n this.margin = 5;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.strokeWidth = '0.01';\n this.textAnchor = 'middle';\n this.transform = '';\n switch (this.orient) {\n case Orientation.Top:\n this.y = this.offset;\n this.x = this.width / 2;\n break;\n case Orientation.Bottom:\n this.y = this.offset;\n this.x = this.width / 2;\n break;\n case Orientation.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 Orientation.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 AxisLabelComponent.ɵfac = function AxisLabelComponent_Factory(t) {\n return new (t || AxisLabelComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n AxisLabelComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AxisLabelComponent,\n selectors: [[\"g\", \"ngx-charts-axis-label\", \"\"]],\n inputs: {\n orient: \"orient\",\n label: \"label\",\n offset: \"offset\",\n width: \"width\",\n height: \"height\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c3,\n decls: 2,\n vars: 6,\n template: function AxisLabelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"text\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"stroke-width\", ctx.strokeWidth)(\"x\", ctx.x)(\"y\", ctx.y)(\"text-anchor\", ctx.textAnchor)(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.label, \" \");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n return AxisLabelComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction trimLabel(s, max = 16) {\n if (typeof s !== 'string') {\n if (typeof s === 'number') {\n return s + '';\n } else {\n return '';\n }\n }\n s = s.trim();\n if (s.length <= max) {\n return s;\n } else {\n return `${s.slice(0, max)}...`;\n }\n}\nfunction 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 return ticks;\n}\nfunction getTickLines(label, maxLength, maxLines) {\n const labelString = (label || '').toString();\n let totalLines = [];\n if (/\\s/.test(labelString)) {\n totalLines = labelString.split(/\\s+/).reduce((lines, line) => {\n const last = (lines.pop() || '') + ' ';\n return last.length + line.length > maxLength ? [...lines, last.trim(), line.trim()] : [...lines, last + line];\n }, []);\n } else {\n let startIndex = 0;\n while (startIndex < labelString.length) {\n totalLines.push(labelString.substring(startIndex, startIndex + maxLength));\n startIndex += maxLength;\n }\n }\n if (totalLines.length > maxLines) {\n totalLines = totalLines.splice(0, maxLines);\n totalLines[totalLines.length - 1] += '...';\n }\n return totalLines;\n}\nvar TextAnchor = /*#__PURE__*/function (TextAnchor) {\n TextAnchor[\"Start\"] = \"start\";\n TextAnchor[\"Middle\"] = \"middle\";\n TextAnchor[\"End\"] = \"end\";\n return TextAnchor;\n}(TextAnchor || {});\nlet XAxisTicksComponent = /*#__PURE__*/(() => {\n class XAxisTicksComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.tickArguments = [5];\n this.tickStroke = '#ccc';\n this.trimTicks = true;\n this.maxTickLength = 16;\n this.showGridLines = false;\n this.rotateTicks = true;\n this.wrapTicks = false;\n this.dimensionsChanged = new EventEmitter();\n this.verticalSpacing = 20;\n this.rotateLabels = false;\n this.innerTickSize = 6;\n this.outerTickSize = 6;\n this.tickPadding = 3;\n this.textAnchor = TextAnchor.Middle;\n this.maxTicksLength = 0;\n this.maxAllowedLength = 16;\n this.height = 0;\n this.approxHeight = 10;\n this.maxPossibleLengthForTickIfWrapped = 16;\n }\n get isWrapTicksSupported() {\n return this.wrapTicks && this.scale.step;\n }\n ngOnChanges(changes) {\n this.update();\n }\n ngAfterViewInit() {\n setTimeout(() => this.updateDims());\n }\n updateDims() {\n if (!isPlatformBrowser(this.platformId)) {\n // for SSR, use approximate value instead of measured\n this.dimensionsChanged.emit({\n height: this.approxHeight\n });\n return;\n }\n const height = parseInt(this.ticksElement.nativeElement.getBoundingClientRect().height, 10);\n if (height !== this.height) {\n this.height = height;\n this.dimensionsChanged.emit({\n height: this.height\n });\n setTimeout(() => this.updateDims());\n }\n }\n update() {\n const scale = this.scale;\n this.ticks = this.getTicks();\n if (this.tickFormatting) {\n this.tickFormat = this.tickFormatting;\n } else if (scale.tickFormat) {\n // eslint-disable-next-line prefer-spread\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 const angle = this.rotateTicks ? this.getRotationAngle(this.ticks) : null;\n this.adjustedScale = this.scale.bandwidth ? function (d) {\n return this.scale(d) + this.scale.bandwidth() * 0.5;\n } : this.scale;\n this.textTransform = '';\n if (angle && angle !== 0) {\n this.textTransform = `rotate(${angle})`;\n this.textAnchor = TextAnchor.End;\n this.verticalSpacing = 10;\n } else {\n this.textAnchor = TextAnchor.Middle;\n }\n setTimeout(() => this.updateDims());\n }\n getRotationAngle(ticks) {\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 if (tickLength > this.maxTicksLength) {\n this.maxTicksLength = tickLength;\n }\n }\n const len = Math.min(this.maxTicksLength, this.maxAllowedLength);\n const charWidth = 7; // need to measure this\n const wordWidth = len * charWidth;\n let baseWidth = wordWidth;\n const maxBaseWidth = Math.floor(this.width / ticks.length);\n // calculate optimal angle\n while (baseWidth > maxBaseWidth && angle > -90) {\n angle -= 30;\n baseWidth = Math.cos(angle * (Math.PI / 180)) * wordWidth;\n }\n let labelHeight = 14;\n if (this.isWrapTicksSupported) {\n const longestTick = this.ticks.reduce((earlier, current) => current.length > earlier.length ? current : earlier, '');\n const tickLines = this.tickChunks(longestTick);\n labelHeight = 14 * (tickLines.length || 1);\n this.maxPossibleLengthForTickIfWrapped = this.getMaxPossibleLengthForTick(longestTick);\n }\n const requiredHeight = angle !== 0 ? Math.max(Math.abs(Math.sin(angle * Math.PI / 180)) * this.maxTickLength * charWidth, 10) : labelHeight;\n this.approxHeight = Math.min(requiredHeight, 200);\n return angle;\n }\n getTicks() {\n let ticks;\n const maxTicks = this.getMaxTicks(20);\n const maxScaleTicks = this.getMaxTicks(100);\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 return ticks;\n }\n getMaxTicks(tickWidth) {\n return Math.floor(this.width / tickWidth);\n }\n tickTransform(tick) {\n return 'translate(' + this.adjustedScale(tick) + ',' + this.verticalSpacing + ')';\n }\n gridLineTransform() {\n return `translate(0,${-this.verticalSpacing - 5})`;\n }\n tickTrim(label) {\n return this.trimTicks ? trimLabel(label, this.maxTickLength) : label;\n }\n getMaxPossibleLengthForTick(longestLabel) {\n if (this.scale.bandwidth) {\n const averageCharacterWidth = 7; // approximate char width\n const maxCharacters = Math.floor(this.scale.bandwidth() / averageCharacterWidth);\n const truncatedText = longestLabel.slice(0, maxCharacters);\n return Math.max(truncatedText.length, this.maxTickLength);\n }\n return this.maxTickLength;\n }\n tickChunks(label) {\n if (label.toString().length > this.maxTickLength && this.scale.bandwidth) {\n const maxAllowedLines = 5;\n let maxLines = this.rotateTicks ? Math.floor(this.scale.step() / 14) : maxAllowedLines;\n if (maxLines <= 1) {\n return [this.tickTrim(label)];\n }\n let possibleStringLength = Math.max(this.maxPossibleLengthForTickIfWrapped, this.maxTickLength);\n if (!isPlatformBrowser(this.platformId)) {\n possibleStringLength = Math.floor(Math.min(this.approxHeight / maxAllowedLines, Math.max(this.maxPossibleLengthForTickIfWrapped, this.maxTickLength)));\n }\n maxLines = Math.min(maxLines, maxAllowedLines);\n const lines = getTickLines(label, possibleStringLength, maxLines < 1 ? 1 : maxLines);\n return lines;\n }\n return [this.tickTrim(label)];\n }\n }\n XAxisTicksComponent.ɵfac = function XAxisTicksComponent_Factory(t) {\n return new (t || XAxisTicksComponent)(i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n XAxisTicksComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: XAxisTicksComponent,\n selectors: [[\"g\", \"ngx-charts-x-axis-ticks\", \"\"]],\n viewQuery: function XAxisTicksComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c4, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ticksElement = _t.first);\n }\n },\n inputs: {\n scale: \"scale\",\n orient: \"orient\",\n tickArguments: \"tickArguments\",\n tickValues: \"tickValues\",\n tickStroke: \"tickStroke\",\n trimTicks: \"trimTicks\",\n maxTickLength: \"maxTickLength\",\n tickFormatting: \"tickFormatting\",\n showGridLines: \"showGridLines\",\n gridLineHeight: \"gridLineHeight\",\n width: \"width\",\n rotateTicks: \"rotateTicks\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n dimensionsChanged: \"dimensionsChanged\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c5,\n decls: 4,\n vars: 2,\n consts: [[\"ticksel\", \"\"], [\"tmplMultilineTick\", \"\"], [\"tmplSinglelineTick\", \"\"], [\"class\", \"tick\", 4, \"ngFor\", \"ngForOf\"], [4, \"ngFor\", \"ngForOf\"], [1, \"tick\"], [4, \"ngIf\"], [\"stroke-width\", \"0.01\", \"font-size\", \"12px\"], [4, \"ngIf\", \"ngIfThen\", \"ngIfElse\"], [\"x\", \"0\", 4, \"ngFor\", \"ngForOf\"], [\"x\", \"0\"], [\"y2\", \"0\", 1, \"gridline-path\", \"gridline-path-vertical\"]],\n template: function XAxisTicksComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", null, 0);\n i0.ɵɵtemplate(2, XAxisTicksComponent__svg_g_2_Template, 2, 2, \"g\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, XAxisTicksComponent__svg_g_3_Template, 2, 2, \"g\", 4);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.ticks);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.ticks);\n }\n },\n dependencies: [i2.NgForOf, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return XAxisTicksComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet XAxisComponent = /*#__PURE__*/(() => {\n class XAxisComponent {\n constructor() {\n this.rotateTicks = true;\n this.showGridLines = false;\n this.xOrient = Orientation.Bottom;\n this.xAxisOffset = 0;\n this.wrapTicks = false;\n this.dimensionsChanged = new EventEmitter();\n this.xAxisClassName = 'x axis';\n this.labelOffset = 0;\n this.fill = 'none';\n this.stroke = 'stroke';\n this.tickStroke = '#ccc';\n this.strokeWidth = 'none';\n this.padding = 5;\n this.orientation = Orientation;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.transform = `translate(0,${this.xAxisOffset + this.padding + this.dims.height})`;\n if (typeof this.xAxisTickCount !== 'undefined') {\n this.tickArguments = [this.xAxisTickCount];\n }\n }\n emitTicksHeight({\n height\n }) {\n const newLabelOffset = height + 25 + 5;\n if (newLabelOffset !== this.labelOffset) {\n this.labelOffset = newLabelOffset;\n setTimeout(() => {\n this.dimensionsChanged.emit({\n height\n });\n }, 0);\n }\n }\n }\n XAxisComponent.ɵfac = function XAxisComponent_Factory(t) {\n return new (t || XAxisComponent)();\n };\n XAxisComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: XAxisComponent,\n selectors: [[\"g\", \"ngx-charts-x-axis\", \"\"]],\n viewQuery: function XAxisComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(XAxisTicksComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ticksComponent = _t.first);\n }\n },\n inputs: {\n xScale: \"xScale\",\n dims: \"dims\",\n trimTicks: \"trimTicks\",\n rotateTicks: \"rotateTicks\",\n maxTickLength: \"maxTickLength\",\n tickFormatting: \"tickFormatting\",\n showGridLines: \"showGridLines\",\n showLabel: \"showLabel\",\n labelText: \"labelText\",\n ticks: \"ticks\",\n xAxisTickCount: \"xAxisTickCount\",\n xOrient: \"xOrient\",\n xAxisOffset: \"xAxisOffset\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n dimensionsChanged: \"dimensionsChanged\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c6,\n decls: 3,\n vars: 4,\n consts: [[\"ngx-charts-x-axis-ticks\", \"\", 3, \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"tickArguments\", \"tickStroke\", \"scale\", \"orient\", \"showGridLines\", \"gridLineHeight\", \"width\", \"tickValues\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-axis-label\", \"\", 3, \"label\", \"offset\", \"orient\", \"height\", \"width\", 4, \"ngIf\"], [\"ngx-charts-x-axis-ticks\", \"\", 3, \"dimensionsChanged\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"tickArguments\", \"tickStroke\", \"scale\", \"orient\", \"showGridLines\", \"gridLineHeight\", \"width\", \"tickValues\", \"wrapTicks\"], [\"ngx-charts-axis-label\", \"\", 3, \"label\", \"offset\", \"orient\", \"height\", \"width\"]],\n template: function XAxisComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, XAxisComponent__svg_g_1_Template, 1, 13, \"g\", 0)(2, XAxisComponent__svg_g_2_Template, 1, 5, \"g\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"class\", ctx.xAxisClassName)(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xScale);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showLabel);\n }\n },\n dependencies: [XAxisTicksComponent, AxisLabelComponent, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return XAxisComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generates a rounded rectanglar path\n *\n * @export\n * @param x, y, w, h, r, tl, tr, bl, br\n */\nfunction roundedRect(x, y, w, h, r, [tl, tr, bl, br]) {\n let retval = '';\n w = Math.floor(w);\n h = Math.floor(h);\n w = w === 0 ? 1 : w;\n h = h === 0 ? 1 : h;\n retval = `M${[x + r, y]}`;\n retval += `h${w - 2 * r}`;\n if (tr) {\n retval += `a${[r, r]} 0 0 1 ${[r, r]}`;\n } else {\n retval += `h${r}v${r}`;\n }\n retval += `v${h - 2 * r}`;\n if (br) {\n retval += `a${[r, r]} 0 0 1 ${[-r, r]}`;\n } else {\n retval += `v${r}h${-r}`;\n }\n retval += `h${2 * r - w}`;\n if (bl) {\n retval += `a${[r, r]} 0 0 1 ${[-r, -r]}`;\n } else {\n retval += `h${-r}v${-r}`;\n }\n retval += `v${2 * r - h}`;\n if (tl) {\n retval += `a${[r, r]} 0 0 1 ${[r, -r]}`;\n } else {\n retval += `v${-r}h${r}`;\n }\n retval += `z`;\n return retval;\n}\nlet YAxisTicksComponent = /*#__PURE__*/(() => {\n class YAxisTicksComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.tickArguments = [5];\n this.tickStroke = '#ccc';\n this.trimTicks = true;\n this.maxTickLength = 16;\n this.showGridLines = false;\n this.showRefLabels = false;\n this.showRefLines = false;\n this.wrapTicks = false;\n this.dimensionsChanged = new EventEmitter();\n this.innerTickSize = 6;\n this.tickPadding = 3;\n this.verticalSpacing = 20;\n this.textAnchor = TextAnchor.Middle;\n this.width = 0;\n this.outerTickSize = 6;\n this.rotateLabels = false;\n this.referenceLineLength = 0;\n this.Orientation = Orientation;\n }\n ngOnChanges(changes) {\n this.update();\n }\n ngAfterViewInit() {\n setTimeout(() => this.updateDims());\n }\n updateDims() {\n if (!isPlatformBrowser(this.platformId)) {\n // for SSR, use approximate value instead of measured\n this.width = this.getApproximateAxisWidth();\n this.dimensionsChanged.emit({\n width: this.width\n });\n return;\n }\n const width = parseInt(this.ticksElement.nativeElement.getBoundingClientRect().width, 10);\n if (width !== this.width) {\n this.width = width;\n this.dimensionsChanged.emit({\n width\n });\n setTimeout(() => this.updateDims());\n }\n }\n update() {\n const scale = this.scale;\n const sign = this.orient === Orientation.Top || this.orient === Orientation.Right ? -1 : 1;\n this.tickSpacing = Math.max(this.innerTickSize, 0) + this.tickPadding;\n this.ticks = this.getTicks();\n if (this.tickFormatting) {\n this.tickFormat = this.tickFormatting;\n } else if (scale.tickFormat) {\n // eslint-disable-next-line prefer-spread\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 this.adjustedScale = scale.bandwidth ? d => {\n // position the tick to middle considering number of lines of the tick\n const positionMiddle = scale(d) + scale.bandwidth() * 0.5;\n if (this.wrapTicks && d.toString().length > this.maxTickLength) {\n const chunksLength = this.tickChunks(d).length;\n if (chunksLength === 1) {\n return positionMiddle;\n }\n const bandWidth = scale.bandwidth();\n const heightOfLines = chunksLength * 8;\n const availableFreeSpace = bandWidth * 0.5 - heightOfLines * 0.5;\n return scale(d) + availableFreeSpace;\n }\n return positionMiddle;\n } : scale;\n if (this.showRefLines && this.referenceLines) {\n this.setReferencelines();\n }\n switch (this.orient) {\n case Orientation.Top:\n this.transform = function (tick) {\n return 'translate(' + this.adjustedScale(tick) + ',0)';\n };\n this.textAnchor = 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 Orientation.Bottom:\n this.transform = function (tick) {\n return 'translate(' + this.adjustedScale(tick) + ',0)';\n };\n this.textAnchor = 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 Orientation.Left:\n this.transform = function (tick) {\n return 'translate(0,' + this.adjustedScale(tick) + ')';\n };\n this.textAnchor = TextAnchor.End;\n this.x2 = this.innerTickSize * -sign;\n this.x1 = this.tickSpacing * -sign;\n this.dy = '.32em';\n break;\n case Orientation.Right:\n this.transform = function (tick) {\n return 'translate(0,' + this.adjustedScale(tick) + ')';\n };\n this.textAnchor = 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 setReferencelines() {\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 this.referenceAreaPath = roundedRect(0, this.refMax, this.gridLineWidth, this.refMin - this.refMax, 0, [false, false, false, false]);\n }\n getTicks() {\n let ticks;\n const maxTicks = this.getMaxTicks(20);\n const maxScaleTicks = this.getMaxTicks(50);\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 return ticks;\n }\n getMaxTicks(tickHeight) {\n return Math.floor(this.height / tickHeight);\n }\n tickTransform(tick) {\n return `translate(${this.adjustedScale(tick)},${this.verticalSpacing})`;\n }\n gridLineTransform() {\n return `translate(5,0)`;\n }\n tickTrim(label) {\n return this.trimTicks ? trimLabel(label, this.maxTickLength) : label;\n }\n getApproximateAxisWidth() {\n const maxChars = Math.max(...this.ticks.map(t => this.tickTrim(this.tickFormat(t)).length));\n const charWidth = 7;\n return maxChars * charWidth;\n }\n tickChunks(label) {\n if (label.toString().length > this.maxTickLength && this.scale.bandwidth) {\n // for y-axis the width of the tick is fixed\n const preferredWidth = this.maxTickLength;\n const maxLines = Math.floor(this.scale.bandwidth() / 15);\n if (maxLines <= 1) {\n return [this.tickTrim(label)];\n }\n return getTickLines(label, preferredWidth, Math.min(maxLines, 5));\n }\n return [this.tickFormat(label)];\n }\n }\n YAxisTicksComponent.ɵfac = function YAxisTicksComponent_Factory(t) {\n return new (t || YAxisTicksComponent)(i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n YAxisTicksComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: YAxisTicksComponent,\n selectors: [[\"g\", \"ngx-charts-y-axis-ticks\", \"\"]],\n viewQuery: function YAxisTicksComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c4, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ticksElement = _t.first);\n }\n },\n inputs: {\n scale: \"scale\",\n orient: \"orient\",\n tickArguments: \"tickArguments\",\n tickValues: \"tickValues\",\n tickStroke: \"tickStroke\",\n trimTicks: \"trimTicks\",\n maxTickLength: \"maxTickLength\",\n tickFormatting: \"tickFormatting\",\n showGridLines: \"showGridLines\",\n gridLineWidth: \"gridLineWidth\",\n height: \"height\",\n referenceLines: \"referenceLines\",\n showRefLabels: \"showRefLabels\",\n showRefLines: \"showRefLines\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n dimensionsChanged: \"dimensionsChanged\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c7,\n decls: 6,\n vars: 4,\n consts: [[\"ticksel\", \"\"], [\"tmplMultilineTick\", \"\"], [\"tmplSinglelineTick\", \"\"], [\"class\", \"tick\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"reference-area\", 4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\"], [1, \"tick\"], [4, \"ngIf\"], [\"stroke-width\", \"0.01\"], [4, \"ngIf\", \"ngIfThen\", \"ngIfElse\"], [4, \"ngIf\", \"ngIfElse\"], [\"x\", \"0\", 4, \"ngFor\", \"ngForOf\"], [\"x\", \"0\"], [1, \"reference-area\"], [\"class\", \"gridline-path gridline-path-horizontal\", \"x1\", \"0\", 4, \"ngIf\"], [\"x1\", \"0\", 1, \"gridline-path\", \"gridline-path-horizontal\"], [\"x1\", \"0\", 1, \"refline-path\", \"gridline-path-horizontal\"], [1, \"refline-label\"]],\n template: function YAxisTicksComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", null, 0);\n i0.ɵɵtemplate(2, YAxisTicksComponent__svg_g_2_Template, 2, 2, \"g\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, YAxisTicksComponent__svg_path_3_Template, 1, 2, \"path\", 4)(4, YAxisTicksComponent__svg_g_4_Template, 2, 2, \"g\", 5)(5, YAxisTicksComponent__svg_g_5_Template, 2, 1, \"g\", 5);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.ticks);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.referenceLineLength > 1 && ctx.refMax && ctx.refMin && ctx.showRefLines);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.ticks);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.referenceLines);\n }\n },\n dependencies: [i2.NgForOf, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return YAxisTicksComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet YAxisComponent = /*#__PURE__*/(() => {\n class YAxisComponent {\n constructor() {\n this.showGridLines = false;\n this.yOrient = Orientation.Left;\n this.yAxisOffset = 0;\n this.wrapTicks = false;\n this.dimensionsChanged = new EventEmitter();\n this.yAxisClassName = 'y axis';\n this.labelOffset = 15;\n this.fill = 'none';\n this.stroke = '#CCC';\n this.tickStroke = '#CCC';\n this.strokeWidth = 1;\n this.padding = 5;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.offset = -(this.yAxisOffset + this.padding);\n if (this.yOrient === Orientation.Right) {\n this.labelOffset = 65;\n this.transform = `translate(${this.offset + this.dims.width} , 0)`;\n } else {\n this.transform = `translate(${this.offset} , 0)`;\n }\n if (this.yAxisTickCount !== undefined) {\n this.tickArguments = [this.yAxisTickCount];\n }\n }\n emitTicksWidth({\n width\n }) {\n if (width !== this.labelOffset && this.yOrient === Orientation.Right) {\n this.labelOffset = width + this.labelOffset;\n setTimeout(() => {\n this.dimensionsChanged.emit({\n width\n });\n }, 0);\n } else if (width !== this.labelOffset) {\n this.labelOffset = width;\n setTimeout(() => {\n this.dimensionsChanged.emit({\n width\n });\n }, 0);\n }\n }\n }\n YAxisComponent.ɵfac = function YAxisComponent_Factory(t) {\n return new (t || YAxisComponent)();\n };\n YAxisComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: YAxisComponent,\n selectors: [[\"g\", \"ngx-charts-y-axis\", \"\"]],\n viewQuery: function YAxisComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(YAxisTicksComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ticksComponent = _t.first);\n }\n },\n inputs: {\n yScale: \"yScale\",\n dims: \"dims\",\n trimTicks: \"trimTicks\",\n maxTickLength: \"maxTickLength\",\n tickFormatting: \"tickFormatting\",\n ticks: \"ticks\",\n showGridLines: \"showGridLines\",\n showLabel: \"showLabel\",\n labelText: \"labelText\",\n yAxisTickCount: \"yAxisTickCount\",\n yOrient: \"yOrient\",\n referenceLines: \"referenceLines\",\n showRefLines: \"showRefLines\",\n showRefLabels: \"showRefLabels\",\n yAxisOffset: \"yAxisOffset\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n dimensionsChanged: \"dimensionsChanged\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c8,\n decls: 3,\n vars: 4,\n consts: [[\"ngx-charts-y-axis-ticks\", \"\", 3, \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"tickArguments\", \"tickValues\", \"tickStroke\", \"scale\", \"orient\", \"showGridLines\", \"gridLineWidth\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"height\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-axis-label\", \"\", 3, \"label\", \"offset\", \"orient\", \"height\", \"width\", 4, \"ngIf\"], [\"ngx-charts-y-axis-ticks\", \"\", 3, \"dimensionsChanged\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"tickArguments\", \"tickValues\", \"tickStroke\", \"scale\", \"orient\", \"showGridLines\", \"gridLineWidth\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"height\", \"wrapTicks\"], [\"ngx-charts-axis-label\", \"\", 3, \"label\", \"offset\", \"orient\", \"height\", \"width\"]],\n template: function YAxisComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, YAxisComponent__svg_g_1_Template, 1, 15, \"g\", 0)(2, YAxisComponent__svg_g_2_Template, 1, 5, \"g\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"class\", ctx.yAxisClassName)(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yScale);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showLabel);\n }\n },\n dependencies: [YAxisTicksComponent, AxisLabelComponent, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return YAxisComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AxesModule = /*#__PURE__*/(() => {\n class AxesModule {}\n AxesModule.ɵfac = function AxesModule_Factory(t) {\n return new (t || AxesModule)();\n };\n AxesModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: AxesModule\n });\n AxesModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule]]\n });\n return AxesModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar StyleTypes = /*#__PURE__*/function (StyleTypes) {\n StyleTypes[\"popover\"] = \"popover\";\n StyleTypes[\"tooltip\"] = \"tooltip\";\n return StyleTypes;\n}(StyleTypes || {});\nvar ShowTypes = /*#__PURE__*/function (ShowTypes) {\n ShowTypes[ShowTypes[\"all\"] = 'all'] = \"all\";\n ShowTypes[ShowTypes[\"focus\"] = 'focus'] = \"focus\";\n ShowTypes[ShowTypes[\"mouseover\"] = 'mouseover'] = \"mouseover\";\n return ShowTypes;\n}(ShowTypes || {});\nlet TooltipDirective = /*#__PURE__*/(() => {\n class TooltipDirective {\n constructor(tooltipService, viewContainerRef, renderer) {\n this.tooltipService = tooltipService;\n this.viewContainerRef = viewContainerRef;\n this.renderer = renderer;\n this.tooltipCssClass = '';\n this.tooltipAppendToBody = true;\n this.tooltipSpacing = 10;\n this.tooltipDisabled = false;\n this.tooltipShowCaret = true;\n this.tooltipPlacement = PlacementTypes.Top;\n this.tooltipAlignment = PlacementTypes.Center;\n this.tooltipType = StyleTypes.popover;\n this.tooltipCloseOnClickOutside = true;\n this.tooltipCloseOnMouseLeave = true;\n this.tooltipHideTimeout = 300;\n this.tooltipShowTimeout = 100;\n this.tooltipShowEvent = ShowTypes.all;\n this.tooltipImmediateExit = false;\n this.show = new EventEmitter();\n this.hide = new EventEmitter();\n }\n get listensForFocus() {\n return this.tooltipShowEvent === ShowTypes.all || this.tooltipShowEvent === ShowTypes.focus;\n }\n get listensForHover() {\n return this.tooltipShowEvent === ShowTypes.all || this.tooltipShowEvent === ShowTypes.mouseover;\n }\n ngOnDestroy() {\n this.hideTooltip(true);\n }\n onFocus() {\n if (this.listensForFocus) {\n this.showTooltip();\n }\n }\n onBlur() {\n if (this.listensForFocus) {\n this.hideTooltip(true);\n }\n }\n onMouseEnter() {\n if (this.listensForHover) {\n this.showTooltip();\n }\n }\n onMouseLeave(target) {\n if (this.listensForHover && this.tooltipCloseOnMouseLeave) {\n clearTimeout(this.timeout);\n if (this.component) {\n const contentDom = this.component.instance.element.nativeElement;\n const contains = contentDom.contains(target);\n if (contains) return;\n }\n this.hideTooltip(this.tooltipImmediateExit);\n }\n }\n onMouseClick() {\n if (this.listensForHover) {\n this.hideTooltip(true);\n }\n }\n showTooltip(immediate) {\n if (this.component || this.tooltipDisabled) return;\n const time = immediate ? 0 : this.tooltipShowTimeout + (navigator.userAgent.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/) ? 400 : 0);\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.tooltipService.destroyAll();\n const options = this.createBoundOptions();\n this.component = this.tooltipService.create(options);\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 this.show.emit(true);\n }, time);\n }\n addHideListeners(tooltip) {\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 // content mouse leave listener\n if (this.tooltipCloseOnMouseLeave) {\n this.mouseLeaveContentEvent = this.renderer.listen(tooltip, 'mouseleave', () => {\n this.hideTooltip(this.tooltipImmediateExit);\n });\n }\n // content close on click outside\n if (this.tooltipCloseOnClickOutside) {\n this.documentClickEvent = this.renderer.listen('window', 'click', event => {\n const contains = tooltip.contains(event.target);\n if (!contains) this.hideTooltip();\n });\n }\n }\n hideTooltip(immediate = false) {\n if (!this.component) return;\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 // emit events\n this.hide.emit(true);\n // destroy component\n this.tooltipService.destroy(this.component);\n this.component = undefined;\n };\n clearTimeout(this.timeout);\n if (!immediate) {\n this.timeout = setTimeout(destroyFn, this.tooltipHideTimeout);\n } else {\n destroyFn();\n }\n }\n createBoundOptions() {\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 TooltipDirective.ɵfac = function TooltipDirective_Factory(t) {\n return new (t || TooltipDirective)(i0.ɵɵdirectiveInject(TooltipService), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n TooltipDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TooltipDirective,\n selectors: [[\"\", \"ngx-tooltip\", \"\"]],\n hostBindings: function TooltipDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focusin\", function TooltipDirective_focusin_HostBindingHandler() {\n return ctx.onFocus();\n })(\"blur\", function TooltipDirective_blur_HostBindingHandler() {\n return ctx.onBlur();\n })(\"mouseenter\", function TooltipDirective_mouseenter_HostBindingHandler() {\n return ctx.onMouseEnter();\n })(\"mouseleave\", function TooltipDirective_mouseleave_HostBindingHandler($event) {\n return ctx.onMouseLeave($event.target);\n })(\"click\", function TooltipDirective_click_HostBindingHandler() {\n return ctx.onMouseClick();\n });\n }\n },\n inputs: {\n tooltipCssClass: \"tooltipCssClass\",\n tooltipTitle: \"tooltipTitle\",\n tooltipAppendToBody: \"tooltipAppendToBody\",\n tooltipSpacing: \"tooltipSpacing\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipShowCaret: \"tooltipShowCaret\",\n tooltipPlacement: \"tooltipPlacement\",\n tooltipAlignment: \"tooltipAlignment\",\n tooltipType: \"tooltipType\",\n tooltipCloseOnClickOutside: \"tooltipCloseOnClickOutside\",\n tooltipCloseOnMouseLeave: \"tooltipCloseOnMouseLeave\",\n tooltipHideTimeout: \"tooltipHideTimeout\",\n tooltipShowTimeout: \"tooltipShowTimeout\",\n tooltipTemplate: \"tooltipTemplate\",\n tooltipShowEvent: \"tooltipShowEvent\",\n tooltipContext: \"tooltipContext\",\n tooltipImmediateExit: \"tooltipImmediateExit\"\n },\n outputs: {\n show: \"show\",\n hide: \"hide\"\n }\n });\n return TooltipDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TooltipModule = /*#__PURE__*/(() => {\n class TooltipModule {}\n TooltipModule.ɵfac = function TooltipModule_Factory(t) {\n return new (t || TooltipModule)();\n };\n TooltipModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TooltipModule\n });\n TooltipModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [InjectionService, TooltipService],\n imports: [[CommonModule]]\n });\n return TooltipModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst cache = {};\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 */\nfunction id() {\n let newId = ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);\n // append a 'a' because neo gets mad\n newId = `a${newId}`;\n // ensure not already used\n if (!cache[newId]) {\n cache[newId] = true;\n return newId;\n }\n return id();\n}\nvar BarOrientation = /*#__PURE__*/function (BarOrientation) {\n BarOrientation[\"Vertical\"] = \"vertical\";\n BarOrientation[\"Horizontal\"] = \"horizontal\";\n return BarOrientation;\n}(BarOrientation || {});\nlet SvgLinearGradientComponent = /*#__PURE__*/(() => {\n class SvgLinearGradientComponent {\n constructor() {\n this.orientation = BarOrientation.Vertical;\n }\n ngOnChanges(changes) {\n this.x1 = '0%';\n this.x2 = '0%';\n this.y1 = '0%';\n this.y2 = '0%';\n if (this.orientation === BarOrientation.Horizontal) {\n this.x2 = '100%';\n } else if (this.orientation === BarOrientation.Vertical) {\n this.y1 = '100%';\n }\n }\n }\n SvgLinearGradientComponent.ɵfac = function SvgLinearGradientComponent_Factory(t) {\n return new (t || SvgLinearGradientComponent)();\n };\n SvgLinearGradientComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SvgLinearGradientComponent,\n selectors: [[\"g\", \"ngx-charts-svg-linear-gradient\", \"\"]],\n inputs: {\n orientation: \"orientation\",\n name: \"name\",\n stops: \"stops\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c9,\n decls: 2,\n vars: 6,\n consts: [[3, \"id\"], [3, \"stop-color\", \"stop-opacity\", 4, \"ngFor\", \"ngForOf\"]],\n template: function SvgLinearGradientComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"linearGradient\", 0);\n i0.ɵɵtemplate(1, SvgLinearGradientComponent__svg_stop_1_Template, 1, 5, \"stop\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"id\", ctx.name);\n i0.ɵɵattribute(\"x1\", ctx.x1)(\"y1\", ctx.y1)(\"x2\", ctx.x2)(\"y2\", ctx.y2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.stops);\n }\n },\n dependencies: [i2.NgForOf],\n encapsulation: 2,\n changeDetection: 0\n });\n return SvgLinearGradientComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CircleComponent = /*#__PURE__*/(() => {\n class CircleComponent {\n constructor() {\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n }\n onClick() {\n this.select.emit(this.data);\n }\n onMouseEnter() {\n this.activate.emit(this.data);\n }\n onMouseLeave() {\n this.deactivate.emit(this.data);\n }\n ngOnChanges(changes) {\n this.classNames = Array.isArray(this.classNames) ? this.classNames.join(' ') : '';\n this.classNames += 'circle';\n }\n }\n CircleComponent.ɵfac = function CircleComponent_Factory(t) {\n return new (t || CircleComponent)();\n };\n CircleComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CircleComponent,\n selectors: [[\"g\", \"ngx-charts-circle\", \"\"]],\n hostBindings: function CircleComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function CircleComponent_click_HostBindingHandler() {\n return ctx.onClick();\n })(\"mouseenter\", function CircleComponent_mouseenter_HostBindingHandler() {\n return ctx.onMouseEnter();\n })(\"mouseleave\", function CircleComponent_mouseleave_HostBindingHandler() {\n return ctx.onMouseLeave();\n });\n }\n },\n inputs: {\n cx: \"cx\",\n cy: \"cy\",\n r: \"r\",\n fill: \"fill\",\n stroke: \"stroke\",\n data: \"data\",\n classNames: \"classNames\",\n circleOpacity: \"circleOpacity\",\n pointerEvents: \"pointerEvents\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c10,\n decls: 1,\n vars: 8,\n template: function CircleComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"circle\");\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"cx\", ctx.cx)(\"cy\", ctx.cy)(\"r\", ctx.r)(\"fill\", ctx.fill)(\"stroke\", ctx.stroke)(\"opacity\", ctx.circleOpacity)(\"class\", ctx.classNames)(\"pointer-events\", ctx.pointerEvents);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n return CircleComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar SeriesType = /*#__PURE__*/function (SeriesType) {\n SeriesType[\"Standard\"] = \"standard\";\n SeriesType[\"Stacked\"] = \"stacked\";\n return SeriesType;\n}(SeriesType || {});\nlet CircleSeriesComponent = /*#__PURE__*/(() => {\n class CircleSeriesComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.type = SeriesType.Standard;\n this.tooltipDisabled = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.barVisible = false;\n this.barOrientation = BarOrientation;\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n this.isSSR = false;\n }\n ngOnInit() {\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n ngOnChanges() {\n this.update();\n }\n update() {\n this.circle = this.getActiveCircle();\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 if (indexActiveDataPoint === -1) {\n // No valid point is 'active/hovered over' at this moment.\n return undefined;\n }\n return this.mapDataPointToCircle(this.data.series[indexActiveDataPoint], indexActiveDataPoint);\n }\n mapDataPointToCircle(d, i) {\n const seriesName = this.data.name;\n const value = d.value;\n const label = d.name;\n const tooltipLabel = formatLabel(label);\n let cx;\n if (this.scaleType === ScaleType.Time) {\n cx = this.xScale(label);\n } else if (this.scaleType === ScaleType.Linear) {\n cx = this.xScale(Number(label));\n } else {\n cx = this.xScale(label);\n }\n const cy = this.yScale(this.type === SeriesType.Standard ? value : d.d1);\n const radius = 5;\n const height = this.yScale.range()[0] - cy;\n const opacity = 1;\n let color;\n if (this.colors.scaleType === ScaleType.Linear) {\n if (this.type === SeriesType.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 const data = Object.assign({}, d, {\n series: seriesName,\n value,\n name: label\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 getTooltipText({\n tooltipLabel,\n value,\n seriesName,\n min,\n max\n }) {\n return `\n ${escapeLabel(seriesName)} • ${escapeLabel(tooltipLabel)}\n ${value.toLocaleString()}${this.getTooltipMinMaxText(min, max)}\n `;\n }\n getTooltipMinMaxText(min, max) {\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 getGradientStops(color) {\n return [{\n offset: 0,\n color,\n opacity: 0.2\n }, {\n offset: 100,\n color,\n opacity: 1\n }];\n }\n onClick(data) {\n this.select.emit(data);\n }\n isActive(entry) {\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 activateCircle() {\n this.barVisible = true;\n this.activate.emit({\n name: this.data.name\n });\n }\n deactivateCircle() {\n this.barVisible = false;\n this.circle.opacity = 0;\n this.deactivate.emit({\n name: this.data.name\n });\n }\n }\n CircleSeriesComponent.ɵfac = function CircleSeriesComponent_Factory(t) {\n return new (t || CircleSeriesComponent)(i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n CircleSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CircleSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-circle-series\", \"\"]],\n inputs: {\n data: \"data\",\n type: \"type\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n colors: \"colors\",\n scaleType: \"scaleType\",\n visibleValue: \"visibleValue\",\n activeEntries: \"activeEntries\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipTemplate: \"tooltipTemplate\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c11,\n decls: 1,\n vars: 1,\n consts: [[4, \"ngIf\"], [\"ngx-charts-svg-linear-gradient\", \"\", 3, \"orientation\", \"name\", \"stops\"], [\"class\", \"tooltip-bar\", 4, \"ngIf\"], [\"ngx-charts-circle\", \"\", \"ngx-tooltip\", \"\", 1, \"circle\", 3, \"select\", \"activate\", \"deactivate\", \"cx\", \"cy\", \"r\", \"fill\", \"pointerEvents\", \"data\", \"classNames\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"], [1, \"tooltip-bar\"]],\n template: function CircleSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, CircleSeriesComponent__svg_g_0_Template, 6, 22, \"g\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.circle);\n }\n },\n dependencies: [SvgLinearGradientComponent, CircleComponent, i2.NgIf, TooltipDirective],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':enter', [style({\n opacity: 0\n }), animate(250, style({\n opacity: 1\n }))])])]\n },\n changeDetection: 0\n });\n return CircleSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridPanelComponent = /*#__PURE__*/(() => {\n class GridPanelComponent {}\n GridPanelComponent.ɵfac = function GridPanelComponent_Factory(t) {\n return new (t || GridPanelComponent)();\n };\n GridPanelComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GridPanelComponent,\n selectors: [[\"g\", \"ngx-charts-grid-panel\", \"\"]],\n inputs: {\n width: \"width\",\n height: \"height\",\n x: \"x\",\n y: \"y\"\n },\n attrs: _c13,\n decls: 1,\n vars: 4,\n consts: [[\"stroke\", \"none\", 1, \"gridpanel\"]],\n template: function GridPanelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"rect\", 0);\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"height\", ctx.height)(\"width\", ctx.width)(\"x\", ctx.x)(\"y\", ctx.y);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n return GridPanelComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar ClassEnum = /*#__PURE__*/function (ClassEnum) {\n ClassEnum[\"Odd\"] = \"odd\";\n ClassEnum[\"Even\"] = \"even\";\n return ClassEnum;\n}(ClassEnum || {});\nlet GridPanelSeriesComponent = /*#__PURE__*/(() => {\n class GridPanelSeriesComponent {\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.gridPanels = this.getGridPanels();\n }\n getGridPanels() {\n return this.data.map(d => {\n let offset;\n let width;\n let height;\n let x;\n let y;\n let className = ClassEnum.Odd;\n if (this.orient === BarOrientation.Vertical) {\n const position = this.xScale(d.name);\n const positionIndex = Number.parseInt((position / this.xScale.step()).toString(), 10);\n if (positionIndex % 2 === 1) {\n className = ClassEnum.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 === BarOrientation.Horizontal) {\n const position = this.yScale(d.name);\n const positionIndex = Number.parseInt((position / this.yScale.step()).toString(), 10);\n if (positionIndex % 2 === 1) {\n className = ClassEnum.Even;\n }\n offset = this.yScale.bandwidth() * this.yScale.paddingInner();\n width = this.dims.width;\n height = this.yScale.bandwidth() + offset;\n x = 0;\n y = this.yScale(d.name) - offset / 2;\n }\n return {\n name: d.name,\n class: className,\n height,\n width,\n x,\n y\n };\n });\n }\n }\n GridPanelSeriesComponent.ɵfac = function GridPanelSeriesComponent_Factory(t) {\n return new (t || GridPanelSeriesComponent)();\n };\n GridPanelSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GridPanelSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-grid-panel-series\", \"\"]],\n inputs: {\n data: \"data\",\n dims: \"dims\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n orient: \"orient\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c14,\n decls: 1,\n vars: 1,\n consts: [[\"ngx-charts-grid-panel\", \"\", 3, \"height\", \"width\", \"x\", \"y\", \"grid-panel\", \"odd\", \"even\", 4, \"ngFor\", \"ngForOf\"], [\"ngx-charts-grid-panel\", \"\", 3, \"height\", \"width\", \"x\", \"y\"]],\n template: function GridPanelSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, GridPanelSeriesComponent__svg_g_0_Template, 1, 10, \"g\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.gridPanels);\n }\n },\n dependencies: [GridPanelComponent, i2.NgForOf],\n encapsulation: 2,\n changeDetection: 0\n });\n return GridPanelSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SvgRadialGradientComponent = /*#__PURE__*/(() => {\n class SvgRadialGradientComponent {\n constructor() {\n this.endOpacity = 1;\n this.cx = 0;\n this.cy = 0;\n }\n get stops() {\n return this.stopsInput || this.stopsDefault;\n }\n set stops(value) {\n this.stopsInput = value;\n }\n ngOnChanges(changes) {\n this.r = '30%';\n if ('color' in changes || 'startOpacity' in changes || '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 SvgRadialGradientComponent.ɵfac = function SvgRadialGradientComponent_Factory(t) {\n return new (t || SvgRadialGradientComponent)();\n };\n SvgRadialGradientComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SvgRadialGradientComponent,\n selectors: [[\"g\", \"ngx-charts-svg-radial-gradient\", \"\"]],\n inputs: {\n color: \"color\",\n name: \"name\",\n startOpacity: \"startOpacity\",\n endOpacity: \"endOpacity\",\n cx: \"cx\",\n cy: \"cy\",\n stops: \"stops\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c15,\n decls: 2,\n vars: 5,\n consts: [[\"gradientUnits\", \"userSpaceOnUse\", 3, \"id\"], [3, \"stop-color\", \"stop-opacity\", 4, \"ngFor\", \"ngForOf\"]],\n template: function SvgRadialGradientComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"radialGradient\", 0);\n i0.ɵɵtemplate(1, SvgRadialGradientComponent__svg_stop_1_Template, 1, 5, \"stop\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"id\", ctx.name);\n i0.ɵɵattribute(\"cx\", ctx.cx)(\"cy\", ctx.cy)(\"r\", ctx.r);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.stops);\n }\n },\n dependencies: [i2.NgForOf],\n encapsulation: 2,\n changeDetection: 0\n });\n return SvgRadialGradientComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AreaComponent = /*#__PURE__*/(() => {\n class AreaComponent {\n constructor(element) {\n this.opacity = 1;\n this.startOpacity = 0.5;\n this.endOpacity = 1;\n this.gradient = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.animationsLoaded = false;\n this.hasGradient = false;\n this.barOrientation = BarOrientation;\n this.element = element.nativeElement;\n }\n ngOnChanges() {\n this.update();\n if (!this.animationsLoaded) {\n this.loadAnimation();\n this.animationsLoaded = true;\n }\n }\n update() {\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n if (this.gradient || this.stops) {\n this.gradientStops = this.getGradient();\n this.hasGradient = true;\n } else {\n this.hasGradient = false;\n }\n this.updatePathEl();\n }\n loadAnimation() {\n this.areaPath = this.startingPath;\n setTimeout(this.updatePathEl.bind(this), 100);\n }\n updatePathEl() {\n const node = select(this.element).select('.area');\n if (this.animations) {\n node.transition().duration(750).attr('d', this.path);\n } else {\n node.attr('d', this.path);\n }\n }\n getGradient() {\n if (this.stops) {\n return this.stops;\n }\n return [{\n offset: 0,\n color: this.fill,\n opacity: this.startOpacity\n }, {\n offset: 100,\n color: this.fill,\n opacity: this.endOpacity\n }];\n }\n }\n AreaComponent.ɵfac = function AreaComponent_Factory(t) {\n return new (t || AreaComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n AreaComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AreaComponent,\n selectors: [[\"g\", \"ngx-charts-area\", \"\"]],\n inputs: {\n data: \"data\",\n path: \"path\",\n startingPath: \"startingPath\",\n fill: \"fill\",\n opacity: \"opacity\",\n startOpacity: \"startOpacity\",\n endOpacity: \"endOpacity\",\n gradient: \"gradient\",\n stops: \"stops\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c16,\n decls: 2,\n vars: 5,\n consts: [[4, \"ngIf\"], [1, \"area\"], [\"ngx-charts-svg-linear-gradient\", \"\", 3, \"orientation\", \"name\", \"stops\"]],\n template: function AreaComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, AreaComponent__svg_defs_0_Template, 2, 3, \"defs\", 0);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(1, \"path\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.gradient);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"opacity\", ctx.opacity);\n i0.ɵɵattribute(\"d\", ctx.areaPath)(\"fill\", ctx.gradient ? ctx.gradientFill : ctx.fill);\n }\n },\n dependencies: [SvgLinearGradientComponent, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return AreaComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// 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 * Counts from a number to the end incrementally.\n */\nfunction 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 function runCount(timestamp) {\n let frameVal;\n const progress = timestamp - startTime;\n if (countDown) {\n frameVal = startVal - easeOutExpo(progress, 0, startVal - endVal, duration);\n } else {\n frameVal = easeOutExpo(progress, startVal, endVal - startVal, duration);\n }\n if (countDown) {\n frameVal = frameVal < endVal ? endVal : frameVal;\n } else {\n frameVal = frameVal > endVal ? endVal : frameVal;\n }\n frameVal = Math.round(frameVal * dec) / dec;\n const tick = progress < duration;\n callback({\n value: frameVal,\n progress,\n timestamp,\n finished: !tick\n });\n if (tick) {\n return requestAnimationFrame(val => runCount(val));\n }\n }\n return requestAnimationFrame(timestamp => {\n startTime = timestamp;\n return runCount(timestamp);\n });\n}\n/**\n * Determine decimals places\n *\n * @export\n */\nfunction decimalChecker(countTo) {\n const endVal = Number(countTo);\n if (endVal % 1 !== 0 && Math.abs(endVal) <= 10) {\n return 2;\n }\n return 0;\n}\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 */\nlet CountUpDirective = /*#__PURE__*/(() => {\n class CountUpDirective {\n constructor(cd, element) {\n this.cd = cd;\n this.countDuration = 1;\n this.countPrefix = '';\n this.countSuffix = '';\n this.countChange = new EventEmitter();\n this.countFinish = new EventEmitter();\n this.value = '';\n this._countDecimals = 0;\n this._countTo = 0;\n this._countFrom = 0;\n this.nativeElement = element.nativeElement;\n }\n set countDecimals(val) {\n this._countDecimals = val;\n }\n get countDecimals() {\n if (this._countDecimals) return this._countDecimals;\n return decimalChecker(this.countTo);\n }\n set countTo(val) {\n this._countTo = parseFloat(val);\n this.start();\n }\n get countTo() {\n return this._countTo;\n }\n set countFrom(val) {\n this._countFrom = parseFloat(val);\n this.start();\n }\n get countFrom() {\n return this._countFrom;\n }\n ngOnDestroy() {\n cancelAnimationFrame(this.animationReq);\n }\n start() {\n cancelAnimationFrame(this.animationReq);\n const valueFormatting = this.valueFormatting || (value => `${this.countPrefix}${value.toLocaleString()}${this.countSuffix}`);\n const callback = ({\n value,\n progress,\n finished\n }) => {\n this.value = valueFormatting(value);\n this.cd.markForCheck();\n if (!finished) this.countChange.emit({\n value: this.value,\n progress\n });\n if (finished) this.countFinish.emit({\n value: this.value,\n progress\n });\n };\n this.animationReq = count(this.countFrom, this.countTo, this.countDecimals, this.countDuration, callback);\n }\n }\n CountUpDirective.ɵfac = function CountUpDirective_Factory(t) {\n return new (t || CountUpDirective)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n CountUpDirective.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CountUpDirective,\n selectors: [[\"\", \"ngx-charts-count-up\", \"\"]],\n inputs: {\n countDuration: \"countDuration\",\n countPrefix: \"countPrefix\",\n countSuffix: \"countSuffix\",\n valueFormatting: \"valueFormatting\",\n countDecimals: \"countDecimals\",\n countTo: \"countTo\",\n countFrom: \"countFrom\"\n },\n outputs: {\n countChange: \"countChange\",\n countFinish: \"countFinish\"\n },\n attrs: _c17,\n decls: 1,\n vars: 1,\n template: function CountUpDirective_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n i0.ɵɵtextInterpolate1(\" \", ctx.value, \" \");\n }\n },\n encapsulation: 2\n });\n return CountUpDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\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;\nif (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n}\n// tslint:disable-next-line:variable-name\nconst MouseEvent = root.MouseEvent;\nfunction createMouseEvent(name, bubbles = false, cancelable = true) {\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, {\n bubbles,\n cancelable\n });\n } else {\n // IE\n const event = document.createEvent('MouseEvent');\n event.initEvent(name, bubbles, cancelable);\n return event;\n }\n}\nlet TooltipArea = /*#__PURE__*/(() => {\n class TooltipArea {\n constructor(platformId) {\n this.platformId = platformId;\n this.anchorOpacity = 0;\n this.anchorPos = -1;\n this.anchorValues = [];\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n this.showPercentage = false;\n this.tooltipDisabled = false;\n this.hover = new EventEmitter();\n }\n getValues(xVal) {\n const results = [];\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 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 === 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 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 results.push(data);\n }\n }\n return results;\n }\n mouseMove(event) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const xPos = event.pageX - event.target.getBoundingClientRect().left;\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 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 this.lastAnchorPos = this.anchorPos;\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 while (minIndex <= maxIndex) {\n const currentIndex = (minIndex + maxIndex) / 2 | 0;\n const currentElement = this.xScale(this.xSet[currentIndex]);\n const curDiff = Math.abs(currentElement - xPos);\n if (curDiff < minDiff) {\n minDiff = curDiff;\n closestIndex = currentIndex;\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 return closestIndex;\n }\n showTooltip() {\n const event = createMouseEvent('mouseenter');\n this.tooltipAnchor.nativeElement.dispatchEvent(event);\n }\n hideTooltip() {\n const event = createMouseEvent('mouseleave');\n this.tooltipAnchor.nativeElement.dispatchEvent(event);\n this.anchorOpacity = 0;\n this.lastAnchorPos = -1;\n }\n getToolTipText(tooltipItem) {\n let result = '';\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 TooltipArea.ɵfac = function TooltipArea_Factory(t) {\n return new (t || TooltipArea)(i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n TooltipArea.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TooltipArea,\n selectors: [[\"g\", \"ngx-charts-tooltip-area\", \"\"]],\n viewQuery: function TooltipArea_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c18, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipAnchor = _t.first);\n }\n },\n inputs: {\n dims: \"dims\",\n xSet: \"xSet\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n results: \"results\",\n colors: \"colors\",\n showPercentage: \"showPercentage\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipTemplate: \"tooltipTemplate\"\n },\n outputs: {\n hover: \"hover\"\n },\n attrs: _c19,\n decls: 6,\n vars: 18,\n consts: [[\"defaultTooltipTemplate\", \"\"], [\"tooltipAnchor\", \"\"], [\"y\", \"0\", 1, \"tooltip-area\", 2, \"opacity\", \"0\", \"cursor\", \"'auto'\", 3, \"mousemove\", \"mouseleave\"], [\"y\", \"0\", \"ngx-tooltip\", \"\", 1, \"tooltip-anchor\", 3, \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipSpacing\", \"tooltipTemplate\", \"tooltipContext\", \"tooltipImmediateExit\"], [1, \"area-tooltip-container\"], [\"class\", \"tooltip-item\", 4, \"ngFor\", \"ngForOf\"], [1, \"tooltip-item\"], [1, \"tooltip-item-color\"]],\n template: function TooltipArea_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"rect\", 2);\n i0.ɵɵlistener(\"mousemove\", function TooltipArea_Template_rect_mousemove_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.mouseMove($event));\n })(\"mouseleave\", function TooltipArea_Template_rect_mouseleave_1_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.hideTooltip());\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, TooltipArea__svg_ng_template_2_Template, 2, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelement(4, \"rect\", 3, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const defaultTooltipTemplate_r5 = i0.ɵɵreference(3);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"x\", 0)(\"width\", ctx.dims.width)(\"height\", ctx.dims.height);\n i0.ɵɵadvance(3);\n i0.ɵɵstyleProp(\"opacity\", ctx.anchorOpacity)(\"pointer-events\", \"none\");\n i0.ɵɵproperty(\"@animationState\", ctx.anchorOpacity !== 0 ? \"active\" : \"inactive\")(\"tooltipDisabled\", ctx.tooltipDisabled)(\"tooltipPlacement\", ctx.placementTypes.Right)(\"tooltipType\", ctx.styleTypes.tooltip)(\"tooltipSpacing\", 15)(\"tooltipTemplate\", ctx.tooltipTemplate ? ctx.tooltipTemplate : defaultTooltipTemplate_r5)(\"tooltipContext\", ctx.anchorValues)(\"tooltipImmediateExit\", true);\n i0.ɵɵattribute(\"x\", ctx.anchorPos)(\"width\", 1)(\"height\", ctx.dims.height);\n }\n },\n dependencies: [i2.NgForOf, TooltipDirective],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition('inactive => active', [style({\n opacity: 0\n }), animate(250, style({\n opacity: 0.7\n }))]), transition('active => inactive', [style({\n opacity: 0.7\n }), animate(250, style({\n opacity: 0\n }))])])]\n },\n changeDetection: 0\n });\n return TooltipArea;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet Timeline = /*#__PURE__*/(() => {\n class Timeline {\n constructor(element, cd) {\n this.cd = cd;\n this.height = 50;\n this.select = new EventEmitter();\n this.onDomainChange = new EventEmitter();\n this.initialized = false;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n if (!this.initialized) {\n this.addBrush();\n this.initialized = true;\n }\n }\n update() {\n this.dims = this.getDims();\n this.height = this.dims.height;\n const offsetY = this.view[1] - this.height;\n this.xDomain = this.getXDomain();\n this.xScale = this.getXScale();\n if (this.brush) {\n this.updateBrush();\n }\n this.transform = `translate(0 , ${offsetY})`;\n this.filterId = 'filter' + id().toString();\n this.filter = `url(#${this.filterId})`;\n this.cd.markForCheck();\n }\n getXDomain() {\n let 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 let domain = [];\n if (this.scaleType === ScaleType.Time) {\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [min, max];\n } else if (this.scaleType === 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 return domain;\n }\n getXScale() {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime().range([0, this.dims.width]).domain(this.xDomain);\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear().range([0, this.dims.width]).domain(this.xDomain);\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().range([0, this.dims.width]).padding(0.1).domain(this.xDomain);\n }\n return scale;\n }\n addBrush() {\n if (this.brush) return;\n const height = this.height;\n const width = this.view[0];\n this.brush = brushX().extent([[0, 0], [width, height]]).on('brush end', ({\n selection\n }) => {\n const newSelection = selection || this.xScale.range();\n const newDomain = newSelection.map(this.xScale.invert);\n this.onDomainChange.emit(newDomain);\n this.cd.markForCheck();\n });\n select(this.element).select('.brush').call(this.brush);\n }\n updateBrush() {\n if (!this.brush) return;\n const height = this.height;\n const width = this.view[0];\n this.brush.extent([[0, 0], [width, height]]);\n select(this.element).select('.brush').call(this.brush);\n // clear hardcoded properties so they can be defined by CSS\n select(this.element).select('.selection').attr('fill', undefined).attr('stroke', undefined).attr('fill-opacity', undefined);\n this.cd.markForCheck();\n }\n getDims() {\n const width = this.view[0];\n const dims = {\n width,\n height: this.height\n };\n return dims;\n }\n }\n Timeline.ɵfac = function Timeline_Factory(t) {\n return new (t || Timeline)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n Timeline.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Timeline,\n selectors: [[\"g\", \"ngx-charts-timeline\", \"\"]],\n inputs: {\n view: \"view\",\n results: \"results\",\n scheme: \"scheme\",\n customColors: \"customColors\",\n legend: \"legend\",\n autoScale: \"autoScale\",\n scaleType: \"scaleType\",\n height: \"height\"\n },\n outputs: {\n select: \"select\",\n onDomainChange: \"onDomainChange\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c20,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"timeline\"], [\"in\", \"SourceGraphic\", \"type\", \"matrix\", \"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\"], [1, \"embedded-chart\"], [\"x\", \"0\", \"y\", \"0\", 1, \"brush-background\"], [1, \"brush\"]],\n template: function Timeline_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 0)(1, \"filter\");\n i0.ɵɵelement(2, \"feColorMatrix\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"g\", 2);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(5, \"rect\", 3)(6, \"g\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"id\", ctx.filterId);\n i0.ɵɵadvance(4);\n i0.ɵɵattribute(\"width\", ctx.view[0])(\"height\", ctx.height);\n }\n },\n styles: [\".timeline .brush-background{fill:#0000000d}.timeline .brush .selection{fill:#0000001a;stroke-width:1px;stroke:#888}.timeline .brush .handle{fill-opacity:0}.timeline .embedded-chart{opacity:.6}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return Timeline;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AdvancedLegendComponent = /*#__PURE__*/(() => {\n class AdvancedLegendComponent {\n constructor() {\n this.label = 'Total';\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.legendItems = [];\n this.labelFormatting = label => label;\n this.percentageFormatting = percentage => percentage;\n this.defaultValueFormatting = value => value.toLocaleString();\n }\n ngOnChanges(changes) {\n this.update();\n }\n getTotal() {\n return this.data.map(d => Number(d.value)).reduce((sum, d) => sum + d, 0);\n }\n update() {\n this.total = this.getTotal();\n this.roundedTotal = this.total;\n this.legendItems = this.getLegendItems();\n }\n getLegendItems() {\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 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 trackBy(index, item) {\n return item.label;\n }\n }\n AdvancedLegendComponent.ɵfac = function AdvancedLegendComponent_Factory(t) {\n return new (t || AdvancedLegendComponent)();\n };\n AdvancedLegendComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AdvancedLegendComponent,\n selectors: [[\"ngx-charts-advanced-legend\"]],\n inputs: {\n width: \"width\",\n data: \"data\",\n colors: \"colors\",\n label: \"label\",\n animations: \"animations\",\n valueFormatting: \"valueFormatting\",\n labelFormatting: \"labelFormatting\",\n percentageFormatting: \"percentageFormatting\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 8,\n vars: 7,\n consts: [[1, \"advanced-pie-legend\"], [\"class\", \"total-value\", \"ngx-charts-count-up\", \"\", 3, \"countTo\", \"valueFormatting\", 4, \"ngIf\"], [\"class\", \"total-value\", 4, \"ngIf\"], [1, \"total-label\"], [1, \"legend-items-container\"], [1, \"legend-items\"], [\"tabindex\", \"-1\", \"class\", \"legend-item\", 3, \"mouseenter\", \"mouseleave\", \"click\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-count-up\", \"\", 1, \"total-value\", 3, \"countTo\", \"valueFormatting\"], [1, \"total-value\"], [\"tabindex\", \"-1\", 1, \"legend-item\", 3, \"mouseenter\", \"mouseleave\", \"click\"], [1, \"item-color\"], [\"class\", \"item-value\", \"ngx-charts-count-up\", \"\", 3, \"countTo\", \"valueFormatting\", 4, \"ngIf\"], [\"class\", \"item-value\", 4, \"ngIf\"], [1, \"item-label\"], [\"class\", \"item-percent\", \"ngx-charts-count-up\", \"\", 3, \"countTo\", \"countSuffix\", 4, \"ngIf\"], [\"class\", \"item-percent\", 4, \"ngIf\"], [\"ngx-charts-count-up\", \"\", 1, \"item-value\", 3, \"countTo\", \"valueFormatting\"], [1, \"item-value\"], [\"ngx-charts-count-up\", \"\", 1, \"item-percent\", 3, \"countTo\", \"countSuffix\"], [1, \"item-percent\"]],\n template: function AdvancedLegendComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, AdvancedLegendComponent_div_1_Template, 1, 2, \"div\", 1)(2, AdvancedLegendComponent_div_2_Template, 2, 1, \"div\", 2);\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 4)(6, \"div\", 5);\n i0.ɵɵtemplate(7, AdvancedLegendComponent_div_7_Template, 8, 7, \"div\", 6);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"width\", ctx.width, \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.animations);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx.label, \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", ctx.legendItems)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [CountUpDirective, i2.NgIf, i2.NgForOf],\n styles: [\".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return AdvancedLegendComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst COMPONENTS = [AreaComponent, BaseChartComponent, CountUpDirective, TooltipArea, ChartComponent, LegendComponent, LegendEntryComponent, ScaleLegendComponent, CircleComponent, CircleSeriesComponent, GridPanelComponent, GridPanelSeriesComponent, SvgLinearGradientComponent, SvgRadialGradientComponent, Timeline, AdvancedLegendComponent];\nlet ChartCommonModule = /*#__PURE__*/(() => {\n class ChartCommonModule {}\n ChartCommonModule.ɵfac = function ChartCommonModule_Factory(t) {\n return new (t || ChartCommonModule)();\n };\n ChartCommonModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ChartCommonModule\n });\n ChartCommonModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, AxesModule, TooltipModule], CommonModule, AxesModule, TooltipModule]\n });\n return ChartCommonModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction calculateViewDimensions({\n width,\n height,\n margins,\n showXAxis = false,\n showYAxis = false,\n xAxisHeight = 0,\n yAxisWidth = 0,\n showXLabel = false,\n showYLabel = false,\n showLegend = false,\n legendType = ScaleType.Ordinal,\n legendPosition = LegendPosition.Right,\n columns = 12\n}) {\n let xOffset = margins[3];\n let chartWidth = width;\n let chartHeight = height - margins[0] - margins[2];\n if (showLegend && legendPosition === LegendPosition.Right) {\n if (legendType === ScaleType.Ordinal) {\n columns -= 2;\n } else {\n columns -= 1;\n }\n }\n chartWidth = chartWidth * columns / 12;\n chartWidth = chartWidth - margins[1] - margins[3];\n if (showXAxis) {\n chartHeight -= 5;\n chartHeight -= xAxisHeight;\n if (showXLabel) {\n // text height + spacing between axis label and tick labels\n const offset = 25 + 5;\n chartHeight -= offset;\n }\n }\n if (showYAxis) {\n chartWidth -= 5;\n chartWidth -= yAxisWidth;\n xOffset += yAxisWidth;\n xOffset += 10;\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 chartWidth = Math.max(0, chartWidth);\n chartHeight = Math.max(0, chartHeight);\n return {\n width: Math.floor(chartWidth),\n height: Math.floor(chartHeight),\n xOffset: Math.floor(xOffset)\n };\n}\nconst colorSets = [{\n name: 'vivid',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: ['#647c8a', '#3f51b5', '#2196f3', '#00b862', '#afdf0a', '#a7b61a', '#f3e562', '#ff9800', '#ff5722', '#ff4514']\n}, {\n name: 'natural',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: ['#bf9d76', '#e99450', '#d89f59', '#f2dfa7', '#a5d7c6', '#7794b1', '#afafaf', '#707160', '#ba9383', '#d9d5c3']\n}, {\n name: 'cool',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: ['#a8385d', '#7aa3e5', '#a27ea8', '#aae3f5', '#adcded', '#a95963', '#8796c0', '#7ed3ed', '#50abcc', '#ad6886']\n}, {\n name: 'fire',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: ['#ff3d00', '#bf360c', '#ff8f00', '#ff6f00', '#ff5722', '#e65100', '#ffca28', '#ffab00']\n}, {\n name: 'solar',\n selectable: true,\n group: ScaleType.Linear,\n domain: ['#fff8e1', '#ffecb3', '#ffe082', '#ffd54f', '#ffca28', '#ffc107', '#ffb300', '#ffa000', '#ff8f00', '#ff6f00']\n}, {\n name: 'air',\n selectable: true,\n group: ScaleType.Linear,\n domain: ['#e1f5fe', '#b3e5fc', '#81d4fa', '#4fc3f7', '#29b6f6', '#03a9f4', '#039be5', '#0288d1', '#0277bd', '#01579b']\n}, {\n name: 'aqua',\n selectable: true,\n group: ScaleType.Linear,\n domain: ['#e0f7fa', '#b2ebf2', '#80deea', '#4dd0e1', '#26c6da', '#00bcd4', '#00acc1', '#0097a7', '#00838f', '#006064']\n}, {\n name: 'flame',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: ['#A10A28', '#D3342D', '#EF6D49', '#FAAD67', '#FDDE90', '#DBED91', '#A9D770', '#6CBA67', '#2C9653', '#146738']\n}, {\n name: 'ocean',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: ['#1D68FB', '#33C0FC', '#4AFFFE', '#AFFFFF', '#FFFC63', '#FDBD2D', '#FC8A25', '#FA4F1E', '#FA141B', '#BA38D1']\n}, {\n name: 'forest',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: ['#55C22D', '#C1F33D', '#3CC099', '#AFFFFF', '#8CFC9D', '#76CFFA', '#BA60FB', '#EE6490', '#C42A1C', '#FC9F32']\n}, {\n name: 'horizon',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: ['#2597FB', '#65EBFD', '#99FDD0', '#FCEE4B', '#FEFCFA', '#FDD6E3', '#FCB1A8', '#EF6F7B', '#CB96E8', '#EFDEE0']\n}, {\n name: 'neons',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: ['#FF3333', '#FF33FF', '#CC33FF', '#0000FF', '#33CCFF', '#33FFFF', '#33FF66', '#CCFF33', '#FFCC00', '#FF6600']\n}, {\n name: 'picnic',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: ['#FAC51D', '#66BD6D', '#FAA026', '#29BB9C', '#E96B56', '#55ACD2', '#B7332F', '#2C83C9', '#9166B8', '#92E7E8']\n}, {\n name: 'night',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: ['#2B1B5A', '#501356', '#183356', '#28203F', '#391B3C', '#1E2B3C', '#120634', '#2D0432', '#051932', '#453080', '#75267D', '#2C507D', '#4B3880', '#752F7D', '#35547D']\n}, {\n name: 'nightLights',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: ['#4e31a5', '#9c25a7', '#3065ab', '#57468b', '#904497', '#46648b', '#32118d', '#a00fb3', '#1052a2', '#6e51bd', '#b63cc3', '#6c97cb', '#8671c1', '#b455be', '#7496c3']\n}];\nclass ColorHelper {\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 this.scale = this.generateColorScheme(scheme, type, this.domain);\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 switch (type) {\n case ScaleType.Quantile:\n colorScale = scaleQuantile().range(scheme.domain).domain(domain);\n break;\n case ScaleType.Ordinal:\n colorScale = scaleOrdinal().range(scheme.domain).domain(domain);\n break;\n case ScaleType.Linear:\n {\n const colorDomain = [...scheme.domain];\n if (colorDomain.length === 1) {\n colorDomain.push(colorDomain[0]);\n this.colorDomain = colorDomain;\n }\n const points = range(0, 1, 1.0 / colorDomain.length);\n colorScale = scaleLinear().range(colorDomain).domain(points);\n }\n break;\n default:\n break;\n }\n return colorScale;\n }\n getColor(value) {\n if (value === undefined || value === null) {\n throw new Error('Value can not be null');\n }\n if (this.scaleType === ScaleType.Linear) {\n const valueScale = scaleLinear().domain(this.domain).range([0, 1]);\n return this.scale(valueScale(value));\n } else {\n if (typeof this.customColors === 'function') {\n return this.customColors(value);\n }\n const formattedValue = value.toString();\n let found; // 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 if (found) {\n return found.value;\n } else {\n return this.scale(value);\n }\n }\n }\n getLinearGradientStops(value, start) {\n if (start === undefined) {\n start = this.domain[0];\n }\n const valueScale = scaleLinear().domain(this.domain).range([0, 1]);\n const colorValueScale = scaleBand().domain(this.colorDomain).range([0, 1]);\n const endColor = this.getColor(value);\n // generate the stops\n const startVal = valueScale(start);\n const startColor = this.getColor(start);\n const endVal = valueScale(value);\n let i = 1;\n let currentVal = startVal;\n const stops = [];\n stops.push({\n color: startColor,\n offset: startVal,\n originalOffset: startVal,\n opacity: 1\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 if (offset.toFixed(4) >= (endVal - colorValueScale.bandwidth()).toFixed(4)) {\n break;\n }\n stops.push({\n color,\n offset,\n opacity: 1\n });\n currentVal = offset;\n i++;\n }\n if (stops[stops.length - 1].offset < 100) {\n stops.push({\n color: endColor,\n offset: endVal,\n opacity: 1\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 return stops;\n }\n}\n\n/**\n * Based on the data, return an array with unique values.\n *\n * @export\n * @returns array\n */\nfunction getUniqueXDomainValues(results) {\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 * Get the scaleType of enumerable of values.\n * @returns 'time', 'linear' or 'ordinal'\n */\nfunction getScaleType(values, checkDateType = true) {\n if (checkDateType) {\n const allDates = values.every(value => value instanceof Date);\n if (allDates) {\n return ScaleType.Time;\n }\n }\n const allNumbers = values.every(value => typeof value === 'number');\n if (allNumbers) {\n return ScaleType.Linear;\n }\n return ScaleType.Ordinal;\n}\nfunction getXDomainArray(values, xScaleMin, xScaleMax) {\n const scaleType = getScaleType(values);\n let xSet = [];\n let domain = [];\n if (scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n let min;\n let max;\n if (scaleType === ScaleType.Time || scaleType === ScaleType.Linear) {\n const mappedValues = values.map(v => Number(v));\n min = xScaleMin ? xScaleMin : Math.min(...mappedValues);\n max = xScaleMax ? xScaleMax : Math.max(...mappedValues);\n }\n if (scaleType === ScaleType.Time) {\n domain = [new Date(min), new Date(max)];\n 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 (scaleType === ScaleType.Linear) {\n domain = [min, max];\n // Use compare function to sort numbers numerically\n xSet = [...values].sort((a, b) => a - b);\n } else {\n domain = values;\n xSet = values;\n }\n return {\n domain,\n xSet,\n scaleType\n };\n}\nfunction 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}\nfunction sortByDomain(data, property, direction = 'asc', domain) {\n return data.sort((a, b) => {\n const aVal = a[property];\n const bVal = b[property];\n const aIdx = domain.indexOf(aVal);\n const bIdx = domain.indexOf(bVal);\n if (direction === 'asc') {\n return aIdx - bIdx;\n } else {\n return bIdx - aIdx;\n }\n });\n}\nfunction sortByTime(data, property, direction = 'asc') {\n return data.sort((a, b) => {\n const aDate = a[property].getTime();\n const bDate = b[property].getTime();\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}\nlet AreaSeriesComponent = /*#__PURE__*/(() => {\n class AreaSeriesComponent {\n constructor() {\n this.baseValue = 'auto';\n this.stacked = false;\n this.normalized = false;\n this.animations = true;\n this.select = new EventEmitter();\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.updateGradient();\n let currentArea;\n let startingArea;\n const xProperty = d => {\n const label = d.name;\n return this.xScale(label);\n };\n if (this.stacked || this.normalized) {\n currentArea = area().x(xProperty).y0((d, i) => this.yScale(d.d0)).y1((d, i) => this.yScale(d.d1));\n startingArea = area().x(xProperty).y0(d => this.yScale.range()[0]).y1(d => this.yScale.range()[0]);\n } else {\n currentArea = area().x(xProperty).y0(() => this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue)).y1(d => this.yScale(d.value));\n startingArea = area().x(xProperty).y0(d => this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue)).y1(d => this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue));\n }\n currentArea.curve(this.curve);\n startingArea.curve(this.curve);\n this.opacity = 0.8;\n let data = this.data.series;\n if (this.scaleType === ScaleType.Linear) {\n data = sortLinear(data, 'name');\n } else if (this.scaleType === ScaleType.Time) {\n data = sortByTime(data, 'name');\n } else {\n data = sortByDomain(data, 'name', 'asc', this.xScale.domain());\n }\n this.path = currentArea(data);\n this.startingPath = startingArea(data);\n }\n updateGradient() {\n if (this.colors.scaleType === 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 isActive(entry) {\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 isInactive(entry) {\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 AreaSeriesComponent.ɵfac = function AreaSeriesComponent_Factory(t) {\n return new (t || AreaSeriesComponent)();\n };\n AreaSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AreaSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-area-series\", \"\"]],\n inputs: {\n data: \"data\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n baseValue: \"baseValue\",\n colors: \"colors\",\n scaleType: \"scaleType\",\n stacked: \"stacked\",\n normalized: \"normalized\",\n gradient: \"gradient\",\n curve: \"curve\",\n activeEntries: \"activeEntries\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c21,\n decls: 1,\n vars: 12,\n consts: [[\"ngx-charts-area\", \"\", 1, \"area-series\", 3, \"data\", \"path\", \"fill\", \"stops\", \"startingPath\", \"opacity\", \"gradient\", \"animations\"]],\n template: function AreaSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 0);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"active\", ctx.isActive(ctx.data))(\"inactive\", ctx.isInactive(ctx.data));\n i0.ɵɵproperty(\"data\", ctx.data)(\"path\", ctx.path)(\"fill\", ctx.colors.getColor(ctx.data.name))(\"stops\", ctx.gradientStops)(\"startingPath\", ctx.startingPath)(\"opacity\", ctx.opacity)(\"gradient\", ctx.gradient || ctx.hasGradient)(\"animations\", ctx.animations);\n }\n },\n dependencies: [AreaComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n return AreaSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AreaChartComponent = /*#__PURE__*/(() => {\n class AreaChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.xAxis = false;\n this.yAxis = false;\n this.baseValue = 'auto';\n this.autoScale = false;\n this.timeline = false;\n this.showGridLines = true;\n this.curve = curveLinear;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.timelineHeight = 50;\n this.timelinePadding = 10;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n update() {\n super.update();\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 if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n this.updateTimeline();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset}, ${this.margin[0]})`;\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n updateTimeline() {\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 getXDomain() {\n let values = getUniqueXDomainValues(this.results);\n this.scaleType = getScaleType(values);\n let domain = [];\n if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n let min;\n let max;\n if (this.scaleType === ScaleType.Time || this.scaleType === ScaleType.Linear) {\n min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n }\n if (this.scaleType === 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 === 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 return domain;\n }\n getYDomain() {\n const domain = [];\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 const values = [...domain];\n if (!this.autoScale) {\n values.push(0);\n }\n if (this.baseValue !== 'auto') {\n values.push(this.baseValue);\n }\n const min = this.yScaleMin ? this.yScaleMin : Math.min(...values);\n const max = this.yScaleMax ? this.yScaleMax : Math.max(...values);\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime();\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear();\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().padding(0.1);\n }\n scale.range([0, width]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getScaleType(values) {\n let date = true;\n let num = true;\n for (const value of values) {\n if (isDate(value)) {\n date = false;\n }\n if (isNumber(value)) {\n num = false;\n }\n }\n if (date) {\n return ScaleType.Time;\n }\n if (num) {\n return ScaleType.Linear;\n }\n return ScaleType.Ordinal;\n }\n updateDomain(domain) {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n updateHoveredVertical(item) {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n hideCircles() {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\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 = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n 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 this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({\n value: entry,\n entries: []\n });\n }\n this.activeEntries = [];\n }\n }\n AreaChartComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵAreaChartComponent_BaseFactory;\n return function AreaChartComponent_Factory(t) {\n return (ɵAreaChartComponent_BaseFactory || (ɵAreaChartComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AreaChartComponent)))(t || AreaChartComponent);\n };\n })();\n AreaChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AreaChartComponent,\n selectors: [[\"ngx-charts-area-chart\"]],\n contentQueries: function AreaChartComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n i0.ɵɵcontentQuery(dirIndex, _c23, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.seriesTooltipTemplate = _t.first);\n }\n },\n hostBindings: function AreaChartComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseleave\", function AreaChartComponent_mouseleave_HostBindingHandler() {\n return ctx.hideCircles();\n });\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n baseValue: \"baseValue\",\n autoScale: \"autoScale\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n timeline: \"timeline\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n curve: \"curve\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n roundDomains: \"roundDomains\",\n tooltipDisabled: \"tooltipDisabled\",\n xScaleMin: \"xScaleMin\",\n xScaleMax: \"xScaleMax\",\n yScaleMin: \"yScaleMin\",\n yScaleMax: \"yScaleMax\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 11,\n vars: 20,\n consts: [[3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"area-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [3, \"mouseleave\", 4, \"ngIf\"], [\"ngx-charts-timeline\", \"\", 3, \"results\", \"view\", \"height\", \"scheme\", \"customColors\", \"legend\", \"scaleType\", \"onDomainChange\", 4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-area-series\", \"\", 3, \"xScale\", \"yScale\", \"baseValue\", \"colors\", \"data\", \"activeEntries\", \"scaleType\", \"gradient\", \"curve\", \"animations\"], [3, \"mouseleave\"], [\"ngx-charts-tooltip-area\", \"\", 3, \"hover\", \"dims\", \"xSet\", \"xScale\", \"yScale\", \"results\", \"colors\", \"tooltipDisabled\", \"tooltipTemplate\"], [4, \"ngFor\", \"ngForOf\"], [\"ngx-charts-circle-series\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"xScale\", \"yScale\", \"colors\", \"activeEntries\", \"data\", \"scaleType\", \"visibleValue\", \"tooltipDisabled\", \"tooltipTemplate\"], [\"ngx-charts-timeline\", \"\", 3, \"onDomainChange\", \"results\", \"view\", \"height\", \"scheme\", \"customColors\", \"legend\", \"scaleType\"], [\"ngx-charts-area-series\", \"\", 3, \"xScale\", \"yScale\", \"baseValue\", \"colors\", \"data\", \"scaleType\", \"gradient\", \"curve\", \"animations\"]],\n template: function AreaChartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function AreaChartComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function AreaChartComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event);\n })(\"legendLabelDeactivate\", function AreaChartComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"defs\")(2, \"clipPath\");\n i0.ɵɵelement(3, \"rect\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"g\", 1);\n i0.ɵɵtemplate(5, AreaChartComponent__svg_g_5_Template, 1, 11, \"g\", 2)(6, AreaChartComponent__svg_g_6_Template, 1, 10, \"g\", 3);\n i0.ɵɵelementStart(7, \"g\");\n i0.ɵɵtemplate(8, AreaChartComponent__svg_g_8_Template, 2, 10, \"g\", 4)(9, AreaChartComponent__svg_g_9_Template, 3, 9, \"g\", 5);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(10, AreaChartComponent__svg_g_10_Template, 2, 13, \"g\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(17, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"id\", ctx.clipPathId);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"width\", ctx.dims.width + 10)(\"height\", ctx.dims.height + 10)(\"transform\", \"translate(-5, -5)\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.clipPath);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.results)(\"ngForTrackBy\", ctx.trackBy);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.tooltipDisabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.timeline && ctx.scaleType != \"ordinal\");\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, AreaSeriesComponent, TooltipArea, CircleSeriesComponent, Timeline, i2.NgIf, i2.NgForOf],\n styles: [\".ngx-charts-outer{animation:chartFadeIn linear .6s}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .node,.ngx-charts .link,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .node.active,.ngx-charts .node:hover,.ngx-charts .link.active,.ngx-charts .link:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .node:focus,.ngx-charts .link:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .node.hidden,.ngx-charts .link.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return AreaChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AreaChartNormalizedComponent = /*#__PURE__*/(() => {\n class AreaChartNormalizedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.showXAxisLabel = false;\n this.showYAxisLabel = false;\n this.showGridLines = true;\n this.curve = curveLinear;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.yDomain = [0, 100];\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.seriesType = SeriesType;\n this.timelineHeight = 50;\n this.timelinePadding = 10;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n update() {\n super.update();\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 if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n this.seriesDomain = this.getSeriesDomain();\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n for (let i = 0; i < this.xSet.length; i++) {\n const val = this.xSet[i];\n let d0 = 0;\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 === 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 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 === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\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 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 this.updateTimeline();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n updateTimeline() {\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 getXDomain() {\n let values = getUniqueXDomainValues(this.results);\n this.scaleType = getScaleType(values);\n let domain = [];\n if (this.scaleType === 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 === 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 return domain;\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime();\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear();\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().padding(0.1);\n }\n scale.range([0, width]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n updateDomain(domain) {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n updateHoveredVertical(item) {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n hideCircles() {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\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 = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n 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 this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({\n value: entry,\n entries: []\n });\n }\n this.activeEntries = [];\n }\n }\n AreaChartNormalizedComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵAreaChartNormalizedComponent_BaseFactory;\n return function AreaChartNormalizedComponent_Factory(t) {\n return (ɵAreaChartNormalizedComponent_BaseFactory || (ɵAreaChartNormalizedComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AreaChartNormalizedComponent)))(t || AreaChartNormalizedComponent);\n };\n })();\n AreaChartNormalizedComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AreaChartNormalizedComponent,\n selectors: [[\"ngx-charts-area-chart-normalized\"]],\n contentQueries: function AreaChartNormalizedComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n i0.ɵɵcontentQuery(dirIndex, _c23, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.seriesTooltipTemplate = _t.first);\n }\n },\n hostBindings: function AreaChartNormalizedComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseleave\", function AreaChartNormalizedComponent_mouseleave_HostBindingHandler() {\n return ctx.hideCircles();\n });\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n timeline: \"timeline\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n curve: \"curve\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n roundDomains: \"roundDomains\",\n tooltipDisabled: \"tooltipDisabled\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 11,\n vars: 20,\n consts: [[3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"area-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [3, \"mouseleave\", 4, \"ngIf\"], [\"ngx-charts-timeline\", \"\", 3, \"results\", \"view\", \"height\", \"scheme\", \"customColors\", \"legend\", \"scaleType\", \"onDomainChange\", 4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-area-series\", \"\", 3, \"xScale\", \"yScale\", \"colors\", \"data\", \"scaleType\", \"activeEntries\", \"gradient\", \"normalized\", \"curve\", \"animations\"], [3, \"mouseleave\"], [\"ngx-charts-tooltip-area\", \"\", 3, \"hover\", \"dims\", \"xSet\", \"xScale\", \"yScale\", \"results\", \"colors\", \"showPercentage\", \"tooltipDisabled\", \"tooltipTemplate\"], [4, \"ngFor\", \"ngForOf\"], [\"ngx-charts-circle-series\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"type\", \"xScale\", \"yScale\", \"colors\", \"activeEntries\", \"data\", \"scaleType\", \"visibleValue\", \"tooltipDisabled\", \"tooltipTemplate\"], [\"ngx-charts-timeline\", \"\", 3, \"onDomainChange\", \"results\", \"view\", \"height\", \"scheme\", \"customColors\", \"legend\", \"scaleType\"], [\"ngx-charts-area-series\", \"\", 3, \"xScale\", \"yScale\", \"colors\", \"data\", \"scaleType\", \"gradient\", \"normalized\", \"curve\", \"animations\"]],\n template: function AreaChartNormalizedComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function AreaChartNormalizedComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function AreaChartNormalizedComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event);\n })(\"legendLabelDeactivate\", function AreaChartNormalizedComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"defs\")(2, \"clipPath\");\n i0.ɵɵelement(3, \"rect\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"g\", 1);\n i0.ɵɵtemplate(5, AreaChartNormalizedComponent__svg_g_5_Template, 1, 11, \"g\", 2)(6, AreaChartNormalizedComponent__svg_g_6_Template, 1, 10, \"g\", 3);\n i0.ɵɵelementStart(7, \"g\");\n i0.ɵɵtemplate(8, AreaChartNormalizedComponent__svg_g_8_Template, 2, 10, \"g\", 4)(9, AreaChartNormalizedComponent__svg_g_9_Template, 3, 10, \"g\", 5);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(10, AreaChartNormalizedComponent__svg_g_10_Template, 2, 13, \"g\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(17, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"id\", ctx.clipPathId);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"width\", ctx.dims.width + 10)(\"height\", ctx.dims.height + 10)(\"transform\", \"translate(-5, -5)\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.clipPath);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.results)(\"ngForTrackBy\", ctx.trackBy);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.tooltipDisabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.timeline && ctx.scaleType != \"ordinal\");\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, AreaSeriesComponent, TooltipArea, CircleSeriesComponent, Timeline, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n changeDetection: 0\n });\n return AreaChartNormalizedComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AreaChartStackedComponent = /*#__PURE__*/(() => {\n class AreaChartStackedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.xAxis = false;\n this.yAxis = false;\n this.timeline = false;\n this.showGridLines = true;\n this.curve = curveLinear;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.timelineHeight = 50;\n this.timelinePadding = 10;\n this.seriesType = SeriesType;\n }\n update() {\n super.update();\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 if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\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 === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\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 this.updateTimeline();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n updateTimeline() {\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 getXDomain() {\n let values = getUniqueXDomainValues(this.results);\n this.scaleType = getScaleType(values);\n let domain = [];\n if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n let min;\n let max;\n if (this.scaleType === ScaleType.Time || this.scaleType === ScaleType.Linear) {\n min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n }\n if (this.scaleType === 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 === 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 return domain;\n }\n getYDomain() {\n const domain = [];\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 === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\n });\n if (d) {\n sum += d.value;\n }\n }\n domain.push(sum);\n }\n const min = this.yScaleMin ? this.yScaleMin : Math.min(0, ...domain);\n const max = this.yScaleMax ? this.yScaleMax : Math.max(...domain);\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime();\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear();\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().padding(0.1);\n }\n scale.range([0, width]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n updateDomain(domain) {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n updateHoveredVertical(item) {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n hideCircles() {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n trackBy(index, item) {\n return `${item.name}`;\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\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 = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n 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 this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({\n value: entry,\n entries: []\n });\n }\n this.activeEntries = [];\n }\n }\n AreaChartStackedComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵAreaChartStackedComponent_BaseFactory;\n return function AreaChartStackedComponent_Factory(t) {\n return (ɵAreaChartStackedComponent_BaseFactory || (ɵAreaChartStackedComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AreaChartStackedComponent)))(t || AreaChartStackedComponent);\n };\n })();\n AreaChartStackedComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AreaChartStackedComponent,\n selectors: [[\"ngx-charts-area-chart-stacked\"]],\n contentQueries: function AreaChartStackedComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n i0.ɵɵcontentQuery(dirIndex, _c23, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.seriesTooltipTemplate = _t.first);\n }\n },\n hostBindings: function AreaChartStackedComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseleave\", function AreaChartStackedComponent_mouseleave_HostBindingHandler() {\n return ctx.hideCircles();\n });\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n timeline: \"timeline\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n curve: \"curve\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n roundDomains: \"roundDomains\",\n tooltipDisabled: \"tooltipDisabled\",\n xScaleMin: \"xScaleMin\",\n xScaleMax: \"xScaleMax\",\n yScaleMin: \"yScaleMin\",\n yScaleMax: \"yScaleMax\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 11,\n vars: 20,\n consts: [[3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"area-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [3, \"mouseleave\", 4, \"ngIf\"], [\"ngx-charts-timeline\", \"\", 3, \"results\", \"view\", \"height\", \"scheme\", \"customColors\", \"legend\", \"scaleType\", \"onDomainChange\", 4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-area-series\", \"\", 3, \"xScale\", \"yScale\", \"colors\", \"data\", \"scaleType\", \"gradient\", \"activeEntries\", \"stacked\", \"curve\", \"animations\"], [3, \"mouseleave\"], [\"ngx-charts-tooltip-area\", \"\", 3, \"hover\", \"dims\", \"xSet\", \"xScale\", \"yScale\", \"results\", \"colors\", \"tooltipDisabled\", \"tooltipTemplate\"], [\"ngx-charts-circle-series\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"type\", \"xScale\", \"yScale\", \"colors\", \"activeEntries\", \"data\", \"scaleType\", \"visibleValue\", \"tooltipDisabled\", \"tooltipTemplate\"], [\"ngx-charts-timeline\", \"\", 3, \"onDomainChange\", \"results\", \"view\", \"height\", \"scheme\", \"customColors\", \"legend\", \"scaleType\"], [\"ngx-charts-area-series\", \"\", 3, \"xScale\", \"yScale\", \"colors\", \"data\", \"scaleType\", \"gradient\", \"stacked\", \"curve\", \"animations\"]],\n template: function AreaChartStackedComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function AreaChartStackedComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function AreaChartStackedComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event);\n })(\"legendLabelDeactivate\", function AreaChartStackedComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"defs\")(2, \"clipPath\");\n i0.ɵɵelement(3, \"rect\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"g\", 1);\n i0.ɵɵtemplate(5, AreaChartStackedComponent__svg_g_5_Template, 1, 11, \"g\", 2)(6, AreaChartStackedComponent__svg_g_6_Template, 1, 10, \"g\", 3);\n i0.ɵɵelementStart(7, \"g\");\n i0.ɵɵtemplate(8, AreaChartStackedComponent__svg_g_8_Template, 2, 10, \"g\", 4)(9, AreaChartStackedComponent__svg_g_9_Template, 3, 10, \"g\", 5);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(10, AreaChartStackedComponent__svg_g_10_Template, 2, 13, \"g\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(17, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"id\", ctx.clipPathId);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"width\", ctx.dims.width + 10)(\"height\", ctx.dims.height + 10)(\"transform\", \"translate(-5, -5)\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.clipPath);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.results)(\"ngForTrackBy\", ctx.trackBy);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.tooltipDisabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.timeline && ctx.scaleType != \"ordinal\");\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, AreaSeriesComponent, TooltipArea, CircleSeriesComponent, Timeline, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n changeDetection: 0\n });\n return AreaChartStackedComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AreaChartModule = /*#__PURE__*/(() => {\n class AreaChartModule {}\n AreaChartModule.ɵfac = function AreaChartModule_Factory(t) {\n return new (t || AreaChartModule)();\n };\n AreaChartModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: AreaChartModule\n });\n AreaChartModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return AreaChartModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarComponent = /*#__PURE__*/(() => {\n class BarComponent {\n constructor(element) {\n this.roundEdges = true;\n this.gradient = false;\n this.offset = 0;\n this.isActive = false;\n this.animations = true;\n this.noBarWhenZero = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.hasGradient = false;\n this.hideBar = false;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n if (changes.roundEdges) {\n this.loadAnimation();\n }\n this.update();\n }\n update() {\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n if (this.gradient || this.stops) {\n this.gradientStops = this.getGradient();\n this.hasGradient = true;\n } else {\n this.hasGradient = false;\n }\n this.updatePathEl();\n this.checkToHideBar();\n }\n loadAnimation() {\n this.path = this.getStartingPath();\n setTimeout(this.update.bind(this), 100);\n }\n updatePathEl() {\n const node = select(this.element).select('.bar');\n const path = this.getPath();\n if (this.animations) {\n node.transition().duration(500).attr('d', path);\n } else {\n node.attr('d', path);\n }\n }\n getGradient() {\n if (this.stops) {\n return this.stops;\n }\n return [{\n offset: 0,\n color: this.fill,\n opacity: this.getStartOpacity()\n }, {\n offset: 100,\n color: this.fill,\n opacity: 1\n }];\n }\n getStartingPath() {\n if (!this.animations) {\n return this.getPath();\n }\n let radius = this.getRadius();\n let path;\n if (this.roundEdges) {\n if (this.orientation === BarOrientation.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 === BarOrientation.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 === BarOrientation.Vertical) {\n path = roundedRect(this.x, this.y + this.height, this.width, 1, 0, this.edges);\n } else if (this.orientation === BarOrientation.Horizontal) {\n path = roundedRect(this.x, this.y, 1, this.height, 0, this.edges);\n }\n }\n return path;\n }\n getPath() {\n let radius = this.getRadius();\n let path;\n if (this.roundEdges) {\n if (this.orientation === BarOrientation.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 === BarOrientation.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 return path;\n }\n getRadius() {\n let radius = 0;\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 return radius;\n }\n getStartOpacity() {\n if (this.roundEdges) {\n return 0.2;\n } else {\n return 0.5;\n }\n }\n get edges() {\n let edges = [false, false, false, false];\n if (this.roundEdges) {\n if (this.orientation === BarOrientation.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 === BarOrientation.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 onMouseEnter() {\n this.activate.emit(this.data);\n }\n onMouseLeave() {\n this.deactivate.emit(this.data);\n }\n checkToHideBar() {\n this.hideBar = this.noBarWhenZero && (this.orientation === BarOrientation.Vertical && this.height === 0 || this.orientation === BarOrientation.Horizontal && this.width === 0);\n }\n }\n BarComponent.ɵfac = function BarComponent_Factory(t) {\n return new (t || BarComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n BarComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarComponent,\n selectors: [[\"g\", \"ngx-charts-bar\", \"\"]],\n hostBindings: function BarComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseenter\", function BarComponent_mouseenter_HostBindingHandler() {\n return ctx.onMouseEnter();\n })(\"mouseleave\", function BarComponent_mouseleave_HostBindingHandler() {\n return ctx.onMouseLeave();\n });\n }\n },\n inputs: {\n fill: \"fill\",\n data: \"data\",\n width: \"width\",\n height: \"height\",\n x: \"x\",\n y: \"y\",\n orientation: \"orientation\",\n roundEdges: \"roundEdges\",\n gradient: \"gradient\",\n offset: \"offset\",\n isActive: \"isActive\",\n stops: \"stops\",\n animations: \"animations\",\n ariaLabel: \"ariaLabel\",\n noBarWhenZero: \"noBarWhenZero\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c26,\n decls: 2,\n vars: 8,\n consts: [[4, \"ngIf\"], [\"stroke\", \"none\", \"role\", \"img\", \"tabIndex\", \"-1\", 1, \"bar\", 3, \"click\"], [\"ngx-charts-svg-linear-gradient\", \"\", 3, \"orientation\", \"name\", \"stops\"]],\n template: function BarComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, BarComponent__svg_defs_0_Template, 2, 3, \"defs\", 0);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"path\", 1);\n i0.ɵɵlistener(\"click\", function BarComponent_Template_path_click_1_listener() {\n return ctx.select.emit(ctx.data);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.hasGradient);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"active\", ctx.isActive)(\"hidden\", ctx.hideBar);\n i0.ɵɵattribute(\"d\", ctx.path)(\"aria-label\", ctx.ariaLabel)(\"fill\", ctx.hasGradient ? ctx.gradientFill : ctx.fill);\n }\n },\n dependencies: [SvgLinearGradientComponent, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return BarComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar BarChartType = /*#__PURE__*/function (BarChartType) {\n BarChartType[\"Standard\"] = \"standard\";\n BarChartType[\"Normalized\"] = \"normalized\";\n BarChartType[\"Stacked\"] = \"stacked\";\n return BarChartType;\n}(BarChartType || {});\nvar D0Types = /*#__PURE__*/function (D0Types) {\n D0Types[\"positive\"] = \"positive\";\n D0Types[\"negative\"] = \"negative\";\n return D0Types;\n}(D0Types || {});\nlet BarLabelComponent = /*#__PURE__*/(() => {\n class BarLabelComponent {\n constructor(element) {\n this.dimensionsChanged = new EventEmitter();\n this.horizontalPadding = 2;\n this.verticalPadding = 5;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n getSize() {\n const h = this.element.getBoundingClientRect().height;\n const w = this.element.getBoundingClientRect().width;\n return {\n height: h,\n width: w,\n negative: this.value < 0\n };\n }\n ngAfterViewInit() {\n this.dimensionsChanged.emit(this.getSize());\n }\n update() {\n if (this.valueFormatting) {\n this.formatedValue = this.valueFormatting(this.value);\n } else {\n this.formatedValue = formatLabel(this.value);\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 } else {\n // orientation must be \"vertical\"\n this.x = this.barX + this.barWidth / 2;\n this.y = this.barY + this.barHeight;\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 BarLabelComponent.ɵfac = function BarLabelComponent_Factory(t) {\n return new (t || BarLabelComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n BarLabelComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarLabelComponent,\n selectors: [[\"g\", \"ngx-charts-bar-label\", \"\"]],\n inputs: {\n value: \"value\",\n valueFormatting: \"valueFormatting\",\n barX: \"barX\",\n barY: \"barY\",\n barWidth: \"barWidth\",\n barHeight: \"barHeight\",\n orientation: \"orientation\"\n },\n outputs: {\n dimensionsChanged: \"dimensionsChanged\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c27,\n decls: 2,\n vars: 5,\n consts: [[\"alignment-baseline\", \"middle\", 1, \"textDataLabel\"]],\n template: function BarLabelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"text\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"text-anchor\", ctx.textAnchor)(\"transform\", ctx.transform)(\"x\", ctx.x)(\"y\", ctx.y);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.formatedValue, \" \");\n }\n },\n styles: [\".textDataLabel[_ngcontent-%COMP%]{font-size:11px}\"],\n changeDetection: 0\n });\n return BarLabelComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SeriesHorizontal = /*#__PURE__*/(() => {\n class SeriesHorizontal {\n constructor() {\n this.type = BarChartType.Standard;\n this.tooltipDisabled = false;\n this.animations = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.dataLabelWidthChanged = new EventEmitter();\n this.barsForDataLabels = [];\n this.barOrientation = BarOrientation;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.updateTooltipSettings();\n const d0 = {\n [D0Types.positive]: 0,\n [D0Types.negative]: 0\n };\n let d0Type;\n d0Type = D0Types.positive;\n let total;\n if (this.type === BarChartType.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 this.bars = this.series.map(d => {\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 const bar = {\n value,\n label,\n roundEdges,\n data: d,\n formattedLabel\n };\n bar.height = this.yScale.bandwidth();\n if (this.type === BarChartType.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 === BarChartType.Stacked) {\n const offset0 = d0[d0Type];\n const offset1 = offset0 + value;\n d0[d0Type] += value;\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 === BarChartType.Normalized) {\n let offset0 = d0[d0Type];\n let offset1 = offset0 + value;\n d0[d0Type] += value;\n if (total > 0) {\n offset0 = offset0 * 100 / total;\n offset1 = offset1 * 100 / total;\n } else {\n offset0 = 0;\n offset1 = 0;\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 if (this.colors.scaleType === ScaleType.Ordinal) {\n bar.color = this.colors.getColor(label);\n } else {\n if (this.type === BarChartType.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 let tooltipLabel = formattedLabel;\n bar.ariaLabel = formattedLabel + ' ' + value.toLocaleString();\n if (this.seriesName !== null && this.seriesName !== undefined) {\n tooltipLabel = `${this.seriesName} • ${formattedLabel}`;\n bar.data.series = this.seriesName;\n bar.ariaLabel = this.seriesName + ' ' + bar.ariaLabel;\n }\n bar.tooltipText = this.tooltipDisabled ? undefined : `\n ${escapeLabel(tooltipLabel)}\n ${this.dataLabelFormatting ? this.dataLabelFormatting(value) : value.toLocaleString()}\n `;\n return bar;\n });\n this.updateDataLabels();\n }\n updateDataLabels() {\n if (this.type === BarChartType.Stacked) {\n this.barsForDataLabels = [];\n const section = {};\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 = {};\n section.series = 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 updateTooltipSettings() {\n this.tooltipPlacement = this.tooltipDisabled ? undefined : PlacementTypes.Top;\n this.tooltipType = this.tooltipDisabled ? undefined : StyleTypes.tooltip;\n }\n isActive(entry) {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(active => {\n return entry.name === active.name && entry.value === active.value;\n });\n return item !== undefined;\n }\n getLabel(dataItem) {\n if (dataItem.label) {\n return dataItem.label;\n }\n return dataItem.name;\n }\n trackBy(index, bar) {\n return bar.label;\n }\n trackDataLabelBy(index, barLabel) {\n return index + '#' + barLabel.series + '#' + barLabel.total;\n }\n click(data) {\n this.select.emit(data);\n }\n }\n SeriesHorizontal.ɵfac = function SeriesHorizontal_Factory(t) {\n return new (t || SeriesHorizontal)();\n };\n SeriesHorizontal.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SeriesHorizontal,\n selectors: [[\"g\", \"ngx-charts-series-horizontal\", \"\"]],\n inputs: {\n dims: \"dims\",\n type: \"type\",\n series: \"series\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n colors: \"colors\",\n tooltipDisabled: \"tooltipDisabled\",\n gradient: \"gradient\",\n activeEntries: \"activeEntries\",\n seriesName: \"seriesName\",\n tooltipTemplate: \"tooltipTemplate\",\n roundEdges: \"roundEdges\",\n animations: \"animations\",\n showDataLabel: \"showDataLabel\",\n dataLabelFormatting: \"dataLabelFormatting\",\n noBarWhenZero: \"noBarWhenZero\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\",\n dataLabelWidthChanged: \"dataLabelWidthChanged\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c28,\n decls: 2,\n vars: 3,\n consts: [[\"ngx-charts-bar\", \"\", \"ngx-tooltip\", \"\", 3, \"width\", \"height\", \"x\", \"y\", \"fill\", \"stops\", \"data\", \"orientation\", \"roundEdges\", \"gradient\", \"isActive\", \"ariaLabel\", \"animations\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", \"noBarWhenZero\", \"select\", \"activate\", \"deactivate\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [4, \"ngIf\"], [\"ngx-charts-bar\", \"\", \"ngx-tooltip\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"width\", \"height\", \"x\", \"y\", \"fill\", \"stops\", \"data\", \"orientation\", \"roundEdges\", \"gradient\", \"isActive\", \"ariaLabel\", \"animations\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", \"noBarWhenZero\"], [\"ngx-charts-bar-label\", \"\", 3, \"barX\", \"barY\", \"barWidth\", \"barHeight\", \"value\", \"valueFormatting\", \"orientation\", \"dimensionsChanged\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-bar-label\", \"\", 3, \"dimensionsChanged\", \"barX\", \"barY\", \"barWidth\", \"barHeight\", \"value\", \"valueFormatting\", \"orientation\"]],\n template: function SeriesHorizontal_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, SeriesHorizontal__svg_g_0_Template, 1, 21, \"g\", 0)(1, SeriesHorizontal__svg_g_1_Template, 2, 2, \"g\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.bars)(\"ngForTrackBy\", ctx.trackBy);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showDataLabel);\n }\n },\n dependencies: [BarComponent, BarLabelComponent, i2.NgForOf, TooltipDirective, i2.NgIf],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1\n }), animate(500, style({\n opacity: 0\n }))])])]\n },\n changeDetection: 0\n });\n return SeriesHorizontal;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarHorizontalComponent = /*#__PURE__*/(() => {\n class BarHorizontalComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.roundEdges = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxWidth = {\n negative: 0,\n positive: 0\n };\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxWidth = {\n negative: 0,\n positive: 0\n };\n }\n this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\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 this.formatDates();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getXScale() {\n this.xDomain = this.getXDomain();\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.xDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getYScale() {\n this.yDomain = this.getYDomain();\n const spacing = this.yDomain.length / (this.dims.height / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).domain(this.yDomain);\n }\n getXDomain() {\n const values = this.results.map(d => d.value);\n const min = this.xScaleMin ? Math.min(this.xScaleMin, ...values) : Math.min(0, ...values);\n const max = this.xScaleMax ? Math.max(this.xScaleMax, ...values) : Math.max(0, ...values);\n return [min, max];\n }\n getYDomain() {\n return this.results.map(d => d.label);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.yDomain;\n } else {\n domain = this.xDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 return opts;\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\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 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 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 this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n 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 const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n BarHorizontalComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBarHorizontalComponent_BaseFactory;\n return function BarHorizontalComponent_Factory(t) {\n return (ɵBarHorizontalComponent_BaseFactory || (ɵBarHorizontalComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BarHorizontalComponent)))(t || BarHorizontalComponent);\n };\n })();\n BarHorizontalComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarHorizontalComponent,\n selectors: [[\"ngx-charts-bar-horizontal\"]],\n contentQueries: function BarHorizontalComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n tooltipDisabled: \"tooltipDisabled\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n barPadding: \"barPadding\",\n roundDomains: \"roundDomains\",\n roundEdges: \"roundEdges\",\n xScaleMax: \"xScaleMax\",\n xScaleMin: \"xScaleMin\",\n showDataLabel: \"showDataLabel\",\n dataLabelFormatting: \"dataLabelFormatting\",\n noBarWhenZero: \"noBarWhenZero\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 5,\n vars: 25,\n consts: [[3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"bar-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"yAxisOffset\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-series-horizontal\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"dataLabelWidthChanged\", \"xScale\", \"yScale\", \"colors\", \"series\", \"dims\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"activeEntries\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"yAxisOffset\", \"wrapTicks\"]],\n template: function BarHorizontalComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function BarHorizontalComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function BarHorizontalComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event, true);\n })(\"legendLabelDeactivate\", function BarHorizontalComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event, true);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵtemplate(2, BarHorizontalComponent__svg_g_2_Template, 1, 11, \"g\", 2)(3, BarHorizontalComponent__svg_g_3_Template, 1, 10, \"g\", 3);\n i0.ɵɵelementStart(4, \"g\", 4);\n i0.ɵɵlistener(\"select\", function BarHorizontalComponent_Template_g_select_4_listener($event) {\n return ctx.onClick($event);\n })(\"activate\", function BarHorizontalComponent_Template_g_activate_4_listener($event) {\n return ctx.onActivate($event);\n })(\"deactivate\", function BarHorizontalComponent_Template_g_deactivate_4_listener($event) {\n return ctx.onDeactivate($event);\n })(\"dataLabelWidthChanged\", function BarHorizontalComponent_Template_g_dataLabelWidthChanged_4_listener($event) {\n return ctx.onDataLabelMaxWidthChanged($event);\n });\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(22, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx.xScale)(\"yScale\", ctx.yScale)(\"colors\", ctx.colors)(\"series\", ctx.results)(\"dims\", ctx.dims)(\"gradient\", ctx.gradient)(\"tooltipDisabled\", ctx.tooltipDisabled)(\"tooltipTemplate\", ctx.tooltipTemplate)(\"activeEntries\", ctx.activeEntries)(\"roundEdges\", ctx.roundEdges)(\"animations\", ctx.animations)(\"showDataLabel\", ctx.showDataLabel)(\"dataLabelFormatting\", ctx.dataLabelFormatting)(\"noBarWhenZero\", ctx.noBarWhenZero);\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, SeriesHorizontal, i2.NgIf],\n styles: [_c25],\n encapsulation: 2,\n changeDetection: 0\n });\n return BarHorizontalComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarHorizontal2DComponent = /*#__PURE__*/(() => {\n class BarHorizontal2DComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.groupPadding = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.roundEdges = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxWidth = {\n negative: 0,\n positive: 0\n };\n this.isSSR = false;\n this.barOrientation = BarOrientation;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxWidth = {\n negative: 0,\n positive: 0\n };\n }\n this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\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 this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n this.groupScale = this.getGroupScale();\n this.innerScale = this.getInnerScale();\n this.valueScale = this.getValueScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getGroupScale() {\n const spacing = this.groupDomain.length / (this.dims.height / this.groupPadding + 1);\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).paddingOuter(spacing / 2).domain(this.groupDomain);\n }\n getInnerScale() {\n const height = this.groupScale.bandwidth();\n const spacing = this.innerDomain.length / (height / this.barPadding + 1);\n return scaleBand().rangeRound([0, height]).paddingInner(spacing).domain(this.innerDomain);\n }\n getValueScale() {\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\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 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 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 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 groupTransform(group) {\n return `translate(0, ${this.groupScale(group.label)})`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 return opts;\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\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 onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results.map(g => g.series).flat().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 this.activeEntries = [...items];\n this.activate.emit({\n value: item,\n 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 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 this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n BarHorizontal2DComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBarHorizontal2DComponent_BaseFactory;\n return function BarHorizontal2DComponent_Factory(t) {\n return (ɵBarHorizontal2DComponent_BaseFactory || (ɵBarHorizontal2DComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BarHorizontal2DComponent)))(t || BarHorizontal2DComponent);\n };\n })();\n BarHorizontal2DComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarHorizontal2DComponent,\n selectors: [[\"ngx-charts-bar-horizontal-2d\"]],\n contentQueries: function BarHorizontal2DComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n tooltipDisabled: \"tooltipDisabled\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n groupPadding: \"groupPadding\",\n barPadding: \"barPadding\",\n roundDomains: \"roundDomains\",\n roundEdges: \"roundEdges\",\n xScaleMax: \"xScaleMax\",\n showDataLabel: \"showDataLabel\",\n dataLabelFormatting: \"dataLabelFormatting\",\n noBarWhenZero: \"noBarWhenZero\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 7,\n vars: 18,\n consts: [[3, \"legendLabelActivate\", \"legendLabelDeactivate\", \"legendLabelClick\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"bar-chart\", \"chart\"], [\"ngx-charts-grid-panel-series\", \"\", 3, \"xScale\", \"yScale\", \"data\", \"dims\", \"orient\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"yAxisOffset\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"yAxisOffset\", \"wrapTicks\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-series-horizontal\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"dataLabelWidthChanged\", \"xScale\", \"activeEntries\", \"yScale\", \"colors\", \"series\", \"dims\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"seriesName\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"]],\n template: function BarHorizontal2DComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelActivate\", function BarHorizontal2DComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event, undefined, true);\n })(\"legendLabelDeactivate\", function BarHorizontal2DComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event, undefined, true);\n })(\"legendLabelClick\", function BarHorizontal2DComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵelement(2, \"g\", 2);\n i0.ɵɵtemplate(3, BarHorizontal2DComponent__svg_g_3_Template, 1, 11, \"g\", 3)(4, BarHorizontal2DComponent__svg_g_4_Template, 1, 10, \"g\", 4)(5, BarHorizontal2DComponent__svg_g_5_Template, 2, 2, \"g\", 5)(6, BarHorizontal2DComponent__svg_g_6_Template, 2, 2, \"g\", 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(15, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx.valueScale)(\"yScale\", ctx.groupScale)(\"data\", ctx.results)(\"dims\", ctx.dims)(\"orient\", ctx.barOrientation.Horizontal);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n }\n },\n dependencies: [ChartComponent, GridPanelSeriesComponent, XAxisComponent, YAxisComponent, SeriesHorizontal, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1,\n transform: '*'\n }), animate(500, style({\n opacity: 0,\n transform: 'scale(0)'\n }))])])]\n },\n changeDetection: 0\n });\n return BarHorizontal2DComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarHorizontalNormalizedComponent = /*#__PURE__*/(() => {\n class BarHorizontalNormalizedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.noBarWhenZero = true;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.valueDomain = [0, 100];\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.barChartType = BarChartType;\n this.isSSR = false;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\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 this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\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 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 getYScale() {\n const spacing = this.groupDomain.length / (this.dims.height / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).domain(this.groupDomain);\n }\n getXScale() {\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n groupTransform(group) {\n return `translate(0, ${this.yScale(group.name)})`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 return opts;\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results.map(g => g.series).flat().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 this.activeEntries = [...items];\n this.activate.emit({\n value: item,\n 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 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 this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n BarHorizontalNormalizedComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBarHorizontalNormalizedComponent_BaseFactory;\n return function BarHorizontalNormalizedComponent_Factory(t) {\n return (ɵBarHorizontalNormalizedComponent_BaseFactory || (ɵBarHorizontalNormalizedComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BarHorizontalNormalizedComponent)))(t || BarHorizontalNormalizedComponent);\n };\n })();\n BarHorizontalNormalizedComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarHorizontalNormalizedComponent,\n selectors: [[\"ngx-charts-bar-horizontal-normalized\"]],\n contentQueries: function BarHorizontalNormalizedComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n tooltipDisabled: \"tooltipDisabled\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n barPadding: \"barPadding\",\n roundDomains: \"roundDomains\",\n noBarWhenZero: \"noBarWhenZero\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 6,\n vars: 13,\n consts: [[3, \"legendLabelActivate\", \"legendLabelDeactivate\", \"legendLabelClick\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"bar-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-series-horizontal\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"type\", \"xScale\", \"yScale\", \"activeEntries\", \"colors\", \"series\", \"dims\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"seriesName\", \"animations\", \"noBarWhenZero\"]],\n template: function BarHorizontalNormalizedComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelActivate\", function BarHorizontalNormalizedComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event, undefined, true);\n })(\"legendLabelDeactivate\", function BarHorizontalNormalizedComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event, undefined, true);\n })(\"legendLabelClick\", function BarHorizontalNormalizedComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵtemplate(2, BarHorizontalNormalizedComponent__svg_g_2_Template, 1, 11, \"g\", 2)(3, BarHorizontalNormalizedComponent__svg_g_3_Template, 1, 9, \"g\", 3)(4, BarHorizontalNormalizedComponent__svg_g_4_Template, 2, 2, \"g\", 4)(5, BarHorizontalNormalizedComponent__svg_g_5_Template, 2, 2, \"g\", 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(10, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, SeriesHorizontal, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1,\n transform: '*'\n }), animate(500, style({\n opacity: 0,\n transform: 'scale(0)'\n }))])])]\n },\n changeDetection: 0\n });\n return BarHorizontalNormalizedComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarHorizontalStackedComponent = /*#__PURE__*/(() => {\n class BarHorizontalStackedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxWidth = {\n negative: 0,\n positive: 0\n };\n this.barChartType = BarChartType;\n this.isSSR = false;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxWidth = {\n negative: 0,\n positive: 0\n };\n }\n this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\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 this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\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 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 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 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 getYScale() {\n const spacing = this.groupDomain.length / (this.dims.height / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).domain(this.groupDomain);\n }\n getXScale() {\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n groupTransform(group) {\n return `translate(0, ${this.yScale(group.name)})`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 return opts;\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\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 onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results.map(g => g.series).flat().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 this.activeEntries = [...items];\n this.activate.emit({\n value: item,\n 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 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 this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n BarHorizontalStackedComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBarHorizontalStackedComponent_BaseFactory;\n return function BarHorizontalStackedComponent_Factory(t) {\n return (ɵBarHorizontalStackedComponent_BaseFactory || (ɵBarHorizontalStackedComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BarHorizontalStackedComponent)))(t || BarHorizontalStackedComponent);\n };\n })();\n BarHorizontalStackedComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarHorizontalStackedComponent,\n selectors: [[\"ngx-charts-bar-horizontal-stacked\"]],\n contentQueries: function BarHorizontalStackedComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n tooltipDisabled: \"tooltipDisabled\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n barPadding: \"barPadding\",\n roundDomains: \"roundDomains\",\n xScaleMax: \"xScaleMax\",\n showDataLabel: \"showDataLabel\",\n dataLabelFormatting: \"dataLabelFormatting\",\n noBarWhenZero: \"noBarWhenZero\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 6,\n vars: 13,\n consts: [[3, \"legendLabelActivate\", \"legendLabelDeactivate\", \"legendLabelClick\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"bar-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"yAxisOffset\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"yAxisOffset\", \"wrapTicks\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-series-horizontal\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"dataLabelWidthChanged\", \"type\", \"xScale\", \"yScale\", \"colors\", \"series\", \"activeEntries\", \"dims\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"seriesName\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"]],\n template: function BarHorizontalStackedComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelActivate\", function BarHorizontalStackedComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event, undefined, true);\n })(\"legendLabelDeactivate\", function BarHorizontalStackedComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event, undefined, true);\n })(\"legendLabelClick\", function BarHorizontalStackedComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵtemplate(2, BarHorizontalStackedComponent__svg_g_2_Template, 1, 11, \"g\", 2)(3, BarHorizontalStackedComponent__svg_g_3_Template, 1, 10, \"g\", 3)(4, BarHorizontalStackedComponent__svg_g_4_Template, 2, 2, \"g\", 4)(5, BarHorizontalStackedComponent__svg_g_5_Template, 2, 2, \"g\", 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(10, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, SeriesHorizontal, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1,\n transform: '*'\n }), animate(500, style({\n opacity: 0,\n transform: 'scale(0)'\n }))])])]\n },\n changeDetection: 0\n });\n return BarHorizontalStackedComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SeriesVerticalComponent = /*#__PURE__*/(() => {\n class SeriesVerticalComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.type = BarChartType.Standard;\n this.tooltipDisabled = false;\n this.animations = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.dataLabelHeightChanged = new EventEmitter();\n this.barsForDataLabels = [];\n this.barOrientation = BarOrientation;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\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 const d0 = {\n [D0Types.positive]: 0,\n [D0Types.negative]: 0\n };\n let d0Type = D0Types.positive;\n let total;\n if (this.type === BarChartType.Normalized) {\n total = this.series.map(d => d.value).reduce((sum, d) => sum + d, 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 const bar = {\n value,\n label,\n roundEdges,\n data: d,\n width,\n formattedLabel,\n height: 0,\n x: 0,\n y: 0\n };\n if (this.type === BarChartType.Standard) {\n bar.height = Math.abs(this.yScale(value) - this.yScale(yScaleMin));\n bar.x = this.xScale(label);\n if (value < 0) {\n bar.y = this.yScale(0);\n } else {\n bar.y = this.yScale(value);\n }\n } else if (this.type === BarChartType.Stacked) {\n const offset0 = d0[d0Type];\n const offset1 = offset0 + value;\n d0[d0Type] += value;\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 === BarChartType.Normalized) {\n let offset0 = d0[d0Type];\n let offset1 = offset0 + value;\n d0[d0Type] += value;\n if (total > 0) {\n offset0 = offset0 * 100 / total;\n offset1 = offset1 * 100 / total;\n } else {\n offset0 = 0;\n offset1 = 0;\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 if (this.colors.scaleType === ScaleType.Ordinal) {\n bar.color = this.colors.getColor(label);\n } else {\n if (this.type === BarChartType.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 let tooltipLabel = formattedLabel;\n bar.ariaLabel = formattedLabel + ' ' + value.toLocaleString();\n if (this.seriesName !== null && this.seriesName !== undefined) {\n tooltipLabel = `${this.seriesName} • ${formattedLabel}`;\n bar.data.series = this.seriesName;\n bar.ariaLabel = this.seriesName + ' ' + bar.ariaLabel;\n }\n bar.tooltipText = this.tooltipDisabled ? undefined : `\n ${escapeLabel(tooltipLabel)}\n ${this.dataLabelFormatting ? this.dataLabelFormatting(value) : value.toLocaleString()}\n `;\n return bar;\n });\n this.updateDataLabels();\n }\n updateDataLabels() {\n if (this.type === BarChartType.Stacked) {\n this.barsForDataLabels = [];\n const section = {};\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 = {};\n section.series = 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 updateTooltipSettings() {\n this.tooltipPlacement = this.tooltipDisabled ? undefined : PlacementTypes.Top;\n this.tooltipType = this.tooltipDisabled ? undefined : StyleTypes.tooltip;\n }\n isActive(entry) {\n if (!this.activeEntries) return false;\n const item = this.activeEntries.find(active => {\n return entry.name === active.name && entry.value === active.value;\n });\n return item !== undefined;\n }\n onClick(data) {\n this.select.emit(data);\n }\n getLabel(dataItem) {\n if (dataItem.label) {\n return dataItem.label;\n }\n return dataItem.name;\n }\n trackBy(index, bar) {\n return bar.label;\n }\n trackDataLabelBy(index, barLabel) {\n return index + '#' + barLabel.series + '#' + barLabel.total;\n }\n }\n SeriesVerticalComponent.ɵfac = function SeriesVerticalComponent_Factory(t) {\n return new (t || SeriesVerticalComponent)(i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n SeriesVerticalComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SeriesVerticalComponent,\n selectors: [[\"g\", \"ngx-charts-series-vertical\", \"\"]],\n inputs: {\n dims: \"dims\",\n type: \"type\",\n series: \"series\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n colors: \"colors\",\n gradient: \"gradient\",\n activeEntries: \"activeEntries\",\n seriesName: \"seriesName\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipTemplate: \"tooltipTemplate\",\n roundEdges: \"roundEdges\",\n animations: \"animations\",\n showDataLabel: \"showDataLabel\",\n dataLabelFormatting: \"dataLabelFormatting\",\n noBarWhenZero: \"noBarWhenZero\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\",\n dataLabelHeightChanged: \"dataLabelHeightChanged\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c29,\n decls: 3,\n vars: 3,\n consts: [[4, \"ngIf\"], [\"ngx-charts-bar\", \"\", \"ngx-tooltip\", \"\", 3, \"width\", \"height\", \"x\", \"y\", \"fill\", \"stops\", \"data\", \"orientation\", \"roundEdges\", \"gradient\", \"ariaLabel\", \"isActive\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", \"noBarWhenZero\", \"animations\", \"select\", \"activate\", \"deactivate\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-bar\", \"\", \"ngx-tooltip\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"width\", \"height\", \"x\", \"y\", \"fill\", \"stops\", \"data\", \"orientation\", \"roundEdges\", \"gradient\", \"ariaLabel\", \"isActive\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", \"noBarWhenZero\", \"animations\"], [\"ngx-charts-bar-label\", \"\", 3, \"barX\", \"barY\", \"barWidth\", \"barHeight\", \"value\", \"valueFormatting\", \"orientation\", \"dimensionsChanged\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-bar-label\", \"\", 3, \"dimensionsChanged\", \"barX\", \"barY\", \"barWidth\", \"barHeight\", \"value\", \"valueFormatting\", \"orientation\"]],\n template: function SeriesVerticalComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, SeriesVerticalComponent__svg_g_0_Template, 2, 2, \"g\", 0)(1, SeriesVerticalComponent__svg_g_1_Template, 2, 2, \"g\", 0)(2, SeriesVerticalComponent__svg_g_2_Template, 2, 2, \"g\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showDataLabel);\n }\n },\n dependencies: [BarComponent, BarLabelComponent, i2.NgIf, i2.NgForOf, TooltipDirective],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1\n }), animate(500, style({\n opacity: 0\n }))])])]\n },\n changeDetection: 0\n });\n return SeriesVerticalComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarVerticalComponent = /*#__PURE__*/(() => {\n class BarVerticalComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.roundEdges = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxHeight = {\n negative: 0,\n positive: 0\n };\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxHeight = {\n negative: 0,\n positive: 0\n };\n }\n this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\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 this.formatDates();\n if (this.showDataLabel) {\n this.dims.height -= this.dataLabelMaxHeight.negative;\n }\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n }\n getXScale() {\n this.xDomain = this.getXDomain();\n const spacing = this.xDomain.length / (this.dims.width / this.barPadding + 1);\n return scaleBand().range([0, this.dims.width]).paddingInner(spacing).domain(this.xDomain);\n }\n getYScale() {\n this.yDomain = this.getYDomain();\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.yDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getXDomain() {\n return this.results.map(d => d.label);\n }\n getYDomain() {\n const values = this.results.map(d => d.value);\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 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 onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.xDomain;\n } else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\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 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 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 this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n 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 const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n BarVerticalComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBarVerticalComponent_BaseFactory;\n return function BarVerticalComponent_Factory(t) {\n return (ɵBarVerticalComponent_BaseFactory || (ɵBarVerticalComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BarVerticalComponent)))(t || BarVerticalComponent);\n };\n })();\n BarVerticalComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarVerticalComponent,\n selectors: [[\"ngx-charts-bar-vertical\"]],\n contentQueries: function BarVerticalComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n tooltipDisabled: \"tooltipDisabled\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n barPadding: \"barPadding\",\n roundDomains: \"roundDomains\",\n roundEdges: \"roundEdges\",\n yScaleMax: \"yScaleMax\",\n yScaleMin: \"yScaleMin\",\n showDataLabel: \"showDataLabel\",\n dataLabelFormatting: \"dataLabelFormatting\",\n noBarWhenZero: \"noBarWhenZero\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 5,\n vars: 25,\n consts: [[3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"bar-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"xAxisOffset\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-series-vertical\", \"\", 3, \"activate\", \"deactivate\", \"select\", \"dataLabelHeightChanged\", \"xScale\", \"yScale\", \"colors\", \"series\", \"dims\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"showDataLabel\", \"dataLabelFormatting\", \"activeEntries\", \"roundEdges\", \"animations\", \"noBarWhenZero\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"xAxisOffset\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"]],\n template: function BarVerticalComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function BarVerticalComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function BarVerticalComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event, true);\n })(\"legendLabelDeactivate\", function BarVerticalComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event, true);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵtemplate(2, BarVerticalComponent__svg_g_2_Template, 1, 12, \"g\", 2)(3, BarVerticalComponent__svg_g_3_Template, 1, 10, \"g\", 3);\n i0.ɵɵelementStart(4, \"g\", 4);\n i0.ɵɵlistener(\"activate\", function BarVerticalComponent_Template_g_activate_4_listener($event) {\n return ctx.onActivate($event);\n })(\"deactivate\", function BarVerticalComponent_Template_g_deactivate_4_listener($event) {\n return ctx.onDeactivate($event);\n })(\"select\", function BarVerticalComponent_Template_g_select_4_listener($event) {\n return ctx.onClick($event);\n })(\"dataLabelHeightChanged\", function BarVerticalComponent_Template_g_dataLabelHeightChanged_4_listener($event) {\n return ctx.onDataLabelMaxHeightChanged($event);\n });\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(22, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx.xScale)(\"yScale\", ctx.yScale)(\"colors\", ctx.colors)(\"series\", ctx.results)(\"dims\", ctx.dims)(\"gradient\", ctx.gradient)(\"tooltipDisabled\", ctx.tooltipDisabled)(\"tooltipTemplate\", ctx.tooltipTemplate)(\"showDataLabel\", ctx.showDataLabel)(\"dataLabelFormatting\", ctx.dataLabelFormatting)(\"activeEntries\", ctx.activeEntries)(\"roundEdges\", ctx.roundEdges)(\"animations\", ctx.animations)(\"noBarWhenZero\", ctx.noBarWhenZero);\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, SeriesVerticalComponent, i2.NgIf],\n styles: [_c25],\n encapsulation: 2,\n changeDetection: 0\n });\n return BarVerticalComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarVertical2DComponent = /*#__PURE__*/(() => {\n class BarVertical2DComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.scaleType = ScaleType.Ordinal;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.groupPadding = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.roundEdges = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxHeight = {\n negative: 0,\n positive: 0\n };\n this.isSSR = false;\n this.barOrientation = BarOrientation;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxHeight = {\n negative: 0,\n positive: 0\n };\n }\n this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\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 if (this.showDataLabel) {\n this.dims.height -= this.dataLabelMaxHeight.negative;\n }\n this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n this.groupScale = this.getGroupScale();\n this.innerScale = this.getInnerScale();\n this.valueScale = this.getValueScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\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 getGroupScale() {\n const spacing = this.groupDomain.length / (this.dims.height / this.groupPadding + 1);\n return scaleBand().rangeRound([0, this.dims.width]).paddingInner(spacing).paddingOuter(spacing / 2).domain(this.groupDomain);\n }\n getInnerScale() {\n const width = this.groupScale.bandwidth();\n const spacing = this.innerDomain.length / (width / this.barPadding + 1);\n return scaleBand().rangeRound([0, width]).paddingInner(spacing).domain(this.innerDomain);\n }\n getValueScale() {\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\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 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 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 const min = Math.min(0, ...domain);\n const max = this.yScaleMax ? Math.max(this.yScaleMax, ...domain) : Math.max(0, ...domain);\n return [min, max];\n }\n groupTransform(group) {\n return `translate(${this.groupScale(group.label)}, 0)`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 return opts;\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results.map(g => g.series).flat().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 this.activeEntries = [...items];\n this.activate.emit({\n value: item,\n 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 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 this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n BarVertical2DComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBarVertical2DComponent_BaseFactory;\n return function BarVertical2DComponent_Factory(t) {\n return (ɵBarVertical2DComponent_BaseFactory || (ɵBarVertical2DComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BarVertical2DComponent)))(t || BarVertical2DComponent);\n };\n })();\n BarVertical2DComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarVertical2DComponent,\n selectors: [[\"ngx-charts-bar-vertical-2d\"]],\n contentQueries: function BarVertical2DComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n tooltipDisabled: \"tooltipDisabled\",\n scaleType: \"scaleType\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n groupPadding: \"groupPadding\",\n barPadding: \"barPadding\",\n roundDomains: \"roundDomains\",\n roundEdges: \"roundEdges\",\n yScaleMax: \"yScaleMax\",\n showDataLabel: \"showDataLabel\",\n dataLabelFormatting: \"dataLabelFormatting\",\n noBarWhenZero: \"noBarWhenZero\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 7,\n vars: 18,\n consts: [[3, \"legendLabelActivate\", \"legendLabelDeactivate\", \"legendLabelClick\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"bar-chart\", \"chart\"], [\"ngx-charts-grid-panel-series\", \"\", 3, \"xScale\", \"yScale\", \"data\", \"dims\", \"orient\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"xAxisOffset\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"xAxisOffset\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-series-vertical\", \"\", 3, \"activeEntries\", \"xScale\", \"yScale\", \"colors\", \"series\", \"dims\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"showDataLabel\", \"dataLabelFormatting\", \"seriesName\", \"roundEdges\", \"animations\", \"noBarWhenZero\", \"select\", \"activate\", \"deactivate\", \"dataLabelHeightChanged\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-series-vertical\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"dataLabelHeightChanged\", \"activeEntries\", \"xScale\", \"yScale\", \"colors\", \"series\", \"dims\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"showDataLabel\", \"dataLabelFormatting\", \"seriesName\", \"roundEdges\", \"animations\", \"noBarWhenZero\"]],\n template: function BarVertical2DComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelActivate\", function BarVertical2DComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event, undefined, true);\n })(\"legendLabelDeactivate\", function BarVertical2DComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event, undefined, true);\n })(\"legendLabelClick\", function BarVertical2DComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵelement(2, \"g\", 2);\n i0.ɵɵtemplate(3, BarVertical2DComponent__svg_g_3_Template, 1, 11, \"g\", 3)(4, BarVertical2DComponent__svg_g_4_Template, 1, 10, \"g\", 4)(5, BarVertical2DComponent__svg_g_5_Template, 2, 2, \"g\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, BarVertical2DComponent__svg_g_6_Template, 2, 2, \"g\", 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(15, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx.groupScale)(\"yScale\", ctx.valueScale)(\"data\", ctx.results)(\"dims\", ctx.dims)(\"orient\", ctx.barOrientation.Vertical);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n }\n },\n dependencies: [ChartComponent, GridPanelSeriesComponent, XAxisComponent, YAxisComponent, SeriesVerticalComponent, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1,\n transform: '*'\n }), animate(500, style({\n opacity: 0,\n transform: 'scale(0)'\n }))])])]\n },\n changeDetection: 0\n });\n return BarVertical2DComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarVerticalNormalizedComponent = /*#__PURE__*/(() => {\n class BarVerticalNormalizedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.noBarWhenZero = true;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.valueDomain = [0, 100];\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.isSSR = false;\n this.barChartType = BarChartType;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\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 this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\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 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 getXScale() {\n const spacing = this.groupDomain.length / (this.dims.width / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.width]).paddingInner(spacing).domain(this.groupDomain);\n }\n getYScale() {\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n groupTransform(group) {\n return `translate(${this.xScale(group.name)}, 0)`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 return opts;\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results.map(g => g.series).flat().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 this.activeEntries = [...items];\n this.activate.emit({\n value: item,\n 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 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 this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n BarVerticalNormalizedComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBarVerticalNormalizedComponent_BaseFactory;\n return function BarVerticalNormalizedComponent_Factory(t) {\n return (ɵBarVerticalNormalizedComponent_BaseFactory || (ɵBarVerticalNormalizedComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BarVerticalNormalizedComponent)))(t || BarVerticalNormalizedComponent);\n };\n })();\n BarVerticalNormalizedComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarVerticalNormalizedComponent,\n selectors: [[\"ngx-charts-bar-vertical-normalized\"]],\n contentQueries: function BarVerticalNormalizedComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n tooltipDisabled: \"tooltipDisabled\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n barPadding: \"barPadding\",\n roundDomains: \"roundDomains\",\n noBarWhenZero: \"noBarWhenZero\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 6,\n vars: 13,\n consts: [[3, \"legendLabelActivate\", \"legendLabelDeactivate\", \"legendLabelClick\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"bar-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-series-vertical\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"type\", \"xScale\", \"yScale\", \"activeEntries\", \"colors\", \"series\", \"dims\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"seriesName\", \"animations\", \"noBarWhenZero\"]],\n template: function BarVerticalNormalizedComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelActivate\", function BarVerticalNormalizedComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event, undefined, true);\n })(\"legendLabelDeactivate\", function BarVerticalNormalizedComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event, undefined, true);\n })(\"legendLabelClick\", function BarVerticalNormalizedComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵtemplate(2, BarVerticalNormalizedComponent__svg_g_2_Template, 1, 10, \"g\", 2)(3, BarVerticalNormalizedComponent__svg_g_3_Template, 1, 10, \"g\", 3)(4, BarVerticalNormalizedComponent__svg_g_4_Template, 2, 2, \"g\", 4)(5, BarVerticalNormalizedComponent__svg_g_5_Template, 2, 2, \"g\", 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(10, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, SeriesVerticalComponent, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1,\n transform: '*'\n }), animate(500, style({\n opacity: 0,\n transform: 'scale(0)'\n }))])])]\n },\n changeDetection: 0\n });\n return BarVerticalNormalizedComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarVerticalStackedComponent = /*#__PURE__*/(() => {\n class BarVerticalStackedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxHeight = {\n negative: 0,\n positive: 0\n };\n this.isSSR = false;\n this.barChartType = BarChartType;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxHeight = {\n negative: 0,\n positive: 0\n };\n }\n this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\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 if (this.showDataLabel) {\n this.dims.height -= this.dataLabelMaxHeight.negative;\n }\n this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\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 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 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 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 getXScale() {\n const spacing = this.groupDomain.length / (this.dims.width / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.width]).paddingInner(spacing).domain(this.groupDomain);\n }\n getYScale() {\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\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 groupTransform(group) {\n return `translate(${this.xScale(group.name) || 0}, 0)`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n } else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 return opts;\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results.map(g => g.series).flat().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 this.activeEntries = [...items];\n this.activate.emit({\n value: item,\n 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 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 this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n BarVerticalStackedComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBarVerticalStackedComponent_BaseFactory;\n return function BarVerticalStackedComponent_Factory(t) {\n return (ɵBarVerticalStackedComponent_BaseFactory || (ɵBarVerticalStackedComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BarVerticalStackedComponent)))(t || BarVerticalStackedComponent);\n };\n })();\n BarVerticalStackedComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarVerticalStackedComponent,\n selectors: [[\"ngx-charts-bar-vertical-stacked\"]],\n contentQueries: function BarVerticalStackedComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n tooltipDisabled: \"tooltipDisabled\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n barPadding: \"barPadding\",\n roundDomains: \"roundDomains\",\n yScaleMax: \"yScaleMax\",\n showDataLabel: \"showDataLabel\",\n dataLabelFormatting: \"dataLabelFormatting\",\n noBarWhenZero: \"noBarWhenZero\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 6,\n vars: 13,\n consts: [[3, \"legendLabelActivate\", \"legendLabelDeactivate\", \"legendLabelClick\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"bar-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"xAxisOffset\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"xAxisOffset\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-series-vertical\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"dataLabelHeightChanged\", \"type\", \"xScale\", \"yScale\", \"activeEntries\", \"colors\", \"series\", \"dims\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"showDataLabel\", \"dataLabelFormatting\", \"seriesName\", \"animations\", \"noBarWhenZero\"]],\n template: function BarVerticalStackedComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelActivate\", function BarVerticalStackedComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event, undefined, true);\n })(\"legendLabelDeactivate\", function BarVerticalStackedComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event, undefined, true);\n })(\"legendLabelClick\", function BarVerticalStackedComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵtemplate(2, BarVerticalStackedComponent__svg_g_2_Template, 1, 11, \"g\", 2)(3, BarVerticalStackedComponent__svg_g_3_Template, 1, 10, \"g\", 3)(4, BarVerticalStackedComponent__svg_g_4_Template, 2, 2, \"g\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, BarVerticalStackedComponent__svg_g_5_Template, 2, 2, \"g\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(10, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, SeriesVerticalComponent, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1,\n transform: '*'\n }), animate(500, style({\n opacity: 0,\n transform: 'scale(0)'\n }))])])]\n },\n changeDetection: 0\n });\n return BarVerticalStackedComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BarChartModule = /*#__PURE__*/(() => {\n class BarChartModule {}\n BarChartModule.ɵfac = function BarChartModule_Factory(t) {\n return new (t || BarChartModule)();\n };\n BarChartModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BarChartModule\n });\n BarChartModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return BarChartModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst cloneDeep = rfdc();\nlet BoxComponent = /*#__PURE__*/(() => {\n class BoxComponent {\n constructor(element, cd) {\n this.cd = cd;\n this.roundEdges = true;\n this.gradient = false;\n this.offset = 0;\n this.isActive = false;\n this.animations = true;\n this.noBarWhenZero = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.BarOrientation = BarOrientation;\n this.initialized = false;\n this.hasGradient = false;\n this.hideBar = false;\n this.nativeElm = element.nativeElement;\n }\n ngOnChanges(changes) {\n if (!this.initialized) {\n this.loadAnimation();\n this.initialized = true;\n } else {\n this.update();\n }\n }\n update() {\n this.boxStrokeWidth = Math.max(this.strokeWidth, 1);\n this.whiskerStrokeWidth = Math.max(this.strokeWidth / 2, 1);\n this.medianLineWidth = 1.5 * this.strokeWidth;\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n if (this.gradient) {\n this.gradientStops = this.getGradient();\n this.hasGradient = true;\n } else {\n this.hasGradient = false;\n }\n this.updateLineEl();\n this.updatePathEl();\n this.checkToHideBar();\n this.maskLineId = 'mask' + id().toString();\n this.maskLine = `url(#${this.maskLineId})`;\n if (this.cd) {\n this.cd.markForCheck();\n }\n }\n loadAnimation() {\n this.boxPath = this.oldPath = this.getStartingPath();\n this.oldLineCoordinates = this.getStartingLineCoordinates();\n setTimeout(this.update.bind(this), 100);\n }\n updatePathEl() {\n const nodeBar = select(this.nativeElm).selectAll('.bar');\n const path = this.getPath();\n if (this.animations) {\n nodeBar.attr('d', this.oldPath).transition().ease(easeSinInOut).duration(500).attrTween('d', this.pathTween(path, 4));\n } else {\n nodeBar.attr('d', path);\n }\n this.oldPath = path;\n }\n updateLineEl() {\n const lineEl = select(this.nativeElm).selectAll('.bar-line');\n const lineCoordinates = this.lineCoordinates;\n const oldLineCoordinates = this.oldLineCoordinates;\n if (this.animations) {\n lineEl.attr('x1', (_, index) => oldLineCoordinates[index].v1.x).attr('y1', (_, index) => oldLineCoordinates[index].v1.y).attr('x2', (_, index) => oldLineCoordinates[index].v2.x).attr('y2', (_, index) => oldLineCoordinates[index].v2.y).transition().ease(easeSinInOut).duration(500).attr('x1', (_, index) => lineCoordinates[index].v1.x).attr('y1', (_, index) => lineCoordinates[index].v1.y).attr('x2', (_, index) => lineCoordinates[index].v2.x).attr('y2', (_, index) => lineCoordinates[index].v2.y);\n } else {\n lineEl.attr('x1', (_, index) => lineCoordinates[index].v1.x).attr('y1', (_, index) => lineCoordinates[index].v1.y).attr('x2', (_, index) => lineCoordinates[index].v2.x).attr('y2', (_, index) => lineCoordinates[index].v2.y);\n }\n this.oldLineCoordinates = [...lineCoordinates];\n }\n /**\n * See [D3 Selections](https://www.d3indepth.com/selections/)\n * @param d The joined data.\n * @param index The index of the element within the selection\n * @param node The node element (Line).\n */\n lineTween(attr, d, index, node) {\n const nodeLineEl = node[index];\n return nodeLineEl[attr].baseVal.value;\n }\n // TODO: Refactor into another .ts file if https://github.com/swimlane/ngx-charts/pull/1179 gets merged.\n pathTween(d1, precision) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const path0 = this;\n const path1 = this.cloneNode();\n path1.setAttribute('d', d1);\n const n0 = path0?.getTotalLength();\n const n1 = path1?.getTotalLength();\n // Uniform sampling of distance based on specified precision.\n const distances = [0];\n let i = 0;\n const dt = precision / Math.max(n0, n1);\n while (i < 1) {\n distances.push(i);\n i += dt;\n }\n distances.push(1);\n // Compute point-interpolators at each distance.\n const points = distances.map(t => {\n const p0 = path0.getPointAtLength(t * n0);\n const p1 = path1.getPointAtLength(t * n1);\n return interpolate([p0.x, p0.y], [p1.x, p1.y]);\n });\n // 't': T is the fraction of time (between 0 and 1) since the transition began.\n return t => {\n return t < 1 ? 'M' + points.map(p => p(t)).join('L') : d1;\n };\n };\n }\n getStartingPath() {\n if (!this.animations) {\n return this.getPath();\n }\n const radius = this.roundEdges ? 1 : 0;\n const {\n x,\n y\n } = this.lineCoordinates[2].v1;\n return roundedRect(x - this.width, y - 1, this.width, 2, radius, this.edges);\n }\n getPath() {\n const radius = this.getRadius();\n let path = '';\n path = roundedRect(this.x, this.y, this.width, this.height, Math.min(this.height, radius), this.edges);\n return path;\n }\n getStartingLineCoordinates() {\n if (!this.animations) {\n return [...this.lineCoordinates];\n }\n const lineCoordinates = cloneDeep(this.lineCoordinates);\n lineCoordinates[1].v1.y = lineCoordinates[1].v2.y = lineCoordinates[3].v1.y = lineCoordinates[3].v2.y = lineCoordinates[0].v1.y = lineCoordinates[0].v2.y = lineCoordinates[2].v1.y;\n return lineCoordinates;\n }\n getRadius() {\n let radius = 0;\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 return radius;\n }\n getGradient() {\n return [{\n offset: 0,\n color: this.fill,\n opacity: this.getStartOpacity()\n }, {\n offset: 100,\n color: this.fill,\n opacity: 1\n }];\n }\n getStartOpacity() {\n if (this.roundEdges) {\n return 0.2;\n } else {\n return 0.5;\n }\n }\n get edges() {\n let edges = [false, false, false, false];\n if (this.roundEdges) {\n edges = [true, true, true, true];\n }\n return edges;\n }\n onMouseEnter() {\n this.activate.emit(this.data);\n }\n onMouseLeave() {\n this.deactivate.emit(this.data);\n }\n checkToHideBar() {\n this.hideBar = this.noBarWhenZero && this.height === 0;\n }\n }\n BoxComponent.ɵfac = function BoxComponent_Factory(t) {\n return new (t || BoxComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n BoxComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BoxComponent,\n selectors: [[\"g\", \"ngx-charts-box\", \"\"]],\n hostBindings: function BoxComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseenter\", function BoxComponent_mouseenter_HostBindingHandler() {\n return ctx.onMouseEnter();\n })(\"mouseleave\", function BoxComponent_mouseleave_HostBindingHandler() {\n return ctx.onMouseLeave();\n });\n }\n },\n inputs: {\n strokeColor: \"strokeColor\",\n strokeWidth: \"strokeWidth\",\n fill: \"fill\",\n data: \"data\",\n width: \"width\",\n height: \"height\",\n x: \"x\",\n y: \"y\",\n lineCoordinates: \"lineCoordinates\",\n roundEdges: \"roundEdges\",\n gradient: \"gradient\",\n gradientStops: \"gradientStops\",\n offset: \"offset\",\n isActive: \"isActive\",\n animations: \"animations\",\n ariaLabel: \"ariaLabel\",\n noBarWhenZero: \"noBarWhenZero\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c30,\n decls: 9,\n vars: 13,\n consts: [[\"ngx-charts-svg-linear-gradient\", \"\", 3, \"orientation\", \"name\", \"stops\", 4, \"ngIf\"], [\"height\", \"100%\", \"width\", \"100%\", \"fill\", \"white\", \"fill-opacity\", \"1\"], [\"fill\", \"black\", \"fill-opacity\", \"1\", 1, \"bar\"], [\"role\", \"img\", \"tabIndex\", \"-1\", 1, \"bar\", 3, \"click\"], [\"class\", \"bar-line\", \"fill\", \"none\", 3, \"hidden\", 4, \"ngFor\", \"ngForOf\"], [\"ngx-charts-svg-linear-gradient\", \"\", 3, \"orientation\", \"name\", \"stops\"], [\"fill\", \"none\", 1, \"bar-line\"]],\n template: function BoxComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"defs\");\n i0.ɵɵtemplate(1, BoxComponent__svg_g_1_Template, 1, 3, \"g\", 0);\n i0.ɵɵelementStart(2, \"mask\")(3, \"g\");\n i0.ɵɵelement(4, \"rect\", 1)(5, \"path\", 2);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(6, \"g\")(7, \"path\", 3);\n i0.ɵɵlistener(\"click\", function BoxComponent_Template_path_click_7_listener() {\n return ctx.select.emit(ctx.data);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(8, BoxComponent__svg_line_8_Template, 1, 9, \"line\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.hasGradient);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"id\", ctx.maskLineId);\n i0.ɵɵadvance(3);\n i0.ɵɵattribute(\"d\", ctx.boxPath);\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"active\", ctx.isActive)(\"hidden\", ctx.hideBar);\n i0.ɵɵattribute(\"d\", ctx.boxPath)(\"stroke\", ctx.strokeColor)(\"stroke-width\", ctx.boxStrokeWidth)(\"aria-label\", ctx.ariaLabel)(\"fill\", ctx.hasGradient ? ctx.gradientFill : ctx.fill);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.lineCoordinates);\n }\n },\n dependencies: [SvgLinearGradientComponent, i2.NgIf, i2.NgForOf],\n encapsulation: 2,\n changeDetection: 0\n });\n return BoxComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BoxSeriesComponent = /*#__PURE__*/(() => {\n class BoxSeriesComponent {\n constructor() {\n this.animations = true;\n this.tooltipDisabled = false;\n this.gradient = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n }\n ngOnChanges(changes) {\n this.update();\n }\n onClick(data) {\n this.select.emit(data);\n }\n update() {\n this.updateTooltipSettings();\n const width = this.series && this.series.series.length ? Math.round(this.xScale.bandwidth()) : null;\n const seriesName = this.series.name;\n // Calculate Quantile and Whiskers for each box serie.\n this.counts = this.series.series;\n const mappedCounts = this.counts.map(serie => Number(serie.value));\n this.whiskers = [min(mappedCounts), max(mappedCounts)];\n // We get the group count and must sort it in order to retrieve quantiles.\n const groupCounts = this.counts.map(item => item.value).sort((a, b) => Number(a) - Number(b));\n this.quartiles = this.getBoxQuantiles(groupCounts);\n this.lineCoordinates = this.getLinesCoordinates(seriesName.toString(), this.whiskers, this.quartiles, width);\n const value = this.quartiles[1];\n const formattedLabel = formatLabel(seriesName);\n const box = {\n value,\n data: this.counts,\n label: seriesName,\n formattedLabel,\n width,\n height: 0,\n x: 0,\n y: 0,\n roundEdges: this.roundEdges,\n quartiles: this.quartiles,\n lineCoordinates: this.lineCoordinates\n };\n box.height = Math.abs(this.yScale(this.quartiles[0]) - this.yScale(this.quartiles[2]));\n box.x = this.xScale(seriesName.toString());\n box.y = this.yScale(this.quartiles[2]);\n box.ariaLabel = formattedLabel + ' - Median: ' + value.toLocaleString();\n if (this.colors.scaleType === ScaleType.Ordinal) {\n box.color = this.colors.getColor(seriesName);\n } else {\n box.color = this.colors.getColor(this.quartiles[1]);\n box.gradientStops = this.colors.getLinearGradientStops(this.quartiles[0], this.quartiles[2]);\n }\n const tooltipLabel = formattedLabel;\n const formattedTooltipLabel = `\n ${escapeLabel(tooltipLabel)}\n \n • Q1: ${this.quartiles[0]} • Q2: ${this.quartiles[1]} • Q3: ${this.quartiles[2]}
\n • Min: ${this.whiskers[0]} • Max: ${this.whiskers[1]}\n
`;\n box.tooltipText = this.tooltipDisabled ? undefined : formattedTooltipLabel;\n this.tooltipTitle = this.tooltipDisabled ? undefined : box.tooltipText;\n this.box = box;\n }\n getBoxQuantiles(inputData) {\n return [quantile(inputData, 0.25), quantile(inputData, 0.5), quantile(inputData, 0.75)];\n }\n getLinesCoordinates(seriesName, whiskers, quartiles, barWidth) {\n // The X value is not being centered, so had to sum half the width to align it.\n const commonX = this.xScale(seriesName);\n const offsetX = commonX + barWidth / 2;\n const medianLineWidth = Math.max(barWidth + 4 * this.strokeWidth, 1);\n const whiskerLineWidth = Math.max(barWidth / 3, 1);\n const whiskerZero = this.yScale(whiskers[0]);\n const whiskerOne = this.yScale(whiskers[1]);\n const median = this.yScale(quartiles[1]);\n const topLine = {\n v1: {\n x: offsetX + whiskerLineWidth / 2,\n y: whiskerZero\n },\n v2: {\n x: offsetX - whiskerLineWidth / 2,\n y: whiskerZero\n }\n };\n const medianLine = {\n v1: {\n x: offsetX + medianLineWidth / 2,\n y: median\n },\n v2: {\n x: offsetX - medianLineWidth / 2,\n y: median\n }\n };\n const bottomLine = {\n v1: {\n x: offsetX + whiskerLineWidth / 2,\n y: whiskerOne\n },\n v2: {\n x: offsetX - whiskerLineWidth / 2,\n y: whiskerOne\n }\n };\n const verticalLine = {\n v1: {\n x: offsetX,\n y: whiskerZero\n },\n v2: {\n x: offsetX,\n y: whiskerOne\n }\n };\n return [verticalLine, topLine, medianLine, bottomLine];\n }\n updateTooltipSettings() {\n if (this.tooltipDisabled) {\n this.tooltipPlacement = undefined;\n this.tooltipType = undefined;\n } else {\n if (!this.tooltipPlacement) {\n this.tooltipPlacement = PlacementTypes.Top;\n }\n if (!this.tooltipType) {\n this.tooltipType = StyleTypes.tooltip;\n }\n }\n }\n }\n BoxSeriesComponent.ɵfac = function BoxSeriesComponent_Factory(t) {\n return new (t || BoxSeriesComponent)();\n };\n BoxSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BoxSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-box-series\", \"\"]],\n inputs: {\n dims: \"dims\",\n series: \"series\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n colors: \"colors\",\n animations: \"animations\",\n strokeColor: \"strokeColor\",\n strokeWidth: \"strokeWidth\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipTemplate: \"tooltipTemplate\",\n tooltipPlacement: \"tooltipPlacement\",\n tooltipType: \"tooltipType\",\n roundEdges: \"roundEdges\",\n gradient: \"gradient\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c31,\n decls: 1,\n vars: 22,\n consts: [[\"ngx-charts-box\", \"\", \"ngx-tooltip\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"width\", \"height\", \"x\", \"y\", \"roundEdges\", \"fill\", \"gradientStops\", \"strokeColor\", \"strokeWidth\", \"data\", \"lineCoordinates\", \"gradient\", \"ariaLabel\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", \"animations\"]],\n template: function BoxSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 0);\n i0.ɵɵlistener(\"select\", function BoxSeriesComponent_Template_g_select_0_listener($event) {\n return ctx.onClick($event);\n })(\"activate\", function BoxSeriesComponent_Template_g_activate_0_listener($event) {\n return ctx.activate.emit($event);\n })(\"deactivate\", function BoxSeriesComponent_Template_g_deactivate_0_listener($event) {\n return ctx.deactivate.emit($event);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"@animationState\", \"active\")(\"@.disabled\", !ctx.animations)(\"width\", ctx.box.width)(\"height\", ctx.box.height)(\"x\", ctx.box.x)(\"y\", ctx.box.y)(\"roundEdges\", ctx.box.roundEdges)(\"fill\", ctx.box.color)(\"gradientStops\", ctx.box.gradientStops)(\"strokeColor\", ctx.strokeColor)(\"strokeWidth\", ctx.strokeWidth)(\"data\", ctx.box.data)(\"lineCoordinates\", ctx.box.lineCoordinates)(\"gradient\", ctx.gradient)(\"ariaLabel\", ctx.box.ariaLabel)(\"tooltipDisabled\", ctx.tooltipDisabled)(\"tooltipPlacement\", ctx.tooltipPlacement)(\"tooltipType\", ctx.tooltipType)(\"tooltipTitle\", ctx.tooltipTitle)(\"tooltipTemplate\", ctx.tooltipTemplate)(\"tooltipContext\", ctx.box.data)(\"animations\", ctx.animations);\n }\n },\n dependencies: [BoxComponent, TooltipDirective],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1\n }), animate(500, style({\n opacity: 0\n }))])])]\n },\n changeDetection: 0\n });\n return BoxSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BoxChartComponent = /*#__PURE__*/(() => {\n class BoxChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n /** Show or hide the legend. */\n this.legend = false;\n this.legendPosition = LegendPosition.Right;\n this.legendTitle = 'Legend';\n this.showGridLines = true;\n this.xAxis = true;\n this.yAxis = true;\n this.showXAxisLabel = true;\n this.showYAxisLabel = true;\n this.roundDomains = false;\n this.roundEdges = true;\n this.strokeColor = '#FFFFFF';\n this.strokeWidth = 2;\n this.tooltipDisabled = false;\n this.wrapTicks = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n /** Chart Margins (For each side, counterclock wise). */\n this.margin = [10, 20, 10, 20];\n /** Chart X axis dimension. */\n this.xAxisHeight = 0;\n /** Chart Y axis dimension. */\n this.yAxisWidth = 0;\n }\n trackBy(index, item) {\n return item.name;\n }\n update() {\n super.update();\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 legendPosition: this.legendPosition\n });\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.setScales();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n setColors() {\n let domain = [];\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n setScales() {\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n }\n getXScale(domain, width) {\n const scale = scaleBand().domain(domain.map(d => d.toString())).rangeRound([0, width]).padding(0.5);\n return scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().domain(domain).range([height, 0]);\n return this.roundDomains ? scale.nice() : scale;\n }\n getUniqueBoxChartXDomainValues(results) {\n const valueSet = new Set();\n for (const result of results) {\n valueSet.add(result.name);\n }\n return Array.from(valueSet);\n }\n getXDomain() {\n let domain = [];\n const values = this.getUniqueBoxChartXDomainValues(this.results);\n let min;\n let max;\n if (typeof values[0] === 'string') {\n domain = values.map(val => val.toString());\n } else if (typeof values[0] === 'number') {\n const mappedValues = values.map(v => Number(v));\n min = Math.min(...mappedValues);\n max = Math.max(...mappedValues);\n domain = [min, max];\n } else {\n const mappedValues = values.map(v => Number(new Date(v)));\n min = Math.min(...mappedValues);\n max = Math.max(...mappedValues);\n domain = [new Date(min), new Date(max)];\n }\n return domain;\n }\n getYDomain() {\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 }\n }\n const values = [...domain];\n const mappedValues = values.map(v => Number(v));\n const min = Math.min(...mappedValues);\n const max = Math.max(...mappedValues);\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => `${d.name}`);\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\n }\n onClick(data) {\n this.select.emit(data);\n }\n onActivate(data) {\n this.activate.emit(data);\n }\n onDeactivate(data) {\n this.deactivate.emit(data);\n }\n getLegendOptions() {\n const legendOpts = {\n scaleType: this.schemeType,\n colors: this.colors,\n domain: [],\n position: this.legendPosition,\n title: this.legendTitle\n };\n if (this.schemeType === ScaleType.Ordinal) {\n legendOpts.domain = this.xDomain;\n legendOpts.colors = this.colors;\n } else {\n legendOpts.domain = this.yDomain;\n legendOpts.colors = this.colors.scale;\n }\n return legendOpts;\n }\n }\n BoxChartComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBoxChartComponent_BaseFactory;\n return function BoxChartComponent_Factory(t) {\n return (ɵBoxChartComponent_BaseFactory || (ɵBoxChartComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BoxChartComponent)))(t || BoxChartComponent);\n };\n })();\n BoxChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BoxChartComponent,\n selectors: [[\"ngx-charts-box-chart\"]],\n contentQueries: function BoxChartComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendPosition: \"legendPosition\",\n legendTitle: \"legendTitle\",\n legendOptionsConfig: \"legendOptionsConfig\",\n showGridLines: \"showGridLines\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n roundDomains: \"roundDomains\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n roundEdges: \"roundEdges\",\n strokeColor: \"strokeColor\",\n strokeWidth: \"strokeWidth\",\n tooltipDisabled: \"tooltipDisabled\",\n gradient: \"gradient\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 6,\n vars: 23,\n consts: [[3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"legendOptions\", \"animations\"], [1, \"box-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"showGridLines\", \"dims\", \"xScale\", \"showLabel\", \"labelText\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"showGridLines\", \"dims\", \"yScale\", \"showLabel\", \"labelText\", \"wrapTicks\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-box-series\", \"\", 3, \"activate\", \"deactivate\", \"select\", \"xScale\", \"yScale\", \"colors\", \"roundEdges\", \"strokeColor\", \"strokeWidth\", \"tooltipDisabled\", \"tooltipTemplate\", \"series\", \"dims\", \"animations\", \"gradient\"]],\n template: function BoxChartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function BoxChartComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function BoxChartComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event);\n })(\"legendLabelDeactivate\", function BoxChartComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1)(2, \"g\", 2);\n i0.ɵɵlistener(\"dimensionsChanged\", function BoxChartComponent_Template_g_dimensionsChanged_2_listener($event) {\n return ctx.updateXAxisHeight($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"g\", 3);\n i0.ɵɵlistener(\"dimensionsChanged\", function BoxChartComponent_Template_g_dimensionsChanged_3_listener($event) {\n return ctx.updateYAxisWidth($event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"g\");\n i0.ɵɵtemplate(5, BoxChartComponent__svg_g_5_Template, 2, 12, \"g\", 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(20, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"showGridLines\", ctx.showGridLines)(\"dims\", ctx.dims)(\"xScale\", ctx.xScale)(\"showLabel\", ctx.showXAxisLabel)(\"labelText\", ctx.xAxisLabel)(\"wrapTicks\", ctx.wrapTicks);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"showGridLines\", ctx.showGridLines)(\"dims\", ctx.dims)(\"yScale\", ctx.yScale)(\"showLabel\", ctx.showYAxisLabel)(\"labelText\", ctx.yAxisLabel)(\"wrapTicks\", ctx.wrapTicks);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.results)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, BoxSeriesComponent, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n changeDetection: 0\n });\n return BoxChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BoxChartModule = /*#__PURE__*/(() => {\n class BoxChartModule {}\n BoxChartModule.ɵfac = function BoxChartModule_Factory(t) {\n return new (t || BoxChartModule)();\n };\n BoxChartModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BoxChartModule\n });\n BoxChartModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return BoxChartModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction getDomain(values, scaleType, autoScale, minVal, maxVal) {\n let domain = [];\n if (scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n if (!autoScale) {\n values.push(0);\n }\n }\n if (scaleType === ScaleType.Time || scaleType === ScaleType.Linear) {\n const min = minVal || minVal === 0 ? minVal : Math.min(...values);\n const max = maxVal ? maxVal : Math.max(...values);\n domain = [min, max];\n } else {\n domain = values;\n }\n return domain;\n}\nfunction getScale(domain, range, scaleType, roundDomains) {\n switch (scaleType) {\n case ScaleType.Time:\n return scaleTime().range(range).domain(domain);\n case ScaleType.Linear:\n {\n const scale = scaleLinear().range(range).domain(domain);\n if (roundDomains) {\n return scale.nice();\n }\n return scale;\n }\n case ScaleType.Ordinal:\n return scalePoint().range([range[0], range[1]]).domain(domain.map(r => r.toString()));\n default:\n return undefined;\n }\n}\nlet BubbleSeriesComponent = /*#__PURE__*/(() => {\n class BubbleSeriesComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.tooltipDisabled = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.circles = this.getCircles();\n }\n getCircles() {\n const seriesName = this.data.name;\n return this.data.series.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 const radius = this.rScale(r || 1);\n const tooltipLabel = formatLabel(d.name);\n const cx = this.xScaleType === ScaleType.Linear ? this.xScale(Number(x)) : this.xScale(x);\n const cy = this.yScaleType === ScaleType.Linear ? this.yScale(Number(y)) : this.yScale(y);\n const color = this.colors.scaleType === ScaleType.Linear ? this.colors.getColor(r) : this.colors.getColor(seriesName);\n const isActive = !this.activeEntries.length ? true : this.isActive({\n name: seriesName\n });\n const opacity = isActive ? 1 : 0.3;\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 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 }).filter(circle => circle !== undefined);\n }\n getTooltipText(circle) {\n const hasRadius = typeof circle.r !== 'undefined';\n const hasTooltipLabel = circle.tooltipLabel && circle.tooltipLabel.length;\n const hasSeriesName = circle.seriesName && circle.seriesName.length;\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 = hasSeriesName && hasTooltipLabel ? `${circle.seriesName} • ${circle.tooltipLabel}` : circle.seriesName + circle.tooltipLabel;\n const tooltipTitle = hasSeriesName || hasTooltipLabel ? `${escapeLabel(name)}` : '';\n return `\n ${tooltipTitle}\n \n ${escapeLabel(x)}
\n ${escapeLabel(y)}\n
\n \n ${escapeLabel(radiusValue)}\n \n `;\n }\n onClick(data) {\n this.select.emit(data);\n }\n isActive(entry) {\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 isVisible(circle) {\n if (this.activeEntries.length > 0) {\n return this.isActive({\n name: circle.seriesName\n });\n }\n return circle.opacity !== 0;\n }\n activateCircle(circle) {\n circle.barVisible = true;\n this.activate.emit({\n name: this.data.name\n });\n }\n deactivateCircle(circle) {\n circle.barVisible = false;\n this.deactivate.emit({\n name: this.data.name\n });\n }\n trackBy(index, circle) {\n return `${circle.data.series} ${circle.data.name}`;\n }\n }\n BubbleSeriesComponent.ɵfac = function BubbleSeriesComponent_Factory(t) {\n return new (t || BubbleSeriesComponent)(i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n BubbleSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BubbleSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-bubble-series\", \"\"]],\n inputs: {\n data: \"data\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n rScale: \"rScale\",\n xScaleType: \"xScaleType\",\n yScaleType: \"yScaleType\",\n colors: \"colors\",\n visibleValue: \"visibleValue\",\n activeEntries: \"activeEntries\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipTemplate: \"tooltipTemplate\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c32,\n decls: 1,\n vars: 2,\n consts: [[4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-circle\", \"\", \"class\", \"circle\", \"ngx-tooltip\", \"\", 3, \"cx\", \"cy\", \"r\", \"fill\", \"opacity\", \"active\", \"pointerEvents\", \"data\", \"classNames\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", \"select\", \"activate\", \"deactivate\", 4, \"ngIf\"], [\"ngx-charts-circle\", \"\", \"ngx-tooltip\", \"\", 1, \"circle\", 3, \"select\", \"activate\", \"deactivate\", \"cx\", \"cy\", \"r\", \"fill\", \"pointerEvents\", \"data\", \"classNames\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"]],\n template: function BubbleSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, BubbleSeriesComponent__svg_g_0_Template, 4, 3, \"g\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.circles)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [CircleComponent, i2.NgForOf, i2.NgIf, TooltipDirective],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':enter', [style({\n opacity: 0,\n transform: 'scale(0)'\n }), animate(250, style({\n opacity: 1,\n transform: 'scale(1)'\n }))])])]\n },\n changeDetection: 0\n });\n return BubbleSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BubbleChartComponent = /*#__PURE__*/(() => {\n class BubbleChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.showGridLines = true;\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.xAxis = true;\n this.yAxis = true;\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.maxRadius = 10;\n this.minRadius = 3;\n this.schemeType = ScaleType.Ordinal;\n this.tooltipDisabled = false;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.scaleType = ScaleType.Linear;\n this.margin = [10, 20, 10, 20];\n this.bubblePadding = [0, 0, 0, 0];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.activeEntries = [];\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\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 this.seriesDomain = this.results.map(d => d.name);\n this.rDomain = this.getRDomain();\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n this.transform = `translate(${this.dims.xOffset},${this.margin[0]})`;\n const colorDomain = this.schemeType === ScaleType.Ordinal ? this.seriesDomain : this.rDomain;\n this.colors = new ColorHelper(this.scheme, this.schemeType, colorDomain, this.customColors);\n this.data = this.results;\n this.minRadius = Math.max(this.minRadius, 1);\n this.maxRadius = Math.max(this.maxRadius, 1);\n this.rScale = this.getRScale(this.rDomain, [this.minRadius, this.maxRadius]);\n this.bubblePadding = [0, 0, 0, 0];\n this.setScales();\n this.bubblePadding = this.getBubblePadding();\n this.setScales();\n this.legendOptions = this.getLegendOptions();\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n hideCircles() {\n this.deactivateAll();\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n getBubblePadding() {\n let yMin = 0;\n let xMin = 0;\n let yMax = this.dims.height;\n let xMax = this.dims.width;\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 === ScaleType.Linear ? this.xScale(Number(d.x)) : this.xScale(d.x);\n const cy = this.yScaleType === ScaleType.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 xMax = Math.max(xMax - this.dims.width, 0);\n yMax = Math.max(yMax - this.dims.height, 0);\n return [yMin, xMax, yMax, xMin];\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 getYScale(domain, height) {\n return getScale(domain, [height, this.bubblePadding[0]], this.yScaleType, this.roundDomains);\n }\n getXScale(domain, width) {\n return getScale(domain, [this.bubblePadding[3], width], this.xScaleType, this.roundDomains);\n }\n getRScale(domain, range) {\n const scale = scaleLinear().range(range).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n position: this.legendPosition,\n title: undefined\n };\n if (opts.scaleType === 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 return opts;\n }\n getXDomain() {\n const values = [];\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 this.xScaleType = getScaleType(values);\n return getDomain(values, this.xScaleType, this.autoScale, this.xScaleMin, this.xScaleMax);\n }\n getYDomain() {\n const values = [];\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 this.yScaleType = getScaleType(values);\n return getDomain(values, this.yScaleType, this.autoScale, this.yScaleMin, this.yScaleMax);\n }\n getRDomain() {\n let min = Infinity;\n let max = -Infinity;\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 return [min, max];\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n onDeactivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({\n value: entry,\n entries: []\n });\n }\n this.activeEntries = [];\n }\n trackBy(index, item) {\n return `${item.name}`;\n }\n }\n BubbleChartComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵBubbleChartComponent_BaseFactory;\n return function BubbleChartComponent_Factory(t) {\n return (ɵBubbleChartComponent_BaseFactory || (ɵBubbleChartComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BubbleChartComponent)))(t || BubbleChartComponent);\n };\n })();\n BubbleChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BubbleChartComponent,\n selectors: [[\"ngx-charts-bubble-chart\"]],\n contentQueries: function BubbleChartComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n hostBindings: function BubbleChartComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseleave\", function BubbleChartComponent_mouseleave_HostBindingHandler() {\n return ctx.hideCircles();\n });\n }\n },\n inputs: {\n showGridLines: \"showGridLines\",\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n roundDomains: \"roundDomains\",\n maxRadius: \"maxRadius\",\n minRadius: \"minRadius\",\n autoScale: \"autoScale\",\n schemeType: \"schemeType\",\n tooltipDisabled: \"tooltipDisabled\",\n xScaleMin: \"xScaleMin\",\n xScaleMax: \"xScaleMax\",\n yScaleMin: \"yScaleMin\",\n yScaleMax: \"yScaleMax\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 10,\n vars: 19,\n consts: [[3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"activeEntries\", \"legendOptions\", \"animations\"], [1, \"bubble-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"showGridLines\", \"dims\", \"xScale\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"showGridLines\", \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"x\", \"0\", \"y\", \"0\", 1, \"bubble-chart-area\", 2, \"fill\", \"rgb(255, 0, 0)\", \"opacity\", \"0\", \"cursor\", \"'auto'\", 3, \"mouseenter\"], [4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"showGridLines\", \"dims\", \"xScale\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"showGridLines\", \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-bubble-series\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"xScale\", \"yScale\", \"rScale\", \"xScaleType\", \"yScaleType\", \"xAxisLabel\", \"yAxisLabel\", \"colors\", \"data\", \"activeEntries\", \"tooltipDisabled\", \"tooltipTemplate\"]],\n template: function BubbleChartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function BubbleChartComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function BubbleChartComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event);\n })(\"legendLabelDeactivate\", function BubbleChartComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"defs\")(2, \"clipPath\");\n i0.ɵɵelement(3, \"rect\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"g\", 1);\n i0.ɵɵtemplate(5, BubbleChartComponent__svg_g_5_Template, 1, 11, \"g\", 2)(6, BubbleChartComponent__svg_g_6_Template, 1, 10, \"g\", 3);\n i0.ɵɵelementStart(7, \"rect\", 4);\n i0.ɵɵlistener(\"mouseenter\", function BubbleChartComponent_Template_rect_mouseenter_7_listener() {\n return ctx.deactivateAll();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(8, BubbleChartComponent__svg_g_8_Template, 2, 3, \"g\", 5)(9, BubbleChartComponent__svg_g_9_Template, 2, 3, \"g\", 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(16, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"activeEntries\", ctx.activeEntries)(\"legendOptions\", ctx.legendOptions)(\"animations\", ctx.animations);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"id\", ctx.clipPathId);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"width\", ctx.dims.width + 10)(\"height\", ctx.dims.height + 10)(\"transform\", \"translate(-5, -5)\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"width\", ctx.dims.width)(\"height\", ctx.dims.height);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, BubbleSeriesComponent, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1\n }), animate(500, style({\n opacity: 0\n }))])])]\n },\n changeDetection: 0\n });\n return BubbleChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BubbleChartModule = /*#__PURE__*/(() => {\n class BubbleChartModule {}\n BubbleChartModule.ɵfac = function BubbleChartModule_Factory(t) {\n return new (t || BubbleChartModule)();\n };\n BubbleChartModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BubbleChartModule\n });\n BubbleChartModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return BubbleChartModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HeatMapCellComponent = /*#__PURE__*/(() => {\n class HeatMapCellComponent {\n constructor(element) {\n this.gradient = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.barOrientation = BarOrientation;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.transform = `translate(${this.x} , ${this.y})`;\n this.startOpacity = 0.3;\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n this.gradientStops = this.getGradientStops();\n if (this.animations) {\n this.loadAnimation();\n }\n }\n getGradientStops() {\n return [{\n offset: 0,\n color: this.fill,\n opacity: this.startOpacity\n }, {\n offset: 100,\n color: this.fill,\n opacity: 1\n }];\n }\n loadAnimation() {\n const node = select(this.element).select('.cell');\n node.attr('opacity', 0);\n this.animateToCurrentForm();\n }\n animateToCurrentForm() {\n const node = select(this.element).select('.cell');\n node.transition().duration(750).attr('opacity', 1);\n }\n onClick() {\n this.select.emit(this.data);\n }\n onMouseEnter() {\n this.activate.emit(this.data);\n }\n onMouseLeave() {\n this.deactivate.emit(this.data);\n }\n }\n HeatMapCellComponent.ɵfac = function HeatMapCellComponent_Factory(t) {\n return new (t || HeatMapCellComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n HeatMapCellComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: HeatMapCellComponent,\n selectors: [[\"g\", \"ngx-charts-heat-map-cell\", \"\"]],\n hostBindings: function HeatMapCellComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseenter\", function HeatMapCellComponent_mouseenter_HostBindingHandler() {\n return ctx.onMouseEnter();\n })(\"mouseleave\", function HeatMapCellComponent_mouseleave_HostBindingHandler() {\n return ctx.onMouseLeave();\n });\n }\n },\n inputs: {\n fill: \"fill\",\n x: \"x\",\n y: \"y\",\n width: \"width\",\n height: \"height\",\n data: \"data\",\n gradient: \"gradient\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c33,\n decls: 3,\n vars: 5,\n consts: [[1, \"cell\"], [4, \"ngIf\"], [\"rx\", \"3\", 1, \"cell\", 3, \"click\"], [\"ngx-charts-svg-linear-gradient\", \"\", 3, \"orientation\", \"name\", \"stops\"]],\n template: function HeatMapCellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 0);\n i0.ɵɵtemplate(1, HeatMapCellComponent__svg_defs_1_Template, 2, 3, \"defs\", 1);\n i0.ɵɵelementStart(2, \"rect\", 2);\n i0.ɵɵlistener(\"click\", function HeatMapCellComponent_Template_rect_click_2_listener() {\n return ctx.onClick();\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.gradient);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"fill\", ctx.gradient ? ctx.gradientUrl : ctx.fill)(\"width\", ctx.width)(\"height\", ctx.height);\n }\n },\n dependencies: [SvgLinearGradientComponent, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return HeatMapCellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HeatCellSeriesComponent = /*#__PURE__*/(() => {\n class HeatCellSeriesComponent {\n constructor() {\n this.tooltipDisabled = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n ngOnInit() {\n if (!this.tooltipText) {\n this.tooltipText = this.getTooltipText;\n }\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.cells = this.getCells();\n }\n getCells() {\n const cells = [];\n this.data.map(row => {\n row.series.map(cell => {\n const value = cell.value;\n cell.series = row.name;\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 return cells;\n }\n getTooltipText({\n label,\n data,\n series\n }) {\n return `\n ${escapeLabel(series)} • ${escapeLabel(label)}\n ${data.toLocaleString()}\n `;\n }\n trackBy(index, item) {\n return item.label;\n }\n onClick(data) {\n this.select.emit(data);\n }\n }\n HeatCellSeriesComponent.ɵfac = function HeatCellSeriesComponent_Factory(t) {\n return new (t || HeatCellSeriesComponent)();\n };\n HeatCellSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: HeatCellSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-heat-map-cell-series\", \"\"]],\n inputs: {\n data: \"data\",\n colors: \"colors\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n gradient: \"gradient\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipText: \"tooltipText\",\n tooltipTemplate: \"tooltipTemplate\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c34,\n decls: 1,\n vars: 2,\n consts: [[\"ngx-charts-heat-map-cell\", \"\", \"ngx-tooltip\", \"\", 3, \"x\", \"y\", \"width\", \"height\", \"fill\", \"data\", \"gradient\", \"animations\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", \"select\", \"activate\", \"deactivate\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-heat-map-cell\", \"\", \"ngx-tooltip\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"x\", \"y\", \"width\", \"height\", \"fill\", \"data\", \"gradient\", \"animations\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"]],\n template: function HeatCellSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, HeatCellSeriesComponent__svg_g_0_Template, 1, 18, \"g\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.cells)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [HeatMapCellComponent, i2.NgForOf, TooltipDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return HeatCellSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HeatMapComponent = /*#__PURE__*/(() => {\n class HeatMapComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.innerPadding = 8;\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.tooltipDisabled = false;\n this.activeEntries = [];\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.scaleType = ScaleType.Linear;\n }\n update() {\n super.update();\n this.formatDates();\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n this.valueDomain = this.getValueDomain();\n this.scaleType = getScaleType(this.valueDomain, false);\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 if (this.scaleType === 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 this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n this.rects = this.getRects();\n }\n getXDomain() {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.name)) {\n domain.push(group.name);\n }\n }\n return domain;\n }\n getYDomain() {\n const domain = [];\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 return domain;\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 return domain;\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 * @memberOf HeatMapComponent\n */\n getDimension(value, index = 0, N, L) {\n if (typeof value === 'string') {\n value = value.replace('[', '').replace(']', '').replace('px', '')\n // tslint:disable-next-line: quotemark\n .replace(\"'\", '');\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 getXScale() {\n const f = this.getDimension(this.innerPadding, 0, this.xDomain.length, this.dims.width);\n return scaleBand().rangeRound([0, this.dims.width]).domain(this.xDomain).paddingInner(f);\n }\n getYScale() {\n const f = this.getDimension(this.innerPadding, 1, this.yDomain.length, this.dims.height);\n return scaleBand().rangeRound([this.dims.height, 0]).domain(this.yDomain).paddingInner(f);\n }\n getRects() {\n const rects = [];\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 return rects;\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, this.scaleType, this.valueDomain);\n }\n getLegendOptions() {\n return {\n scaleType: this.scaleType,\n domain: this.valueDomain,\n colors: this.scaleType === ScaleType.Ordinal ? this.colors : this.colors.scale,\n title: this.scaleType === ScaleType.Ordinal ? this.legendTitle : undefined,\n position: this.legendPosition\n };\n }\n updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results.map(g => g.series).flat().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 this.activeEntries = [...items];\n this.activate.emit({\n value: item,\n 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 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 this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n HeatMapComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵHeatMapComponent_BaseFactory;\n return function HeatMapComponent_Factory(t) {\n return (ɵHeatMapComponent_BaseFactory || (ɵHeatMapComponent_BaseFactory = i0.ɵɵgetInheritedFactory(HeatMapComponent)))(t || HeatMapComponent);\n };\n })();\n HeatMapComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: HeatMapComponent,\n selectors: [[\"ngx-charts-heat-map\"]],\n contentQueries: function HeatMapComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n gradient: \"gradient\",\n innerPadding: \"innerPadding\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipText: \"tooltipText\",\n min: \"min\",\n max: \"max\",\n activeEntries: \"activeEntries\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 6,\n vars: 20,\n consts: [[3, \"legendLabelClick\", \"view\", \"showLegend\", \"animations\", \"legendOptions\"], [1, \"heat-map\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\"], [\"ngx-charts-heat-map-cell-series\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"xScale\", \"yScale\", \"colors\", \"data\", \"gradient\", \"animations\", \"tooltipDisabled\", \"tooltipTemplate\", \"tooltipText\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"]],\n template: function HeatMapComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function HeatMapComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵtemplate(2, HeatMapComponent__svg_g_2_Template, 1, 10, \"g\", 2)(3, HeatMapComponent__svg_g_3_Template, 1, 9, \"g\", 3)(4, HeatMapComponent__svg_rect_4_Template, 1, 6, \"rect\", 4);\n i0.ɵɵelementStart(5, \"g\", 5);\n i0.ɵɵlistener(\"select\", function HeatMapComponent_Template_g_select_5_listener($event) {\n return ctx.onClick($event);\n })(\"activate\", function HeatMapComponent_Template_g_activate_5_listener($event) {\n return ctx.onActivate($event, undefined);\n })(\"deactivate\", function HeatMapComponent_Template_g_deactivate_5_listener($event) {\n return ctx.onDeactivate($event, undefined);\n });\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(17, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"animations\", ctx.animations)(\"legendOptions\", ctx.legendOptions);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.rects);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"xScale\", ctx.xScale)(\"yScale\", ctx.yScale)(\"colors\", ctx.colors)(\"data\", ctx.results)(\"gradient\", ctx.gradient)(\"animations\", ctx.animations)(\"tooltipDisabled\", ctx.tooltipDisabled)(\"tooltipTemplate\", ctx.tooltipTemplate)(\"tooltipText\", ctx.tooltipText);\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, HeatCellSeriesComponent, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n changeDetection: 0\n });\n return HeatMapComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HeatMapModule = /*#__PURE__*/(() => {\n class HeatMapModule {}\n HeatMapModule.ɵfac = function HeatMapModule_Factory(t) {\n return new (t || HeatMapModule)();\n };\n HeatMapModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: HeatMapModule\n });\n HeatMapModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return HeatMapModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LineComponent = /*#__PURE__*/(() => {\n class LineComponent {\n constructor(element, platformId) {\n this.element = element;\n this.platformId = platformId;\n this.fill = 'none';\n this.animations = true;\n // @Output() select = new EventEmitter();\n this.initialized = false;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n ngOnChanges(changes) {\n if (!this.initialized) {\n this.initialized = true;\n this.initialPath = this.path;\n } else {\n this.updatePathEl();\n }\n }\n updatePathEl() {\n const node = select(this.element.nativeElement).select('.line');\n if (this.animations) {\n node.transition().duration(750).attr('d', this.path);\n } else {\n node.attr('d', this.path);\n }\n }\n }\n LineComponent.ɵfac = function LineComponent_Factory(t) {\n return new (t || LineComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n LineComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LineComponent,\n selectors: [[\"g\", \"ngx-charts-line\", \"\"]],\n inputs: {\n path: \"path\",\n stroke: \"stroke\",\n data: \"data\",\n fill: \"fill\",\n animations: \"animations\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c36,\n decls: 2,\n vars: 2,\n consts: [[4, \"ngIf\"], [\"stroke-width\", \"1.5px\", 1, \"line\"]],\n template: function LineComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, LineComponent__svg_g_0_Template, 2, 4, \"g\", 0)(1, LineComponent__svg_g_1_Template, 2, 3, \"g\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n }\n },\n dependencies: [i2.NgIf],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':enter', [style({\n strokeDasharray: 2000,\n strokeDashoffset: 2000\n }), animate(1000, style({\n strokeDashoffset: 0\n }))])])]\n },\n changeDetection: 0\n });\n return LineComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LineSeriesComponent = /*#__PURE__*/(() => {\n class LineSeriesComponent {\n constructor() {\n this.animations = true;\n this.barOrientation = BarOrientation;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.updateGradients();\n const data = this.sortData(this.data.series);\n const lineGen = this.getLineGenerator();\n this.path = lineGen(data) || '';\n const areaGen = this.getAreaGenerator();\n this.areaPath = areaGen(data) || '';\n if (this.hasRange) {\n const range = this.getRangeGenerator();\n this.outerPath = range(data) || '';\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 getLineGenerator() {\n return line().x(d => {\n const label = d.name;\n let value;\n if (this.scaleType === ScaleType.Time) {\n value = this.xScale(label);\n } else if (this.scaleType === ScaleType.Linear) {\n value = this.xScale(Number(label));\n } else {\n value = this.xScale(label);\n }\n return value;\n }).y(d => this.yScale(d.value)).curve(this.curve);\n }\n getRangeGenerator() {\n return area().x(d => {\n const label = d.name;\n let value;\n if (this.scaleType === ScaleType.Time) {\n value = this.xScale(label);\n } else if (this.scaleType === ScaleType.Linear) {\n value = this.xScale(Number(label));\n } else {\n value = this.xScale(label);\n }\n return value;\n }).y0(d => this.yScale(typeof d.min === 'number' ? d.min : d.value)).y1(d => this.yScale(typeof d.max === 'number' ? d.max : d.value)).curve(this.curve);\n }\n getAreaGenerator() {\n const xProperty = d => {\n const label = d.name;\n return this.xScale(label);\n };\n return area().x(xProperty).y0(() => this.yScale.range()[0]).y1(d => this.yScale(d.value)).curve(this.curve);\n }\n sortData(data) {\n if (this.scaleType === ScaleType.Linear) {\n data = sortLinear(data, 'name');\n } else if (this.scaleType === ScaleType.Time) {\n data = sortByTime(data, 'name');\n } else {\n data = sortByDomain(data, 'name', 'asc', this.xScale.domain());\n }\n return data;\n }\n updateGradients() {\n if (this.colors.scaleType === 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 isActive(entry) {\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 isInactive(entry) {\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 LineSeriesComponent.ɵfac = function LineSeriesComponent_Factory(t) {\n return new (t || LineSeriesComponent)();\n };\n LineSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LineSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-line-series\", \"\"]],\n inputs: {\n data: \"data\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n colors: \"colors\",\n scaleType: \"scaleType\",\n curve: \"curve\",\n activeEntries: \"activeEntries\",\n rangeFillOpacity: \"rangeFillOpacity\",\n hasRange: \"hasRange\",\n animations: \"animations\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c37,\n decls: 6,\n vars: 22,\n consts: [[\"ngx-charts-svg-linear-gradient\", \"\", 3, \"orientation\", \"name\", \"stops\", 4, \"ngIf\"], [\"ngx-charts-area\", \"\", 1, \"line-highlight\", 3, \"data\", \"path\", \"fill\", \"opacity\", \"startOpacity\", \"gradient\", \"stops\", \"animations\"], [\"ngx-charts-line\", \"\", 1, \"line-series\", 3, \"data\", \"path\", \"stroke\", \"animations\"], [\"ngx-charts-area\", \"\", \"class\", \"line-series-range\", 3, \"data\", \"path\", \"fill\", \"active\", \"inactive\", \"opacity\", \"animations\", 4, \"ngIf\"], [\"ngx-charts-svg-linear-gradient\", \"\", 3, \"orientation\", \"name\", \"stops\"], [\"ngx-charts-area\", \"\", 1, \"line-series-range\", 3, \"data\", \"path\", \"fill\", \"opacity\", \"animations\"]],\n template: function LineSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\")(1, \"defs\");\n i0.ɵɵtemplate(2, LineSeriesComponent__svg_g_2_Template, 1, 3, \"g\", 0);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"g\", 1)(4, \"g\", 2);\n i0.ɵɵtemplate(5, LineSeriesComponent__svg_g_5_Template, 1, 9, \"g\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.hasGradient);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"active\", ctx.isActive(ctx.data))(\"inactive\", ctx.isInactive(ctx.data));\n i0.ɵɵproperty(\"data\", ctx.data)(\"path\", ctx.areaPath)(\"fill\", ctx.hasGradient ? ctx.gradientUrl : ctx.colors.getColor(ctx.data.name))(\"opacity\", 0.25)(\"startOpacity\", 0)(\"gradient\", true)(\"stops\", ctx.areaGradientStops)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"active\", ctx.isActive(ctx.data))(\"inactive\", ctx.isInactive(ctx.data));\n i0.ɵɵproperty(\"data\", ctx.data)(\"path\", ctx.path)(\"stroke\", ctx.stroke)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.hasRange);\n }\n },\n dependencies: [SvgLinearGradientComponent, AreaComponent, LineComponent, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return LineSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LineChartComponent = /*#__PURE__*/(() => {\n class LineChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.showGridLines = true;\n this.curve = curveLinear;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.showRefLines = false;\n this.showRefLabels = true;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.timelineHeight = 50;\n this.timelinePadding = 10;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\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 if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n this.updateTimeline();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n updateTimeline() {\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 getXDomain() {\n let values = getUniqueXDomainValues(this.results);\n this.scaleType = getScaleType(values);\n let domain = [];\n if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n let min;\n let max;\n if (this.scaleType === ScaleType.Time || this.scaleType === ScaleType.Linear) {\n min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n }\n if (this.scaleType === 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 === 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 return domain;\n }\n getYDomain() {\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 const values = [...domain];\n if (!this.autoScale) {\n values.push(0);\n }\n const min = this.yScaleMin ? this.yScaleMin : Math.min(...values);\n const max = this.yScaleMax ? this.yScaleMax : Math.max(...values);\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime().range([0, width]).domain(domain);\n } else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear().range([0, width]).domain(domain);\n if (this.roundDomains) {\n scale = scale.nice();\n }\n } else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().range([0, width]).padding(0.1).domain(domain);\n }\n return scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n updateDomain(domain) {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n updateHoveredVertical(item) {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n hideCircles() {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n onClick(data) {\n this.select.emit(data);\n }\n trackBy(index, item) {\n return `${item.name}`;\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n } else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\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 === 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 updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(item) {\n this.deactivateAll();\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 = [item];\n this.activate.emit({\n value: item,\n 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 this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({\n value: entry,\n entries: []\n });\n }\n this.activeEntries = [];\n }\n }\n LineChartComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵLineChartComponent_BaseFactory;\n return function LineChartComponent_Factory(t) {\n return (ɵLineChartComponent_BaseFactory || (ɵLineChartComponent_BaseFactory = i0.ɵɵgetInheritedFactory(LineChartComponent)))(t || LineChartComponent);\n };\n })();\n LineChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LineChartComponent,\n selectors: [[\"ngx-charts-line-chart\"]],\n contentQueries: function LineChartComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n i0.ɵɵcontentQuery(dirIndex, _c23, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.seriesTooltipTemplate = _t.first);\n }\n },\n hostBindings: function LineChartComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseleave\", function LineChartComponent_mouseleave_HostBindingHandler() {\n return ctx.hideCircles();\n });\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n autoScale: \"autoScale\",\n timeline: \"timeline\",\n gradient: \"gradient\",\n showGridLines: \"showGridLines\",\n curve: \"curve\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n rangeFillOpacity: \"rangeFillOpacity\",\n trimXAxisTicks: \"trimXAxisTicks\",\n trimYAxisTicks: \"trimYAxisTicks\",\n rotateXAxisTicks: \"rotateXAxisTicks\",\n maxXAxisTickLength: \"maxXAxisTickLength\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n xAxisTicks: \"xAxisTicks\",\n yAxisTicks: \"yAxisTicks\",\n roundDomains: \"roundDomains\",\n tooltipDisabled: \"tooltipDisabled\",\n showRefLines: \"showRefLines\",\n referenceLines: \"referenceLines\",\n showRefLabels: \"showRefLabels\",\n xScaleMin: \"xScaleMin\",\n xScaleMax: \"xScaleMax\",\n yScaleMin: \"yScaleMin\",\n yScaleMax: \"yScaleMax\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 12,\n vars: 20,\n consts: [[3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"line-chart\", \"chart\"], [\"ngx-charts-x-axis\", \"\", 3, \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"mouseleave\", 4, \"ngIf\"], [\"ngx-charts-timeline\", \"\", 3, \"results\", \"view\", \"height\", \"scheme\", \"customColors\", \"scaleType\", \"legend\", \"onDomainChange\", 4, \"ngIf\"], [\"ngx-charts-x-axis\", \"\", 3, \"dimensionsChanged\", \"xScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"wrapTicks\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"wrapTicks\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-line-series\", \"\", 3, \"xScale\", \"yScale\", \"colors\", \"data\", \"activeEntries\", \"scaleType\", \"curve\", \"rangeFillOpacity\", \"hasRange\", \"animations\"], [3, \"mouseleave\"], [\"ngx-charts-tooltip-area\", \"\", 3, \"hover\", \"dims\", \"xSet\", \"xScale\", \"yScale\", \"results\", \"colors\", \"tooltipDisabled\", \"tooltipTemplate\"], [4, \"ngFor\", \"ngForOf\"], [\"ngx-charts-circle-series\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"xScale\", \"yScale\", \"colors\", \"data\", \"scaleType\", \"visibleValue\", \"activeEntries\", \"tooltipDisabled\", \"tooltipTemplate\"], [\"ngx-charts-timeline\", \"\", 3, \"onDomainChange\", \"results\", \"view\", \"height\", \"scheme\", \"customColors\", \"scaleType\", \"legend\"], [\"ngx-charts-line-series\", \"\", 3, \"xScale\", \"yScale\", \"colors\", \"data\", \"scaleType\", \"curve\", \"hasRange\", \"animations\"]],\n template: function LineChartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function LineChartComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function LineChartComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event);\n })(\"legendLabelDeactivate\", function LineChartComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"defs\")(2, \"clipPath\");\n i0.ɵɵelement(3, \"rect\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"g\", 1);\n i0.ɵɵtemplate(5, LineChartComponent__svg_g_5_Template, 1, 11, \"g\", 2)(6, LineChartComponent__svg_g_6_Template, 1, 13, \"g\", 3);\n i0.ɵɵelementStart(7, \"g\");\n i0.ɵɵtemplate(8, LineChartComponent__svg_g_8_Template, 2, 2, \"g\", 4)(9, LineChartComponent__svg_g_9_Template, 2, 2, \"g\", 4)(10, LineChartComponent__svg_g_10_Template, 3, 9, \"g\", 5);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(11, LineChartComponent__svg_g_11_Template, 2, 13, \"g\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(17, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"id\", ctx.clipPathId);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"width\", ctx.dims.width + 10)(\"height\", ctx.dims.height + 10)(\"transform\", \"translate(-5, -5)\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"clip-path\", ctx.clipPath);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.tooltipDisabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.timeline && ctx.scaleType != \"ordinal\");\n }\n },\n dependencies: [ChartComponent, XAxisComponent, YAxisComponent, LineSeriesComponent, TooltipArea, CircleSeriesComponent, Timeline, i2.NgIf, i2.NgForOf],\n styles: [_c25],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1\n }), animate(500, style({\n opacity: 0\n }))])])]\n },\n changeDetection: 0\n });\n return LineChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LineChartModule = /*#__PURE__*/(() => {\n class LineChartModule {}\n LineChartModule.ɵfac = function LineChartModule_Factory(t) {\n return new (t || LineChartModule)();\n };\n LineChartModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: LineChartModule\n });\n LineChartModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return LineChartModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PieLabelComponent = /*#__PURE__*/(() => {\n class PieLabelComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.animations = true;\n this.labelTrim = true;\n this.labelTrimSize = 10;\n this.trimLabel = trimLabel;\n }\n ngOnChanges(changes) {\n this.setTransforms();\n this.update();\n }\n setTransforms() {\n if (isPlatformServer(this.platformId)) {\n this.styleTransform = `translate3d(${this.textX}px,${this.textY}px, 0)`;\n this.attrTransform = `translate(${this.textX},${this.textY})`;\n this.textTransition = !this.animations ? null : 'transform 0.75s';\n } else {\n const isIE = /(edge|msie|trident)/i.test(navigator.userAgent);\n this.styleTransform = isIE ? null : `translate3d(${this.textX}px,${this.textY}px, 0)`;\n this.attrTransform = !isIE ? null : `translate(${this.textX},${this.textY})`;\n this.textTransition = isIE || !this.animations ? null : 'transform 0.75s';\n }\n }\n update() {\n let startRadius = this.radius;\n if (this.explodeSlices) {\n startRadius = this.radius * this.value / this.max;\n }\n const innerArc = arc().innerRadius(startRadius).outerRadius(startRadius);\n // Calculate innerPos then scale outer position to match label position\n const innerPos = innerArc.centroid(this.data);\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 this.line = `M${innerPos}L${outerPos}L${this.data.pos}`;\n }\n get textX() {\n return this.data.pos[0];\n }\n get textY() {\n return this.data.pos[1];\n }\n textAnchor() {\n return this.midAngle(this.data) < Math.PI ? TextAnchor.Start : TextAnchor.End;\n }\n midAngle(d) {\n return d.startAngle + (d.endAngle - d.startAngle) / 2;\n }\n }\n PieLabelComponent.ɵfac = function PieLabelComponent_Factory(t) {\n return new (t || PieLabelComponent)(i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n PieLabelComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PieLabelComponent,\n selectors: [[\"g\", \"ngx-charts-pie-label\", \"\"]],\n inputs: {\n data: \"data\",\n radius: \"radius\",\n label: \"label\",\n color: \"color\",\n max: \"max\",\n value: \"value\",\n explodeSlices: \"explodeSlices\",\n animations: \"animations\",\n labelTrim: \"labelTrim\",\n labelTrimSize: \"labelTrimSize\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c38,\n decls: 6,\n vars: 17,\n consts: [[\"dy\", \".35em\", 1, \"pie-label\"], [\"fill\", \"none\", 1, \"pie-label-line\", \"line\"]],\n template: function PieLabelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"title\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(2, \"g\")(3, \"text\", 0);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelement(5, \"path\", 1);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx.label);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"transform\", ctx.styleTransform)(\"transition\", ctx.textTransition);\n i0.ɵɵattribute(\"transform\", ctx.attrTransform);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"text-anchor\", ctx.textAnchor())(\"shape-rendering\", \"crispEdges\");\n i0.ɵɵclassProp(\"animation\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.labelTrim ? ctx.trimLabel(ctx.label, ctx.labelTrimSize) : ctx.label, \" \");\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"animation\", ctx.animations);\n i0.ɵɵattribute(\"d\", ctx.line)(\"stroke\", ctx.color);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n return PieLabelComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PolarSeriesComponent = /*#__PURE__*/(() => {\n class PolarSeriesComponent {\n constructor() {\n this.tooltipDisabled = false;\n this.gradient = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.circleRadius = 3;\n this.barOrientation = BarOrientation;\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.updateGradients();\n const line = this.getLineGenerator();\n const data = this.sortData(this.data.series);\n const seriesName = this.data.name;\n const linearScaleType = this.colors.scaleType === ScaleType.Linear;\n const min = this.yScale.domain()[0];\n this.seriesColor = this.colors.getColor(linearScaleType ? min : seriesName);\n this.path = line(data) || '';\n this.circles = data.map(d => {\n const a = this.getAngle(d);\n const r = this.getRadius(d);\n const value = d.value;\n const color = this.colors.getColor(linearScaleType ? Math.abs(value) : seriesName);\n const cData = Object.assign({}, d, {\n series: seriesName,\n value,\n name: d.name\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 this.active = this.isActive(this.data);\n this.inactive = this.isInactive(this.data);\n this.tooltipText = this.tooltipText || (c => this.defaultTooltipText(c));\n }\n getAngle(d) {\n const label = d.name;\n if (this.scaleType === ScaleType.Time) {\n return this.xScale(label);\n } else if (this.scaleType === ScaleType.Linear) {\n return this.xScale(Number(label));\n }\n return this.xScale(label);\n }\n getRadius(d) {\n return this.yScale(d.value);\n }\n getLineGenerator() {\n return lineRadial().angle(d => this.getAngle(d)).radius(d => this.getRadius(d)).curve(this.curve);\n }\n sortData(data) {\n if (this.scaleType === ScaleType.Linear) {\n return sortLinear(data, 'name');\n } else if (this.scaleType === ScaleType.Time) {\n return sortByTime(data, 'name');\n }\n return sortByDomain(data, 'name', 'asc', this.xScale.domain());\n }\n isActive(entry) {\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 isInactive(entry) {\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 defaultTooltipText({\n label,\n value\n }) {\n return `\n ${escapeLabel(this.data.name)} • ${escapeLabel(label)}\n ${value.toLocaleString()}\n `;\n }\n updateGradients() {\n this.hasGradient = this.gradient || this.colors.scaleType === ScaleType.Linear;\n if (!this.hasGradient) {\n return;\n }\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n if (this.colors.scaleType === 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 PolarSeriesComponent.ɵfac = function PolarSeriesComponent_Factory(t) {\n return new (t || PolarSeriesComponent)();\n };\n PolarSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PolarSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-polar-series\", \"\"]],\n inputs: {\n name: \"name\",\n data: \"data\",\n xScale: \"xScale\",\n yScale: \"yScale\",\n colors: \"colors\",\n scaleType: \"scaleType\",\n curve: \"curve\",\n activeEntries: \"activeEntries\",\n rangeFillOpacity: \"rangeFillOpacity\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipText: \"tooltipText\",\n gradient: \"gradient\",\n tooltipTemplate: \"tooltipTemplate\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c39,\n decls: 5,\n vars: 11,\n consts: [[1, \"polar-charts-series\"], [\"ngx-charts-svg-radial-gradient\", \"\", 3, \"color\", \"name\", \"startOpacity\", \"endOpacity\", \"stops\", 4, \"ngIf\"], [\"ngx-charts-line\", \"\", 1, \"polar-series-path\", 3, \"path\", \"stroke\", \"fill\", \"animations\"], [\"ngx-charts-circle\", \"\", \"class\", \"circle\", \"ngx-tooltip\", \"\", 3, \"cx\", \"cy\", \"r\", \"fill\", \"opacity\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", \"select\", \"activate\", \"deactivate\", 4, \"ngFor\", \"ngForOf\"], [\"ngx-charts-svg-radial-gradient\", \"\", 3, \"color\", \"name\", \"startOpacity\", \"endOpacity\", \"stops\"], [\"ngx-charts-circle\", \"\", \"ngx-tooltip\", \"\", 1, \"circle\", 3, \"select\", \"activate\", \"deactivate\", \"cx\", \"cy\", \"r\", \"fill\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"]],\n template: function PolarSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 0)(1, \"defs\");\n i0.ɵɵtemplate(2, PolarSeriesComponent__svg_g_2_Template, 1, 5, \"g\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"g\", 2);\n i0.ɵɵtemplate(4, PolarSeriesComponent__svg_g_4_Template, 1, 12, \"g\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.hasGradient);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"active\", ctx.active)(\"inactive\", ctx.inactive);\n i0.ɵɵproperty(\"path\", ctx.path)(\"stroke\", ctx.hasGradient ? ctx.gradientUrl : ctx.seriesColor)(\"fill\", ctx.hasGradient ? ctx.gradientUrl : ctx.seriesColor)(\"animations\", ctx.animations);\n i0.ɵɵattribute(\"fill-opacity\", ctx.rangeFillOpacity);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.circles);\n }\n },\n dependencies: [SvgRadialGradientComponent, LineComponent, CircleComponent, i2.NgIf, i2.NgForOf, TooltipDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return PolarSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst twoPI = 2 * Math.PI;\nlet PolarChartComponent = /*#__PURE__*/(() => {\n class PolarChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.showGridLines = true;\n this.curve = curveCardinalClosed;\n this.activeEntries = [];\n this.rangeFillOpacity = 0.15;\n this.trimYAxisTicks = true;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.showSeriesOnHover = true;\n this.gradient = false;\n this.yAxisMinScale = 0;\n this.labelTrim = true;\n this.labelTrimSize = 10;\n this.wrapTicks = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n // series: any; // ???\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.orientation = Orientation;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n this.setDims();\n this.setScales();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.setTicks();\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 const halfWidth = Math.floor(this.dims.width / 2);\n const halfHeight = Math.floor(this.dims.height / 2);\n const outerRadius = this.outerRadius = Math.min(halfHeight / 1.5, halfWidth / 1.5);\n const yOffset = Math.max(0, halfHeight - outerRadius);\n this.yAxisDims = {\n ...this.dims,\n width: halfWidth\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 setScales() {\n const xValues = this.getXValues();\n this.scaleType = getScaleType(xValues);\n this.xDomain = this.filteredDomain || this.getXDomain(xValues);\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\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 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 const outerRadius = this.outerRadius;\n const s = 1.1;\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 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 const minDistance = 10;\n /* from pie chart, abstract out -*/\n for (let i = 0; i < this.thetaTicks.length - 1; i++) {\n const a = this.thetaTicks[i];\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 this.radiusTicks = this.yAxisScale.ticks(Math.floor(this.dims.height / 50)).map(d => this.yScale(d));\n }\n getXValues() {\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 getXDomain(values = this.getXValues()) {\n if (this.scaleType === ScaleType.Time) {\n const min = Math.min(...values);\n const max = Math.max(...values);\n return [min, max];\n } else if (this.scaleType === 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 getYValues() {\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 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 getYDomain(domain = this.getYValues()) {\n let min = Math.min(...domain);\n const max = Math.max(this.yAxisMinScale, ...domain);\n min = Math.max(0, min);\n if (!this.autoScale) {\n min = Math.min(0, min);\n }\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n switch (this.scaleType) {\n case ScaleType.Time:\n return scaleTime().range([0, width]).domain(domain);\n case ScaleType.Linear:\n {\n const scale = scaleLinear().range([0, width]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n default:\n return scalePoint().range([0, width - twoPI / domain.length]).padding(0).domain(domain);\n }\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([0, height]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n setColors() {\n const domain = this.schemeType === ScaleType.Ordinal ? this.seriesDomain : this.yDomain.reverse();\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n if (this.schemeType === ScaleType.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 updateYAxisWidth({\n width\n }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({\n height\n }) {\n this.xAxisHeight = height;\n this.update();\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({\n value: item,\n 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 this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({\n value: entry,\n entries: []\n });\n }\n this.activeEntries = [];\n }\n trackBy(index, item) {\n return `${item.name}`;\n }\n }\n PolarChartComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵPolarChartComponent_BaseFactory;\n return function PolarChartComponent_Factory(t) {\n return (ɵPolarChartComponent_BaseFactory || (ɵPolarChartComponent_BaseFactory = i0.ɵɵgetInheritedFactory(PolarChartComponent)))(t || PolarChartComponent);\n };\n })();\n PolarChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PolarChartComponent,\n selectors: [[\"ngx-charts-polar-chart\"]],\n contentQueries: function PolarChartComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n xAxis: \"xAxis\",\n yAxis: \"yAxis\",\n showXAxisLabel: \"showXAxisLabel\",\n showYAxisLabel: \"showYAxisLabel\",\n xAxisLabel: \"xAxisLabel\",\n yAxisLabel: \"yAxisLabel\",\n autoScale: \"autoScale\",\n showGridLines: \"showGridLines\",\n curve: \"curve\",\n activeEntries: \"activeEntries\",\n schemeType: \"schemeType\",\n rangeFillOpacity: \"rangeFillOpacity\",\n trimYAxisTicks: \"trimYAxisTicks\",\n maxYAxisTickLength: \"maxYAxisTickLength\",\n xAxisTickFormatting: \"xAxisTickFormatting\",\n yAxisTickFormatting: \"yAxisTickFormatting\",\n roundDomains: \"roundDomains\",\n tooltipDisabled: \"tooltipDisabled\",\n showSeriesOnHover: \"showSeriesOnHover\",\n gradient: \"gradient\",\n yAxisMinScale: \"yAxisMinScale\",\n labelTrim: \"labelTrim\",\n labelTrimSize: \"labelTrimSize\",\n wrapTicks: \"wrapTicks\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 10,\n vars: 17,\n consts: [[3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"polar-chart\", \"chart\"], [\"cx\", \"0\", \"cy\", \"0\", 1, \"polar-chart-background\"], [4, \"ngIf\"], [\"ngx-charts-y-axis\", \"\", 3, \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"wrapTicks\", \"dimensionsChanged\", 4, \"ngIf\"], [\"ngx-charts-axis-label\", \"\", 3, \"label\", \"offset\", \"orient\", \"height\", \"width\", 4, \"ngIf\"], [\"class\", \"gridline-path radial-gridline-path\", \"cx\", \"0\", \"cy\", \"0\", 4, \"ngFor\", \"ngForOf\"], [\"cx\", \"0\", \"cy\", \"0\", 1, \"gridline-path\", \"radial-gridline-path\"], [\"ngx-charts-pie-label\", \"\", 3, \"data\", \"radius\", \"label\", \"max\", \"value\", \"explodeSlices\", \"animations\", \"labelTrim\", \"labelTrimSize\", 4, \"ngFor\", \"ngForOf\"], [\"ngx-charts-pie-label\", \"\", 3, \"data\", \"radius\", \"label\", \"max\", \"value\", \"explodeSlices\", \"animations\", \"labelTrim\", \"labelTrimSize\"], [\"ngx-charts-y-axis\", \"\", 3, \"dimensionsChanged\", \"yScale\", \"dims\", \"showGridLines\", \"showLabel\", \"labelText\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"wrapTicks\"], [\"ngx-charts-axis-label\", \"\", 3, \"label\", \"offset\", \"orient\", \"height\", \"width\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-polar-series\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"gradient\", \"xScale\", \"yScale\", \"colors\", \"data\", \"activeEntries\", \"scaleType\", \"curve\", \"rangeFillOpacity\", \"animations\", \"tooltipDisabled\", \"tooltipTemplate\"]],\n template: function PolarChartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelClick\", function PolarChartComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function PolarChartComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event);\n })(\"legendLabelDeactivate\", function PolarChartComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1)(2, \"g\");\n i0.ɵɵelement(3, \"circle\", 2);\n i0.ɵɵtemplate(4, PolarChartComponent__svg_g_4_Template, 2, 1, \"g\", 3)(5, PolarChartComponent__svg_g_5_Template, 2, 1, \"g\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, PolarChartComponent__svg_g_6_Template, 1, 10, \"g\", 4)(7, PolarChartComponent__svg_g_7_Template, 1, 5, \"g\", 5)(8, PolarChartComponent__svg_g_8_Template, 2, 3, \"g\", 3)(9, PolarChartComponent__svg_g_9_Template, 2, 3, \"g\", 3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(14, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transformPlot);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"r\", ctx.outerRadius);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showGridLines);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.yAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.xAxis && ctx.showXAxisLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isSSR);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isSSR);\n }\n },\n dependencies: [ChartComponent, PieLabelComponent, YAxisComponent, AxisLabelComponent, PolarSeriesComponent, i2.NgIf, i2.NgForOf],\n styles: [_c25, \".pie-label{font-size:11px}.pie-label.animation{animation:.75s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pie-label-line{stroke-dasharray:100%}.pie-label-line.animation{animation:3s linear drawOut;transition:d .75s}@keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}\\n\", \".polar-chart .polar-chart-background{fill:none}.polar-chart .radial-gridline-path{stroke-dasharray:10 10;fill:none}.polar-chart .pie-label-line{stroke:#2f3646}.polar-charts-series .polar-series-area,.polar-series-path{pointer-events:none}\\n\"],\n encapsulation: 2,\n data: {\n animation: [trigger('animationState', [transition(':leave', [style({\n opacity: 1\n }), animate(500, style({\n opacity: 0\n }))])])]\n },\n changeDetection: 0\n });\n return PolarChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PieArcComponent = /*#__PURE__*/(() => {\n class PieArcComponent {\n constructor(element) {\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.cornerRadius = 0;\n this.explodeSlices = false;\n this.gradient = false;\n this.animate = true;\n this.pointerEvents = true;\n this.isActive = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.dblclick = new EventEmitter();\n this.barOrientation = BarOrientation;\n this.initialized = false;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n getGradient() {\n return this.gradient ? this.gradientFill : this.fill;\n }\n getPointerEvents() {\n return this.pointerEvents ? 'auto' : 'none';\n }\n update() {\n const calc = this.calculateArc();\n this.startOpacity = 0.5;\n this.radialGradientId = 'linearGrad' + id().toString();\n this.gradientFill = `url(#${this.radialGradientId})`;\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 calculateArc() {\n let outerRadius = this.outerRadius;\n if (this.explodeSlices && this.innerRadius === 0) {\n outerRadius = this.outerRadius * this.value / this.max;\n }\n return arc().innerRadius(this.innerRadius).outerRadius(outerRadius).cornerRadius(this.cornerRadius);\n }\n loadAnimation() {\n const node = select(this.element).selectAll('.arc').data([{\n startAngle: this.startAngle,\n endAngle: this.endAngle\n }]);\n const calc = this.calculateArc();\n node.transition().attrTween('d', function (d) {\n this._current = this._current || d;\n const copyOfD = Object.assign({}, d);\n copyOfD.endAngle = copyOfD.startAngle;\n const interpolater = interpolate(copyOfD, copyOfD);\n this._current = interpolater(0);\n return function (t) {\n return calc(interpolater(t));\n };\n }).transition().duration(750).attrTween('d', function (d) {\n this._current = this._current || d;\n const interpolater = interpolate(this._current, d);\n this._current = interpolater(0);\n return function (t) {\n return calc(interpolater(t));\n };\n });\n }\n updateAnimation() {\n const node = select(this.element).selectAll('.arc').data([{\n startAngle: this.startAngle,\n endAngle: this.endAngle\n }]);\n const calc = this.calculateArc();\n node.transition().duration(750).attrTween('d', function (d) {\n this._current = this._current || d;\n const interpolater = interpolate(this._current, d);\n this._current = interpolater(0);\n return function (t) {\n return calc(interpolater(t));\n };\n });\n }\n onClick() {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(() => this.select.emit(this.data), 200);\n }\n onDblClick(event) {\n event.preventDefault();\n event.stopPropagation();\n clearTimeout(this._timeout);\n this.dblclick.emit({\n data: this.data,\n nativeEvent: event\n });\n }\n }\n PieArcComponent.ɵfac = function PieArcComponent_Factory(t) {\n return new (t || PieArcComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n PieArcComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PieArcComponent,\n selectors: [[\"g\", \"ngx-charts-pie-arc\", \"\"]],\n inputs: {\n fill: \"fill\",\n startAngle: \"startAngle\",\n endAngle: \"endAngle\",\n innerRadius: \"innerRadius\",\n outerRadius: \"outerRadius\",\n cornerRadius: \"cornerRadius\",\n value: \"value\",\n max: \"max\",\n data: \"data\",\n explodeSlices: \"explodeSlices\",\n gradient: \"gradient\",\n animate: \"animate\",\n pointerEvents: \"pointerEvents\",\n isActive: \"isActive\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\",\n dblclick: \"dblclick\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c40,\n decls: 3,\n vars: 7,\n consts: [[1, \"arc-group\"], [4, \"ngIf\"], [1, \"arc\", 3, \"click\", \"dblclick\", \"mouseenter\", \"mouseleave\"], [\"ngx-charts-svg-radial-gradient\", \"\", 3, \"color\", \"name\", \"startOpacity\"]],\n template: function PieArcComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 0);\n i0.ɵɵtemplate(1, PieArcComponent__svg_defs_1_Template, 2, 3, \"defs\", 1);\n i0.ɵɵelementStart(2, \"path\", 2);\n i0.ɵɵlistener(\"click\", function PieArcComponent_Template_path_click_2_listener() {\n return ctx.onClick();\n })(\"dblclick\", function PieArcComponent_Template_path_dblclick_2_listener($event) {\n return ctx.onDblClick($event);\n })(\"mouseenter\", function PieArcComponent_Template_path_mouseenter_2_listener() {\n return ctx.activate.emit(ctx.data);\n })(\"mouseleave\", function PieArcComponent_Template_path_mouseleave_2_listener() {\n return ctx.deactivate.emit(ctx.data);\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.gradient);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"pointer-events\", ctx.getPointerEvents());\n i0.ɵɵclassProp(\"active\", ctx.isActive);\n i0.ɵɵattribute(\"d\", ctx.path)(\"fill\", ctx.getGradient());\n }\n },\n dependencies: [SvgRadialGradientComponent, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return PieArcComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PieSeriesComponent = /*#__PURE__*/(() => {\n class PieSeriesComponent {\n constructor() {\n this.series = [];\n this.innerRadius = 60;\n this.outerRadius = 80;\n this.trimLabels = true;\n this.maxLabelLength = 10;\n this.tooltipDisabled = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.dblclick = new EventEmitter();\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n const pieGenerator = pie().value(d => d.value).sort(null);\n const arcData = pieGenerator(this.series);\n this.max = max(arcData, d => {\n return d.value;\n });\n this.data = this.calculateLabelPositions(arcData);\n this.tooltipText = this.tooltipText || this.defaultTooltipText;\n }\n midAngle(d) {\n return d.startAngle + (d.endAngle - d.startAngle) / 2;\n }\n outerArc() {\n const factor = 1.5;\n return arc().innerRadius(this.outerRadius * factor).outerRadius(this.outerRadius * factor);\n }\n calculateLabelPositions(pieData) {\n const factor = 1.5;\n const minDistance = 10;\n const labelPositions = pieData;\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 for (let i = 0; i < labelPositions.length - 1; i++) {\n const a = labelPositions[i];\n if (!this.labelVisible(a)) {\n continue;\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 return labelPositions;\n }\n labelVisible(myArc) {\n return this.showLabels && myArc.endAngle - myArc.startAngle > Math.PI / 30;\n }\n getTooltipTitle(a) {\n return this.tooltipTemplate ? undefined : this.tooltipText(a);\n }\n labelText(myArc) {\n if (this.labelFormatting) {\n return this.labelFormatting(myArc.data.name);\n }\n return this.label(myArc);\n }\n label(myArc) {\n return formatLabel(myArc.data.name);\n }\n defaultTooltipText(myArc) {\n const label = this.label(myArc);\n const val = formatLabel(myArc.data.value);\n return `\n ${escapeLabel(label)}\n ${val}\n `;\n }\n color(myArc) {\n return this.colors.getColor(this.label(myArc));\n }\n trackBy(index, item) {\n return item.data.name;\n }\n onClick(data) {\n this.select.emit(data);\n }\n isActive(entry) {\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 PieSeriesComponent.ɵfac = function PieSeriesComponent_Factory(t) {\n return new (t || PieSeriesComponent)();\n };\n PieSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PieSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-pie-series\", \"\"]],\n inputs: {\n colors: \"colors\",\n series: \"series\",\n dims: \"dims\",\n innerRadius: \"innerRadius\",\n outerRadius: \"outerRadius\",\n explodeSlices: \"explodeSlices\",\n showLabels: \"showLabels\",\n gradient: \"gradient\",\n activeEntries: \"activeEntries\",\n labelFormatting: \"labelFormatting\",\n trimLabels: \"trimLabels\",\n maxLabelLength: \"maxLabelLength\",\n tooltipText: \"tooltipText\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipTemplate: \"tooltipTemplate\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\",\n dblclick: \"dblclick\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c41,\n decls: 1,\n vars: 2,\n consts: [[4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-pie-label\", \"\", 3, \"data\", \"radius\", \"color\", \"label\", \"labelTrim\", \"labelTrimSize\", \"max\", \"value\", \"explodeSlices\", \"animations\", 4, \"ngIf\"], [\"ngx-charts-pie-arc\", \"\", \"ngx-tooltip\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"dblclick\", \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"fill\", \"value\", \"gradient\", \"data\", \"max\", \"explodeSlices\", \"isActive\", \"animate\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"], [\"ngx-charts-pie-label\", \"\", 3, \"data\", \"radius\", \"color\", \"label\", \"labelTrim\", \"labelTrimSize\", \"max\", \"value\", \"explodeSlices\", \"animations\"]],\n template: function PieSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, PieSeriesComponent__svg_g_0_Template, 3, 19, \"g\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.data)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [PieLabelComponent, PieArcComponent, i2.NgForOf, i2.NgIf, TooltipDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return PieSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AdvancedPieChartComponent = /*#__PURE__*/(() => {\n class AdvancedPieChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.activeEntries = [];\n this.tooltipDisabled = false;\n this.label = 'Total';\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [20, 20, 20, 20];\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width * 4 / 12.0,\n height: this.height,\n margins: this.margin\n });\n this.formatDates();\n this.domain = this.getDomain();\n this.setColors();\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 this.outerRadius = Math.min(this.dims.width, this.dims.height) / 2.5;\n this.innerRadius = this.outerRadius * 0.75;\n this.transform = `translate(${xOffset} , ${yOffset})`;\n }\n getDomain() {\n return this.results.map(d => d.label);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\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 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 this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n 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 const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n AdvancedPieChartComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵAdvancedPieChartComponent_BaseFactory;\n return function AdvancedPieChartComponent_Factory(t) {\n return (ɵAdvancedPieChartComponent_BaseFactory || (ɵAdvancedPieChartComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AdvancedPieChartComponent)))(t || AdvancedPieChartComponent);\n };\n })();\n AdvancedPieChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AdvancedPieChartComponent,\n selectors: [[\"ngx-charts-advanced-pie-chart\"]],\n contentQueries: function AdvancedPieChartComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n gradient: \"gradient\",\n activeEntries: \"activeEntries\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipText: \"tooltipText\",\n label: \"label\",\n valueFormatting: \"valueFormatting\",\n nameFormatting: \"nameFormatting\",\n percentageFormatting: \"percentageFormatting\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 7,\n vars: 37,\n consts: [[1, \"advanced-pie\", \"chart\"], [3, \"view\", \"showLegend\", \"animations\"], [1, \"pie\", \"chart\"], [\"ngx-charts-pie-series\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"colors\", \"series\", \"innerRadius\", \"activeEntries\", \"outerRadius\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"tooltipText\", \"animations\"], [1, \"advanced-pie-legend-wrapper\"], [3, \"select\", \"activate\", \"deactivate\", \"data\", \"colors\", \"width\", \"label\", \"animations\", \"valueFormatting\", \"labelFormatting\", \"percentageFormatting\"]],\n template: function AdvancedPieChartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\")(1, \"div\", 0)(2, \"ngx-charts-chart\", 1);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(3, \"g\", 2)(4, \"g\", 3);\n i0.ɵɵlistener(\"select\", function AdvancedPieChartComponent_Template_g_select_4_listener($event) {\n return ctx.onClick($event);\n })(\"activate\", function AdvancedPieChartComponent_Template_g_activate_4_listener($event) {\n return ctx.onActivate($event);\n })(\"deactivate\", function AdvancedPieChartComponent_Template_g_deactivate_4_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵelementEnd()()()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(5, \"div\", 4)(6, \"ngx-charts-advanced-legend\", 5);\n i0.ɵɵlistener(\"select\", function AdvancedPieChartComponent_Template_ngx_charts_advanced_legend_select_6_listener($event) {\n return ctx.onClick($event);\n })(\"activate\", function AdvancedPieChartComponent_Template_ngx_charts_advanced_legend_activate_6_listener($event) {\n return ctx.onActivate($event, true);\n })(\"deactivate\", function AdvancedPieChartComponent_Template_ngx_charts_advanced_legend_deactivate_6_listener($event) {\n return ctx.onDeactivate($event, true);\n });\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"width\", ctx.width, \"px\")(\"height\", ctx.height, \"px\");\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx.dims.width, \"px\")(\"height\", ctx.dims.height, \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(34, _c24, ctx.width, ctx.height))(\"showLegend\", false)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"colors\", ctx.colors)(\"series\", ctx.results)(\"innerRadius\", ctx.innerRadius)(\"activeEntries\", ctx.activeEntries)(\"outerRadius\", ctx.outerRadius)(\"gradient\", ctx.gradient)(\"tooltipDisabled\", ctx.tooltipDisabled)(\"tooltipTemplate\", ctx.tooltipTemplate)(\"tooltipText\", ctx.tooltipText)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx.width - ctx.dims.width, \"px\")(\"height\", ctx.height, \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"data\", ctx.results)(\"colors\", ctx.colors)(\"width\", ctx.width - ctx.dims.width - ctx.margin[1])(\"label\", ctx.label)(\"animations\", ctx.animations)(\"valueFormatting\", ctx.valueFormatting)(\"labelFormatting\", ctx.nameFormatting)(\"percentageFormatting\", ctx.percentageFormatting);\n }\n },\n dependencies: [ChartComponent, PieSeriesComponent, AdvancedLegendComponent],\n styles: [_c25, \".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return AdvancedPieChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PieChartComponent = /*#__PURE__*/(() => {\n class PieChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.labels = false;\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.explodeSlices = false;\n this.doughnut = false;\n this.arcWidth = 0.25;\n this.activeEntries = [];\n this.tooltipDisabled = false;\n this.trimLabels = true;\n this.maxLabelLength = 10;\n this.dblclick = new EventEmitter();\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n }\n update() {\n super.update();\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 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 this.formatDates();\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 this.domain = this.getDomain();\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 this.setColors();\n this.legendOptions = this.getLegendOptions();\n }\n getDomain() {\n return this.results.map(d => d.label);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n getLegendOptions() {\n return {\n scaleType: ScaleType.Ordinal,\n domain: this.domain,\n colors: this.colors,\n title: this.legendTitle,\n position: this.legendPosition\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 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 this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n 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 const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n hasNoOptionalMarginsSet() {\n return !this.margins || this.margins.length <= 0;\n }\n }\n PieChartComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵPieChartComponent_BaseFactory;\n return function PieChartComponent_Factory(t) {\n return (ɵPieChartComponent_BaseFactory || (ɵPieChartComponent_BaseFactory = i0.ɵɵgetInheritedFactory(PieChartComponent)))(t || PieChartComponent);\n };\n })();\n PieChartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PieChartComponent,\n selectors: [[\"ngx-charts-pie-chart\"]],\n contentQueries: function PieChartComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n labels: \"labels\",\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n explodeSlices: \"explodeSlices\",\n doughnut: \"doughnut\",\n arcWidth: \"arcWidth\",\n gradient: \"gradient\",\n activeEntries: \"activeEntries\",\n tooltipDisabled: \"tooltipDisabled\",\n labelFormatting: \"labelFormatting\",\n trimLabels: \"trimLabels\",\n maxLabelLength: \"maxLabelLength\",\n tooltipText: \"tooltipText\",\n margins: \"margins\"\n },\n outputs: {\n dblclick: \"dblclick\",\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 24,\n consts: [[3, \"legendLabelActivate\", \"legendLabelDeactivate\", \"legendLabelClick\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"pie-chart\", \"chart\"], [\"ngx-charts-pie-series\", \"\", 3, \"dblclick\", \"select\", \"activate\", \"deactivate\", \"colors\", \"series\", \"showLabels\", \"labelFormatting\", \"trimLabels\", \"maxLabelLength\", \"activeEntries\", \"innerRadius\", \"outerRadius\", \"explodeSlices\", \"gradient\", \"animations\", \"tooltipDisabled\", \"tooltipTemplate\", \"tooltipText\"]],\n template: function PieChartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵlistener(\"legendLabelActivate\", function PieChartComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event, true);\n })(\"legendLabelDeactivate\", function PieChartComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event, true);\n })(\"legendLabelClick\", function PieChartComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1)(2, \"g\", 2);\n i0.ɵɵlistener(\"dblclick\", function PieChartComponent_Template_g_dblclick_2_listener($event) {\n return ctx.dblclick.emit($event);\n })(\"select\", function PieChartComponent_Template_g_select_2_listener($event) {\n return ctx.onClick($event);\n })(\"activate\", function PieChartComponent_Template_g_activate_2_listener($event) {\n return ctx.onActivate($event);\n })(\"deactivate\", function PieChartComponent_Template_g_deactivate_2_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(21, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.translation);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"colors\", ctx.colors)(\"series\", ctx.data)(\"showLabels\", ctx.labels)(\"labelFormatting\", ctx.labelFormatting)(\"trimLabels\", ctx.trimLabels)(\"maxLabelLength\", ctx.maxLabelLength)(\"activeEntries\", ctx.activeEntries)(\"innerRadius\", ctx.innerRadius)(\"outerRadius\", ctx.outerRadius)(\"explodeSlices\", ctx.explodeSlices)(\"gradient\", ctx.gradient)(\"animations\", ctx.animations)(\"tooltipDisabled\", ctx.tooltipDisabled)(\"tooltipTemplate\", ctx.tooltipTemplate)(\"tooltipText\", ctx.tooltipText);\n }\n },\n dependencies: [ChartComponent, PieSeriesComponent],\n styles: [_c25, _c42],\n encapsulation: 2,\n changeDetection: 0\n });\n return PieChartComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction gridSize(dims, len, minWidth) {\n let rows = 1;\n let cols = len;\n const width = dims.width;\n if (width > minWidth) {\n while (width / cols < minWidth) {\n rows += 1;\n cols = Math.ceil(len / rows);\n }\n }\n return [cols, rows];\n}\nfunction gridLayout(dims, data, minWidth, designatedTotal) {\n const xScale = scaleBand();\n const yScale = scaleBand();\n const width = dims.width;\n const height = dims.height;\n const [columns, rows] = gridSize(dims, data.length, minWidth);\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 xScale.rangeRound([0, width], 0.1);\n yScale.rangeRound([0, height], 0.1);\n const res = [];\n const total = designatedTotal ? designatedTotal : getTotal(data);\n const cardWidth = xScale.bandwidth();\n const cardHeight = yScale.bandwidth();\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 return res;\n}\nfunction getTotal(results) {\n return results.map(d => d ? d.value : 0).reduce((sum, val) => sum + val, 0);\n}\nlet PieGridSeriesComponent = /*#__PURE__*/(() => {\n class PieGridSeriesComponent {\n constructor(element) {\n this.innerRadius = 70;\n this.outerRadius = 80;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.layout = pie().value(d => d.data.value).sort(null);\n this.arcs = this.getArcs();\n }\n getArcs() {\n return this.layout(this.data).map((arc, index) => {\n const label = arc.data.data.name;\n const other = arc.data.data.other;\n if (index === 0) {\n arc.startAngle = 0;\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 onClick(data) {\n this.select.emit(this.data[0].data);\n }\n trackBy(index, item) {\n return item.data.name;\n }\n label(arc) {\n return arc.data.name;\n }\n color(arc) {\n return this.colors(this.label(arc));\n }\n }\n PieGridSeriesComponent.ɵfac = function PieGridSeriesComponent_Factory(t) {\n return new (t || PieGridSeriesComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n PieGridSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PieGridSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-pie-grid-series\", \"\"]],\n inputs: {\n colors: \"colors\",\n data: \"data\",\n innerRadius: \"innerRadius\",\n outerRadius: \"outerRadius\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c43,\n decls: 2,\n vars: 2,\n consts: [[1, \"pie-grid-arcs\"], [\"ngx-charts-pie-arc\", \"\", 3, \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"fill\", \"value\", \"data\", \"gradient\", \"pointerEvents\", \"animate\", \"select\", \"activate\", \"deactivate\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-pie-arc\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"fill\", \"value\", \"data\", \"gradient\", \"pointerEvents\", \"animate\"]],\n template: function PieGridSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 0);\n i0.ɵɵtemplate(1, PieGridSeriesComponent__svg_g_1_Template, 1, 11, \"g\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.arcs)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [PieArcComponent, i2.NgForOf],\n encapsulation: 2,\n changeDetection: 0\n });\n return PieGridSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PieGridComponent = /*#__PURE__*/(() => {\n class PieGridComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.tooltipDisabled = false;\n this.label = 'Total';\n this.minWidth = 150;\n this.activeEntries = [];\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [20, 20, 20, 20];\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n this.formatDates();\n this.domain = this.getDomain();\n this.data = gridLayout(this.dims, this.results, this.minWidth, this.designatedTotal);\n this.transform = `translate(${this.margin[3]} , ${this.margin[0]})`;\n this.series = this.getSeries();\n this.setColors();\n this.tooltipText = this.tooltipText || this.defaultTooltipText;\n }\n defaultTooltipText({\n data\n }) {\n const label = trimLabel(formatLabel(data.name));\n const val = data.value.toLocaleString();\n return `\n ${label}\n ${val}\n `;\n }\n getDomain() {\n return this.results.map(d => d.label);\n }\n getSeries() {\n const total = this.designatedTotal ? this.designatedTotal : this.getTotal();\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 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 const xPos = d.x + (d.width - padding) / 2;\n const yPos = d.y + (d.height - baselineLabelHeight) / 2;\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: [d, {\n data: {\n other: true,\n value: total - value,\n name: d.data.name\n }\n }]\n };\n });\n }\n getTotal() {\n return this.results.map(d => d.value).reduce((sum, d) => sum + d, 0);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colorScale = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\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 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 this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n 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 const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n }\n PieGridComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵPieGridComponent_BaseFactory;\n return function PieGridComponent_Factory(t) {\n return (ɵPieGridComponent_BaseFactory || (ɵPieGridComponent_BaseFactory = i0.ɵɵgetInheritedFactory(PieGridComponent)))(t || PieGridComponent);\n };\n })();\n PieGridComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PieGridComponent,\n selectors: [[\"ngx-charts-pie-grid\"]],\n contentQueries: function PieGridComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n designatedTotal: \"designatedTotal\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipText: \"tooltipText\",\n label: \"label\",\n minWidth: \"minWidth\",\n activeEntries: \"activeEntries\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 8,\n consts: [[3, \"view\", \"showLegend\", \"animations\"], [1, \"pie-grid\", \"chart\"], [\"class\", \"pie-grid-item\", 4, \"ngFor\", \"ngForOf\"], [1, \"pie-grid-item\"], [\"ngx-charts-pie-grid-series\", \"\", \"ngx-tooltip\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"colors\", \"data\", \"innerRadius\", \"outerRadius\", \"animations\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"], [\"class\", \"label percent-label\", \"dy\", \"-0.5em\", \"x\", \"0\", \"y\", \"5\", \"ngx-charts-count-up\", \"\", \"text-anchor\", \"middle\", 3, \"countTo\", \"countSuffix\", 4, \"ngIf\"], [\"class\", \"label percent-label\", \"dy\", \"-0.5em\", \"x\", \"0\", \"y\", \"5\", \"text-anchor\", \"middle\", 4, \"ngIf\"], [\"dy\", \"0.5em\", \"x\", \"0\", \"y\", \"5\", \"text-anchor\", \"middle\", 1, \"label\"], [\"class\", \"label\", \"dy\", \"1.23em\", \"x\", \"0\", \"text-anchor\", \"middle\", \"ngx-charts-count-up\", \"\", 3, \"countTo\", \"countPrefix\", 4, \"ngIf\"], [\"class\", \"label\", \"dy\", \"1.23em\", \"x\", \"0\", \"text-anchor\", \"middle\", 4, \"ngIf\"], [\"dy\", \"-0.5em\", \"x\", \"0\", \"y\", \"5\", \"ngx-charts-count-up\", \"\", \"text-anchor\", \"middle\", 1, \"label\", \"percent-label\", 3, \"countTo\", \"countSuffix\"], [\"dy\", \"-0.5em\", \"x\", \"0\", \"y\", \"5\", \"text-anchor\", \"middle\", 1, \"label\", \"percent-label\"], [\"dy\", \"1.23em\", \"x\", \"0\", \"text-anchor\", \"middle\", \"ngx-charts-count-up\", \"\", 1, \"label\", 3, \"countTo\", \"countPrefix\"], [\"dy\", \"1.23em\", \"x\", \"0\", \"text-anchor\", \"middle\", 1, \"label\"]],\n template: function PieGridComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵtemplate(2, PieGridComponent__svg_g_2_Template, 8, 19, \"g\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(5, _c24, ctx.width, ctx.height))(\"showLegend\", false)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.series);\n }\n },\n dependencies: [ChartComponent, PieGridSeriesComponent, CountUpDirective, i2.NgForOf, TooltipDirective, i2.NgIf],\n styles: [_c25, \".pie-grid .arc1{opacity:.4}.pie-grid .percent-label{font-size:16px;font-weight:400}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return PieGridComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PieChartModule = /*#__PURE__*/(() => {\n class PieChartModule {}\n PieChartModule.ɵfac = function PieChartModule_Factory(t) {\n return new (t || PieChartModule)();\n };\n PieChartModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PieChartModule\n });\n PieChartModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return PieChartModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PolarChartModule = /*#__PURE__*/(() => {\n class PolarChartModule {}\n PolarChartModule.ɵfac = function PolarChartModule_Factory(t) {\n return new (t || PolarChartModule)();\n };\n PolarChartModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PolarChartModule\n });\n PolarChartModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule, PieChartModule, LineChartModule]]\n });\n return PolarChartModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction calculateTextWidth(fontFamilyKey, text, defaultWidth = 8) {\n return text.split('').reduce((acc, curr) => {\n const width = fontFamilyKey[curr] || defaultWidth;\n return acc + width;\n }, 0);\n}\nconst VERDANA_FONT_WIDTHS_16_PX = {\n '0': 10,\n '1': 10,\n '2': 10,\n '3': 10,\n '4': 10,\n '5': 10,\n '6': 10,\n '7': 10,\n '8': 10,\n '9': 10,\n A: 11,\n B: 11,\n C: 11,\n D: 12,\n E: 10,\n F: 9,\n G: 12,\n H: 12,\n I: 7,\n J: 7,\n K: 11,\n L: 9,\n M: 13,\n N: 12,\n O: 13,\n P: 10,\n Q: 13,\n R: 11,\n S: 11,\n T: 10,\n U: 12,\n V: 11,\n W: 16,\n X: 11,\n Y: 10,\n Z: 11,\n a: 10,\n b: 10,\n c: 8,\n d: 10,\n e: 10,\n f: 6,\n g: 10,\n h: 10,\n i: 4,\n j: 6,\n k: 9,\n l: 4,\n m: 16,\n n: 10,\n o: 10,\n p: 10,\n q: 10,\n r: 7,\n s: 8,\n t: 6,\n u: 10,\n v: 9,\n w: 13,\n x: 9,\n y: 9,\n z: 8,\n '!': 6,\n '@': 16,\n '#': 13,\n $: 10,\n '%': 17,\n '^': 13,\n '&': 12,\n '*': 10,\n '(': 7,\n ')': 7,\n _: 10,\n '-': 7,\n '+': 13,\n '=': 13,\n ',': 6,\n '.': 6,\n '/': 7,\n \"'\": 4,\n ':': 7,\n '|': 7,\n '?': 9,\n ';': 7,\n '<': 13,\n '>': 13\n};\nlet CardComponent = /*#__PURE__*/(() => {\n class CardComponent {\n constructor(element, cd, zone, platformId) {\n this.cd = cd;\n this.zone = zone;\n this.platformId = platformId;\n this.animations = true;\n this.select = new EventEmitter();\n this.value = '';\n this.textFontSize = 12;\n this.textTransform = '';\n this.initialized = false;\n this.bandHeight = 10;\n this.textPadding = [10, 20, 5, 20];\n this.labelFontSize = 15;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.scaleTextSSR();\n }\n }\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId)) {\n cancelAnimationFrame(this.animationReq);\n }\n }\n update() {\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 => escapeLabel(trimLabel(card.label, 55)));\n this.transform = `translate(${this.x} , ${this.y})`;\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 this.label = this.label ? this.label : this.data.name;\n const cardData = {\n label: this.label,\n data: this.data,\n value: this.data.value\n };\n this.formattedLabel = labelFormatting(cardData);\n this.transformBand = `translate(0 , ${this.cardHeight - this.bandHeight})`;\n const value = hasValue ? valueFormatting(cardData) : '';\n this.value = this.paddedValue(value);\n this.setPadding();\n this.bandPath = roundedRect(0, 0, this.cardWidth, this.bandHeight, 3, [false, false, true, true]);\n setTimeout(() => {\n if (isPlatformBrowser(this.platformId)) {\n this.scaleText();\n }\n this.value = value;\n if (hasValue && !this.initialized) {\n setTimeout(() => this.startCount(), 20);\n }\n }, 8);\n });\n }\n paddedValue(value) {\n if (this.medianSize && this.medianSize > value.length) {\n value += '\\u2007'.repeat(this.medianSize - value.length);\n }\n return value;\n }\n startCount() {\n if (!this.initialized && this.animations) {\n cancelAnimationFrame(this.animationReq);\n const val = this.data.value;\n const decs = decimalChecker(val);\n const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n const callback = ({\n value,\n finished\n }) => {\n this.zone.run(() => {\n value = finished ? val : value;\n this.value = valueFormatting({\n label: this.label,\n data: this.data,\n value\n });\n if (!finished) {\n this.value = this.paddedValue(this.value);\n }\n this.cd.markForCheck();\n });\n };\n this.animationReq = count(0, val, decs, 1, callback);\n this.initialized = true;\n }\n }\n scaleText() {\n this.zone.run(() => {\n const {\n width,\n height\n } = this.textEl.nativeElement.getBoundingClientRect();\n if (width === 0 || height === 0) {\n return;\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 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 this.setPadding();\n this.cd.markForCheck();\n });\n }\n scaleTextSSR() {\n const width = calculateTextWidth(VERDANA_FONT_WIDTHS_16_PX, this.value, 10);\n const height = 18;\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 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 this.setPadding();\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 onClick() {\n this.select.emit(this.data);\n }\n }\n CardComponent.ɵfac = function CardComponent_Factory(t) {\n return new (t || CardComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n CardComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CardComponent,\n selectors: [[\"g\", \"ngx-charts-card\", \"\"]],\n viewQuery: function CardComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c45, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.textEl = _t.first);\n }\n },\n inputs: {\n color: \"color\",\n bandColor: \"bandColor\",\n textColor: \"textColor\",\n x: \"x\",\n y: \"y\",\n width: \"width\",\n height: \"height\",\n label: \"label\",\n data: \"data\",\n medianSize: \"medianSize\",\n valueFormatting: \"valueFormatting\",\n labelFormatting: \"labelFormatting\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c46,\n decls: 10,\n vars: 25,\n consts: [[\"textEl\", \"\"], [1, \"cell\", 3, \"click\"], [\"rx\", \"3\", \"ry\", \"3\", 1, \"card\"], [\"class\", \"card-band\", \"stroke\", \"none\", 4, \"ngIf\"], [\"x\", \"5\", \"alignment-baseline\", \"hanging\", 1, \"trimmed-label\"], [3, \"innerHTML\"], [\"text-anchor\", \"start\", \"alignment-baseline\", \"hanging\", 1, \"value-text\"], [\"stroke\", \"none\", 1, \"card-band\"]],\n template: function CardComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\", 1);\n i0.ɵɵlistener(\"click\", function CardComponent_Template_g_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onClick());\n });\n i0.ɵɵelement(1, \"rect\", 2);\n i0.ɵɵtemplate(2, CardComponent__svg_path_2_Template, 1, 3, \"path\", 3);\n i0.ɵɵelementStart(3, \"title\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"foreignObject\", 4);\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelement(6, \"p\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(7, \"text\", 6, 0);\n i0.ɵɵtext(9);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"fill\", ctx.color);\n i0.ɵɵattribute(\"width\", ctx.cardWidth)(\"height\", ctx.cardHeight);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.bandColor && ctx.bandColor !== ctx.color);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx.label);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"x\", ctx.textPadding[3])(\"y\", ctx.cardHeight - ctx.textPadding[2])(\"width\", ctx.textWidth)(\"height\", ctx.labelFontSize + ctx.textPadding[2]);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"color\", ctx.textColor)(\"font-size\", ctx.labelFontSize, \"px\")(\"line-height\", ctx.labelFontSize, \"px\");\n i0.ɵɵproperty(\"innerHTML\", ctx.formattedLabel, i0.ɵɵsanitizeHtml);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"fill\", ctx.textColor)(\"font-size\", ctx.textFontSize, \"pt\");\n i0.ɵɵattribute(\"x\", ctx.textPadding[3])(\"y\", ctx.textPadding[0]);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx.value, \" \");\n }\n },\n dependencies: [i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return CardComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Converts a hex to RGB\n *\n * @export\n */\nfunction hexToRgb(value) {\n // deprecated, use d3.color()\n return d3_color.rgb(value);\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 */\nfunction invertColor(value) {\n const color = d3_color.rgb(value);\n const {\n r,\n g,\n b,\n opacity\n } = 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 ? -0.8 : 0.8;\n return shadeRGBColor(color, depth);\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 \\{ r, g, b }\n */\nfunction shadeRGBColor({\n r,\n g,\n b\n}, percent) {\n const t = percent < 0 ? 0 : 255;\n const p = percent < 0 ? percent * -1 : percent;\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 return `rgb(${r}, ${g}, ${b})`;\n}\nlet CardSeriesComponent = /*#__PURE__*/(() => {\n class CardSeriesComponent {\n constructor() {\n this.innerPadding = 15;\n this.emptyColor = 'rgba(0, 0, 0, 0)';\n this.animations = true;\n this.select = new EventEmitter();\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n if (this.data.length > 2) {\n const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n const sortedLengths = this.data.map(d => {\n const hasValue = d && d.data && typeof d.data.value !== 'undefined' && d.data.value !== null;\n return hasValue ? valueFormatting({\n data: d.data,\n label: d ? d.data.name : '',\n value: d && d.data ? d.data.value : ''\n }).length : 0;\n }).sort((a, b) => b - a);\n const idx = Math.ceil(this.data.length / 2);\n this.medianSize = sortedLengths[idx];\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 getCards() {\n const yPadding = typeof this.innerPadding === 'number' ? this.innerPadding : this.innerPadding[0] + this.innerPadding[2];\n const xPadding = typeof this.innerPadding === 'number' ? this.innerPadding : this.innerPadding[1] + this.innerPadding[3];\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 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 trackBy(index, card) {\n return card.label;\n }\n onClick(data) {\n this.select.emit(data);\n }\n }\n CardSeriesComponent.ɵfac = function CardSeriesComponent_Factory(t) {\n return new (t || CardSeriesComponent)();\n };\n CardSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CardSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-card-series\", \"\"]],\n inputs: {\n data: \"data\",\n dims: \"dims\",\n colors: \"colors\",\n innerPadding: \"innerPadding\",\n cardColor: \"cardColor\",\n bandColor: \"bandColor\",\n emptyColor: \"emptyColor\",\n textColor: \"textColor\",\n valueFormatting: \"valueFormatting\",\n labelFormatting: \"labelFormatting\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c47,\n decls: 2,\n vars: 4,\n consts: [[\"class\", \"card-empty\", \"rx\", \"3\", \"ry\", \"3\", 3, \"fill\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-card\", \"\", 3, \"x\", \"y\", \"width\", \"height\", \"color\", \"bandColor\", \"textColor\", \"data\", \"label\", \"medianSize\", \"valueFormatting\", \"labelFormatting\", \"animations\", \"select\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"rx\", \"3\", \"ry\", \"3\", 1, \"card-empty\"], [\"ngx-charts-card\", \"\", 3, \"select\", \"x\", \"y\", \"width\", \"height\", \"color\", \"bandColor\", \"textColor\", \"data\", \"label\", \"medianSize\", \"valueFormatting\", \"labelFormatting\", \"animations\"]],\n template: function CardSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, CardSeriesComponent__svg_rect_0_Template, 1, 6, \"rect\", 0)(1, CardSeriesComponent__svg_g_1_Template, 1, 13, \"g\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.emptySlots)(\"ngForTrackBy\", ctx.trackBy);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.cards)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [CardComponent, i2.NgForOf],\n encapsulation: 2,\n changeDetection: 0\n });\n return CardSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NumberCardComponent = /*#__PURE__*/(() => {\n class NumberCardComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.emptyColor = 'rgba(0, 0, 0, 0)';\n this.innerPadding = 15;\n this.margin = [10, 10, 10, 10];\n }\n get clickable() {\n return !!this.select.observers.length;\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n this.formatDates();\n this.domain = this.getDomain();\n this.setColors();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n const size = gridSize(this.dims, this.results.length, 150);\n const N = size[0] * size[1];\n const data = this.results.slice();\n while (data.length < N) {\n data.push({\n value: null\n });\n }\n this.data = gridLayout(this.dims, data, 150, this.designatedTotal);\n }\n getDomain() {\n return this.results.map(d => d.label);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n }\n NumberCardComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵNumberCardComponent_BaseFactory;\n return function NumberCardComponent_Factory(t) {\n return (ɵNumberCardComponent_BaseFactory || (ɵNumberCardComponent_BaseFactory = i0.ɵɵgetInheritedFactory(NumberCardComponent)))(t || NumberCardComponent);\n };\n })();\n NumberCardComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NumberCardComponent,\n selectors: [[\"ngx-charts-number-card\"]],\n inputs: {\n cardColor: \"cardColor\",\n bandColor: \"bandColor\",\n emptyColor: \"emptyColor\",\n innerPadding: \"innerPadding\",\n textColor: \"textColor\",\n valueFormatting: \"valueFormatting\",\n labelFormatting: \"labelFormatting\",\n designatedTotal: \"designatedTotal\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 20,\n consts: [[3, \"view\", \"showLegend\", \"animations\"], [1, \"number-card\", \"chart\"], [\"ngx-charts-card-series\", \"\", 3, \"select\", \"colors\", \"cardColor\", \"bandColor\", \"textColor\", \"emptyColor\", \"data\", \"dims\", \"innerPadding\", \"valueFormatting\", \"labelFormatting\", \"animations\"]],\n template: function NumberCardComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1)(2, \"g\", 2);\n i0.ɵɵlistener(\"select\", function NumberCardComponent_Template_g_select_2_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(17, _c24, ctx.width, ctx.height))(\"showLegend\", false)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"clickable\", ctx.clickable);\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"colors\", ctx.colors)(\"cardColor\", ctx.cardColor)(\"bandColor\", ctx.bandColor)(\"textColor\", ctx.textColor)(\"emptyColor\", ctx.emptyColor)(\"data\", ctx.data)(\"dims\", ctx.dims)(\"innerPadding\", ctx.innerPadding)(\"valueFormatting\", ctx.valueFormatting)(\"labelFormatting\", ctx.labelFormatting)(\"animations\", ctx.animations);\n }\n },\n dependencies: [ChartComponent, CardSeriesComponent],\n styles: [_c25, \"ngx-charts-number-card .cell .trimmed-label{font-size:12px;pointer-events:none;overflow:hidden;text-align:left;line-height:1em}ngx-charts-number-card .cell .trimmed-label p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%;padding:0;margin:0}ngx-charts-number-card .cell .value-text{pointer-events:none}ngx-charts-number-card .number-card.clickable .cell .card,ngx-charts-number-card .number-card.clickable .cell .card-band{cursor:pointer}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return NumberCardComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NumberCardModule = /*#__PURE__*/(() => {\n class NumberCardModule {}\n NumberCardModule.ɵfac = function NumberCardModule_Factory(t) {\n return new (t || NumberCardModule)();\n };\n NumberCardModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NumberCardModule\n });\n NumberCardModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return NumberCardModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TreeMapCellComponent = /*#__PURE__*/(() => {\n class TreeMapCellComponent {\n constructor(element) {\n this.gradient = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.initialized = false;\n this.orientation = BarOrientation;\n this.element = element.nativeElement;\n }\n ngOnChanges() {\n this.update();\n this.valueFormatting = this.valueFormatting || (value => value.toLocaleString());\n const labelFormatting = this.labelFormatting || (cell => escapeLabel(trimLabel(cell.label, 55)));\n const cellData = {\n data: this.data,\n label: this.label,\n value: this.value\n };\n this.formattedValue = this.valueFormatting(cellData.value);\n this.formattedLabel = labelFormatting(cellData);\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n this.gradientStops = this.getGradientStops();\n }\n update() {\n if (this.initialized) {\n this.animateToCurrentForm();\n } else {\n if (this.animations) {\n this.loadAnimation();\n }\n this.initialized = true;\n }\n }\n loadAnimation() {\n const node = select(this.element).select('.cell');\n node.attr('opacity', 0).attr('x', this.x).attr('y', this.y);\n this.animateToCurrentForm();\n }\n getTextColor() {\n return invertColor(this.fill);\n }\n animateToCurrentForm() {\n const node = select(this.element).select('.cell');\n if (this.animations) {\n node.transition().duration(750).attr('opacity', 1).attr('x', this.x).attr('y', this.y).attr('width', this.width).attr('height', this.height);\n } else {\n node.attr('opacity', 1).attr('x', this.x).attr('y', this.y).attr('width', this.width).attr('height', this.height);\n }\n }\n onClick() {\n this.select.emit(this.data);\n }\n getGradientStops() {\n return [{\n offset: 0,\n color: this.fill,\n opacity: 0.3\n }, {\n offset: 100,\n color: this.fill,\n opacity: 1\n }];\n }\n }\n TreeMapCellComponent.ɵfac = function TreeMapCellComponent_Factory(t) {\n return new (t || TreeMapCellComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n TreeMapCellComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TreeMapCellComponent,\n selectors: [[\"g\", \"ngx-charts-tree-map-cell\", \"\"]],\n inputs: {\n data: \"data\",\n fill: \"fill\",\n x: \"x\",\n y: \"y\",\n width: \"width\",\n height: \"height\",\n label: \"label\",\n value: \"value\",\n valueFormatting: \"valueFormatting\",\n labelFormatting: \"labelFormatting\",\n gradient: \"gradient\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c48,\n decls: 4,\n vars: 7,\n consts: [[4, \"ngIf\"], [1, \"cell\", 3, \"click\"], [\"class\", \"treemap-label\", 3, \"pointer-events\", 4, \"ngIf\"], [\"ngx-charts-svg-linear-gradient\", \"\", 3, \"orientation\", \"name\", \"stops\"], [1, \"treemap-label\"], [1, \"treemap-label\", 3, \"innerHTML\"], [\"class\", \"treemap-val\", \"ngx-charts-count-up\", \"\", 3, \"countTo\", \"valueFormatting\", 4, \"ngIf\"], [\"class\", \"treemap-val\", 4, \"ngIf\"], [\"ngx-charts-count-up\", \"\", 1, \"treemap-val\", 3, \"countTo\", \"valueFormatting\"], [1, \"treemap-val\"]],\n template: function TreeMapCellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, TreeMapCellComponent__svg_defs_1_Template, 2, 3, \"defs\", 0);\n i0.ɵɵelementStart(2, \"rect\", 1);\n i0.ɵɵlistener(\"click\", function TreeMapCellComponent_Template_rect_click_2_listener() {\n return ctx.onClick();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, TreeMapCellComponent__svg_foreignObject_3_Template, 6, 15, \"foreignObject\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.gradient);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"fill\", ctx.gradient ? ctx.gradientUrl : ctx.fill)(\"width\", ctx.width)(\"height\", ctx.height)(\"x\", ctx.x)(\"y\", ctx.y);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.width >= 70 && ctx.height >= 35);\n }\n },\n dependencies: [SvgLinearGradientComponent, CountUpDirective, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n return TreeMapCellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TreeMapCellSeriesComponent = /*#__PURE__*/(() => {\n class TreeMapCellSeriesComponent {\n constructor() {\n this.gradient = false;\n this.tooltipDisabled = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.styleTypes = StyleTypes;\n this.placementTypes = PlacementTypes;\n }\n ngOnChanges(changes) {\n this.cells = this.getCells();\n }\n getCells() {\n return this.data.children.filter(d => {\n return d.depth === 1;\n }).map((d, index) => {\n const label = d.id;\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 };\n });\n }\n getTooltipText({\n label,\n value\n }) {\n return `\n ${escapeLabel(label)}\n ${value.toLocaleString()}\n `;\n }\n onClick(data) {\n this.select.emit(data);\n }\n trackBy(index, item) {\n return item.label;\n }\n }\n TreeMapCellSeriesComponent.ɵfac = function TreeMapCellSeriesComponent_Factory(t) {\n return new (t || TreeMapCellSeriesComponent)();\n };\n TreeMapCellSeriesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TreeMapCellSeriesComponent,\n selectors: [[\"g\", \"ngx-charts-tree-map-cell-series\", \"\"]],\n inputs: {\n data: \"data\",\n dims: \"dims\",\n colors: \"colors\",\n valueFormatting: \"valueFormatting\",\n labelFormatting: \"labelFormatting\",\n gradient: \"gradient\",\n tooltipDisabled: \"tooltipDisabled\",\n tooltipTemplate: \"tooltipTemplate\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c49,\n decls: 1,\n vars: 2,\n consts: [[\"ngx-charts-tree-map-cell\", \"\", \"ngx-tooltip\", \"\", 3, \"data\", \"x\", \"y\", \"width\", \"height\", \"fill\", \"label\", \"value\", \"valueFormatting\", \"labelFormatting\", \"gradient\", \"animations\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", \"select\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-tree-map-cell\", \"\", \"ngx-tooltip\", \"\", 3, \"select\", \"data\", \"x\", \"y\", \"width\", \"height\", \"fill\", \"label\", \"value\", \"valueFormatting\", \"labelFormatting\", \"gradient\", \"animations\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"]],\n template: function TreeMapCellSeriesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TreeMapCellSeriesComponent__svg_g_0_Template, 1, 18, \"g\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.cells)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [TreeMapCellComponent, i2.NgForOf, TooltipDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return TreeMapCellSeriesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TreeMapComponent = /*#__PURE__*/(() => {\n class TreeMapComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.tooltipDisabled = false;\n this.gradient = false;\n this.select = new EventEmitter();\n this.margin = [10, 10, 10, 10];\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n this.domain = this.getDomain();\n this.treemap = treemap().size([this.dims.width, this.dims.height]);\n const rootNode = {\n name: 'root',\n value: 0,\n isRoot: true\n };\n const root = stratify().id(d => {\n let label = d.name;\n if (label.constructor.name === 'Date') {\n label = label.toLocaleDateString();\n } else {\n label = label.toLocaleString();\n }\n return label;\n }).parentId(d => d.isRoot ? null : 'root')([rootNode, ...this.results]).sum(d => d.value);\n this.data = this.treemap(root);\n this.setColors();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getDomain() {\n return this.results.map(d => d.name);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n }\n TreeMapComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵTreeMapComponent_BaseFactory;\n return function TreeMapComponent_Factory(t) {\n return (ɵTreeMapComponent_BaseFactory || (ɵTreeMapComponent_BaseFactory = i0.ɵɵgetInheritedFactory(TreeMapComponent)))(t || TreeMapComponent);\n };\n })();\n TreeMapComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TreeMapComponent,\n selectors: [[\"ngx-charts-tree-map\"]],\n contentQueries: function TreeMapComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n results: \"results\",\n tooltipDisabled: \"tooltipDisabled\",\n valueFormatting: \"valueFormatting\",\n labelFormatting: \"labelFormatting\",\n gradient: \"gradient\"\n },\n outputs: {\n select: \"select\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 16,\n consts: [[3, \"view\", \"showLegend\", \"animations\"], [1, \"tree-map\", \"chart\"], [\"ngx-charts-tree-map-cell-series\", \"\", 3, \"select\", \"colors\", \"data\", \"dims\", \"tooltipDisabled\", \"tooltipTemplate\", \"valueFormatting\", \"labelFormatting\", \"gradient\", \"animations\"]],\n template: function TreeMapComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1)(2, \"g\", 2);\n i0.ɵɵlistener(\"select\", function TreeMapComponent_Template_g_select_2_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(13, _c24, ctx.width, ctx.height))(\"showLegend\", false)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"colors\", ctx.colors)(\"data\", ctx.data)(\"dims\", ctx.dims)(\"tooltipDisabled\", ctx.tooltipDisabled)(\"tooltipTemplate\", ctx.tooltipTemplate)(\"valueFormatting\", ctx.valueFormatting)(\"labelFormatting\", ctx.labelFormatting)(\"gradient\", ctx.gradient)(\"animations\", ctx.animations);\n }\n },\n dependencies: [ChartComponent, TreeMapCellSeriesComponent],\n styles: [\".tree-map .treemap-val{font-size:1.3em;padding-top:5px;display:inline-block}.tree-map .treemap-label p{display:table-cell;text-align:center;line-height:1.2em;vertical-align:middle}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return TreeMapComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TreeMapModule = /*#__PURE__*/(() => {\n class TreeMapModule {}\n TreeMapModule.ɵfac = function TreeMapModule_Factory(t) {\n return new (t || TreeMapModule)();\n };\n TreeMapModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TreeMapModule\n });\n TreeMapModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return TreeMapModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar ElementType = /*#__PURE__*/function (ElementType) {\n ElementType[\"Value\"] = \"value\";\n ElementType[\"Units\"] = \"units\";\n return ElementType;\n}(ElementType || {});\nlet LinearGaugeComponent = /*#__PURE__*/(() => {\n class LinearGaugeComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.min = 0;\n this.max = 100;\n this.value = 0;\n this.margin = [10, 20, 10, 20];\n this.valueResizeScale = 1;\n this.unitsResizeScale = 1;\n this.valueTextTransform = '';\n this.valueTranslate = '';\n this.unitsTextTransform = '';\n this.unitsTranslate = '';\n this.barOrientation = BarOrientation;\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n setTimeout(() => {\n this.scaleText(ElementType.Value);\n this.scaleText(ElementType.Units);\n });\n }\n update() {\n super.update();\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 this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n this.valueDomain = this.getValueDomain();\n this.valueScale = this.getValueScale();\n this.displayValue = this.getDisplayValue();\n this.setColors();\n const xOffset = this.margin[3] + this.dims.width / 2;\n const yOffset = this.margin[0] + this.dims.height / 2;\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 if (isPlatformServer(this.platformId)) {\n this.scaleTextSSR('value');\n this.scaleTextSSR('units');\n } else {\n setTimeout(() => this.scaleText(ElementType.Value), 50);\n setTimeout(() => this.scaleText(ElementType.Units), 50);\n }\n }\n getValueDomain() {\n return [this.min, this.max];\n }\n getValueScale() {\n return scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n }\n getDisplayValue() {\n if (this.valueFormatting) {\n return this.valueFormatting(this.value);\n }\n return this.value.toLocaleString();\n }\n scaleText(element, repeat = true) {\n let el;\n let resizeScale;\n if (element === ElementType.Value) {\n el = this.valueTextEl;\n resizeScale = this.valueResizeScale;\n } else {\n el = this.unitsTextEl;\n resizeScale = this.unitsResizeScale;\n }\n const {\n width,\n height\n } = 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 if (resizeScale !== oldScale) {\n if (element === ElementType.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 && isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.scaleText(element, false);\n }, 50);\n }\n }\n }\n scaleTextSSR(element) {\n let resizeScale = 1;\n const value = element === 'value' ? this.displayValue : this.units;\n const width = calculateTextWidth(VERDANA_FONT_WIDTHS_16_PX, value, 10);\n const height = 25;\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 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 }\n onClick() {\n this.select.emit({\n name: 'Value',\n value: this.value\n });\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, [this.value], this.customColors);\n }\n }\n LinearGaugeComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵLinearGaugeComponent_BaseFactory;\n return function LinearGaugeComponent_Factory(t) {\n return (ɵLinearGaugeComponent_BaseFactory || (ɵLinearGaugeComponent_BaseFactory = i0.ɵɵgetInheritedFactory(LinearGaugeComponent)))(t || LinearGaugeComponent);\n };\n })();\n LinearGaugeComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LinearGaugeComponent,\n selectors: [[\"ngx-charts-linear-gauge\"]],\n viewQuery: function LinearGaugeComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c50, 5);\n i0.ɵɵviewQuery(_c51, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.valueTextEl = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.unitsTextEl = _t.first);\n }\n },\n inputs: {\n min: \"min\",\n max: \"max\",\n value: \"value\",\n units: \"units\",\n previousValue: \"previousValue\",\n valueFormatting: \"valueFormatting\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 15,\n vars: 38,\n consts: [[\"valueTextEl\", \"\"], [\"unitsTextEl\", \"\"], [3, \"click\", \"view\", \"showLegend\", \"animations\"], [1, \"linear-gauge\", \"chart\"], [\"ngx-charts-bar\", \"\", 1, \"background-bar\", 3, \"width\", \"height\", \"x\", \"y\", \"data\", \"orientation\", \"roundEdges\", \"animations\"], [\"ngx-charts-bar\", \"\", 3, \"width\", \"height\", \"x\", \"y\", \"fill\", \"data\", \"orientation\", \"roundEdges\", \"animations\"], [\"x1\", \"0\", \"y1\", \"5\", \"x2\", \"0\", \"y2\", \"15\", 4, \"ngIf\"], [\"x1\", \"0\", \"y1\", \"-5\", \"x2\", \"0\", \"y2\", \"-15\", 4, \"ngIf\"], [\"alignment-baseline\", \"after-edge\", 1, \"value\"], [\"alignment-baseline\", \"before-edge\", 1, \"units\"], [\"x1\", \"0\", \"y1\", \"5\", \"x2\", \"0\", \"y2\", \"15\"], [\"x1\", \"0\", \"y1\", \"-5\", \"x2\", \"0\", \"y2\", \"-15\"]],\n template: function LinearGaugeComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 2);\n i0.ɵɵlistener(\"click\", function LinearGaugeComponent_Template_ngx_charts_chart_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onClick());\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 3);\n i0.ɵɵelement(2, \"g\", 4)(3, \"g\", 5);\n i0.ɵɵtemplate(4, LinearGaugeComponent__svg_line_4_Template, 1, 2, \"line\", 6)(5, LinearGaugeComponent__svg_line_5_Template, 1, 2, \"line\", 7);\n i0.ɵɵelementStart(6, \"g\")(7, \"g\")(8, \"text\", 8, 0);\n i0.ɵɵtext(10);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"g\")(12, \"text\", 9, 1);\n i0.ɵɵtext(14);\n i0.ɵɵelementEnd()()()()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(33, _c24, ctx.width, ctx.height))(\"showLegend\", false)(\"animations\", ctx.animations);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"width\", ctx.dims.width)(\"height\", 3)(\"x\", ctx.margin[3])(\"y\", ctx.dims.height / 2 + ctx.margin[0] - 2)(\"data\", i0.ɵɵpureFunction0(36, _c52))(\"orientation\", ctx.barOrientation.Horizontal)(\"roundEdges\", true)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"width\", ctx.valueScale(ctx.value))(\"height\", 3)(\"x\", ctx.margin[3])(\"y\", ctx.dims.height / 2 + ctx.margin[0] - 2)(\"fill\", ctx.colors.getColor(ctx.units))(\"data\", i0.ɵɵpureFunction0(37, _c52))(\"orientation\", ctx.barOrientation.Horizontal)(\"roundEdges\", true)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.hasPreviousValue);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.hasPreviousValue);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.valueTranslate);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"text-anchor\", \"middle\");\n i0.ɵɵattribute(\"transform\", ctx.valueTextTransform);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx.displayValue, \" \");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.unitsTranslate);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"text-anchor\", \"middle\");\n i0.ɵɵattribute(\"transform\", ctx.unitsTextTransform);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx.units, \" \");\n }\n },\n dependencies: [ChartComponent, BarComponent, i2.NgIf],\n styles: [_c25, \".linear-gauge{cursor:pointer}.linear-gauge .background-bar path{fill:#0000000d}.linear-gauge .units{fill:#666}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return LinearGaugeComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GaugeArcComponent = /*#__PURE__*/(() => {\n class GaugeArcComponent {\n constructor() {\n this.isActive = false;\n this.tooltipDisabled = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n tooltipText(arc) {\n const label = formatLabel(arc.data.name);\n let val;\n if (this.valueFormatting) {\n val = this.valueFormatting(arc.data.value);\n } else {\n val = formatLabel(arc.data.value);\n }\n return `\n ${escapeLabel(label)}\n ${val}\n `;\n }\n }\n GaugeArcComponent.ɵfac = function GaugeArcComponent_Factory(t) {\n return new (t || GaugeArcComponent)();\n };\n GaugeArcComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GaugeArcComponent,\n selectors: [[\"g\", \"ngx-charts-gauge-arc\", \"\"]],\n inputs: {\n backgroundArc: \"backgroundArc\",\n valueArc: \"valueArc\",\n cornerRadius: \"cornerRadius\",\n colors: \"colors\",\n isActive: \"isActive\",\n tooltipDisabled: \"tooltipDisabled\",\n valueFormatting: \"valueFormatting\",\n tooltipTemplate: \"tooltipTemplate\",\n animations: \"animations\"\n },\n outputs: {\n select: \"select\",\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n attrs: _c53,\n decls: 2,\n vars: 23,\n consts: [[\"ngx-charts-pie-arc\", \"\", 1, \"background-arc\", 3, \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"cornerRadius\", \"data\", \"animate\", \"pointerEvents\"], [\"ngx-charts-pie-arc\", \"\", \"ngx-tooltip\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"cornerRadius\", \"fill\", \"data\", \"animate\", \"isActive\", \"tooltipDisabled\", \"tooltipPlacement\", \"tooltipType\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"]],\n template: function GaugeArcComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"g\", 0);\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵlistener(\"select\", function GaugeArcComponent_Template_g_select_1_listener($event) {\n return ctx.select.emit($event);\n })(\"activate\", function GaugeArcComponent_Template_g_activate_1_listener($event) {\n return ctx.activate.emit($event);\n })(\"deactivate\", function GaugeArcComponent_Template_g_deactivate_1_listener($event) {\n return ctx.deactivate.emit($event);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"startAngle\", 0)(\"endAngle\", ctx.backgroundArc.endAngle)(\"innerRadius\", ctx.backgroundArc.innerRadius)(\"outerRadius\", ctx.backgroundArc.outerRadius)(\"cornerRadius\", ctx.cornerRadius)(\"data\", ctx.backgroundArc.data)(\"animate\", false)(\"pointerEvents\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"startAngle\", 0)(\"endAngle\", ctx.valueArc.endAngle)(\"innerRadius\", ctx.valueArc.innerRadius)(\"outerRadius\", ctx.valueArc.outerRadius)(\"cornerRadius\", ctx.cornerRadius)(\"fill\", ctx.colors.getColor(ctx.valueArc.data.name))(\"data\", ctx.valueArc.data)(\"animate\", ctx.animations)(\"isActive\", ctx.isActive)(\"tooltipDisabled\", ctx.tooltipDisabled)(\"tooltipPlacement\", ctx.placementTypes.Top)(\"tooltipType\", ctx.styleTypes.tooltip)(\"tooltipTitle\", ctx.tooltipTemplate ? undefined : ctx.tooltipText(ctx.valueArc))(\"tooltipTemplate\", ctx.tooltipTemplate)(\"tooltipContext\", ctx.valueArc.data);\n }\n },\n dependencies: [PieArcComponent, TooltipDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return GaugeArcComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GaugeAxisComponent = /*#__PURE__*/(() => {\n class GaugeAxisComponent {\n constructor() {\n this.rotate = '';\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.rotationAngle = -90 + this.startAngle;\n this.rotate = `rotate(${this.rotationAngle})`;\n this.ticks = this.getTicks();\n }\n getTicks() {\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 const startDistance = this.radius + 10;\n const textDist = startDistance + tickLength + 10;\n for (let i = 0; i <= this.bigSegments; i++) {\n const angleDeg = i * bigTickSegment;\n const angle = angleDeg * Math.PI / 180;\n const textAnchor = this.getTextAnchor(angleDeg);\n let skip = false;\n if (i === 0 && this.angleSpan === 360) {\n skip = true;\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 if (i === this.bigSegments) {\n continue;\n }\n for (let j = 1; j <= this.smallSegments; j++) {\n const smallAngleDeg = angleDeg + j * smallTickSegment;\n const smallAngle = smallAngleDeg * Math.PI / 180;\n ticks.small.push({\n line: this.getTickPath(startDistance, tickLength / 2, smallAngle)\n });\n }\n }\n return ticks;\n }\n getTextAnchor(angle) {\n // [0, 45] = 'middle';\n // [46, 135] = 'start';\n // [136, 225] = 'middle';\n // [226, 315] = 'end';\n angle = (this.startAngle + angle) % 360;\n let textAnchor = TextAnchor.Middle;\n if (angle > 45 && angle <= 135) {\n textAnchor = TextAnchor.Start;\n } else if (angle > 225 && angle <= 315) {\n textAnchor = TextAnchor.End;\n }\n return textAnchor;\n }\n getTickPath(startDistance, tickLength, angle) {\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 const points = [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n const lineGenerator = line().x(d => d.x).y(d => d.y);\n return lineGenerator(points);\n }\n }\n GaugeAxisComponent.ɵfac = function GaugeAxisComponent_Factory(t) {\n return new (t || GaugeAxisComponent)();\n };\n GaugeAxisComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GaugeAxisComponent,\n selectors: [[\"g\", \"ngx-charts-gauge-axis\", \"\"]],\n inputs: {\n bigSegments: \"bigSegments\",\n smallSegments: \"smallSegments\",\n min: \"min\",\n max: \"max\",\n angleSpan: \"angleSpan\",\n startAngle: \"startAngle\",\n radius: \"radius\",\n valueScale: \"valueScale\",\n tickFormatting: \"tickFormatting\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n attrs: _c54,\n decls: 4,\n vars: 4,\n consts: [[\"class\", \"gauge-tick gauge-tick-large\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"gauge-tick gauge-tick-small\", 4, \"ngFor\", \"ngForOf\"], [1, \"gauge-tick\", \"gauge-tick-large\"], [\"alignment-baseline\", \"central\"], [1, \"gauge-tick\", \"gauge-tick-small\"]],\n template: function GaugeAxisComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"g\");\n i0.ɵɵtemplate(1, GaugeAxisComponent__svg_g_1_Template, 2, 1, \"g\", 0)(2, GaugeAxisComponent__svg_g_2_Template, 3, 4, \"g\", 0)(3, GaugeAxisComponent__svg_g_3_Template, 2, 1, \"g\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"transform\", ctx.rotate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.ticks.big);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.ticks.big);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.ticks.small);\n }\n },\n dependencies: [i2.NgForOf],\n encapsulation: 2,\n changeDetection: 0\n });\n return GaugeAxisComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GaugeComponent = /*#__PURE__*/(() => {\n class GaugeComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.min = 0;\n this.max = 100;\n this.bigSegments = 10;\n this.smallSegments = 5;\n this.showAxis = true;\n this.startAngle = -120;\n this.angleSpan = 240;\n this.activeEntries = [];\n this.tooltipDisabled = false;\n this.showText = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.resizeScale = 1;\n this.rotation = '';\n this.textTransform = 'scale(1, 1)';\n this.cornerRadius = 10;\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n setTimeout(() => this.scaleText());\n }\n update() {\n super.update();\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 // make the starting angle positive\n if (this.startAngle < 0) {\n this.startAngle = this.startAngle % 360 + 360;\n }\n this.angleSpan = Math.min(this.angleSpan, 360);\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 this.domain = this.getDomain();\n this.valueDomain = this.getValueDomain();\n this.valueScale = this.getValueScale();\n this.displayValue = this.getDisplayValue();\n this.outerRadius = Math.min(this.dims.width, this.dims.height) / 2;\n this.arcs = this.getArcs();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n const xOffset = this.margin[3] + this.dims.width / 2;\n const yOffset = this.margin[0] + this.dims.height / 2;\n this.transform = `translate(${xOffset}, ${yOffset})`;\n this.rotation = `rotate(${this.startAngle})`;\n setTimeout(() => this.scaleText(), 50);\n }\n getArcs() {\n const arcs = [];\n const availableRadius = this.outerRadius * 0.7;\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 let i = 0;\n for (const d of this.results) {\n const outerRadius = this.outerRadius - i * radiusPerArc;\n const innerRadius = outerRadius - arcWidth;\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 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 const arc = {\n backgroundArc,\n valueArc\n };\n arcs.push(arc);\n i++;\n }\n return arcs;\n }\n getDomain() {\n return this.results.map(d => d.name);\n }\n getValueDomain() {\n const values = this.results.map(d => d.value);\n const dataMin = Math.min(...values);\n const dataMax = Math.max(...values);\n if (this.min !== undefined) {\n this.min = Math.min(this.min, dataMin);\n } else {\n this.min = dataMin;\n }\n if (this.max !== undefined) {\n this.max = Math.max(this.max, dataMax);\n } else {\n this.max = dataMax;\n }\n return [this.min, this.max];\n }\n getValueScale() {\n return scaleLinear().range([0, this.angleSpan]).nice().domain(this.valueDomain);\n }\n getDisplayValue() {\n const value = this.results.map(d => d.value).reduce((a, b) => a + b, 0);\n if (this.textValue && 0 !== this.textValue.length) {\n return this.textValue.toLocaleString();\n }\n if (this.valueFormatting) {\n return this.valueFormatting(value);\n }\n return value.toLocaleString();\n }\n scaleText(repeat = true) {\n if (!this.showText) {\n return;\n }\n const {\n width\n } = this.textEl.nativeElement.getBoundingClientRect();\n const oldScale = this.resizeScale;\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 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 onClick(data) {\n this.select.emit(data);\n }\n getLegendOptions() {\n return {\n scaleType: ScaleType.Ordinal,\n colors: this.colors,\n domain: this.domain,\n title: this.legendTitle,\n position: this.legendPosition\n };\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\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 = [item, ...this.activeEntries];\n this.activate.emit({\n value: item,\n 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 this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({\n value: item,\n entries: this.activeEntries\n });\n }\n isActive(entry) {\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 trackBy(index, item) {\n return item.valueArc.data.name;\n }\n }\n GaugeComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵGaugeComponent_BaseFactory;\n return function GaugeComponent_Factory(t) {\n return (ɵGaugeComponent_BaseFactory || (ɵGaugeComponent_BaseFactory = i0.ɵɵgetInheritedFactory(GaugeComponent)))(t || GaugeComponent);\n };\n })();\n GaugeComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GaugeComponent,\n selectors: [[\"ngx-charts-gauge\"]],\n contentQueries: function GaugeComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n viewQuery: function GaugeComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c45, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.textEl = _t.first);\n }\n },\n inputs: {\n legend: \"legend\",\n legendTitle: \"legendTitle\",\n legendPosition: \"legendPosition\",\n min: \"min\",\n max: \"max\",\n textValue: \"textValue\",\n units: \"units\",\n bigSegments: \"bigSegments\",\n smallSegments: \"smallSegments\",\n results: \"results\",\n showAxis: \"showAxis\",\n startAngle: \"startAngle\",\n angleSpan: \"angleSpan\",\n activeEntries: \"activeEntries\",\n axisTickFormatting: \"axisTickFormatting\",\n tooltipDisabled: \"tooltipDisabled\",\n valueFormatting: \"valueFormatting\",\n showText: \"showText\",\n margin: \"margin\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 5,\n vars: 13,\n consts: [[\"textEl\", \"\"], [3, \"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\", \"view\", \"showLegend\", \"legendOptions\", \"activeEntries\", \"animations\"], [1, \"gauge\", \"chart\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"ngx-charts-gauge-axis\", \"\", 3, \"bigSegments\", \"smallSegments\", \"min\", \"max\", \"radius\", \"angleSpan\", \"valueScale\", \"startAngle\", \"tickFormatting\", 4, \"ngIf\"], [\"alignment-baseline\", \"central\", 3, \"textAnchor\", 4, \"ngIf\"], [\"ngx-charts-gauge-arc\", \"\", 3, \"select\", \"activate\", \"deactivate\", \"backgroundArc\", \"valueArc\", \"cornerRadius\", \"colors\", \"isActive\", \"tooltipDisabled\", \"tooltipTemplate\", \"valueFormatting\", \"animations\"], [\"ngx-charts-gauge-axis\", \"\", 3, \"bigSegments\", \"smallSegments\", \"min\", \"max\", \"radius\", \"angleSpan\", \"valueScale\", \"startAngle\", \"tickFormatting\"], [\"alignment-baseline\", \"central\"], [\"x\", \"0\", \"dy\", \"0\"], [\"x\", \"0\", \"dy\", \"1.2em\"]],\n template: function GaugeComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 1);\n i0.ɵɵlistener(\"legendLabelClick\", function GaugeComponent_Template_ngx_charts_chart_legendLabelClick_0_listener($event) {\n return ctx.onClick($event);\n })(\"legendLabelActivate\", function GaugeComponent_Template_ngx_charts_chart_legendLabelActivate_0_listener($event) {\n return ctx.onActivate($event);\n })(\"legendLabelDeactivate\", function GaugeComponent_Template_ngx_charts_chart_legendLabelDeactivate_0_listener($event) {\n return ctx.onDeactivate($event);\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 2);\n i0.ɵɵtemplate(2, GaugeComponent__svg_g_2_Template, 2, 10, \"g\", 3)(3, GaugeComponent__svg_g_3_Template, 1, 9, \"g\", 4)(4, GaugeComponent__svg_text_4_Template, 6, 5, \"text\", 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(10, _c24, ctx.width, ctx.height))(\"showLegend\", ctx.legend)(\"legendOptions\", ctx.legendOptions)(\"activeEntries\", ctx.activeEntries)(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.arcs)(\"ngForTrackBy\", ctx.trackBy);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showAxis);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showText);\n }\n },\n dependencies: [ChartComponent, GaugeArcComponent, GaugeAxisComponent, i2.NgForOf, i2.NgIf],\n styles: [_c25, \".gauge .background-arc path{fill:#0000000d}.gauge .gauge-tick path{stroke:#666}.gauge .gauge-tick text{font-size:12px;fill:#666;font-weight:700}.gauge .gauge-tick-large path{stroke-width:2px}.gauge .gauge-tick-small path{stroke-width:1px}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n return GaugeComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GaugeModule = /*#__PURE__*/(() => {\n class GaugeModule {}\n GaugeModule.ɵfac = function GaugeModule_Factory(t) {\n return new (t || GaugeModule)();\n };\n GaugeModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: GaugeModule\n });\n GaugeModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule, PieChartModule, BarChartModule]]\n });\n return GaugeModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// The export is needed here to generate a valid polyfills.metadata.json file\nfunction 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}\nlet SankeyComponent = /*#__PURE__*/(() => {\n class SankeyComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.showLabels = true;\n this.tooltipDisabled = false;\n this.activeEntries = [];\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 10, 10, 10];\n this.scaleType = ScaleType.Ordinal;\n this.styleTypes = StyleTypes;\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n legendType: this.scaleType\n });\n const linkDefs = this.results;\n const nodeDefs = Array.from(new Set(linkDefs.flatMap(l => [l.source, l.target])), name => ({\n name,\n value: linkDefs.filter(l => l.source === name).reduce((acc, l) => acc + l.value, 0)\n }));\n // Configure generator\n const sankeyGenerator = sankey().nodeId(d => d.name).nodeAlign(sankeyLeft).nodeWidth(15).nodePadding(10).extent([[1, 5], [this.dims.width - 1, this.dims.height - 5]]);\n // Generate links and nodes\n const data = sankeyGenerator({\n nodes: nodeDefs.map(d => Object.assign({}, d)),\n links: linkDefs.map(d => Object.assign({}, d))\n });\n this.valueDomain = this.getValueDomain(data.nodes);\n this.setColors();\n this.nodeRects = data.nodes.map(node => {\n const rect = {\n x: node.x0,\n y: node.y0,\n height: node.y1 - node.y0,\n width: node.x1 - node.x0,\n fill: this.colors.getColor(node.name),\n tooltip: this.getNodeTooltipText(node),\n rx: 5,\n data: {\n name: node.name,\n value: node.value\n },\n transform: '',\n label: this.labelFormatting ? this.labelFormatting(node.name) : node.name,\n labelAnchor: TextAnchor.Start\n };\n rect.labelAnchor = this.getTextAnchor(node);\n rect.transform = `translate(${rect.x},${rect.y})`;\n return rect;\n });\n this.linkPaths = data.links.map(link => {\n const gradientId = 'mask' + id().toString();\n const linkPath = {\n path: sankeyLinkHorizontal()(link),\n strokeWidth: Math.max(1, link.width),\n tooltip: this.getLinkTooltipText(link.source, link.target, link.value),\n id: gradientId,\n gradientFill: `url(#${gradientId})`,\n source: link.source,\n target: link.target,\n startColor: this.colors.getColor(link.source.name),\n endColor: this.colors.getColor(link.target.name),\n data: {\n source: link.source.name,\n target: link.target.name,\n value: link.value\n }\n };\n return linkPath;\n });\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getNodeTooltipText(node) {\n return `\n ${escapeLabel(node.name)}\n ${node.value.toLocaleString()}\n `;\n }\n getLinkTooltipText(sourceNode, targetNode, value) {\n return `\n ${escapeLabel(sourceNode.name)} • ${escapeLabel(targetNode.name)}\n ${value.toLocaleString()} (${(value / sourceNode.value).toLocaleString(undefined, {\n style: 'percent',\n maximumFractionDigits: 2\n })})\n `;\n }\n getTextAnchor(node) {\n if (node.layer === 0) {\n return TextAnchor.Start;\n } else {\n return TextAnchor.End;\n }\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, this.scaleType, this.valueDomain);\n }\n getValueDomain(nodes) {\n return nodes.map(n => n.name);\n }\n }\n SankeyComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵSankeyComponent_BaseFactory;\n return function SankeyComponent_Factory(t) {\n return (ɵSankeyComponent_BaseFactory || (ɵSankeyComponent_BaseFactory = i0.ɵɵgetInheritedFactory(SankeyComponent)))(t || SankeyComponent);\n };\n })();\n SankeyComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SankeyComponent,\n selectors: [[\"ngx-charts-sankey\"]],\n contentQueries: function SankeyComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipTemplate = _t.first);\n }\n },\n inputs: {\n showLabels: \"showLabels\",\n gradient: \"gradient\",\n tooltipDisabled: \"tooltipDisabled\",\n activeEntries: \"activeEntries\",\n labelFormatting: \"labelFormatting\"\n },\n outputs: {\n activate: \"activate\",\n deactivate: \"deactivate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 5,\n vars: 9,\n consts: [[3, \"view\", \"animations\"], [1, \"sankey\", \"chart\"], [\"class\", \"link\", \"ngx-tooltip\", \"\", 3, \"tooltipDisabled\", \"tooltipType\", \"tooltipPlacement\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"node\", 4, \"ngFor\", \"ngForOf\"], [4, \"ngFor\", \"ngForOf\"], [\"ngx-tooltip\", \"\", 1, \"link\", 3, \"tooltipDisabled\", \"tooltipType\", \"tooltipPlacement\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"], [\"gradientUnits\", \"userSpaceOnUse\"], [\"offset\", \"0%\"], [\"offset\", \"100%\"], [\"stroke-opacity\", \"0.5\", \"fill\", \"none\", 3, \"click\", \"mouseenter\"], [1, \"node\"], [\"ngx-tooltip\", \"\", 3, \"click\", \"mouseenter\", \"tooltipDisabled\", \"tooltipType\", \"tooltipPlacement\", \"tooltipTitle\", \"tooltipTemplate\", \"tooltipContext\"], [\"class\", \"label\", \"dy\", \"0.35em\", 4, \"ngIf\"], [\"dy\", \"0.35em\", 1, \"label\"]],\n template: function SankeyComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ngx-charts-chart\", 0);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"g\", 1);\n i0.ɵɵtemplate(2, SankeyComponent__svg_g_2_Template, 6, 14, \"g\", 2)(3, SankeyComponent__svg_g_3_Template, 2, 12, \"g\", 3)(4, SankeyComponent__svg_g_4_Template, 2, 2, \"g\", 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"view\", i0.ɵɵpureFunction2(6, _c24, ctx.width, ctx.height))(\"animations\", ctx.animations);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"transform\", ctx.transform);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.linkPaths);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.nodeRects);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.nodeRects);\n }\n },\n dependencies: [ChartComponent, i2.NgForOf, TooltipDirective, i2.NgIf],\n styles: [_c25],\n encapsulation: 2,\n changeDetection: 0\n });\n return SankeyComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SankeyModule = /*#__PURE__*/(() => {\n class SankeyModule {}\n SankeyModule.ɵfac = function SankeyModule_Factory(t) {\n return new (t || SankeyModule)();\n };\n SankeyModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SankeyModule\n });\n SankeyModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[ChartCommonModule]]\n });\n return SankeyModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgxChartsModule = /*#__PURE__*/(() => {\n class NgxChartsModule {\n constructor() {\n ngxChartsPolyfills();\n }\n }\n NgxChartsModule.ɵfac = function NgxChartsModule_Factory(t) {\n return new (t || NgxChartsModule)();\n };\n NgxChartsModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxChartsModule\n });\n NgxChartsModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ChartCommonModule, AreaChartModule, BarChartModule, BoxChartModule, BubbleChartModule, HeatMapModule, SankeyModule, LineChartModule, PolarChartModule, NumberCardModule, PieChartModule, TreeMapModule, GaugeModule]\n });\n return NgxChartsModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction tickFormat(fieldType, groupByType) {\n return function (label) {\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(label);\n }\n return label.toString();\n };\n}\n\n/* eslint-disable @typescript-eslint/no-empty-interface */\n\n/*\n * Public API Surface of ngx-charts\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AdvancedLegendComponent, AdvancedPieChartComponent, AreaChartComponent, AreaChartModule, AreaChartNormalizedComponent, AreaChartStackedComponent, AreaComponent, AreaSeriesComponent, AxesModule, AxisLabelComponent, BarChartModule, BarChartType, BarComponent, BarHorizontal2DComponent, BarHorizontalComponent, BarHorizontalNormalizedComponent, BarHorizontalStackedComponent, BarLabelComponent, BarOrientation, BarVertical2DComponent, BarVerticalComponent, BarVerticalNormalizedComponent, BarVerticalStackedComponent, BaseChartComponent, BoxChartComponent, BoxChartModule, BoxComponent, BoxSeriesComponent, BubbleChartComponent, BubbleChartModule, BubbleSeriesComponent, CardComponent, CardSeriesComponent, ChartCommonModule, ChartComponent, CircleComponent, CircleSeriesComponent, ColorHelper, CountUpDirective, D0Types, GaugeArcComponent, GaugeAxisComponent, GaugeComponent, GaugeModule, GridPanelComponent, GridPanelSeriesComponent, HeatCellSeriesComponent, HeatMapCellComponent, HeatMapComponent, HeatMapModule, LegendComponent, LegendEntryComponent, LegendPosition, LegendType, LineChartComponent, LineChartModule, LineComponent, LineSeriesComponent, LinearGaugeComponent, NgxChartsModule, NumberCardComponent, NumberCardModule, Orientation, PieArcComponent, PieChartComponent, PieChartModule, PieGridComponent, PieGridSeriesComponent, PieLabelComponent, PieSeriesComponent, PlacementTypes, PolarChartComponent, PolarChartModule, PolarSeriesComponent, SankeyComponent, SankeyModule, ScaleLegendComponent, ScaleType, SeriesHorizontal, SeriesType, SeriesVerticalComponent, ShowTypes, StyleTypes, SvgLinearGradientComponent, SvgRadialGradientComponent, TextAnchor, Timeline, TooltipArea, TooltipContentComponent, TooltipDirective, TooltipModule, TooltipService, TreeMapCellComponent, TreeMapCellSeriesComponent, TreeMapComponent, TreeMapModule, VisibilityObserver, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent, calculateViewDimensions, colorSets, count, decimalChecker, escapeLabel, formatLabel, getDomain, getScale, getScaleType, getTickLines, getUniqueXDomainValues, getXDomainArray, gridLayout, gridSize, hexToRgb, id, invertColor, reduceTicks, shadeRGBColor, sortByDomain, sortByTime, sortLinear, throttle, throttleable, tickFormat, trimLabel };\n","import {Pipe, PipeTransform} from '@angular/core';\nimport { DayOfWeek } from 'src/app/_services/statistics.service';\nimport {translate} from \"@ngneat/transloco\";\n\n@Pipe({\n name: 'dayOfWeek',\n standalone: true\n})\nexport class DayOfWeekPipe implements PipeTransform {\n\n transform(value: DayOfWeek): string {\n switch(value) {\n case DayOfWeek.Monday:\n return translate('day-of-week-pipe.monday');\n case DayOfWeek.Tuesday:\n return translate('day-of-week-pipe.tuesday');\n case DayOfWeek.Wednesday:\n return translate('day-of-week-pipe.wednesday');\n case DayOfWeek.Thursday:\n return translate('day-of-week-pipe.thursday');\n case DayOfWeek.Friday:\n return translate('day-of-week-pipe.friday');\n case DayOfWeek.Saturday:\n return translate('day-of-week-pipe.saturday');\n case DayOfWeek.Sunday:\n return translate('day-of-week-pipe.sunday');\n\n }\n }\n\n}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, inject, Input, OnInit} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport { BarChartModule } from '@swimlane/ngx-charts';\nimport {map, Observable} from 'rxjs';\nimport {DayOfWeek, StatisticsService} from 'src/app/_services/statistics.service';\nimport {PieDataItem} from '../../_models/pie-data-item';\nimport {StatCount} from '../../_models/stat-count';\nimport {DayOfWeekPipe} from '../../../_pipes/day-of-week.pipe';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {TranslocoDirective} from \"@ngneat/transloco\";\nimport {tap} from \"rxjs/operators\";\n\n@Component({\n selector: 'app-day-breakdown',\n templateUrl: './day-breakdown.component.html',\n styleUrls: ['./day-breakdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [BarChartModule, AsyncPipe, TranslocoDirective, NgForOf, NgIf]\n})\nexport class DayBreakdownComponent implements OnInit {\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly statService = inject(StatisticsService);\n\n @Input() userId = 0;\n\n view: [number, number] = [0,0];\n showLegend: boolean = true;\n max: number = 1;\n\n formControl: FormControl = new FormControl(true, []);\n dayBreakdown$!: Observable>;\n\n\n ngOnInit() {\n const dayOfWeekPipe = new DayOfWeekPipe();\n this.dayBreakdown$ = this.statService.getDayBreakdown(this.userId).pipe(\n map((data: Array>) => {\n return data.map(d => {\n return {name: dayOfWeekPipe.transform(d.value), value: d.count};\n })\n }),\n tap(data => {\n this.max = data.reduce((acc, day) => Math.max(acc, day.value), 0);\n this.cdRef.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef)\n );\n }\n\n}\n","\n
\n

{{t('title')}}

\n\n \n
{{t('no-data')}}
\n
\n \n \n \n \n \n \n \n
{{day.name}} {{day.value}}
\n
\n
\n
\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n OnInit\n} from '@angular/core';\nimport { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { Observable, switchMap, shareReplay } from 'rxjs';\nimport { StatisticsService } from 'src/app/_services/statistics.service';\nimport { TopUserRead } from '../../_models/top-reads';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { NgFor, AsyncPipe } from '@angular/common';\nimport {TranslocoDirective} from \"@ngneat/transloco\";\n\nexport const TimePeriods: Array<{title: string, value: number}> =\n [{title: 'this-week', value: new Date().getDay() || 1},\n {title: 'last-7-days', value: 7},\n {title: 'last-30-days', value: 30},\n {title: 'last-90-days', value: 90},\n {title: 'last-year', value: 365},\n {title: 'all-time', value: 0}];\n\n@Component({\n selector: 'app-top-readers',\n templateUrl: './top-readers.component.html',\n styleUrls: ['./top-readers.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ReactiveFormsModule, NgFor, AsyncPipe, TranslocoDirective]\n})\nexport class TopReadersComponent implements OnInit {\n\n formGroup: FormGroup;\n timePeriods = TimePeriods;\n\n users$: Observable;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(private statsService: StatisticsService, private readonly cdRef: ChangeDetectorRef) {\n this.formGroup = new FormGroup({\n 'days': new FormControl(this.timePeriods[0].value, []),\n });\n\n this.users$ = this.formGroup.valueChanges.pipe(\n switchMap(_ => this.statsService.getTopUsers(this.formGroup.get('days')?.value as number)),\n takeUntilDestroyed(this.destroyRef),\n shareReplay(),\n );\n }\n\n ngOnInit(): void {\n // Needed so that other pipes work\n this.users$.subscribe();\n this.formGroup.get('days')?.setValue(this.timePeriods[0].value, {emitEvent: true});\n }\n\n}\n","\n
\n
\n

{{t('title')}}

\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n \n
\n
\n
\n {{user.username}}\n
\n
    \n
  • {{t('comics-label', {value: user.comicsTime})}}
  • \n
  • {{t('manga-label', {value: user.mangaTime})}}
  • \n
  • {{t('books-label', {value: user.booksTime})}}
  • \n
\n
\n
\n
\n\n\n\n\n
\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, inject, Input, OnInit} from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { filter, map, Observable, of, shareReplay, switchMap } from 'rxjs';\nimport { MangaFormatPipe } from 'src/app/_pipes/manga-format.pipe';\nimport { Member } from 'src/app/_models/auth/member';\nimport { MemberService } from 'src/app/_services/member.service';\nimport { StatisticsService } from 'src/app/_services/statistics.service';\nimport { PieDataItem } from '../../_models/pie-data-item';\nimport { TimePeriods } from '../top-readers/top-readers.component';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { LineChartModule } from '@swimlane/ngx-charts';\nimport { NgIf, NgFor, AsyncPipe } from '@angular/common';\nimport {TranslocoDirective, TranslocoService} from \"@ngneat/transloco\";\n\nconst options: Intl.DateTimeFormatOptions = { month: \"short\", day: \"numeric\" };\n\n\n@Component({\n selector: 'app-reading-activity',\n templateUrl: './reading-activity.component.html',\n styleUrls: ['./reading-activity.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ReactiveFormsModule, NgIf, NgFor, LineChartModule, AsyncPipe, TranslocoDirective, MangaFormatPipe]\n})\nexport class ReadingActivityComponent implements OnInit {\n /**\n * Only show for one user\n */\n @Input() userId: number = 0;\n @Input() isAdmin: boolean = true;\n @Input() individualUserMode: boolean = false;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly statService = inject(StatisticsService);\n private readonly memberService = inject(MemberService);\n\n view: [number, number] = [0, 400];\n formGroup: FormGroup = new FormGroup({\n 'users': new FormControl(-1, []),\n 'days': new FormControl(TimePeriods[0].value, []),\n });\n users$: Observable | undefined;\n data$: Observable>;\n timePeriods = TimePeriods;\n\n constructor() {\n this.data$ = this.formGroup.valueChanges.pipe(\n switchMap(_ => this.statService.getReadCountByDay(this.formGroup.get('users')!.value, this.formGroup.get('days')!.value)),\n map(data => {\n const gList = data.reduce((formats, entry) => {\n const formatTranslated = this.statService.mangaFormatPipe.transform(entry.format);\n if (!formats[formatTranslated]) {\n formats[formatTranslated] = {\n name: formatTranslated,\n value: 0,\n series: []\n };\n }\n formats[formatTranslated].series.push({name: new Date(entry.value).toLocaleDateString(\"en-US\", options), value: entry.count});\n\n return formats;\n }, {});\n return Object.keys(gList).map(format => {\n return {name: format, value: 0, series: gList[format].series}\n });\n }),\n takeUntilDestroyed(this.destroyRef),\n shareReplay(),\n );\n\n this.data$.subscribe();\n }\n\n ngOnInit(): void {\n this.users$ = (this.isAdmin ? this.memberService.getMembers() : of([])).pipe(\n filter(_ => this.isAdmin),\n takeUntilDestroyed(this.destroyRef),\n shareReplay());\n this.formGroup.get('users')?.setValue(this.userId, {emitValue: true});\n\n if (!this.isAdmin) {\n this.formGroup.get('users')?.disable();\n }\n }\n}\n\n","\n \n
\n
\n
\n

{{t('title')}}

\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n\n
\n \n 0; else noData\"\n class=\"dark\"\n [legend]=\"true\"\n [legendTitle]=\"t('legend-label')\"\n [showXAxisLabel]=\"true\"\n [showYAxisLabel]=\"true\"\n [xAxis]=\"true\"\n [yAxis]=\"true\"\n [showGridLines]=\"false\"\n [showRefLines]=\"true\"\n [roundDomains]=\"true\"\n [autoScale]=\"true\"\n [xAxisLabel]=\"t('x-axis-label')\"\n [yAxisLabel]=\"t('y-axis-label')\"\n [timeline]=\"false\"\n [results]=\"data\"\n >\n \n \n
\n \n {{t('no-data')}}\n \n
\n
\n
\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PieDataItem } from '../../_models/pie-data-item';\nimport { CompactNumberPipe } from '../../../_pipes/compact-number.pipe';\nimport { ImageComponent } from '../../../shared/image/image.component';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport { NgIf, NgFor, NgClass, AsyncPipe } from '@angular/common';\nimport {TranslocoDirective} from \"@ngneat/transloco\";\n\n@Component({\n selector: 'app-stat-list',\n templateUrl: './stat-list.component.html',\n styleUrls: ['./stat-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf, NgbTooltip, NgFor, NgClass, ImageComponent, AsyncPipe, CompactNumberPipe, TranslocoDirective]\n})\nexport class StatListComponent {\n\n /**\n * Title of list\n */\n @Input() title: string = ''\n /**\n * Optional label to render after value\n */\n @Input() label: string = ''\n /**\n * Optional data to put in tooltip\n */\n @Input() description: string = '';\n @Input({required: true}) data$!: Observable;\n @Input() image: ((data: PieDataItem) => string) | undefined = undefined;\n /**\n * Optional callback handler when an item is clicked\n */\n @Input() handleClick: ((data: PieDataItem) => void) | undefined = undefined;\n\n doClick(item: PieDataItem) {\n if (!this.handleClick) return;\n this.handleClick(item);\n }\n\n}\n","\n
\n
\n {{title}}\n 0\">\n
\n
    \n
  • \n \n 0\" width=\"32px\" maxHeight=\"32px\" class=\"img-top me-1\" [imageUrl]=\"url\">\n \n {{item.name}} = 0\">{{item.value | compactNumber}} {{label}}\n
  • \n
\n
\n
\n\n","import { Component, Input } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FilterPipe } from '../../../../_pipes/filter.pipe';\nimport { NgIf, NgFor } from '@angular/common';\nimport {TranslocoDirective} from \"@ngneat/transloco\";\n\n@Component({\n selector: 'app-generic-list-modal',\n templateUrl: './generic-list-modal.component.html',\n styleUrls: ['./generic-list-modal.component.scss'],\n standalone: true,\n imports: [ReactiveFormsModule, NgIf, NgFor, FilterPipe, TranslocoDirective]\n})\nexport class GenericListModalComponent {\n @Input() items: Array = [];\n @Input() title: string = '';\n @Input() clicked: ((item: string) => void) | undefined = undefined;\n\n listForm: FormGroup = new FormGroup({\n 'filterQuery': new FormControl('', [])\n });\n\n filterList = (listItem: string) => {\n return listItem.toLowerCase().indexOf((this.listForm.value.filterQuery || '').toLowerCase()) >= 0;\n }\n\n constructor(private modal: NgbActiveModal) {}\n\n close() {\n this.modal.close();\n }\n\n handleClick(item: string) {\n if (this.clicked) {\n this.clicked(item);\n }\n }\n}\n","\n
\n

{{title}}

\n \n
\n
\n
\n
= 5\">\n \n
\n \n \n
\n
\n
    \n
  • \n {{item}}\n \n
  • \n
\n
\n
\n
\n \n
\n\n
\n","import {inject, Pipe, PipeTransform} from '@angular/core';\nimport {TranslocoService} from \"@ngneat/transloco\";\n\n/**\n * Converts hours -> days, months, years, etc\n */\n@Pipe({\n name: 'timeDuration',\n standalone: true\n})\nexport class TimeDurationPipe implements PipeTransform {\n\n translocoService = inject(TranslocoService);\n\n transform(hours: number): string {\n if (hours === 0)\n return this.translocoService.translate('time-duration-pipe.hours', {value: hours});\n if (hours < 1) {\n return this.translocoService.translate('time-duration-pipe.minutes', {value: (hours * 60).toFixed(1)});\n } else if (hours < 24) {\n return this.translocoService.translate('time-duration-pipe.hours', {value: hours.toFixed(1)});\n } else if (hours < 720) {\n return this.translocoService.translate('time-duration-pipe.days', {value: (hours / 24).toFixed(1)});\n } else if (hours < 8760) {\n return this.translocoService.translate('time-duration-pipe.months', {value: (hours / 720).toFixed(1)});\n } else {\n return this.translocoService.translate('time-duration-pipe.years', {value: (hours / 8760).toFixed(1)});\n }\n }\n\n}\n"],"mappings":"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","names":["require_rfdc","__commonJSMin","exports","module","rfdc","copyBuffer","cur","opts","rfdcCircles","cloneProto","clone","cloneArray","fn","keys","a2","i","k","o","o2","refs","refsNew","a","index","DayOfWeek","StatisticsService","constructor","httpClient","baseUrl","environment","apiUrl","translocoService","inject","TranslocoService","publicationStatusPipe","PublicationStatusPipe","mangaFormatPipe","MangaFormatPipe","getUserStatistics","userId","libraryIds","url","length","join","get","getServerStatistics","getYearRange","pipe","map","spreads","spread","name","value","count","getTopYears","getPagesPerYear","getWordsPerYear","getTopUsers","days","getReadingHistory","getPublicationStatus","transform","getMangaFormat","getTotalSize","TextResonse","getFileBreakdown","getReadCountByDay","getDayBreakdown","getKavitaPlusMetadataBreakdown","ɵɵinject","HttpClient","factory","ɵfac","providedIn","_StatisticsService","xhtml","namespaces_default","namespace_default","name","prefix","i","namespaces_default","creatorInherit","name","document","uri","xhtml","creatorFixed","fullname","creator_default","namespace_default","none","selector_default","selector","select_default","select","selector_default","groups","m","subgroups","j","group","n","subgroup","node","subnode","i","Selection","array","x","empty","selectorAll_default","selector","arrayAll","select","array","selectAll_default","selectorAll_default","groups","m","subgroups","parents","j","group","n","node","i","Selection","matcher_default","selector","childMatcher","node","find","childFind","match","childFirst","selectChild_default","childMatcher","filter","children","childrenFilter","match","selectChildren_default","childMatcher","filter_default","match","matcher_default","groups","m","subgroups","j","group","n","subgroup","node","i","Selection","sparse_default","update","enter_default","Selection","sparse_default","EnterNode","parent","datum","child","next","selector","constant_default","x","bindIndex","parent","group","enter","update","exit","data","i","node","groupLength","dataLength","EnterNode","bindKey","key","nodeByKeyValue","keyValues","keyValue","datum","data_default","value","bind","parents","groups","constant_default","m","j","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","next","Selection","exit_default","Selection","sparse_default","join_default","onenter","onupdate","onexit","enter","update","exit","merge_default","context","selection","groups0","groups1","m0","m1","m","merges","j","group0","group1","n","merge","node","i","Selection","order_default","groups","j","m","group","i","next","node","sort_default","compare","ascending","compareNode","a","b","groups","m","sortgroups","j","group","n","sortgroup","node","i","Selection","call_default","callback","nodes_default","node_default","groups","j","m","group","i","n","node","size_default","size","node","empty_default","each_default","callback","groups","j","m","group","i","n","node","attrRemove","name","attrRemoveNS","fullname","attrConstant","value","attrConstantNS","attrFunction","v","attrFunctionNS","attr_default","namespace_default","node","window_default","node","styleRemove","name","styleConstant","value","priority","styleFunction","v","style_default","styleValue","node","window_default","propertyRemove","name","propertyConstant","value","propertyFunction","v","property_default","classArray","string","classList","node","ClassList","name","classedAdd","names","list","i","n","classedRemove","classedTrue","classedFalse","classedFunction","value","classed_default","textRemove","textConstant","value","textFunction","v","text_default","htmlRemove","htmlConstant","value","htmlFunction","v","html_default","raise","raise_default","lower","lower_default","append_default","name","create","creator_default","constantNull","insert_default","name","before","create","creator_default","select","selector_default","remove","parent","remove_default","selection_cloneShallow","clone","parent","selection_cloneDeep","clone_default","deep","datum_default","value","contextListener","listener","event","parseTypenames","typenames","t","name","i","onRemove","typename","on","j","m","o","onAdd","value","options","on_default","n","dispatchEvent","node","type","params","window","window_default","event","dispatchConstant","dispatchFunction","dispatch_default","iterator_default","groups","j","m","group","i","n","node","root","Selection","groups","parents","selection","selection_selection","select_default","selectAll_default","selectChild_default","selectChildren_default","filter_default","data_default","enter_default","exit_default","join_default","merge_default","order_default","sort_default","call_default","nodes_default","node_default","size_default","empty_default","each_default","attr_default","style_default","property_default","classed_default","text_default","html_default","raise_default","lower_default","append_default","insert_default","remove_default","clone_default","datum_default","on_default","dispatch_default","iterator_default","selection_default","select_default","selector","Selection","root","sourceEvent_default","event","sourceEvent","pointer_default","event","node","sourceEvent_default","svg","point","rect","noop","dispatch","i","n","_","t","Dispatch","parseTypenames","typenames","types","name","typename","callback","T","get","set","copy","type","that","args","c","dispatch_default","nonpassivecapture","noevent_default","event","nodrag_default","view","root","selection","select_default","noevent_default","nonpassivecapture","yesdrag","noclick","define_default","constructor","factory","prototype","extend","parent","definition","key","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","define_default","color","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","format","m","l","rgbn","Rgb","rgba","hsla","n","r","g","b","a","rgbConvert","o","rgb","opacity","extend","k","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","value","h","s","Hsl","min","max","hsl","m2","m1","hsl2rgb","clamph","clampt","basis","t1","v0","v1","v2","v3","t2","t3","basis_default","values","n","i","basisClosed_default","values","n","i","v0","v1","v2","v3","basis","constant_default","x","linear","a","d","exponential","b","y","t","gamma","y","nogamma","a","b","exponential","constant_default","d","linear","rgb_default","rgbGamma","y","color","gamma","rgb","start","end","g","b","opacity","nogamma","t","rgbSpline","spline","colors","n","r","i","rgbBasis","basis_default","rgbBasisClosed","basisClosed_default","numberArray_default","a","b","n","c","i","t","isNumberArray","x","genericArray","a","b","nb","na","x","c","i","value_default","t","date_default","a","b","d","t","number_default","a","b","object_default","a","b","i","c","k","value_default","t","reA","reB","zero","b","one","t","string_default","a","bi","am","bm","bs","i","s","q","number_default","o","value_default","a","b","c","constant_default","number_default","color","rgb_default","string_default","date_default","isNumberArray","numberArray_default","genericArray","object_default","round_default","a","b","degrees","identity","decompose_default","a","b","c","d","e","f","scaleX","scaleY","skewX","svgNode","parseCss","value","m","identity","decompose_default","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","translate","xa","ya","xb","yb","q","i","number_default","rotate","a","b","skewX","scale","t","n","o","interpolateTransformCss","parseCss","interpolateTransformSvg","parseSvg","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","f","now","clearNow","Timer","timer","callback","delay","time","sleep","t","timerFlush","e","wake","nap","poke","t0","t1","t2","timeout_default","callback","delay","time","t","Timer","elapsed","emptyOn","dispatch_default","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule_default","node","name","id","index","group","timing","schedules","create","init","schedule","get","set","self","tween","timer","elapsed","start","i","j","n","o","stop","timeout_default","tick","t","interrupt_default","node","name","schedules","schedule","active","empty","i","STARTING","ENDING","ENDED","interrupt_default","name","tweenRemove","id","name","tween0","tween1","schedule","set","tween","i","n","tweenFunction","value","t","tween_default","get","tweenValue","transition","node","interpolate_default","a","b","c","number_default","color","rgb_default","string_default","attrRemove","name","attrRemoveNS","fullname","attrConstant","interpolate","value1","string00","string1","interpolate0","string0","attrConstantNS","attrFunction","value","string10","attrFunctionNS","attr_default","namespace_default","i","interpolateTransformSvg","interpolate_default","tweenValue","attrInterpolate","name","attrInterpolateNS","fullname","attrTweenNS","value","t0","i0","tween","i","attrTween","attrTween_default","key","namespace_default","delayFunction","id","value","init","delayConstant","delay_default","get","durationFunction","id","value","set","durationConstant","duration_default","get","easeConstant","id","value","set","ease_default","get","easeVarying","id","value","v","set","easeVarying_default","filter_default","match","matcher_default","groups","m","subgroups","j","group","n","subgroup","node","i","Transition","merge_default","transition","groups0","groups1","m0","m1","m","merges","j","group0","group1","n","merge","node","i","Transition","start","name","t","i","onFunction","id","listener","on0","on1","sit","init","set","schedule","on","on_default","get","removeFunction","id","parent","i","remove_default","select_default","select","name","id","selector_default","groups","m","subgroups","j","group","n","subgroup","node","subnode","i","schedule_default","get","Transition","selectAll_default","select","name","id","selectorAll_default","groups","m","subgroups","parents","j","group","n","node","i","children","child","inherit","get","k","l","schedule_default","Transition","Selection","selection_default","styleNull","name","interpolate","string00","string10","interpolate0","string0","styleValue","string1","styleRemove","styleConstant","value1","styleFunction","value","styleMaybeRemove","id","on0","on1","listener0","key","event","remove","schedule","set","on","listener","style_default","priority","i","interpolateTransformCss","interpolate_default","tweenValue","styleInterpolate","name","priority","t","styleTween","value","i0","tween","i","styleTween_default","key","textConstant","value","textFunction","value1","text_default","tweenValue","textInterpolate","i","t","textTween","value","t0","i0","tween","textTween_default","key","transition_default","name","id0","id1","newId","groups","m","j","group","n","node","i","inherit","get","schedule_default","Transition","end_default","on0","on1","that","id","size","resolve","reject","cancel","end","schedule","set","on","id","Transition","groups","parents","name","transition","selection_default","newId","selection_prototype","select_default","selectAll_default","filter_default","merge_default","transition_default","on_default","attr_default","attrTween_default","style_default","styleTween_default","text_default","textTween_default","remove_default","tween_default","delay_default","duration_default","ease_default","easeVarying_default","end_default","cubicInOut","t","defaultTiming","cubicInOut","inherit","node","id","timing","transition_default","name","Transition","newId","now","groups","m","j","group","n","i","schedule_default","selection_default","interrupt_default","transition_default","constant_default","x","BrushEvent","type","sourceEvent","target","selection","mode","dispatch","nopropagation","event","noevent_default","MODE_DRAG","MODE_SPACE","MODE_HANDLE","MODE_CENTER","abs","max","min","number1","number2","X","type","x","e","xy","Y","y","XY","cursors","flipX","flipY","signsX","signsY","t","defaultFilter","event","defaultExtent","svg","defaultTouchable","local","node","empty","extent","brushX","brush","X","brush","dim","extent","defaultExtent","filter","defaultFilter","touchable","defaultTouchable","keys","listeners","dispatch_default","handleSize","touchending","group","overlay","initialize","type","cursors","local","select_default","handle","d","redraw","started","touchmoved","touchended","selection","event","emitter","that","state","emit","selection0","selection1","i","value_default","tween","t","args","interrupt_default","clean","Emitter","mode","BrushEvent","MODE_DRAG","MODE_CENTER","MODE_HANDLE","signX","Y","signsX","signY","X","signsY","W","w0","w1","N","n0","n1","E","e0","e1","S","s0","s1","dx","dy","moving","shifting","lockX","lockY","points","pointer_default","pts","min","max","move","moved","ended","view","keydowned","keyupped","nodrag_default","p","point","abs","noevent_default","point0","MODE_SPACE","flipX","flipY","nopropagation","yesdrag","empty","number2","_","constant_default","value","ascending","a","b","descending","a","b","bisector","f","compare1","compare2","delta","ascending","d","x","descending","zero","left","a","lo","hi","mid","right","center","i","number","x","ascendingBisect","bisector","ascending","bisectRight","bisectLeft","bisectCenter","number","bisect_default","InternMap","entries","key","keyof","value","intern_get","intern_set","intern_delete","intern_get","_intern","_key","value","key","intern_set","intern_delete","keyof","e10","e5","e2","tickSpec","start","stop","count","step","power","error","factor","i1","i2","inc","ticks","reverse","n","i","tickIncrement","tickStep","max","values","valueof","value","index","quantileSorted","values","p","valueof","number","i","i0","value0","value1","range","start","stop","step","n","i","initRange","domain","range","implicit","ordinal","index","InternMap","domain","range","unknown","scale","d","i","_","value","initRange","band","scale","ordinal","domain","ordinalRange","r0","r1","step","bandwidth","round","paddingInner","paddingOuter","align","rescale","n","reverse","start","stop","values","range","i","_","initRange","pointish","copy","point","constants","x","number","x","unit","identity","x","normalize","a","b","constants","clamper","bimap","domain","range","interpolate","d0","d1","r0","r1","polymap","j","d","r","i","bisect_default","copy","source","target","transformer","value_default","transform","untransform","unknown","clamp","piecewise","output","input","rescale","n","scale","y","number_default","_","number","round_default","t","u","continuous","formatDecimal_default","x","formatDecimalParts","p","i","coefficient","exponent_default","x","formatDecimalParts","formatGroup_default","grouping","thousands","value","width","i","t","j","g","length","formatNumerals_default","numerals","value","i","re","formatSpecifier","specifier","match","FormatSpecifier","formatTrim_default","s","out","n","i","i0","i1","prefixExponent","formatPrefixAuto_default","x","p","d","formatDecimalParts","coefficient","exponent","i","n","formatRounded_default","x","p","d","formatDecimalParts","coefficient","exponent","formatTypes_default","x","p","formatDecimal_default","formatRounded_default","formatPrefixAuto_default","identity_default","x","map","prefixes","locale_default","locale","group","identity_default","formatGroup_default","currencyPrefix","currencySuffix","decimal","numerals","formatNumerals_default","percent","minus","nan","newFormat","specifier","formatSpecifier","fill","align","sign","symbol","zero","width","comma","precision","trim","type","formatTypes_default","prefix","suffix","formatType","maybeSuffix","format","value","valuePrefix","valueSuffix","i","n","c","valueNegative","formatTrim_default","prefixExponent","length","padding","formatPrefix","f","e","exponent_default","k","locale","format","formatPrefix","defaultLocale","definition","locale_default","precisionFixed_default","step","exponent_default","precisionPrefix_default","step","value","exponent_default","precisionRound_default","step","max","exponent_default","tickFormat","start","stop","count","specifier","step","tickStep","precision","formatSpecifier","value","precisionPrefix_default","formatPrefix","precisionRound_default","precisionFixed_default","format","linearish","scale","domain","count","d","ticks","specifier","tickFormat","i0","i1","start","stop","prestep","step","maxIter","tickIncrement","linear","continuous","copy","initRange","nice","domain","interval","i0","i1","x0","x1","t","quantile","domain","range","thresholds","unknown","rescale","i","n","quantileSorted","scale","x","bisect_default","y","_","d","ascending","initRange","t0","t1","timeInterval","floori","offseti","count","field","interval","date","d0","d1","step","start","stop","range","previous","test","end","d","millisecond","timeInterval","date","step","start","end","k","milliseconds","second","timeInterval","date","step","start","end","seconds","timeMinute","timeInterval","date","step","start","end","timeMinutes","utcMinute","utcMinutes","timeHour","timeInterval","date","step","start","end","timeHours","utcHour","utcHours","timeDay","timeInterval","date","step","start","end","timeDays","utcDay","utcDays","unixDay","unixDays","timeWeekday","i","timeInterval","date","step","start","end","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeSundays","timeMondays","timeTuesdays","timeWednesdays","timeThursdays","timeFridays","timeSaturdays","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","timeMonth","timeInterval","date","step","start","end","timeMonths","utcMonth","utcMonths","timeYear","timeInterval","date","step","start","end","k","timeYears","utcYear","utcYears","ticker","year","month","week","day","hour","minute","tickIntervals","second","ticks","start","stop","count","reverse","interval","tickInterval","target","i","bisector","step","tickStep","millisecond","t","utcTicks","utcTickInterval","utcYear","utcMonth","utcSunday","unixDay","utcHour","utcMinute","timeTicks","timeTickInterval","timeYear","timeMonth","timeSunday","timeDay","timeHour","timeMinute","t0","t1","newInterval","floori","offseti","count","field","interval","date","d0","d1","step","start","stop","range","previous","test","end","d","day","newInterval","date","step","start","end","day_default","days","weekday","i","newInterval","date","step","start","end","sunday","monday","tuesday","wednesday","thursday","friday","saturday","sundays","mondays","tuesdays","wednesdays","thursdays","fridays","saturdays","year","newInterval","date","step","start","end","k","year_default","years","utcDay","newInterval","date","step","start","end","utcDay_default","utcDays","utcWeekday","i","newInterval","date","step","start","end","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","utcYear","newInterval","date","step","start","end","k","utcYear_default","utcYears","localDate","d","date","utcDate","newDate","y","m","formatLocale","locale","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","newFormat","specifier","string","i","j","n","c","pad","format","pads","newParse","Z","parseSpecifier","week","day","utcMonday","utcDay_default","monday","day_default","parse","f","p","numberRe","percentRe","requoteRe","value","fill","width","sign","length","requote","s","names","name","year_default","sunday","dISO","thursday","z","utcYear_default","dow","utcSunday","UTCdISO","utcThursday","locale","timeFormat","timeParse","utcFormat","utcParse","defaultLocale","definition","formatLocale","date","t","number","calendar","ticks","tickInterval","year","month","week","day","hour","minute","second","format","scale","continuous","invert","domain","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","tickFormat","y","_","interval","d","count","specifier","nice","copy","time","initRange","timeTicks","timeTickInterval","timeYear","timeMonth","timeSunday","timeDay","timeHour","timeMinute","timeFormat","constant_default","x","abs","atan2","cos","max","min","sin","sqrt","epsilon","pi","halfPi","tau","acos","x","asin","pi","tau","epsilon","tauEpsilon","append","strings","n","appendRound","digits","d","k","i","Path","x","y","x1","y1","x2","y2","r","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","dx","dy","cw","da","w","h","path","withPath","shape","digits","_","d","Path","arcInnerRadius","d","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","t","epsilon","cornerTangents","r1","rc","cw","x01","y01","lo","sqrt","ox","oy","x11","y11","x00","y00","dx","dy","d2","r","D","max","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","arc_default","innerRadius","outerRadius","cornerRadius","constant_default","padRadius","startAngle","endAngle","padAngle","context","path","withPath","arc","buffer","r0","a0","halfPi","a1","da","abs","tau","cos","sin","a01","a11","a00","a10","da0","da1","ap","rp","min","rc0","rc1","t0","t1","p0","asin","p1","oc","pi","ax","ay","bx","by","kc","acos","lc","atan2","a","_","slice","array_default","x","Linear","context","x","y","linear_default","x","p","y","line_default","x","y","defined","constant_default","context","curve","linear_default","output","path","withPath","line","data","i","n","array_default","defined0","buffer","_","area_default","x0","y0","y1","x1","defined","constant_default","context","curve","linear_default","output","path","withPath","area","x","y","data","i","j","k","n","array_default","d","defined0","buffer","x0z","y0z","arealine","line_default","_","descending_default","a","b","identity_default","d","pie_default","value","identity_default","sortValues","descending_default","sort","startAngle","constant_default","endAngle","tau","padAngle","pie","data","i","n","array_default","j","k","sum","index","arcs","a0","da","a1","p","pa","v","_","import_rfdc","_c0","_c1","a0","TooltipContentComponent_span_4_ng_template_1_Template","rf","ctx","TooltipContentComponent_span_4_Template","ɵɵelementStart","ɵɵtemplate","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵproperty","ɵɵpureFunction1","TooltipContentComponent_span_5_Template","ɵɵelement","ɵɵsanitizeHtml","LegendComponent_header_1_Template","ɵɵtext","ɵɵtextInterpolate","LegendComponent_li_4_Template","_r2","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","entry_r3","_c2","ChartComponent_ngx_charts_scale_legend_3_Template","ChartComponent_ngx_charts_legend_4_Template","_c3","_c4","_c5","XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_container_4_Template","ɵɵnamespaceSVG","ɵɵelementContainer","XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0__svg_tspan_1_Template","tickLine_r1","i_r2","ɵɵattribute","ɵɵtextInterpolate1","XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0_Template","ɵɵelementContainerStart","ɵɵelementContainerEnd","tickLines_r3","XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5_Template","tick_r4","ctx_r4","XAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_7_Template","tickFormatted_r6","XAxisTicksComponent__svg_g_2__svg_ng_container_1_Template","ɵɵtemplateRefExtractor","tmplMultilineTick_r7","ɵɵreference","tmplSinglelineTick_r8","XAxisTicksComponent__svg_g_2_Template","XAxisTicksComponent__svg_g_3__svg_g_1_Template","XAxisTicksComponent__svg_g_3_Template","tick_r9","_c6","XAxisComponent__svg_g_1_Template","_r1","ctx_r1","XAxisComponent__svg_g_2_Template","_c7","YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_container_4_Template","YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0__svg_ng_container_1__svg_tspan_1_Template","ctx_r2","YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0__svg_ng_container_1_Template","tickLines_r4","YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5__svg_ng_container_0_Template","tmplSinglelineTick_r5","YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_5_Template","tick_r6","YAxisTicksComponent__svg_g_2__svg_ng_container_1__svg_ng_template_7_Template","tickFormatted_r7","YAxisTicksComponent__svg_g_2__svg_ng_container_1_Template","tmplMultilineTick_r8","ɵɵstyleProp","YAxisTicksComponent__svg_g_2_Template","YAxisTicksComponent__svg_path_3_Template","YAxisTicksComponent__svg_g_4__svg_g_1__svg_line_1_Template","YAxisTicksComponent__svg_g_4__svg_g_1__svg_line_2_Template","YAxisTicksComponent__svg_g_4__svg_g_1_Template","YAxisTicksComponent__svg_g_4_Template","YAxisTicksComponent__svg_g_5__svg_g_1__svg_g_2_Template","refLine_r10","YAxisTicksComponent__svg_g_5__svg_g_1_Template","YAxisTicksComponent__svg_g_5_Template","_c8","YAxisComponent__svg_g_1_Template","YAxisComponent__svg_g_2_Template","_c9","SvgLinearGradientComponent__svg_stop_1_Template","stop_r1","_c10","_c11","_c12","CircleSeriesComponent__svg_g_0__svg_rect_3_Template","CircleSeriesComponent__svg_g_0__svg_rect_4_Template","CircleSeriesComponent__svg_g_0_Template","ɵɵclassProp","_c15","SvgRadialGradientComponent__svg_stop_1_Template","rf","ctx","ɵɵnamespaceSVG","ɵɵelement","stop_r1","ɵɵstyleProp","ɵɵattribute","_c16","AreaComponent__svg_defs_0_Template","ɵɵelementStart","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵproperty","_c17","_c18","_c19","TooltipArea__svg_ng_template_2_div_1_Template","ɵɵtext","tooltipItem_r2","ctx_r2","ɵɵtextInterpolate1","TooltipArea__svg_ng_template_2_Template","ɵɵtemplate","model_r4","_c20","AdvancedLegendComponent_div_1_Template","AdvancedLegendComponent_div_2_Template","AdvancedLegendComponent_div_7_div_2_Template","legendItem_r3","AdvancedLegendComponent_div_7_div_3_Template","AdvancedLegendComponent_div_7_div_6_Template","AdvancedLegendComponent_div_7_div_7_Template","AdvancedLegendComponent_div_7_Template","_r2","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","ɵɵresetView","ɵɵtextInterpolate","_c22","_c23","_c24","a0","a1","_c25","_c36","LineComponent__svg_g_0_Template","rf","ctx","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵproperty","ɵɵattribute","LineComponent__svg_g_1_Template","_c37","LineSeriesComponent__svg_g_2_Template","LineSeriesComponent__svg_g_5_Template","ɵɵclassProp","LineChartComponent__svg_g_5_Template","_r1","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ctx_r1","ɵɵresetView","LineChartComponent__svg_g_6_Template","_r3","LineChartComponent__svg_g_8__svg_g_1_Template","series_r4","LineChartComponent__svg_g_8_Template","ɵɵtemplate","LineChartComponent__svg_g_9__svg_g_1_Template","series_r5","LineChartComponent__svg_g_9_Template","LineChartComponent__svg_g_10__svg_g_2_Template","_r7","series_r8","LineChartComponent__svg_g_10_Template","_r6","LineChartComponent__svg_g_11__svg_g_1_Template","series_r10","LineChartComponent__svg_g_11_Template","_r9","ɵɵpureFunction2","_c24","_c38","_c40","PieArcComponent__svg_defs_1_Template","rf","ctx","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵproperty","_c41","PieSeriesComponent__svg_g_0__svg_g_1_Template","arc_r2","ctx_r2","PieSeriesComponent__svg_g_0_Template","_r1","ɵɵgetCurrentView","ɵɵtemplate","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","throttle","func","wait","options","context","args","result","timeout","previous","later","now","remaining","throttleable","duration","target","key","descriptor","PlacementTypes","caretOffset","verticalPosition","elDimensions","popoverDimensions","alignment","horizontalPosition","PositionHelper","_PositionHelper","caretDimensions","popoverPosition","placement","spacing","flip","elmDim","hostDim","top","left","TooltipContentComponent","element","renderer","platformId","clz","isPlatformBrowser","nativeElm","caretElm","ɵɵdirectiveInject","ElementRef","Renderer2","PLATFORM_ID","ɵɵdefineComponent","rf","ctx","ɵɵviewQuery","_c0","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵlistener","ɵɵresolveWindow","ɵɵclassMap","ɵɵelementStart","ɵɵelement","ɵɵtemplate","TooltipContentComponent_span_4_Template","TooltipContentComponent_span_5_Template","ɵɵelementEnd","ɵɵadvance","ɵɵclassMapInterpolate1","ɵɵproperty","NgIf","NgTemplateOutlet","__decorate","InjectionRegisteryService","injectionService","type","bindings","component","instance","compsByType","idx","comps","i","inputs","__spreadValues","outputs","isViewContainerRef","x","InjectionService","applicationRef","componentFactoryResolver","injector","container","bindingKeys","bindingName","eventKeys","eventName","componentClass","location","appendLocation","portalHost","DomPortalOutlet","portal","ComponentPortal","componentRef","ɵɵinject","ApplicationRef","ComponentFactoryResolver$1","Injector","ɵɵdefineInjectable","TooltipService","LegendPosition","LegendType","ScaleType","ScaleLegendComponent","changes","gradientValues","direction","colors","splits","pairs","c","ɵɵNgOnChangesFeature","ɵɵtext","ɵɵstyleProp","ɵɵclassProp","ɵɵtextInterpolate","formatLabel","label","escapeLabel","match","LegendEntryComponent","EventEmitter","ɵɵtextInterpolate1","LegendComponent","cd","items","formattedLabel","entry","d","item","index","ChangeDetectorRef","LegendComponent_header_1_Template","LegendComponent_li_4_Template","NgForOf","ChartComponent","legendColumns","chartColumns","ɵɵProvidersFeature","_c2","ɵɵprojectionDef","ɵɵnamespaceSVG","ɵɵprojection","ChartComponent_ngx_charts_scale_legend_3_Template","ChartComponent_ngx_charts_legend_4_Template","ɵɵattribute","VisibilityObserver","zone","check","offsetHeight","offsetWidth","NgZone","ɵɵdefineDirective","isDate","value","BaseChartComponent","chartElement","zone","cd","platformId","ScaleType","EventEmitter","isPlatformServer","VisibilityObserver","changes","dims","width","height","hostElem","isPlatformBrowser","i","g","isDate","j","d","subscription","fromEvent","debounceTime","e","data","results","item","copy","seriesItem","seriesItemCopy","ɵɵdirectiveInject","ElementRef","NgZone","ChangeDetectorRef","PLATFORM_ID","ɵɵdefineComponent","ɵɵNgOnChangesFeature","rf","ctx","ɵɵelement","Orientation","AxisLabelComponent","element","_c3","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵattribute","ɵɵadvance","ɵɵtextInterpolate1","trimLabel","s","max","reduceTicks","ticks","maxTicks","reduced","modulus","getTickLines","label","maxLength","maxLines","labelString","totalLines","lines","line","last","startIndex","TextAnchor","XAxisTicksComponent","scale","angle","tick","tickLength","len","charWidth","wordWidth","baseWidth","maxBaseWidth","labelHeight","longestTick","earlier","current","requiredHeight","maxScaleTicks","tickWidth","longestLabel","maxCharacters","truncatedText","possibleStringLength","ɵɵviewQuery","_c4","_t","ɵɵqueryRefresh","ɵɵloadQuery","_c5","ɵɵtemplate","XAxisTicksComponent__svg_g_2_Template","XAxisTicksComponent__svg_g_3_Template","ɵɵproperty","NgForOf","NgIf","XAxisComponent","newLabelOffset","_c6","XAxisComponent__svg_g_1_Template","XAxisComponent__svg_g_2_Template","roundedRect","x","y","w","h","r","tl","tr","bl","br","retval","YAxisTicksComponent","sign","positionMiddle","chunksLength","bandWidth","heightOfLines","availableFreeSpace","tickHeight","t","preferredWidth","_c7","YAxisTicksComponent__svg_g_2_Template","YAxisTicksComponent__svg_path_3_Template","YAxisTicksComponent__svg_g_4_Template","YAxisTicksComponent__svg_g_5_Template","YAxisComponent","_c8","YAxisComponent__svg_g_1_Template","YAxisComponent__svg_g_2_Template","AxesModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","StyleTypes","ShowTypes","TooltipDirective","tooltipService","viewContainerRef","renderer","PlacementTypes","target","immediate","time","options","tooltip","event","destroyFn","TooltipService","ViewContainerRef","Renderer2","ɵɵdefineDirective","ɵɵlistener","$event","TooltipModule","InjectionService","cache","id","newId","BarOrientation","SvgLinearGradientComponent","_c9","SvgLinearGradientComponent__svg_stop_1_Template","CircleComponent","_c10","SeriesType","CircleSeriesComponent","indexActiveDataPoint","seriesName","value","tooltipLabel","formatLabel","cx","cy","radius","opacity","color","min","escapeLabel","result","entry","_c11","CircleSeriesComponent__svg_g_0_Template","trigger","transition","style","animate","SvgRadialGradientComponent","value","changes","ɵɵdefineComponent","ɵɵNgOnChangesFeature","_c15","rf","ctx","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵtemplate","SvgRadialGradientComponent__svg_stop_1_Template","ɵɵelementEnd","ɵɵproperty","ɵɵattribute","ɵɵadvance","NgForOf","AreaComponent","element","EventEmitter","BarOrientation","id","node","select_default","ɵɵdirectiveInject","ElementRef","_c16","AreaComponent__svg_defs_0_Template","ɵɵelement","ɵɵstyleProp","SvgLinearGradientComponent","NgIf","easeOutExpo","t","b","c","d","count","countFrom","countTo","countDecimals","countDuration","callback","startVal","endVal","countDown","decimals","dec","duration","startTime","runCount","timestamp","frameVal","progress","tick","val","decimalChecker","CountUpDirective","cd","valueFormatting","finished","ChangeDetectorRef","_c17","ɵɵtext","ɵɵtextInterpolate1","root","MouseEvent","createMouseEvent","name","bubbles","cancelable","event","TooltipArea","platformId","PlacementTypes","StyleTypes","xVal","results","group","item","groupName","label","color","ScaleType","v","data","isPlatformBrowser","xPos","closestIndex","closestPoint","ev","minIndex","maxIndex","minDiff","currentIndex","currentElement","curDiff","tooltipItem","result","PLATFORM_ID","ɵɵviewQuery","_c18","_t","ɵɵqueryRefresh","ɵɵloadQuery","_c19","_r1","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","TooltipArea__svg_ng_template_2_Template","ɵɵtemplateRefExtractor","defaultTooltipTemplate_r5","ɵɵreference","TooltipDirective","trigger","transition","style","animate","Timeline","offsetY","values","domain","min","max","scale","time","linear","point","height","width","brushX","selection","newDomain","_c20","_c2","ɵɵprojectionDef","ɵɵprojection","AdvancedLegendComponent","percentage","sum","formatLabel","formattedLabel","trimLabel","index","AdvancedLegendComponent_div_1_Template","AdvancedLegendComponent_div_2_Template","AdvancedLegendComponent_div_7_Template","ChartCommonModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","AxesModule","TooltipModule","calculateViewDimensions","width","height","margins","showXAxis","showYAxis","xAxisHeight","yAxisWidth","showXLabel","showYLabel","showLegend","legendType","ScaleType","legendPosition","LegendPosition","columns","xOffset","chartWidth","chartHeight","colorSets","ColorHelper","scheme","type","domain","customColors","cs","colorScale","quantile","ordinal","colorDomain","points","range","linear","value","valueScale","formattedValue","found","mapping","start","colorValueScale","band","endColor","startVal","startColor","endVal","i","currentVal","stops","color","offset","s","getUniqueXDomainValues","results","valueSet","result","d","getScaleType","values","checkDateType","sortLinear","data","property","direction","a","b","sortByDomain","domain","aVal","bVal","aIdx","bIdx","sortByTime","aDate","bDate","BarChartModule","ɵɵdefineNgModule","ɵɵdefineInjector","ChartCommonModule","cloneDeep","rfdc","LineComponent","element","platformId","isPlatformServer","changes","node","select_default","ɵɵdirectiveInject","ElementRef","PLATFORM_ID","ɵɵdefineComponent","ɵɵNgOnChangesFeature","_c36","rf","ctx","ɵɵtemplate","LineComponent__svg_g_0_Template","LineComponent__svg_g_1_Template","ɵɵproperty","ɵɵadvance","NgIf","trigger","transition","style","animate","LineSeriesComponent","BarOrientation","data","lineGen","areaGen","range","values","d","max","min","line_default","label","value","ScaleType","area_default","xProperty","sortLinear","sortByTime","sortByDomain","id","entry","_c37","ɵɵnamespaceSVG","ɵɵelementStart","LineSeriesComponent__svg_g_2_Template","ɵɵelementEnd","ɵɵelement","LineSeriesComponent__svg_g_5_Template","ɵɵclassProp","SvgLinearGradientComponent","AreaComponent","LineChartComponent","BaseChartComponent","LegendPosition","linear_default","EventEmitter","calculateViewDimensions","getUniqueXDomainValues","getScaleType","domain","v","a","b","aDate","bDate","results","width","scale","time","linear","point","height","item","index","ColorHelper","opts","idx","ɵLineChartComponent_BaseFactory","t","ɵɵgetInheritedFactory","dirIndex","ɵɵcontentQuery","_c22","_c23","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵlistener","ɵɵInheritDefinitionFeature","$event","LineChartComponent__svg_g_5_Template","LineChartComponent__svg_g_6_Template","LineChartComponent__svg_g_8_Template","LineChartComponent__svg_g_9_Template","LineChartComponent__svg_g_10_Template","LineChartComponent__svg_g_11_Template","ɵɵpureFunction2","_c24","ɵɵattribute","ChartComponent","XAxisComponent","YAxisComponent","TooltipArea","CircleSeriesComponent","Timeline","NgForOf","_c25","LineChartModule","ɵɵdefineNgModule","ɵɵdefineInjector","ChartCommonModule","PieLabelComponent","trimLabel","isIE","startRadius","innerPos","arc_default","outerPos","TextAnchor","_c38","ɵɵtext","ɵɵtextInterpolate","ɵɵstyleProp","ɵɵtextInterpolate1","twoPI","PieArcComponent","element","EventEmitter","BarOrientation","changes","calc","id","outerRadius","arc_default","node","select_default","d","copyOfD","interpolater","value_default","t","event","ɵɵdirectiveInject","ElementRef","ɵɵdefineComponent","ɵɵNgOnChangesFeature","_c40","rf","ctx","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵtemplate","PieArcComponent__svg_defs_1_Template","ɵɵlistener","$event","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵstyleProp","ɵɵclassProp","ɵɵattribute","SvgRadialGradientComponent","NgIf","PieSeriesComponent","PlacementTypes","StyleTypes","arcData","pie_default","max","pieData","labelPositions","i","a","j","b","o","myArc","formatLabel","label","val","escapeLabel","index","item","data","entry","_c41","PieSeriesComponent__svg_g_0_Template","PieLabelComponent","NgForOf","TooltipDirective","AdvancedPieChartComponent","BaseChartComponent","calculateViewDimensions","xOffset","yOffset","ColorHelper","ScaleType","fromLegend","idx","ɵAdvancedPieChartComponent_BaseFactory","ɵɵgetInheritedFactory","dirIndex","ɵɵcontentQuery","_c22","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵInheritDefinitionFeature","ɵɵnamespaceHTML","ɵɵpureFunction2","_c24","ChartComponent","AdvancedLegendComponent","_c25","PieChartModule","ɵɵdefineNgModule","ɵɵdefineInjector","ChartCommonModule","DayOfWeekPipe","transform","value","DayOfWeek","Monday","translate","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","pure","standalone","_DayOfWeekPipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","t_r1","ɵɵtextInterpolate1","day_r2","name","ɵɵstyleMap","value","ctx_r2","max","ɵɵelementContainerStart","ɵɵtemplate","DayBreakdownComponent_ng_container_0_ng_container_4_div_1_Template","DayBreakdownComponent_ng_container_0_ng_container_4_tr_5_Template","ɵɵproperty","days_r4","length","DayBreakdownComponent_ng_container_0_ng_container_4_Template","ɵɵpipeBind1","dayBreakdown$","DayBreakdownComponent","constructor","destroyRef","inject","DestroyRef","cdRef","ChangeDetectorRef","statService","StatisticsService","userId","view","showLegend","formControl","FormControl","ngOnInit","dayOfWeekPipe","DayOfWeekPipe","getDayBreakdown","pipe","map","data","d","transform","count","tap","reduce","acc","day","Math","markForCheck","takeUntilDestroyed","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","DayBreakdownComponent_ng_container_0_Template","BarChartModule","AsyncPipe","TranslocoDirective","NgForOf","NgIf","styles","changeDetection","_DayBreakdownComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","item_r1","value","ɵɵadvance","ɵɵtextInterpolate","t_r2","title","ɵɵtextInterpolate1","user_r3","username","ɵɵpureFunction1","_c0","comicsTime","mangaTime","booksTime","ɵɵelementContainerStart","ɵɵtemplate","TopReadersComponent_ng_container_0_option_11_Template","TopReadersComponent_ng_container_0_div_14_Template","ctx_r3","formGroup","ɵɵclassProp","tmp_5_0","get","invalid","touched","timePeriods","ɵɵpipeBind1","users$","TimePeriods","Date","getDay","TopReadersComponent","constructor","statsService","cdRef","destroyRef","inject","DestroyRef","FormGroup","FormControl","valueChanges","pipe","switchMap","_","getTopUsers","takeUntilDestroyed","shareReplay","ngOnInit","subscribe","setValue","emitEvent","ɵɵdirectiveInject","StatisticsService","ChangeDetectorRef","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","TopReadersComponent_ng_container_0_Template","ReactiveFormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","SelectControlValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgFor","AsyncPipe","TranslocoDirective","styles","changeDetection","_TopReadersComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","item_r1","id","ɵɵadvance","ɵɵtextInterpolate","username","ɵɵelement","ɵɵtemplate","ReadingActivityComponent_ng_container_0_div_9_option_5_Template","ɵɵclassProp","tmp_4_0","ctx_r2","formGroup","get","invalid","touched","t_r2","ɵɵpipeBind1","users$","item_r4","value","title","data_r5","ɵɵelementContainerStart","ReadingActivityComponent_ng_container_0_ng_container_17_ngx_charts_line_chart_1_Template","length","noData_r6","ɵɵtextInterpolate1","ReadingActivityComponent_ng_container_0_div_9_Template","ReadingActivityComponent_ng_container_0_option_15_Template","ReadingActivityComponent_ng_container_0_ng_container_17_Template","ReadingActivityComponent_ng_container_0_ng_template_19_Template","ɵɵtemplateRefExtractor","isAdmin","individualUserMode","tmp_7_0","timePeriods","data$","options","month","day","ReadingActivityComponent","constructor","userId","destroyRef","inject","DestroyRef","statService","StatisticsService","memberService","MemberService","view","FormGroup","FormControl","TimePeriods","valueChanges","pipe","switchMap","_","getReadCountByDay","map","data","gList","reduce","formats","entry","formatTranslated","mangaFormatPipe","transform","format","name","series","push","Date","toLocaleDateString","count","Object","keys","takeUntilDestroyed","shareReplay","subscribe","ngOnInit","getMembers","of","filter","setValue","emitValue","disable","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ReadingActivityComponent_ng_container_0_Template","ReactiveFormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","SelectControlValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgIf","NgFor","LineChartModule","LineChartComponent","AsyncPipe","TranslocoDirective","styles","changeDetection","_ReadingActivityComponent","ɵɵelement","ɵɵproperty","tooltip_r1","url_r5","ɵɵelementContainerStart","ɵɵtemplate","StatListComponent_ng_container_0_li_6_ng_container_1_app_image_1_Template","ɵɵadvance","length","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtextInterpolate2","ɵɵpipeBind1","item_r3","value","ctx_r3","label","ɵɵlistener","ɵɵrestoreView","_r2","$implicit","ɵɵnextContext","ɵɵresetView","doClick","StatListComponent_ng_container_0_li_6_ng_container_1_Template","StatListComponent_ng_container_0_li_6_span_3_Template","ɵɵpureFunction1","_c0","handleClick","undefined","image","ɵɵtextInterpolate1","name","StatListComponent_ng_container_0_i_4_Template","StatListComponent_ng_container_0_li_6_Template","title","description","data_r6","StatListComponent","constructor","item","selectors","inputs","data$","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","StatListComponent_ng_container_0_Template","StatListComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","NgIf","NgbTooltip","NgFor","NgClass","ImageComponent","AsyncPipe","CompactNumberPipe","styles","changeDetection","_StatListComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","tmp_4_0","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","listForm","get","setValue","ɵɵadvance","ɵɵtextInterpolate","t_r4","_r5","item_r6","$implicit","handleClick","ɵɵpureFunction1","_c0","ɵɵtemplate","GenericListModalComponent_ng_container_0_li_9_button_2_Template","ɵɵtextInterpolate1","ɵɵproperty","clicked","undefined","ɵɵelementContainerStart","_r1","close","GenericListModalComponent_ng_container_0_div_7_Template","GenericListModalComponent_ng_container_0_li_9_Template","title","items","length","ɵɵpipeBind2","filterList","GenericListModalComponent","constructor","modal","FormGroup","FormControl","listItem","toLowerCase","indexOf","value","filterQuery","item","ɵɵdirectiveInject","NgbActiveModal","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","GenericListModalComponent_ng_container_0_Template","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgIf","NgFor","FilterPipe","TranslocoDirective","styles","_GenericListModalComponent","TimeDurationPipe","constructor","translocoService","inject","TranslocoService","transform","hours","translate","value","toFixed","pure","standalone","_TimeDurationPipe"],"x_google_ignoreList":[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173]}