@unovis/angular 1.6.2 → 1.7.0-stellar.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"unovis-angular.umd.js","sources":["../../../src/core/generic-component.ts","../../../node_modules/tslib/tslib.es6.js","../../../src/core/core-component.ts","../../../src/core/xy-component.ts","../../../src/components/tooltip/tooltip.component.ts","../../../src/components/annotations/annotations.component.ts","../../../src/containers/xy-container/xy-container.component.ts","../../../src/containers/xy-container/xy-container.module.ts","../../../src/containers/single-container/single-container.component.ts","../../../src/containers/single-container/single-container.module.ts","../../../src/components/area/area.component.ts","../../../src/components/area/area.module.ts","../../../src/components/annotations/annotations.module.ts","../../../src/components/axis/axis.component.ts","../../../src/components/axis/axis.module.ts","../../../src/components/brush/brush.component.ts","../../../src/components/brush/brush.module.ts","../../../src/components/chord-diagram/chord-diagram.component.ts","../../../src/components/chord-diagram/chord-diagram.module.ts","../../../src/components/crosshair/crosshair.component.ts","../../../src/components/crosshair/crosshair.module.ts","../../../src/components/donut/donut.component.ts","../../../src/components/donut/donut.module.ts","../../../src/components/free-brush/free-brush.component.ts","../../../src/components/free-brush/free-brush.module.ts","../../../src/components/graph/graph.component.ts","../../../src/components/graph/graph.module.ts","../../../src/components/grouped-bar/grouped-bar.component.ts","../../../src/components/grouped-bar/grouped-bar.module.ts","../../../src/components/line/line.component.ts","../../../src/components/line/line.module.ts","../../../src/components/nested-donut/nested-donut.component.ts","../../../src/components/nested-donut/nested-donut.module.ts","../../../src/components/plotline/plotline.component.ts","../../../src/components/plotline/plotline.module.ts","../../../src/components/sankey/sankey.component.ts","../../../src/components/sankey/sankey.module.ts","../../../src/components/scatter/scatter.component.ts","../../../src/components/scatter/scatter.module.ts","../../../src/components/stacked-bar/stacked-bar.component.ts","../../../src/components/stacked-bar/stacked-bar.module.ts","../../../src/components/timeline/timeline.component.ts","../../../src/components/timeline/timeline.module.ts","../../../src/components/xy-labels/xy-labels.component.ts","../../../src/components/xy-labels/xy-labels.module.ts","../../../src/components/topojson-map/topojson-map.component.ts","../../../src/components/topojson-map/topojson-map.module.ts","../../../src/components/plotband/plotband.component.ts","../../../src/components/plotband/plotband.module.ts","../../../src/html-components/leaflet-map/leaflet-map.component.ts","../../../src/html-components/leaflet-map/leaflet-map.module.ts","../../../src/html-components/leaflet-flow-map/leaflet-flow-map.component.ts","../../../src/html-components/leaflet-flow-map/leaflet-flow-map.module.ts","../../../src/html-components/bullet-legend/bullet-legend.component.ts","../../../src/html-components/bullet-legend/bullet-legend.module.ts","../../../src/html-components/rolling-pin-legend/rolling-pin-legend.component.ts","../../../src/html-components/rolling-pin-legend/rolling-pin-legend.module.ts","../../../src/components/tooltip/tooltip.module.ts","../../../src/components.ts","../../../src/unovis-angular.ts"],"sourcesContent":["export class VisGenericComponent {\n component: any\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { ComponentCore, ContainerCore } from '@unovis/ts'\nimport { VisGenericComponent } from './generic-component'\n\nexport class VisCoreComponent extends VisGenericComponent {\n component: ComponentCore<any>\n componentContainer: ContainerCore\n}\n","import { XYComponentCore, XYContainer } from '@unovis/ts'\nimport { VisCoreComponent } from './core-component'\n\nexport class VisXYComponent extends VisCoreComponent {\n component: XYComponentCore<any>\n componentContainer: XYContainer<any>\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { Tooltip, TooltipConfigInterface, ContainerCore, ComponentCore, Position } from '@unovis/ts'\nimport { VisGenericComponent } from '../../core'\n\n@Component({\n selector: 'vis-tooltip',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisGenericComponent, useExisting: VisTooltipComponent }],\n})\nexport class VisTooltipComponent implements TooltipConfigInterface, AfterViewInit {\n /** An array of visualization components to interact with. Default: `[]` */\n @Input() components?: ComponentCore<unknown>[]\n\n /** Container to where the Tooltip component should be inserted. Default: `undefined` */\n @Input() container?: HTMLElement\n\n /** Follow the mouse cursor. Default: `true` */\n @Input() followCursor?: boolean\n\n /** Allow the tooltip to be hovered over and interacted with. Default: `false` */\n @Input() allowHover?: boolean\n\n /** Horizontal placement of the tooltip. Default: `Position.Auto` */\n @Input() horizontalPlacement?: Position | string | undefined\n\n /** Horizontal shift of the tooltip in pixels. Works only with\n * `horizontalPlacement` set to `Position.Left` or `Position.Right`.\n * Default: `0` */\n @Input() horizontalShift?: number\n\n /** Vertical placement of the tooltip. Default: `Position.Top` */\n @Input() verticalPlacement?: Position | string | undefined\n\n /** Vertical shift of the tooltip in pixels. Works only with\n * `verticalPlacement` set to `Position.Top` or `Position.Bottom`.\n * Default: `0` */\n @Input() verticalShift?: number\n\n /** Defines the content of the tooltip and hovering over which elements should trigger it.\n * An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: (d: unknown) => string | HTMLElement\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: (d: AreaDatum[]) => `<div>${d.value.toString()}</div>\n * }\n * ``` */\n @Input() triggers?: {\n [selector: string]: ((data: any, i: number, elements: (HTMLElement | SVGElement)[]) => string | HTMLElement | undefined | null | void) | undefined | null;\n }\n\n /** Custom DOM attributes for the tooltip. Useful when you need to refer to a specific tooltip instance\n * by using a CSS selector. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[attributeName]: attribute value\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\'type': 'area-tooltip',\n * \\'value': 42\n * }\n * ``` */\n @Input() attributes?: {\n [attr: string]: string | number | boolean;\n }\n\n /** Custom class name for the tooltip. Default: `undefined` */\n @Input() className?: string\n\n /** Hide delay in milliseconds. Default: `undefined` */\n @Input() hideDelay?: number\n\n /** Show delay in milliseconds. Default: `undefined` */\n @Input() showDelay?: number\n\n component: Tooltip | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Tooltip(this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): TooltipConfigInterface {\n const { components, container, followCursor, allowHover, horizontalPlacement, horizontalShift, verticalPlacement, verticalShift, triggers, attributes, className, hideDelay, showDelay } = this\n const config = { components, container, followCursor, allowHover, horizontalPlacement, horizontalShift, verticalPlacement, verticalShift, triggers, attributes, className, hideDelay, showDelay }\n const keys = Object.keys(config) as (keyof TooltipConfigInterface)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { Annotations, AnnotationsConfigInterface, ContainerCore, VisEventType, VisEventCallback, AnnotationItem } from '@unovis/ts'\nimport { VisGenericComponent } from '../../core'\n\n@Component({\n selector: 'vis-annotations',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisGenericComponent, useExisting: VisAnnotationsComponent }],\n})\nexport class VisAnnotationsComponent implements AnnotationsConfigInterface, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Legend items. Array of `AnnotationItem`:\n * ```\n * {\n * content: string | UnovisText | UnovisText[];\n * subject?: AnnotationSubject;\n * x?: LengthUnit;\n * y?: LengthUnit;\n * width?: LengthUnit;\n * height?: LengthUnit;\n * }\n * ```\n * To learn more, see our docs https://unovis.dev/docs/auxiliary/Annotations/\n * Default: `[]` */\n @Input() items: AnnotationItem[] | undefined\n\n component: Annotations | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Annotations(this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): AnnotationsConfigInterface {\n const { duration, events, attributes, items } = this\n const config = { duration, events, attributes, items }\n const keys = Object.keys(config) as (keyof AnnotationsConfigInterface)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Input,\n OnDestroy,\n QueryList,\n SimpleChanges,\n ViewChild,\n} from '@angular/core'\n\n// Vis\nimport { Annotations, Axis, ContinuousScale, Crosshair, Direction, Spacing, Tooltip, XYContainer, XYContainerConfigInterface } from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\nimport { VisTooltipComponent } from '../../components/tooltip/tooltip.component'\nimport { VisAnnotationsComponent } from '../../components/annotations/annotations.component'\n\n@Component({\n selector: 'vis-xy-container',\n template: `<div #container class=\"unovis-xy-container\">\n <ng-content></ng-content>\n </div>`,\n styles: ['.unovis-xy-container { width: 100%; height: 100%; position: relative; }'],\n})\nexport class VisXYContainerComponent<Datum> implements AfterViewInit, AfterContentInit, OnDestroy {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n @ContentChildren(VisXYComponent) visComponents: QueryList<VisXYComponent>\n @ContentChild(VisTooltipComponent) tooltipComponent: VisTooltipComponent\n @ContentChild(VisAnnotationsComponent) annotationsComponent: VisAnnotationsComponent\n\n /** Width in pixels or in CSS units.\n * Percentage units `\"%\"` are not supported here. If you want to set `width` as a percentage, do it via `style` or `class`\n * of the corresponding DOM element.\n * Default: `undefined`\n */\n @Input() width?: number\n /** Height in pixels or in CSS units.\n * Percentage units `\"%\"` are not supported here. If you want to set `height` as a percentage, do it via `style` or `class`\n * of the corresponding DOM element.\n * Default: `undefined`\n */\n @Input() height?: number\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). Default: `Scale.scaleLinear()` */\n @Input() xScale?: ContinuousScale\n /** Scale domain (data extent) for X dimension. By default this value is calculated automatically based on data. */\n @Input() xDomain?: [number | undefined, number | undefined]\n /** Constraint the minimum value of the X scale domain. Useful when the data is plotted along the X axis.\n * For example, imagine that you have a chart with dynamic data that has negative values. When values are small\n * (let's say in the range of [-0.01, 0]), you might still want the chart to display some meaningful value range (e.g. [-1, 0]). That can\n * be achieved by setting `xDomainMinConstraint` to `[undefined, -1]`. In addition to that, if you want to cut off the\n * values that are too low (let's say lower than -100), you can set the constraint to `[-100, -1]`\n * Default: `undefined` */\n @Input() xDomainMinConstraint?: [number | undefined, number | undefined]\n /** Constraint the minimum value of the X scale domain. Useful when the data is plotted along the X axis.\n * For example, imagine that you have a chart with dynamic data. When values are small\n * (let's say < 0.01), you might still want the chart to display some meaningful value range (e.g. [0, 1]). That can\n * be achieved by setting `xDomainMaxConstraint` to `[1, undefined]`. In addition to that, if you want to cut off the\n * values that are too high (let's say higher than 100), you can set the constraint to `[1, 100]`\n * Default: `undefined` */\n @Input() xDomainMaxConstraint?: [number | undefined, number | undefined]\n /** Force set the X scale range (in the screen space). By default the range is calculated automatically based on the\n * chart's set up */\n @Input() xRange?: [number, number]\n\n /** Scale for Y dimension, e.g. Scale.ScaleLinear. Default: `Scale.ScaleLinear()` */\n @Input() yScale?: ContinuousScale\n /** Scale domain (data extent) for Y dimension. By default this value is calculated automatically based on data. */\n @Input() yDomain?: [number | undefined, number | undefined]\n /** Constraint the minimum value of the Y scale domain.\n * For example, imagine that you have a chart with dynamic data that has negative values. When values are small\n * (let's say in the range of [-0.01, 0]), you might still want the chart to display some meaningful value range (e.g. [-1, 0]). That can\n * be achieved by setting `yDomainMinConstraint` to `[undefined, -1]`. In addition to that, if you want to cut off the\n * values that are too low (let's say lower than -100), you can set the constraint to `[-100, -1]`\n * Default: `undefined` */\n @Input() yDomainMinConstraint?: [number | undefined, number | undefined] = undefined\n /** Constraint the minimum value of the Y scale domain.\n * For example, imagine that you have a chart with dynamic data. When values are small\n * (let's say < 0.01), you might still want the chart to display some meaningful value range (e.g. [0, 1]). That can\n * be achieved by setting `yDomainMaxConstraint` to `[1, undefined]`. In addition to that, if you want to cut off the\n * values that are too high (let's say higher than 100), you can set the constraint to `[1, 100]`\n * Default: `undefined` */\n @Input() yDomainMaxConstraint?: [number | undefined, number | undefined]\n /** Force set the Y scale range (in the screen space). By default the range is calculated automatically based on the\n * chart's set up */\n @Input() yRange?: [number, number]\n /** Y Axis direction. Default: `Direction.North` */\n @Input() yDirection?: Direction.South | Direction.North | string = Direction.North\n /** Prevents the chart domain from being empty (when domain's min and max values are equal).\n * That usually happens when all the data values are the same or when there's no data.\n * Setting to `true` will automatically extend the domain by `+1` when needed.\n * Setting to `null` will extend the domain only when there's no data.\n * Setting to `false` will keep the domain as is.\n * Default: `null` */\n @Input() preventEmptyDomain?: boolean | null = null\n\n /** Animation duration of all the components within the container. Default: `undefined` */\n @Input() duration?: number = undefined\n /** Margins. Default: `{ top: 0, bottom: 0, left: 0, right: 0 }` */\n @Input() margin?: Spacing = { top: 0, bottom: 0, left: 0, right: 0 }\n /** Padding. Default: `{ top: 0, bottom: 0, left: 0, right: 0 }` */\n @Input() padding?: Spacing = {}\n /** Sets the Y scale domain based on the current X scale domain (not the whole dataset). Default: `false` */\n @Input() scaleByDomain?: boolean\n /** Enables automatic calculation of chart margins based on the size of the axes. Default: `true` */\n @Input() autoMargin?: boolean = true\n\n /** Alternative text description of the chart for accessibility purposes. It will be applied as an\n * `aria-label` attribute to the div element containing your chart. Default: `undefined`.\n */\n @Input() ariaLabel?: string | null | undefined\n\n /** Data to be passed to all child components. But if `data` is `undefined` it'll to be passed allowing components to\n * have their individual data. Default: `undefined` */\n @Input() data?: Datum[] | undefined = undefined\n\n chart: XYContainer<Datum>\n\n ngAfterViewInit (): void {\n this.chart = new XYContainer<Datum>(this.containerRef.nativeElement, this.getConfig(), this.data)\n this.passContainerReferenceToChildren()\n }\n\n ngAfterContentInit (): void {\n // QueryList does unsubscribe automatically when it gets destroyed\n this.visComponents.changes.subscribe(() => {\n this.passContainerReferenceToChildren()\n this.chart?.updateContainer(this.getConfig())\n })\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n const preventRender = true\n\n // Set new Data without re-render\n if (changes.data) {\n this.chart?.setData(this.data, preventRender)\n delete changes.data\n }\n\n // Update Container and render\n this.chart?.updateContainer(this.getConfig())\n }\n\n getConfig (): XYContainerConfigInterface<Datum> {\n const {\n duration, margin, padding, scaleByDomain, autoMargin, width, height,\n xScale, xDomain, xDomainMinConstraint, xDomainMaxConstraint, xRange,\n yScale, yDomain, yDomainMinConstraint, yDomainMaxConstraint, yRange,\n yDirection, ariaLabel,\n } = this\n const visComponents = this.visComponents.toArray().map(d => d.component)\n\n const crosshair = visComponents.find(c => c instanceof Crosshair) as Crosshair<Datum>\n const tooltip = this.tooltipComponent?.component as Tooltip\n const xAxis = visComponents.find(c => c instanceof Axis && c?.config?.type === 'x') as Axis<Datum>\n const yAxis = visComponents.find(c => c instanceof Axis && c?.config?.type === 'y') as Axis<Datum>\n const annotations = this.annotationsComponent?.component as Annotations\n\n const components = visComponents.filter(c => !(c instanceof Crosshair) && !(c instanceof Tooltip) && !(c instanceof Axis))\n\n return {\n components,\n width,\n height,\n duration,\n margin,\n padding,\n xAxis,\n yAxis,\n tooltip,\n crosshair,\n annotations,\n scaleByDomain,\n autoMargin,\n xScale,\n xDomain,\n xDomainMinConstraint,\n xDomainMaxConstraint,\n xRange,\n yScale,\n yDomain,\n yDomainMinConstraint,\n yDomainMaxConstraint,\n yRange,\n yDirection,\n ariaLabel,\n }\n }\n\n passContainerReferenceToChildren (): void {\n // We set the container for each vis component to trigger chart re-render if the data has changed\n if (this.chart) this.visComponents.toArray().forEach(c => { c.componentContainer = this.chart })\n }\n\n ngOnDestroy (): void {\n this.chart?.destroy()\n }\n}\n","import { NgModule } from '@angular/core'\nimport { VisXYContainerComponent } from './xy-container.component'\n\n@NgModule({\n imports: [],\n declarations: [VisXYContainerComponent],\n exports: [VisXYContainerComponent],\n})\nexport class VisXYContainerModule {}\n","import { Component, ViewChild, ElementRef, AfterViewInit, Input, OnDestroy, SimpleChanges, ContentChild } from '@angular/core'\n\n// Vis\nimport { ComponentCore, SingleContainer, SingleContainerConfigInterface, Tooltip, Spacing, Annotations, Sizing } from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\nimport { VisTooltipComponent } from '../../components/tooltip/tooltip.component'\nimport { VisAnnotationsComponent } from '../../components/annotations/annotations.component'\n\n@Component({\n selector: 'vis-single-container',\n template: `<div #container class=\"unovis-single-container\">\n <ng-content></ng-content>\n </div>`,\n styles: ['.unovis-single-container { width: 100%; height: 100%; position: relative; }'],\n})\nexport class VisSingleContainerComponent<Data = unknown, C extends ComponentCore<Data> = ComponentCore<Data>> implements AfterViewInit, OnDestroy {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n @ContentChild(VisCoreComponent) visComponent: VisCoreComponent\n @ContentChild(VisTooltipComponent) tooltipComponent: VisTooltipComponent\n @ContentChild(VisAnnotationsComponent) annotationsComponent: VisAnnotationsComponent\n\n /** Width in pixels or in CSS units.\n * Percentage units `\"%\"` are not supported here. If you want to set `width` as a percentage, do it via `style` or `class`\n * of the corresponding DOM element.\n * Default: `undefined`\n */\n @Input() width?: number\n /** Height in pixels or in CSS units.\n * Percentage units `\"%\"` are not supported here. If you want to set `height` as a percentage, do it via `style` or `class`\n * of the corresponding DOM element.\n * Default: `undefined`\n */\n @Input() height?: number\n\n /** Margins. Default: `{ top: 0, bottom: 0, left: 0, right: 0 }` */\n @Input() margin?: Spacing = { top: 0, bottom: 0, left: 0, right: 0 }\n /** Animation duration of all the components within the container. Default: `undefined` */\n @Input() duration?: number\n /** Alternative text description of the chart for accessibility purposes. It will be applied as an\n * `aria-label` attribute to the div element containing your chart. Default: `undefined`.\n */\n @Input() ariaLabel?: string | null | undefined\n /** Custom SVG defs available to all the components within the container. Default: `undefined`. */\n @Input() svgDefs?: string\n /** Defines whether components should fit into the container or the container should expand to fit to the component's size.\n * Works with a limited set of components. Default: `Sizing.Fit` */\n @Input() sizing?: Sizing | string\n /** Data to be passed to the component. Default: `undefined`. */\n @Input() data?: Data\n\n chart: SingleContainer<Data>\n\n ngAfterViewInit (): void {\n this.chart = new SingleContainer<Data>(this.containerRef.nativeElement, this.getConfig(), this.data)\n // We pass the container for the component to trigger re-render if the data has changed\n this.visComponent.componentContainer = this.chart\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n // Set new Data without re-render\n if (changes.data) {\n this.chart?.setData(this.data, true)\n delete changes.data\n }\n\n // Update Container and render\n this.chart?.updateContainer(this.getConfig())\n }\n\n getConfig (): SingleContainerConfigInterface<Data> {\n const { width, height, duration, margin, ariaLabel, svgDefs, sizing } = this\n\n const component = this.visComponent?.component as C\n const tooltip = this.tooltipComponent?.component as Tooltip\n const annotations = this.annotationsComponent?.component as Annotations\n\n return { width, height, duration, margin, component, tooltip, ariaLabel, annotations, svgDefs, sizing }\n }\n\n ngOnDestroy (): void {\n this.chart.destroy()\n }\n}\n","import { NgModule } from '@angular/core'\nimport { VisSingleContainerComponent } from './single-container.component'\n\n@NgModule({\n imports: [],\n declarations: [VisSingleContainerComponent],\n exports: [VisSingleContainerComponent],\n})\nexport class VisSingleContainerModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Area,\n AreaConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n CurveType,\n StringAccessor,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-area',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisAreaComponent }],\n})\nexport class VisAreaComponent<Datum> implements AreaConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Area color accessor function. The whole data array will be passed as the first argument. Default: `undefined` */\n @Input() color?: ColorAccessor<Datum[]>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Curve type from the CurveType enum. Default: `CurveType.MonotoneX` */\n @Input() curveType?: CurveType | string\n\n /** Baseline value or accessor function. Default: `undefined` */\n @Input() baseline?: NumericAccessor<Datum>\n\n /** Opacity value or accessor function. Default: `1` */\n @Input() opacity?: NumericAccessor<Datum[]>\n\n /** Optional area cursor. String or accessor function. Default: `null` */\n @Input() cursor?: StringAccessor<Datum[]>\n\n /** If an area is smaller than 1px, extend it to have 1px height. Default: `false` */\n @Input() minHeight1Px?: boolean\n\n /** Minimum height of the area, use carefully.\n * This setting is useful when some of the area values are zeros or very small so visually they become\n * practically invisible, but you want to show that the data behind them exists and they're not just empty segments.\n * Default: `undefined` */\n @Input() minHeight?: number\n @Input() data: Datum[]\n\n component: Area<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Area<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): AreaConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, baseline, opacity, cursor, minHeight1Px, minHeight } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, baseline, opacity, cursor, minHeight1Px, minHeight }\n const keys = Object.keys(config) as (keyof AreaConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisAreaComponent } from './area.component'\n\n@NgModule({\n imports: [],\n declarations: [VisAreaComponent],\n exports: [VisAreaComponent],\n})\nexport class VisAreaModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisAnnotationsComponent } from './annotations.component'\n\n@NgModule({\n imports: [],\n declarations: [VisAnnotationsComponent],\n exports: [VisAnnotationsComponent],\n})\nexport class VisAnnotationsModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Axis,\n AxisConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n Position,\n AxisType,\n FitMode,\n TrimMode,\n TextAlign,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-axis',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisAxisComponent }],\n})\nexport class VisAxisComponent<Datum> implements AxisConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Axis position: `Position.Top`, `Position.Bottom`, `Position.Right` or `Position.Left`. Default: `undefined` */\n @Input() position?: Position | string\n\n /** Axis type: `AxisType.X` or `AxisType.Y` */\n @Input() type?: AxisType | string\n\n /** Extend the axis domain line to be full width or full height. Default: `true` */\n @Input() fullSize?: boolean\n\n /** Axis label. Default: `undefined` */\n @Input() label?: string\n\n /** Font size of the axis label as CSS string. Default: `null` */\n @Input() labelFontSize?: string | null\n\n /** Distance between the axis and the label in pixels. Default: `8` */\n @Input() labelMargin?: number\n\n /** Label text fit mode: `FitMode.Wrap` or `FitMode.Trim`. Default: `FitMode.Wrap`. */\n @Input() labelTextFitMode?: FitMode | string\n\n /** Label text trim mode: `TrimMode.Start`, `TrimMode.Middle` or `TrimMode.End`. Default: `TrimMode.Middle` */\n @Input() labelTextTrimType?: TrimMode | string\n\n /** Font color of the axis label as CSS string. Default: `null` */\n @Input() labelColor?: string | null\n\n /** Sets whether to draw the grid lines or not. Default: `true` */\n @Input() gridLine?: boolean\n\n /** Sets whether to draw the tick lines or not. Default: `true` */\n @Input() tickLine?: boolean\n\n /** Sets whether to draw the domain line or not. Default: `true` */\n @Input() domainLine?: boolean\n\n /** Draw only the min and max axis ticks. Default: `false` */\n @Input() minMaxTicksOnly?: boolean\n\n /** Show grid lines for the min and max axis ticks. Default: `false` */\n @Input() minMaxTicksOnlyShowGridLines?: boolean\n\n /** Draw only the min and max axis ticks, when the chart\n * width is less than the specified value.\n * Default: `250` */\n @Input() minMaxTicksOnlyWhenWidthIsLess?: number\n\n /** Tick label formatter function. Default: `undefined` */\n @Input() tickFormat?: ((tick: number | Date, i: number, ticks: number[] | Date[]) => string)\n\n /** Explicitly set tick values. Default: `undefined` */\n @Input() tickValues?: number[]\n\n /** Set the approximate number of axis ticks (will be passed to D3's axis constructor). Default: `undefined` */\n @Input() numTicks?: number\n\n /** Tick text fit mode: `FitMode.Wrap` or `FitMode.Trim`. Default: `FitMode.Wrap`. */\n @Input() tickTextFitMode?: FitMode | string\n\n /** Maximum width in pixels for the tick text to be wrapped or trimmed. Default: `undefined` */\n @Input() tickTextWidth?: number\n\n /** Tick text wrapping separator. String or array of strings. Default: `undefined` */\n @Input() tickTextSeparator?: string | string[]\n\n /** Force word break for ticks when they don't fit. Default: `false` */\n @Input() tickTextForceWordBreak?: boolean\n\n /** Tick text trim mode: `TrimMode.Start`, `TrimMode.Middle` or `TrimMode.End`. Default: `TrimMode.Middle` */\n @Input() tickTextTrimType?: TrimMode | string\n\n /** Font size of the tick text as CSS string. Default: `null` */\n @Input() tickTextFontSize?: string | null\n\n /** Text alignment for ticks: `TextAlign.Left`, `TextAlign.Center` or `TextAlign.Right`. Default: `undefined` */\n @Input() tickTextAlign?: TextAlign | string\n\n /** Font color of the tick text as CSS string. Default: `null` */\n @Input() tickTextColor?: string | null\n\n /** Text rotation angle for ticks. Default: `undefined` */\n @Input() tickTextAngle?: number\n\n /** Hide tick labels that overlap with each other.\n * To define overlapping, a simple bounding box collision detection algorithm is used.\n * Which means the result won't be accurate when `tickTextAngle` is specified.\n * Default: `undefined` */\n @Input() tickTextHideOverlapping?: boolean\n\n /** The spacing in pixels between the tick and it's label. Default: `8` */\n @Input() tickPadding?: number\n @Input() data: Datum[]\n\n component: Axis<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Axis<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): AxisConfigInterface<Datum> {\n const { duration, events, attributes, position, type, fullSize, label, labelFontSize, labelMargin, labelTextFitMode, labelTextTrimType, labelColor, gridLine, tickLine, domainLine, minMaxTicksOnly, minMaxTicksOnlyShowGridLines, minMaxTicksOnlyWhenWidthIsLess, tickFormat, tickValues, numTicks, tickTextFitMode, tickTextWidth, tickTextSeparator, tickTextForceWordBreak, tickTextTrimType, tickTextFontSize, tickTextAlign, tickTextColor, tickTextAngle, tickTextHideOverlapping, tickPadding } = this\n const config = { duration, events, attributes, position, type, fullSize, label, labelFontSize, labelMargin, labelTextFitMode, labelTextTrimType, labelColor, gridLine, tickLine, domainLine, minMaxTicksOnly, minMaxTicksOnlyShowGridLines, minMaxTicksOnlyWhenWidthIsLess, tickFormat, tickValues, numTicks, tickTextFitMode, tickTextWidth, tickTextSeparator, tickTextForceWordBreak, tickTextTrimType, tickTextFontSize, tickTextAlign, tickTextColor, tickTextAngle, tickTextHideOverlapping, tickPadding }\n const keys = Object.keys(config) as (keyof AxisConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisAxisComponent } from './axis.component'\n\n@NgModule({\n imports: [],\n declarations: [VisAxisComponent],\n exports: [VisAxisComponent],\n})\nexport class VisAxisModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { Brush, BrushConfigInterface, ContainerCore, VisEventType, VisEventCallback, Arrangement } from '@unovis/ts'\nimport { D3BrushEvent } from 'd3-brush'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-brush',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisBrushComponent }],\n})\nexport class VisBrushComponent<Datum> implements BrushConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Callback function to be called on any Brush event.\n * Default: `(selection: [number, number], event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrush?: ((selection: [number, number] | undefined, event: D3BrushEvent<Datum>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush start event.\n * Default: `(selection: [number, number], event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrushStart?: ((selection: [number, number] | undefined, event: D3BrushEvent<Datum>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush move event.\n * Default: `(selection: [number, number], event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrushMove?: ((selection: [number, number] | undefined, event: D3BrushEvent<Datum>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush end event.\n * Default: `(selection: [number, number], event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrushEnd?: ((selection: [number, number] | undefined, event: D3BrushEvent<Datum>, userDriven: boolean) => void)\n\n /** Width of the Brush handle. Default: `1` */\n @Input() handleWidth?: number\n\n /** Brush selection in the data space coordinates, can be used to control the selection. Default: `undefined` */\n @Input() selection?: [number, number] | null\n\n /** Allow dragging the selected area as a whole in order to change the selected range. Default: `false` */\n @Input() draggable?: boolean\n\n /** Position of the handle: `Arrangement.Inside` or `Arrangement.Outside`. Default: `Arrangement.Inside` */\n @Input() handlePosition?: Arrangement.Inside | Arrangement.Outside | string\n\n /** Constraint Brush selection to a minimal length in data units. Default: `undefined` */\n @Input() selectionMinLength?: number\n @Input() data: Datum[]\n\n component: Brush<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Brush<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): BrushConfigInterface<Datum> {\n const { duration, events, attributes, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, draggable, handlePosition, selectionMinLength } = this\n const config = { duration, events, attributes, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, draggable, handlePosition, selectionMinLength }\n const keys = Object.keys(config) as (keyof BrushConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisBrushComponent } from './brush.component'\n\n@NgModule({\n imports: [],\n declarations: [VisBrushComponent],\n exports: [VisBrushComponent],\n})\nexport class VisBrushModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n ChordDiagram,\n ChordDiagramConfigInterface,\n ContainerCore,\n ChordInputNode,\n ChordInputLink,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ChordNodeDatum,\n ColorAccessor,\n ChordLinkDatum,\n StringAccessor,\n GenericAccessor,\n ChordLabelAlignment,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-chord-diagram',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisChordDiagramComponent }],\n})\nexport class VisChordDiagramComponent<N extends ChordInputNode, L extends ChordInputLink> implements ChordDiagramConfigInterface<N, L>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Angular range of the diagram. Default: `[0, 2 * Math.PI]` */\n @Input() angleRange?: [number, number]\n\n /** Corner radius constant value or accessor function. Default: `2` */\n @Input() cornerRadius?: NumericAccessor<ChordNodeDatum<N>>\n\n /** Node id or index to highlight. Overrides default hover behavior if supplied. Default: `undefined` */\n @Input() highlightedNodeId?: number | string\n\n /** Link ids or index values to highlight. Overrides default hover behavior if supplied. Default: [] */\n @Input() highlightedLinkIds?: (number | string)[]\n\n /** Link color accessor function. Default: `var(--vis-chord-diagram-link-fill-color)` */\n @Input() linkColor?: ColorAccessor<ChordLinkDatum<N, L>>\n\n /** Link value accessor function. Default: `l => l.value` */\n @Input() linkValue?: NumericAccessor<ChordLinkDatum<N, L>>\n\n /** Array of node hierarchy levels. Data records are supposed to have corresponding properties, e.g. ['level1', 'level2']. Default: `[]` */\n @Input() nodeLevels?: string[]\n\n /** Node width in pixels. Default: `15` */\n @Input() nodeWidth?: number\n\n /** Node color accessor function ot constant value. Default: `d => d.color` */\n @Input() nodeColor?: ColorAccessor<ChordNodeDatum<N>>\n\n /** Node label accessor function. Default: `d => d.label ?? d.key` */\n @Input() nodeLabel?: StringAccessor<ChordNodeDatum<N>>\n\n /** Node label color accessor function. Default: `undefined` */\n @Input() nodeLabelColor?: StringAccessor<ChordNodeDatum<N>>\n\n /** Node label alignment. Default: `ChordLabelAlignment.Along` */\n @Input() nodeLabelAlignment?: GenericAccessor<ChordLabelAlignment | string, ChordNodeDatum<N>>\n\n /** Pad angle in radians. Default: `0.02` */\n @Input() padAngle?: number\n\n /** The exponent property of the radius scale. Default: `2` */\n @Input() radiusScaleExponent?: number\n @Input() data: { nodes: N[]; links?: L[] }\n\n component: ChordDiagram<N, L> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new ChordDiagram<N, L>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): ChordDiagramConfigInterface<N, L> {\n const { duration, events, attributes, angleRange, cornerRadius, highlightedNodeId, highlightedLinkIds, linkColor, linkValue, nodeLevels, nodeWidth, nodeColor, nodeLabel, nodeLabelColor, nodeLabelAlignment, padAngle, radiusScaleExponent } = this\n const config = { duration, events, attributes, angleRange, cornerRadius, highlightedNodeId, highlightedLinkIds, linkColor, linkValue, nodeLevels, nodeWidth, nodeColor, nodeLabel, nodeLabelColor, nodeLabelAlignment, padAngle, radiusScaleExponent }\n const keys = Object.keys(config) as (keyof ChordDiagramConfigInterface<N, L>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisChordDiagramComponent } from './chord-diagram.component'\n\n@NgModule({\n imports: [],\n declarations: [VisChordDiagramComponent],\n exports: [VisChordDiagramComponent],\n})\nexport class VisChordDiagramModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Crosshair,\n CrosshairConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n Tooltip,\n CrosshairCircle,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-crosshair',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisCrosshairComponent }],\n})\nexport class VisCrosshairComponent<Datum> implements CrosshairConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Optional accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x?: NumericAccessor<Datum>\n\n /** Optional single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y?: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Optional color array or color accessor function for crosshair circles. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Optional stroke color accessor function for crosshair circles. Default: `undefined` */\n @Input() strokeColor?: ColorAccessor<Datum>\n\n /** Optional stroke width for crosshair circles. Default: `undefined` */\n @Input() strokeWidth?: NumericAccessor<Datum>\n\n /** Separate array of accessors for stacked components (eg StackedBar, Area). Default: `undefined` */\n @Input() yStacked?: NumericAccessor<Datum>[]\n\n /** Baseline accessor function for stacked values, useful with stacked areas. Default: `null` */\n @Input() baseline?: NumericAccessor<Datum>\n\n /** An instance of the Tooltip component to be used with Crosshair. Default: `undefined` */\n @Input() tooltip?: Tooltip | undefined\n\n /** Tooltip template accessor. The function is supposed to return either a valid HTML string or an HTMLElement.\n * When `snapToData` is `false`, `datum` will be `undefined` but `data` and `leftNearestDatumIndex` will be provided.\n * Default: `d => ''` */\n @Input() template?: (datum: Datum, x: number | Date, data?: Datum[], leftNearestDatumIndex?: number) => string | HTMLElement\n\n /** Hide Crosshair when the corresponding datum element is far from mouse pointer. Default: `true` */\n @Input() hideWhenFarFromPointer?: boolean\n\n /** Distance in pixels to check in the hideWhenFarFromPointer condition. Default: `100` */\n @Input() hideWhenFarFromPointerDistance?: number\n\n /** Snap to the nearest data point.\n * If disabled, the tooltip template will receive only the horizontal position of the crosshair and you'll be responsible\n * for getting the underlying data records and crosshair circles (see the `getCircles` configuration option).\n * Default: `true` */\n @Input() snapToData?: boolean\n\n /** Custom function for setting up the crosshair circles, usually needed when `snapToData` is set to `false`.\n * The function receives the horizontal position of the crosshair (in the data space, not in pixels), the data array,\n * the `yScale` instance to help you calculate the correct vertical position of the circles, and the nearest datum index.\n * It has to return an array of the `CrosshairCircle` objects: `{ y: number; color: string; opacity?: number }[]`.\n * Default: `undefined` */\n @Input() getCircles?: (x: number | Date, data: Datum[], yScale: ContinuousScale, leftNearestDatumIndex?: number) => CrosshairCircle[]\n\n /** Callback function that is called when the crosshair is moved:\n * - `x` is the horizontal position of the crosshair in the data space;\n * - `datum` is the nearest datum to the crosshair;\n * - `datumIndex` is the index of the nearest datum.\n * - `event` is the event that triggered the crosshair move (mouse or wheel).\n *\n * When the mouse goes out of the container and on wheel events, all the arguments are `undefined` except for `event`.\n * Default: `undefined` */\n @Input() onCrosshairMove?: (x?: number | Date, datum?: Datum, datumIndex?: number, event?: MouseEvent | WheelEvent) => void\n\n /** Force the crosshair to show at a specific position. Default: `undefined` */\n @Input() forceShowAt?: number | Date\n\n /** Skip range checks for crosshair visibility. When true, crosshair will show regardless of position within chart bounds. Default: `false`\n * This is useful for testing, especially when you only triggers mousemove event but does not have real mouse event. */\n @Input() skipRangeCheck?: boolean\n @Input() data: Datum[]\n\n component: Crosshair<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Crosshair<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): CrosshairConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles, onCrosshairMove, forceShowAt, skipRangeCheck } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles, onCrosshairMove, forceShowAt, skipRangeCheck }\n const keys = Object.keys(config) as (keyof CrosshairConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisCrosshairComponent } from './crosshair.component'\n\n@NgModule({\n imports: [],\n declarations: [VisCrosshairComponent],\n exports: [VisCrosshairComponent],\n})\nexport class VisCrosshairModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { Donut, DonutConfigInterface, ContainerCore, VisEventType, VisEventCallback, NumericAccessor, ColorAccessor } from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-donut',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisDonutComponent }],\n})\nexport class VisDonutComponent<Datum> implements DonutConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string | number)\n\n /** Value accessor function. Default: `undefined` */\n @Input() value: NumericAccessor<Datum>\n\n /** Diagram angle range. Default: `[0, 2 * Math.PI]` */\n @Input() angleRange?: [number, number]\n\n /** Pad angle. Default: `0` */\n @Input() padAngle?: number\n\n /** Custom sort function. Default: `undefined` */\n @Input() sortFunction?: (a: Datum, b: Datum) => number\n\n /** Corner Radius. Default: `0` */\n @Input() cornerRadius?: number\n\n /** Color accessor function. Default: `undefined` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Explicitly set the donut outer radius. Default: `undefined` */\n @Input() radius?: number\n\n /** Arc width in pixels. Set to `0` if you want to have a pie chart. Default: `20` */\n @Input() arcWidth?: number\n\n /** Central label accessor function or text. Default: `undefined` */\n @Input() centralLabel?: string\n\n /** Central sub-label accessor function or text. Default: `undefined` */\n @Input() centralSubLabel?: string\n\n /** Enables wrapping for the sub-label. Default: `true` */\n @Input() centralSubLabelWrap?: boolean\n\n /** When true, the component will display empty segments (the ones that have `0` values) as tiny slices.\n * Default: `false` */\n @Input() showEmptySegments?: boolean\n\n /** Angular size for empty segments in radians. Default: `0.5 * Math.PI / 180` */\n @Input() emptySegmentAngle?: number\n\n /** Show donut background. The color is configurable via\n * the `--vis-donut-background-color` and `--vis-dark-donut-background-color` CSS variables.\n * Default: `true` */\n @Input() showBackground?: boolean\n\n /** Background angle range. When undefined, the value will be taken from `angleRange`. Default: `undefined` */\n @Input() backgroundAngleRange?: [number, number]\n\n /** Central label and sub-label horizontal offset in pixels. Default: `undefined` */\n @Input() centralLabelOffsetX?: number\n\n /** Central label and sub-label vertical offset in pixels. Default: `undefined` */\n @Input() centralLabelOffsetY?: number\n @Input() data: Datum[]\n\n component: Donut<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Donut<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): DonutConfigInterface<Datum> {\n const { duration, events, attributes, id, value, angleRange, padAngle, sortFunction, cornerRadius, color, radius, arcWidth, centralLabel, centralSubLabel, centralSubLabelWrap, showEmptySegments, emptySegmentAngle, showBackground, backgroundAngleRange, centralLabelOffsetX, centralLabelOffsetY } = this\n const config = { duration, events, attributes, id, value, angleRange, padAngle, sortFunction, cornerRadius, color, radius, arcWidth, centralLabel, centralSubLabel, centralSubLabelWrap, showEmptySegments, emptySegmentAngle, showBackground, backgroundAngleRange, centralLabelOffsetX, centralLabelOffsetY }\n const keys = Object.keys(config) as (keyof DonutConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisDonutComponent } from './donut.component'\n\n@NgModule({\n imports: [],\n declarations: [VisDonutComponent],\n exports: [VisDonutComponent],\n})\nexport class VisDonutModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { FreeBrush, FreeBrushConfigInterface, ContainerCore, VisEventType, VisEventCallback, FreeBrushMode, FreeBrushSelection } from '@unovis/ts'\nimport { D3BrushEvent } from 'd3-brush'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-free-brush',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisFreeBrushComponent }],\n})\nexport class VisFreeBrushComponent<Datum> implements FreeBrushConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Brush selection mode. X - horizontal, Y - vertical, XY - both. Default: `FreeBrushMode.X` */\n @Input() mode?: FreeBrushMode\n\n /** Callback function to be called on any Brush event.\n * Default: `(selection: FreeBrushSelection, event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrush?: ((selection: FreeBrushSelection | undefined, event: D3BrushEvent<unknown>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush start event.\n * Default: `(selection: FreeBrushSelection, event: D3BrushEvent<unknown>, userDriven: boolean): void => {}` */\n @Input() onBrushStart?: ((selection: FreeBrushSelection | undefined, event: D3BrushEvent<unknown>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush move event.\n * Default: `(selection: FreeBrushSelection, event: D3BrushEvent<unknown>, userDriven: boolean): void => {}` */\n @Input() onBrushMove?: ((selection: FreeBrushSelection | undefined, event: D3BrushEvent<unknown>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush end event.\n * Default: `(selection: FreeBrushSelection, event: D3BrushEvent<unknown>, userDriven: boolean)L void => {}` */\n @Input() onBrushEnd?: ((selection: FreeBrushSelection | undefined, event: D3BrushEvent<unknown>, userDriven: boolean) => void)\n\n /** Width of the Brush handle. Default: `1` */\n @Input() handleWidth?: number\n\n /** Brush selection in data space, can be used to force set the selection from outside.\n * In case of two dimensional mode, the selection has the following format: `[[xMin, xMax], [yMin, yMax]]`.\n * This config property gets updated on internal brush events. Default: `undefined` */\n @Input() selection?: FreeBrushSelection | null | undefined\n\n /** Constraint Brush selection to a minimal length in data units. Default: `undefined` */\n @Input() selectionMinLength?: number | [number, number]\n\n /** Automatically hide the brush after selection. Default: `true` */\n @Input() autoHide?: boolean\n @Input() data: Datum[]\n\n component: FreeBrush<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new FreeBrush<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): FreeBrushConfigInterface<Datum> {\n const { duration, events, attributes, mode, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, selectionMinLength, autoHide } = this\n const config = { duration, events, attributes, mode, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, selectionMinLength, autoHide }\n const keys = Object.keys(config) as (keyof FreeBrushConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisFreeBrushComponent } from './free-brush.component'\n\n@NgModule({\n imports: [],\n declarations: [VisFreeBrushComponent],\n exports: [VisFreeBrushComponent],\n})\nexport class VisFreeBrushModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Graph,\n GraphConfigInterface,\n ContainerCore,\n GraphInputNode,\n GraphInputLink,\n VisEventType,\n VisEventCallback,\n Spacing,\n GraphFitViewAlignment,\n GraphLayoutType,\n StringAccessor,\n GraphForceLayoutSettings,\n GraphDagreLayoutSetting,\n GenericAccessor,\n GraphElkLayoutSettings,\n GraphNode,\n NumericAccessor,\n GraphLinkStyle,\n GraphLinkArrowStyle,\n ColorAccessor,\n BooleanAccessor,\n GraphCircleLabel,\n GraphLink,\n GraphNodeShape,\n TrimMode,\n GraphNodeSelectionHighlightMode,\n GraphPanelConfig,\n GraphInputData,\n GraphDataModel,\n} from '@unovis/ts'\nimport { ElkShape } from 'elkjs'\nimport { Selection } from 'd3-selection'\nimport { D3DragEvent } from 'd3-drag'\nimport { D3ZoomEvent, ZoomTransform } from 'd3-zoom'\nimport { D3BrushEvent } from 'd3-brush'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-graph',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }],\n})\nexport class VisGraphComponent<N extends GraphInputNode, L extends GraphInputLink> implements GraphConfigInterface<N, L>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Zoom level constraints. Default: [0.35, 1.25] */\n @Input() zoomScaleExtent?: [number, number]\n\n /** Disable zooming. Default: `false` */\n @Input() disableZoom?: boolean\n\n /** Custom Zoom event filter to better control which actions should trigger zooming.\n * Learn more: https://d3js.org/d3-zoom#zoom_filter.\n * Default: `undefined` */\n @Input() zoomEventFilter?: (event: PointerEvent) => boolean\n\n /** Disable node dragging. Default: `false` */\n @Input() disableDrag?: boolean\n\n /** Disable brush for multiple node selection. Default: `false` */\n @Input() disableBrush?: boolean\n\n /** Interval to re-render the graph when zooming. Default: `100` */\n @Input() zoomThrottledUpdateNodeThreshold?: number\n\n /** Padding for the graph when fitting to container. Default: `50` */\n @Input() fitViewPadding?: Spacing | number\n\n /** Default alignment when fitting the graph view. Default: `GraphFitViewAlignment.Center` */\n @Input() fitViewAlign?: GraphFitViewAlignment\n\n /** Type of the graph layout. Default: `GraphLayoutType.Force` */\n @Input() layoutType?: GraphLayoutType | string\n\n /** Fit the graph to container on data or config updates, or on container resize. Default: `true` */\n @Input() layoutAutofit?: boolean\n\n /** Tolerance constant defining whether the graph should be fitted to container\n * (on data or config update, or container resize) after a zoom / pan interaction or not.\n * `0` — Stop fitting after any pan or zoom\n * `Number.POSITIVE_INFINITY` — Always fit\n * Default: `8.0` */\n @Input() layoutAutofitTolerance?: number\n\n /** Place non-connected nodes at the bottom of the graph. Default: `false` */\n @Input() layoutNonConnectedAside?: boolean\n\n /** Node group accessor function.\n * Only for `GraphLayoutType.Parallel`, `GraphLayoutType.ParallelHorizontal` and `GraphLayoutType.Concentric` layouts.\n * Default: `node => node.group` */\n @Input() layoutNodeGroup?: StringAccessor<N>\n\n /** Order of the layout groups.\n * Only for `GraphLayoutType.Parallel`, `GraphLayoutType.ParallelHorizontal` and `GraphLayoutType.Concentric` layouts.\n * Default: `[]` */\n @Input() layoutGroupOrder?: string[]\n\n /** Sets the number of nodes in a sub-group after which they'll continue on the next column (or row if `layoutType` is\n * `GraphLayoutType.ParallelHorizontal`).\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `6` */\n @Input() layoutParallelNodesPerColumn?: number\n\n /** Node sub-group accessor function.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `node => node.subgroup` */\n @Input() layoutParallelNodeSubGroup?: StringAccessor<N>\n\n /** Number of sub-groups per row (or column if `layoutType` is `GraphLayoutType.ParallelHorizontal`) in a group.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `1` */\n @Input() layoutParallelSubGroupsPerRow?: number\n\n /** Spacing between nodes, dynamic by default.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `undefined` */\n @Input() layoutParallelNodeSpacing?: number | [number, number]\n\n /** Spacing between sub-groups.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `40` */\n @Input() layoutParallelSubGroupSpacing?: number\n\n /** Spacing between groups.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `undefined` */\n @Input() layoutParallelGroupSpacing?: number\n\n /** Set a group by name to have priority in sorting the graph links.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `undefined` */\n @Input() layoutParallelSortConnectionsByGroup?: string\n\n /** Force Layout settings, see the `d3-force` package for more details */\n @Input() forceLayoutSettings?: GraphForceLayoutSettings<N, L>\n\n /** Darge Layout settings, see the `dagrejs` package\n * for more details: https://github.com/dagrejs/dagre/wiki#configuring-the-layout */\n @Input() dagreLayoutSettings?: GraphDagreLayoutSetting\n\n /** ELK layout options, see the `elkjs` package for more details: https://github.com/kieler/elkjs.\n * If you want to specify custom layout option for each node group, you can provide an accessor function that\n * receives group name ('root' for the top-level configuration) as the first argument and returns an object containing\n * layout options. Default: `undefined` */\n @Input() layoutElkSettings?: GenericAccessor<GraphElkLayoutSettings, string> | undefined\n\n /** Array of accessor functions to define nested node groups for the ELK Layered layout.\n * E.g.: `[n => n.group, n => n.subGroup]`.\n * Default: `undefined` */\n @Input() layoutElkNodeGroups?: StringAccessor<N>[]\n\n /** A function to be called per graph node to get the ELK shape object.\n * This enables you to provide custom node dimensions (through the `width` and `height` properties)\n * and coordinates (through the `x` and `y` properties) if needed.\n * Default: `undefined` */\n @Input() layoutElkGetNodeShape?: (d: GraphNode<N, L>, i: number) => ElkShape\n\n /** Link width accessor function ot constant value. Default: `1` */\n @Input() linkWidth?: NumericAccessor<L>\n\n /** Link style accessor function or constant value. Default: `GraphLinkStyle.Solid` */\n @Input() linkStyle?: GenericAccessor<GraphLinkStyle, L>\n\n /** Link band width accessor function or constant value. Default: `0` */\n @Input() linkBandWidth?: NumericAccessor<L>\n\n /** Link arrow accessor function or constant value. Default: `undefined` */\n @Input() linkArrow?: GenericAccessor<GraphLinkArrowStyle | string | boolean, L> | undefined\n\n /** Link stroke color accessor function or constant value. Default: `undefined` */\n @Input() linkStroke?: ColorAccessor<L>\n\n /** Link disabled state accessor function or constant value. Default: `false` */\n @Input() linkDisabled?: BooleanAccessor<L>\n\n /** Link flow animation accessor function or constant value. Default: `false` */\n @Input() linkFlow?: BooleanAccessor<L>\n\n /** Animation duration of the flow (traffic) circles in milliseconds. If `linkFlowParticleSpeed` is provided,\n * this duration will be calculated based on the link length and particle speed. Default: `20000` */\n @Input() linkFlowAnimDuration?: NumericAccessor<L>\n\n /** Size of the moving particles that represent traffic flow. Default: `2` */\n @Input() linkFlowParticleSize?: NumericAccessor<L>\n\n /** Speed of the moving particles in pixels per second. This property takes precedence over `linkFlowAnimDuration`. Default: `undefined` */\n @Input() linkFlowParticleSpeed?: NumericAccessor<L>\n\n /** Link label accessor function or constant value. Default: `undefined` */\n @Input() linkLabel?: GenericAccessor<GraphCircleLabel | GraphCircleLabel[], L> | undefined\n\n /** Shift label along the link center a little bit to avoid overlap with the link arrow. Default: `true` */\n @Input() linkLabelShiftFromCenter?: BooleanAccessor<L>\n\n /** Spacing between neighboring links. Default: `8` */\n @Input() linkNeighborSpacing?: number\n\n /** Curvature of the link. Recommended value range: [0:1.5].\n * `0` - straight line,\n * `1` - nice curvature,\n * `1.5` - very curve.\n * Default: `0` */\n @Input() linkCurvature?: NumericAccessor<L>\n\n /** Highlight links on hover. Default: `true` */\n @Input() linkHighlightOnHover?: boolean\n\n /** Offset [x,y] in pixels from the source node's center point where the link should start. Default: `undefined` */\n @Input() linkSourcePointOffset?: GenericAccessor<[number, number], GraphLink<N, L>>\n\n /** Offset [x,y] in pixels from the target node's center point where the link should end. Default: `undefined` */\n @Input() linkTargetPointOffset?: GenericAccessor<[number, number], GraphLink<N, L>>\n\n /** Set selected link by its unique id. Default: `undefined` */\n @Input() selectedLinkId?: number | string\n\n /** Node size accessor function or constant value. Default: `30` */\n @Input() nodeSize?: NumericAccessor<N>\n\n /** Node stroke width accessor function or constant value. Default: `3` */\n @Input() nodeStrokeWidth?: NumericAccessor<N>\n\n /** Node shape accessor function or constant value. Default: `GraphNodeShape.Circle` */\n @Input() nodeShape?: GenericAccessor<GraphNodeShape | string, N>\n\n /** Node gauge outline accessor function or constant value in the range [0,100]. Default: `0` */\n @Input() nodeGaugeValue?: NumericAccessor<N>\n\n /** Node gauge outline fill color accessor function or constant value. Default: `undefined` */\n @Input() nodeGaugeFill?: ColorAccessor<N>\n\n /** Animation duration of the node gauge outline. Default: `1500` */\n @Input() nodeGaugeAnimDuration?: number\n\n /** Node central icon accessor function or constant value. Default: `node => node.icon` */\n @Input() nodeIcon?: StringAccessor<N>\n\n /** Node central icon size accessor function or constant value. Default: `undefined` */\n @Input() nodeIconSize?: NumericAccessor<N>\n\n /** Node label accessor function or constant value. Default: `node => node.label` */\n @Input() nodeLabel?: StringAccessor<N>\n\n /** Defines whether to trim the node labels or not. Default: `true` */\n @Input() nodeLabelTrim?: BooleanAccessor<N>\n\n /** Node label trimming mode. Default: `TrimMode.Middle` */\n @Input() nodeLabelTrimMode?: GenericAccessor<TrimMode | string, N>\n\n /** Node label maximum allowed text length above which the label will be trimmed. Default: `15` */\n @Input() nodeLabelTrimLength?: NumericAccessor<N>\n\n /** Node sub-label accessor function or constant value: Default: `''` */\n @Input() nodeSubLabel?: StringAccessor<N>\n\n /** Defines whether to trim the node sub-labels or not. Default: `true` */\n @Input() nodeSubLabelTrim?: BooleanAccessor<N>\n\n /** Node sub-label trimming mode. Default: `TrimMode.Middle` */\n @Input() nodeSubLabelTrimMode?: GenericAccessor<TrimMode | string, N>\n\n /** Node sub-label maximum allowed text length above which the label will be trimmed. Default: `15` */\n @Input() nodeSubLabelTrimLength?: NumericAccessor<N>\n\n /** Node circular side labels accessor function. The function should return an array of GraphCircleLabel objects. Default: `undefined` */\n @Input() nodeSideLabels?: GenericAccessor<GraphCircleLabel[], N>\n\n /** Node bottom icon accessor function. Default: `undefined` */\n @Input() nodeBottomIcon?: StringAccessor<N>\n\n /** Node disabled state accessor function or constant value. Default: `false` */\n @Input() nodeDisabled?: BooleanAccessor<N>\n\n /** Node fill color accessor function or constant value. Default: `node => node.fill` */\n @Input() nodeFill?: ColorAccessor<N>\n\n /** Node stroke color accessor function or constant value. Default: `node => node.stroke` */\n @Input() nodeStroke?: ColorAccessor<N>\n\n /** Sorting function to determine node placement. Default: `undefined` */\n @Input() nodeSort?: ((a: N, b: N) => number)\n\n /** Specify the initial position for entering nodes as [x, y]. Default: `undefined` */\n @Input() nodeEnterPosition?: GenericAccessor<[number, number], N> | undefined\n\n /** Specify the initial scale for entering nodes in the range [0,1]. Default: `0.75` */\n @Input() nodeEnterScale?: NumericAccessor<N> | undefined\n\n /** Specify the destination position for exiting nodes as [x, y]. Default: `undefined` */\n @Input() nodeExitPosition?: GenericAccessor<[number, number], N> | undefined\n\n /** Specify the destination scale for exiting nodes in the range [0,1]. Default: `0.75` */\n @Input() nodeExitScale?: NumericAccessor<N> | undefined\n\n /** Custom \"enter\" function for node rendering. Default: `undefined` */\n @Input() nodeEnterCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void\n\n /** Custom \"update\" function for node rendering. Default: `undefined` */\n @Input() nodeUpdateCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void\n\n /** Custom partial \"update\" function for node rendering which will be triggered after the following events:\n * - Full node update (`nodeUpdateCustomRenderFunction`);\n * - Background click;\n * - Node and Link mouseover and mouseout;\n * - Node brushing,\n * Default: `undefined` */\n @Input() nodePartialUpdateCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void\n\n /** Custom \"exit\" function for node rendering. Default: `undefined` */\n @Input() nodeExitCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void\n\n /** Custom render function that will be called while zooming / panning the graph. Default: `undefined` */\n @Input() nodeOnZoomCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, zoomLevel: number) => void\n\n /** Define the mode for highlighting selected nodes in the graph. Default: `GraphNodeSelectionHighlightMode.GreyoutNonConnected` */\n @Input() nodeSelectionHighlightMode?: GraphNodeSelectionHighlightMode\n\n /** Set selected node by unique id. Default: `undefined` */\n @Input() selectedNodeId?: number | string\n\n /** Set selected nodes by unique id. Default: `undefined` */\n @Input() selectedNodeIds?: number[] | string[]\n\n /** Panels configuration. An array of `GraphPanelConfig` objects. Default: `[]` */\n @Input() panels?: GraphPanelConfig[] | undefined\n\n /** Graph node drag start callback function. Default: `undefined` */\n @Input() onNodeDragStart?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined\n\n /** Graph node drag callback function. Default: `undefined` */\n @Input() onNodeDrag?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined\n\n /** Graph node drag end callback function. Default: `undefined` */\n @Input() onNodeDragEnd?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined\n\n /** Zoom event callback. Default: `undefined` */\n @Input() onZoom?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined, transform: ZoomTransform) => void\n\n /** Zoom start event callback. Default: `undefined` */\n @Input() onZoomStart?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined, transform: ZoomTransform) => void\n\n /** Zoom end event callback. Default: `undefined` */\n @Input() onZoomEnd?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined, transform: ZoomTransform) => void\n\n /** Callback function to be called when the graph layout is calculated. Default: `undefined` */\n @Input() onLayoutCalculated?: (nodes: GraphNode<N, L>[], links: GraphLink<N, L>[]) => void\n\n /** Graph node selection brush callback function. Default: `undefined` */\n @Input() onNodeSelectionBrush?: (selectedNodes: GraphNode<N, L>[], event: D3BrushEvent<SVGGElement> | undefined) => void\n\n /** Graph multiple node drag callback function. Default: `undefined` */\n @Input() onNodeSelectionDrag?: (selectedNodes: GraphNode<N, L>[], event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void\n\n /** Callback function to be called when the graph rendering is complete. Default: `undefined` */\n @Input() onRenderComplete?: (g: Selection<SVGGElement, unknown, null, undefined>, nodes: GraphNode<N, L>[], links: GraphLink<N, L>[], config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number, width: number, height: number) => void\n\n /** Determines whether the component should update when new data is provided.\n * This function takes the previous and new data as parameters and returns a boolean\n * indicating whether the update should proceed. Useful for fine-grained control over\n * update behavior when your data has a complex nested structure.\n * By default the `isEqual` function from Unovis will be used to do the comparison. */\n @Input() shouldDataUpdate?: (prevData: GraphInputData<N, L>, nextData: GraphInputData<N, L>, datamodel: GraphDataModel<N, L, GraphNode<N, L>, GraphLink<N, L>>) => boolean\n @Input() data: { nodes: N[]; links?: L[] }\n\n component: Graph<N, L> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Graph<N, L>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): GraphConfigInterface<N, L> {\n const { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, fitViewPadding, fitViewAlign, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelNodeSpacing, layoutParallelSubGroupSpacing, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkFlowParticleSpeed, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate } = this\n const config = { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, fitViewPadding, fitViewAlign, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelNodeSpacing, layoutParallelSubGroupSpacing, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkFlowParticleSpeed, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate }\n const keys = Object.keys(config) as (keyof GraphConfigInterface<N, L>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisGraphComponent } from './graph.component'\n\n@NgModule({\n imports: [],\n declarations: [VisGraphComponent],\n exports: [VisGraphComponent],\n})\nexport class VisGraphModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n GroupedBar,\n GroupedBarConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n StringAccessor,\n Orientation,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-grouped-bar',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisGroupedBarComponent }],\n})\nexport class VisGroupedBarComponent<Datum> implements GroupedBarConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Bar color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Force set the group width in pixels. Default: `undefined` */\n @Input() groupWidth?: number\n\n /** Maximum group width for dynamic sizing. Limits the groupWidth property from the top. Default: `undefined` */\n @Input() groupMaxWidth?: number\n\n /** Expected step between the bar groups in the X axis units.\n * Needed to correctly calculate the width of the bar groups when there are gaps in the data.\n * Default: `undefined` */\n @Input() dataStep?: number\n\n /** Fractional padding between the groups in the range of [0,1). Default: `0.05` */\n @Input() groupPadding?: number\n\n /** Fractional padding between the bars in the range of [0,1). Default: `0` */\n @Input() barPadding?: number\n\n /** Rounded bar corners. Boolean or number (to set the radius in pixels explicitly). Default: `2` */\n @Input() roundedCorners?: number | boolean\n\n /** Sets the minimum bar height for better visibility of small values. Default: `1` */\n @Input() barMinHeight?: number\n\n /** Configurable bar cursor when hovering over. Default: `null` */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Chart orientation: `Orientation.Vertical` or `Orientation.Horizontal`. Default `Orientation.Vertical` */\n @Input() orientation?: Orientation | string\n @Input() data: Datum[]\n\n component: GroupedBar<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new GroupedBar<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): GroupedBarConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, groupWidth, groupMaxWidth, dataStep, groupPadding, barPadding, roundedCorners, barMinHeight, cursor, orientation } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, groupWidth, groupMaxWidth, dataStep, groupPadding, barPadding, roundedCorners, barMinHeight, cursor, orientation }\n const keys = Object.keys(config) as (keyof GroupedBarConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisGroupedBarComponent } from './grouped-bar.component'\n\n@NgModule({\n imports: [],\n declarations: [VisGroupedBarComponent],\n exports: [VisGroupedBarComponent],\n})\nexport class VisGroupedBarModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Line,\n LineConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n CurveType,\n GenericAccessor,\n StringAccessor,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-line',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisLineComponent }],\n})\nexport class VisLineComponent<Datum> implements LineConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Line color accessor function. The whole data array will be passed as the first argument. Default: `undefined` */\n @Input() color?: ColorAccessor<Datum[]>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Curve type from the CurveType enum. Default: `CurveType.MonotoneX` */\n @Input() curveType?: CurveType\n\n /** Line width in pixels. Default: `2` */\n @Input() lineWidth?: number\n\n /** Line dash array, see SVG's stroke-dasharray. Default: `undefined` */\n @Input() lineDashArray?: GenericAccessor<number[], Datum[]>\n\n /** When a data point has an `undefined`, `NaN`, or other no-data value, they'll be replaced with a value specified here.\n * Setting this property to `undefined` will lead to having the line break when there's no data, and continue when\n * the data appears again. If you set it to `null`, the values will be treated as numerical `0` values and the line\n * won't break; however if the whole dataset consists of only `null`s, the line won't be displayed.\n * Default: `undefined` */\n @Input() fallbackValue?: number | undefined | null\n\n /** Highlight line on hover. Default: `false` */\n @Input() highlightOnHover?: boolean\n\n /** Optional link cursor. Default: `null` */\n @Input() cursor?: StringAccessor<Datum[]>\n\n /** Enable interpolated line where data points are missing or fallbackValue is used.\n * You can customize the line's appearance with `--vis-line-gapfill-stroke-dasharray`\n * and `--vis-line-gapfill-stroke-opacity` CSS variables.\n * Default: `false` */\n @Input() interpolateMissingData?: boolean\n @Input() data: Datum[]\n\n component: Line<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Line<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): LineConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, lineWidth, lineDashArray, fallbackValue, highlightOnHover, cursor, interpolateMissingData } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, lineWidth, lineDashArray, fallbackValue, highlightOnHover, cursor, interpolateMissingData }\n const keys = Object.keys(config) as (keyof LineConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisLineComponent } from './line.component'\n\n@NgModule({\n imports: [],\n declarations: [VisLineComponent],\n exports: [VisLineComponent],\n})\nexport class VisLineModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n NestedDonut,\n NestedDonutConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NestedDonutDirection,\n NumericAccessor,\n NestedDonutSegment,\n StringAccessor,\n GenericAccessor,\n NestedDonutLayerSettings,\n ColorAccessor,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-nested-donut',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisNestedDonutComponent }],\n})\nexport class VisNestedDonutComponent<Datum> implements NestedDonutConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Diagram angle range. Default: `[0, 2 * Math.PI]` */\n @Input() angleRange?: [number, number]\n\n /** Direction of hierarchy flow from root to leaf.\n * `NestedDonutDirection.Inwards` starts from the outer most radius and works towards center\n * `NestedDonutDirection.Outwards` starts from the inner most radius the consecutive layers outward.\n * Default: `NestedDonutDirection.Inwards` */\n @Input() direction?: NestedDonutDirection | string\n\n\n @Input() value?: NumericAccessor<Datum>\n\n /** Central label text. Default: `undefined` */\n @Input() centralLabel?: string\n\n /** Central sub-label accessor function or text. Default: `undefined` */\n @Input() centralSubLabel?: string\n\n /** Enables wrapping for the sub-label. Default: `true` */\n @Input() centralSubLabelWrap?: boolean\n\n /** Show donut background. The color is configurable via\n * the `--vis-nested-donut-background-color` and `--vis-dark-nested-donut-background-color` CSS variables.\n * Default: `false` */\n @Input() showBackground?: boolean\n\n /** Sort function for segments. Default `undefined` */\n @Input() sort?: (a: NestedDonutSegment<Datum>, b: NestedDonutSegment<Datum>) => number\n\n /** Array of accessor functions to defined the nested groups. Default: `[]` */\n @Input() layers: StringAccessor<Datum>[]\n\n /** Configuration properties for individual layers. Accepts an accessor or constant of type:\n * {\n * backgroundColor?: string;\n * labelAlignment?: NestedDonutSegmentLabelAlignment;\n * width?: number | string;\n * } */\n @Input() layerSettings?: GenericAccessor<NestedDonutLayerSettings, number>\n\n\n @Input() layerPadding?: number\n\n /** Corner Radius. Default: `0` */\n @Input() cornerRadius?: number\n\n /** Angular size for empty segments in radians. Default: `Math.PI / 180` */\n @Input() emptySegmentAngle?: number\n\n /** Hide segment labels when they don't fit. Default: `true` */\n @Input() hideOverflowingSegmentLabels?: boolean\n\n /** Color accessor function for segments. Default: `undefined` */\n @Input() segmentColor?: ColorAccessor<NestedDonutSegment<Datum>>\n\n /** Segment label accessor function. Default `undefined` */\n @Input() segmentLabel?: StringAccessor<NestedDonutSegment<Datum>>\n\n /** Color accessor function for segment labels */\n @Input() segmentLabelColor?: ColorAccessor<NestedDonutSegment<Datum>>\n\n /** When true, the component will display empty segments (the ones that have `0` values) as tiny slices.\n * Default: `false` */\n @Input() showEmptySegments?: boolean\n\n /** Show labels for individual segments. Default: `true` */\n @Input() showSegmentLabels?: boolean\n @Input() data: Datum[]\n\n component: NestedDonut<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new NestedDonut<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): NestedDonutConfigInterface<Datum> {\n const { duration, events, attributes, angleRange, direction, value, centralLabel, centralSubLabel, centralSubLabelWrap, showBackground, sort, layers, layerSettings, layerPadding, cornerRadius, emptySegmentAngle, hideOverflowingSegmentLabels, segmentColor, segmentLabel, segmentLabelColor, showEmptySegments, showSegmentLabels } = this\n const config = { duration, events, attributes, angleRange, direction, value, centralLabel, centralSubLabel, centralSubLabelWrap, showBackground, sort, layers, layerSettings, layerPadding, cornerRadius, emptySegmentAngle, hideOverflowingSegmentLabels, segmentColor, segmentLabel, segmentLabelColor, showEmptySegments, showSegmentLabels }\n const keys = Object.keys(config) as (keyof NestedDonutConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisNestedDonutComponent } from './nested-donut.component'\n\n@NgModule({\n imports: [],\n declarations: [VisNestedDonutComponent],\n exports: [VisNestedDonutComponent],\n})\nexport class VisNestedDonutModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Plotline,\n PlotlineConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n AxisType,\n PlotlineLineStylePresets,\n PlotlineLabelPosition,\n PlotlineLabelOrientation,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-plotline',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisPlotlineComponent }],\n})\nexport class VisPlotlineComponent<Datum> implements PlotlineConfigInterface<Datum>, AfterViewInit {\n /** Duration of the animation in milliseconds. */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Line width in pixels.\n * Uses CSS variable: `--vis-plotline-width`. */\n @Input() lineWidth?: number\n\n /** Plotline direction type.\n * Should be either `AxisType.X` or `AxisType.Y`. */\n @Input() axis?: AxisType | string\n\n /** Value to draw the plotline at. */\n @Input() value?: number | null | undefined\n\n /** Line style of the plotline.\n * Can be a named preset or an array of numbers representing `stroke-dasharray`.\n * Uses CSS variable: `--vis-plotline-dasharray`. */\n @Input() lineStyle?: PlotlineLineStylePresets | number[]\n\n /** Label text to display on the plotline. */\n @Input() labelText?: string\n\n /** Position of the label relative to the plotline. */\n @Input() labelPosition?: PlotlineLabelPosition\n\n /** Horizontal offset of the label in pixels. */\n @Input() labelOffsetX?: number\n\n /** Vertical offset of the label in pixels. */\n @Input() labelOffsetY?: number\n\n /** Orientation of the label: horizontal or vertical. */\n @Input() labelOrientation?: PlotlineLabelOrientation\n\n /** Color of the label text.\n * Uses CSS variable: `--vis-plotline-label-color`. */\n @Input() labelColor?: string\n\n /** Font size of the label text in pixels.\n * Uses CSS variable: `--vis-plotline-label-font-size`. */\n @Input() labelSize?: number\n\n component: Plotline<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Plotline<Datum>(this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): PlotlineConfigInterface<Datum> {\n const { duration, events, attributes, lineWidth, axis, value, lineStyle, labelText, labelPosition, labelOffsetX, labelOffsetY, labelOrientation, labelColor, labelSize } = this\n const config = { duration, events, attributes, lineWidth, axis, value, lineStyle, labelText, labelPosition, labelOffsetX, labelOffsetY, labelOrientation, labelColor, labelSize }\n const keys = Object.keys(config) as (keyof PlotlineConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisPlotlineComponent } from './plotline.component'\n\n@NgModule({\n imports: [],\n declarations: [VisPlotlineComponent],\n exports: [VisPlotlineComponent],\n})\nexport class VisPlotlineModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Sankey,\n SankeyConfigInterface,\n ContainerCore,\n SankeyInputNode,\n SankeyInputLink,\n VisEventType,\n VisEventCallback,\n SankeyExitTransitionType,\n SankeyEnterTransitionType,\n SankeyNode,\n SankeyLink,\n SankeyNodeAlign,\n StringAccessor,\n ColorAccessor,\n NumericAccessor,\n GenericAccessor,\n Position,\n VerticalAlign,\n FitMode,\n TrimMode,\n SankeySubLabelPlacement,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-sankey',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisSankeyComponent }],\n})\nexport class VisSankeyComponent<N extends SankeyInputNode, L extends SankeyInputLink> implements SankeyConfigInterface<N, L>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Node / Link id accessor function. Used for mapping of data updates to corresponding SVG objects. Default: `(d, i) => d.id ?? i.toString()` */\n @Input() id?: (d: SankeyInputNode | SankeyInputLink, i: number, ...rest) => string\n\n /** Coefficient to scale the height of the diagram when the amount of links is low: `C * links.length`, clamped to `[height / 2, height]`. Default: `1/16` */\n @Input() heightNormalizationCoeff?: number\n\n /** Type of animation on removing nodes. Default: `ExitTransitionType.Default` */\n @Input() exitTransitionType?: SankeyExitTransitionType\n\n /** Type of animation on creating nodes. Default: `EnterTransitionType.Default` */\n @Input() enterTransitionType?: SankeyEnterTransitionType\n\n /** Highlight the corresponding subtree on node / link hover. Default: `false` */\n @Input() highlightSubtreeOnHover?: boolean\n\n /** Highlight animation duration, ms. Default: `400` */\n @Input() highlightDuration?: number\n\n /** Highlight delay, ms. Default: `1000` */\n @Input() highlightDelay?: number\n\n /** Sankey algorithm iterations. Default: `32` */\n @Input() iterations?: number\n\n /** Sankey node sorting function. Default: `undefined`.\n * Node sorting is applied to nodes in one layer (column). Layer by layer.\n * Options: `undefined` - the order is determined by the layout;\n * `null` - the order is fixed by the input;\n * sort function - the order is determined by the function. */\n @Input() nodeSort?: ((node1: SankeyNode<N, L>, node2: SankeyNode<N, L>) => number) | null | undefined\n\n /** Sankey link sorting function. Default: `(link2, link1) => link1.value - link2.value`.\n * Link sorting is applied to the source (exiting) links within one node.\n * Options: `undefined` - the order is determined by the layout;\n * `null` - the order is fixed by the input;\n * sort function - the order is determined by the function. */\n @Input() linkSort?: ((link1: SankeyLink<N, L>, link2: SankeyLink<N, L>) => number) | null | undefined\n\n /** Sankey node width in pixels */\n @Input() nodeWidth?: number\n\n /** Sankey node alignment method */\n @Input() nodeAlign?: SankeyNodeAlign\n\n /** Horizontal space between the nodes. Extended Sizing property only. Default: `150` */\n @Input() nodeHorizontalSpacing?: number\n\n /** Minimum node height. Extended Sizing property only. Default: `20` */\n @Input() nodeMinHeight?: number\n\n /** Maximum node height. Extended Sizing property only. Default: `100` */\n @Input() nodeMaxHeight?: number\n\n /** Sankey vertical separation between nodes in pixels. Default: `2` */\n @Input() nodePadding?: number\n\n /** Display the graph when data has just one element */\n @Input() showSingleNode?: boolean\n\n /** Node cursor on hover. Default: `undefined` */\n @Input() nodeCursor?: StringAccessor<SankeyNode<N, L>>\n\n /** Node icon accessor function or value. Default: `undefined` */\n @Input() nodeIcon?: StringAccessor<SankeyNode<N, L>>\n\n /** Node color accessor function or value. Default: `undefined` */\n @Input() nodeColor?: ColorAccessor<SankeyNode<N, L>>\n\n /** Node `fixedValue` accessor function or constant. It defines the node value that will be used to calculate\n * the height of the nodes by d3-sankey (by default the height will be based on aggregated `linkValue`).\n * Default: `n => n.fixedValue` */\n @Input() nodeFixedValue?: NumericAccessor<N>\n\n /** Icon color accessor function or value. Default: `undefined` */\n @Input() nodeIconColor?: ColorAccessor<SankeyNode<N, L>>\n\n /** Link color accessor function or value. Default: `l => l.color` */\n @Input() linkColor?: StringAccessor<SankeyLink<N, L>>\n\n /** Link flow accessor function or value. Default: `l => l.value` */\n @Input() linkValue?: NumericAccessor<L>\n\n /** Link cursor on hover. Default: `undefined` */\n @Input() linkCursor?: StringAccessor<SankeyLink<N, L>>\n\n /** Node label accessor function or value. Default: `n => n.label` */\n @Input() label?: StringAccessor<SankeyNode<N, L>>\n\n /** Node sub-label accessor function or value. Default: `undefined` */\n @Input() subLabel?: StringAccessor<SankeyNode<N, L>>\n\n /** Label position relative to the Node. Default: `Position.AUTO` */\n @Input() labelPosition?: GenericAccessor<Position.Auto | Position.Left | Position.Right | string, SankeyNode<N, L>>\n\n /** Label vertical alignment */\n @Input() labelVerticalAlign?: VerticalAlign | string\n\n /** Label background */\n @Input() labelBackground?: boolean\n\n /** Label fit mode (wrap or trim). Default: `FitMode.TRIM` * */\n @Input() labelFit?: FitMode\n\n /** Maximum label with in pixels. Default: `70` */\n @Input() labelMaxWidth?: number\n\n /** Expand trimmed label on hover. Default: `true` */\n @Input() labelExpandTrimmedOnHover?: boolean\n\n /** Label trimming mode. Default: `TrimMode.Middle` */\n @Input() labelTrimMode?: TrimMode\n\n /** Label font size in pixels. If not provided, the value of CSS variable `--vis-sankey-node-label-font-size` will be used. Default: `undefined` */\n @Input() labelFontSize?: number\n\n /** Label text separators for wrapping. Default: `[' ', '-']` */\n @Input() labelTextSeparator?: string[]\n\n /** Force break words to fit long labels. Default: `true` */\n @Input() labelForceWordBreak?: boolean\n\n /** Label color. Default: `undefined` */\n @Input() labelColor?: ColorAccessor<SankeyNode<N, L>>\n\n /** Label cursor on hover. Default: `undefined` */\n @Input() labelCursor?: StringAccessor<SankeyNode<N, L>>\n\n /** Custom function to set the label visibility. Default: `undefined` */\n @Input() labelVisibility?: ((d: SankeyNode<N, L>, bbox: {\n x: number;\n y: number;\n width: number;\n height: number;\n }, hovered: boolean) => boolean) | undefined\n\n /** Sub-label font size in pixels. If not provided, the value of CSS variable `--vis-sankey-node-sublabel-font-size` will be used. Default: `undefined` */\n @Input() subLabelFontSize?: number\n\n /** Sub-label color. Default: `undefined` */\n @Input() subLabelColor?: ColorAccessor<SankeyNode<N, L>>\n\n /** Sub-label position. Default: `SankeySubLabelPlacement.Below` */\n @Input() subLabelPlacement?: SankeySubLabelPlacement | string\n\n /** Sub-label to label width ratio when `subLabelPlacement` is set to `SankeySubLabelPlacement.Inline`\n * Default: `0.4`, which means that 40% of `labelMaxWidth` will be given to sub-label, and 60% to the main label. */\n @Input() subLabelToLabelInlineWidthRatio?: number\n @Input() data: { nodes: N[]; links?: L[] }\n\n component: Sankey<N, L> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Sankey<N, L>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): SankeyConfigInterface<N, L> {\n const { duration, events, attributes, id, heightNormalizationCoeff, exitTransitionType, enterTransitionType, highlightSubtreeOnHover, highlightDuration, highlightDelay, iterations, nodeSort, linkSort, nodeWidth, nodeAlign, nodeHorizontalSpacing, nodeMinHeight, nodeMaxHeight, nodePadding, showSingleNode, nodeCursor, nodeIcon, nodeColor, nodeFixedValue, nodeIconColor, linkColor, linkValue, linkCursor, label, subLabel, labelPosition, labelVerticalAlign, labelBackground, labelFit, labelMaxWidth, labelExpandTrimmedOnHover, labelTrimMode, labelFontSize, labelTextSeparator, labelForceWordBreak, labelColor, labelCursor, labelVisibility, subLabelFontSize, subLabelColor, subLabelPlacement, subLabelToLabelInlineWidthRatio } = this\n const config = { duration, events, attributes, id, heightNormalizationCoeff, exitTransitionType, enterTransitionType, highlightSubtreeOnHover, highlightDuration, highlightDelay, iterations, nodeSort, linkSort, nodeWidth, nodeAlign, nodeHorizontalSpacing, nodeMinHeight, nodeMaxHeight, nodePadding, showSingleNode, nodeCursor, nodeIcon, nodeColor, nodeFixedValue, nodeIconColor, linkColor, linkValue, linkCursor, label, subLabel, labelPosition, labelVerticalAlign, labelBackground, labelFit, labelMaxWidth, labelExpandTrimmedOnHover, labelTrimMode, labelFontSize, labelTextSeparator, labelForceWordBreak, labelColor, labelCursor, labelVisibility, subLabelFontSize, subLabelColor, subLabelPlacement, subLabelToLabelInlineWidthRatio }\n const keys = Object.keys(config) as (keyof SankeyConfigInterface<N, L>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisSankeyComponent } from './sankey.component'\n\n@NgModule({\n imports: [],\n declarations: [VisSankeyComponent],\n exports: [VisSankeyComponent],\n})\nexport class VisSankeyModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Scatter,\n ScatterConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n SymbolType,\n StringAccessor,\n GenericAccessor,\n Position,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-scatter',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisScatterComponent }],\n})\nexport class VisScatterComponent<Datum> implements ScatterConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Point color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Size of the scatter plot marker (e.g. diameter if `SymbolType.Circle` is used for `shape`) in pixels.\n * Can be a constant value or an accessor function. But if `sizeRange` is set, then the values will be treated\n * as an input to `sizeScale`, and the resulting size will be different.\n * Default: `10` */\n @Input() size?: NumericAccessor<Datum>\n\n /** Size scale to be used if the `sizeRange` was set. Default: `Scale.scaleSqrt()` */\n @Input() sizeScale?: ContinuousScale\n\n /** Size range in the format of `[number, number]` to rescale the input values. Default: `undefined` */\n @Input() sizeRange?: [number, number]\n\n /** Shape of the scatter point. Accessor function or constant value: `SymbolType.Circle`, `SymbolType.Cross`, `SymbolType.Diamond`, `SymbolType.Square`,\n * `SymbolType.Star`, `SymbolType.Triangle` or `SymbolType.Wye`.\n * Default: `SymbolType.Circle` */\n @Input() shape?: ((d: Datum, i?: number, ...rest) => (SymbolType | string)) | SymbolType | string\n\n /** Label accessor function or string. Default: `undefined` */\n @Input() label?: StringAccessor<Datum>\n\n /** Label color. Default: `undefined` */\n @Input() labelColor?: ColorAccessor<Datum>\n\n /** Hide overlapping labels. Default: `true` */\n @Input() labelHideOverlapping?: boolean\n\n /** Optional point cursor. Default: `null` */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Point color brightness ratio for switching between dark and light text label color. Default: `0.65` */\n @Input() labelTextBrightnessRatio?: number\n\n /** Label position. Default: `Position.Bottom` */\n @Input() labelPosition?: GenericAccessor<Position | string, Datum>\n\n /** Point stroke color. Default: `undefined` */\n @Input() strokeColor?: ColorAccessor<Datum>\n\n /** Point stroke width. Default: `undefined` */\n @Input() strokeWidth?: NumericAccessor<Datum>\n @Input() data: Datum[]\n\n component: Scatter<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Scatter<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): ScatterConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, size, sizeScale, sizeRange, shape, label, labelColor, labelHideOverlapping, cursor, labelTextBrightnessRatio, labelPosition, strokeColor, strokeWidth } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, size, sizeScale, sizeRange, shape, label, labelColor, labelHideOverlapping, cursor, labelTextBrightnessRatio, labelPosition, strokeColor, strokeWidth }\n const keys = Object.keys(config) as (keyof ScatterConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisScatterComponent } from './scatter.component'\n\n@NgModule({\n imports: [],\n declarations: [VisScatterComponent],\n exports: [VisScatterComponent],\n})\nexport class VisScatterModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n StackedBar,\n StackedBarConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n StringAccessor,\n Orientation,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-stacked-bar',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisStackedBarComponent }],\n})\nexport class VisStackedBarComponent<Datum> implements StackedBarConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Bar color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Force set bar width in pixels. Default: `undefined` */\n @Input() barWidth?: number\n\n /** Maximum bar width for dynamic sizing. Default: `undefined` */\n @Input() barMaxWidth?: number\n\n /** Expected step between the bars in the X axis units.\n * Needed to correctly calculate the width of the bars when there are gaps in the data.\n * Default: `undefined` */\n @Input() dataStep?: number\n\n /** Fractional padding between the bars in the range of [0,1). Default: `0` */\n @Input() barPadding?: number\n\n /** Rounded corners for top bars. Boolean or number (to set the radius in pixels). Default: `2` */\n @Input() roundedCorners?: number | boolean\n\n /** Configurable bar cursor when hovering over. Default: `null` */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Sets the minimum bar height to 1 pixel for better visibility of small values. Default: `false` */\n @Input() barMinHeight1Px?: boolean\n\n /** Base value to test data existence when `barMinHeight1Px` is set to `true`.\n * Everything equal to barMinHeightZeroValue will not be rendered on the chart.\n * Default: `null` */\n @Input() barMinHeightZeroValue?: any\n\n /** Chart orientation: `Orientation.Vertical` or `Orientation.Horizontal`. Default `Orientation.Vertical` */\n @Input() orientation?: Orientation | string\n @Input() data: Datum[]\n\n component: StackedBar<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new StackedBar<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): StackedBarConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, barWidth, barMaxWidth, dataStep, barPadding, roundedCorners, cursor, barMinHeight1Px, barMinHeightZeroValue, orientation } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, barWidth, barMaxWidth, dataStep, barPadding, roundedCorners, cursor, barMinHeight1Px, barMinHeightZeroValue, orientation }\n const keys = Object.keys(config) as (keyof StackedBarConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisStackedBarComponent } from './stacked-bar.component'\n\n@NgModule({\n imports: [],\n declarations: [VisStackedBarComponent],\n exports: [VisStackedBarComponent],\n})\nexport class VisStackedBarModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Timeline,\n TimelineConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n StringAccessor,\n GenericAccessor,\n Arrangement,\n TimelineRowLabel,\n TimelineRowIcon,\n TextAlign,\n TimelineArrow,\n TimelineLineRenderState,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-timeline',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisTimelineComponent }],\n})\nexport class VisTimelineComponent<Datum> implements TimelineConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Timeline item color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** */\n @Input() type?: StringAccessor<Datum>\n\n /** */\n @Input() length?: NumericAccessor<Datum>\n\n /** */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Timeline item row accessor function. Records with the `lineRow` will be plotted in one row. Default: `undefined` */\n @Input() lineRow?: StringAccessor<Datum>\n\n /** Timeline item duration accessor function. Default: `undefined`. Falls back to the deprecated `length` property */\n @Input() lineDuration?: NumericAccessor<Datum>\n\n /** Width of the timeline items. Default: `8` */\n @Input() lineWidth?: NumericAccessor<Datum>\n\n /** Display rounded ends for timeline items. Default: `true` */\n @Input() lineCap?: boolean\n\n /** Provide a href to an SVG defined in container's `svgDefs` to display an icon at the start of the line. Default: undefined */\n @Input() lineStartIcon?: StringAccessor<Datum>\n\n /** Line start icon color accessor function. Default: `undefined` */\n @Input() lineStartIconColor?: StringAccessor<Datum>\n\n /** Line start icon size accessor function. Default: `undefined` */\n @Input() lineStartIconSize?: NumericAccessor<Datum>\n\n /** Line start icon arrangement configuration. Controls how the icon is positioned relative to the line.\n * Accepts values from the Arrangement enum: `Arrangement.Start`, `Arrangement.Middle`, `Arrangement.End` or a string equivalent.\n * Default: `Arrangement.Inside` */\n @Input() lineStartIconArrangement?: GenericAccessor<Arrangement | any, Datum>\n\n /** Provide a href to an SVG defined in container's `svgDefs` to display an icon at the end of the line. Default: undefined */\n @Input() lineEndIcon?: StringAccessor<Datum>\n\n /** Line end icon color accessor function. Default: `undefined` */\n @Input() lineEndIconColor?: StringAccessor<Datum>\n\n /** Line end icon size accessor function. Default: `undefined` */\n @Input() lineEndIconSize?: NumericAccessor<Datum>\n\n /** Line end icon arrangement configuration. Controls how the icon is positioned relative to the line.\n * Accepts values from the Arrangement enum: `Arrangement.Start`, `Arrangement.Middle`, `Arrangement.End` or a string equivalent.\n * Default: `Arrangement.Inside` */\n @Input() lineEndIconArrangement?: GenericAccessor<Arrangement | any, Datum>\n\n /** Configurable Timeline item cursor when hovering over. Default: `undefined` */\n @Input() lineCursor?: StringAccessor<Datum>\n\n /** Sets the minimum line length to 1 pixel for better visibility of small values.\n * When `lineCap` is set to `true`, the segment will be rendered as a circle.\n * Default: `false` */\n @Input() showEmptySegments?: boolean\n\n /** Center small segments when `showEmptySegments` and `lineCap` are set to `true`.\n * Default: `true` */\n @Input() showEmptySegmentsCorrectPosition?: boolean\n\n /** Timeline row height. Default: `22` */\n @Input() rowHeight?: number\n\n /** Alternating row colors. Default: `true` */\n @Input() alternatingRowColors?: boolean\n\n /** */\n @Input() showLabels?: boolean\n\n /** */\n @Input() labelWidth?: number\n\n /** */\n @Input() maxLabelWidth?: number\n\n /** Show row labels when set to `true`. Default: `false`. Falls back to deprecated `showLabels` */\n @Input() showRowLabels?: boolean\n\n /** Row label style as an object with the `{ [property-name]: value }` format. Default: `undefined` */\n @Input() rowLabelStyle?: GenericAccessor<Record<string, string>, TimelineRowLabel<Datum>>\n\n /** Row label formatter function. Default: `undefined` */\n @Input() rowLabelFormatter?: (key: string, items: Datum[], i: number) => string\n\n /** Provide an icon href to be displayed before the row label. Default: `undefined` */\n @Input() rowIcon?: (key: string, items: Datum[], i: number) => TimelineRowIcon | undefined\n\n /** Fixed label width in pixels. Labels longer than the specified value will be trimmed. Default: `undefined`. Falls back to deprecated `labelWidth`. */\n @Input() rowLabelWidth?: number\n\n /** Maximum label width in pixels. Labels longer than the specified value will be trimmed. Default: `undefined`. Falls back to deprecated `maxLabelWidth`. */\n @Input() rowMaxLabelWidth?: number\n\n /** Text alignment for labels: `TextAlign.Left`, `TextAlign.Center` or `TextAlign.Right`. Default: `TextAlign.Right` */\n @Input() rowLabelTextAlign?: TextAlign | any\n\n\n @Input() arrows?: TimelineArrow[]\n\n /** Control the animation by specify the initial position for new lines as [x, y]. Default: `undefined` */\n @Input() animationLineEnterPosition?: [number | undefined | null, number | undefined | null] | ((d: Datum & TimelineLineRenderState, i: number, data: (Datum & TimelineLineRenderState)[]) => [number | undefined, number | undefined]) | undefined\n\n /** Control the animation by specify the destination position for exiting lines as [x, y]. Default: `undefined` */\n @Input() animationLineExitPosition?: [number | undefined | null, number | undefined | null] | ((d: Datum & TimelineLineRenderState, i: number, data: (Datum & TimelineLineRenderState)[]) => [number | undefined, number | undefined]) | undefined\n\n /** Scrolling callback function: `(scrollTop: number) => void`. Default: `undefined` */\n @Input() onScroll?: (scrollTop: number) => void\n @Input() data: Datum[]\n\n component: Timeline<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Timeline<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): TimelineConfigInterface<Datum> {\n const { duration, events, attributes, x, id, color, xScale, yScale, excludeFromDomainCalculation, type, length, cursor, lineRow, lineDuration, lineWidth, lineCap, lineStartIcon, lineStartIconColor, lineStartIconSize, lineStartIconArrangement, lineEndIcon, lineEndIconColor, lineEndIconSize, lineEndIconArrangement, lineCursor, showEmptySegments, showEmptySegmentsCorrectPosition, rowHeight, alternatingRowColors, showLabels, labelWidth, maxLabelWidth, showRowLabels, rowLabelStyle, rowLabelFormatter, rowIcon, rowLabelWidth, rowMaxLabelWidth, rowLabelTextAlign, arrows, animationLineEnterPosition, animationLineExitPosition, onScroll } = this\n const config = { duration, events, attributes, x, id, color, xScale, yScale, excludeFromDomainCalculation, type, length, cursor, lineRow, lineDuration, lineWidth, lineCap, lineStartIcon, lineStartIconColor, lineStartIconSize, lineStartIconArrangement, lineEndIcon, lineEndIconColor, lineEndIconSize, lineEndIconArrangement, lineCursor, showEmptySegments, showEmptySegmentsCorrectPosition, rowHeight, alternatingRowColors, showLabels, labelWidth, maxLabelWidth, showRowLabels, rowLabelStyle, rowLabelFormatter, rowIcon, rowLabelWidth, rowMaxLabelWidth, rowLabelTextAlign, arrows, animationLineEnterPosition, animationLineExitPosition, onScroll }\n const keys = Object.keys(config) as (keyof TimelineConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisTimelineComponent } from './timeline.component'\n\n@NgModule({\n imports: [],\n declarations: [VisTimelineComponent],\n exports: [VisTimelineComponent],\n})\nexport class VisTimelineModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n XYLabels,\n XYLabelsConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n GenericAccessor,\n XYLabelPositioning,\n StringAccessor,\n XYLabel,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-xy-labels',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisXYLabelsComponent }],\n})\nexport class VisXYLabelsComponent<Datum> implements XYLabelsConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** Single Y accessor function. Default: `undefined` */\n @Input() y: NumericAccessor<Datum>\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Label color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Defines how to position the label horizontally: in data space or in screen space. Default: `XYLabelPositioning.DataSpace` */\n @Input() xPositioning?: GenericAccessor<XYLabelPositioning | string, Datum>\n\n /** Defines how to position the label vertically: in data space or in screen space. Default: `XYLabelPositioning.DataSpace` */\n @Input() yPositioning?: GenericAccessor<XYLabelPositioning | string, Datum>\n\n /** Font size accessor function or constant value in pixels. If not provided, the value of CSS variable `--vis-xy-label-font-size` will be used. Default: `undefined` */\n @Input() labelFontSize?: NumericAccessor<Datum>\n\n /** Label accessor function or string. Default: `undefined` */\n @Input() label?: StringAccessor<Datum>\n\n /** Label color. Default: `undefined` */\n @Input() backgroundColor?: ColorAccessor<Datum>\n\n /** Optional label cursor. Default: `null` */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Label color brightness ratio for switching between dark and light text label color. Default: `0.65` */\n @Input() labelTextBrightnessRatio?: number\n\n /** Enable label clustering. Default: `true` */\n @Input() clustering?: boolean\n\n /** Label accessor for clusters. Default: `undefined` */\n @Input() clusterLabel?: StringAccessor<XYLabel<Datum>[]>\n\n /** Font size accessor for clusters, the value is in pixels. If not provided, the value of CSS variable `--vis-xy-label-cluster-font-size` will be used. Default: `undefined` */\n @Input() clusterFontSize?: NumericAccessor<XYLabel<Datum>[]>\n\n /** Background color accessor for clusters. Default: `undefined` */\n @Input() clusterBackgroundColor?: ColorAccessor<XYLabel<Datum>[]>\n\n /** Optional cluster cursor. Default: `null` */\n @Input() clusterCursor?: StringAccessor<XYLabel<Datum>[]>\n\n /** Cluster label color accessor function. Default: `null` */\n @Input() clusterLabelColor?: ColorAccessor<XYLabel<Datum>[]>\n @Input() data: Datum[]\n\n component: XYLabels<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new XYLabels<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): XYLabelsConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, xPositioning, yPositioning, labelFontSize, label, backgroundColor, cursor, labelTextBrightnessRatio, clustering, clusterLabel, clusterFontSize, clusterBackgroundColor, clusterCursor, clusterLabelColor } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, xPositioning, yPositioning, labelFontSize, label, backgroundColor, cursor, labelTextBrightnessRatio, clustering, clusterLabel, clusterFontSize, clusterBackgroundColor, clusterCursor, clusterLabelColor }\n const keys = Object.keys(config) as (keyof XYLabelsConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisXYLabelsComponent } from './xy-labels.component'\n\n@NgModule({\n imports: [],\n declarations: [VisXYLabelsComponent],\n exports: [VisXYLabelsComponent],\n})\nexport class VisXYLabelsModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n TopoJSONMap,\n TopoJSONMapConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n StringAccessor,\n MapPointLabelPosition,\n} from '@unovis/ts'\nimport { GeoProjection } from 'd3-geo'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-topojson-map',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisTopoJSONMapComponent }],\n})\nexport class VisTopoJSONMapComponent<AreaDatum, PointDatum, LinkDatum> implements TopoJSONMapConfigInterface<AreaDatum, PointDatum, LinkDatum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** MapProjection (aka D3's GeoProjection) instance. Default: `MapProjection.Kavrayskiy7()` */\n @Input() projection?: GeoProjection\n\n /** Map data in the TopoJSON topology format. Default: `undefined` */\n @Input() topojson?: TopoJSON.Topology\n\n /** Name of the map features to be displayed, e.g. 'countries' or 'counties'. Default: `countries` */\n @Input() mapFeatureName?: string\n\n /** Set initial map fit to points instead of topojson features. Default: `false` */\n @Input() mapFitToPoints?: boolean\n\n /** Initial zoom level. Default: `undefined` */\n @Input() zoomFactor?: number\n\n /** Disable pan / zoom interactions. Default: `false` */\n @Input() disableZoom?: boolean\n\n /** Zoom extent. Default: `[0.5, 6]` */\n @Input() zoomExtent?: number[]\n\n /** Zoom animation duration. Default: `400` */\n @Input() zoomDuration?: number\n\n /** Link width value or accessor function. Default: `d => d.width ?? 1` */\n @Input() linkWidth?: NumericAccessor<LinkDatum>\n\n /** Link color value or accessor function. Default: `d => d.color ?? null` */\n @Input() linkColor?: ColorAccessor<LinkDatum>\n\n /** Link cursor value or accessor function. Default: `null` */\n @Input() linkCursor?: StringAccessor<LinkDatum>\n\n /** Link id accessor function. Default: `d => d.id` */\n @Input() linkId?: StringAccessor<LinkDatum>\n\n /** Link source accessor function. Default: `d => d.source` */\n @Input() linkSource?: ((l: LinkDatum) => number | string | PointDatum)\n\n /** Link target accessor function. Default: `d => d.target` */\n @Input() linkTarget?: ((l: LinkDatum) => number | string | PointDatum)\n\n /** Area id accessor function corresponding to the feature id from TopoJSON. Default: `d => d.id ?? ''` */\n @Input() areaId?: StringAccessor<AreaDatum>\n\n /** Area color value or accessor function. Default: `d => d.color ?? null` */\n @Input() areaColor?: ColorAccessor<AreaDatum>\n\n /** Area cursor value or accessor function. Default: `null` */\n @Input() areaCursor?: StringAccessor<AreaDatum>\n\n /** Point color accessor. Default: `d => d.color ?? null` */\n @Input() pointColor?: ColorAccessor<PointDatum>\n\n /** Point radius accessor. Default: `d => d.radius ?? 8` */\n @Input() pointRadius?: NumericAccessor<PointDatum>\n\n /** Point stroke width accessor. Default: `d => d.strokeWidth ?? null` */\n @Input() pointStrokeWidth?: NumericAccessor<PointDatum>\n\n /** Point cursor constant value or accessor function. Default: `null` */\n @Input() pointCursor?: StringAccessor<PointDatum>\n\n /** Point longitude accessor function. Default: `d => d.longitude ?? null` */\n @Input() longitude?: NumericAccessor<PointDatum>\n\n /** Point latitude accessor function. Default: `d => d.latitude ?? null` */\n @Input() latitude?: NumericAccessor<PointDatum>\n\n /** Point label accessor function. Default: `undefined` */\n @Input() pointLabel?: StringAccessor<PointDatum>\n\n /** Point label position. Default: `Position.Bottom` */\n @Input() pointLabelPosition?: MapPointLabelPosition\n\n /** Point color brightness ratio for switching between dark and light text label color. Default: `0.65` */\n @Input() pointLabelTextBrightnessRatio?: number\n\n /** Point id accessor function. Default: `d => d.id` */\n @Input() pointId?: ((d: PointDatum, i: number) => string)\n\n /** Enables blur and blending between neighbouring points. Default: `false` */\n @Input() heatmapMode?: boolean\n\n /** Heatmap blur filter stdDeviation value. Default: `10` */\n @Input() heatmapModeBlurStdDeviation?: number\n\n /** Zoom level at which the heatmap mode will be disabled. Default: `2.5` */\n @Input() heatmapModeZoomLevelThreshold?: number\n @Input() data: {areas?: AreaDatum[]; points?: PointDatum[]; links?: LinkDatum[]}\n\n component: TopoJSONMap<AreaDatum, PointDatum, LinkDatum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new TopoJSONMap<AreaDatum, PointDatum, LinkDatum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): TopoJSONMapConfigInterface<AreaDatum, PointDatum, LinkDatum> {\n const { duration, events, attributes, projection, topojson, mapFeatureName, mapFitToPoints, zoomFactor, disableZoom, zoomExtent, zoomDuration, linkWidth, linkColor, linkCursor, linkId, linkSource, linkTarget, areaId, areaColor, areaCursor, pointColor, pointRadius, pointStrokeWidth, pointCursor, longitude, latitude, pointLabel, pointLabelPosition, pointLabelTextBrightnessRatio, pointId, heatmapMode, heatmapModeBlurStdDeviation, heatmapModeZoomLevelThreshold } = this\n const config = { duration, events, attributes, projection, topojson, mapFeatureName, mapFitToPoints, zoomFactor, disableZoom, zoomExtent, zoomDuration, linkWidth, linkColor, linkCursor, linkId, linkSource, linkTarget, areaId, areaColor, areaCursor, pointColor, pointRadius, pointStrokeWidth, pointCursor, longitude, latitude, pointLabel, pointLabelPosition, pointLabelTextBrightnessRatio, pointId, heatmapMode, heatmapModeBlurStdDeviation, heatmapModeZoomLevelThreshold }\n const keys = Object.keys(config) as (keyof TopoJSONMapConfigInterface<AreaDatum, PointDatum, LinkDatum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisTopoJSONMapComponent } from './topojson-map.component'\n\n@NgModule({\n imports: [],\n declarations: [VisTopoJSONMapComponent],\n exports: [VisTopoJSONMapComponent],\n})\nexport class VisTopoJSONMapModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Plotband,\n PlotbandConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n AxisType,\n PlotbandLabelPosition,\n PlotbandLabelOrientation,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-plotband',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisPlotbandComponent }],\n})\nexport class VisPlotbandComponent<Datum> implements PlotbandConfigInterface<Datum>, AfterViewInit {\n /** Duration of the animation in milliseconds. */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Axis to draw the plotband on. */\n @Input() axis?: AxisType\n\n /** Start coordinate for the plotband. */\n @Input() from?: number | null | undefined\n\n /** End coordinate for the plotband. */\n @Input() to?: number | null | undefined\n\n /** Optional text to display on the plotband */\n @Input() labelText?: string\n\n /** Position of the label relative to the plotband area (e.g., 'top-left-outside').\n * Can be customized with a string. */\n @Input() labelPosition?: PlotbandLabelPosition\n\n /** Horizontal offset (in pixels) for positioning the label. */\n @Input() labelOffsetX?: number\n\n /** Vertical offset (in pixels) for positioning the label. */\n @Input() labelOffsetY?: number\n\n /** Orientation of the label text. */\n @Input() labelOrientation?: PlotbandLabelOrientation\n\n /** Optional color for the label text */\n @Input() labelColor?: string\n\n /** Font size (in pixels) for the label text.\n * Uses the CSS variable `--vis-plotband-label-font-size` by default, which resolves to `12px`. */\n @Input() labelSize?: number\n\n component: Plotband<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Plotband<Datum>(this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): PlotbandConfigInterface<Datum> {\n const { duration, events, attributes, axis, from, to, labelText, labelPosition, labelOffsetX, labelOffsetY, labelOrientation, labelColor, labelSize } = this\n const config = { duration, events, attributes, axis, from, to, labelText, labelPosition, labelOffsetX, labelOffsetY, labelOrientation, labelColor, labelSize }\n const keys = Object.keys(config) as (keyof PlotbandConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisPlotbandComponent } from './plotband.component'\n\n@NgModule({\n imports: [],\n declarations: [VisPlotbandComponent],\n exports: [VisPlotbandComponent],\n})\nexport class VisPlotbandModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges, ViewChild, ElementRef } from '@angular/core'\nimport {\n LeafletMap,\n LeafletMapConfigInterface,\n GenericDataRecord,\n VisEventType,\n VisEventCallback,\n Bounds,\n MapLibreStyleSpecs,\n LeafletMapRenderer,\n MapZoomState,\n NumericAccessor,\n StringAccessor,\n GenericAccessor,\n LeafletMapPointShape,\n ColorAccessor,\n LeafletMapPointDatum,\n LeafletMapClusterDatum,\n LeafletMapPointStyles,\n Tooltip,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-leaflet-map',\n template: '<div #container class=\"leaflet-map-container\"></div>',\n styles: ['.leaflet-map-container { width: 100%; height: 100%; position: relative }'],\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisLeafletMapComponent }],\n})\nexport class VisLeafletMapComponent<Datum extends GenericDataRecord> implements LeafletMapConfigInterface<Datum>, AfterViewInit {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Width in pixels or in CSS units. By default, the map will automatically fit to the size of the parent element. Default: `undefined`. */\n @Input() width?: number | string\n\n /** Height in pixels or in CSS units. By default, the map will automatically fit to the size of the parent element. Default: `undefined`. */\n @Input() height?: number | string\n\n /** Animation duration when the map is automatically panning or zooming to a point or area. Default: `1500` ms */\n @Input() flyToDuration?: number\n\n /** Padding to be used when the `fitView` function has been called. The value is in pixels, [topLeft, bottomRight]. Default: `[150, 150]` */\n @Input() fitViewPadding?: [number, number]\n\n /** Animation duration for the `setZoom` function. Default: `800` ms */\n @Input() zoomDuration?: number\n\n /** Default bounds that will be applied on the first map render if the bounds property is not set. Default: `undefined` */\n @Input() initialBounds?: Bounds\n\n /** Force set map bounds on config and data updates. Default: `undefined` */\n @Input() fitBoundsOnUpdate?: Bounds\n\n /** Fit the view to contain the data points on map initialization. Default: `true` */\n @Input() fitViewOnInit?: boolean\n\n /** Fit the view to contain the data points on map config and data updates. Default: `false` */\n @Input() fitViewOnUpdate?: boolean\n\n /** MapLibre `StyleSpecification` settings, or a URL to it. When renderer is set to`LeafletMapRenderer.Raster`, provide a template URL. Default: `undefined` */\n @Input() style: MapLibreStyleSpecs | string | undefined\n\n /** MapLibre `StyleSpecification` settings or URL for dark theme. Default: `undefined` */\n @Input() styleDarkTheme?: MapLibreStyleSpecs | string | undefined\n\n /** Tile server access token or API key. Default: `''` */\n @Input() accessToken?: string\n\n /** Array of attribution labels. Default: `['<a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap contributors</a>']` */\n @Input() attribution?: string[]\n\n /** Rendering mode for map's tile layer. For raster files, use `LeafletMapRenderer.Raster`. Default: `LeafletMapRenderer.MapLibre` */\n @Input() renderer?: LeafletMapRenderer | string\n\n /** Function to be called after the map's async initialization is done. Default: `undefined` */\n @Input() onMapInitialized?: (() => void)\n\n /** Map Move / Zoom unified callback function. Default: `undefined` */\n @Input() onMapMoveZoom?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Move Start callback function. Default: `undefined` */\n @Input() onMapMoveStart?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Move End callback function. Default: `undefined` */\n @Input() onMapMoveEnd?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom Start callback function. Default: `undefined` */\n @Input() onMapZoomStart?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom End callback function. Default: `undefined` */\n @Input() onMapZoomEnd?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom Click callback function. Default: `undefined` */\n @Input() onMapClick?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Point longitude accessor function. Default: `d => d.longitude` */\n @Input() pointLongitude?: NumericAccessor<Datum>\n\n /** Point latitude accessor function. Default: `d => d.latitude` */\n @Input() pointLatitude?: NumericAccessor<Datum>\n\n /** Point id accessor function or constant value. Default: `d => d.id` */\n @Input() pointId?: StringAccessor<Datum>\n\n /** Point shape accessor function or constant value. Default: `d => d.shape` */\n @Input() pointShape?: GenericAccessor<LeafletMapPointShape | string, Datum>\n\n /** Point color accessor function or constant value. Default: `d => d.color` */\n @Input() pointColor?: ColorAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point radius accessor function or constant value. Default: `undefined` */\n @Input() pointRadius?: NumericAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point inner label accessor function. Default: `undefined` */\n @Input() pointLabel?: StringAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point inner label color accessor function or constant value.\n * By default, the label color will be set, depending on the point brightness, either to\n * `--vis-map-point-inner-label-text-color-light` or to `--vis-map-point-inner-label-text-color-dark` CSS variable.\n * Default: `undefined` */\n @Input() pointLabelColor?: StringAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point bottom label accessor function. Default: `''` */\n @Input() pointBottomLabel?: StringAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point cursor value or accessor function. Default: `null` */\n @Input() pointCursor?: StringAccessor<LeafletMapPointDatum<Datum>>\n\n /** The width of the ring when a point has a `LeafletMapPointShape.Ring` shape. Default: `1.25` */\n @Input() pointRingWidth?: number\n\n /** Set selected point by its unique id. Default: `undefined` */\n @Input() selectedPointId?: string\n\n /** Cluster color accessor function or constant value. Default: `undefined` */\n @Input() clusterColor?: ColorAccessor<LeafletMapClusterDatum<Datum>>\n\n /** Cluster radius accessor function or constant value. Default: `undefined` */\n @Input() clusterRadius?: NumericAccessor<LeafletMapClusterDatum<Datum>>\n\n /** Cluster inner label accessor function. Default: `d => d.point_count` */\n @Input() clusterLabel?: StringAccessor<LeafletMapClusterDatum<Datum>>\n\n /** Cluster inner label color accessor function or constant value.\n * By default, the label color will be set, depending on the point brightness, either to\n * `--vis-map-cluster-inner-label-text-color-light` or to `--vis-map-cluster-inner-label-text-color-dark` CSS variable.\n * Default: `undefined` */\n @Input() clusterLabelColor?: StringAccessor<LeafletMapClusterDatum<Datum>>\n\n /** Cluster bottom label accessor function. Default: `''` */\n @Input() clusterBottomLabel?: StringAccessor<LeafletMapClusterDatum<Datum>>\n\n /** The width of the cluster point ring. Default: `1.25` */\n @Input() clusterRingWidth?: number\n\n /** When cluster is expanded, show a background circle to better separate points from the base map. Default: `true` */\n @Input() clusterBackground?: boolean\n\n /** Defines whether the cluster should expand on click or not. Default: `true` */\n @Input() clusterExpandOnClick?: boolean\n\n /** Clustering distance in pixels. This value will be passed to Supercluster as the `radius` property https://github.com/mapbox/supercluster. Default: `55` */\n @Input() clusteringDistance?: number\n\n /** A single map point can have multiple properties displayed as a small pie chart (or a donut chart for a cluster of points).\n * By setting the colorMap configuration you can specify data properties that should be mapped to various pie / donut segments.\n *\n * ```\n * {\n * \\[key in keyof Datum]?: { color: string, className?: string }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\healthy: { color: 'green' },\n * \\warning: { color: 'orange' },\n * \\danger: { color: 'red' }\n * }\n * ```\n * where every data point has the `healthy`, `warning` and `danger` numerical or boolean property. */\n @Input() colorMap?: LeafletMapPointStyles<Datum>\n\n /** A TopoJSON Geometry layer to be displayed on top of the map. Supports fill and stroke */\n @Input() topoJSONLayer?: {\n sources: any;\n featureName?: string;\n fillProperty?: string;\n strokeProperty?: string;\n fillOpacity?: number;\n strokeOpacity?: number;\n strokeWidth?: number;\n }\n\n /** Tooltip component. Default: `undefined` */\n @Input() tooltip?: Tooltip\n\n /** Alternative text description of the chart for accessibility purposes. It will be applied as an\n * `aria-label` attribute to the div element containing your chart. Default: `undefined`. */\n @Input() ariaLabel?: string | null | undefined\n @Input() data: Datum[]\n\n component: LeafletMap<Datum> | undefined\n\n ngAfterViewInit (): void {\n this.component = new LeafletMap<Datum>(this.containerRef.nativeElement, this.getConfig(), this.data)\n\n if (this.data) {\n this.component.setData(this.data)\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n }\n\n private getConfig (): LeafletMapConfigInterface<Datum> {\n const { duration, events, attributes, width, height, flyToDuration, fitViewPadding, zoomDuration, initialBounds, fitBoundsOnUpdate, fitViewOnInit, fitViewOnUpdate, style, styleDarkTheme, accessToken, attribution, renderer, onMapInitialized, onMapMoveZoom, onMapMoveStart, onMapMoveEnd, onMapZoomStart, onMapZoomEnd, onMapClick, pointLongitude, pointLatitude, pointId, pointShape, pointColor, pointRadius, pointLabel, pointLabelColor, pointBottomLabel, pointCursor, pointRingWidth, selectedPointId, clusterColor, clusterRadius, clusterLabel, clusterLabelColor, clusterBottomLabel, clusterRingWidth, clusterBackground, clusterExpandOnClick, clusteringDistance, colorMap, topoJSONLayer, tooltip, ariaLabel } = this\n const config = { duration, events, attributes, width, height, flyToDuration, fitViewPadding, zoomDuration, initialBounds, fitBoundsOnUpdate, fitViewOnInit, fitViewOnUpdate, style, styleDarkTheme, accessToken, attribution, renderer, onMapInitialized, onMapMoveZoom, onMapMoveStart, onMapMoveEnd, onMapZoomStart, onMapZoomEnd, onMapClick, pointLongitude, pointLatitude, pointId, pointShape, pointColor, pointRadius, pointLabel, pointLabelColor, pointBottomLabel, pointCursor, pointRingWidth, selectedPointId, clusterColor, clusterRadius, clusterLabel, clusterLabelColor, clusterBottomLabel, clusterRingWidth, clusterBackground, clusterExpandOnClick, clusteringDistance, colorMap, topoJSONLayer, tooltip, ariaLabel }\n const keys = Object.keys(config) as (keyof LeafletMapConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisLeafletMapComponent } from './leaflet-map.component'\n\n@NgModule({\n imports: [],\n declarations: [VisLeafletMapComponent],\n exports: [VisLeafletMapComponent],\n})\nexport class VisLeafletMapModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges, ViewChild, ElementRef } from '@angular/core'\nimport {\n LeafletFlowMap,\n LeafletFlowMapConfigInterface,\n GenericDataRecord,\n VisEventType,\n VisEventCallback,\n Bounds,\n MapLibreStyleSpecs,\n LeafletMapRenderer,\n MapZoomState,\n NumericAccessor,\n StringAccessor,\n GenericAccessor,\n LeafletMapPointShape,\n ColorAccessor,\n LeafletMapPointDatum,\n LeafletMapClusterDatum,\n LeafletMapPointStyles,\n Tooltip,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-leaflet-flow-map',\n template: '<div #container class=\"leaflet-flow-map-container\"></div>',\n styles: ['.leaflet-flow-map-container { width: 100%; height: 100%; position: relative }'],\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisLeafletFlowMapComponent }],\n})\nexport class VisLeafletFlowMapComponent<PointDatum extends GenericDataRecord, FlowDatum extends GenericDataRecord> implements LeafletFlowMapConfigInterface<PointDatum, FlowDatum>, AfterViewInit {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Width in pixels or in CSS units. By default, the map will automatically fit to the size of the parent element. Default: `undefined`. */\n @Input() width?: number | string\n\n /** Height in pixels or in CSS units. By default, the map will automatically fit to the size of the parent element. Default: `undefined`. */\n @Input() height?: number | string\n\n /** Animation duration when the map is automatically panning or zooming to a point or area. Default: `1500` ms */\n @Input() flyToDuration?: number\n\n /** Padding to be used when the `fitView` function has been called. The value is in pixels, [topLeft, bottomRight]. Default: `[150, 150]` */\n @Input() fitViewPadding?: [number, number]\n\n /** Animation duration for the `setZoom` function. Default: `800` ms */\n @Input() zoomDuration?: number\n\n /** Default bounds that will be applied on the first map render if the bounds property is not set. Default: `undefined` */\n @Input() initialBounds?: Bounds\n\n /** Force set map bounds on config and data updates. Default: `undefined` */\n @Input() fitBoundsOnUpdate?: Bounds\n\n /** Fit the view to contain the data points on map initialization. Default: `true` */\n @Input() fitViewOnInit?: boolean\n\n /** Fit the view to contain the data points on map config and data updates. Default: `false` */\n @Input() fitViewOnUpdate?: boolean\n\n /** MapLibre `StyleSpecification` settings, or a URL to it. When renderer is set to`LeafletMapRenderer.Raster`, provide a template URL. Default: `undefined` */\n @Input() style: MapLibreStyleSpecs | string | undefined\n\n /** MapLibre `StyleSpecification` settings or URL for dark theme. Default: `undefined` */\n @Input() styleDarkTheme?: MapLibreStyleSpecs | string | undefined\n\n /** Tile server access token or API key. Default: `''` */\n @Input() accessToken?: string\n\n /** Array of attribution labels. Default: `['<a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap contributors</a>']` */\n @Input() attribution?: string[]\n\n /** Rendering mode for map's tile layer. For raster files, use `LeafletMapRenderer.Raster`. Default: `LeafletMapRenderer.MapLibre` */\n @Input() renderer?: LeafletMapRenderer | string\n\n /** Function to be called after the map's async initialization is done. Default: `undefined` */\n @Input() onMapInitialized?: (() => void)\n\n /** Map Move / Zoom unified callback function. Default: `undefined` */\n @Input() onMapMoveZoom?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Move Start callback function. Default: `undefined` */\n @Input() onMapMoveStart?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Move End callback function. Default: `undefined` */\n @Input() onMapMoveEnd?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom Start callback function. Default: `undefined` */\n @Input() onMapZoomStart?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom End callback function. Default: `undefined` */\n @Input() onMapZoomEnd?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom Click callback function. Default: `undefined` */\n @Input() onMapClick?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Point longitude accessor function. Default: `d => d.longitude` */\n @Input() pointLongitude?: NumericAccessor<PointDatum>\n\n /** Point latitude accessor function. Default: `d => d.latitude` */\n @Input() pointLatitude?: NumericAccessor<PointDatum>\n\n /** Point id accessor function or constant value. Default: `d => d.id` */\n @Input() pointId?: StringAccessor<PointDatum>\n\n /** Point shape accessor function or constant value. Default: `d => d.shape` */\n @Input() pointShape?: GenericAccessor<LeafletMapPointShape | string, PointDatum>\n\n /** Point color accessor function or constant value. Default: `d => d.color` */\n @Input() pointColor?: ColorAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point radius accessor function or constant value. Default: `undefined` */\n @Input() pointRadius?: NumericAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point inner label accessor function. Default: `undefined` */\n @Input() pointLabel?: StringAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point inner label color accessor function or constant value.\n * By default, the label color will be set, depending on the point brightness, either to\n * `--vis-map-point-inner-label-text-color-light` or to `--vis-map-point-inner-label-text-color-dark` CSS variable.\n * Default: `undefined` */\n @Input() pointLabelColor?: StringAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point bottom label accessor function. Default: `''` */\n @Input() pointBottomLabel?: StringAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point cursor value or accessor function. Default: `null` */\n @Input() pointCursor?: StringAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** The width of the ring when a point has a `LeafletMapPointShape.Ring` shape. Default: `1.25` */\n @Input() pointRingWidth?: number\n\n /** Set selected point by its unique id. Default: `undefined` */\n @Input() selectedPointId?: string\n\n /** Cluster color accessor function or constant value. Default: `undefined` */\n @Input() clusterColor?: ColorAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** Cluster radius accessor function or constant value. Default: `undefined` */\n @Input() clusterRadius?: NumericAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** Cluster inner label accessor function. Default: `d => d.point_count` */\n @Input() clusterLabel?: StringAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** Cluster inner label color accessor function or constant value.\n * By default, the label color will be set, depending on the point brightness, either to\n * `--vis-map-cluster-inner-label-text-color-light` or to `--vis-map-cluster-inner-label-text-color-dark` CSS variable.\n * Default: `undefined` */\n @Input() clusterLabelColor?: StringAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** Cluster bottom label accessor function. Default: `''` */\n @Input() clusterBottomLabel?: StringAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** The width of the cluster point ring. Default: `1.25` */\n @Input() clusterRingWidth?: number\n\n /** When cluster is expanded, show a background circle to better separate points from the base map. Default: `true` */\n @Input() clusterBackground?: boolean\n\n /** Defines whether the cluster should expand on click or not. Default: `true` */\n @Input() clusterExpandOnClick?: boolean\n\n /** Clustering distance in pixels. This value will be passed to Supercluster as the `radius` property https://github.com/mapbox/supercluster. Default: `55` */\n @Input() clusteringDistance?: number\n\n /** A single map point can have multiple properties displayed as a small pie chart (or a donut chart for a cluster of points).\n * By setting the colorMap configuration you can specify data properties that should be mapped to various pie / donut segments.\n *\n * ```\n * {\n * \\[key in keyof Datum]?: { color: string, className?: string }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\healthy: { color: 'green' },\n * \\warning: { color: 'orange' },\n * \\danger: { color: 'red' }\n * }\n * ```\n * where every data point has the `healthy`, `warning` and `danger` numerical or boolean property. */\n @Input() colorMap?: LeafletMapPointStyles<PointDatum>\n\n /** A TopoJSON Geometry layer to be displayed on top of the map. Supports fill and stroke */\n @Input() topoJSONLayer?: {\n sources: any;\n featureName?: string;\n fillProperty?: string;\n strokeProperty?: string;\n fillOpacity?: number;\n strokeOpacity?: number;\n strokeWidth?: number;\n }\n\n /** Tooltip component. Default: `undefined` */\n @Input() tooltip?: Tooltip\n\n /** Alternative text description of the chart for accessibility purposes. It will be applied as an\n * `aria-label` attribute to the div element containing your chart. Default: `undefined`. */\n @Input() ariaLabel?: string | null | undefined\n\n /** Flow source point longitude accessor function or value. Default:.`f => f.sourceLongitude` */\n @Input() sourceLongitude?: NumericAccessor<FlowDatum>\n\n /** Flow source point latitude accessor function or value. Default: `f => f.sourceLatitude` */\n @Input() sourceLatitude?: NumericAccessor<FlowDatum>\n\n /** Flow target point longitude accessor function or value. Default: `f => f.targetLongitude` */\n @Input() targetLongitude?: NumericAccessor<FlowDatum>\n\n /** Flow target point latitude accessor function or value. Default: `f => f.targetLatitude` */\n @Input() targetLatitude?: NumericAccessor<FlowDatum>\n\n /** Flow source point radius accessor function or value. Default: `3` */\n @Input() sourcePointRadius?: NumericAccessor<FlowDatum>\n\n /** Source point color accessor function or value. Default: `'#88919f'` */\n @Input() sourcePointColor?: ColorAccessor<FlowDatum>\n\n /** Flow particle color accessor function or value. Default: `'#949dad'` */\n @Input() flowParticleColor?: ColorAccessor<FlowDatum>\n\n /** Flow particle radius accessor function or value. Default: `1.1` */\n @Input() flowParticleRadius?: NumericAccessor<FlowDatum>\n\n /** Flow particle speed accessor function or value. The unit is arbitrary, recommended range is 0 – 0.2. Default: `0.07` */\n @Input() flowParticleSpeed?: NumericAccessor<FlowDatum>\n\n /** Flow particle density accessor function or value on the range of [0, 1]. Default: `0.6` */\n @Input() flowParticleDensity?: NumericAccessor<FlowDatum>\n\n /** Flow source point click callback function. Default: `undefined` */\n @Input() onSourcePointClick?: (f: FlowDatum, x: number, y: number, event: MouseEvent) => void\n\n /** Flow source point mouse over callback function. Default: `undefined` */\n @Input() onSourcePointMouseEnter?: (f: FlowDatum, x: number, y: number, event: MouseEvent) => void\n\n /** Flow source point mouse leave callback function. Default: `undefined` */\n @Input() onSourcePointMouseLeave?: (f: FlowDatum, event: MouseEvent) => void\n @Input() data: { points: PointDatum[]; flows?: FlowDatum[] }\n\n component: LeafletFlowMap<PointDatum, FlowDatum> | undefined\n\n ngAfterViewInit (): void {\n this.component = new LeafletFlowMap<PointDatum, FlowDatum>(this.containerRef.nativeElement, this.getConfig(), this.data)\n\n if (this.data) {\n this.component.setData(this.data)\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n }\n\n private getConfig (): LeafletFlowMapConfigInterface<PointDatum, FlowDatum> {\n const { duration, events, attributes, width, height, flyToDuration, fitViewPadding, zoomDuration, initialBounds, fitBoundsOnUpdate, fitViewOnInit, fitViewOnUpdate, style, styleDarkTheme, accessToken, attribution, renderer, onMapInitialized, onMapMoveZoom, onMapMoveStart, onMapMoveEnd, onMapZoomStart, onMapZoomEnd, onMapClick, pointLongitude, pointLatitude, pointId, pointShape, pointColor, pointRadius, pointLabel, pointLabelColor, pointBottomLabel, pointCursor, pointRingWidth, selectedPointId, clusterColor, clusterRadius, clusterLabel, clusterLabelColor, clusterBottomLabel, clusterRingWidth, clusterBackground, clusterExpandOnClick, clusteringDistance, colorMap, topoJSONLayer, tooltip, ariaLabel, sourceLongitude, sourceLatitude, targetLongitude, targetLatitude, sourcePointRadius, sourcePointColor, flowParticleColor, flowParticleRadius, flowParticleSpeed, flowParticleDensity, onSourcePointClick, onSourcePointMouseEnter, onSourcePointMouseLeave } = this\n const config = { duration, events, attributes, width, height, flyToDuration, fitViewPadding, zoomDuration, initialBounds, fitBoundsOnUpdate, fitViewOnInit, fitViewOnUpdate, style, styleDarkTheme, accessToken, attribution, renderer, onMapInitialized, onMapMoveZoom, onMapMoveStart, onMapMoveEnd, onMapZoomStart, onMapZoomEnd, onMapClick, pointLongitude, pointLatitude, pointId, pointShape, pointColor, pointRadius, pointLabel, pointLabelColor, pointBottomLabel, pointCursor, pointRingWidth, selectedPointId, clusterColor, clusterRadius, clusterLabel, clusterLabelColor, clusterBottomLabel, clusterRingWidth, clusterBackground, clusterExpandOnClick, clusteringDistance, colorMap, topoJSONLayer, tooltip, ariaLabel, sourceLongitude, sourceLatitude, targetLongitude, targetLatitude, sourcePointRadius, sourcePointColor, flowParticleColor, flowParticleRadius, flowParticleSpeed, flowParticleDensity, onSourcePointClick, onSourcePointMouseEnter, onSourcePointMouseLeave }\n const keys = Object.keys(config) as (keyof LeafletFlowMapConfigInterface<PointDatum, FlowDatum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisLeafletFlowMapComponent } from './leaflet-flow-map.component'\n\n@NgModule({\n imports: [],\n declarations: [VisLeafletFlowMapComponent],\n exports: [VisLeafletFlowMapComponent],\n})\nexport class VisLeafletFlowMapModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges, ViewChild, ElementRef } from '@angular/core'\nimport {\n BulletLegend,\n BulletLegendConfigInterface,\n BulletLegendItemInterface,\n GenericAccessor,\n BulletShape,\n BulletLegendOrientation,\n} from '@unovis/ts'\nimport { VisGenericComponent } from '../../core'\n\n@Component({\n selector: 'vis-bullet-legend',\n template: '<div #container class=\"bullet-legend-container\"></div>',\n styles: ['.bullet-legend-container { }'],\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisGenericComponent, useExisting: VisBulletLegendComponent }],\n})\nexport class VisBulletLegendComponent implements BulletLegendConfigInterface, AfterViewInit {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n\n /** Legend items. Array of `BulletLegendItemInterface`:\n * ```\n * {\n * name: string | number;\n * color?: string;\n * shape?: BulletShape;\n * inactive?: boolean;\n * hidden?: boolean;\n * pointer?: boolean;\n * }\n * ```\n * Default: `[]` */\n @Input() items: BulletLegendItemInterface[]\n\n /** Apply a specific class to the labels. Default: `''` */\n @Input() labelClassName?: string\n\n /** Callback function for the legend item click. Default: `undefined` */\n @Input() onLegendItemClick?: ((d: BulletLegendItemInterface, i: number) => void)\n\n /** Label text (<span> element) font-size CSS. Default: `null` */\n @Input() labelFontSize?: string | null\n\n /** Label text (<span> element) max-width CSS property. Default: `null` */\n @Input() labelMaxWidth?: string | null\n\n /** Bullet shape size, mapped to the width and height CSS properties. Default: `null` */\n @Input() bulletSize?: string | null\n\n /** Spacing between multiple bullet symbols in pixels. Default: `4` */\n @Input() bulletSpacing?: number\n\n /** Bullet shape enum value or accessor function. Default: `d => d.shape ?? BulletShape.Circle */\n @Input() bulletShape?: GenericAccessor<BulletShape, BulletLegendItemInterface>\n\n /** Legend orientation. When set to `BulletLegendOrientation.Vertical`, each legend item will\n * start on a new line. Default: `BulletLegendOrientation.Horizontal` */\n @Input() orientation?: BulletLegendOrientation | string\n\n component: BulletLegend | undefined\n\n ngAfterViewInit (): void {\n this.component = new BulletLegend(this.containerRef.nativeElement, { ...this.getConfig(), renderIntoProvidedDomNode: true })\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.update(this.getConfig())\n }\n\n private getConfig (): BulletLegendConfigInterface {\n const { items, labelClassName, onLegendItemClick, labelFontSize, labelMaxWidth, bulletSize, bulletSpacing, bulletShape, orientation } = this\n const config = { items, labelClassName, onLegendItemClick, labelFontSize, labelMaxWidth, bulletSize, bulletSpacing, bulletShape, orientation }\n const keys = Object.keys(config) as (keyof BulletLegendConfigInterface)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisBulletLegendComponent } from './bullet-legend.component'\n\n@NgModule({\n imports: [],\n declarations: [VisBulletLegendComponent],\n exports: [VisBulletLegendComponent],\n})\nexport class VisBulletLegendModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges, ViewChild, ElementRef } from '@angular/core'\nimport { RollingPinLegend, RollingPinLegendConfigInterface, RollingPinLegendItem } from '@unovis/ts'\nimport { VisGenericComponent } from '../../core'\n\n@Component({\n selector: 'vis-rolling-pin-legend',\n template: '<div #container class=\"rolling-pin-legend-container\"></div>',\n styles: ['.rolling-pin-legend-container { }'],\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisGenericComponent, useExisting: VisRollingPinLegendComponent }],\n})\nexport class VisRollingPinLegendComponent implements RollingPinLegendConfigInterface, AfterViewInit {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n\n /** Rects forming a legend. Array of `string`, representing colors.\n *\n * Default: `[]` */\n @Input() rects: RollingPinLegendItem[]\n\n /** Label on the left side of the legend. Default: `undefined` */\n @Input() leftLabelText?: string\n\n /** Label on the right side of the legend. Default: `undefined` */\n @Input() rightLabelText?: string\n\n /** Apply a specific class to the labels. Default: `''` */\n @Input() labelClassName?: string\n\n /** Label text (<span> element) font-size CSS. Default: `null` */\n @Input() labelFontSize?: string | null\n\n component: RollingPinLegend | undefined\n\n ngAfterViewInit (): void {\n this.component = new RollingPinLegend(this.containerRef.nativeElement, this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n }\n\n private getConfig (): RollingPinLegendConfigInterface {\n const { rects, leftLabelText, rightLabelText, labelClassName, labelFontSize } = this\n const config = { rects, leftLabelText, rightLabelText, labelClassName, labelFontSize }\n const keys = Object.keys(config) as (keyof RollingPinLegendConfigInterface)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisRollingPinLegendComponent } from './rolling-pin-legend.component'\n\n@NgModule({\n imports: [],\n declarations: [VisRollingPinLegendComponent],\n exports: [VisRollingPinLegendComponent],\n})\nexport class VisRollingPinLegendModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisTooltipComponent } from './tooltip.component'\n\n@NgModule({\n imports: [],\n declarations: [VisTooltipComponent],\n exports: [VisTooltipComponent],\n})\nexport class VisTooltipModule {}\n","// Core\nexport * from './core'\n\n// SVG Components\nexport { VisAreaComponent } from './components/area/area.component'\nexport { VisAreaModule } from './components/area/area.module'\n\nexport { VisAnnotationsComponent } from './components/annotations/annotations.component'\nexport { VisAnnotationsModule } from './components/annotations/annotations.module'\n\nexport { VisAxisComponent } from './components/axis/axis.component'\nexport { VisAxisModule } from './components/axis/axis.module'\n\nexport { VisBrushComponent } from './components/brush/brush.component'\nexport { VisBrushModule } from './components/brush/brush.module'\n\nexport { VisChordDiagramComponent } from './components/chord-diagram/chord-diagram.component'\nexport { VisChordDiagramModule } from './components/chord-diagram/chord-diagram.module'\n\nexport { VisCrosshairComponent } from './components/crosshair/crosshair.component'\nexport { VisCrosshairModule } from './components/crosshair/crosshair.module'\n\nexport { VisDonutComponent } from './components/donut/donut.component'\nexport { VisDonutModule } from './components/donut/donut.module'\n\nexport { VisFreeBrushComponent } from './components/free-brush/free-brush.component'\nexport { VisFreeBrushModule } from './components/free-brush/free-brush.module'\n\nexport { VisGraphComponent } from './components/graph/graph.component'\nexport { VisGraphModule } from './components/graph/graph.module'\n\nexport { VisGroupedBarComponent } from './components/grouped-bar/grouped-bar.component'\nexport { VisGroupedBarModule } from './components/grouped-bar/grouped-bar.module'\n\nexport { VisLineComponent } from './components/line/line.component'\nexport { VisLineModule } from './components/line/line.module'\n\nexport { VisNestedDonutComponent } from './components/nested-donut/nested-donut.component'\nexport { VisNestedDonutModule } from './components/nested-donut/nested-donut.module'\n\nexport { VisPlotlineComponent } from './components/plotline/plotline.component'\nexport { VisPlotlineModule } from './components/plotline/plotline.module'\n\nexport { VisSankeyComponent } from './components/sankey/sankey.component'\nexport { VisSankeyModule } from './components/sankey/sankey.module'\n\nexport { VisScatterComponent } from './components/scatter/scatter.component'\nexport { VisScatterModule } from './components/scatter/scatter.module'\n\nexport { VisStackedBarComponent } from './components/stacked-bar/stacked-bar.component'\nexport { VisStackedBarModule } from './components/stacked-bar/stacked-bar.module'\n\nexport { VisTimelineComponent } from './components/timeline/timeline.component'\nexport { VisTimelineModule } from './components/timeline/timeline.module'\n\nexport { VisXYLabelsComponent } from './components/xy-labels/xy-labels.component'\nexport { VisXYLabelsModule } from './components/xy-labels/xy-labels.module'\n\nexport { VisTopoJSONMapComponent } from './components/topojson-map/topojson-map.component'\nexport { VisTopoJSONMapModule } from './components/topojson-map/topojson-map.module'\n\nexport { VisPlotbandComponent } from './components/plotband/plotband.component'\nexport { VisPlotbandModule } from './components/plotband/plotband.module'\n\n// HTML Components\nexport { VisLeafletMapComponent } from './html-components/leaflet-map/leaflet-map.component'\nexport { VisLeafletMapModule } from './html-components/leaflet-map/leaflet-map.module'\n\nexport { VisLeafletFlowMapComponent } from './html-components/leaflet-flow-map/leaflet-flow-map.component'\nexport { VisLeafletFlowMapModule } from './html-components/leaflet-flow-map/leaflet-flow-map.module'\n\nexport { VisBulletLegendComponent } from './html-components/bullet-legend/bullet-legend.component'\nexport { VisBulletLegendModule } from './html-components/bullet-legend/bullet-legend.module'\n\nexport { VisRollingPinLegendComponent } from './html-components/rolling-pin-legend/rolling-pin-legend.component'\nexport { VisRollingPinLegendModule } from './html-components/rolling-pin-legend/rolling-pin-legend.module'\n\nexport { VisTooltipComponent } from './components/tooltip/tooltip.component'\nexport { VisTooltipModule } from './components/tooltip/tooltip.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Tooltip","i0","Component","Input","Annotations","Direction","XYContainer","Crosshair","Axis","ViewChild","ContentChildren","ContentChild","NgModule","SingleContainer","Area","Brush","ChordDiagram","Donut","FreeBrush","Graph","GroupedBar","Line","NestedDonut","Plotline","Sankey","Scatter","StackedBar","Timeline","XYLabels","TopoJSONMap","Plotband","LeafletMap","LeafletFlowMap","BulletLegend","RollingPinLegend"],"mappings":"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"}
1
+ {"version":3,"file":"unovis-angular.umd.js","sources":["../../../src/core/generic-component.ts","../../../node_modules/tslib/tslib.es6.js","../../../src/core/core-component.ts","../../../src/core/xy-component.ts","../../../src/components/tooltip/tooltip.component.ts","../../../src/components/annotations/annotations.component.ts","../../../src/containers/xy-container/xy-container.component.ts","../../../src/containers/xy-container/xy-container.module.ts","../../../src/containers/single-container/single-container.component.ts","../../../src/containers/single-container/single-container.module.ts","../../../src/components/area/area.component.ts","../../../src/components/area/area.module.ts","../../../src/components/annotations/annotations.module.ts","../../../src/components/axis/axis.component.ts","../../../src/components/axis/axis.module.ts","../../../src/components/brush/brush.component.ts","../../../src/components/brush/brush.module.ts","../../../src/components/chord-diagram/chord-diagram.component.ts","../../../src/components/chord-diagram/chord-diagram.module.ts","../../../src/components/crosshair/crosshair.component.ts","../../../src/components/crosshair/crosshair.module.ts","../../../src/components/donut/donut.component.ts","../../../src/components/donut/donut.module.ts","../../../src/components/free-brush/free-brush.component.ts","../../../src/components/free-brush/free-brush.module.ts","../../../src/components/graph/graph.component.ts","../../../src/components/graph/graph.module.ts","../../../src/components/grouped-bar/grouped-bar.component.ts","../../../src/components/grouped-bar/grouped-bar.module.ts","../../../src/components/line/line.component.ts","../../../src/components/line/line.module.ts","../../../src/components/nested-donut/nested-donut.component.ts","../../../src/components/nested-donut/nested-donut.module.ts","../../../src/components/plotline/plotline.component.ts","../../../src/components/plotline/plotline.module.ts","../../../src/components/sankey/sankey.component.ts","../../../src/components/sankey/sankey.module.ts","../../../src/components/scatter/scatter.component.ts","../../../src/components/scatter/scatter.module.ts","../../../src/components/stacked-bar/stacked-bar.component.ts","../../../src/components/stacked-bar/stacked-bar.module.ts","../../../src/components/timeline/timeline.component.ts","../../../src/components/timeline/timeline.module.ts","../../../src/components/xy-labels/xy-labels.component.ts","../../../src/components/xy-labels/xy-labels.module.ts","../../../src/components/topojson-map/topojson-map.component.ts","../../../src/components/topojson-map/topojson-map.module.ts","../../../src/components/plotband/plotband.component.ts","../../../src/components/plotband/plotband.module.ts","../../../src/html-components/leaflet-map/leaflet-map.component.ts","../../../src/html-components/leaflet-map/leaflet-map.module.ts","../../../src/html-components/leaflet-flow-map/leaflet-flow-map.component.ts","../../../src/html-components/leaflet-flow-map/leaflet-flow-map.module.ts","../../../src/html-components/bullet-legend/bullet-legend.component.ts","../../../src/html-components/bullet-legend/bullet-legend.module.ts","../../../src/html-components/rolling-pin-legend/rolling-pin-legend.component.ts","../../../src/html-components/rolling-pin-legend/rolling-pin-legend.module.ts","../../../src/components/tooltip/tooltip.module.ts","../../../src/components.ts","../../../src/unovis-angular.ts"],"sourcesContent":["export class VisGenericComponent {\n component: any\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { ComponentCore, ContainerCore } from '@unovis/ts'\nimport { VisGenericComponent } from './generic-component'\n\nexport class VisCoreComponent extends VisGenericComponent {\n component: ComponentCore<any>\n componentContainer: ContainerCore\n}\n","import { XYComponentCore, XYContainer } from '@unovis/ts'\nimport { VisCoreComponent } from './core-component'\n\nexport class VisXYComponent extends VisCoreComponent {\n component: XYComponentCore<any>\n componentContainer: XYContainer<any>\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { Tooltip, TooltipConfigInterface, ContainerCore, ComponentCore, Position } from '@unovis/ts'\nimport { VisGenericComponent } from '../../core'\n\n@Component({\n selector: 'vis-tooltip',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisGenericComponent, useExisting: VisTooltipComponent }],\n})\nexport class VisTooltipComponent implements TooltipConfigInterface, AfterViewInit {\n /** An array of visualization components to interact with. Default: `[]` */\n @Input() components?: ComponentCore<unknown>[]\n\n /** Container to where the Tooltip component should be inserted. Default: `undefined` */\n @Input() container?: HTMLElement\n\n /** Follow the mouse cursor. Default: `true` */\n @Input() followCursor?: boolean\n\n /** Allow the tooltip to be hovered over and interacted with. Default: `false` */\n @Input() allowHover?: boolean\n\n /** Horizontal placement of the tooltip. Default: `Position.Auto` */\n @Input() horizontalPlacement?: Position | string | undefined\n\n /** Horizontal shift of the tooltip in pixels. Works only with\n * `horizontalPlacement` set to `Position.Left` or `Position.Right`.\n * Default: `0` */\n @Input() horizontalShift?: number\n\n /** Vertical placement of the tooltip. Default: `Position.Top` */\n @Input() verticalPlacement?: Position | string | undefined\n\n /** Vertical shift of the tooltip in pixels. Works only with\n * `verticalPlacement` set to `Position.Top` or `Position.Bottom`.\n * Default: `0` */\n @Input() verticalShift?: number\n\n /** Defines the content of the tooltip and hovering over which elements should trigger it.\n * An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: (d: unknown) => string | HTMLElement\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: (d: AreaDatum[]) => `<div>${d.value.toString()}</div>\n * }\n * ``` */\n @Input() triggers?: {\n [selector: string]: ((data: any, i: number, elements: (HTMLElement | SVGElement)[]) => string | HTMLElement | undefined | null | void) | undefined | null;\n }\n\n /** Custom DOM attributes for the tooltip. Useful when you need to refer to a specific tooltip instance\n * by using a CSS selector. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[attributeName]: attribute value\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\'type': 'area-tooltip',\n * \\'value': 42\n * }\n * ``` */\n @Input() attributes?: {\n [attr: string]: string | number | boolean;\n }\n\n /** Custom class name for the tooltip. Default: `undefined` */\n @Input() className?: string\n\n /** Hide delay in milliseconds. Default: `undefined` */\n @Input() hideDelay?: number\n\n /** Show delay in milliseconds. Default: `undefined` */\n @Input() showDelay?: number\n\n component: Tooltip | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Tooltip(this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): TooltipConfigInterface {\n const { components, container, followCursor, allowHover, horizontalPlacement, horizontalShift, verticalPlacement, verticalShift, triggers, attributes, className, hideDelay, showDelay } = this\n const config = { components, container, followCursor, allowHover, horizontalPlacement, horizontalShift, verticalPlacement, verticalShift, triggers, attributes, className, hideDelay, showDelay }\n const keys = Object.keys(config) as (keyof TooltipConfigInterface)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { Annotations, AnnotationsConfigInterface, ContainerCore, VisEventType, VisEventCallback, AnnotationItem } from '@unovis/ts'\nimport { VisGenericComponent } from '../../core'\n\n@Component({\n selector: 'vis-annotations',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisGenericComponent, useExisting: VisAnnotationsComponent }],\n})\nexport class VisAnnotationsComponent implements AnnotationsConfigInterface, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Legend items. Array of `AnnotationItem`:\n * ```\n * {\n * content: string | UnovisText | UnovisText[];\n * subject?: AnnotationSubject;\n * x?: LengthUnit;\n * y?: LengthUnit;\n * width?: LengthUnit;\n * height?: LengthUnit;\n * }\n * ```\n * To learn more, see our docs https://unovis.dev/docs/auxiliary/Annotations/\n * Default: `[]` */\n @Input() items: AnnotationItem[] | undefined\n\n component: Annotations | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Annotations(this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): AnnotationsConfigInterface {\n const { duration, events, attributes, items } = this\n const config = { duration, events, attributes, items }\n const keys = Object.keys(config) as (keyof AnnotationsConfigInterface)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Input,\n OnDestroy,\n QueryList,\n SimpleChanges,\n ViewChild,\n} from '@angular/core'\n\n// Vis\nimport { Annotations, Axis, ContinuousScale, Crosshair, Direction, Spacing, Tooltip, XYContainer, XYContainerConfigInterface } from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\nimport { VisTooltipComponent } from '../../components/tooltip/tooltip.component'\nimport { VisAnnotationsComponent } from '../../components/annotations/annotations.component'\n\n@Component({\n selector: 'vis-xy-container',\n template: `<div #container class=\"unovis-xy-container\">\n <ng-content></ng-content>\n </div>`,\n styles: ['.unovis-xy-container { width: 100%; height: 100%; position: relative; }'],\n})\nexport class VisXYContainerComponent<Datum> implements AfterViewInit, AfterContentInit, OnDestroy {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n @ContentChildren(VisXYComponent) visComponents: QueryList<VisXYComponent>\n @ContentChild(VisTooltipComponent) tooltipComponent: VisTooltipComponent\n @ContentChild(VisAnnotationsComponent) annotationsComponent: VisAnnotationsComponent\n\n /** Width in pixels or in CSS units.\n * Percentage units `\"%\"` are not supported here. If you want to set `width` as a percentage, do it via `style` or `class`\n * of the corresponding DOM element.\n * Default: `undefined`\n */\n @Input() width?: number\n /** Height in pixels or in CSS units.\n * Percentage units `\"%\"` are not supported here. If you want to set `height` as a percentage, do it via `style` or `class`\n * of the corresponding DOM element.\n * Default: `undefined`\n */\n @Input() height?: number\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). Default: `Scale.scaleLinear()` */\n @Input() xScale?: ContinuousScale\n /** Scale domain (data extent) for X dimension. By default this value is calculated automatically based on data. */\n @Input() xDomain?: [number | undefined, number | undefined]\n /** Constraint the minimum value of the X scale domain. Useful when the data is plotted along the X axis.\n * For example, imagine that you have a chart with dynamic data that has negative values. When values are small\n * (let's say in the range of [-0.01, 0]), you might still want the chart to display some meaningful value range (e.g. [-1, 0]). That can\n * be achieved by setting `xDomainMinConstraint` to `[undefined, -1]`. In addition to that, if you want to cut off the\n * values that are too low (let's say lower than -100), you can set the constraint to `[-100, -1]`\n * Default: `undefined` */\n @Input() xDomainMinConstraint?: [number | undefined, number | undefined]\n /** Constraint the minimum value of the X scale domain. Useful when the data is plotted along the X axis.\n * For example, imagine that you have a chart with dynamic data. When values are small\n * (let's say < 0.01), you might still want the chart to display some meaningful value range (e.g. [0, 1]). That can\n * be achieved by setting `xDomainMaxConstraint` to `[1, undefined]`. In addition to that, if you want to cut off the\n * values that are too high (let's say higher than 100), you can set the constraint to `[1, 100]`\n * Default: `undefined` */\n @Input() xDomainMaxConstraint?: [number | undefined, number | undefined]\n /** Force set the X scale range (in the screen space). By default the range is calculated automatically based on the\n * chart's set up */\n @Input() xRange?: [number, number]\n\n /** Scale for Y dimension, e.g. Scale.ScaleLinear. Default: `Scale.ScaleLinear()` */\n @Input() yScale?: ContinuousScale\n /** Scale domain (data extent) for Y dimension. By default this value is calculated automatically based on data. */\n @Input() yDomain?: [number | undefined, number | undefined]\n /** Constraint the minimum value of the Y scale domain.\n * For example, imagine that you have a chart with dynamic data that has negative values. When values are small\n * (let's say in the range of [-0.01, 0]), you might still want the chart to display some meaningful value range (e.g. [-1, 0]). That can\n * be achieved by setting `yDomainMinConstraint` to `[undefined, -1]`. In addition to that, if you want to cut off the\n * values that are too low (let's say lower than -100), you can set the constraint to `[-100, -1]`\n * Default: `undefined` */\n @Input() yDomainMinConstraint?: [number | undefined, number | undefined] = undefined\n /** Constraint the minimum value of the Y scale domain.\n * For example, imagine that you have a chart with dynamic data. When values are small\n * (let's say < 0.01), you might still want the chart to display some meaningful value range (e.g. [0, 1]). That can\n * be achieved by setting `yDomainMaxConstraint` to `[1, undefined]`. In addition to that, if you want to cut off the\n * values that are too high (let's say higher than 100), you can set the constraint to `[1, 100]`\n * Default: `undefined` */\n @Input() yDomainMaxConstraint?: [number | undefined, number | undefined]\n /** Force set the Y scale range (in the screen space). By default the range is calculated automatically based on the\n * chart's set up */\n @Input() yRange?: [number, number]\n /** Y Axis direction. Default: `Direction.North` */\n @Input() yDirection?: Direction.South | Direction.North | string = Direction.North\n /** Prevents the chart domain from being empty (when domain's min and max values are equal).\n * That usually happens when all the data values are the same or when there's no data.\n * Setting to `true` will automatically extend the domain by `+1` when needed.\n * Setting to `null` will extend the domain only when there's no data.\n * Setting to `false` will keep the domain as is.\n * Default: `null` */\n @Input() preventEmptyDomain?: boolean | null = null\n\n /** Animation duration of all the components within the container. Default: `undefined` */\n @Input() duration?: number = undefined\n /** Margins. Default: `{ top: 0, bottom: 0, left: 0, right: 0 }` */\n @Input() margin?: Spacing = { top: 0, bottom: 0, left: 0, right: 0 }\n /** Padding. Default: `{ top: 0, bottom: 0, left: 0, right: 0 }` */\n @Input() padding?: Spacing = {}\n /** Sets the Y scale domain based on the current X scale domain (not the whole dataset). Default: `false` */\n @Input() scaleByDomain?: boolean\n /** Enables automatic calculation of chart margins based on the size of the axes. Default: `true` */\n @Input() autoMargin?: boolean = true\n\n /** Alternative text description of the chart for accessibility purposes. It will be applied as an\n * `aria-label` attribute to the div element containing your chart. Default: `undefined`.\n */\n @Input() ariaLabel?: string | null | undefined\n\n /** Data to be passed to all child components. But if `data` is `undefined` it'll to be passed allowing components to\n * have their individual data. Default: `undefined` */\n @Input() data?: Datum[] | undefined = undefined\n\n chart: XYContainer<Datum>\n\n ngAfterViewInit (): void {\n this.chart = new XYContainer<Datum>(this.containerRef.nativeElement, this.getConfig(), this.data)\n this.passContainerReferenceToChildren()\n }\n\n ngAfterContentInit (): void {\n // QueryList does unsubscribe automatically when it gets destroyed\n this.visComponents.changes.subscribe(() => {\n this.passContainerReferenceToChildren()\n this.chart?.updateContainer(this.getConfig())\n })\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n const preventRender = true\n\n // Set new Data without re-render\n if (changes.data) {\n this.chart?.setData(this.data, preventRender)\n delete changes.data\n }\n\n // Update Container and render\n this.chart?.updateContainer(this.getConfig())\n }\n\n getConfig (): XYContainerConfigInterface<Datum> {\n const {\n duration, margin, padding, scaleByDomain, autoMargin, width, height,\n xScale, xDomain, xDomainMinConstraint, xDomainMaxConstraint, xRange,\n yScale, yDomain, yDomainMinConstraint, yDomainMaxConstraint, yRange,\n yDirection, ariaLabel,\n } = this\n const visComponents = this.visComponents.toArray().map(d => d.component)\n\n const crosshair = visComponents.find(c => c instanceof Crosshair) as Crosshair<Datum>\n const tooltip = this.tooltipComponent?.component as Tooltip\n const xAxis = visComponents.find(c => c instanceof Axis && c?.config?.type === 'x') as Axis<Datum>\n const yAxis = visComponents.find(c => c instanceof Axis && c?.config?.type === 'y') as Axis<Datum>\n const annotations = this.annotationsComponent?.component as Annotations\n\n const components = visComponents.filter(c => !(c instanceof Crosshair) && !(c instanceof Tooltip) && !(c instanceof Axis))\n\n return {\n components,\n width,\n height,\n duration,\n margin,\n padding,\n xAxis,\n yAxis,\n tooltip,\n crosshair,\n annotations,\n scaleByDomain,\n autoMargin,\n xScale,\n xDomain,\n xDomainMinConstraint,\n xDomainMaxConstraint,\n xRange,\n yScale,\n yDomain,\n yDomainMinConstraint,\n yDomainMaxConstraint,\n yRange,\n yDirection,\n ariaLabel,\n }\n }\n\n passContainerReferenceToChildren (): void {\n // We set the container for each vis component to trigger chart re-render if the data has changed\n if (this.chart) this.visComponents.toArray().forEach(c => { c.componentContainer = this.chart })\n }\n\n ngOnDestroy (): void {\n this.chart?.destroy()\n }\n}\n","import { NgModule } from '@angular/core'\nimport { VisXYContainerComponent } from './xy-container.component'\n\n@NgModule({\n imports: [],\n declarations: [VisXYContainerComponent],\n exports: [VisXYContainerComponent],\n})\nexport class VisXYContainerModule {}\n","import { Component, ViewChild, ElementRef, AfterViewInit, Input, OnDestroy, SimpleChanges, ContentChild } from '@angular/core'\n\n// Vis\nimport { ComponentCore, SingleContainer, SingleContainerConfigInterface, Tooltip, Spacing, Annotations, Sizing } from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\nimport { VisTooltipComponent } from '../../components/tooltip/tooltip.component'\nimport { VisAnnotationsComponent } from '../../components/annotations/annotations.component'\n\n@Component({\n selector: 'vis-single-container',\n template: `<div #container class=\"unovis-single-container\">\n <ng-content></ng-content>\n </div>`,\n styles: ['.unovis-single-container { width: 100%; height: 100%; position: relative; }'],\n})\nexport class VisSingleContainerComponent<Data = unknown, C extends ComponentCore<Data> = ComponentCore<Data>> implements AfterViewInit, OnDestroy {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n @ContentChild(VisCoreComponent) visComponent: VisCoreComponent\n @ContentChild(VisTooltipComponent) tooltipComponent: VisTooltipComponent\n @ContentChild(VisAnnotationsComponent) annotationsComponent: VisAnnotationsComponent\n\n /** Width in pixels or in CSS units.\n * Percentage units `\"%\"` are not supported here. If you want to set `width` as a percentage, do it via `style` or `class`\n * of the corresponding DOM element.\n * Default: `undefined`\n */\n @Input() width?: number\n /** Height in pixels or in CSS units.\n * Percentage units `\"%\"` are not supported here. If you want to set `height` as a percentage, do it via `style` or `class`\n * of the corresponding DOM element.\n * Default: `undefined`\n */\n @Input() height?: number\n\n /** Margins. Default: `{ top: 0, bottom: 0, left: 0, right: 0 }` */\n @Input() margin?: Spacing = { top: 0, bottom: 0, left: 0, right: 0 }\n /** Animation duration of all the components within the container. Default: `undefined` */\n @Input() duration?: number\n /** Alternative text description of the chart for accessibility purposes. It will be applied as an\n * `aria-label` attribute to the div element containing your chart. Default: `undefined`.\n */\n @Input() ariaLabel?: string | null | undefined\n /** Custom SVG defs available to all the components within the container. Default: `undefined`. */\n @Input() svgDefs?: string\n /** Defines whether components should fit into the container or the container should expand to fit to the component's size.\n * Works with a limited set of components. Default: `Sizing.Fit` */\n @Input() sizing?: Sizing | string\n /** Data to be passed to the component. Default: `undefined`. */\n @Input() data?: Data\n\n chart: SingleContainer<Data>\n\n ngAfterViewInit (): void {\n this.chart = new SingleContainer<Data>(this.containerRef.nativeElement, this.getConfig(), this.data)\n // We pass the container for the component to trigger re-render if the data has changed\n this.visComponent.componentContainer = this.chart\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n // Set new Data without re-render\n if (changes.data) {\n this.chart?.setData(this.data, true)\n delete changes.data\n }\n\n // Update Container and render\n this.chart?.updateContainer(this.getConfig())\n }\n\n getConfig (): SingleContainerConfigInterface<Data> {\n const { width, height, duration, margin, ariaLabel, svgDefs, sizing } = this\n\n const component = this.visComponent?.component as C\n const tooltip = this.tooltipComponent?.component as Tooltip\n const annotations = this.annotationsComponent?.component as Annotations\n\n return { width, height, duration, margin, component, tooltip, ariaLabel, annotations, svgDefs, sizing }\n }\n\n ngOnDestroy (): void {\n this.chart.destroy()\n }\n}\n","import { NgModule } from '@angular/core'\nimport { VisSingleContainerComponent } from './single-container.component'\n\n@NgModule({\n imports: [],\n declarations: [VisSingleContainerComponent],\n exports: [VisSingleContainerComponent],\n})\nexport class VisSingleContainerModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Area,\n AreaConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n CurveType,\n StringAccessor,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-area',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisAreaComponent }],\n})\nexport class VisAreaComponent<Datum> implements AreaConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Area color accessor function. The whole data array will be passed as the first argument. Default: `undefined` */\n @Input() color?: ColorAccessor<Datum[]>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Curve type from the CurveType enum. Default: `CurveType.MonotoneX` */\n @Input() curveType?: CurveType | string\n\n /** Baseline value or accessor function. Default: `undefined` */\n @Input() baseline?: NumericAccessor<Datum>\n\n /** Opacity value or accessor function. Default: `1` */\n @Input() opacity?: NumericAccessor<Datum[]>\n\n /** Optional area cursor. String or accessor function. Default: `null` */\n @Input() cursor?: StringAccessor<Datum[]>\n\n /** If an area is smaller than 1px, extend it to have 1px height. Default: `false` */\n @Input() minHeight1Px?: boolean\n\n /** Minimum height of the area, use carefully.\n * This setting is useful when some of the area values are zeros or very small so visually they become\n * practically invisible, but you want to show that the data behind them exists and they're not just empty segments.\n * Default: `undefined` */\n @Input() minHeight?: number\n\n /** Whether to stack min height areas or not. Default: `undefined` */\n @Input() stackMinHeight?: boolean\n @Input() data: Datum[]\n\n component: Area<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Area<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): AreaConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, baseline, opacity, cursor, minHeight1Px, minHeight, stackMinHeight } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, baseline, opacity, cursor, minHeight1Px, minHeight, stackMinHeight }\n const keys = Object.keys(config) as (keyof AreaConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisAreaComponent } from './area.component'\n\n@NgModule({\n imports: [],\n declarations: [VisAreaComponent],\n exports: [VisAreaComponent],\n})\nexport class VisAreaModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisAnnotationsComponent } from './annotations.component'\n\n@NgModule({\n imports: [],\n declarations: [VisAnnotationsComponent],\n exports: [VisAnnotationsComponent],\n})\nexport class VisAnnotationsModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Axis,\n AxisConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n Position,\n AxisType,\n FitMode,\n TrimMode,\n TextAlign,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-axis',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisAxisComponent }],\n})\nexport class VisAxisComponent<Datum> implements AxisConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Axis position: `Position.Top`, `Position.Bottom`, `Position.Right` or `Position.Left`. Default: `undefined` */\n @Input() position?: Position | string\n\n /** Axis type: `AxisType.X` or `AxisType.Y` */\n @Input() type?: AxisType | string\n\n /** Extend the axis domain line to be full width or full height. Default: `true` */\n @Input() fullSize?: boolean\n\n /** Axis label. Default: `undefined` */\n @Input() label?: string\n\n /** Font size of the axis label as CSS string. Default: `null` */\n @Input() labelFontSize?: string | null\n\n /** Distance between the axis and the label in pixels. Default: `8` */\n @Input() labelMargin?: number\n\n /** Label text fit mode: `FitMode.Wrap` or `FitMode.Trim`. Default: `FitMode.Wrap`. */\n @Input() labelTextFitMode?: FitMode | string\n\n /** Label text trim mode: `TrimMode.Start`, `TrimMode.Middle` or `TrimMode.End`. Default: `TrimMode.Middle` */\n @Input() labelTextTrimType?: TrimMode | string\n\n /** Font color of the axis label as CSS string. Default: `null` */\n @Input() labelColor?: string | null\n\n /** Sets whether to draw the grid lines or not. Default: `true` */\n @Input() gridLine?: boolean\n\n /** Sets whether to draw the tick lines or not. Default: `true` */\n @Input() tickLine?: boolean\n\n /** Sets whether to draw the domain line or not. Default: `true` */\n @Input() domainLine?: boolean\n\n /** Draw only the min and max axis ticks. Default: `false` */\n @Input() minMaxTicksOnly?: boolean\n\n /** Show grid lines for the min and max axis ticks. Default: `false` */\n @Input() minMaxTicksOnlyShowGridLines?: boolean\n\n /** Draw only the min and max axis ticks, when the chart\n * width is less than the specified value.\n * Default: `250` */\n @Input() minMaxTicksOnlyWhenWidthIsLess?: number\n\n /** Tick label formatter function. Default: `undefined` */\n @Input() tickFormat?: ((tick: number | Date, i: number, ticks: number[] | Date[]) => string)\n\n /** Explicitly set tick values. Default: `undefined` */\n @Input() tickValues?: number[]\n\n /** Set the approximate number of axis ticks (will be passed to D3's axis constructor). Default: `undefined` */\n @Input() numTicks?: number\n\n /** Tick text fit mode: `FitMode.Wrap` or `FitMode.Trim`. Default: `FitMode.Wrap`. */\n @Input() tickTextFitMode?: FitMode | string\n\n /** Maximum width in pixels for the tick text to be wrapped or trimmed. Default: `undefined` */\n @Input() tickTextWidth?: number\n\n /** Tick text wrapping separator. String or array of strings. Default: `undefined` */\n @Input() tickTextSeparator?: string | string[]\n\n /** Force word break for ticks when they don't fit. Default: `false` */\n @Input() tickTextForceWordBreak?: boolean\n\n /** Tick text trim mode: `TrimMode.Start`, `TrimMode.Middle` or `TrimMode.End`. Default: `TrimMode.Middle` */\n @Input() tickTextTrimType?: TrimMode | string\n\n /** Font size of the tick text as CSS string. Default: `null` */\n @Input() tickTextFontSize?: string | null\n\n /** Text alignment for ticks: `TextAlign.Left`, `TextAlign.Center` or `TextAlign.Right`. Default: `undefined` */\n @Input() tickTextAlign?: TextAlign | string\n\n /** Font color of the tick text as CSS string. Default: `null` */\n @Input() tickTextColor?: string | null\n\n /** Text rotation angle for ticks. Default: `undefined` */\n @Input() tickTextAngle?: number\n\n /** Hide tick labels that overlap with each other.\n * To define overlapping, a simple bounding box collision detection algorithm is used.\n * Which means the result won't be accurate when `tickTextAngle` is specified.\n * Default: `undefined` */\n @Input() tickTextHideOverlapping?: boolean\n\n /** The spacing in pixels between the tick and it's label. Default: `8` */\n @Input() tickPadding?: number\n @Input() data: Datum[]\n\n component: Axis<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Axis<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): AxisConfigInterface<Datum> {\n const { duration, events, attributes, position, type, fullSize, label, labelFontSize, labelMargin, labelTextFitMode, labelTextTrimType, labelColor, gridLine, tickLine, domainLine, minMaxTicksOnly, minMaxTicksOnlyShowGridLines, minMaxTicksOnlyWhenWidthIsLess, tickFormat, tickValues, numTicks, tickTextFitMode, tickTextWidth, tickTextSeparator, tickTextForceWordBreak, tickTextTrimType, tickTextFontSize, tickTextAlign, tickTextColor, tickTextAngle, tickTextHideOverlapping, tickPadding } = this\n const config = { duration, events, attributes, position, type, fullSize, label, labelFontSize, labelMargin, labelTextFitMode, labelTextTrimType, labelColor, gridLine, tickLine, domainLine, minMaxTicksOnly, minMaxTicksOnlyShowGridLines, minMaxTicksOnlyWhenWidthIsLess, tickFormat, tickValues, numTicks, tickTextFitMode, tickTextWidth, tickTextSeparator, tickTextForceWordBreak, tickTextTrimType, tickTextFontSize, tickTextAlign, tickTextColor, tickTextAngle, tickTextHideOverlapping, tickPadding }\n const keys = Object.keys(config) as (keyof AxisConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisAxisComponent } from './axis.component'\n\n@NgModule({\n imports: [],\n declarations: [VisAxisComponent],\n exports: [VisAxisComponent],\n})\nexport class VisAxisModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { Brush, BrushConfigInterface, ContainerCore, VisEventType, VisEventCallback, Arrangement } from '@unovis/ts'\nimport { D3BrushEvent } from 'd3-brush'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-brush',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisBrushComponent }],\n})\nexport class VisBrushComponent<Datum> implements BrushConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Callback function to be called on any Brush event.\n * Default: `(selection: [number, number], event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrush?: ((selection: [number, number] | undefined, event: D3BrushEvent<Datum>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush start event.\n * Default: `(selection: [number, number], event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrushStart?: ((selection: [number, number] | undefined, event: D3BrushEvent<Datum>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush move event.\n * Default: `(selection: [number, number], event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrushMove?: ((selection: [number, number] | undefined, event: D3BrushEvent<Datum>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush end event.\n * Default: `(selection: [number, number], event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrushEnd?: ((selection: [number, number] | undefined, event: D3BrushEvent<Datum>, userDriven: boolean) => void)\n\n /** Width of the Brush handle. Default: `1` */\n @Input() handleWidth?: number\n\n /** Brush selection in the data space coordinates, can be used to control the selection. Default: `undefined` */\n @Input() selection?: [number, number] | null\n\n /** Allow dragging the selected area as a whole in order to change the selected range. Default: `false` */\n @Input() draggable?: boolean\n\n /** Position of the handle: `Arrangement.Inside` or `Arrangement.Outside`. Default: `Arrangement.Inside` */\n @Input() handlePosition?: Arrangement.Inside | Arrangement.Outside | string\n\n /** Constraint Brush selection to a minimal length in data units. Default: `undefined` */\n @Input() selectionMinLength?: number\n @Input() data: Datum[]\n\n component: Brush<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Brush<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): BrushConfigInterface<Datum> {\n const { duration, events, attributes, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, draggable, handlePosition, selectionMinLength } = this\n const config = { duration, events, attributes, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, draggable, handlePosition, selectionMinLength }\n const keys = Object.keys(config) as (keyof BrushConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisBrushComponent } from './brush.component'\n\n@NgModule({\n imports: [],\n declarations: [VisBrushComponent],\n exports: [VisBrushComponent],\n})\nexport class VisBrushModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n ChordDiagram,\n ChordDiagramConfigInterface,\n ContainerCore,\n ChordInputNode,\n ChordInputLink,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ChordNodeDatum,\n ColorAccessor,\n ChordLinkDatum,\n StringAccessor,\n GenericAccessor,\n ChordLabelAlignment,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-chord-diagram',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisChordDiagramComponent }],\n})\nexport class VisChordDiagramComponent<N extends ChordInputNode, L extends ChordInputLink> implements ChordDiagramConfigInterface<N, L>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Angular range of the diagram. Default: `[0, 2 * Math.PI]` */\n @Input() angleRange?: [number, number]\n\n /** Corner radius constant value or accessor function. Default: `2` */\n @Input() cornerRadius?: NumericAccessor<ChordNodeDatum<N>>\n\n /** Node id or index to highlight. Overrides default hover behavior if supplied. Default: `undefined` */\n @Input() highlightedNodeId?: number | string\n\n /** Link ids or index values to highlight. Overrides default hover behavior if supplied. Default: [] */\n @Input() highlightedLinkIds?: (number | string)[]\n\n /** Link color accessor function. Default: `var(--vis-chord-diagram-link-fill-color)` */\n @Input() linkColor?: ColorAccessor<ChordLinkDatum<N, L>>\n\n /** Link value accessor function. Default: `l => l.value` */\n @Input() linkValue?: NumericAccessor<ChordLinkDatum<N, L>>\n\n /** Array of node hierarchy levels. Data records are supposed to have corresponding properties, e.g. ['level1', 'level2']. Default: `[]` */\n @Input() nodeLevels?: string[]\n\n /** Node width in pixels. Default: `15` */\n @Input() nodeWidth?: number\n\n /** Node color accessor function ot constant value. Default: `d => d.color` */\n @Input() nodeColor?: ColorAccessor<ChordNodeDatum<N>>\n\n /** Node label accessor function. Default: `d => d.label ?? d.key` */\n @Input() nodeLabel?: StringAccessor<ChordNodeDatum<N>>\n\n /** Node label color accessor function. Default: `undefined` */\n @Input() nodeLabelColor?: StringAccessor<ChordNodeDatum<N>>\n\n /** Node label alignment. Default: `ChordLabelAlignment.Along` */\n @Input() nodeLabelAlignment?: GenericAccessor<ChordLabelAlignment | string, ChordNodeDatum<N>>\n\n /** Pad angle in radians. Default: `0.02` */\n @Input() padAngle?: number\n\n /** The exponent property of the radius scale. Default: `2` */\n @Input() radiusScaleExponent?: number\n @Input() data: { nodes: N[]; links?: L[] }\n\n component: ChordDiagram<N, L> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new ChordDiagram<N, L>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): ChordDiagramConfigInterface<N, L> {\n const { duration, events, attributes, angleRange, cornerRadius, highlightedNodeId, highlightedLinkIds, linkColor, linkValue, nodeLevels, nodeWidth, nodeColor, nodeLabel, nodeLabelColor, nodeLabelAlignment, padAngle, radiusScaleExponent } = this\n const config = { duration, events, attributes, angleRange, cornerRadius, highlightedNodeId, highlightedLinkIds, linkColor, linkValue, nodeLevels, nodeWidth, nodeColor, nodeLabel, nodeLabelColor, nodeLabelAlignment, padAngle, radiusScaleExponent }\n const keys = Object.keys(config) as (keyof ChordDiagramConfigInterface<N, L>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisChordDiagramComponent } from './chord-diagram.component'\n\n@NgModule({\n imports: [],\n declarations: [VisChordDiagramComponent],\n exports: [VisChordDiagramComponent],\n})\nexport class VisChordDiagramModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Crosshair,\n CrosshairConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n Tooltip,\n CrosshairCircle,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-crosshair',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisCrosshairComponent }],\n})\nexport class VisCrosshairComponent<Datum> implements CrosshairConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Optional accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x?: NumericAccessor<Datum>\n\n /** Optional single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y?: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Optional color array or color accessor function for crosshair circles. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Optional stroke color accessor function for crosshair circles. Default: `undefined` */\n @Input() strokeColor?: ColorAccessor<Datum>\n\n /** Optional stroke width for crosshair circles. Default: `undefined` */\n @Input() strokeWidth?: NumericAccessor<Datum>\n\n /** Separate array of accessors for stacked components (eg StackedBar, Area). Default: `undefined` */\n @Input() yStacked?: NumericAccessor<Datum>[]\n\n /** Baseline accessor function for stacked values, useful with stacked areas. Default: `null` */\n @Input() baseline?: NumericAccessor<Datum>\n\n /** An instance of the Tooltip component to be used with Crosshair. Default: `undefined` */\n @Input() tooltip?: Tooltip | undefined\n\n /** Tooltip template accessor. The function is supposed to return either a valid HTML string or an HTMLElement.\n * When `snapToData` is `false`, `datum` will be `undefined` but `data` and `leftNearestDatumIndex` will be provided.\n * Default: `d => ''` */\n @Input() template?: (datum: Datum, x: number | Date, data?: Datum[], leftNearestDatumIndex?: number) => string | HTMLElement\n\n /** Hide Crosshair when the corresponding datum element is far from mouse pointer. Default: `true` */\n @Input() hideWhenFarFromPointer?: boolean\n\n /** Distance in pixels to check in the hideWhenFarFromPointer condition. Default: `100` */\n @Input() hideWhenFarFromPointerDistance?: number\n\n /** Snap to the nearest data point.\n * If disabled, the tooltip template will receive only the horizontal position of the crosshair and you'll be responsible\n * for getting the underlying data records and crosshair circles (see the `getCircles` configuration option).\n * Default: `true` */\n @Input() snapToData?: boolean\n\n /** Custom function for setting up the crosshair circles, usually needed when `snapToData` is set to `false`.\n * The function receives the horizontal position of the crosshair (in the data space, not in pixels), the data array,\n * the `yScale` instance to help you calculate the correct vertical position of the circles, and the nearest datum index.\n * It has to return an array of the `CrosshairCircle` objects: `{ y: number; color: string; opacity?: number }[]`.\n * Default: `undefined` */\n @Input() getCircles?: (x: number | Date, data: Datum[], yScale: ContinuousScale, leftNearestDatumIndex?: number) => CrosshairCircle[]\n\n /** Callback function that is called when the crosshair is moved:\n * - `x` is the horizontal position of the crosshair in the data space;\n * - `datum` is the nearest datum to the crosshair;\n * - `datumIndex` is the index of the nearest datum.\n * - `event` is the event that triggered the crosshair move (mouse or wheel).\n *\n * When the mouse goes out of the container and on wheel events, all the arguments are `undefined` except for `event`.\n * Default: `undefined` */\n @Input() onCrosshairMove?: (x?: number | Date, datum?: Datum, datumIndex?: number, event?: MouseEvent | WheelEvent) => void\n\n /** Force the crosshair to show at a specific position. Default: `undefined` */\n @Input() forceShowAt?: number | Date\n\n /** Skip range checks for crosshair visibility. When true, crosshair will show regardless of position within chart bounds. Default: `false`\n * This is useful for testing, especially when you only triggers mousemove event but does not have real mouse event. */\n @Input() skipRangeCheck?: boolean\n @Input() data: Datum[]\n\n component: Crosshair<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Crosshair<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): CrosshairConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles, onCrosshairMove, forceShowAt, skipRangeCheck } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, strokeColor, strokeWidth, yStacked, baseline, tooltip, template, hideWhenFarFromPointer, hideWhenFarFromPointerDistance, snapToData, getCircles, onCrosshairMove, forceShowAt, skipRangeCheck }\n const keys = Object.keys(config) as (keyof CrosshairConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisCrosshairComponent } from './crosshair.component'\n\n@NgModule({\n imports: [],\n declarations: [VisCrosshairComponent],\n exports: [VisCrosshairComponent],\n})\nexport class VisCrosshairModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { Donut, DonutConfigInterface, ContainerCore, VisEventType, VisEventCallback, NumericAccessor, ColorAccessor } from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-donut',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisDonutComponent }],\n})\nexport class VisDonutComponent<Datum> implements DonutConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string | number)\n\n /** Value accessor function. Default: `undefined` */\n @Input() value: NumericAccessor<Datum>\n\n /** Diagram angle range. Default: `[0, 2 * Math.PI]` */\n @Input() angleRange?: [number, number]\n\n /** Pad angle. Default: `0` */\n @Input() padAngle?: number\n\n /** Custom sort function. Default: `undefined` */\n @Input() sortFunction?: (a: Datum, b: Datum) => number\n\n /** Corner Radius. Default: `0` */\n @Input() cornerRadius?: number\n\n /** Color accessor function. Default: `undefined` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Explicitly set the donut outer radius. Default: `undefined` */\n @Input() radius?: number\n\n /** Arc width in pixels. Set to `0` if you want to have a pie chart. Default: `20` */\n @Input() arcWidth?: number\n\n /** Central label accessor function or text. Default: `undefined` */\n @Input() centralLabel?: string\n\n /** Central sub-label accessor function or text. Default: `undefined` */\n @Input() centralSubLabel?: string\n\n /** Enables wrapping for the sub-label. Default: `true` */\n @Input() centralSubLabelWrap?: boolean\n\n /** When true, the component will display empty segments (the ones that have `0` values) as tiny slices.\n * Default: `false` */\n @Input() showEmptySegments?: boolean\n\n /** Angular size for empty segments in radians. Default: `0.5 * Math.PI / 180` */\n @Input() emptySegmentAngle?: number\n\n /** Show donut background. The color is configurable via\n * the `--vis-donut-background-color` and `--vis-dark-donut-background-color` CSS variables.\n * Default: `true` */\n @Input() showBackground?: boolean\n\n /** Background angle range. When undefined, the value will be taken from `angleRange`. Default: `undefined` */\n @Input() backgroundAngleRange?: [number, number]\n\n /** Central label and sub-label horizontal offset in pixels. Default: `undefined` */\n @Input() centralLabelOffsetX?: number\n\n /** Central label and sub-label vertical offset in pixels. Default: `undefined` */\n @Input() centralLabelOffsetY?: number\n @Input() data: Datum[]\n\n component: Donut<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Donut<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): DonutConfigInterface<Datum> {\n const { duration, events, attributes, id, value, angleRange, padAngle, sortFunction, cornerRadius, color, radius, arcWidth, centralLabel, centralSubLabel, centralSubLabelWrap, showEmptySegments, emptySegmentAngle, showBackground, backgroundAngleRange, centralLabelOffsetX, centralLabelOffsetY } = this\n const config = { duration, events, attributes, id, value, angleRange, padAngle, sortFunction, cornerRadius, color, radius, arcWidth, centralLabel, centralSubLabel, centralSubLabelWrap, showEmptySegments, emptySegmentAngle, showBackground, backgroundAngleRange, centralLabelOffsetX, centralLabelOffsetY }\n const keys = Object.keys(config) as (keyof DonutConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisDonutComponent } from './donut.component'\n\n@NgModule({\n imports: [],\n declarations: [VisDonutComponent],\n exports: [VisDonutComponent],\n})\nexport class VisDonutModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport { FreeBrush, FreeBrushConfigInterface, ContainerCore, VisEventType, VisEventCallback, FreeBrushMode, FreeBrushSelection } from '@unovis/ts'\nimport { D3BrushEvent } from 'd3-brush'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-free-brush',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisFreeBrushComponent }],\n})\nexport class VisFreeBrushComponent<Datum> implements FreeBrushConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Brush selection mode. X - horizontal, Y - vertical, XY - both. Default: `FreeBrushMode.X` */\n @Input() mode?: FreeBrushMode\n\n /** Callback function to be called on any Brush event.\n * Default: `(selection: FreeBrushSelection, event: D3BrushEvent<Datum>, userDriven: boolean): void => {}` */\n @Input() onBrush?: ((selection: FreeBrushSelection | undefined, event: D3BrushEvent<unknown>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush start event.\n * Default: `(selection: FreeBrushSelection, event: D3BrushEvent<unknown>, userDriven: boolean): void => {}` */\n @Input() onBrushStart?: ((selection: FreeBrushSelection | undefined, event: D3BrushEvent<unknown>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush move event.\n * Default: `(selection: FreeBrushSelection, event: D3BrushEvent<unknown>, userDriven: boolean): void => {}` */\n @Input() onBrushMove?: ((selection: FreeBrushSelection | undefined, event: D3BrushEvent<unknown>, userDriven: boolean) => void)\n\n /** Callback function to be called on the Brush end event.\n * Default: `(selection: FreeBrushSelection, event: D3BrushEvent<unknown>, userDriven: boolean)L void => {}` */\n @Input() onBrushEnd?: ((selection: FreeBrushSelection | undefined, event: D3BrushEvent<unknown>, userDriven: boolean) => void)\n\n /** Width of the Brush handle. Default: `1` */\n @Input() handleWidth?: number\n\n /** Brush selection in data space, can be used to force set the selection from outside.\n * In case of two dimensional mode, the selection has the following format: `[[xMin, xMax], [yMin, yMax]]`.\n * This config property gets updated on internal brush events. Default: `undefined` */\n @Input() selection?: FreeBrushSelection | null | undefined\n\n /** Constraint Brush selection to a minimal length in data units. Default: `undefined` */\n @Input() selectionMinLength?: number | [number, number]\n\n /** Automatically hide the brush after selection. Default: `true` */\n @Input() autoHide?: boolean\n @Input() data: Datum[]\n\n component: FreeBrush<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new FreeBrush<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): FreeBrushConfigInterface<Datum> {\n const { duration, events, attributes, mode, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, selectionMinLength, autoHide } = this\n const config = { duration, events, attributes, mode, onBrush, onBrushStart, onBrushMove, onBrushEnd, handleWidth, selection, selectionMinLength, autoHide }\n const keys = Object.keys(config) as (keyof FreeBrushConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisFreeBrushComponent } from './free-brush.component'\n\n@NgModule({\n imports: [],\n declarations: [VisFreeBrushComponent],\n exports: [VisFreeBrushComponent],\n})\nexport class VisFreeBrushModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Graph,\n GraphConfigInterface,\n ContainerCore,\n GraphInputNode,\n GraphInputLink,\n VisEventType,\n VisEventCallback,\n Spacing,\n GraphFitViewAlignment,\n GraphLayoutType,\n StringAccessor,\n GraphForceLayoutSettings,\n GraphDagreLayoutSetting,\n GenericAccessor,\n GraphElkLayoutSettings,\n GraphNode,\n NumericAccessor,\n GraphLinkStyle,\n GraphLinkArrowStyle,\n ColorAccessor,\n BooleanAccessor,\n GraphCircleLabel,\n GraphLink,\n GraphNodeShape,\n TrimMode,\n GraphNodeSelectionHighlightMode,\n GraphPanelConfig,\n GraphInputData,\n GraphDataModel,\n} from '@unovis/ts'\nimport { ElkShape } from 'elkjs'\nimport { Selection } from 'd3-selection'\nimport { D3DragEvent } from 'd3-drag'\nimport { D3ZoomEvent, ZoomTransform } from 'd3-zoom'\nimport { D3BrushEvent } from 'd3-brush'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-graph',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisGraphComponent }],\n})\nexport class VisGraphComponent<N extends GraphInputNode, L extends GraphInputLink> implements GraphConfigInterface<N, L>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Zoom level constraints. Default: [0.35, 1.25] */\n @Input() zoomScaleExtent?: [number, number]\n\n /** Disable zooming. Default: `false` */\n @Input() disableZoom?: boolean\n\n /** Custom Zoom event filter to better control which actions should trigger zooming.\n * Learn more: https://d3js.org/d3-zoom#zoom_filter.\n * Default: `undefined` */\n @Input() zoomEventFilter?: (event: PointerEvent) => boolean\n\n /** Disable node dragging. Default: `false` */\n @Input() disableDrag?: boolean\n\n /** Disable brush for multiple node selection. Default: `false` */\n @Input() disableBrush?: boolean\n\n /** Interval to re-render the graph when zooming. Default: `100` */\n @Input() zoomThrottledUpdateNodeThreshold?: number\n\n /** Padding for the graph when fitting to container. Default: `50` */\n @Input() fitViewPadding?: Spacing | number\n\n /** Default alignment when fitting the graph view. Default: `GraphFitViewAlignment.Center` */\n @Input() fitViewAlign?: GraphFitViewAlignment\n\n /** Type of the graph layout. Default: `GraphLayoutType.Force` */\n @Input() layoutType?: GraphLayoutType | string\n\n /** Fit the graph to container on data or config updates, or on container resize. Default: `true` */\n @Input() layoutAutofit?: boolean\n\n /** Tolerance constant defining whether the graph should be fitted to container\n * (on data or config update, or container resize) after a zoom / pan interaction or not.\n * `0` — Stop fitting after any pan or zoom\n * `Number.POSITIVE_INFINITY` — Always fit\n * Default: `8.0` */\n @Input() layoutAutofitTolerance?: number\n\n /** Place non-connected nodes at the bottom of the graph. Default: `false` */\n @Input() layoutNonConnectedAside?: boolean\n\n /** Node group accessor function.\n * Only for `GraphLayoutType.Parallel`, `GraphLayoutType.ParallelHorizontal` and `GraphLayoutType.Concentric` layouts.\n * Default: `node => node.group` */\n @Input() layoutNodeGroup?: StringAccessor<N>\n\n /** Order of the layout groups.\n * Only for `GraphLayoutType.Parallel`, `GraphLayoutType.ParallelHorizontal` and `GraphLayoutType.Concentric` layouts.\n * Default: `[]` */\n @Input() layoutGroupOrder?: string[]\n\n /** Sets the number of nodes in a sub-group after which they'll continue on the next column (or row if `layoutType` is\n * `GraphLayoutType.ParallelHorizontal`).\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `6` */\n @Input() layoutParallelNodesPerColumn?: number\n\n /** Node sub-group accessor function.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `node => node.subgroup` */\n @Input() layoutParallelNodeSubGroup?: StringAccessor<N>\n\n /** Number of sub-groups per row (or column if `layoutType` is `GraphLayoutType.ParallelHorizontal`) in a group.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `1` */\n @Input() layoutParallelSubGroupsPerRow?: number\n\n /** Spacing between nodes, dynamic by default.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `undefined` */\n @Input() layoutParallelNodeSpacing?: number | [number, number]\n\n /** Spacing between sub-groups.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `40` */\n @Input() layoutParallelSubGroupSpacing?: number\n\n /** Spacing between groups.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `undefined` */\n @Input() layoutParallelGroupSpacing?: number\n\n /** Set a group by name to have priority in sorting the graph links.\n * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.\n * Default: `undefined` */\n @Input() layoutParallelSortConnectionsByGroup?: string\n\n /** Force Layout settings, see the `d3-force` package for more details */\n @Input() forceLayoutSettings?: GraphForceLayoutSettings<N, L>\n\n /** Darge Layout settings, see the `dagrejs` package\n * for more details: https://github.com/dagrejs/dagre/wiki#configuring-the-layout */\n @Input() dagreLayoutSettings?: GraphDagreLayoutSetting\n\n /** ELK layout options, see the `elkjs` package for more details: https://github.com/kieler/elkjs.\n * If you want to specify custom layout option for each node group, you can provide an accessor function that\n * receives group name ('root' for the top-level configuration) as the first argument and returns an object containing\n * layout options. Default: `undefined` */\n @Input() layoutElkSettings?: GenericAccessor<GraphElkLayoutSettings, string> | undefined\n\n /** Array of accessor functions to define nested node groups for the ELK Layered layout.\n * E.g.: `[n => n.group, n => n.subGroup]`.\n * Default: `undefined` */\n @Input() layoutElkNodeGroups?: StringAccessor<N>[]\n\n /** A function to be called per graph node to get the ELK shape object.\n * This enables you to provide custom node dimensions (through the `width` and `height` properties)\n * and coordinates (through the `x` and `y` properties) if needed.\n * Default: `undefined` */\n @Input() layoutElkGetNodeShape?: (d: GraphNode<N, L>, i: number) => ElkShape\n\n /** Link width accessor function ot constant value. Default: `1` */\n @Input() linkWidth?: NumericAccessor<L>\n\n /** Link style accessor function or constant value. Default: `GraphLinkStyle.Solid` */\n @Input() linkStyle?: GenericAccessor<GraphLinkStyle, L>\n\n /** Link band width accessor function or constant value. Default: `0` */\n @Input() linkBandWidth?: NumericAccessor<L>\n\n /** Link arrow accessor function or constant value. Default: `undefined` */\n @Input() linkArrow?: GenericAccessor<GraphLinkArrowStyle | string | boolean, L> | undefined\n\n /** Link stroke color accessor function or constant value. Default: `undefined` */\n @Input() linkStroke?: ColorAccessor<L>\n\n /** Link disabled state accessor function or constant value. Default: `false` */\n @Input() linkDisabled?: BooleanAccessor<L>\n\n /** Link flow animation accessor function or constant value. Default: `false` */\n @Input() linkFlow?: BooleanAccessor<L>\n\n /** Animation duration of the flow (traffic) circles in milliseconds. If `linkFlowParticleSpeed` is provided,\n * this duration will be calculated based on the link length and particle speed. Default: `20000` */\n @Input() linkFlowAnimDuration?: NumericAccessor<L>\n\n /** Size of the moving particles that represent traffic flow. Default: `2` */\n @Input() linkFlowParticleSize?: NumericAccessor<L>\n\n /** Speed of the moving particles in pixels per second. This property takes precedence over `linkFlowAnimDuration`. Default: `undefined` */\n @Input() linkFlowParticleSpeed?: NumericAccessor<L>\n\n /** Link label accessor function or constant value. Default: `undefined` */\n @Input() linkLabel?: GenericAccessor<GraphCircleLabel | GraphCircleLabel[], L> | undefined\n\n /** Shift label along the link center a little bit to avoid overlap with the link arrow. Default: `true` */\n @Input() linkLabelShiftFromCenter?: BooleanAccessor<L>\n\n /** Spacing between neighboring links. Default: `8` */\n @Input() linkNeighborSpacing?: number\n\n /** Curvature of the link. Recommended value range: [0:1.5].\n * `0` - straight line,\n * `1` - nice curvature,\n * `1.5` - very curve.\n * Default: `0` */\n @Input() linkCurvature?: NumericAccessor<L>\n\n /** Highlight links on hover. Default: `true` */\n @Input() linkHighlightOnHover?: boolean\n\n /** Offset [x,y] in pixels from the source node's center point where the link should start. Default: `undefined` */\n @Input() linkSourcePointOffset?: GenericAccessor<[number, number], GraphLink<N, L>>\n\n /** Offset [x,y] in pixels from the target node's center point where the link should end. Default: `undefined` */\n @Input() linkTargetPointOffset?: GenericAccessor<[number, number], GraphLink<N, L>>\n\n /** Set selected link by its unique id. Default: `undefined` */\n @Input() selectedLinkId?: number | string\n\n /** Node size accessor function or constant value. Default: `30` */\n @Input() nodeSize?: NumericAccessor<N>\n\n /** Node stroke width accessor function or constant value. Default: `3` */\n @Input() nodeStrokeWidth?: NumericAccessor<N>\n\n /** Node shape accessor function or constant value. Default: `GraphNodeShape.Circle` */\n @Input() nodeShape?: GenericAccessor<GraphNodeShape | string, N>\n\n /** Node gauge outline accessor function or constant value in the range [0,100]. Default: `0` */\n @Input() nodeGaugeValue?: NumericAccessor<N>\n\n /** Node gauge outline fill color accessor function or constant value. Default: `undefined` */\n @Input() nodeGaugeFill?: ColorAccessor<N>\n\n /** Animation duration of the node gauge outline. Default: `1500` */\n @Input() nodeGaugeAnimDuration?: number\n\n /** Node central icon accessor function or constant value. Default: `node => node.icon` */\n @Input() nodeIcon?: StringAccessor<N>\n\n /** Node central icon size accessor function or constant value. Default: `undefined` */\n @Input() nodeIconSize?: NumericAccessor<N>\n\n /** Node label accessor function or constant value. Default: `node => node.label` */\n @Input() nodeLabel?: StringAccessor<N>\n\n /** Defines whether to trim the node labels or not. Default: `true` */\n @Input() nodeLabelTrim?: BooleanAccessor<N>\n\n /** Node label trimming mode. Default: `TrimMode.Middle` */\n @Input() nodeLabelTrimMode?: GenericAccessor<TrimMode | string, N>\n\n /** Node label maximum allowed text length above which the label will be trimmed. Default: `15` */\n @Input() nodeLabelTrimLength?: NumericAccessor<N>\n\n /** Node sub-label accessor function or constant value: Default: `''` */\n @Input() nodeSubLabel?: StringAccessor<N>\n\n /** Defines whether to trim the node sub-labels or not. Default: `true` */\n @Input() nodeSubLabelTrim?: BooleanAccessor<N>\n\n /** Node sub-label trimming mode. Default: `TrimMode.Middle` */\n @Input() nodeSubLabelTrimMode?: GenericAccessor<TrimMode | string, N>\n\n /** Node sub-label maximum allowed text length above which the label will be trimmed. Default: `15` */\n @Input() nodeSubLabelTrimLength?: NumericAccessor<N>\n\n /** Node circular side labels accessor function. The function should return an array of GraphCircleLabel objects. Default: `undefined` */\n @Input() nodeSideLabels?: GenericAccessor<GraphCircleLabel[], N>\n\n /** Node bottom icon accessor function. Default: `undefined` */\n @Input() nodeBottomIcon?: StringAccessor<N>\n\n /** Node disabled state accessor function or constant value. Default: `false` */\n @Input() nodeDisabled?: BooleanAccessor<N>\n\n /** Node fill color accessor function or constant value. Default: `node => node.fill` */\n @Input() nodeFill?: ColorAccessor<N>\n\n /** Node stroke color accessor function or constant value. Default: `node => node.stroke` */\n @Input() nodeStroke?: ColorAccessor<N>\n\n /** Sorting function to determine node placement. Default: `undefined` */\n @Input() nodeSort?: ((a: N, b: N) => number)\n\n /** Specify the initial position for entering nodes as [x, y]. Default: `undefined` */\n @Input() nodeEnterPosition?: GenericAccessor<[number, number], N> | undefined\n\n /** Specify the initial scale for entering nodes in the range [0,1]. Default: `0.75` */\n @Input() nodeEnterScale?: NumericAccessor<N> | undefined\n\n /** Specify the destination position for exiting nodes as [x, y]. Default: `undefined` */\n @Input() nodeExitPosition?: GenericAccessor<[number, number], N> | undefined\n\n /** Specify the destination scale for exiting nodes in the range [0,1]. Default: `0.75` */\n @Input() nodeExitScale?: NumericAccessor<N> | undefined\n\n /** Custom \"enter\" function for node rendering. Default: `undefined` */\n @Input() nodeEnterCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void\n\n /** Custom \"update\" function for node rendering. Default: `undefined` */\n @Input() nodeUpdateCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void\n\n /** Custom partial \"update\" function for node rendering which will be triggered after the following events:\n * - Full node update (`nodeUpdateCustomRenderFunction`);\n * - Background click;\n * - Node and Link mouseover and mouseout;\n * - Node brushing,\n * Default: `undefined` */\n @Input() nodePartialUpdateCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void\n\n /** Custom \"exit\" function for node rendering. Default: `undefined` */\n @Input() nodeExitCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number) => void\n\n /** Custom render function that will be called while zooming / panning the graph. Default: `undefined` */\n @Input() nodeOnZoomCustomRenderFunction?: (datum: GraphNode<N, L>, nodeGroupElementSelection: Selection<SVGGElement, GraphNode<N, L>, null, unknown>, config: GraphConfigInterface<N, L>, zoomLevel: number) => void\n\n /** Define the mode for highlighting selected nodes in the graph. Default: `GraphNodeSelectionHighlightMode.GreyoutNonConnected` */\n @Input() nodeSelectionHighlightMode?: GraphNodeSelectionHighlightMode\n\n /** Set selected node by unique id. Default: `undefined` */\n @Input() selectedNodeId?: number | string\n\n /** Set selected nodes by unique id. Default: `undefined` */\n @Input() selectedNodeIds?: number[] | string[]\n\n /** Panels configuration. An array of `GraphPanelConfig` objects. Default: `[]` */\n @Input() panels?: GraphPanelConfig[] | undefined\n\n /** Graph node drag start callback function. Default: `undefined` */\n @Input() onNodeDragStart?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined\n\n /** Graph node drag callback function. Default: `undefined` */\n @Input() onNodeDrag?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined\n\n /** Graph node drag end callback function. Default: `undefined` */\n @Input() onNodeDragEnd?: (n: GraphNode<N, L>, event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void | undefined\n\n /** Zoom event callback. Default: `undefined` */\n @Input() onZoom?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined, transform: ZoomTransform) => void\n\n /** Zoom start event callback. Default: `undefined` */\n @Input() onZoomStart?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined, transform: ZoomTransform) => void\n\n /** Zoom end event callback. Default: `undefined` */\n @Input() onZoomEnd?: (zoomScale: number, zoomScaleExtent: [number, number], event: D3ZoomEvent<SVGGElement, unknown> | undefined, transform: ZoomTransform) => void\n\n /** Callback function to be called when the graph layout is calculated. Default: `undefined` */\n @Input() onLayoutCalculated?: (nodes: GraphNode<N, L>[], links: GraphLink<N, L>[]) => void\n\n /** Graph node selection brush callback function. Default: `undefined` */\n @Input() onNodeSelectionBrush?: (selectedNodes: GraphNode<N, L>[], event: D3BrushEvent<SVGGElement> | undefined) => void\n\n /** Graph multiple node drag callback function. Default: `undefined` */\n @Input() onNodeSelectionDrag?: (selectedNodes: GraphNode<N, L>[], event: D3DragEvent<SVGGElement, GraphNode<N, L>, unknown>) => void\n\n /** Callback function to be called when the graph rendering is complete. Default: `undefined` */\n @Input() onRenderComplete?: (g: Selection<SVGGElement, unknown, null, undefined>, nodes: GraphNode<N, L>[], links: GraphLink<N, L>[], config: GraphConfigInterface<N, L>, duration: number, zoomLevel: number, width: number, height: number) => void\n\n /** Determines whether the component should update when new data is provided.\n * This function takes the previous and new data as parameters and returns a boolean\n * indicating whether the update should proceed. Useful for fine-grained control over\n * update behavior when your data has a complex nested structure.\n * By default the `isEqual` function from Unovis will be used to do the comparison. */\n @Input() shouldDataUpdate?: (prevData: GraphInputData<N, L>, nextData: GraphInputData<N, L>, datamodel: GraphDataModel<N, L, GraphNode<N, L>, GraphLink<N, L>>) => boolean\n @Input() data: { nodes: N[]; links?: L[] }\n\n component: Graph<N, L> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Graph<N, L>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): GraphConfigInterface<N, L> {\n const { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, fitViewPadding, fitViewAlign, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelNodeSpacing, layoutParallelSubGroupSpacing, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkFlowParticleSpeed, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate } = this\n const config = { duration, events, attributes, zoomScaleExtent, disableZoom, zoomEventFilter, disableDrag, disableBrush, zoomThrottledUpdateNodeThreshold, fitViewPadding, fitViewAlign, layoutType, layoutAutofit, layoutAutofitTolerance, layoutNonConnectedAside, layoutNodeGroup, layoutGroupOrder, layoutParallelNodesPerColumn, layoutParallelNodeSubGroup, layoutParallelSubGroupsPerRow, layoutParallelNodeSpacing, layoutParallelSubGroupSpacing, layoutParallelGroupSpacing, layoutParallelSortConnectionsByGroup, forceLayoutSettings, dagreLayoutSettings, layoutElkSettings, layoutElkNodeGroups, layoutElkGetNodeShape, linkWidth, linkStyle, linkBandWidth, linkArrow, linkStroke, linkDisabled, linkFlow, linkFlowAnimDuration, linkFlowParticleSize, linkFlowParticleSpeed, linkLabel, linkLabelShiftFromCenter, linkNeighborSpacing, linkCurvature, linkHighlightOnHover, linkSourcePointOffset, linkTargetPointOffset, selectedLinkId, nodeSize, nodeStrokeWidth, nodeShape, nodeGaugeValue, nodeGaugeFill, nodeGaugeAnimDuration, nodeIcon, nodeIconSize, nodeLabel, nodeLabelTrim, nodeLabelTrimMode, nodeLabelTrimLength, nodeSubLabel, nodeSubLabelTrim, nodeSubLabelTrimMode, nodeSubLabelTrimLength, nodeSideLabels, nodeBottomIcon, nodeDisabled, nodeFill, nodeStroke, nodeSort, nodeEnterPosition, nodeEnterScale, nodeExitPosition, nodeExitScale, nodeEnterCustomRenderFunction, nodeUpdateCustomRenderFunction, nodePartialUpdateCustomRenderFunction, nodeExitCustomRenderFunction, nodeOnZoomCustomRenderFunction, nodeSelectionHighlightMode, selectedNodeId, selectedNodeIds, panels, onNodeDragStart, onNodeDrag, onNodeDragEnd, onZoom, onZoomStart, onZoomEnd, onLayoutCalculated, onNodeSelectionBrush, onNodeSelectionDrag, onRenderComplete, shouldDataUpdate }\n const keys = Object.keys(config) as (keyof GraphConfigInterface<N, L>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisGraphComponent } from './graph.component'\n\n@NgModule({\n imports: [],\n declarations: [VisGraphComponent],\n exports: [VisGraphComponent],\n})\nexport class VisGraphModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n GroupedBar,\n GroupedBarConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n StringAccessor,\n Orientation,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-grouped-bar',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisGroupedBarComponent }],\n})\nexport class VisGroupedBarComponent<Datum> implements GroupedBarConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Bar color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Force set the group width in pixels. Default: `undefined` */\n @Input() groupWidth?: number\n\n /** Maximum group width for dynamic sizing. Limits the groupWidth property from the top. Default: `undefined` */\n @Input() groupMaxWidth?: number\n\n /** Expected step between the bar groups in the X axis units.\n * Needed to correctly calculate the width of the bar groups when there are gaps in the data.\n * Default: `undefined` */\n @Input() dataStep?: number\n\n /** Fractional padding between the groups in the range of [0,1). Default: `0.05` */\n @Input() groupPadding?: number\n\n /** Fractional padding between the bars in the range of [0,1). Default: `0` */\n @Input() barPadding?: number\n\n /** Rounded bar corners. Boolean or number (to set the radius in pixels explicitly). Default: `2` */\n @Input() roundedCorners?: number | boolean\n\n /** Sets the minimum bar height for better visibility of small values. Default: `1` */\n @Input() barMinHeight?: number\n\n /** Configurable bar cursor when hovering over. Default: `null` */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Chart orientation: `Orientation.Vertical` or `Orientation.Horizontal`. Default `Orientation.Vertical` */\n @Input() orientation?: Orientation | string\n @Input() data: Datum[]\n\n component: GroupedBar<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new GroupedBar<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): GroupedBarConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, groupWidth, groupMaxWidth, dataStep, groupPadding, barPadding, roundedCorners, barMinHeight, cursor, orientation } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, groupWidth, groupMaxWidth, dataStep, groupPadding, barPadding, roundedCorners, barMinHeight, cursor, orientation }\n const keys = Object.keys(config) as (keyof GroupedBarConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisGroupedBarComponent } from './grouped-bar.component'\n\n@NgModule({\n imports: [],\n declarations: [VisGroupedBarComponent],\n exports: [VisGroupedBarComponent],\n})\nexport class VisGroupedBarModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Line,\n LineConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n CurveType,\n GenericAccessor,\n StringAccessor,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-line',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisLineComponent }],\n})\nexport class VisLineComponent<Datum> implements LineConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Line color accessor function. The whole data array will be passed as the first argument. Default: `undefined` */\n @Input() color?: ColorAccessor<Datum[]>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Curve type from the CurveType enum. Default: `CurveType.MonotoneX` */\n @Input() curveType?: CurveType\n\n /** Line width in pixels. Default: `2` */\n @Input() lineWidth?: number\n\n /** Line dash array, see SVG's stroke-dasharray. Default: `undefined` */\n @Input() lineDashArray?: GenericAccessor<number[], Datum[]>\n\n /** When a data point has an `undefined`, `NaN`, or other no-data value, they'll be replaced with a value specified here.\n * Setting this property to `undefined` will lead to having the line break when there's no data, and continue when\n * the data appears again. If you set it to `null`, the values will be treated as numerical `0` values and the line\n * won't break; however if the whole dataset consists of only `null`s, the line won't be displayed.\n * Default: `undefined` */\n @Input() fallbackValue?: number | undefined | null\n\n /** Highlight line on hover. Default: `false` */\n @Input() highlightOnHover?: boolean\n\n /** Optional link cursor. Default: `null` */\n @Input() cursor?: StringAccessor<Datum[]>\n\n /** Enable interpolated line where data points are missing or fallbackValue is used.\n * You can customize the line's appearance with `--vis-line-gapfill-stroke-dasharray`\n * and `--vis-line-gapfill-stroke-opacity` CSS variables.\n * Default: `false` */\n @Input() interpolateMissingData?: boolean\n @Input() data: Datum[]\n\n component: Line<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Line<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): LineConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, lineWidth, lineDashArray, fallbackValue, highlightOnHover, cursor, interpolateMissingData } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, curveType, lineWidth, lineDashArray, fallbackValue, highlightOnHover, cursor, interpolateMissingData }\n const keys = Object.keys(config) as (keyof LineConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisLineComponent } from './line.component'\n\n@NgModule({\n imports: [],\n declarations: [VisLineComponent],\n exports: [VisLineComponent],\n})\nexport class VisLineModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n NestedDonut,\n NestedDonutConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NestedDonutDirection,\n NumericAccessor,\n NestedDonutSegment,\n StringAccessor,\n GenericAccessor,\n NestedDonutLayerSettings,\n ColorAccessor,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-nested-donut',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisNestedDonutComponent }],\n})\nexport class VisNestedDonutComponent<Datum> implements NestedDonutConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Diagram angle range. Default: `[0, 2 * Math.PI]` */\n @Input() angleRange?: [number, number]\n\n /** Direction of hierarchy flow from root to leaf.\n * `NestedDonutDirection.Inwards` starts from the outer most radius and works towards center\n * `NestedDonutDirection.Outwards` starts from the inner most radius the consecutive layers outward.\n * Default: `NestedDonutDirection.Inwards` */\n @Input() direction?: NestedDonutDirection | string\n\n\n @Input() value?: NumericAccessor<Datum>\n\n /** Central label text. Default: `undefined` */\n @Input() centralLabel?: string\n\n /** Central sub-label accessor function or text. Default: `undefined` */\n @Input() centralSubLabel?: string\n\n /** Enables wrapping for the sub-label. Default: `true` */\n @Input() centralSubLabelWrap?: boolean\n\n /** Show donut background. The color is configurable via\n * the `--vis-nested-donut-background-color` and `--vis-dark-nested-donut-background-color` CSS variables.\n * Default: `false` */\n @Input() showBackground?: boolean\n\n /** Sort function for segments. Default `undefined` */\n @Input() sort?: (a: NestedDonutSegment<Datum>, b: NestedDonutSegment<Datum>) => number\n\n /** Array of accessor functions to defined the nested groups. Default: `[]` */\n @Input() layers: StringAccessor<Datum>[]\n\n /** Configuration properties for individual layers. Accepts an accessor or constant of type:\n * {\n * backgroundColor?: string;\n * labelAlignment?: NestedDonutSegmentLabelAlignment;\n * width?: number | string;\n * } */\n @Input() layerSettings?: GenericAccessor<NestedDonutLayerSettings, number>\n\n\n @Input() layerPadding?: number\n\n /** Corner Radius. Default: `0` */\n @Input() cornerRadius?: number\n\n /** Angular size for empty segments in radians. Default: `Math.PI / 180` */\n @Input() emptySegmentAngle?: number\n\n /** Hide segment labels when they don't fit. Default: `true` */\n @Input() hideOverflowingSegmentLabels?: boolean\n\n /** Color accessor function for segments. Default: `undefined` */\n @Input() segmentColor?: ColorAccessor<NestedDonutSegment<Datum>>\n\n /** Segment label accessor function. Default `undefined` */\n @Input() segmentLabel?: StringAccessor<NestedDonutSegment<Datum>>\n\n /** Color accessor function for segment labels */\n @Input() segmentLabelColor?: ColorAccessor<NestedDonutSegment<Datum>>\n\n /** When true, the component will display empty segments (the ones that have `0` values) as tiny slices.\n * Default: `false` */\n @Input() showEmptySegments?: boolean\n\n /** Show labels for individual segments. Default: `true` */\n @Input() showSegmentLabels?: boolean\n @Input() data: Datum[]\n\n component: NestedDonut<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new NestedDonut<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): NestedDonutConfigInterface<Datum> {\n const { duration, events, attributes, angleRange, direction, value, centralLabel, centralSubLabel, centralSubLabelWrap, showBackground, sort, layers, layerSettings, layerPadding, cornerRadius, emptySegmentAngle, hideOverflowingSegmentLabels, segmentColor, segmentLabel, segmentLabelColor, showEmptySegments, showSegmentLabels } = this\n const config = { duration, events, attributes, angleRange, direction, value, centralLabel, centralSubLabel, centralSubLabelWrap, showBackground, sort, layers, layerSettings, layerPadding, cornerRadius, emptySegmentAngle, hideOverflowingSegmentLabels, segmentColor, segmentLabel, segmentLabelColor, showEmptySegments, showSegmentLabels }\n const keys = Object.keys(config) as (keyof NestedDonutConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisNestedDonutComponent } from './nested-donut.component'\n\n@NgModule({\n imports: [],\n declarations: [VisNestedDonutComponent],\n exports: [VisNestedDonutComponent],\n})\nexport class VisNestedDonutModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Plotline,\n PlotlineConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n AxisType,\n PlotlineLineStylePresets,\n PlotlineLabelPosition,\n PlotlineLabelOrientation,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-plotline',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisPlotlineComponent }],\n})\nexport class VisPlotlineComponent<Datum> implements PlotlineConfigInterface<Datum>, AfterViewInit {\n /** Duration of the animation in milliseconds. */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Line width in pixels.\n * Uses CSS variable: `--vis-plotline-width`. */\n @Input() lineWidth?: number\n\n /** Plotline direction type.\n * Should be either `AxisType.X` or `AxisType.Y`. */\n @Input() axis?: AxisType | string\n\n /** Value to draw the plotline at. */\n @Input() value?: number | null | undefined\n\n /** Line style of the plotline.\n * Can be a named preset or an array of numbers representing `stroke-dasharray`.\n * Uses CSS variable: `--vis-plotline-dasharray`. */\n @Input() lineStyle?: PlotlineLineStylePresets | number[]\n\n /** Label text to display on the plotline. */\n @Input() labelText?: string\n\n /** Position of the label relative to the plotline. */\n @Input() labelPosition?: PlotlineLabelPosition\n\n /** Horizontal offset of the label in pixels. */\n @Input() labelOffsetX?: number\n\n /** Vertical offset of the label in pixels. */\n @Input() labelOffsetY?: number\n\n /** Orientation of the label: horizontal or vertical. */\n @Input() labelOrientation?: PlotlineLabelOrientation\n\n /** Color of the label text.\n * Uses CSS variable: `--vis-plotline-label-color`. */\n @Input() labelColor?: string\n\n /** Font size of the label text in pixels.\n * Uses CSS variable: `--vis-plotline-label-font-size`. */\n @Input() labelSize?: number\n\n component: Plotline<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Plotline<Datum>(this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): PlotlineConfigInterface<Datum> {\n const { duration, events, attributes, lineWidth, axis, value, lineStyle, labelText, labelPosition, labelOffsetX, labelOffsetY, labelOrientation, labelColor, labelSize } = this\n const config = { duration, events, attributes, lineWidth, axis, value, lineStyle, labelText, labelPosition, labelOffsetX, labelOffsetY, labelOrientation, labelColor, labelSize }\n const keys = Object.keys(config) as (keyof PlotlineConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisPlotlineComponent } from './plotline.component'\n\n@NgModule({\n imports: [],\n declarations: [VisPlotlineComponent],\n exports: [VisPlotlineComponent],\n})\nexport class VisPlotlineModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Sankey,\n SankeyConfigInterface,\n ContainerCore,\n SankeyInputNode,\n SankeyInputLink,\n VisEventType,\n VisEventCallback,\n SankeyExitTransitionType,\n SankeyEnterTransitionType,\n SankeyNode,\n SankeyLink,\n SankeyNodeAlign,\n StringAccessor,\n ColorAccessor,\n NumericAccessor,\n GenericAccessor,\n Position,\n VerticalAlign,\n FitMode,\n TrimMode,\n SankeySubLabelPlacement,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-sankey',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisSankeyComponent }],\n})\nexport class VisSankeyComponent<N extends SankeyInputNode, L extends SankeyInputLink> implements SankeyConfigInterface<N, L>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Node / Link id accessor function. Used for mapping of data updates to corresponding SVG objects. Default: `(d, i) => d.id ?? i.toString()` */\n @Input() id?: (d: SankeyInputNode | SankeyInputLink, i: number, ...rest) => string\n\n /** Coefficient to scale the height of the diagram when the amount of links is low: `C * links.length`, clamped to `[height / 2, height]`. Default: `1/16` */\n @Input() heightNormalizationCoeff?: number\n\n /** Type of animation on removing nodes. Default: `ExitTransitionType.Default` */\n @Input() exitTransitionType?: SankeyExitTransitionType\n\n /** Type of animation on creating nodes. Default: `EnterTransitionType.Default` */\n @Input() enterTransitionType?: SankeyEnterTransitionType\n\n /** Highlight the corresponding subtree on node / link hover. Default: `false` */\n @Input() highlightSubtreeOnHover?: boolean\n\n /** Highlight animation duration, ms. Default: `400` */\n @Input() highlightDuration?: number\n\n /** Highlight delay, ms. Default: `1000` */\n @Input() highlightDelay?: number\n\n /** Sankey algorithm iterations. Default: `32` */\n @Input() iterations?: number\n\n /** Sankey node sorting function. Default: `undefined`.\n * Node sorting is applied to nodes in one layer (column). Layer by layer.\n * Options: `undefined` - the order is determined by the layout;\n * `null` - the order is fixed by the input;\n * sort function - the order is determined by the function. */\n @Input() nodeSort?: ((node1: SankeyNode<N, L>, node2: SankeyNode<N, L>) => number) | null | undefined\n\n /** Sankey link sorting function. Default: `(link2, link1) => link1.value - link2.value`.\n * Link sorting is applied to the source (exiting) links within one node.\n * Options: `undefined` - the order is determined by the layout;\n * `null` - the order is fixed by the input;\n * sort function - the order is determined by the function. */\n @Input() linkSort?: ((link1: SankeyLink<N, L>, link2: SankeyLink<N, L>) => number) | null | undefined\n\n /** Sankey node width in pixels */\n @Input() nodeWidth?: number\n\n /** Sankey node alignment method */\n @Input() nodeAlign?: SankeyNodeAlign\n\n /** Horizontal space between the nodes. Extended Sizing property only. Default: `150` */\n @Input() nodeHorizontalSpacing?: number\n\n /** Minimum node height. Extended Sizing property only. Default: `20` */\n @Input() nodeMinHeight?: number\n\n /** Maximum node height. Extended Sizing property only. Default: `100` */\n @Input() nodeMaxHeight?: number\n\n /** Sankey vertical separation between nodes in pixels. Default: `2` */\n @Input() nodePadding?: number\n\n /** Display the graph when data has just one element */\n @Input() showSingleNode?: boolean\n\n /** Node cursor on hover. Default: `undefined` */\n @Input() nodeCursor?: StringAccessor<SankeyNode<N, L>>\n\n /** Node icon accessor function or value. Default: `undefined` */\n @Input() nodeIcon?: StringAccessor<SankeyNode<N, L>>\n\n /** Node color accessor function or value. Default: `undefined` */\n @Input() nodeColor?: ColorAccessor<SankeyNode<N, L>>\n\n /** Node `fixedValue` accessor function or constant. It defines the node value that will be used to calculate\n * the height of the nodes by d3-sankey (by default the height will be based on aggregated `linkValue`).\n * Default: `n => n.fixedValue` */\n @Input() nodeFixedValue?: NumericAccessor<N>\n\n /** Icon color accessor function or value. Default: `undefined` */\n @Input() nodeIconColor?: ColorAccessor<SankeyNode<N, L>>\n\n /** Link color accessor function or value. Default: `l => l.color` */\n @Input() linkColor?: StringAccessor<SankeyLink<N, L>>\n\n /** Link flow accessor function or value. Default: `l => l.value` */\n @Input() linkValue?: NumericAccessor<L>\n\n /** Link cursor on hover. Default: `undefined` */\n @Input() linkCursor?: StringAccessor<SankeyLink<N, L>>\n\n /** Node label accessor function or value. Default: `n => n.label` */\n @Input() label?: StringAccessor<SankeyNode<N, L>>\n\n /** Node sub-label accessor function or value. Default: `undefined` */\n @Input() subLabel?: StringAccessor<SankeyNode<N, L>>\n\n /** Label position relative to the Node. Default: `Position.AUTO` */\n @Input() labelPosition?: GenericAccessor<Position.Auto | Position.Left | Position.Right | string, SankeyNode<N, L>>\n\n /** Label vertical alignment */\n @Input() labelVerticalAlign?: VerticalAlign | string\n\n /** Label background */\n @Input() labelBackground?: boolean\n\n /** Label fit mode (wrap or trim). Default: `FitMode.TRIM` * */\n @Input() labelFit?: FitMode\n\n /** Maximum label with in pixels. Default: `70` */\n @Input() labelMaxWidth?: number\n\n /** Expand trimmed label on hover. Default: `true` */\n @Input() labelExpandTrimmedOnHover?: boolean\n\n /** Label trimming mode. Default: `TrimMode.Middle` */\n @Input() labelTrimMode?: TrimMode\n\n /** Label font size in pixels. If not provided, the value of CSS variable `--vis-sankey-node-label-font-size` will be used. Default: `undefined` */\n @Input() labelFontSize?: number\n\n /** Label text separators for wrapping. Default: `[' ', '-']` */\n @Input() labelTextSeparator?: string[]\n\n /** Force break words to fit long labels. Default: `true` */\n @Input() labelForceWordBreak?: boolean\n\n /** Label color. Default: `undefined` */\n @Input() labelColor?: ColorAccessor<SankeyNode<N, L>>\n\n /** Label cursor on hover. Default: `undefined` */\n @Input() labelCursor?: StringAccessor<SankeyNode<N, L>>\n\n /** Custom function to set the label visibility. Default: `undefined` */\n @Input() labelVisibility?: ((d: SankeyNode<N, L>, bbox: {\n x: number;\n y: number;\n width: number;\n height: number;\n }, hovered: boolean) => boolean) | undefined\n\n /** Sub-label font size in pixels. If not provided, the value of CSS variable `--vis-sankey-node-sublabel-font-size` will be used. Default: `undefined` */\n @Input() subLabelFontSize?: number\n\n /** Sub-label color. Default: `undefined` */\n @Input() subLabelColor?: ColorAccessor<SankeyNode<N, L>>\n\n /** Sub-label position. Default: `SankeySubLabelPlacement.Below` */\n @Input() subLabelPlacement?: SankeySubLabelPlacement | string\n\n /** Sub-label to label width ratio when `subLabelPlacement` is set to `SankeySubLabelPlacement.Inline`\n * Default: `0.4`, which means that 40% of `labelMaxWidth` will be given to sub-label, and 60% to the main label. */\n @Input() subLabelToLabelInlineWidthRatio?: number\n @Input() data: { nodes: N[]; links?: L[] }\n\n component: Sankey<N, L> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Sankey<N, L>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): SankeyConfigInterface<N, L> {\n const { duration, events, attributes, id, heightNormalizationCoeff, exitTransitionType, enterTransitionType, highlightSubtreeOnHover, highlightDuration, highlightDelay, iterations, nodeSort, linkSort, nodeWidth, nodeAlign, nodeHorizontalSpacing, nodeMinHeight, nodeMaxHeight, nodePadding, showSingleNode, nodeCursor, nodeIcon, nodeColor, nodeFixedValue, nodeIconColor, linkColor, linkValue, linkCursor, label, subLabel, labelPosition, labelVerticalAlign, labelBackground, labelFit, labelMaxWidth, labelExpandTrimmedOnHover, labelTrimMode, labelFontSize, labelTextSeparator, labelForceWordBreak, labelColor, labelCursor, labelVisibility, subLabelFontSize, subLabelColor, subLabelPlacement, subLabelToLabelInlineWidthRatio } = this\n const config = { duration, events, attributes, id, heightNormalizationCoeff, exitTransitionType, enterTransitionType, highlightSubtreeOnHover, highlightDuration, highlightDelay, iterations, nodeSort, linkSort, nodeWidth, nodeAlign, nodeHorizontalSpacing, nodeMinHeight, nodeMaxHeight, nodePadding, showSingleNode, nodeCursor, nodeIcon, nodeColor, nodeFixedValue, nodeIconColor, linkColor, linkValue, linkCursor, label, subLabel, labelPosition, labelVerticalAlign, labelBackground, labelFit, labelMaxWidth, labelExpandTrimmedOnHover, labelTrimMode, labelFontSize, labelTextSeparator, labelForceWordBreak, labelColor, labelCursor, labelVisibility, subLabelFontSize, subLabelColor, subLabelPlacement, subLabelToLabelInlineWidthRatio }\n const keys = Object.keys(config) as (keyof SankeyConfigInterface<N, L>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisSankeyComponent } from './sankey.component'\n\n@NgModule({\n imports: [],\n declarations: [VisSankeyComponent],\n exports: [VisSankeyComponent],\n})\nexport class VisSankeyModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Scatter,\n ScatterConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n SymbolType,\n StringAccessor,\n GenericAccessor,\n Position,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-scatter',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisScatterComponent }],\n})\nexport class VisScatterComponent<Datum> implements ScatterConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Point color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Size of the scatter plot marker (e.g. diameter if `SymbolType.Circle` is used for `shape`) in pixels.\n * Can be a constant value or an accessor function. But if `sizeRange` is set, then the values will be treated\n * as an input to `sizeScale`, and the resulting size will be different.\n * Default: `10` */\n @Input() size?: NumericAccessor<Datum>\n\n /** Size scale to be used if the `sizeRange` was set. Default: `Scale.scaleSqrt()` */\n @Input() sizeScale?: ContinuousScale\n\n /** Size range in the format of `[number, number]` to rescale the input values. Default: `undefined` */\n @Input() sizeRange?: [number, number]\n\n /** Shape of the scatter point. Accessor function or constant value: `SymbolType.Circle`, `SymbolType.Cross`, `SymbolType.Diamond`, `SymbolType.Square`,\n * `SymbolType.Star`, `SymbolType.Triangle` or `SymbolType.Wye`.\n * Default: `SymbolType.Circle` */\n @Input() shape?: ((d: Datum, i?: number, ...rest) => (SymbolType | string)) | SymbolType | string\n\n /** Label accessor function or string. Default: `undefined` */\n @Input() label?: StringAccessor<Datum>\n\n /** Label color. Default: `undefined` */\n @Input() labelColor?: ColorAccessor<Datum>\n\n /** Hide overlapping labels. Default: `true` */\n @Input() labelHideOverlapping?: boolean\n\n /** Optional point cursor. Default: `null` */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Point color brightness ratio for switching between dark and light text label color. Default: `0.65` */\n @Input() labelTextBrightnessRatio?: number\n\n /** Label position. Default: `Position.Bottom` */\n @Input() labelPosition?: GenericAccessor<Position | string, Datum>\n\n /** Point stroke color. Default: `undefined` */\n @Input() strokeColor?: ColorAccessor<Datum>\n\n /** Point stroke width. Default: `undefined` */\n @Input() strokeWidth?: NumericAccessor<Datum>\n @Input() data: Datum[]\n\n component: Scatter<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Scatter<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): ScatterConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, size, sizeScale, sizeRange, shape, label, labelColor, labelHideOverlapping, cursor, labelTextBrightnessRatio, labelPosition, strokeColor, strokeWidth } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, size, sizeScale, sizeRange, shape, label, labelColor, labelHideOverlapping, cursor, labelTextBrightnessRatio, labelPosition, strokeColor, strokeWidth }\n const keys = Object.keys(config) as (keyof ScatterConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisScatterComponent } from './scatter.component'\n\n@NgModule({\n imports: [],\n declarations: [VisScatterComponent],\n exports: [VisScatterComponent],\n})\nexport class VisScatterModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n StackedBar,\n StackedBarConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n StringAccessor,\n Orientation,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-stacked-bar',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisStackedBarComponent }],\n})\nexport class VisStackedBarComponent<Datum> implements StackedBarConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** A single of multiple accessor functions for getting the values along the Y axis. Default: `undefined` */\n @Input() y: NumericAccessor<Datum> | NumericAccessor<Datum>[]\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Bar color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Force set bar width in pixels. Default: `undefined` */\n @Input() barWidth?: number\n\n /** Maximum bar width for dynamic sizing. Default: `undefined` */\n @Input() barMaxWidth?: number\n\n /** Expected step between the bars in the X axis units.\n * Needed to correctly calculate the width of the bars when there are gaps in the data.\n * Default: `undefined` */\n @Input() dataStep?: number\n\n /** Fractional padding between the bars in the range of [0,1). Default: `0` */\n @Input() barPadding?: number\n\n /** Rounded corners for top bars. Boolean or number (to set the radius in pixels). Default: `2` */\n @Input() roundedCorners?: number | boolean\n\n /** Configurable bar cursor when hovering over. Default: `null` */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Sets the minimum bar height to 1 pixel for better visibility of small values. Default: `false` */\n @Input() barMinHeight1Px?: boolean\n\n /** Base value to test data existence when `barMinHeight1Px` is set to `true`.\n * Everything equal to barMinHeightZeroValue will not be rendered on the chart.\n * Default: `null` */\n @Input() barMinHeightZeroValue?: any\n\n /** Chart orientation: `Orientation.Vertical` or `Orientation.Horizontal`. Default `Orientation.Vertical` */\n @Input() orientation?: Orientation | string\n @Input() data: Datum[]\n\n component: StackedBar<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new StackedBar<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): StackedBarConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, barWidth, barMaxWidth, dataStep, barPadding, roundedCorners, cursor, barMinHeight1Px, barMinHeightZeroValue, orientation } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, barWidth, barMaxWidth, dataStep, barPadding, roundedCorners, cursor, barMinHeight1Px, barMinHeightZeroValue, orientation }\n const keys = Object.keys(config) as (keyof StackedBarConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisStackedBarComponent } from './stacked-bar.component'\n\n@NgModule({\n imports: [],\n declarations: [VisStackedBarComponent],\n exports: [VisStackedBarComponent],\n})\nexport class VisStackedBarModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Timeline,\n TimelineConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n StringAccessor,\n GenericAccessor,\n Arrangement,\n TimelineRowLabel,\n TimelineRowIcon,\n TextAlign,\n TimelineArrow,\n TimelineLineRenderState,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-timeline',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisTimelineComponent }],\n})\nexport class VisTimelineComponent<Datum> implements TimelineConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Timeline item color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** */\n @Input() type?: StringAccessor<Datum>\n\n /** */\n @Input() length?: NumericAccessor<Datum>\n\n /** */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Timeline item row accessor function. Records with the `lineRow` will be plotted in one row. Default: `undefined` */\n @Input() lineRow?: StringAccessor<Datum>\n\n /** Timeline item duration accessor function. Default: `undefined`. Falls back to the deprecated `length` property */\n @Input() lineDuration?: NumericAccessor<Datum>\n\n /** Width of the timeline items. Default: `8` */\n @Input() lineWidth?: NumericAccessor<Datum>\n\n /** Display rounded ends for timeline items. Default: `true` */\n @Input() lineCap?: boolean\n\n /** Provide a href to an SVG defined in container's `svgDefs` to display an icon at the start of the line. Default: undefined */\n @Input() lineStartIcon?: StringAccessor<Datum>\n\n /** Line start icon color accessor function. Default: `undefined` */\n @Input() lineStartIconColor?: StringAccessor<Datum>\n\n /** Line start icon size accessor function. Default: `undefined` */\n @Input() lineStartIconSize?: NumericAccessor<Datum>\n\n /** Line start icon arrangement configuration. Controls how the icon is positioned relative to the line.\n * Accepts values from the Arrangement enum: `Arrangement.Start`, `Arrangement.Middle`, `Arrangement.End` or a string equivalent.\n * Default: `Arrangement.Inside` */\n @Input() lineStartIconArrangement?: GenericAccessor<Arrangement | any, Datum>\n\n /** Provide a href to an SVG defined in container's `svgDefs` to display an icon at the end of the line. Default: undefined */\n @Input() lineEndIcon?: StringAccessor<Datum>\n\n /** Line end icon color accessor function. Default: `undefined` */\n @Input() lineEndIconColor?: StringAccessor<Datum>\n\n /** Line end icon size accessor function. Default: `undefined` */\n @Input() lineEndIconSize?: NumericAccessor<Datum>\n\n /** Line end icon arrangement configuration. Controls how the icon is positioned relative to the line.\n * Accepts values from the Arrangement enum: `Arrangement.Start`, `Arrangement.Middle`, `Arrangement.End` or a string equivalent.\n * Default: `Arrangement.Inside` */\n @Input() lineEndIconArrangement?: GenericAccessor<Arrangement | any, Datum>\n\n /** Configurable Timeline item cursor when hovering over. Default: `undefined` */\n @Input() lineCursor?: StringAccessor<Datum>\n\n /** Sets the minimum line length to 1 pixel for better visibility of small values.\n * When `lineCap` is set to `true`, the segment will be rendered as a circle.\n * Default: `false` */\n @Input() showEmptySegments?: boolean\n\n /** Center small segments when `showEmptySegments` and `lineCap` are set to `true`.\n * Default: `true` */\n @Input() showEmptySegmentsCorrectPosition?: boolean\n\n /** Timeline row height. Default: `22` */\n @Input() rowHeight?: number\n\n /** Alternating row colors. Default: `true` */\n @Input() alternatingRowColors?: boolean\n\n /** */\n @Input() showLabels?: boolean\n\n /** */\n @Input() labelWidth?: number\n\n /** */\n @Input() maxLabelWidth?: number\n\n /** Show row labels when set to `true`. Default: `false`. Falls back to deprecated `showLabels` */\n @Input() showRowLabels?: boolean\n\n /** Row label style as an object with the `{ [property-name]: value }` format. Default: `undefined` */\n @Input() rowLabelStyle?: GenericAccessor<Record<string, string>, TimelineRowLabel<Datum>>\n\n /** Row label formatter function. Default: `undefined` */\n @Input() rowLabelFormatter?: (key: string, items: Datum[], i: number) => string\n\n /** Provide an icon href to be displayed before the row label. Default: `undefined` */\n @Input() rowIcon?: (key: string, items: Datum[], i: number) => TimelineRowIcon | undefined\n\n /** Fixed label width in pixels. Labels longer than the specified value will be trimmed. Default: `undefined`. Falls back to deprecated `labelWidth`. */\n @Input() rowLabelWidth?: number\n\n /** Maximum label width in pixels. Labels longer than the specified value will be trimmed. Default: `undefined`. Falls back to deprecated `maxLabelWidth`. */\n @Input() rowMaxLabelWidth?: number\n\n /** Text alignment for labels: `TextAlign.Left`, `TextAlign.Center` or `TextAlign.Right`. Default: `TextAlign.Right` */\n @Input() rowLabelTextAlign?: TextAlign | any\n\n\n @Input() arrows?: TimelineArrow[]\n\n /** Control the animation by specify the initial position for new lines as [x, y]. Default: `undefined` */\n @Input() animationLineEnterPosition?: [number | undefined | null, number | undefined | null] | ((d: Datum & TimelineLineRenderState, i: number, data: (Datum & TimelineLineRenderState)[]) => [number | undefined, number | undefined]) | undefined\n\n /** Control the animation by specify the destination position for exiting lines as [x, y]. Default: `undefined` */\n @Input() animationLineExitPosition?: [number | undefined | null, number | undefined | null] | ((d: Datum & TimelineLineRenderState, i: number, data: (Datum & TimelineLineRenderState)[]) => [number | undefined, number | undefined]) | undefined\n\n /** Scrolling callback function: `(scrollTop: number) => void`. Default: `undefined` */\n @Input() onScroll?: (scrollTop: number) => void\n @Input() data: Datum[]\n\n component: Timeline<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Timeline<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): TimelineConfigInterface<Datum> {\n const { duration, events, attributes, x, id, color, xScale, yScale, excludeFromDomainCalculation, type, length, cursor, lineRow, lineDuration, lineWidth, lineCap, lineStartIcon, lineStartIconColor, lineStartIconSize, lineStartIconArrangement, lineEndIcon, lineEndIconColor, lineEndIconSize, lineEndIconArrangement, lineCursor, showEmptySegments, showEmptySegmentsCorrectPosition, rowHeight, alternatingRowColors, showLabels, labelWidth, maxLabelWidth, showRowLabels, rowLabelStyle, rowLabelFormatter, rowIcon, rowLabelWidth, rowMaxLabelWidth, rowLabelTextAlign, arrows, animationLineEnterPosition, animationLineExitPosition, onScroll } = this\n const config = { duration, events, attributes, x, id, color, xScale, yScale, excludeFromDomainCalculation, type, length, cursor, lineRow, lineDuration, lineWidth, lineCap, lineStartIcon, lineStartIconColor, lineStartIconSize, lineStartIconArrangement, lineEndIcon, lineEndIconColor, lineEndIconSize, lineEndIconArrangement, lineCursor, showEmptySegments, showEmptySegmentsCorrectPosition, rowHeight, alternatingRowColors, showLabels, labelWidth, maxLabelWidth, showRowLabels, rowLabelStyle, rowLabelFormatter, rowIcon, rowLabelWidth, rowMaxLabelWidth, rowLabelTextAlign, arrows, animationLineEnterPosition, animationLineExitPosition, onScroll }\n const keys = Object.keys(config) as (keyof TimelineConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisTimelineComponent } from './timeline.component'\n\n@NgModule({\n imports: [],\n declarations: [VisTimelineComponent],\n exports: [VisTimelineComponent],\n})\nexport class VisTimelineModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n XYLabels,\n XYLabelsConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n ContinuousScale,\n GenericAccessor,\n XYLabelPositioning,\n StringAccessor,\n XYLabel,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-xy-labels',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisXYLabelsComponent }],\n})\nexport class VisXYLabelsComponent<Datum> implements XYLabelsConfigInterface<Datum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Accessor function for getting the values along the X axis. Default: `undefined` */\n @Input() x: NumericAccessor<Datum>\n\n /** Single Y accessor function. Default: `undefined` */\n @Input() y: NumericAccessor<Datum>\n\n /** Accessor function for getting the unique data record id. Used for more persistent data updates. Default: `(d, i) => d.id ?? i` */\n @Input() id?: ((d: Datum, i: number, ...rest) => string)\n\n /** Label color accessor function. Default: `d => d.color` */\n @Input() color?: ColorAccessor<Datum>\n\n /** Scale for X dimension, e.g. Scale.scaleLinear(). If you set xScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() xScale?: ContinuousScale\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear(). If you set yScale you'll be responsible for setting it's `domain` and `range` as well.\n * Only continuous scales are supported.\n * Default: `undefined` */\n @Input() yScale?: ContinuousScale\n\n /** Identifies whether the component should be excluded from overall X and Y domain calculations or not.\n * This property can be useful when you want pass individual data to a component and you don't want it to affect\n * the scales of the chart.\n * Default: `false` */\n @Input() excludeFromDomainCalculation?: boolean\n\n /** Defines how to position the label horizontally: in data space or in screen space. Default: `XYLabelPositioning.DataSpace` */\n @Input() xPositioning?: GenericAccessor<XYLabelPositioning | string, Datum>\n\n /** Defines how to position the label vertically: in data space or in screen space. Default: `XYLabelPositioning.DataSpace` */\n @Input() yPositioning?: GenericAccessor<XYLabelPositioning | string, Datum>\n\n /** Font size accessor function or constant value in pixels. If not provided, the value of CSS variable `--vis-xy-label-font-size` will be used. Default: `undefined` */\n @Input() labelFontSize?: NumericAccessor<Datum>\n\n /** Label accessor function or string. Default: `undefined` */\n @Input() label?: StringAccessor<Datum>\n\n /** Label color. Default: `undefined` */\n @Input() backgroundColor?: ColorAccessor<Datum>\n\n /** Optional label cursor. Default: `null` */\n @Input() cursor?: StringAccessor<Datum>\n\n /** Label color brightness ratio for switching between dark and light text label color. Default: `0.65` */\n @Input() labelTextBrightnessRatio?: number\n\n /** Enable label clustering. Default: `true` */\n @Input() clustering?: boolean\n\n /** Label accessor for clusters. Default: `undefined` */\n @Input() clusterLabel?: StringAccessor<XYLabel<Datum>[]>\n\n /** Font size accessor for clusters, the value is in pixels. If not provided, the value of CSS variable `--vis-xy-label-cluster-font-size` will be used. Default: `undefined` */\n @Input() clusterFontSize?: NumericAccessor<XYLabel<Datum>[]>\n\n /** Background color accessor for clusters. Default: `undefined` */\n @Input() clusterBackgroundColor?: ColorAccessor<XYLabel<Datum>[]>\n\n /** Optional cluster cursor. Default: `null` */\n @Input() clusterCursor?: StringAccessor<XYLabel<Datum>[]>\n\n /** Cluster label color accessor function. Default: `null` */\n @Input() clusterLabelColor?: ColorAccessor<XYLabel<Datum>[]>\n @Input() data: Datum[]\n\n component: XYLabels<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new XYLabels<Datum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): XYLabelsConfigInterface<Datum> {\n const { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, xPositioning, yPositioning, labelFontSize, label, backgroundColor, cursor, labelTextBrightnessRatio, clustering, clusterLabel, clusterFontSize, clusterBackgroundColor, clusterCursor, clusterLabelColor } = this\n const config = { duration, events, attributes, x, y, id, color, xScale, yScale, excludeFromDomainCalculation, xPositioning, yPositioning, labelFontSize, label, backgroundColor, cursor, labelTextBrightnessRatio, clustering, clusterLabel, clusterFontSize, clusterBackgroundColor, clusterCursor, clusterLabelColor }\n const keys = Object.keys(config) as (keyof XYLabelsConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisXYLabelsComponent } from './xy-labels.component'\n\n@NgModule({\n imports: [],\n declarations: [VisXYLabelsComponent],\n exports: [VisXYLabelsComponent],\n})\nexport class VisXYLabelsModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n TopoJSONMap,\n TopoJSONMapConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n NumericAccessor,\n ColorAccessor,\n StringAccessor,\n MapPointLabelPosition,\n TopoJSONMapPointStyles,\n} from '@unovis/ts'\nimport { GeoProjection } from 'd3-geo'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-topojson-map',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisTopoJSONMapComponent }],\n})\nexport class VisTopoJSONMapComponent<AreaDatum, PointDatum, LinkDatum> implements TopoJSONMapConfigInterface<AreaDatum, PointDatum, LinkDatum>, AfterViewInit {\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** MapProjection (aka D3's GeoProjection) instance. Default: `MapProjection.Kavrayskiy7()` */\n @Input() projection?: GeoProjection\n\n /** Map data in the TopoJSON topology format. Default: `undefined` */\n @Input() topojson?: TopoJSON.Topology\n\n /** Name of the map features to be displayed, e.g. 'countries' or 'counties'. Default: `countries` */\n @Input() mapFeatureName?: string\n\n /** Set initial map fit to points instead of topojson features. Default: `false` */\n @Input() mapFitToPoints?: boolean\n\n /** Initial zoom level. Default: `undefined` */\n @Input() zoomFactor?: number\n\n /** Disable pan / zoom interactions. Default: `false` */\n @Input() disableZoom?: boolean\n\n /** Zoom extent. Default: `[0.5, 6]` */\n @Input() zoomExtent?: number[]\n\n /** Zoom animation duration. Default: `400` */\n @Input() zoomDuration?: number\n\n /** Link width value or accessor function. Default: `d => d.width ?? 1` */\n @Input() linkWidth?: NumericAccessor<LinkDatum>\n\n /** Link color value or accessor function. Default: `d => d.color ?? null` */\n @Input() linkColor?: ColorAccessor<LinkDatum>\n\n /** Link cursor value or accessor function. Default: `null` */\n @Input() linkCursor?: StringAccessor<LinkDatum>\n\n /** Link id accessor function. Default: `d => d.id` */\n @Input() linkId?: StringAccessor<LinkDatum>\n\n /** Link source accessor function. Default: `d => d.source` */\n @Input() linkSource?: ((l: LinkDatum) => number | string | PointDatum)\n\n /** Link target accessor function. Default: `d => d.target` */\n @Input() linkTarget?: ((l: LinkDatum) => number | string | PointDatum)\n\n /** Area id accessor function corresponding to the feature id from TopoJSON. Default: `d => d.id ?? ''` */\n @Input() areaId?: StringAccessor<AreaDatum>\n\n /** Area color value or accessor function. Default: `d => d.color ?? null` */\n @Input() areaColor?: ColorAccessor<AreaDatum>\n\n /** Area cursor value or accessor function. Default: `null` */\n @Input() areaCursor?: StringAccessor<AreaDatum>\n\n /** Point color accessor. Default: `d => d.color ?? null` */\n @Input() pointColor?: ColorAccessor<PointDatum>\n\n /** Point radius accessor. Default: `d => d.radius ?? 8` */\n @Input() pointRadius?: NumericAccessor<PointDatum>\n\n /** Point stroke width accessor. Default: `d => d.strokeWidth ?? null` */\n @Input() pointStrokeWidth?: NumericAccessor<PointDatum>\n\n /** Point shape accessor. Default: `TopoJSONMapPointShape.Circle` */\n @Input() pointShape?: StringAccessor<PointDatum>\n\n /** Point ring width for ring-shaped points. Default: `2` */\n @Input() pointRingWidth?: NumericAccessor<PointDatum>\n\n /** Point cursor constant value or accessor function. Default: `null` */\n @Input() pointCursor?: StringAccessor<PointDatum>\n\n /** Point longitude accessor function. Default: `d => d.longitude ?? null` */\n @Input() longitude?: NumericAccessor<PointDatum>\n\n /** Point latitude accessor function. Default: `d => d.latitude ?? null` */\n @Input() latitude?: NumericAccessor<PointDatum>\n\n /** Point label accessor function. Default: `undefined` */\n @Input() pointLabel?: StringAccessor<PointDatum>\n\n /** Point label position. Default: `Position.Bottom` */\n @Input() pointLabelPosition?: MapPointLabelPosition\n\n /** Point color brightness ratio for switching between dark and light text label color. Default: `0.65` */\n @Input() pointLabelTextBrightnessRatio?: number\n\n /** Point id accessor function. Default: `d => d.id` */\n @Input() pointId?: ((d: PointDatum, i: number) => string)\n\n /** A single map point can have multiple properties displayed as a small pie chart.\n * By setting the colorMap configuration you can specify data properties that should be mapped to various pie / donut segments.\n *\n * ```\n * {\n * \\[key in keyof PointDatum]?: { color: string, className?: string }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\healthy: { color: 'green' },\n * \\warning: { color: 'orange' },\n * \\critical: { color: 'red' }\n * }\n * ```\n * where every data point has the `healthy`, `warning` and `critical` numerical or boolean property. */\n @Input() colorMap?: TopoJSONMapPointStyles<PointDatum>\n\n /** Enables blur and blending between neighbouring points. Default: `false` */\n @Input() heatmapMode?: boolean\n\n /** Heatmap blur filter stdDeviation value. Default: `10` */\n @Input() heatmapModeBlurStdDeviation?: number\n\n /** Zoom level at which the heatmap mode will be disabled. Default: `2.5` */\n @Input() heatmapModeZoomLevelThreshold?: number\n @Input() data: {areas?: AreaDatum[]; points?: PointDatum[]; links?: LinkDatum[]}\n\n component: TopoJSONMap<AreaDatum, PointDatum, LinkDatum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new TopoJSONMap<AreaDatum, PointDatum, LinkDatum>(this.getConfig())\n\n if (this.data) {\n this.component.setData(this.data)\n this.componentContainer?.render()\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): TopoJSONMapConfigInterface<AreaDatum, PointDatum, LinkDatum> {\n const { duration, events, attributes, projection, topojson, mapFeatureName, mapFitToPoints, zoomFactor, disableZoom, zoomExtent, zoomDuration, linkWidth, linkColor, linkCursor, linkId, linkSource, linkTarget, areaId, areaColor, areaCursor, pointColor, pointRadius, pointStrokeWidth, pointShape, pointRingWidth, pointCursor, longitude, latitude, pointLabel, pointLabelPosition, pointLabelTextBrightnessRatio, pointId, colorMap, heatmapMode, heatmapModeBlurStdDeviation, heatmapModeZoomLevelThreshold } = this\n const config = { duration, events, attributes, projection, topojson, mapFeatureName, mapFitToPoints, zoomFactor, disableZoom, zoomExtent, zoomDuration, linkWidth, linkColor, linkCursor, linkId, linkSource, linkTarget, areaId, areaColor, areaCursor, pointColor, pointRadius, pointStrokeWidth, pointShape, pointRingWidth, pointCursor, longitude, latitude, pointLabel, pointLabelPosition, pointLabelTextBrightnessRatio, pointId, colorMap, heatmapMode, heatmapModeBlurStdDeviation, heatmapModeZoomLevelThreshold }\n const keys = Object.keys(config) as (keyof TopoJSONMapConfigInterface<AreaDatum, PointDatum, LinkDatum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisTopoJSONMapComponent } from './topojson-map.component'\n\n@NgModule({\n imports: [],\n declarations: [VisTopoJSONMapComponent],\n exports: [VisTopoJSONMapComponent],\n})\nexport class VisTopoJSONMapModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges } from '@angular/core'\nimport {\n Plotband,\n PlotbandConfigInterface,\n ContainerCore,\n VisEventType,\n VisEventCallback,\n AxisType,\n PlotbandLabelPosition,\n PlotbandLabelOrientation,\n} from '@unovis/ts'\nimport { VisXYComponent } from '../../core'\n\n@Component({\n selector: 'vis-plotband',\n template: '',\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisXYComponent, useExisting: VisPlotbandComponent }],\n})\nexport class VisPlotbandComponent<Datum> implements PlotbandConfigInterface<Datum>, AfterViewInit {\n /** Duration of the animation in milliseconds. */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Axis to draw the plotband on. */\n @Input() axis?: AxisType\n\n /** Start coordinate for the plotband. */\n @Input() from?: number | null | undefined\n\n /** End coordinate for the plotband. */\n @Input() to?: number | null | undefined\n\n /** Optional text to display on the plotband */\n @Input() labelText?: string\n\n /** Position of the label relative to the plotband area (e.g., 'top-left-outside').\n * Can be customized with a string. */\n @Input() labelPosition?: PlotbandLabelPosition\n\n /** Horizontal offset (in pixels) for positioning the label. */\n @Input() labelOffsetX?: number\n\n /** Vertical offset (in pixels) for positioning the label. */\n @Input() labelOffsetY?: number\n\n /** Orientation of the label text. */\n @Input() labelOrientation?: PlotbandLabelOrientation\n\n /** Optional color for the label text */\n @Input() labelColor?: string\n\n /** Font size (in pixels) for the label text.\n * Uses the CSS variable `--vis-plotband-label-font-size` by default, which resolves to `12px`. */\n @Input() labelSize?: number\n\n component: Plotband<Datum> | undefined\n public componentContainer: ContainerCore | undefined\n\n ngAfterViewInit (): void {\n this.component = new Plotband<Datum>(this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n this.componentContainer?.render()\n }\n\n private getConfig (): PlotbandConfigInterface<Datum> {\n const { duration, events, attributes, axis, from, to, labelText, labelPosition, labelOffsetX, labelOffsetY, labelOrientation, labelColor, labelSize } = this\n const config = { duration, events, attributes, axis, from, to, labelText, labelPosition, labelOffsetX, labelOffsetY, labelOrientation, labelColor, labelSize }\n const keys = Object.keys(config) as (keyof PlotbandConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisPlotbandComponent } from './plotband.component'\n\n@NgModule({\n imports: [],\n declarations: [VisPlotbandComponent],\n exports: [VisPlotbandComponent],\n})\nexport class VisPlotbandModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges, ViewChild, ElementRef } from '@angular/core'\nimport {\n LeafletMap,\n LeafletMapConfigInterface,\n GenericDataRecord,\n VisEventType,\n VisEventCallback,\n Bounds,\n MapLibreStyleSpecs,\n LeafletMapRenderer,\n MapZoomState,\n NumericAccessor,\n StringAccessor,\n GenericAccessor,\n LeafletMapPointShape,\n ColorAccessor,\n LeafletMapPointDatum,\n LeafletMapClusterDatum,\n LeafletMapPointStyles,\n Tooltip,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-leaflet-map',\n template: '<div #container class=\"leaflet-map-container\"></div>',\n styles: ['.leaflet-map-container { width: 100%; height: 100%; position: relative }'],\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisLeafletMapComponent }],\n})\nexport class VisLeafletMapComponent<Datum extends GenericDataRecord> implements LeafletMapConfigInterface<Datum>, AfterViewInit {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Width in pixels or in CSS units. By default, the map will automatically fit to the size of the parent element. Default: `undefined`. */\n @Input() width?: number | string\n\n /** Height in pixels or in CSS units. By default, the map will automatically fit to the size of the parent element. Default: `undefined`. */\n @Input() height?: number | string\n\n /** Animation duration when the map is automatically panning or zooming to a point or area. Default: `1500` ms */\n @Input() flyToDuration?: number\n\n /** Padding to be used when the `fitView` function has been called. The value is in pixels, [topLeft, bottomRight]. Default: `[150, 150]` */\n @Input() fitViewPadding?: [number, number]\n\n /** Animation duration for the `setZoom` function. Default: `800` ms */\n @Input() zoomDuration?: number\n\n /** Default bounds that will be applied on the first map render if the bounds property is not set. Default: `undefined` */\n @Input() initialBounds?: Bounds\n\n /** Force set map bounds on config and data updates. Default: `undefined` */\n @Input() fitBoundsOnUpdate?: Bounds\n\n /** Fit the view to contain the data points on map initialization. Default: `true` */\n @Input() fitViewOnInit?: boolean\n\n /** Fit the view to contain the data points on map config and data updates. Default: `false` */\n @Input() fitViewOnUpdate?: boolean\n\n /** MapLibre `StyleSpecification` settings, or a URL to it. When renderer is set to`LeafletMapRenderer.Raster`, provide a template URL. Default: `undefined` */\n @Input() style: MapLibreStyleSpecs | string | undefined\n\n /** MapLibre `StyleSpecification` settings or URL for dark theme. Default: `undefined` */\n @Input() styleDarkTheme?: MapLibreStyleSpecs | string | undefined\n\n /** Tile server access token or API key. Default: `''` */\n @Input() accessToken?: string\n\n /** Array of attribution labels. Default: `['<a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap contributors</a>']` */\n @Input() attribution?: string[]\n\n /** Rendering mode for map's tile layer. For raster files, use `LeafletMapRenderer.Raster`. Default: `LeafletMapRenderer.MapLibre` */\n @Input() renderer?: LeafletMapRenderer | string\n\n /** Function to be called after the map's async initialization is done. Default: `undefined` */\n @Input() onMapInitialized?: (() => void)\n\n /** Map Move / Zoom unified callback function. Default: `undefined` */\n @Input() onMapMoveZoom?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Move Start callback function. Default: `undefined` */\n @Input() onMapMoveStart?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Move End callback function. Default: `undefined` */\n @Input() onMapMoveEnd?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom Start callback function. Default: `undefined` */\n @Input() onMapZoomStart?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom End callback function. Default: `undefined` */\n @Input() onMapZoomEnd?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom Click callback function. Default: `undefined` */\n @Input() onMapClick?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Point longitude accessor function. Default: `d => d.longitude` */\n @Input() pointLongitude?: NumericAccessor<Datum>\n\n /** Point latitude accessor function. Default: `d => d.latitude` */\n @Input() pointLatitude?: NumericAccessor<Datum>\n\n /** Point id accessor function or constant value. Default: `d => d.id` */\n @Input() pointId?: StringAccessor<Datum>\n\n /** Point shape accessor function or constant value. Default: `d => d.shape` */\n @Input() pointShape?: GenericAccessor<LeafletMapPointShape | string, Datum>\n\n /** Point color accessor function or constant value. Default: `d => d.color` */\n @Input() pointColor?: ColorAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point radius accessor function or constant value. Default: `undefined` */\n @Input() pointRadius?: NumericAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point inner label accessor function. Default: `undefined` */\n @Input() pointLabel?: StringAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point inner label color accessor function or constant value.\n * By default, the label color will be set, depending on the point brightness, either to\n * `--vis-map-point-inner-label-text-color-light` or to `--vis-map-point-inner-label-text-color-dark` CSS variable.\n * Default: `undefined` */\n @Input() pointLabelColor?: StringAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point bottom label accessor function. Default: `''` */\n @Input() pointBottomLabel?: StringAccessor<LeafletMapPointDatum<Datum>>\n\n /** Point cursor value or accessor function. Default: `null` */\n @Input() pointCursor?: StringAccessor<LeafletMapPointDatum<Datum>>\n\n /** The width of the ring when a point has a `LeafletMapPointShape.Ring` shape. Default: `1.25` */\n @Input() pointRingWidth?: number\n\n /** Set selected point by its unique id. Default: `undefined` */\n @Input() selectedPointId?: string\n\n /** Cluster color accessor function or constant value. Default: `undefined` */\n @Input() clusterColor?: ColorAccessor<LeafletMapClusterDatum<Datum>>\n\n /** Cluster radius accessor function or constant value. Default: `undefined` */\n @Input() clusterRadius?: NumericAccessor<LeafletMapClusterDatum<Datum>>\n\n /** Cluster inner label accessor function. Default: `d => d.point_count` */\n @Input() clusterLabel?: StringAccessor<LeafletMapClusterDatum<Datum>>\n\n /** Cluster inner label color accessor function or constant value.\n * By default, the label color will be set, depending on the point brightness, either to\n * `--vis-map-cluster-inner-label-text-color-light` or to `--vis-map-cluster-inner-label-text-color-dark` CSS variable.\n * Default: `undefined` */\n @Input() clusterLabelColor?: StringAccessor<LeafletMapClusterDatum<Datum>>\n\n /** Cluster bottom label accessor function. Default: `''` */\n @Input() clusterBottomLabel?: StringAccessor<LeafletMapClusterDatum<Datum>>\n\n /** The width of the cluster point ring. Default: `1.25` */\n @Input() clusterRingWidth?: number\n\n /** When cluster is expanded, show a background circle to better separate points from the base map. Default: `true` */\n @Input() clusterBackground?: boolean\n\n /** Defines whether the cluster should expand on click or not. Default: `true` */\n @Input() clusterExpandOnClick?: boolean\n\n /** Clustering distance in pixels. This value will be passed to Supercluster as the `radius` property https://github.com/mapbox/supercluster. Default: `55` */\n @Input() clusteringDistance?: number\n\n /** A single map point can have multiple properties displayed as a small pie chart (or a donut chart for a cluster of points).\n * By setting the colorMap configuration you can specify data properties that should be mapped to various pie / donut segments.\n *\n * ```\n * {\n * \\[key in keyof Datum]?: { color: string, className?: string }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\healthy: { color: 'green' },\n * \\warning: { color: 'orange' },\n * \\danger: { color: 'red' }\n * }\n * ```\n * where every data point has the `healthy`, `warning` and `danger` numerical or boolean property. */\n @Input() colorMap?: LeafletMapPointStyles<Datum>\n\n /** A TopoJSON Geometry layer to be displayed on top of the map. Supports fill and stroke */\n @Input() topoJSONLayer?: {\n sources: any;\n featureName?: string;\n fillProperty?: string;\n strokeProperty?: string;\n fillOpacity?: number;\n strokeOpacity?: number;\n strokeWidth?: number;\n }\n\n /** Tooltip component. Default: `undefined` */\n @Input() tooltip?: Tooltip\n\n /** Alternative text description of the chart for accessibility purposes. It will be applied as an\n * `aria-label` attribute to the div element containing your chart. Default: `undefined`. */\n @Input() ariaLabel?: string | null | undefined\n @Input() data: Datum[]\n\n component: LeafletMap<Datum> | undefined\n\n ngAfterViewInit (): void {\n this.component = new LeafletMap<Datum>(this.containerRef.nativeElement, this.getConfig(), this.data)\n\n if (this.data) {\n this.component.setData(this.data)\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n }\n\n private getConfig (): LeafletMapConfigInterface<Datum> {\n const { duration, events, attributes, width, height, flyToDuration, fitViewPadding, zoomDuration, initialBounds, fitBoundsOnUpdate, fitViewOnInit, fitViewOnUpdate, style, styleDarkTheme, accessToken, attribution, renderer, onMapInitialized, onMapMoveZoom, onMapMoveStart, onMapMoveEnd, onMapZoomStart, onMapZoomEnd, onMapClick, pointLongitude, pointLatitude, pointId, pointShape, pointColor, pointRadius, pointLabel, pointLabelColor, pointBottomLabel, pointCursor, pointRingWidth, selectedPointId, clusterColor, clusterRadius, clusterLabel, clusterLabelColor, clusterBottomLabel, clusterRingWidth, clusterBackground, clusterExpandOnClick, clusteringDistance, colorMap, topoJSONLayer, tooltip, ariaLabel } = this\n const config = { duration, events, attributes, width, height, flyToDuration, fitViewPadding, zoomDuration, initialBounds, fitBoundsOnUpdate, fitViewOnInit, fitViewOnUpdate, style, styleDarkTheme, accessToken, attribution, renderer, onMapInitialized, onMapMoveZoom, onMapMoveStart, onMapMoveEnd, onMapZoomStart, onMapZoomEnd, onMapClick, pointLongitude, pointLatitude, pointId, pointShape, pointColor, pointRadius, pointLabel, pointLabelColor, pointBottomLabel, pointCursor, pointRingWidth, selectedPointId, clusterColor, clusterRadius, clusterLabel, clusterLabelColor, clusterBottomLabel, clusterRingWidth, clusterBackground, clusterExpandOnClick, clusteringDistance, colorMap, topoJSONLayer, tooltip, ariaLabel }\n const keys = Object.keys(config) as (keyof LeafletMapConfigInterface<Datum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisLeafletMapComponent } from './leaflet-map.component'\n\n@NgModule({\n imports: [],\n declarations: [VisLeafletMapComponent],\n exports: [VisLeafletMapComponent],\n})\nexport class VisLeafletMapModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges, ViewChild, ElementRef } from '@angular/core'\nimport {\n LeafletFlowMap,\n LeafletFlowMapConfigInterface,\n GenericDataRecord,\n VisEventType,\n VisEventCallback,\n Bounds,\n MapLibreStyleSpecs,\n LeafletMapRenderer,\n MapZoomState,\n NumericAccessor,\n StringAccessor,\n GenericAccessor,\n LeafletMapPointShape,\n ColorAccessor,\n LeafletMapPointDatum,\n LeafletMapClusterDatum,\n LeafletMapPointStyles,\n Tooltip,\n} from '@unovis/ts'\nimport { VisCoreComponent } from '../../core'\n\n@Component({\n selector: 'vis-leaflet-flow-map',\n template: '<div #container class=\"leaflet-flow-map-container\"></div>',\n styles: ['.leaflet-flow-map-container { width: 100%; height: 100%; position: relative }'],\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisCoreComponent, useExisting: VisLeafletFlowMapComponent }],\n})\nexport class VisLeafletFlowMapComponent<PointDatum extends GenericDataRecord, FlowDatum extends GenericDataRecord> implements LeafletFlowMapConfigInterface<PointDatum, FlowDatum>, AfterViewInit {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n\n /** Animation duration of the data update transitions in milliseconds. Default: `600` */\n @Input() duration?: number\n\n /** Events configuration. An object containing properties in the following format:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[eventType]: callbackFunction\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * click: (d) => console.log(\"Clicked Area\", d)\n * }\n * }\n * ``` */\n @Input() events?: {\n [selector: string]: {\n [eventType in VisEventType]?: VisEventCallback\n };\n }\n\n /** You can set every SVG and HTML visualization object to have a custom DOM attributes, which is useful\n * when you want to do unit or end-to-end testing. Attributes configuration object has the following structure:\n *\n * ```\n * {\n * \\[selectorString]: {\n * \\[attributeName]: attribute constant value or accessor function\n * }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\[Area.selectors.area]: {\n * \"test-value\": d => d.value\n * }\n * }\n * ``` */\n @Input() attributes?: {\n [selector: string]: {\n [attr: string]: string | number | boolean | ((datum: any) => string | number | boolean);\n };\n }\n\n /** Width in pixels or in CSS units. By default, the map will automatically fit to the size of the parent element. Default: `undefined`. */\n @Input() width?: number | string\n\n /** Height in pixels or in CSS units. By default, the map will automatically fit to the size of the parent element. Default: `undefined`. */\n @Input() height?: number | string\n\n /** Animation duration when the map is automatically panning or zooming to a point or area. Default: `1500` ms */\n @Input() flyToDuration?: number\n\n /** Padding to be used when the `fitView` function has been called. The value is in pixels, [topLeft, bottomRight]. Default: `[150, 150]` */\n @Input() fitViewPadding?: [number, number]\n\n /** Animation duration for the `setZoom` function. Default: `800` ms */\n @Input() zoomDuration?: number\n\n /** Default bounds that will be applied on the first map render if the bounds property is not set. Default: `undefined` */\n @Input() initialBounds?: Bounds\n\n /** Force set map bounds on config and data updates. Default: `undefined` */\n @Input() fitBoundsOnUpdate?: Bounds\n\n /** Fit the view to contain the data points on map initialization. Default: `true` */\n @Input() fitViewOnInit?: boolean\n\n /** Fit the view to contain the data points on map config and data updates. Default: `false` */\n @Input() fitViewOnUpdate?: boolean\n\n /** MapLibre `StyleSpecification` settings, or a URL to it. When renderer is set to`LeafletMapRenderer.Raster`, provide a template URL. Default: `undefined` */\n @Input() style: MapLibreStyleSpecs | string | undefined\n\n /** MapLibre `StyleSpecification` settings or URL for dark theme. Default: `undefined` */\n @Input() styleDarkTheme?: MapLibreStyleSpecs | string | undefined\n\n /** Tile server access token or API key. Default: `''` */\n @Input() accessToken?: string\n\n /** Array of attribution labels. Default: `['<a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap contributors</a>']` */\n @Input() attribution?: string[]\n\n /** Rendering mode for map's tile layer. For raster files, use `LeafletMapRenderer.Raster`. Default: `LeafletMapRenderer.MapLibre` */\n @Input() renderer?: LeafletMapRenderer | string\n\n /** Function to be called after the map's async initialization is done. Default: `undefined` */\n @Input() onMapInitialized?: (() => void)\n\n /** Map Move / Zoom unified callback function. Default: `undefined` */\n @Input() onMapMoveZoom?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Move Start callback function. Default: `undefined` */\n @Input() onMapMoveStart?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Move End callback function. Default: `undefined` */\n @Input() onMapMoveEnd?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom Start callback function. Default: `undefined` */\n @Input() onMapZoomStart?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom End callback function. Default: `undefined` */\n @Input() onMapZoomEnd?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Map Zoom Click callback function. Default: `undefined` */\n @Input() onMapClick?: (({ mapCenter, zoomLevel, bounds }: MapZoomState) => void)\n\n /** Point longitude accessor function. Default: `d => d.longitude` */\n @Input() pointLongitude?: NumericAccessor<PointDatum>\n\n /** Point latitude accessor function. Default: `d => d.latitude` */\n @Input() pointLatitude?: NumericAccessor<PointDatum>\n\n /** Point id accessor function or constant value. Default: `d => d.id` */\n @Input() pointId?: StringAccessor<PointDatum>\n\n /** Point shape accessor function or constant value. Default: `d => d.shape` */\n @Input() pointShape?: GenericAccessor<LeafletMapPointShape | string, PointDatum>\n\n /** Point color accessor function or constant value. Default: `d => d.color` */\n @Input() pointColor?: ColorAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point radius accessor function or constant value. Default: `undefined` */\n @Input() pointRadius?: NumericAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point inner label accessor function. Default: `undefined` */\n @Input() pointLabel?: StringAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point inner label color accessor function or constant value.\n * By default, the label color will be set, depending on the point brightness, either to\n * `--vis-map-point-inner-label-text-color-light` or to `--vis-map-point-inner-label-text-color-dark` CSS variable.\n * Default: `undefined` */\n @Input() pointLabelColor?: StringAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point bottom label accessor function. Default: `''` */\n @Input() pointBottomLabel?: StringAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** Point cursor value or accessor function. Default: `null` */\n @Input() pointCursor?: StringAccessor<LeafletMapPointDatum<PointDatum>>\n\n /** The width of the ring when a point has a `LeafletMapPointShape.Ring` shape. Default: `1.25` */\n @Input() pointRingWidth?: number\n\n /** Set selected point by its unique id. Default: `undefined` */\n @Input() selectedPointId?: string\n\n /** Cluster color accessor function or constant value. Default: `undefined` */\n @Input() clusterColor?: ColorAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** Cluster radius accessor function or constant value. Default: `undefined` */\n @Input() clusterRadius?: NumericAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** Cluster inner label accessor function. Default: `d => d.point_count` */\n @Input() clusterLabel?: StringAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** Cluster inner label color accessor function or constant value.\n * By default, the label color will be set, depending on the point brightness, either to\n * `--vis-map-cluster-inner-label-text-color-light` or to `--vis-map-cluster-inner-label-text-color-dark` CSS variable.\n * Default: `undefined` */\n @Input() clusterLabelColor?: StringAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** Cluster bottom label accessor function. Default: `''` */\n @Input() clusterBottomLabel?: StringAccessor<LeafletMapClusterDatum<PointDatum>>\n\n /** The width of the cluster point ring. Default: `1.25` */\n @Input() clusterRingWidth?: number\n\n /** When cluster is expanded, show a background circle to better separate points from the base map. Default: `true` */\n @Input() clusterBackground?: boolean\n\n /** Defines whether the cluster should expand on click or not. Default: `true` */\n @Input() clusterExpandOnClick?: boolean\n\n /** Clustering distance in pixels. This value will be passed to Supercluster as the `radius` property https://github.com/mapbox/supercluster. Default: `55` */\n @Input() clusteringDistance?: number\n\n /** A single map point can have multiple properties displayed as a small pie chart (or a donut chart for a cluster of points).\n * By setting the colorMap configuration you can specify data properties that should be mapped to various pie / donut segments.\n *\n * ```\n * {\n * \\[key in keyof Datum]?: { color: string, className?: string }\n * }\n * ```\n * e.g.:\n * ```\n * {\n * \\healthy: { color: 'green' },\n * \\warning: { color: 'orange' },\n * \\danger: { color: 'red' }\n * }\n * ```\n * where every data point has the `healthy`, `warning` and `danger` numerical or boolean property. */\n @Input() colorMap?: LeafletMapPointStyles<PointDatum>\n\n /** A TopoJSON Geometry layer to be displayed on top of the map. Supports fill and stroke */\n @Input() topoJSONLayer?: {\n sources: any;\n featureName?: string;\n fillProperty?: string;\n strokeProperty?: string;\n fillOpacity?: number;\n strokeOpacity?: number;\n strokeWidth?: number;\n }\n\n /** Tooltip component. Default: `undefined` */\n @Input() tooltip?: Tooltip\n\n /** Alternative text description of the chart for accessibility purposes. It will be applied as an\n * `aria-label` attribute to the div element containing your chart. Default: `undefined`. */\n @Input() ariaLabel?: string | null | undefined\n\n /** Flow source point longitude accessor function or value. Default:.`f => f.sourceLongitude` */\n @Input() sourceLongitude?: NumericAccessor<FlowDatum>\n\n /** Flow source point latitude accessor function or value. Default: `f => f.sourceLatitude` */\n @Input() sourceLatitude?: NumericAccessor<FlowDatum>\n\n /** Flow target point longitude accessor function or value. Default: `f => f.targetLongitude` */\n @Input() targetLongitude?: NumericAccessor<FlowDatum>\n\n /** Flow target point latitude accessor function or value. Default: `f => f.targetLatitude` */\n @Input() targetLatitude?: NumericAccessor<FlowDatum>\n\n /** Flow source point radius accessor function or value. Default: `3` */\n @Input() sourcePointRadius?: NumericAccessor<FlowDatum>\n\n /** Source point color accessor function or value. Default: `'#88919f'` */\n @Input() sourcePointColor?: ColorAccessor<FlowDatum>\n\n /** Flow particle color accessor function or value. Default: `'#949dad'` */\n @Input() flowParticleColor?: ColorAccessor<FlowDatum>\n\n /** Flow particle radius accessor function or value. Default: `1.1` */\n @Input() flowParticleRadius?: NumericAccessor<FlowDatum>\n\n /** Flow particle speed accessor function or value. The unit is arbitrary, recommended range is 0 – 0.2. Default: `0.07` */\n @Input() flowParticleSpeed?: NumericAccessor<FlowDatum>\n\n /** Flow particle density accessor function or value on the range of [0, 1]. Default: `0.6` */\n @Input() flowParticleDensity?: NumericAccessor<FlowDatum>\n\n /** Flow source point click callback function. Default: `undefined` */\n @Input() onSourcePointClick?: (f: FlowDatum, x: number, y: number, event: MouseEvent) => void\n\n /** Flow source point mouse over callback function. Default: `undefined` */\n @Input() onSourcePointMouseEnter?: (f: FlowDatum, x: number, y: number, event: MouseEvent) => void\n\n /** Flow source point mouse leave callback function. Default: `undefined` */\n @Input() onSourcePointMouseLeave?: (f: FlowDatum, event: MouseEvent) => void\n @Input() data: { points: PointDatum[]; flows?: FlowDatum[] }\n\n component: LeafletFlowMap<PointDatum, FlowDatum> | undefined\n\n ngAfterViewInit (): void {\n this.component = new LeafletFlowMap<PointDatum, FlowDatum>(this.containerRef.nativeElement, this.getConfig(), this.data)\n\n if (this.data) {\n this.component.setData(this.data)\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n if (changes.data) { this.component?.setData(this.data) }\n this.component?.setConfig(this.getConfig())\n }\n\n private getConfig (): LeafletFlowMapConfigInterface<PointDatum, FlowDatum> {\n const { duration, events, attributes, width, height, flyToDuration, fitViewPadding, zoomDuration, initialBounds, fitBoundsOnUpdate, fitViewOnInit, fitViewOnUpdate, style, styleDarkTheme, accessToken, attribution, renderer, onMapInitialized, onMapMoveZoom, onMapMoveStart, onMapMoveEnd, onMapZoomStart, onMapZoomEnd, onMapClick, pointLongitude, pointLatitude, pointId, pointShape, pointColor, pointRadius, pointLabel, pointLabelColor, pointBottomLabel, pointCursor, pointRingWidth, selectedPointId, clusterColor, clusterRadius, clusterLabel, clusterLabelColor, clusterBottomLabel, clusterRingWidth, clusterBackground, clusterExpandOnClick, clusteringDistance, colorMap, topoJSONLayer, tooltip, ariaLabel, sourceLongitude, sourceLatitude, targetLongitude, targetLatitude, sourcePointRadius, sourcePointColor, flowParticleColor, flowParticleRadius, flowParticleSpeed, flowParticleDensity, onSourcePointClick, onSourcePointMouseEnter, onSourcePointMouseLeave } = this\n const config = { duration, events, attributes, width, height, flyToDuration, fitViewPadding, zoomDuration, initialBounds, fitBoundsOnUpdate, fitViewOnInit, fitViewOnUpdate, style, styleDarkTheme, accessToken, attribution, renderer, onMapInitialized, onMapMoveZoom, onMapMoveStart, onMapMoveEnd, onMapZoomStart, onMapZoomEnd, onMapClick, pointLongitude, pointLatitude, pointId, pointShape, pointColor, pointRadius, pointLabel, pointLabelColor, pointBottomLabel, pointCursor, pointRingWidth, selectedPointId, clusterColor, clusterRadius, clusterLabel, clusterLabelColor, clusterBottomLabel, clusterRingWidth, clusterBackground, clusterExpandOnClick, clusteringDistance, colorMap, topoJSONLayer, tooltip, ariaLabel, sourceLongitude, sourceLatitude, targetLongitude, targetLatitude, sourcePointRadius, sourcePointColor, flowParticleColor, flowParticleRadius, flowParticleSpeed, flowParticleDensity, onSourcePointClick, onSourcePointMouseEnter, onSourcePointMouseLeave }\n const keys = Object.keys(config) as (keyof LeafletFlowMapConfigInterface<PointDatum, FlowDatum>)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisLeafletFlowMapComponent } from './leaflet-flow-map.component'\n\n@NgModule({\n imports: [],\n declarations: [VisLeafletFlowMapComponent],\n exports: [VisLeafletFlowMapComponent],\n})\nexport class VisLeafletFlowMapModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges, ViewChild, ElementRef } from '@angular/core'\nimport {\n BulletLegend,\n BulletLegendConfigInterface,\n BulletLegendItemInterface,\n GenericAccessor,\n BulletShape,\n BulletLegendOrientation,\n} from '@unovis/ts'\nimport { VisGenericComponent } from '../../core'\n\n@Component({\n selector: 'vis-bullet-legend',\n template: '<div #container class=\"bullet-legend-container\"></div>',\n styles: ['.bullet-legend-container { }'],\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisGenericComponent, useExisting: VisBulletLegendComponent }],\n})\nexport class VisBulletLegendComponent implements BulletLegendConfigInterface, AfterViewInit {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n\n /** Legend items. Array of `BulletLegendItemInterface`:\n * ```\n * {\n * name: string | number;\n * color?: string;\n * shape?: BulletShape;\n * inactive?: boolean;\n * hidden?: boolean;\n * pointer?: boolean;\n * }\n * ```\n * Default: `[]` */\n @Input() items: BulletLegendItemInterface[]\n\n /** Apply a specific class to the labels. Default: `''` */\n @Input() labelClassName?: string\n\n /** Callback function for the legend item click. Default: `undefined` */\n @Input() onLegendItemClick?: ((d: BulletLegendItemInterface, i: number) => void)\n\n /** Label text (<span> element) font-size CSS. Default: `null` */\n @Input() labelFontSize?: string | null\n\n /** Label text (<span> element) max-width CSS property. Default: `null` */\n @Input() labelMaxWidth?: string | null\n\n /** Bullet shape size, mapped to the width and height CSS properties. Default: `null` */\n @Input() bulletSize?: string | null\n\n /** Spacing between multiple bullet symbols in pixels. Default: `4` */\n @Input() bulletSpacing?: number\n\n /** Bullet shape enum value or accessor function. Default: `d => d.shape ?? BulletShape.Circle */\n @Input() bulletShape?: GenericAccessor<BulletShape, BulletLegendItemInterface>\n\n /** Legend orientation. When set to `BulletLegendOrientation.Vertical`, each legend item will\n * start on a new line. Default: `BulletLegendOrientation.Horizontal` */\n @Input() orientation?: BulletLegendOrientation | string\n\n component: BulletLegend | undefined\n\n ngAfterViewInit (): void {\n this.component = new BulletLegend(this.containerRef.nativeElement, { ...this.getConfig(), renderIntoProvidedDomNode: true })\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.update(this.getConfig())\n }\n\n private getConfig (): BulletLegendConfigInterface {\n const { items, labelClassName, onLegendItemClick, labelFontSize, labelMaxWidth, bulletSize, bulletSpacing, bulletShape, orientation } = this\n const config = { items, labelClassName, onLegendItemClick, labelFontSize, labelMaxWidth, bulletSize, bulletSpacing, bulletShape, orientation }\n const keys = Object.keys(config) as (keyof BulletLegendConfigInterface)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisBulletLegendComponent } from './bullet-legend.component'\n\n@NgModule({\n imports: [],\n declarations: [VisBulletLegendComponent],\n exports: [VisBulletLegendComponent],\n})\nexport class VisBulletLegendModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { Component, AfterViewInit, Input, SimpleChanges, ViewChild, ElementRef } from '@angular/core'\nimport { RollingPinLegend, RollingPinLegendConfigInterface, RollingPinLegendItem } from '@unovis/ts'\nimport { VisGenericComponent } from '../../core'\n\n@Component({\n selector: 'vis-rolling-pin-legend',\n template: '<div #container class=\"rolling-pin-legend-container\"></div>',\n styles: ['.rolling-pin-legend-container { }'],\n // eslint-disable-next-line no-use-before-define\n providers: [{ provide: VisGenericComponent, useExisting: VisRollingPinLegendComponent }],\n})\nexport class VisRollingPinLegendComponent implements RollingPinLegendConfigInterface, AfterViewInit {\n @ViewChild('container', { static: false }) containerRef: ElementRef\n\n /** Rects forming a legend. Array of `string`, representing colors.\n *\n * Default: `[]` */\n @Input() rects: RollingPinLegendItem[]\n\n /** Label on the left side of the legend. Default: `undefined` */\n @Input() leftLabelText?: string\n\n /** Label on the right side of the legend. Default: `undefined` */\n @Input() rightLabelText?: string\n\n /** Apply a specific class to the labels. Default: `''` */\n @Input() labelClassName?: string\n\n /** Label text (<span> element) font-size CSS. Default: `null` */\n @Input() labelFontSize?: string | null\n\n component: RollingPinLegend | undefined\n\n ngAfterViewInit (): void {\n this.component = new RollingPinLegend(this.containerRef.nativeElement, this.getConfig())\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n this.component?.setConfig(this.getConfig())\n }\n\n private getConfig (): RollingPinLegendConfigInterface {\n const { rects, leftLabelText, rightLabelText, labelClassName, labelFontSize } = this\n const config = { rects, leftLabelText, rightLabelText, labelClassName, labelFontSize }\n const keys = Object.keys(config) as (keyof RollingPinLegendConfigInterface)[]\n keys.forEach(key => { if (config[key] === undefined) delete config[key] })\n\n return config\n }\n}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisRollingPinLegendComponent } from './rolling-pin-legend.component'\n\n@NgModule({\n imports: [],\n declarations: [VisRollingPinLegendComponent],\n exports: [VisRollingPinLegendComponent],\n})\nexport class VisRollingPinLegendModule {}\n","// !!! This code was automatically generated. You should not change it !!!\nimport { NgModule } from '@angular/core'\nimport { VisTooltipComponent } from './tooltip.component'\n\n@NgModule({\n imports: [],\n declarations: [VisTooltipComponent],\n exports: [VisTooltipComponent],\n})\nexport class VisTooltipModule {}\n","// Core\nexport * from './core'\n\n// SVG Components\nexport { VisAreaComponent } from './components/area/area.component'\nexport { VisAreaModule } from './components/area/area.module'\n\nexport { VisAnnotationsComponent } from './components/annotations/annotations.component'\nexport { VisAnnotationsModule } from './components/annotations/annotations.module'\n\nexport { VisAxisComponent } from './components/axis/axis.component'\nexport { VisAxisModule } from './components/axis/axis.module'\n\nexport { VisBrushComponent } from './components/brush/brush.component'\nexport { VisBrushModule } from './components/brush/brush.module'\n\nexport { VisChordDiagramComponent } from './components/chord-diagram/chord-diagram.component'\nexport { VisChordDiagramModule } from './components/chord-diagram/chord-diagram.module'\n\nexport { VisCrosshairComponent } from './components/crosshair/crosshair.component'\nexport { VisCrosshairModule } from './components/crosshair/crosshair.module'\n\nexport { VisDonutComponent } from './components/donut/donut.component'\nexport { VisDonutModule } from './components/donut/donut.module'\n\nexport { VisFreeBrushComponent } from './components/free-brush/free-brush.component'\nexport { VisFreeBrushModule } from './components/free-brush/free-brush.module'\n\nexport { VisGraphComponent } from './components/graph/graph.component'\nexport { VisGraphModule } from './components/graph/graph.module'\n\nexport { VisGroupedBarComponent } from './components/grouped-bar/grouped-bar.component'\nexport { VisGroupedBarModule } from './components/grouped-bar/grouped-bar.module'\n\nexport { VisLineComponent } from './components/line/line.component'\nexport { VisLineModule } from './components/line/line.module'\n\nexport { VisNestedDonutComponent } from './components/nested-donut/nested-donut.component'\nexport { VisNestedDonutModule } from './components/nested-donut/nested-donut.module'\n\nexport { VisPlotlineComponent } from './components/plotline/plotline.component'\nexport { VisPlotlineModule } from './components/plotline/plotline.module'\n\nexport { VisSankeyComponent } from './components/sankey/sankey.component'\nexport { VisSankeyModule } from './components/sankey/sankey.module'\n\nexport { VisScatterComponent } from './components/scatter/scatter.component'\nexport { VisScatterModule } from './components/scatter/scatter.module'\n\nexport { VisStackedBarComponent } from './components/stacked-bar/stacked-bar.component'\nexport { VisStackedBarModule } from './components/stacked-bar/stacked-bar.module'\n\nexport { VisTimelineComponent } from './components/timeline/timeline.component'\nexport { VisTimelineModule } from './components/timeline/timeline.module'\n\nexport { VisXYLabelsComponent } from './components/xy-labels/xy-labels.component'\nexport { VisXYLabelsModule } from './components/xy-labels/xy-labels.module'\n\nexport { VisTopoJSONMapComponent } from './components/topojson-map/topojson-map.component'\nexport { VisTopoJSONMapModule } from './components/topojson-map/topojson-map.module'\n\nexport { VisPlotbandComponent } from './components/plotband/plotband.component'\nexport { VisPlotbandModule } from './components/plotband/plotband.module'\n\n// HTML Components\nexport { VisLeafletMapComponent } from './html-components/leaflet-map/leaflet-map.component'\nexport { VisLeafletMapModule } from './html-components/leaflet-map/leaflet-map.module'\n\nexport { VisLeafletFlowMapComponent } from './html-components/leaflet-flow-map/leaflet-flow-map.component'\nexport { VisLeafletFlowMapModule } from './html-components/leaflet-flow-map/leaflet-flow-map.module'\n\nexport { VisBulletLegendComponent } from './html-components/bullet-legend/bullet-legend.component'\nexport { VisBulletLegendModule } from './html-components/bullet-legend/bullet-legend.module'\n\nexport { VisRollingPinLegendComponent } from './html-components/rolling-pin-legend/rolling-pin-legend.component'\nexport { VisRollingPinLegendModule } from './html-components/rolling-pin-legend/rolling-pin-legend.module'\n\nexport { VisTooltipComponent } from './components/tooltip/tooltip.component'\nexport { VisTooltipModule } from './components/tooltip/tooltip.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Tooltip","i0","Component","Input","Annotations","Direction","XYContainer","Crosshair","Axis","ViewChild","ContentChildren","ContentChild","NgModule","SingleContainer","Area","Brush","ChordDiagram","Donut","FreeBrush","Graph","GroupedBar","Line","NestedDonut","Plotline","Sankey","Scatter","StackedBar","Timeline","XYLabels","TopoJSONMap","Plotband","LeafletMap","LeafletFlowMap","BulletLegend","RollingPinLegend"],"mappings":"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"}