@bryntum/chart-angular-thin 7.3.3 → 7.3.5

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.
@@ -533,6 +533,7 @@ BryntumChartComponent.bryntumConfigs = BryntumChartComponent.bryntumFeatureNames
533
533
  'minWidth',
534
534
  'monitorResize',
535
535
  'namedItems',
536
+ 'overflowTwinConfig',
536
537
  'pointSize',
537
538
  'positioned',
538
539
  'preventTooltipOnTouch',
@@ -618,6 +619,7 @@ BryntumChartComponent.bryntumConfigsOnly = [
618
619
  'masked',
619
620
  'monitorResize',
620
621
  'namedItems',
622
+ 'overflowTwinConfig',
621
623
  'positioned',
622
624
  'preventTooltipOnTouch',
623
625
  'relayStoreEvents',
@@ -728,7 +730,7 @@ BryntumChartComponent.bryntumProps = BryntumChartComponent.bryntumFeatureNames.c
728
730
  'y'
729
731
  ]);
730
732
  BryntumChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
731
- BryntumChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BryntumChartComponent, selector: "bryntum-chart", inputs: { adopt: "adopt", align: "align", anchor: "anchor", ariaDescription: "ariaDescription", ariaLabel: "ariaLabel", autoUpdateRecord: "autoUpdateRecord", border: "border", bubbleEvents: "bubbleEvents", color: "color", config: "config", constrainTo: "constrainTo", contentElementCls: "contentElementCls", dataField: "dataField", defaultBindProperty: "defaultBindProperty", defaultFocus: "defaultFocus", defaults: "defaults", detectCSSCompatibilityIssues: "detectCSSCompatibilityIssues", dock: "dock", draggable: "draggable", elementAttributes: "elementAttributes", floating: "floating", hideAnimation: "hideAnimation", hideWhenEmpty: "hideWhenEmpty", htmlCls: "htmlCls", ignoreParentReadOnly: "ignoreParentReadOnly", itemCls: "itemCls", lazyItems: "lazyItems", listeners: "listeners", localeClass: "localeClass", localizable: "localizable", localizableProperties: "localizableProperties", maskDefaults: "maskDefaults", masked: "masked", monitorResize: "monitorResize", namedItems: "namedItems", positioned: "positioned", preventTooltipOnTouch: "preventTooltipOnTouch", relayStoreEvents: "relayStoreEvents", ripple: "ripple", rootElement: "rootElement", scrollAction: "scrollAction", showAnimation: "showAnimation", showTooltipWhenDisabled: "showTooltipWhenDisabled", tab: "tab", tabBarItems: "tabBarItems", tag: "tag", textAlign: "textAlign", textContent: "textContent", type: "type", ui: "ui", weight: "weight", alignSelf: "alignSelf", animate: "animate", animationDuration: "animationDuration", appendTo: "appendTo", axisColor: "axisColor", axisLabelColor: "axisLabelColor", background: "background", barDirection: "barDirection", barWidth: "barWidth", bubbleScaleFactor: "bubbleScaleFactor", callOnFunctions: "callOnFunctions", catchEventHandlerExceptions: "catchEventHandlerExceptions", centered: "centered", chartPadding: "chartPadding", chartTooltip: "chartTooltip", chartType: "chartType", cls: "cls", column: "column", content: "content", data: "data", dataPointShape: "dataPointShape", dataset: "dataset", disabled: "disabled", extraData: "extraData", field: "field", fillColorField: "fillColorField", flex: "flex", gridColor: "gridColor", height: "height", hidden: "hidden", html: "html", id: "id", inputFieldAlign: "inputFieldAlign", insertBefore: "insertBefore", insertFirst: "insertFirst", interactive: "interactive", items: "items", keyMap: "keyMap", label: "label", labelPosition: "labelPosition", labels: "labels", labelWidth: "labelWidth", layout: "layout", layoutStyle: "layoutStyle", legendPosition: "legendPosition", legendScale: "legendScale", margin: "margin", max: "max", maxHeight: "maxHeight", maximizeOnMobile: "maximizeOnMobile", maxTickLabelRotation: "maxTickLabelRotation", maxWidth: "maxWidth", min: "min", minHeight: "minHeight", minTickLabelRotation: "minTickLabelRotation", minWidth: "minWidth", pointSize: "pointSize", readOnly: "readOnly", record: "record", rendition: "rendition", role: "role", rtl: "rtl", scrollable: "scrollable", series: "series", seriesLineDash: "seriesLineDash", seriesLineOpacity: "seriesLineOpacity", seriesLineThickness: "seriesLineThickness", showControls: "showControls", showLegend: "showLegend", showPoints: "showPoints", showSubtitle: "showSubtitle", showTicks: "showTicks", showTitle: "showTitle", showTooltips: "showTooltips", span: "span", strictRecordMapping: "strictRecordMapping", subtitle: "subtitle", subtitleFont: "subtitleFont", subtitlePadding: "subtitlePadding", tickFont: "tickFont", tickMarkColor: "tickMarkColor", title: "title", titleFont: "titleFont", titlePadding: "titlePadding", tooltip: "tooltip", width: "width", x: "x", y: "y", parent: "parent", values: "values" }, outputs: { onBeforeDestroy: "onBeforeDestroy", onBeforeHide: "onBeforeHide", onBeforeSetRecord: "onBeforeSetRecord", onBeforeShow: "onBeforeShow", onCatchAll: "onCatchAll", onDestroy: "onDestroy", onDirtyStateChange: "onDirtyStateChange", onElementCreated: "onElementCreated", onFocusIn: "onFocusIn", onFocusOut: "onFocusOut", onHide: "onHide", onPaint: "onPaint", onReadOnly: "onReadOnly", onRecompose: "onRecompose", onResize: "onResize", onShow: "onShow" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
733
+ BryntumChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.0", type: BryntumChartComponent, selector: "bryntum-chart", inputs: { adopt: "adopt", align: "align", anchor: "anchor", ariaDescription: "ariaDescription", ariaLabel: "ariaLabel", autoUpdateRecord: "autoUpdateRecord", border: "border", bubbleEvents: "bubbleEvents", color: "color", config: "config", constrainTo: "constrainTo", contentElementCls: "contentElementCls", dataField: "dataField", defaultBindProperty: "defaultBindProperty", defaultFocus: "defaultFocus", defaults: "defaults", detectCSSCompatibilityIssues: "detectCSSCompatibilityIssues", dock: "dock", draggable: "draggable", elementAttributes: "elementAttributes", floating: "floating", hideAnimation: "hideAnimation", hideWhenEmpty: "hideWhenEmpty", htmlCls: "htmlCls", ignoreParentReadOnly: "ignoreParentReadOnly", itemCls: "itemCls", lazyItems: "lazyItems", listeners: "listeners", localeClass: "localeClass", localizable: "localizable", localizableProperties: "localizableProperties", maskDefaults: "maskDefaults", masked: "masked", monitorResize: "monitorResize", namedItems: "namedItems", overflowTwinConfig: "overflowTwinConfig", positioned: "positioned", preventTooltipOnTouch: "preventTooltipOnTouch", relayStoreEvents: "relayStoreEvents", ripple: "ripple", rootElement: "rootElement", scrollAction: "scrollAction", showAnimation: "showAnimation", showTooltipWhenDisabled: "showTooltipWhenDisabled", tab: "tab", tabBarItems: "tabBarItems", tag: "tag", textAlign: "textAlign", textContent: "textContent", type: "type", ui: "ui", weight: "weight", alignSelf: "alignSelf", animate: "animate", animationDuration: "animationDuration", appendTo: "appendTo", axisColor: "axisColor", axisLabelColor: "axisLabelColor", background: "background", barDirection: "barDirection", barWidth: "barWidth", bubbleScaleFactor: "bubbleScaleFactor", callOnFunctions: "callOnFunctions", catchEventHandlerExceptions: "catchEventHandlerExceptions", centered: "centered", chartPadding: "chartPadding", chartTooltip: "chartTooltip", chartType: "chartType", cls: "cls", column: "column", content: "content", data: "data", dataPointShape: "dataPointShape", dataset: "dataset", disabled: "disabled", extraData: "extraData", field: "field", fillColorField: "fillColorField", flex: "flex", gridColor: "gridColor", height: "height", hidden: "hidden", html: "html", id: "id", inputFieldAlign: "inputFieldAlign", insertBefore: "insertBefore", insertFirst: "insertFirst", interactive: "interactive", items: "items", keyMap: "keyMap", label: "label", labelPosition: "labelPosition", labels: "labels", labelWidth: "labelWidth", layout: "layout", layoutStyle: "layoutStyle", legendPosition: "legendPosition", legendScale: "legendScale", margin: "margin", max: "max", maxHeight: "maxHeight", maximizeOnMobile: "maximizeOnMobile", maxTickLabelRotation: "maxTickLabelRotation", maxWidth: "maxWidth", min: "min", minHeight: "minHeight", minTickLabelRotation: "minTickLabelRotation", minWidth: "minWidth", pointSize: "pointSize", readOnly: "readOnly", record: "record", rendition: "rendition", role: "role", rtl: "rtl", scrollable: "scrollable", series: "series", seriesLineDash: "seriesLineDash", seriesLineOpacity: "seriesLineOpacity", seriesLineThickness: "seriesLineThickness", showControls: "showControls", showLegend: "showLegend", showPoints: "showPoints", showSubtitle: "showSubtitle", showTicks: "showTicks", showTitle: "showTitle", showTooltips: "showTooltips", span: "span", strictRecordMapping: "strictRecordMapping", subtitle: "subtitle", subtitleFont: "subtitleFont", subtitlePadding: "subtitlePadding", tickFont: "tickFont", tickMarkColor: "tickMarkColor", title: "title", titleFont: "titleFont", titlePadding: "titlePadding", tooltip: "tooltip", width: "width", x: "x", y: "y", parent: "parent", values: "values" }, outputs: { onBeforeDestroy: "onBeforeDestroy", onBeforeHide: "onBeforeHide", onBeforeSetRecord: "onBeforeSetRecord", onBeforeShow: "onBeforeShow", onCatchAll: "onCatchAll", onDestroy: "onDestroy", onDirtyStateChange: "onDirtyStateChange", onElementCreated: "onElementCreated", onFocusIn: "onFocusIn", onFocusOut: "onFocusOut", onHide: "onHide", onPaint: "onPaint", onReadOnly: "onReadOnly", onRecompose: "onRecompose", onResize: "onResize", onShow: "onShow" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
732
734
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImport: i0, type: BryntumChartComponent, decorators: [{
733
735
  type: Component,
734
736
  args: [{
@@ -805,6 +807,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.0", ngImpor
805
807
  type: Input
806
808
  }], namedItems: [{
807
809
  type: Input
810
+ }], overflowTwinConfig: [{
811
+ type: Input
808
812
  }], positioned: [{
809
813
  type: Input
810
814
  }], preventTooltipOnTouch: [{
@@ -1 +1 @@
1
- {"version":3,"file":"bryntum-chart-angular-thin.js","sources":["../../component/src/lib/wrapper.helper.ts","../../component/src/lib/shadowdom.helper.ts","../../component/src/lib/bryntum-chart.component.ts","../../component/src/lib/chart.module.ts","../../component/src/public-api.ts","../../component/src/bryntum-chart-angular-thin.ts"],"sourcesContent":["import { isDevMode } from '@angular/core';\n\nexport default class WrapperHelper {\n /**\n * Development warning. Showed when environment is set to 'development'.\n */\n public static devWarning(clsName: string, msg: string) : void {\n // @ts-ignore\n if (window.bryntum && window.bryntum.isTestEnv || isDevMode()) {\n console.warn(`Bryntum${clsName}Component development warning!\\n${msg}\\n` +\n 'Please check Angular integration guide: https://bryntum.com/products/chart/docs/guide/Chart/integration/angular/guide'\n );\n }\n }\n\n /**\n * Development warning for container parameter.\n */\n public static devWarningContainer(clsName: string, containerParam: string) : void {\n WrapperHelper.devWarning(clsName,\n `Using \"${containerParam}\" parameter for configuration is not recommended.\\n` +\n 'Widget is placed automatically inside it\\'s container element' +\n `Solution: remove \"${containerParam}\" parameter from configuration.`\n );\n }\n\n /**\n * Development warning for config parameter.\n */\n public static devWarningConfigProp(clsName: string, prop: string) : void {\n WrapperHelper.devWarning(clsName,\n `Using \"${prop}\" parameter for configuration is not recommended.\\n` +\n `Solution: Use separate parameter for each \"${prop}\" value to enable reactive updates of the API instance`\n );\n }\n\n /**\n * Development warning for config property.\n */\n public static devWarningUpdateProp(clsName: string, prop: string): void {\n WrapperHelper.devWarning(clsName,\n `\"${prop}\" is a static config option for component constructor only. No runtime changes are supported!`\n );\n }\n\n /**\n * Applies property value to Bryntum config or instance.\n * @param {Object} configOrInstance target object\n * @param {string} prop property name\n * @param {any} value value\n * @param {Boolean} isConfig config setting mode\n */\n public static applyPropValue(configOrInstance: object|any, prop: string, value: object|any, isConfig: boolean = true): void {\n\n if (prop === 'project') {\n // Allow use ProjectModel component as project\n if (value && typeof value === 'object') {\n configOrInstance[prop] = value.instance || value;\n }\n }\n else if (prop === 'features' && typeof value === 'object') {\n Object.keys(value).forEach(key => WrapperHelper.applyPropValue(configOrInstance, `${key}Feature`, value[key], isConfig));\n }\n else if (prop === 'config' && typeof value === 'object') {\n Object.keys(value).forEach(key => WrapperHelper.applyPropValue(configOrInstance, key, value[key], isConfig));\n }\n else if (prop === 'columns' && !isConfig) {\n configOrInstance['columns'].data = value;\n }\n else if (prop.endsWith('Feature')) {\n const\n features = configOrInstance['features'],\n featureName = prop.replace('Feature', '');\n if (isConfig) {\n features[featureName] = value;\n }\n else {\n const feature = features[featureName];\n if (feature) {\n feature.setConfig(value);\n }\n }\n }\n else {\n configOrInstance[prop] = value;\n }\n }\n\n}\n","import { GlobalEvents } from '@bryntum/core-thin';\n\n// Module-level registry of all open shadow roots that host Bryntum widgets.\n// Populated lazily by collectOpenShadowRoots() the first time it is called, and\n// kept up to date via registerShadowRoot / unregisterShadowRoot.\nconst openShadowRoots = new Set<ShadowRoot>();\n\n// Walks the DOM tree starting from `root` and collects every open shadow root found.\n// Results are cached in openShadowRoots after the first traversal so subsequent calls\n// are O(1). Recursive so nested shadow roots are also discovered.\nfunction collectOpenShadowRoots(root : Document | ShadowRoot = document) : ShadowRoot[] {\n if (openShadowRoots.size > 0) {\n return Array.from(openShadowRoots);\n }\n const roots : ShadowRoot[] = [];\n Array.from(root.querySelectorAll('*')).forEach(el => {\n if ((el as Element & { shadowRoot? : ShadowRoot }).shadowRoot) {\n roots.push((el as any).shadowRoot);\n roots.push(...collectOpenShadowRoots((el as any).shadowRoot));\n }\n });\n roots.forEach(r => openShadowRoots.add(r));\n return roots;\n}\n\n// Updates the href and data-bryntum-theme attribute of every theme <link> inside all\n// registered shadow roots to mirror the new head link after a theme change.\nfunction syncThemeToShadowRoots(headLink : HTMLLinkElement) : void {\n const href = headLink.href;\n const themeAttr = headLink.getAttribute('data-bryntum-theme') ?? '';\n\n collectOpenShadowRoots().forEach(shadowRoot => {\n Array.from(shadowRoot.querySelectorAll<HTMLLinkElement>('link[data-bryntum-theme]')).forEach(link => {\n link.setAttribute('data-bryntum-theme', themeAttr);\n link.href = href;\n });\n });\n}\n\n// Adds a shadow root to the registry so it is included in theme sync operations.\n// Called by BryntumThemeComboComponent.ngOnInit when it detects it is inside a shadow root.\nexport function registerShadowRoot(shadowRoot : ShadowRoot) : void {\n openShadowRoots.add(shadowRoot);\n}\n\n// Removes a shadow root from the registry.\n// Called by BryntumThemeComboComponent.ngOnDestroy to clean up on component teardown.\nexport function unregisterShadowRoot(shadowRoot : ShadowRoot) : void {\n openShadowRoots.delete(shadowRoot);\n}\n\n// Injects a clone of each document.head theme <link> into every registered shadow root\n// that does not already have one. This is required because CSS from document.head does\n// not cascade into shadow DOM, so Bryntum theme styles would be absent without this.\n// Safe to call multiple times — the presence check prevents duplicate injection.\nexport function initThemeInShadowRoots() : void {\n const headThemeLinks = Array.from(document.head.querySelectorAll<HTMLLinkElement>('link[data-bryntum-theme]'));\n\n if (!headThemeLinks.length) {\n return;\n }\n\n collectOpenShadowRoots().forEach(shadowRoot => {\n if (shadowRoot.querySelector('link[data-bryntum-theme]')) {\n return;\n }\n\n headThemeLinks.forEach(headLink => {\n if (!headLink.href) {\n return;\n }\n // Clone the head link to preserve all attributes, then ensure absolute href\n const clone = headLink.cloneNode() as HTMLLinkElement;\n clone.href = headLink.href;\n shadowRoot.appendChild(clone);\n });\n });\n}\n\n// Listens for Bryntum's internal theme-change event and keeps every shadow root's\n// theme link in sync with the new document.head link. Fires after the old <link>s\n// are removed and the new one is fully loaded in document.head.\n// @ts-ignore - ion() is public but not present on GlobalEventsSingleton typings\nGlobalEvents.ion({\n theme() : void {\n const link = document.head.querySelector<HTMLLinkElement>('link[data-bryntum-theme]');\n if (link?.href) {\n syncThemeToShadowRoots(link);\n }\n }\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * Angular wrapper for Bryntum Chart\n */\n\nimport { Component, ElementRef, EventEmitter, Output, Input, SimpleChange, SimpleChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport WrapperHelper from './wrapper.helper';\n\nimport { AlignSpec, Base, Color, Container, DomConfig, KeyMapConfig, Layout, MaskConfig, MenuItemConfig, MenuItemEntry, Model, ModelConfig, ReactJSX, Rectangle, Scroller, ScrollerConfig, TabConfig, ToolbarItems, TooltipConfig, VueConfig, Widget } from '@bryntum/core-thin';\nimport { Chart, ChartListeners, ChartTooltipConfig, ChartContainerItemConfig, ChartContainerLayoutConfig, DataSeries, DataSeriesRole, Font } from '@bryntum/chart-thin';\n\nimport { DomHelper, StringHelper } from '@bryntum/core-thin';\nimport { initThemeInShadowRoots } from './shadowdom.helper';\n\nexport type BryntumChartProps = {\n // Configs\n /**\n * Element (or element id) to adopt as this Widget's encapsulating element. The widget's\n * content will be placed inside this element.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-adopt)\n */\n adopt ? : HTMLElement|string\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-align)\n */\n align ? : AlignSpec|string\n /**\n * When this widget is a child of a [Container](https://bryntum.com/products/chart/docs/api/Core/widget/Container), it will by default be participating in a\n * flexbox layout. This config allows you to set this widget's\n * [align-self](https://developer.mozilla.org/en-US/docs/Web/CSS/align-self) style.\n */\n alignSelf ? : string\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating) and being shown through [showBy](#Core/widget/Widget#function-showBy).*\n * `true` to show a connector arrow pointing to the align target.\n */\n anchor ? : boolean\n /**\n * Whether to animate chart data changes.\n */\n animate ? : boolean\n /**\n * Set the duration in milliseconds for all animations.\n */\n animationDuration ? : number\n /**\n * Element (or the id of an element) to append this widget's element to. Can be configured, or set once at\n * runtime. To access the element of a rendered widget, see [element](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-element).\n * <div class=\"note\">When creating nested trees of widgets, this should only be used on the outermost widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-appendTo)\n */\n appendTo ? : HTMLElement|string\n /**\n * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject\n * into an element which will be linked using the `aria-describedby` attribute.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ariaDescription)\n */\n ariaDescription ? : string\n /**\n * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject as\n * the `aria-label` attribute.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ariaLabel)\n */\n ariaLabel ? : string\n /**\n * Update assigned [record](https://bryntum.com/products/chart/docs/api/Core/widget/Container#config-record) automatically on field changes\n */\n autoUpdateRecord ? : boolean\n /**\n * The stroke color used for the axis lines and ticks, or `null` for theme default.\n */\n axisColor ? : string\n /**\n * The text color used for the axis labels / ticks, or `null` to use `axisColor`.\n */\n axisLabelColor ? : string\n /**\n * The chart background color, or `null` for transparent.\n */\n background ? : string\n /**\n * Layout direction for the bar chart type.\n */\n barDirection ? : 'vertical'|'horizontal'\n /**\n * (Optional) For `'bar'` charts, the amount of the available bar area each bar in this series should occupy,\n * from 0 to 1. Default: 0.9.\n */\n barWidth ? : number\n /**\n * Set `true` to add a border to this container's element.\n */\n border ? : boolean\n /**\n * An object where property names with a truthy value indicate which events should bubble up the ownership\n * hierarchy when triggered.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-bubbleEvents)\n */\n bubbleEvents ? : object\n /**\n * Scale factor to apply to the computed size of bubbles in the bubble chart type.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n bubbleScaleFactor ? : number\n /**\n * Set to `false` to not call onXXX method names (e.g. `onShow`, `onClick`), as an easy way to listen for events.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-callOnFunctions)\n */\n callOnFunctions ? : boolean\n /**\n * By default, if an event handler throws an exception, the error propagates up the stack and the\n * application state is undefined. Code which follows the event handler will *not* be executed.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-catchEventHandlerExceptions)\n */\n catchEventHandlerExceptions ? : boolean\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-centered)\n * @property {boolean} [once] If `true`, the Widget will be centred on its first show, but if it is moved at runtime, it will opt out of centering for future shows.\n */\n centered ? : boolean|object\n /**\n * Padding around the entire chart area, in pixels.\n */\n chartPadding ? : object\n /**\n * Chart tooltip configuration object. Configures the tooltip that appears when hovering over chart data points.\n * This follows the Chartjs tooltip configuration specification. This will only be applied if [showTooltips](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#property-showTooltips)\n * is `true`.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n chartTooltip ? : ChartTooltipConfig\n /**\n * Basic type of chart.\n */\n chartType ? : 'line'|'bar'|'pie'|'donut'|'scatter'|'bubble'|'radar'\n /**\n * Custom CSS classes to add to element.\n * May be specified as a space separated string, or as an object in which property names\n * with truthy values are used as the class names:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-cls)\n */\n cls ? : string|object\n /**\n * Applies the specified color to the widget, by setting the `--b-primary` CSS variable in the widgets\n * `style` block.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-color)\n */\n color ? : Color\n /**\n * Programmatic control over which column to start in when used in a grid layout.\n */\n column ? : number\n config ? : object\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating) or [positioned](#Core/widget/Widget#config-positioned).*\n * Element, Widget or Rectangle to which this Widget is constrained.\n */\n constrainTo ? : HTMLElement|Widget|Rectangle\n /**\n * The HTML content that coexists with sibling elements which may have been added to the\n * [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement) by plugins and features.\n * When specifying html, this widget's element will also have the [htmlCls](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-htmlCls)\n * class added to its classList, to allow targeted styling.\n */\n content ? : string\n /**\n * Custom CSS classes to add to the [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement).\n * May be specified as a space separated string, or as an object in which property names\n * with truthy values are used as the class names:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-contentElementCls)\n */\n contentElementCls ? : string|object\n /**\n * The data records or objects containing data to display in the chart.\n */\n data ? : Model[]|object[]|ModelConfig[]\n /**\n * When this Widget configuration is used in the Grid's RowExpander feature's `widget` config, provide the\n * field on the expanded record to use for populating this widget's store (if applicable)\n */\n dataField ? : string\n /**\n * The shape to use for data point markers, or `'none'` for no markers.\n */\n dataPointShape ? : 'square'|'circle'|'diamond'|'triangle'|'none'\n /**\n * Object to apply to elements dataset (each key will be used as a data-attribute on the element)\n */\n dataset ? : Record<string, string>\n /**\n * The name of the property to set when a single value is to be applied to this Widget. Such as when used\n * in a grid WidgetColumn, this is the property to which the column's `field` is applied.\n */\n defaultBindProperty ? : string\n /**\n * A [query](https://bryntum.com/products/chart/docs/api/Core/widget/Container#function-query) selector function which can identify the descendant widget to which\n * focus should be directed by default.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-defaultFocus)\n * @param {Core.widget.Widget} widget Widget passed to method\n * @returns {boolean} truthy value if widget is the default one\n */\n defaultFocus ? : ((widget: Widget) => boolean)|string\n /**\n * A config object containing default settings to apply to all child widgets.\n */\n defaults ? : ChartContainerItemConfig\n /**\n * Check for CSS compatibility and inclusion related issues and try to auto fix them. Performs the following\n * checks:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-detectCSSCompatibilityIssues)\n */\n detectCSSCompatibilityIssues ? : boolean\n /**\n * Disable or enable the widget. It is similar to [readOnly](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-readOnly) except a disabled widget\n * cannot be focused, uses a different rendition (usually greyish) and does not allow selecting its value.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-disabled)\n */\n disabled ? : boolean|'inert'\n /**\n * Controls the placement of this widget when it is added to a [panel's ](https://bryntum.com/products/chart/docs/api/Core/widget/Panel)\n * [strips collection](https://bryntum.com/products/chart/docs/api/Core/widget/Panel#config-strips). Typical values for this config are `'top'`,\n * `'bottom'`, `'left'`, or `'right'`, which cause the widget to be placed on that side of the panel's\n * body. Such widgets are called \"edge strips\".\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-dock)\n */\n dock ? : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * Set to `true` to be able to drag a widget freely on the page. Or set to an object with a `handleSelector`\n * property which controls when a drag should start.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-draggable)\n * @property {string} handleSelector CSS selector used to determine if drag can be started from a mouse-downed element inside the widget\n */\n draggable ? : boolean|object\n /**\n * An object specifying attributes to assign to the root element of this widget.\n * Set `null` value to attribute to remove it.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-elementAttributes)\n */\n elementAttributes ? : Record<string, string|null>\n extraData ? : any\n /**\n * The name of the record field containing the data for this series.\n */\n field ? : string\n /**\n * (Optional) The name of a field in the chart data to use as the background color for each data element\n * (e.g. bar).\n */\n fillColorField ? : string\n /**\n * When this widget is a child of a [Container](https://bryntum.com/products/chart/docs/api/Core/widget/Container), it will by default be participating in a\n * flexbox layout. This config allows you to set this widget's\n * [flex](https://developer.mozilla.org/en-US/docs/Web/CSS/flex) style.\n * This may be configured as a single number or a `&lt;flex-grow&gt; &lt;flex-shrink&gt; &lt;flex-basis&gt;` format string.\n * numeric-only values are interpreted as the `flex-grow` value.\n */\n flex ? : number|string\n /**\n * Set to `true` to move the widget out of the document flow and position it\n * absolutely in browser viewport space.\n */\n floating ? : boolean\n /**\n * The stroke color used for the grid lines, or `null` for theme default.\n */\n gridColor ? : string\n /**\n * Widget's height, used to set element `style.height`. Either specify a valid height string or a number,\n * which will get 'px' appended. We recommend using CSS as the primary way to control height, but in some\n * cases this config is convenient.\n */\n height ? : string|number\n /**\n * Configure with true to make widget initially hidden.\n */\n hidden ? : boolean\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-hideAnimation)\n */\n hideAnimation ? : boolean|object\n /**\n * Specify `true` to make this container hide when it has no visible children (Either empty\n * or all children hidden).\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-hideWhenEmpty)\n */\n hideWhenEmpty ? : boolean\n /**\n * The HTML to display initially or a function returning the markup (called at widget construction time).\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-html)\n * @param {Core.widget.Widget} widget The calling Widget\n */\n html ? : string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX\n /**\n * The CSS class(es) to add when HTML content is being applied to this widget.\n */\n htmlCls ? : string|object\n /**\n * Widget id, if not specified one will be generated. Also used for lookups through Widget.getById\n */\n id ? : string\n /**\n * Determines if the widgets read-only state should be controlled by its parent.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ignoreParentReadOnly)\n */\n ignoreParentReadOnly ? : boolean\n /**\n * Convenience setting to align input fields of child widgets. By default, the Field input element is\n * placed immediately following the `label`. If you prefer to have all input fields aligned to the\n * right, set this config to `'end'`.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-inputFieldAlign)\n */\n inputFieldAlign ? : 'start'|'end'\n /**\n * Element (or element id) to insert this widget before. If provided, [appendTo](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-appendTo) config is ignored.\n * <div class=\"note\">When creating nested trees of widgets, this should only be used on the outermost widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-insertBefore)\n */\n insertBefore ? : HTMLElement|string\n /**\n * Element (or element id) to append this widget element to, as a first child. If provided, [appendTo](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-appendTo) config is ignored.\n * <div class=\"note\">When creating nested trees of widgets, this should only be used on the outermost widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-insertFirst)\n */\n insertFirst ? : HTMLElement|string\n /**\n * Whether to do dynamic highlighting and other interactivity as the mouse cursor moves over the chart.\n */\n interactive ? : boolean\n /**\n * An optional CSS class to add to child items of this container.\n */\n itemCls ? : string\n /**\n * An object containing typed child widget config objects or Widgets. May also be specified\n * as an array.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-items)\n */\n items ? : Record<string, ChartContainerItemConfig|MenuItemEntry>|(ChartContainerItemConfig|MenuItemEntry|Widget)[]\n /**\n * An object whose keys are the [key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) name\n * and optional modifier prefixes: `'Ctrl+'`, `'Alt+'`, `'Meta+'`, and `'Shift+'` (case-insensitive). The values\n * are the name of the instance method to call when the keystroke is received.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-keyMap)\n */\n keyMap ? : Record<string, KeyMapConfig>\n /**\n * The name of the series to display in the legend.\n */\n label ? : string\n /**\n * Convenience setting to use same label placement on all child widgets.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-labelPosition)\n */\n labelPosition ? : 'before'|'above'|'align-before'|'auto'|null\n /**\n * For line and bar charts, this series defines the data values to use as ticks for the x-axis.\n * For pie and donut chart, it defines the data values to use as slice labels.\n */\n labels ? : DataSeries\n /**\n * Sets `labelWidth` for all children of this Container, that do not define their own `labelWidth`.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-labelWidth)\n */\n labelWidth ? : number|null\n /**\n * The short name of a helper class which manages rendering and styling of child items.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-layout)\n */\n layout ? : string|ChartContainerLayoutConfig\n /**\n * The CSS style properties to apply to the [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement).\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-layoutStyle)\n */\n layoutStyle ? : object\n /**\n * An array of [child item](https://bryntum.com/products/chart/docs/api/Core/widget/Container#config-items) *config objects* which is to be converted into\n * instances only when this Container is rendered, rather than eagerly at construct time.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-lazyItems)\n */\n lazyItems ? : Record<string, ChartContainerItemConfig>|ChartContainerItemConfig[]|Widget[]\n /**\n * Where the chart's legend should appear relative to the main chart content.\n * Options `inline-start` and `inline-end` function as in CSS, with horizontal positioning\n * controlled by RTL mode.\n */\n legendPosition ? : 'top'|'right'|'bottom'|'left'|'inline-start'|'inline-end'\n /**\n * Optional scale factor to increase or decrease the size of the chart legend.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n legendScale ? : number\n /**\n * The listener set for this object.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-listeners)\n */\n listeners ? : ChartListeners\n /**\n * A class translations of which are used for translating this entity.\n * This is often used when translations of an item are defined on its container class.\n * For example:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-localeClass)\n */\n localeClass ? : typeof Base\n /**\n * Set to `false` to disable localization of this object.\n */\n localizable ? : boolean\n /**\n * List of properties which values should be translated automatically upon a locale applying.\n * In case there is a need to localize not typical value (not a String value or a field with re-defined setter/getter),\n * you could use 'localeKey' meta configuration.\n * Example:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-localizableProperties)\n */\n localizableProperties ? : string[]\n /**\n * Widget's margin. This may be configured as a single number or a `TRBL` format string.\n * numeric-only values are interpreted as pixels.\n */\n margin ? : number|string\n /**\n * This config object contains the defaults for the [Mask](https://bryntum.com/products/chart/docs/api/Core/widget/Mask) created for the\n * [masked](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-masked) config. Any properties specified in the `masked` config will override these\n * values.\n */\n maskDefaults ? : MaskConfig\n /**\n * Set to `true` to apply the default mask to the widget. Alternatively, this can be the mask message or a\n * [Mask](https://bryntum.com/products/chart/docs/api/Core/widget/Mask) config object.\n */\n masked ? : boolean|string|MaskConfig\n /**\n * Max value for the Y axis, for chart types that have one.\n */\n max ? : number\n /**\n * The element's maxHeight. Can be either a String or a Number (which will have 'px' appended). Note that\n * like [height](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-height), *reading* the value will return the numeric value in pixels.\n */\n maxHeight ? : string|number\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-maximizeOnMobile)\n */\n maximizeOnMobile ? : number|string\n /**\n * The maximum tick rotation in degrees.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n maxTickLabelRotation ? : number\n /**\n * The elements maxWidth. Can be either a String or a Number (which will have 'px' appended). Note that\n * like [width](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-width), *reading* the value will return the numeric value in pixels.\n */\n maxWidth ? : string|number\n /**\n * Min value for the Y axis, for chart types that have one.\n */\n min ? : number\n /**\n * The element's minHeight. Can be either a String or a Number (which will have 'px' appended). Note that\n * like [height](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-height), *reading* the value will return the numeric value in pixels.\n */\n minHeight ? : string|number\n /**\n * The minimum tick rotation in degrees.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n minTickLabelRotation ? : number\n /**\n * The elements minWidth. Can be either a String or a Number (which will have 'px' appended). Note that\n * like [width](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-width), *reading* the value will return the numeric value in pixels.\n */\n minWidth ? : string|number\n /**\n * When this is configured as `true` a [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)\n * is used to monitor this element for size changes caused by either style manipulation, or by CSS\n * layout.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-monitorResize)\n * @property {boolean} immediate Set to `true` to receive resize notifications immediately.\n */\n monitorResize ? : boolean|object\n /**\n * An object containing default config objects which may be referenced by name in the [items](https://bryntum.com/products/chart/docs/api/Core/widget/Container#config-items)\n * config. For example, a specialized [Menu](https://bryntum.com/products/chart/docs/api/Core/widget/Menu) subclass may have a `namedItems` default\n * value defined like this:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-namedItems)\n */\n namedItems ? : Record<string, ChartContainerItemConfig>\n /**\n * Radius of data points, in pixels.\n */\n pointSize ? : number\n /**\n * Set to `true` when a widget is rendered into another widget's [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement), but must\n * not participate in the standard layout of that widget, and must be positioned relatively to that\n * widget's [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement).\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-positioned)\n */\n positioned ? : boolean\n /**\n * Prevent tooltip from being displayed on touch devices. Useful for example for buttons that display a\n * menu on click etc, since the tooltip would be displayed at the same time.\n */\n preventTooltipOnTouch ? : boolean\n /**\n * Whether this widget is read-only. This is only valid if the widget is an input\n * field, <strong>or contains input fields at any depth</strong>.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-readOnly)\n */\n readOnly ? : boolean\n /**\n * [Record](https://bryntum.com/products/chart/docs/api/Core/data/Model) whose values will be used to populate fields in the container.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-record)\n */\n record ? : Model\n relayStoreEvents ? : boolean\n /**\n * Either a default `rendition` to apply to all child widgets, or a map of renditions keyed by child widget\n * `type`.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-rendition)\n */\n rendition ? : string|Record<string, string>|null\n /**\n * Configure as `true` to have the component display a translucent ripple when its\n * [focusElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-focusElement), or [element](#Core/widget/Widget#property-element) is tapped <em>if the\n * current theme supports ripples</em>. Out of the box, only the Material theme supports ripples.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ripple)\n * @property {string} [delegate] A CSS selector to filter which child elements trigger ripples. By default, the ripple is clipped to the triggering element.\n * @property {string} [color] A CSS color name or specification.\n * @property {number} [radius] The ending radius of the ripple. Note that it will be clipped by the target element by default.\n * @property {string} [clip] A string which describes how to clip the ripple if it is not to be clipped to the default element. Either the property of the widget to use as the clipping element, or a selector to allow clipping to the closest matching ancestor to the target element.\n */\n ripple ? : boolean|object\n /**\n * The ARIA role to apply to this widget's element. By default, this is set to `'presentation'` to avoid\n * accidentally applying a role which may interfere with screen readers.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-role)\n */\n role ? : string\n /**\n * If you are rendering this widget to a shadow root inside a web component, set this config to the shadowRoot. If not inside a web component, set it to `document.body`\n */\n rootElement ? : ShadowRoot|HTMLElement\n /**\n * This may be configured as `true` to make the widget's element use the `direction:rtl` style.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-rtl)\n */\n rtl ? : boolean\n /**\n * Specifies whether (and optionally in which axes) a Widget may scroll. `true` means this widget may scroll\n * in both axes. May be an object containing boolean `overflowX` and `overflowY` properties which are\n * applied to CSS style properties `overflowX` and `overflowY`. If they are boolean, they are translated to\n * CSS overflow properties thus:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-scrollable)\n */\n scrollable ? : boolean|ScrollerConfig|Scroller\n /**\n * Defines what to do if document is scrolled while Widget is visible (only relevant when floating is set to `true`).\n * Valid values: `null`: do nothing, `hide`: hide the widget or `realign`: realign to the target if possible.\n */\n scrollAction ? : 'hide'|'realign'|null\n /**\n * One or more data series to display in the chart.\n */\n series ? : DataSeries[]\n /**\n * The type of stroke to use for data series lines.\n */\n seriesLineDash ? : 'dot'|'dash'|'solid'\n /**\n * The opacity of data series lines, from zero to one.\n */\n seriesLineOpacity ? : number\n /**\n * The thickness of data series lines, in pixels.\n */\n seriesLineThickness ? : number\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-showAnimation)\n */\n showAnimation ? : boolean|object\n /**\n * Whether to show the chart's control button menu, for example, the download button.\n */\n showControls ? : boolean\n /**\n * Whether to show the chart's legend.\n */\n showLegend ? : boolean\n /**\n * Whether to show data point markers on the chart.\n */\n showPoints ? : boolean\n /**\n * Whether to show the chart subtitle.\n */\n showSubtitle ? : boolean\n /**\n * Whether to show tick marks and labels on the chart axes.\n */\n showTicks ? : boolean\n /**\n * Whether to show the chart title.\n */\n showTitle ? : boolean\n /**\n * Whether to show tooltips when the mouse cursor hovers over chart elements.\n */\n showTooltips ? : boolean\n /**\n * Set to `false` to not show the tooltip when this widget is [disabled](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-disabled)\n */\n showTooltipWhenDisabled ? : boolean\n /**\n * Programmatic control over how many columns to span when used in a grid layout.\n */\n span ? : number\n /**\n * Specify `true` to match fields by their `name` property only when assigning a [record](https://bryntum.com/products/chart/docs/api/Core/widget/Container#config-record),\n * without falling back to `ref`.\n */\n strictRecordMapping ? : boolean\n /**\n * The chart subtitle.\n */\n subtitle ? : string\n /**\n * The font to use for the chart subtitle.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-subtitleFont)\n */\n subtitleFont ? : Font\n /**\n * Padding around the chart subtitle, in pixels.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n subtitlePadding ? : object\n /**\n * A configuration for the [tab](https://bryntum.com/products/chart/docs/api/Core/widget/Tab) created for this widget when it is placed in a\n * [TabPanel](https://bryntum.com/products/chart/docs/api/Core/widget/TabPanel). For example, this config can be used to control the icon of the `tab` for\n * this widget:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-tab)\n */\n tab ? : boolean|TabConfig\n /**\n * When this container is used as a tab in a TabPanel, these items are added to the\n * [TabBar](https://bryntum.com/products/chart/docs/api/Core/widget/TabBar) when this container is the active tab.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-tabBarItems)\n */\n tabBarItems ? : ToolbarItems[]|Widget[]\n /**\n * The tag name of this Widget's root element\n */\n tag ? : string\n /**\n * Text alignment: 'left', 'center' or 'right'. Also accepts direction neutral 'start' and 'end'.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-textAlign)\n */\n textAlign ? : 'left'|'center'|'right'|'start'|'end'\n /**\n * Specify `true` for a container used to show text markup. It will apply the CSS class `b-text-content`\n * which specifies a default max-width that makes long text more readable.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-textContent)\n */\n textContent ? : boolean\n /**\n * The font to use for tick labels on the chart axes.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-tickFont)\n */\n tickFont ? : Font\n /**\n * Set the color of the tick mark lines in the axis area, or `null` to default to [axisColor](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-axisColor).\n */\n tickMarkColor ? : string\n /**\n * The chart title.\n */\n title ? : string\n /**\n * The font to use for the chart title.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-titleFont)\n */\n titleFont ? : Font\n /**\n * Padding around the chart title, in pixels.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n titlePadding ? : object\n /**\n * Tooltip for the widget, either as a string or as a Tooltip config object.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-tooltip)\n */\n tooltip ? : string|TooltipConfig|null\n type ? : 'chart'\n /**\n * Custom CSS class name suffixes to apply to the elements rendered by this widget. This may be specified\n * as a space separated string, an array of strings, or as an object in which property names with truthy\n * values are used as the class names.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ui)\n */\n ui ? : string|object\n /**\n * A widgets weight determines its position among siblings when added to a [Container](https://bryntum.com/products/chart/docs/api/Core/widget/Container).\n * Higher weights go further down.\n */\n weight ? : number\n /**\n * Widget's width, used to set element `style.width`. Either specify a valid width string or a number, which\n * will get 'px' appended. We recommend using CSS as the primary way to control width, but in some cases\n * this config is convenient.\n */\n width ? : string|number\n /**\n * The x position for the widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-x)\n */\n x ? : number\n /**\n * The y position for the widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-y)\n */\n y ? : number\n\n}\n\n@Component({\n selector : 'bryntum-chart',\n template : ''\n})\nexport class BryntumChartComponent implements OnInit, OnDestroy {\n\n public static instanceClass = Chart;\n\n public static instanceName = 'Chart';\n\n private static bryntumEvents: string[] = [\n 'onBeforeDestroy',\n 'onBeforeHide',\n 'onBeforeSetRecord',\n 'onBeforeShow',\n 'onCatchAll',\n 'onDestroy',\n 'onDirtyStateChange',\n 'onElementCreated',\n 'onFocusIn',\n 'onFocusOut',\n 'onHide',\n 'onPaint',\n 'onReadOnly',\n 'onRecompose',\n 'onResize',\n 'onShow'\n ];\n\n private static bryntumFeatureNames: string[] = [\n\n ];\n\n private static bryntumConfigs: string[] = BryntumChartComponent.bryntumFeatureNames.concat([\n 'adopt',\n 'align',\n 'alignSelf',\n 'anchor',\n 'animate',\n 'animationDuration',\n 'appendTo',\n 'ariaDescription',\n 'ariaLabel',\n 'autoUpdateRecord',\n 'axisColor',\n 'axisLabelColor',\n 'background',\n 'barDirection',\n 'barWidth',\n 'border',\n 'bubbleEvents',\n 'bubbleScaleFactor',\n 'callOnFunctions',\n 'catchEventHandlerExceptions',\n 'centered',\n 'chartPadding',\n 'chartTooltip',\n 'chartType',\n 'cls',\n 'color',\n 'column',\n 'config',\n 'constrainTo',\n 'content',\n 'contentElementCls',\n 'data',\n 'dataField',\n 'dataPointShape',\n 'dataset',\n 'defaultBindProperty',\n 'defaultFocus',\n 'defaults',\n 'detectCSSCompatibilityIssues',\n 'disabled',\n 'dock',\n 'draggable',\n 'elementAttributes',\n 'extraData',\n 'field',\n 'fillColorField',\n 'flex',\n 'floating',\n 'gridColor',\n 'height',\n 'hidden',\n 'hideAnimation',\n 'hideWhenEmpty',\n 'html',\n 'htmlCls',\n 'id',\n 'ignoreParentReadOnly',\n 'inputFieldAlign',\n 'insertBefore',\n 'insertFirst',\n 'interactive',\n 'itemCls',\n 'items',\n 'keyMap',\n 'label',\n 'labelPosition',\n 'labels',\n 'labelWidth',\n 'layout',\n 'layoutStyle',\n 'lazyItems',\n 'legendPosition',\n 'legendScale',\n 'listeners',\n 'localeClass',\n 'localizable',\n 'localizableProperties',\n 'margin',\n 'maskDefaults',\n 'masked',\n 'max',\n 'maxHeight',\n 'maximizeOnMobile',\n 'maxTickLabelRotation',\n 'maxWidth',\n 'min',\n 'minHeight',\n 'minTickLabelRotation',\n 'minWidth',\n 'monitorResize',\n 'namedItems',\n 'pointSize',\n 'positioned',\n 'preventTooltipOnTouch',\n 'readOnly',\n 'record',\n 'relayStoreEvents',\n 'rendition',\n 'ripple',\n 'role',\n 'rootElement',\n 'rtl',\n 'scrollable',\n 'scrollAction',\n 'series',\n 'seriesLineDash',\n 'seriesLineOpacity',\n 'seriesLineThickness',\n 'showAnimation',\n 'showControls',\n 'showLegend',\n 'showPoints',\n 'showSubtitle',\n 'showTicks',\n 'showTitle',\n 'showTooltips',\n 'showTooltipWhenDisabled',\n 'span',\n 'strictRecordMapping',\n 'subtitle',\n 'subtitleFont',\n 'subtitlePadding',\n 'tab',\n 'tabBarItems',\n 'tag',\n 'textAlign',\n 'textContent',\n 'tickFont',\n 'tickMarkColor',\n 'title',\n 'titleFont',\n 'titlePadding',\n 'tooltip',\n 'type',\n 'ui',\n 'weight',\n 'width',\n 'x',\n 'y'\n ]);\n\n private static bryntumConfigsOnly: string[] = [\n 'adopt',\n 'align',\n 'anchor',\n 'ariaDescription',\n 'ariaLabel',\n 'autoUpdateRecord',\n 'border',\n 'bubbleEvents',\n 'color',\n 'config',\n 'constrainTo',\n 'contentElementCls',\n 'dataField',\n 'defaultBindProperty',\n 'defaultFocus',\n 'defaults',\n 'detectCSSCompatibilityIssues',\n 'dock',\n 'draggable',\n 'elementAttributes',\n 'floating',\n 'hideAnimation',\n 'hideWhenEmpty',\n 'htmlCls',\n 'ignoreParentReadOnly',\n 'itemCls',\n 'lazyItems',\n 'listeners',\n 'localeClass',\n 'localizable',\n 'localizableProperties',\n 'maskDefaults',\n 'masked',\n 'monitorResize',\n 'namedItems',\n 'positioned',\n 'preventTooltipOnTouch',\n 'relayStoreEvents',\n 'ripple',\n 'rootElement',\n 'scrollAction',\n 'showAnimation',\n 'showTooltipWhenDisabled',\n 'tab',\n 'tabBarItems',\n 'tag',\n 'textAlign',\n 'textContent',\n 'type',\n 'ui',\n 'weight'\n ];\n\n private static bryntumProps: string[] = BryntumChartComponent.bryntumFeatureNames.concat([\n 'alignSelf',\n 'animate',\n 'animationDuration',\n 'appendTo',\n 'axisColor',\n 'axisLabelColor',\n 'background',\n 'barDirection',\n 'barWidth',\n 'bubbleScaleFactor',\n 'callOnFunctions',\n 'catchEventHandlerExceptions',\n 'centered',\n 'chartPadding',\n 'chartTooltip',\n 'chartType',\n 'cls',\n 'column',\n 'content',\n 'data',\n 'dataPointShape',\n 'dataset',\n 'disabled',\n 'extraData',\n 'field',\n 'fillColorField',\n 'flex',\n 'gridColor',\n 'height',\n 'hidden',\n 'html',\n 'id',\n 'inputFieldAlign',\n 'insertBefore',\n 'insertFirst',\n 'interactive',\n 'items',\n 'keyMap',\n 'label',\n 'labelPosition',\n 'labels',\n 'labelWidth',\n 'layout',\n 'layoutStyle',\n 'legendPosition',\n 'legendScale',\n 'margin',\n 'max',\n 'maxHeight',\n 'maximizeOnMobile',\n 'maxTickLabelRotation',\n 'maxWidth',\n 'min',\n 'minHeight',\n 'minTickLabelRotation',\n 'minWidth',\n 'parent',\n 'pointSize',\n 'readOnly',\n 'record',\n 'rendition',\n 'role',\n 'rtl',\n 'scrollable',\n 'series',\n 'seriesLineDash',\n 'seriesLineOpacity',\n 'seriesLineThickness',\n 'showControls',\n 'showLegend',\n 'showPoints',\n 'showSubtitle',\n 'showTicks',\n 'showTitle',\n 'showTooltips',\n 'span',\n 'strictRecordMapping',\n 'subtitle',\n 'subtitleFont',\n 'subtitlePadding',\n 'tickFont',\n 'tickMarkColor',\n 'title',\n 'titleFont',\n 'titlePadding',\n 'tooltip',\n 'values',\n 'width',\n 'x',\n 'y'\n ]);\n\n private elementRef: ElementRef;\n public instance!: Chart;\n\n private bryntumConfig = {\n adopt : undefined,\n appendTo : undefined,\n href : undefined,\n angularComponent : this,\n features : {},\n listeners : {}\n };\n\n constructor(element: ElementRef) {\n this.elementRef = element;\n }\n\n // Configs only\n @Input() adopt ! : HTMLElement|string;\n @Input() align ! : AlignSpec|string;\n @Input() anchor ! : boolean;\n @Input() ariaDescription ! : string;\n @Input() ariaLabel ! : string;\n @Input() autoUpdateRecord ! : boolean;\n @Input() border ! : boolean;\n @Input() bubbleEvents ! : object;\n @Input() color ! : Color;\n @Input() config ! : object;\n @Input() constrainTo ! : HTMLElement|Widget|Rectangle;\n @Input() contentElementCls ! : string|object;\n @Input() dataField ! : string;\n @Input() defaultBindProperty ! : string;\n @Input() defaultFocus ! : ((widget: Widget) => boolean)|string;\n @Input() defaults ! : ChartContainerItemConfig;\n @Input() detectCSSCompatibilityIssues ! : boolean;\n @Input() dock ! : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object;\n @Input() draggable ! : boolean|object;\n @Input() elementAttributes ! : Record<string, string|null>;\n @Input() floating ! : boolean;\n @Input() hideAnimation ! : boolean|object;\n @Input() hideWhenEmpty ! : boolean;\n @Input() htmlCls ! : string|object;\n @Input() ignoreParentReadOnly ! : boolean;\n @Input() itemCls ! : string;\n @Input() lazyItems ! : Record<string, ChartContainerItemConfig>|ChartContainerItemConfig[]|Widget[];\n @Input() listeners ! : ChartListeners;\n @Input() localeClass ! : typeof Base;\n @Input() localizable ! : boolean;\n @Input() localizableProperties ! : string[];\n @Input() maskDefaults ! : MaskConfig;\n @Input() masked ! : boolean|string|MaskConfig;\n @Input() monitorResize ! : boolean|object;\n @Input() namedItems ! : Record<string, ChartContainerItemConfig>;\n @Input() positioned ! : boolean;\n @Input() preventTooltipOnTouch ! : boolean;\n @Input() relayStoreEvents ! : boolean;\n @Input() ripple ! : boolean|object;\n @Input() rootElement ! : ShadowRoot|HTMLElement;\n @Input() scrollAction ! : 'hide'|'realign'|null;\n @Input() showAnimation ! : boolean|object;\n @Input() showTooltipWhenDisabled ! : boolean;\n @Input() tab ! : boolean|TabConfig;\n @Input() tabBarItems ! : ToolbarItems[]|Widget[];\n @Input() tag ! : string;\n @Input() textAlign ! : 'left'|'center'|'right'|'start'|'end';\n @Input() textContent ! : boolean;\n @Input() type ! : 'chart';\n @Input() ui ! : string|object;\n @Input() weight ! : number;\n\n // Configs and properties\n @Input() alignSelf ! : string;\n @Input() animate ! : boolean;\n @Input() animationDuration ! : number;\n @Input() appendTo ! : HTMLElement|string;\n @Input() axisColor ! : string;\n @Input() axisLabelColor ! : string;\n @Input() background ! : string;\n @Input() barDirection ! : 'vertical'|'horizontal';\n @Input() barWidth ! : number;\n @Input() bubbleScaleFactor ! : number;\n @Input() callOnFunctions ! : boolean;\n @Input() catchEventHandlerExceptions ! : boolean;\n @Input() centered ! : boolean|{\n once?: boolean\n }|boolean|object;\n @Input() chartPadding ! : object;\n @Input() chartTooltip ! : ChartTooltipConfig;\n @Input() chartType ! : 'line'|'bar'|'pie'|'donut'|'scatter'|'bubble'|'radar';\n @Input() cls ! : string|object;\n @Input() column ! : number;\n @Input() content ! : string;\n @Input() data ! : Model[]|object[]|ModelConfig[];\n @Input() dataPointShape ! : 'square'|'circle'|'diamond'|'triangle'|'none';\n @Input() dataset ! : object|Record<string, string>;\n @Input() disabled ! : boolean|'inert';\n @Input() extraData ! : any;\n @Input() field ! : string;\n @Input() fillColorField ! : string;\n @Input() flex ! : number|string;\n @Input() gridColor ! : string;\n @Input() height ! : number|string;\n @Input() hidden ! : boolean;\n @Input() html ! : string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX|(string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX);\n @Input() id ! : string;\n @Input() inputFieldAlign ! : 'start'|'end';\n @Input() insertBefore ! : HTMLElement|string;\n @Input() insertFirst ! : HTMLElement|string;\n @Input() interactive ! : boolean;\n @Input() items ! : (ChartContainerItemConfig|MenuItemConfig|Widget)[]|Record<string, ChartContainerItemConfig|MenuItemConfig>|Widget[]|Record<string, ChartContainerItemConfig|MenuItemEntry>|(ChartContainerItemConfig|MenuItemEntry|Widget)[];\n @Input() keyMap ! : Record<string, KeyMapConfig>;\n @Input() label ! : string;\n @Input() labelPosition ! : 'before'|'above'|'align-before'|'auto'|null;\n @Input() labels ! : DataSeries;\n @Input() labelWidth ! : number|null;\n @Input() layout ! : Layout|string|ChartContainerLayoutConfig;\n @Input() layoutStyle ! : object;\n @Input() legendPosition ! : 'top'|'right'|'bottom'|'left'|'inline-start'|'inline-end';\n @Input() legendScale ! : number;\n @Input() margin ! : number|string;\n @Input() max ! : number;\n @Input() maxHeight ! : string|number;\n @Input() maximizeOnMobile ! : number|string;\n @Input() maxTickLabelRotation ! : number;\n @Input() maxWidth ! : string|number;\n @Input() min ! : number;\n @Input() minHeight ! : string|number;\n @Input() minTickLabelRotation ! : number;\n @Input() minWidth ! : string|number;\n @Input() pointSize ! : number;\n @Input() readOnly ! : boolean;\n @Input() record ! : Model;\n @Input() rendition ! : string|Record<string, string>|null;\n @Input() role ! : DataSeriesRole|string;\n @Input() rtl ! : boolean;\n @Input() scrollable ! : Scroller|boolean|ScrollerConfig;\n @Input() series ! : DataSeries[];\n @Input() seriesLineDash ! : 'dot'|'dash'|'solid';\n @Input() seriesLineOpacity ! : number;\n @Input() seriesLineThickness ! : number;\n @Input() showControls ! : boolean;\n @Input() showLegend ! : boolean;\n @Input() showPoints ! : boolean;\n @Input() showSubtitle ! : boolean;\n @Input() showTicks ! : boolean;\n @Input() showTitle ! : boolean;\n @Input() showTooltips ! : boolean;\n @Input() span ! : number;\n @Input() strictRecordMapping ! : boolean;\n @Input() subtitle ! : string;\n @Input() subtitleFont ! : Font;\n @Input() subtitlePadding ! : object;\n @Input() tickFont ! : Font;\n @Input() tickMarkColor ! : string;\n @Input() title ! : string;\n @Input() titleFont ! : Font;\n @Input() titlePadding ! : object;\n @Input() tooltip ! : string|TooltipConfig|null;\n @Input() width ! : number|string;\n @Input() x ! : number;\n @Input() y ! : number;\n\n // Properties only\n @Input() parent ! : Widget;\n @Input() values ! : Record<string, object>;\n\n // Events emitters\n /**\n * Fires before an object is destroyed.\n * @param {object} event Event object\n * @param {Core.Base} event.source The Object that is being destroyed.\n */\n @Output() onBeforeDestroy: any = new EventEmitter<((event: { source: Base }) => void)|string>();\n /**\n * Triggered before a widget is hidden. Return `false` to prevent the action.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source The widget being hidden.\n */\n @Output() onBeforeHide: any = new EventEmitter<((event: { source: Widget }) => boolean|void)|string>();\n /**\n * Fired before this container will load record values into its child fields. This is useful if you\n * want to modify the UI before data is loaded (e.g. set some input field to be readonly)\n * @param {object} event Event object\n * @param {Core.widget.Container} event.source The container\n * @param {Core.data.Model} event.record The record\n */\n @Output() onBeforeSetRecord: any = new EventEmitter<((event: { source: Container, record: Model }) => void)|string>();\n /**\n * Triggered before a widget is shown. Return `false` to prevent the action.\n * @param {object} event Event object\n * @param {Core.widget.Widget,any} event.source The widget being shown\n */\n @Output() onBeforeShow: any = new EventEmitter<((event: { source: Widget|any }) => Promise<boolean>|boolean|void)|string>();\n /**\n * Fires when any other event is fired from the object.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#event-catchAll)\n * @param {object} event Event object\n * @param {{[key: string]: any, type: string}} event.event The Object that contains event details\n * @param {string} event.event.type The type of the event which is caught by the listener\n */\n @Output() onCatchAll: any = new EventEmitter<((event: {[key: string]: any, type: string}) => void)|string>();\n /**\n * Fires when an object is destroyed.\n * @param {object} event Event object\n * @param {Core.Base} event.source The Object that is being destroyed.\n */\n @Output() onDestroy: any = new EventEmitter<((event: { source: Base }) => void)|string>();\n /**\n * Fires when a field is mutated and the state of the [hasChanges](https://bryntum.com/products/chart/docs/api/Core/widget/Container#property-hasChanges) property changes\n * @param {object} event Event object\n * @param {Core.widget.Container} event.source The container.\n * @param {boolean} event.dirty The dirty state of the Container - `true` if there are any fields which have been changed since initial load.\n */\n @Output() onDirtyStateChange: any = new EventEmitter<((event: { source: Container, dirty: boolean }) => void)|string>();\n /**\n * Triggered when a widget's [element](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-element) is available.\n * @param {object} event Event object\n * @param {HTMLElement} event.element The Widget's element.\n */\n @Output() onElementCreated: any = new EventEmitter<((event: { element: HTMLElement }) => void)|string>();\n /**\n * Fired when focus enters this Widget.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source This Widget\n * @param {HTMLElement} event.fromElement The element which lost focus.\n * @param {HTMLElement} event.toElement The element which gained focus.\n * @param {Core.widget.Widget} event.fromWidget The widget which lost focus.\n * @param {Core.widget.Widget} event.toWidget The widget which gained focus.\n * @param {boolean} event.backwards `true` if the `toElement` is before the `fromElement` in document order.\n */\n @Output() onFocusIn: any = new EventEmitter<((event: { source: Widget, fromElement: HTMLElement, toElement: HTMLElement, fromWidget: Widget, toWidget: Widget, backwards: boolean }) => void)|string>();\n /**\n * Fired when focus exits this Widget's ownership tree. This is different from a `blur` event.\n * focus moving from within this Widget's ownership tree, even if there are floating widgets\n * will not trigger this event. This is when focus exits this widget completely.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source This Widget\n * @param {HTMLElement} event.fromElement The element which lost focus.\n * @param {HTMLElement} event.toElement The element which gained focus.\n * @param {Core.widget.Widget} event.fromWidget The widget which lost focus.\n * @param {Core.widget.Widget} event.toWidget The widget which gained focus.\n * @param {boolean} event.backwards `true` if the `toElement` is before the `fromElement` in document order.\n */\n @Output() onFocusOut: any = new EventEmitter<((event: { source: Widget, fromElement: HTMLElement, toElement: HTMLElement, fromWidget: Widget, toWidget: Widget, backwards: boolean }) => void)|string>();\n /**\n * Triggered after a widget was hidden\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source The widget\n */\n @Output() onHide: any = new EventEmitter<((event: { source: Widget }) => void)|string>();\n /**\n * Triggered when a widget which had been in a non-visible state for any reason\n * achieves visibility.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#event-paint)\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source The widget being painted.\n * @param {boolean} event.firstPaint `true` if this is the first paint.\n */\n @Output() onPaint: any = new EventEmitter<((event: { source: Widget, firstPaint: boolean }) => void)|string>();\n /**\n * Fired when a Widget's read only state is toggled\n * @param {object} event Event object\n * @param {boolean} event.readOnly Read only or not\n */\n @Output() onReadOnly: any = new EventEmitter<((event: { readOnly: boolean }) => void)|string>();\n /**\n * This event is fired after a widget's elements have been synchronized due to a direct or indirect call\n * to [recompose](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#function-recompose), if this results in some change to the widget's rendered DOM elements.\n */\n @Output() onRecompose: any = new EventEmitter<(() => void)|string>();\n /**\n * Fired when the encapsulating element of a Widget resizes *only when [monitorResize](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-monitorResize) is `true`*.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source This Widget\n * @param {number} event.width The new width\n * @param {number} event.height The new height\n * @param {number} event.oldWidth The old width\n * @param {number} event.oldHeight The old height\n */\n @Output() onResize: any = new EventEmitter<((event: { source: Widget, width: number, height: number, oldWidth: number, oldHeight: number }) => void)|string>();\n /**\n * Triggered after a widget is shown.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source The widget\n */\n @Output() onShow: any = new EventEmitter<((event: { source: Widget }) => void)|string>();\n\n /**\n * Create and append the underlying widget\n */\n ngOnInit(): void {\n const\n me = this,\n {\n elementRef,\n bryntumConfig\n } = me,\n {\n instanceClass,\n instanceName,\n bryntumConfigs,\n bryntumEvents\n } = BryntumChartComponent;\n\n bryntumConfigs.filter(prop => prop in this).forEach(prop => {\n // @ts-ignore\n WrapperHelper.applyPropValue(bryntumConfig, prop, this[prop]);\n if (['features', 'config'].includes(prop)) {\n WrapperHelper.devWarningConfigProp(instanceName, prop);\n }\n });\n // @ts-ignore\n bryntumEvents.filter(event => this[event] && this[event].observers.length > 0).forEach(event => {\n const\n uncapitalize = (str: string) => str.charAt(0).toLowerCase() + str.slice(1),\n eventName = (str: string) => uncapitalize(str.slice(2));\n\n // @ts-ignore\n bryntumConfig.listeners[eventName(event)] = e => {\n // @ts-ignore\n me[event].emit(e);\n // EventEmitter does not return values in the normal way, work around it by setting `returnValue` flag\n // in Angular listeners\n return e.returnValue;\n };\n });\n\n // If component has no container specified in config then use adopt to Wrapper's element\n const\n containerParam = [\n 'adopt',\n 'appendTo',\n 'insertAfter',\n 'insertBefore'\n // @ts-ignore\n ].find(prop => bryntumConfig[prop]);\n if (!containerParam) {\n if (instanceName === 'Button' || elementRef.nativeElement.getRootNode() instanceof ShadowRoot) {\n // Button should always be <a> or <button> inside owner element\n bryntumConfig.appendTo = elementRef.nativeElement;\n }\n else {\n bryntumConfig.adopt = elementRef.nativeElement;\n }\n }\n else {\n WrapperHelper.devWarningContainer(instanceName, containerParam);\n }\n\n // In shadow DOM (e.g. Angular ViewEncapsulation.ShadowDom), theme CSS from document.head\n // does not cascade into the shadow root. Inject a matching <link> so Bryntum's CSS check\n // finds the theme. The @font-face rules from component styles are also extracted to\n // document scope so document.fonts detects them (shadow-root @font-face is not reliably\n // included in document.fonts across all browsers).\n const shadowRoot = elementRef.nativeElement.getRootNode();\n if (shadowRoot instanceof ShadowRoot) {\n initThemeInShadowRoots();\n BryntumChartComponent.ensureFontsInDocument(shadowRoot);\n }\n\n // @ts-ignore\n me.instance = instanceName === 'Widget' ? Widget.create(bryntumConfig) : new instanceClass(bryntumConfig);\n\n }\n\n /**\n * Extracts all @font-face declarations from a shadow root's stylesheets and adds them to\n * document.head as a single <style> element. This is needed because @font-face rules inside\n * a shadow root are not reliably included in document.fonts across all browsers, causing\n * Bryntum's CSS compatibility check to incorrectly report missing fonts.\n * Safe to call multiple times — the extraction runs only once per page.\n */\n private static ensureFontsInDocument(shadowRoot: ShadowRoot): void {\n if (document.querySelector('#b-shadow-root-fonts')) {\n return;\n }\n\n const fontFaceRules: string[] = [];\n\n const extractFromSheet = (sheet: CSSStyleSheet): void => {\n try {\n const rules = sheet.cssRules;\n for (let i = 0; i < rules.length; i++) {\n if (rules[i].type === CSSRule.FONT_FACE_RULE) {\n fontFaceRules.push(rules[i].cssText);\n }\n }\n }\n catch (_e) {\n // Cross-origin access may throw; silently skip\n }\n };\n\n // adoptedStyleSheets (Angular 14+ / modern browsers)\n const adoptedSheets: CSSStyleSheet[] = (shadowRoot as any).adoptedStyleSheets ?? [];\n adoptedSheets.forEach(sheet => extractFromSheet(sheet));\n\n // <style> elements (older Angular or fallback)\n shadowRoot.querySelectorAll('style').forEach(el => {\n if (el.sheet) {\n extractFromSheet(el.sheet);\n }\n });\n\n if (fontFaceRules.length > 0) {\n const style = document.createElement('style');\n style.id = 'b-shadow-root-fonts';\n style.textContent = fontFaceRules.join('\\n');\n document.head.appendChild(style);\n }\n }\n\n /**\n * Watch for changes\n * @param changes\n */\n ngOnChanges(changes: SimpleChanges): void {\n const\n { instance } = this,\n { instanceName } = BryntumChartComponent;\n if (!instance) {\n return;\n }\n // Iterate over all changes\n Object.entries(changes).forEach(([prop, change]) => {\n const\n newValue = (change as SimpleChange).currentValue,\n { instance } = this,\n { bryntumConfigsOnly, bryntumProps } = BryntumChartComponent;\n if (bryntumProps.includes(prop)) {\n WrapperHelper.applyPropValue(instance, prop, newValue, false);\n if (bryntumConfigsOnly.includes(prop)) {\n WrapperHelper.devWarningUpdateProp(instanceName, prop);\n }\n }\n });\n }\n\n /**\n * Destroy the component\n */\n ngOnDestroy(): void {\n // @ts-ignore\n if (this.instance && this.instance.destroy) {\n this.instance.destroy();\n }\n }\n}\n","/**\n* Angular Bryntum Chart Shared module\n*/\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { BryntumChartComponent } from './bryntum-chart.component';\n\n@NgModule({\n declarations : [\n\n BryntumChartComponent\n ],\n imports : [CommonModule],\n exports : [\n\n BryntumChartComponent\n ]\n})\nexport class BryntumChartModule { }\n","/*\n * Public API Surface of Bryntum Chart\n */\nexport * from './lib/chart.module';\n\nexport * from './lib/bryntum-chart.component'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bryntum-chart-angular-thin.js","sources":["../../component/src/lib/wrapper.helper.ts","../../component/src/lib/shadowdom.helper.ts","../../component/src/lib/bryntum-chart.component.ts","../../component/src/lib/chart.module.ts","../../component/src/public-api.ts","../../component/src/bryntum-chart-angular-thin.ts"],"sourcesContent":["import { isDevMode } from '@angular/core';\n\nexport default class WrapperHelper {\n /**\n * Development warning. Showed when environment is set to 'development'.\n */\n public static devWarning(clsName: string, msg: string) : void {\n // @ts-ignore\n if (window.bryntum && window.bryntum.isTestEnv || isDevMode()) {\n console.warn(`Bryntum${clsName}Component development warning!\\n${msg}\\n` +\n 'Please check Angular integration guide: https://bryntum.com/products/chart/docs/guide/Chart/integration/angular/guide'\n );\n }\n }\n\n /**\n * Development warning for container parameter.\n */\n public static devWarningContainer(clsName: string, containerParam: string) : void {\n WrapperHelper.devWarning(clsName,\n `Using \"${containerParam}\" parameter for configuration is not recommended.\\n` +\n 'Widget is placed automatically inside it\\'s container element' +\n `Solution: remove \"${containerParam}\" parameter from configuration.`\n );\n }\n\n /**\n * Development warning for config parameter.\n */\n public static devWarningConfigProp(clsName: string, prop: string) : void {\n WrapperHelper.devWarning(clsName,\n `Using \"${prop}\" parameter for configuration is not recommended.\\n` +\n `Solution: Use separate parameter for each \"${prop}\" value to enable reactive updates of the API instance`\n );\n }\n\n /**\n * Development warning for config property.\n */\n public static devWarningUpdateProp(clsName: string, prop: string): void {\n WrapperHelper.devWarning(clsName,\n `\"${prop}\" is a static config option for component constructor only. No runtime changes are supported!`\n );\n }\n\n /**\n * Applies property value to Bryntum config or instance.\n * @param {Object} configOrInstance target object\n * @param {string} prop property name\n * @param {any} value value\n * @param {Boolean} isConfig config setting mode\n */\n public static applyPropValue(configOrInstance: object|any, prop: string, value: object|any, isConfig: boolean = true): void {\n\n if (prop === 'project') {\n // Allow use ProjectModel component as project\n if (value && typeof value === 'object') {\n configOrInstance[prop] = value.instance || value;\n }\n }\n else if (prop === 'features' && typeof value === 'object') {\n Object.keys(value).forEach(key => WrapperHelper.applyPropValue(configOrInstance, `${key}Feature`, value[key], isConfig));\n }\n else if (prop === 'config' && typeof value === 'object') {\n Object.keys(value).forEach(key => WrapperHelper.applyPropValue(configOrInstance, key, value[key], isConfig));\n }\n else if (prop === 'columns' && !isConfig) {\n configOrInstance['columns'].data = value;\n }\n else if (prop.endsWith('Feature')) {\n const\n features = configOrInstance['features'],\n featureName = prop.replace('Feature', '');\n if (isConfig) {\n features[featureName] = value;\n }\n else {\n const feature = features[featureName];\n if (feature) {\n feature.setConfig(value);\n }\n }\n }\n else {\n configOrInstance[prop] = value;\n }\n }\n\n}\n","import { GlobalEvents } from '@bryntum/core-thin';\n\n// Module-level registry of all open shadow roots that host Bryntum widgets.\n// Populated lazily by collectOpenShadowRoots() the first time it is called, and\n// kept up to date via registerShadowRoot / unregisterShadowRoot.\nconst openShadowRoots = new Set<ShadowRoot>();\n\n// Walks the DOM tree starting from `root` and collects every open shadow root found.\n// Results are cached in openShadowRoots after the first traversal so subsequent calls\n// are O(1). Recursive so nested shadow roots are also discovered.\nfunction collectOpenShadowRoots(root : Document | ShadowRoot = document) : ShadowRoot[] {\n if (openShadowRoots.size > 0) {\n return Array.from(openShadowRoots);\n }\n const roots : ShadowRoot[] = [];\n Array.from(root.querySelectorAll('*')).forEach(el => {\n if ((el as Element & { shadowRoot? : ShadowRoot }).shadowRoot) {\n roots.push((el as any).shadowRoot);\n roots.push(...collectOpenShadowRoots((el as any).shadowRoot));\n }\n });\n roots.forEach(r => openShadowRoots.add(r));\n return roots;\n}\n\n// Updates the href and data-bryntum-theme attribute of every theme <link> inside all\n// registered shadow roots to mirror the new head link after a theme change.\nfunction syncThemeToShadowRoots(headLink : HTMLLinkElement) : void {\n const href = headLink.href;\n const themeAttr = headLink.getAttribute('data-bryntum-theme') ?? '';\n\n collectOpenShadowRoots().forEach(shadowRoot => {\n Array.from(shadowRoot.querySelectorAll<HTMLLinkElement>('link[data-bryntum-theme]')).forEach(link => {\n link.setAttribute('data-bryntum-theme', themeAttr);\n link.href = href;\n });\n });\n}\n\n// Adds a shadow root to the registry so it is included in theme sync operations.\n// Called by BryntumThemeComboComponent.ngOnInit when it detects it is inside a shadow root.\nexport function registerShadowRoot(shadowRoot : ShadowRoot) : void {\n openShadowRoots.add(shadowRoot);\n}\n\n// Removes a shadow root from the registry.\n// Called by BryntumThemeComboComponent.ngOnDestroy to clean up on component teardown.\nexport function unregisterShadowRoot(shadowRoot : ShadowRoot) : void {\n openShadowRoots.delete(shadowRoot);\n}\n\n// Injects a clone of each document.head theme <link> into every registered shadow root\n// that does not already have one. This is required because CSS from document.head does\n// not cascade into shadow DOM, so Bryntum theme styles would be absent without this.\n// Safe to call multiple times — the presence check prevents duplicate injection.\nexport function initThemeInShadowRoots() : void {\n const headThemeLinks = Array.from(document.head.querySelectorAll<HTMLLinkElement>('link[data-bryntum-theme]'));\n\n if (!headThemeLinks.length) {\n return;\n }\n\n collectOpenShadowRoots().forEach(shadowRoot => {\n if (shadowRoot.querySelector('link[data-bryntum-theme]')) {\n return;\n }\n\n headThemeLinks.forEach(headLink => {\n if (!headLink.href) {\n return;\n }\n // Clone the head link to preserve all attributes, then ensure absolute href\n const clone = headLink.cloneNode() as HTMLLinkElement;\n clone.href = headLink.href;\n shadowRoot.appendChild(clone);\n });\n });\n}\n\n// Listens for Bryntum's internal theme-change event and keeps every shadow root's\n// theme link in sync with the new document.head link. Fires after the old <link>s\n// are removed and the new one is fully loaded in document.head.\n// @ts-ignore - ion() is public but not present on GlobalEventsSingleton typings\nGlobalEvents.ion({\n theme() : void {\n const link = document.head.querySelector<HTMLLinkElement>('link[data-bryntum-theme]');\n if (link?.href) {\n syncThemeToShadowRoots(link);\n }\n }\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * Angular wrapper for Bryntum Chart\n */\n\nimport { Component, ElementRef, EventEmitter, Output, Input, SimpleChange, SimpleChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport WrapperHelper from './wrapper.helper';\n\nimport { AlignSpec, Base, Color, Container, DomConfig, KeyMapConfig, Layout, MaskConfig, MenuItemConfig, MenuItemEntry, Model, ModelConfig, OverflowTwinConfig, ReactJSX, Rectangle, Scroller, ScrollerConfig, TabConfig, ToolbarItems, TooltipConfig, VueConfig, Widget } from '@bryntum/core-thin';\nimport { Chart, ChartListeners, ChartTooltipConfig, ChartContainerItemConfig, ChartContainerLayoutConfig, DataSeries, DataSeriesRole, Font } from '@bryntum/chart-thin';\n\nimport { DomHelper, StringHelper } from '@bryntum/core-thin';\nimport { initThemeInShadowRoots } from './shadowdom.helper';\n\nexport type BryntumChartProps = {\n // Configs\n /**\n * Element (or element id) to adopt as this Widget's encapsulating element. The widget's\n * content will be placed inside this element.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-adopt)\n */\n adopt ? : HTMLElement|string\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-align)\n */\n align ? : AlignSpec|string\n /**\n * When this widget is a child of a [Container](https://bryntum.com/products/chart/docs/api/Core/widget/Container), it will by default be participating in a\n * flexbox layout. This config allows you to set this widget's\n * [align-self](https://developer.mozilla.org/en-US/docs/Web/CSS/align-self) style.\n */\n alignSelf ? : string\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating) and being shown through [showBy](#Core/widget/Widget#function-showBy).*\n * `true` to show a connector arrow pointing to the align target.\n */\n anchor ? : boolean\n /**\n * Whether to animate chart data changes.\n */\n animate ? : boolean\n /**\n * Set the duration in milliseconds for all animations.\n */\n animationDuration ? : number\n /**\n * Element (or the id of an element) to append this widget's element to. Can be configured, or set once at\n * runtime. To access the element of a rendered widget, see [element](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-element).\n * <div class=\"note\">When creating nested trees of widgets, this should only be used on the outermost widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-appendTo)\n */\n appendTo ? : HTMLElement|string\n /**\n * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject\n * into an element which will be linked using the `aria-describedby` attribute.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ariaDescription)\n */\n ariaDescription ? : string\n /**\n * A localizable string (May contain `'L{}'` tokens which resolve in the locale file) to inject as\n * the `aria-label` attribute.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ariaLabel)\n */\n ariaLabel ? : string\n /**\n * Update assigned [record](https://bryntum.com/products/chart/docs/api/Core/widget/Container#config-record) automatically on field changes\n */\n autoUpdateRecord ? : boolean\n /**\n * The stroke color used for the axis lines and ticks, or `null` for theme default.\n */\n axisColor ? : string\n /**\n * The text color used for the axis labels / ticks, or `null` to use `axisColor`.\n */\n axisLabelColor ? : string\n /**\n * The chart background color, or `null` for transparent.\n */\n background ? : string\n /**\n * Layout direction for the bar chart type.\n */\n barDirection ? : 'vertical'|'horizontal'\n /**\n * (Optional) For `'bar'` charts, the amount of the available bar area each bar in this series should occupy,\n * from 0 to 1. Default: 0.9.\n */\n barWidth ? : number\n /**\n * Set `true` to add a border to this container's element.\n */\n border ? : boolean\n /**\n * An object where property names with a truthy value indicate which events should bubble up the ownership\n * hierarchy when triggered.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-bubbleEvents)\n */\n bubbleEvents ? : object\n /**\n * Scale factor to apply to the computed size of bubbles in the bubble chart type.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n bubbleScaleFactor ? : number\n /**\n * Set to `false` to not call onXXX method names (e.g. `onShow`, `onClick`), as an easy way to listen for events.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-callOnFunctions)\n */\n callOnFunctions ? : boolean\n /**\n * By default, if an event handler throws an exception, the error propagates up the stack and the\n * application state is undefined. Code which follows the event handler will *not* be executed.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-catchEventHandlerExceptions)\n */\n catchEventHandlerExceptions ? : boolean\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-centered)\n * @property {boolean} [once] If `true`, the Widget will be centred on its first show, but if it is moved at runtime, it will opt out of centering for future shows.\n */\n centered ? : boolean|object\n /**\n * Padding around the entire chart area, in pixels.\n */\n chartPadding ? : object\n /**\n * Chart tooltip configuration object. Configures the tooltip that appears when hovering over chart data points.\n * This follows the Chartjs tooltip configuration specification. This will only be applied if [showTooltips](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#property-showTooltips)\n * is `true`.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n chartTooltip ? : ChartTooltipConfig\n /**\n * Basic type of chart.\n */\n chartType ? : 'line'|'bar'|'pie'|'donut'|'scatter'|'bubble'|'radar'\n /**\n * Custom CSS classes to add to element.\n * May be specified as a space separated string, or as an object in which property names\n * with truthy values are used as the class names:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-cls)\n */\n cls ? : string|object\n /**\n * Applies the specified color to the widget, by setting the `--b-primary` CSS variable in the widgets\n * `style` block.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-color)\n */\n color ? : Color\n /**\n * Programmatic control over which column to start in when used in a grid layout.\n */\n column ? : number\n config ? : object\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating) or [positioned](#Core/widget/Widget#config-positioned).*\n * Element, Widget or Rectangle to which this Widget is constrained.\n */\n constrainTo ? : HTMLElement|Widget|Rectangle\n /**\n * The HTML content that coexists with sibling elements which may have been added to the\n * [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement) by plugins and features.\n * When specifying html, this widget's element will also have the [htmlCls](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-htmlCls)\n * class added to its classList, to allow targeted styling.\n */\n content ? : string\n /**\n * Custom CSS classes to add to the [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement).\n * May be specified as a space separated string, or as an object in which property names\n * with truthy values are used as the class names:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-contentElementCls)\n */\n contentElementCls ? : string|object\n /**\n * The data records or objects containing data to display in the chart.\n */\n data ? : Model[]|object[]|ModelConfig[]\n /**\n * When this Widget configuration is used in the Grid's RowExpander feature's `widget` config, provide the\n * field on the expanded record to use for populating this widget's store (if applicable)\n */\n dataField ? : string\n /**\n * The shape to use for data point markers, or `'none'` for no markers.\n */\n dataPointShape ? : 'square'|'circle'|'diamond'|'triangle'|'none'\n /**\n * Object to apply to elements dataset (each key will be used as a data-attribute on the element)\n */\n dataset ? : Record<string, string>\n /**\n * The name of the property to set when a single value is to be applied to this Widget. Such as when used\n * in a grid WidgetColumn, this is the property to which the column's `field` is applied.\n */\n defaultBindProperty ? : string\n /**\n * A [query](https://bryntum.com/products/chart/docs/api/Core/widget/Container#function-query) selector function which can identify the descendant widget to which\n * focus should be directed by default.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-defaultFocus)\n * @param {Core.widget.Widget} widget Widget passed to method\n * @returns {boolean} truthy value if widget is the default one\n */\n defaultFocus ? : ((widget: Widget) => boolean)|string\n /**\n * A config object containing default settings to apply to all child widgets.\n */\n defaults ? : ChartContainerItemConfig\n /**\n * Check for CSS compatibility and inclusion related issues and try to auto fix them. Performs the following\n * checks:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-detectCSSCompatibilityIssues)\n */\n detectCSSCompatibilityIssues ? : boolean\n /**\n * Disable or enable the widget. It is similar to [readOnly](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-readOnly) except a disabled widget\n * cannot be focused, uses a different rendition (usually greyish) and does not allow selecting its value.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-disabled)\n */\n disabled ? : boolean|'inert'\n /**\n * Controls the placement of this widget when it is added to a [panel's ](https://bryntum.com/products/chart/docs/api/Core/widget/Panel)\n * [strips collection](https://bryntum.com/products/chart/docs/api/Core/widget/Panel#config-strips). Typical values for this config are `'top'`,\n * `'bottom'`, `'left'`, or `'right'`, which cause the widget to be placed on that side of the panel's\n * body. Such widgets are called \"edge strips\".\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-dock)\n */\n dock ? : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * Set to `true` to be able to drag a widget freely on the page. Or set to an object with a `handleSelector`\n * property which controls when a drag should start.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-draggable)\n * @property {string} handleSelector CSS selector used to determine if drag can be started from a mouse-downed element inside the widget\n */\n draggable ? : boolean|object\n /**\n * An object specifying attributes to assign to the root element of this widget.\n * Set `null` value to attribute to remove it.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-elementAttributes)\n */\n elementAttributes ? : Record<string, string|null>\n extraData ? : any\n /**\n * The name of the record field containing the data for this series.\n */\n field ? : string\n /**\n * (Optional) The name of a field in the chart data to use as the background color for each data element\n * (e.g. bar).\n */\n fillColorField ? : string\n /**\n * When this widget is a child of a [Container](https://bryntum.com/products/chart/docs/api/Core/widget/Container), it will by default be participating in a\n * flexbox layout. This config allows you to set this widget's\n * [flex](https://developer.mozilla.org/en-US/docs/Web/CSS/flex) style.\n * This may be configured as a single number or a `&lt;flex-grow&gt; &lt;flex-shrink&gt; &lt;flex-basis&gt;` format string.\n * numeric-only values are interpreted as the `flex-grow` value.\n */\n flex ? : number|string\n /**\n * Set to `true` to move the widget out of the document flow and position it\n * absolutely in browser viewport space.\n */\n floating ? : boolean\n /**\n * The stroke color used for the grid lines, or `null` for theme default.\n */\n gridColor ? : string\n /**\n * Widget's height, used to set element `style.height`. Either specify a valid height string or a number,\n * which will get 'px' appended. We recommend using CSS as the primary way to control height, but in some\n * cases this config is convenient.\n */\n height ? : string|number\n /**\n * Configure with true to make widget initially hidden.\n */\n hidden ? : boolean\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-hideAnimation)\n */\n hideAnimation ? : boolean|object\n /**\n * Specify `true` to make this container hide when it has no visible children (Either empty\n * or all children hidden).\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-hideWhenEmpty)\n */\n hideWhenEmpty ? : boolean\n /**\n * The HTML to display initially or a function returning the markup (called at widget construction time).\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-html)\n * @param {Core.widget.Widget} widget The calling Widget\n */\n html ? : string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX\n /**\n * The CSS class(es) to add when HTML content is being applied to this widget.\n */\n htmlCls ? : string|object\n /**\n * Widget id, if not specified one will be generated. Also used for lookups through Widget.getById\n */\n id ? : string\n /**\n * Determines if the widgets read-only state should be controlled by its parent.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ignoreParentReadOnly)\n */\n ignoreParentReadOnly ? : boolean\n /**\n * Convenience setting to align input fields of child widgets. By default, the Field input element is\n * placed immediately following the `label`. If you prefer to have all input fields aligned to the\n * right, set this config to `'end'`.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-inputFieldAlign)\n */\n inputFieldAlign ? : 'start'|'end'\n /**\n * Element (or element id) to insert this widget before. If provided, [appendTo](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-appendTo) config is ignored.\n * <div class=\"note\">When creating nested trees of widgets, this should only be used on the outermost widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-insertBefore)\n */\n insertBefore ? : HTMLElement|string\n /**\n * Element (or element id) to append this widget element to, as a first child. If provided, [appendTo](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-appendTo) config is ignored.\n * <div class=\"note\">When creating nested trees of widgets, this should only be used on the outermost widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-insertFirst)\n */\n insertFirst ? : HTMLElement|string\n /**\n * Whether to do dynamic highlighting and other interactivity as the mouse cursor moves over the chart.\n */\n interactive ? : boolean\n /**\n * An optional CSS class to add to child items of this container.\n */\n itemCls ? : string\n /**\n * An object containing typed child widget config objects or Widgets. May also be specified\n * as an array.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-items)\n */\n items ? : Record<string, ChartContainerItemConfig|MenuItemEntry>|(ChartContainerItemConfig|MenuItemEntry|Widget)[]\n /**\n * An object whose keys are the [key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) name\n * and optional modifier prefixes: `'Ctrl+'`, `'Alt+'`, `'Meta+'`, and `'Shift+'` (case-insensitive). The values\n * are the name of the instance method to call when the keystroke is received.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-keyMap)\n */\n keyMap ? : Record<string, KeyMapConfig>\n /**\n * The name of the series to display in the legend.\n */\n label ? : string\n /**\n * Convenience setting to use same label placement on all child widgets.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-labelPosition)\n */\n labelPosition ? : 'before'|'above'|'align-before'|'auto'|null\n /**\n * For line and bar charts, this series defines the data values to use as ticks for the x-axis.\n * For pie and donut chart, it defines the data values to use as slice labels.\n */\n labels ? : DataSeries\n /**\n * Sets `labelWidth` for all children of this Container, that do not define their own `labelWidth`.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-labelWidth)\n */\n labelWidth ? : number|null\n /**\n * The short name of a helper class which manages rendering and styling of child items.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-layout)\n */\n layout ? : string|ChartContainerLayoutConfig\n /**\n * The CSS style properties to apply to the [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement).\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-layoutStyle)\n */\n layoutStyle ? : object\n /**\n * An array of [child item](https://bryntum.com/products/chart/docs/api/Core/widget/Container#config-items) *config objects* which is to be converted into\n * instances only when this Container is rendered, rather than eagerly at construct time.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-lazyItems)\n */\n lazyItems ? : Record<string, ChartContainerItemConfig>|ChartContainerItemConfig[]|Widget[]\n /**\n * Where the chart's legend should appear relative to the main chart content.\n * Options `inline-start` and `inline-end` function as in CSS, with horizontal positioning\n * controlled by RTL mode.\n */\n legendPosition ? : 'top'|'right'|'bottom'|'left'|'inline-start'|'inline-end'\n /**\n * Optional scale factor to increase or decrease the size of the chart legend.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n legendScale ? : number\n /**\n * The listener set for this object.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-listeners)\n */\n listeners ? : ChartListeners\n /**\n * A class translations of which are used for translating this entity.\n * This is often used when translations of an item are defined on its container class.\n * For example:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-localeClass)\n */\n localeClass ? : typeof Base\n /**\n * Set to `false` to disable localization of this object.\n */\n localizable ? : boolean\n /**\n * List of properties which values should be translated automatically upon a locale applying.\n * In case there is a need to localize not typical value (not a String value or a field with re-defined setter/getter),\n * you could use 'localeKey' meta configuration.\n * Example:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-localizableProperties)\n */\n localizableProperties ? : string[]\n /**\n * Widget's margin. This may be configured as a single number or a `TRBL` format string.\n * numeric-only values are interpreted as pixels.\n */\n margin ? : number|string\n /**\n * This config object contains the defaults for the [Mask](https://bryntum.com/products/chart/docs/api/Core/widget/Mask) created for the\n * [masked](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-masked) config. Any properties specified in the `masked` config will override these\n * values.\n */\n maskDefaults ? : MaskConfig\n /**\n * Set to `true` to apply the default mask to the widget. Alternatively, this can be the mask message or a\n * [Mask](https://bryntum.com/products/chart/docs/api/Core/widget/Mask) config object.\n */\n masked ? : boolean|string|MaskConfig\n /**\n * Max value for the Y axis, for chart types that have one.\n */\n max ? : number\n /**\n * The element's maxHeight. Can be either a String or a Number (which will have 'px' appended). Note that\n * like [height](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-height), *reading* the value will return the numeric value in pixels.\n */\n maxHeight ? : string|number\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-maximizeOnMobile)\n */\n maximizeOnMobile ? : number|string\n /**\n * The maximum tick rotation in degrees.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n maxTickLabelRotation ? : number\n /**\n * The elements maxWidth. Can be either a String or a Number (which will have 'px' appended). Note that\n * like [width](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-width), *reading* the value will return the numeric value in pixels.\n */\n maxWidth ? : string|number\n /**\n * Min value for the Y axis, for chart types that have one.\n */\n min ? : number\n /**\n * The element's minHeight. Can be either a String or a Number (which will have 'px' appended). Note that\n * like [height](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-height), *reading* the value will return the numeric value in pixels.\n */\n minHeight ? : string|number\n /**\n * The minimum tick rotation in degrees.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n minTickLabelRotation ? : number\n /**\n * The elements minWidth. Can be either a String or a Number (which will have 'px' appended). Note that\n * like [width](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-width), *reading* the value will return the numeric value in pixels.\n */\n minWidth ? : string|number\n /**\n * When this is configured as `true` a [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)\n * is used to monitor this element for size changes caused by either style manipulation, or by CSS\n * layout.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-monitorResize)\n * @property {boolean} immediate Set to `true` to receive resize notifications immediately.\n */\n monitorResize ? : boolean|object\n /**\n * An object containing default config objects which may be referenced by name in the [items](https://bryntum.com/products/chart/docs/api/Core/widget/Container#config-items)\n * config. For example, a specialized [Menu](https://bryntum.com/products/chart/docs/api/Core/widget/Menu) subclass may have a `namedItems` default\n * value defined like this:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-namedItems)\n */\n namedItems ? : Record<string, ChartContainerItemConfig>\n /**\n * Customizes the config object used to create this widget's clone in a [Toolbar](https://bryntum.com/products/chart/docs/api/Core/widget/Toolbar)'s\n * overflow menu (see [overflow](https://bryntum.com/products/chart/docs/api/Core/widget/Toolbar#config-overflow)).\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-overflowTwinConfig)\n */\n overflowTwinConfig ? : OverflowTwinConfig|null\n /**\n * Radius of data points, in pixels.\n */\n pointSize ? : number\n /**\n * Set to `true` when a widget is rendered into another widget's [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement), but must\n * not participate in the standard layout of that widget, and must be positioned relatively to that\n * widget's [contentElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-contentElement).\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-positioned)\n */\n positioned ? : boolean\n /**\n * Prevent tooltip from being displayed on touch devices. Useful for example for buttons that display a\n * menu on click etc, since the tooltip would be displayed at the same time.\n */\n preventTooltipOnTouch ? : boolean\n /**\n * Whether this widget is read-only. This is only valid if the widget is an input\n * field, <strong>or contains input fields at any depth</strong>.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-readOnly)\n */\n readOnly ? : boolean\n /**\n * [Record](https://bryntum.com/products/chart/docs/api/Core/data/Model) whose values will be used to populate fields in the container.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-record)\n */\n record ? : Model\n relayStoreEvents ? : boolean\n /**\n * Either a default `rendition` to apply to all child widgets, or a map of renditions keyed by child widget\n * `type`.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-rendition)\n */\n rendition ? : string|Record<string, string>|null\n /**\n * Configure as `true` to have the component display a translucent ripple when its\n * [focusElement](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-focusElement), or [element](#Core/widget/Widget#property-element) is tapped <em>if the\n * current theme supports ripples</em>. Out of the box, only the Material theme supports ripples.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ripple)\n * @property {string} [delegate] A CSS selector to filter which child elements trigger ripples. By default, the ripple is clipped to the triggering element.\n * @property {string} [color] A CSS color name or specification.\n * @property {number} [radius] The ending radius of the ripple. Note that it will be clipped by the target element by default.\n * @property {string} [clip] A string which describes how to clip the ripple if it is not to be clipped to the default element. Either the property of the widget to use as the clipping element, or a selector to allow clipping to the closest matching ancestor to the target element.\n */\n ripple ? : boolean|object\n /**\n * The ARIA role to apply to this widget's element. By default, this is set to `'presentation'` to avoid\n * accidentally applying a role which may interfere with screen readers.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-role)\n */\n role ? : string\n /**\n * If you are rendering this widget to a shadow root inside a web component, set this config to the shadowRoot. If not inside a web component, set it to `document.body`\n */\n rootElement ? : ShadowRoot|HTMLElement\n /**\n * This may be configured as `true` to make the widget's element use the `direction:rtl` style.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-rtl)\n */\n rtl ? : boolean\n /**\n * Specifies whether (and optionally in which axes) a Widget may scroll. `true` means this widget may scroll\n * in both axes. May be an object containing boolean `overflowX` and `overflowY` properties which are\n * applied to CSS style properties `overflowX` and `overflowY`. If they are boolean, they are translated to\n * CSS overflow properties thus:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-scrollable)\n */\n scrollable ? : boolean|ScrollerConfig|Scroller\n /**\n * Defines what to do if document is scrolled while Widget is visible (only relevant when floating is set to `true`).\n * Valid values: `null`: do nothing, `hide`: hide the widget or `realign`: realign to the target if possible.\n */\n scrollAction ? : 'hide'|'realign'|null\n /**\n * One or more data series to display in the chart.\n */\n series ? : DataSeries[]\n /**\n * The type of stroke to use for data series lines.\n */\n seriesLineDash ? : 'dot'|'dash'|'solid'\n /**\n * The opacity of data series lines, from zero to one.\n */\n seriesLineOpacity ? : number\n /**\n * The thickness of data series lines, in pixels.\n */\n seriesLineThickness ? : number\n /**\n * *Only valid if this Widget is [floating](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-floating).*\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-showAnimation)\n */\n showAnimation ? : boolean|object\n /**\n * Whether to show the chart's control button menu, for example, the download button.\n */\n showControls ? : boolean\n /**\n * Whether to show the chart's legend.\n */\n showLegend ? : boolean\n /**\n * Whether to show data point markers on the chart.\n */\n showPoints ? : boolean\n /**\n * Whether to show the chart subtitle.\n */\n showSubtitle ? : boolean\n /**\n * Whether to show tick marks and labels on the chart axes.\n */\n showTicks ? : boolean\n /**\n * Whether to show the chart title.\n */\n showTitle ? : boolean\n /**\n * Whether to show tooltips when the mouse cursor hovers over chart elements.\n */\n showTooltips ? : boolean\n /**\n * Set to `false` to not show the tooltip when this widget is [disabled](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-disabled)\n */\n showTooltipWhenDisabled ? : boolean\n /**\n * Programmatic control over how many columns to span when used in a grid layout.\n */\n span ? : number\n /**\n * Specify `true` to match fields by their `name` property only when assigning a [record](https://bryntum.com/products/chart/docs/api/Core/widget/Container#config-record),\n * without falling back to `ref`.\n */\n strictRecordMapping ? : boolean\n /**\n * The chart subtitle.\n */\n subtitle ? : string\n /**\n * The font to use for the chart subtitle.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-subtitleFont)\n */\n subtitleFont ? : Font\n /**\n * Padding around the chart subtitle, in pixels.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n subtitlePadding ? : object\n /**\n * A configuration for the [tab](https://bryntum.com/products/chart/docs/api/Core/widget/Tab) created for this widget when it is placed in a\n * [TabPanel](https://bryntum.com/products/chart/docs/api/Core/widget/TabPanel). For example, this config can be used to control the icon of the `tab` for\n * this widget:\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-tab)\n */\n tab ? : boolean|TabConfig\n /**\n * When this container is used as a tab in a TabPanel, these items are added to the\n * [TabBar](https://bryntum.com/products/chart/docs/api/Core/widget/TabBar) when this container is the active tab.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-tabBarItems)\n */\n tabBarItems ? : ToolbarItems[]|Widget[]\n /**\n * The tag name of this Widget's root element\n */\n tag ? : string\n /**\n * Text alignment: 'left', 'center' or 'right'. Also accepts direction neutral 'start' and 'end'.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-textAlign)\n */\n textAlign ? : 'left'|'center'|'right'|'start'|'end'\n /**\n * Specify `true` for a container used to show text markup. It will apply the CSS class `b-text-content`\n * which specifies a default max-width that makes long text more readable.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-textContent)\n */\n textContent ? : boolean\n /**\n * The font to use for tick labels on the chart axes.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-tickFont)\n */\n tickFont ? : Font\n /**\n * Set the color of the tick mark lines in the axis area, or `null` to default to [axisColor](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-axisColor).\n */\n tickMarkColor ? : string\n /**\n * The chart title.\n */\n title ? : string\n /**\n * The font to use for the chart title.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-titleFont)\n */\n titleFont ? : Font\n /**\n * Padding around the chart title, in pixels.\n * @deprecated 7.3.0 This field is not supported by AG Charts and has been deprecated\n */\n titlePadding ? : object\n /**\n * Tooltip for the widget, either as a string or as a Tooltip config object.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-tooltip)\n */\n tooltip ? : string|TooltipConfig|null\n type ? : 'chart'\n /**\n * Custom CSS class name suffixes to apply to the elements rendered by this widget. This may be specified\n * as a space separated string, an array of strings, or as an object in which property names with truthy\n * values are used as the class names.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-ui)\n */\n ui ? : string|object\n /**\n * A widgets weight determines its position among siblings when added to a [Container](https://bryntum.com/products/chart/docs/api/Core/widget/Container).\n * Higher weights go further down.\n */\n weight ? : number\n /**\n * Widget's width, used to set element `style.width`. Either specify a valid width string or a number, which\n * will get 'px' appended. We recommend using CSS as the primary way to control width, but in some cases\n * this config is convenient.\n */\n width ? : string|number\n /**\n * The x position for the widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-x)\n */\n x ? : number\n /**\n * The y position for the widget.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#config-y)\n */\n y ? : number\n\n}\n\n@Component({\n selector : 'bryntum-chart',\n template : ''\n})\nexport class BryntumChartComponent implements OnInit, OnDestroy {\n\n public static instanceClass = Chart;\n\n public static instanceName = 'Chart';\n\n private static bryntumEvents: string[] = [\n 'onBeforeDestroy',\n 'onBeforeHide',\n 'onBeforeSetRecord',\n 'onBeforeShow',\n 'onCatchAll',\n 'onDestroy',\n 'onDirtyStateChange',\n 'onElementCreated',\n 'onFocusIn',\n 'onFocusOut',\n 'onHide',\n 'onPaint',\n 'onReadOnly',\n 'onRecompose',\n 'onResize',\n 'onShow'\n ];\n\n private static bryntumFeatureNames: string[] = [\n\n ];\n\n private static bryntumConfigs: string[] = BryntumChartComponent.bryntumFeatureNames.concat([\n 'adopt',\n 'align',\n 'alignSelf',\n 'anchor',\n 'animate',\n 'animationDuration',\n 'appendTo',\n 'ariaDescription',\n 'ariaLabel',\n 'autoUpdateRecord',\n 'axisColor',\n 'axisLabelColor',\n 'background',\n 'barDirection',\n 'barWidth',\n 'border',\n 'bubbleEvents',\n 'bubbleScaleFactor',\n 'callOnFunctions',\n 'catchEventHandlerExceptions',\n 'centered',\n 'chartPadding',\n 'chartTooltip',\n 'chartType',\n 'cls',\n 'color',\n 'column',\n 'config',\n 'constrainTo',\n 'content',\n 'contentElementCls',\n 'data',\n 'dataField',\n 'dataPointShape',\n 'dataset',\n 'defaultBindProperty',\n 'defaultFocus',\n 'defaults',\n 'detectCSSCompatibilityIssues',\n 'disabled',\n 'dock',\n 'draggable',\n 'elementAttributes',\n 'extraData',\n 'field',\n 'fillColorField',\n 'flex',\n 'floating',\n 'gridColor',\n 'height',\n 'hidden',\n 'hideAnimation',\n 'hideWhenEmpty',\n 'html',\n 'htmlCls',\n 'id',\n 'ignoreParentReadOnly',\n 'inputFieldAlign',\n 'insertBefore',\n 'insertFirst',\n 'interactive',\n 'itemCls',\n 'items',\n 'keyMap',\n 'label',\n 'labelPosition',\n 'labels',\n 'labelWidth',\n 'layout',\n 'layoutStyle',\n 'lazyItems',\n 'legendPosition',\n 'legendScale',\n 'listeners',\n 'localeClass',\n 'localizable',\n 'localizableProperties',\n 'margin',\n 'maskDefaults',\n 'masked',\n 'max',\n 'maxHeight',\n 'maximizeOnMobile',\n 'maxTickLabelRotation',\n 'maxWidth',\n 'min',\n 'minHeight',\n 'minTickLabelRotation',\n 'minWidth',\n 'monitorResize',\n 'namedItems',\n 'overflowTwinConfig',\n 'pointSize',\n 'positioned',\n 'preventTooltipOnTouch',\n 'readOnly',\n 'record',\n 'relayStoreEvents',\n 'rendition',\n 'ripple',\n 'role',\n 'rootElement',\n 'rtl',\n 'scrollable',\n 'scrollAction',\n 'series',\n 'seriesLineDash',\n 'seriesLineOpacity',\n 'seriesLineThickness',\n 'showAnimation',\n 'showControls',\n 'showLegend',\n 'showPoints',\n 'showSubtitle',\n 'showTicks',\n 'showTitle',\n 'showTooltips',\n 'showTooltipWhenDisabled',\n 'span',\n 'strictRecordMapping',\n 'subtitle',\n 'subtitleFont',\n 'subtitlePadding',\n 'tab',\n 'tabBarItems',\n 'tag',\n 'textAlign',\n 'textContent',\n 'tickFont',\n 'tickMarkColor',\n 'title',\n 'titleFont',\n 'titlePadding',\n 'tooltip',\n 'type',\n 'ui',\n 'weight',\n 'width',\n 'x',\n 'y'\n ]);\n\n private static bryntumConfigsOnly: string[] = [\n 'adopt',\n 'align',\n 'anchor',\n 'ariaDescription',\n 'ariaLabel',\n 'autoUpdateRecord',\n 'border',\n 'bubbleEvents',\n 'color',\n 'config',\n 'constrainTo',\n 'contentElementCls',\n 'dataField',\n 'defaultBindProperty',\n 'defaultFocus',\n 'defaults',\n 'detectCSSCompatibilityIssues',\n 'dock',\n 'draggable',\n 'elementAttributes',\n 'floating',\n 'hideAnimation',\n 'hideWhenEmpty',\n 'htmlCls',\n 'ignoreParentReadOnly',\n 'itemCls',\n 'lazyItems',\n 'listeners',\n 'localeClass',\n 'localizable',\n 'localizableProperties',\n 'maskDefaults',\n 'masked',\n 'monitorResize',\n 'namedItems',\n 'overflowTwinConfig',\n 'positioned',\n 'preventTooltipOnTouch',\n 'relayStoreEvents',\n 'ripple',\n 'rootElement',\n 'scrollAction',\n 'showAnimation',\n 'showTooltipWhenDisabled',\n 'tab',\n 'tabBarItems',\n 'tag',\n 'textAlign',\n 'textContent',\n 'type',\n 'ui',\n 'weight'\n ];\n\n private static bryntumProps: string[] = BryntumChartComponent.bryntumFeatureNames.concat([\n 'alignSelf',\n 'animate',\n 'animationDuration',\n 'appendTo',\n 'axisColor',\n 'axisLabelColor',\n 'background',\n 'barDirection',\n 'barWidth',\n 'bubbleScaleFactor',\n 'callOnFunctions',\n 'catchEventHandlerExceptions',\n 'centered',\n 'chartPadding',\n 'chartTooltip',\n 'chartType',\n 'cls',\n 'column',\n 'content',\n 'data',\n 'dataPointShape',\n 'dataset',\n 'disabled',\n 'extraData',\n 'field',\n 'fillColorField',\n 'flex',\n 'gridColor',\n 'height',\n 'hidden',\n 'html',\n 'id',\n 'inputFieldAlign',\n 'insertBefore',\n 'insertFirst',\n 'interactive',\n 'items',\n 'keyMap',\n 'label',\n 'labelPosition',\n 'labels',\n 'labelWidth',\n 'layout',\n 'layoutStyle',\n 'legendPosition',\n 'legendScale',\n 'margin',\n 'max',\n 'maxHeight',\n 'maximizeOnMobile',\n 'maxTickLabelRotation',\n 'maxWidth',\n 'min',\n 'minHeight',\n 'minTickLabelRotation',\n 'minWidth',\n 'parent',\n 'pointSize',\n 'readOnly',\n 'record',\n 'rendition',\n 'role',\n 'rtl',\n 'scrollable',\n 'series',\n 'seriesLineDash',\n 'seriesLineOpacity',\n 'seriesLineThickness',\n 'showControls',\n 'showLegend',\n 'showPoints',\n 'showSubtitle',\n 'showTicks',\n 'showTitle',\n 'showTooltips',\n 'span',\n 'strictRecordMapping',\n 'subtitle',\n 'subtitleFont',\n 'subtitlePadding',\n 'tickFont',\n 'tickMarkColor',\n 'title',\n 'titleFont',\n 'titlePadding',\n 'tooltip',\n 'values',\n 'width',\n 'x',\n 'y'\n ]);\n\n private elementRef: ElementRef;\n public instance!: Chart;\n\n private bryntumConfig = {\n adopt : undefined,\n appendTo : undefined,\n href : undefined,\n angularComponent : this,\n features : {},\n listeners : {}\n };\n\n constructor(element: ElementRef) {\n this.elementRef = element;\n }\n\n // Configs only\n @Input() adopt ! : HTMLElement|string;\n @Input() align ! : AlignSpec|string;\n @Input() anchor ! : boolean;\n @Input() ariaDescription ! : string;\n @Input() ariaLabel ! : string;\n @Input() autoUpdateRecord ! : boolean;\n @Input() border ! : boolean;\n @Input() bubbleEvents ! : object;\n @Input() color ! : Color;\n @Input() config ! : object;\n @Input() constrainTo ! : HTMLElement|Widget|Rectangle;\n @Input() contentElementCls ! : string|object;\n @Input() dataField ! : string;\n @Input() defaultBindProperty ! : string;\n @Input() defaultFocus ! : ((widget: Widget) => boolean)|string;\n @Input() defaults ! : ChartContainerItemConfig;\n @Input() detectCSSCompatibilityIssues ! : boolean;\n @Input() dock ! : 'top'|'bottom'|'left'|'right'|'start'|'end'|'header'|'pre-header'|object;\n @Input() draggable ! : boolean|object;\n @Input() elementAttributes ! : Record<string, string|null>;\n @Input() floating ! : boolean;\n @Input() hideAnimation ! : boolean|object;\n @Input() hideWhenEmpty ! : boolean;\n @Input() htmlCls ! : string|object;\n @Input() ignoreParentReadOnly ! : boolean;\n @Input() itemCls ! : string;\n @Input() lazyItems ! : Record<string, ChartContainerItemConfig>|ChartContainerItemConfig[]|Widget[];\n @Input() listeners ! : ChartListeners;\n @Input() localeClass ! : typeof Base;\n @Input() localizable ! : boolean;\n @Input() localizableProperties ! : string[];\n @Input() maskDefaults ! : MaskConfig;\n @Input() masked ! : boolean|string|MaskConfig;\n @Input() monitorResize ! : boolean|object;\n @Input() namedItems ! : Record<string, ChartContainerItemConfig>;\n @Input() overflowTwinConfig ! : OverflowTwinConfig|null;\n @Input() positioned ! : boolean;\n @Input() preventTooltipOnTouch ! : boolean;\n @Input() relayStoreEvents ! : boolean;\n @Input() ripple ! : boolean|object;\n @Input() rootElement ! : ShadowRoot|HTMLElement;\n @Input() scrollAction ! : 'hide'|'realign'|null;\n @Input() showAnimation ! : boolean|object;\n @Input() showTooltipWhenDisabled ! : boolean;\n @Input() tab ! : boolean|TabConfig;\n @Input() tabBarItems ! : ToolbarItems[]|Widget[];\n @Input() tag ! : string;\n @Input() textAlign ! : 'left'|'center'|'right'|'start'|'end';\n @Input() textContent ! : boolean;\n @Input() type ! : 'chart';\n @Input() ui ! : string|object;\n @Input() weight ! : number;\n\n // Configs and properties\n @Input() alignSelf ! : string;\n @Input() animate ! : boolean;\n @Input() animationDuration ! : number;\n @Input() appendTo ! : HTMLElement|string;\n @Input() axisColor ! : string;\n @Input() axisLabelColor ! : string;\n @Input() background ! : string;\n @Input() barDirection ! : 'vertical'|'horizontal';\n @Input() barWidth ! : number;\n @Input() bubbleScaleFactor ! : number;\n @Input() callOnFunctions ! : boolean;\n @Input() catchEventHandlerExceptions ! : boolean;\n @Input() centered ! : boolean|{\n once?: boolean\n }|boolean|object;\n @Input() chartPadding ! : object;\n @Input() chartTooltip ! : ChartTooltipConfig;\n @Input() chartType ! : 'line'|'bar'|'pie'|'donut'|'scatter'|'bubble'|'radar';\n @Input() cls ! : string|object;\n @Input() column ! : number;\n @Input() content ! : string;\n @Input() data ! : Model[]|object[]|ModelConfig[];\n @Input() dataPointShape ! : 'square'|'circle'|'diamond'|'triangle'|'none';\n @Input() dataset ! : object|Record<string, string>;\n @Input() disabled ! : boolean|'inert';\n @Input() extraData ! : any;\n @Input() field ! : string;\n @Input() fillColorField ! : string;\n @Input() flex ! : number|string;\n @Input() gridColor ! : string;\n @Input() height ! : number|string;\n @Input() hidden ! : boolean;\n @Input() html ! : string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX|(string|((widget: Widget) => void)|DomConfig|DomConfig[]|VueConfig|ReactJSX);\n @Input() id ! : string;\n @Input() inputFieldAlign ! : 'start'|'end';\n @Input() insertBefore ! : HTMLElement|string;\n @Input() insertFirst ! : HTMLElement|string;\n @Input() interactive ! : boolean;\n @Input() items ! : (ChartContainerItemConfig|MenuItemConfig|Widget)[]|Record<string, ChartContainerItemConfig|MenuItemConfig>|Widget[]|Record<string, ChartContainerItemConfig|MenuItemEntry>|(ChartContainerItemConfig|MenuItemEntry|Widget)[];\n @Input() keyMap ! : Record<string, KeyMapConfig>;\n @Input() label ! : string;\n @Input() labelPosition ! : 'before'|'above'|'align-before'|'auto'|null;\n @Input() labels ! : DataSeries;\n @Input() labelWidth ! : number|null;\n @Input() layout ! : Layout|string|ChartContainerLayoutConfig;\n @Input() layoutStyle ! : object;\n @Input() legendPosition ! : 'top'|'right'|'bottom'|'left'|'inline-start'|'inline-end';\n @Input() legendScale ! : number;\n @Input() margin ! : number|string;\n @Input() max ! : number;\n @Input() maxHeight ! : string|number;\n @Input() maximizeOnMobile ! : number|string;\n @Input() maxTickLabelRotation ! : number;\n @Input() maxWidth ! : string|number;\n @Input() min ! : number;\n @Input() minHeight ! : string|number;\n @Input() minTickLabelRotation ! : number;\n @Input() minWidth ! : string|number;\n @Input() pointSize ! : number;\n @Input() readOnly ! : boolean;\n @Input() record ! : Model;\n @Input() rendition ! : string|Record<string, string>|null;\n @Input() role ! : DataSeriesRole|string;\n @Input() rtl ! : boolean;\n @Input() scrollable ! : Scroller|boolean|ScrollerConfig;\n @Input() series ! : DataSeries[];\n @Input() seriesLineDash ! : 'dot'|'dash'|'solid';\n @Input() seriesLineOpacity ! : number;\n @Input() seriesLineThickness ! : number;\n @Input() showControls ! : boolean;\n @Input() showLegend ! : boolean;\n @Input() showPoints ! : boolean;\n @Input() showSubtitle ! : boolean;\n @Input() showTicks ! : boolean;\n @Input() showTitle ! : boolean;\n @Input() showTooltips ! : boolean;\n @Input() span ! : number;\n @Input() strictRecordMapping ! : boolean;\n @Input() subtitle ! : string;\n @Input() subtitleFont ! : Font;\n @Input() subtitlePadding ! : object;\n @Input() tickFont ! : Font;\n @Input() tickMarkColor ! : string;\n @Input() title ! : string;\n @Input() titleFont ! : Font;\n @Input() titlePadding ! : object;\n @Input() tooltip ! : string|TooltipConfig|null;\n @Input() width ! : number|string;\n @Input() x ! : number;\n @Input() y ! : number;\n\n // Properties only\n @Input() parent ! : Widget;\n @Input() values ! : Record<string, object>;\n\n // Events emitters\n /**\n * Fires before an object is destroyed.\n * @param {object} event Event object\n * @param {Core.Base} event.source The Object that is being destroyed.\n */\n @Output() onBeforeDestroy: any = new EventEmitter<((event: { source: Base }) => void)|string>();\n /**\n * Triggered before a widget is hidden. Return `false` to prevent the action.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source The widget being hidden.\n */\n @Output() onBeforeHide: any = new EventEmitter<((event: { source: Widget }) => boolean|void)|string>();\n /**\n * Fired before this container will load record values into its child fields. This is useful if you\n * want to modify the UI before data is loaded (e.g. set some input field to be readonly)\n * @param {object} event Event object\n * @param {Core.widget.Container} event.source The container\n * @param {Core.data.Model} event.record The record\n */\n @Output() onBeforeSetRecord: any = new EventEmitter<((event: { source: Container, record: Model }) => void)|string>();\n /**\n * Triggered before a widget is shown. Return `false` to prevent the action.\n * @param {object} event Event object\n * @param {Core.widget.Widget,any} event.source The widget being shown\n */\n @Output() onBeforeShow: any = new EventEmitter<((event: { source: Widget|any }) => Promise<boolean>|boolean|void)|string>();\n /**\n * Fires when any other event is fired from the object.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#event-catchAll)\n * @param {object} event Event object\n * @param {{[key: string]: any, type: string}} event.event The Object that contains event details\n * @param {string} event.event.type The type of the event which is caught by the listener\n */\n @Output() onCatchAll: any = new EventEmitter<((event: {[key: string]: any, type: string}) => void)|string>();\n /**\n * Fires when an object is destroyed.\n * @param {object} event Event object\n * @param {Core.Base} event.source The Object that is being destroyed.\n */\n @Output() onDestroy: any = new EventEmitter<((event: { source: Base }) => void)|string>();\n /**\n * Fires when a field is mutated and the state of the [hasChanges](https://bryntum.com/products/chart/docs/api/Core/widget/Container#property-hasChanges) property changes\n * @param {object} event Event object\n * @param {Core.widget.Container} event.source The container.\n * @param {boolean} event.dirty The dirty state of the Container - `true` if there are any fields which have been changed since initial load.\n */\n @Output() onDirtyStateChange: any = new EventEmitter<((event: { source: Container, dirty: boolean }) => void)|string>();\n /**\n * Triggered when a widget's [element](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#property-element) is available.\n * @param {object} event Event object\n * @param {HTMLElement} event.element The Widget's element.\n */\n @Output() onElementCreated: any = new EventEmitter<((event: { element: HTMLElement }) => void)|string>();\n /**\n * Fired when focus enters this Widget.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source This Widget\n * @param {HTMLElement} event.fromElement The element which lost focus.\n * @param {HTMLElement} event.toElement The element which gained focus.\n * @param {Core.widget.Widget} event.fromWidget The widget which lost focus.\n * @param {Core.widget.Widget} event.toWidget The widget which gained focus.\n * @param {boolean} event.backwards `true` if the `toElement` is before the `fromElement` in document order.\n */\n @Output() onFocusIn: any = new EventEmitter<((event: { source: Widget, fromElement: HTMLElement, toElement: HTMLElement, fromWidget: Widget, toWidget: Widget, backwards: boolean }) => void)|string>();\n /**\n * Fired when focus exits this Widget's ownership tree. This is different from a `blur` event.\n * focus moving from within this Widget's ownership tree, even if there are floating widgets\n * will not trigger this event. This is when focus exits this widget completely.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source This Widget\n * @param {HTMLElement} event.fromElement The element which lost focus.\n * @param {HTMLElement} event.toElement The element which gained focus.\n * @param {Core.widget.Widget} event.fromWidget The widget which lost focus.\n * @param {Core.widget.Widget} event.toWidget The widget which gained focus.\n * @param {boolean} event.backwards `true` if the `toElement` is before the `fromElement` in document order.\n */\n @Output() onFocusOut: any = new EventEmitter<((event: { source: Widget, fromElement: HTMLElement, toElement: HTMLElement, fromWidget: Widget, toWidget: Widget, backwards: boolean }) => void)|string>();\n /**\n * Triggered after a widget was hidden\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source The widget\n */\n @Output() onHide: any = new EventEmitter<((event: { source: Widget }) => void)|string>();\n /**\n * Triggered when a widget which had been in a non-visible state for any reason\n * achieves visibility.\n * [More...](https://bryntum.com/products/chart/docs/api/Chart/widget/Chart#event-paint)\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source The widget being painted.\n * @param {boolean} event.firstPaint `true` if this is the first paint.\n */\n @Output() onPaint: any = new EventEmitter<((event: { source: Widget, firstPaint: boolean }) => void)|string>();\n /**\n * Fired when a Widget's read only state is toggled\n * @param {object} event Event object\n * @param {boolean} event.readOnly Read only or not\n */\n @Output() onReadOnly: any = new EventEmitter<((event: { readOnly: boolean }) => void)|string>();\n /**\n * This event is fired after a widget's elements have been synchronized due to a direct or indirect call\n * to [recompose](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#function-recompose), if this results in some change to the widget's rendered DOM elements.\n */\n @Output() onRecompose: any = new EventEmitter<(() => void)|string>();\n /**\n * Fired when the encapsulating element of a Widget resizes *only when [monitorResize](https://bryntum.com/products/chart/docs/api/Core/widget/Widget#config-monitorResize) is `true`*.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source This Widget\n * @param {number} event.width The new width\n * @param {number} event.height The new height\n * @param {number} event.oldWidth The old width\n * @param {number} event.oldHeight The old height\n */\n @Output() onResize: any = new EventEmitter<((event: { source: Widget, width: number, height: number, oldWidth: number, oldHeight: number }) => void)|string>();\n /**\n * Triggered after a widget is shown.\n * @param {object} event Event object\n * @param {Core.widget.Widget} event.source The widget\n */\n @Output() onShow: any = new EventEmitter<((event: { source: Widget }) => void)|string>();\n\n /**\n * Create and append the underlying widget\n */\n ngOnInit(): void {\n const\n me = this,\n {\n elementRef,\n bryntumConfig\n } = me,\n {\n instanceClass,\n instanceName,\n bryntumConfigs,\n bryntumEvents\n } = BryntumChartComponent;\n\n bryntumConfigs.filter(prop => prop in this).forEach(prop => {\n // @ts-ignore\n WrapperHelper.applyPropValue(bryntumConfig, prop, this[prop]);\n if (['features', 'config'].includes(prop)) {\n WrapperHelper.devWarningConfigProp(instanceName, prop);\n }\n });\n // @ts-ignore\n bryntumEvents.filter(event => this[event] && this[event].observers.length > 0).forEach(event => {\n const\n uncapitalize = (str: string) => str.charAt(0).toLowerCase() + str.slice(1),\n eventName = (str: string) => uncapitalize(str.slice(2));\n\n // @ts-ignore\n bryntumConfig.listeners[eventName(event)] = e => {\n // @ts-ignore\n me[event].emit(e);\n // EventEmitter does not return values in the normal way, work around it by setting `returnValue` flag\n // in Angular listeners\n return e.returnValue;\n };\n });\n\n // If component has no container specified in config then use adopt to Wrapper's element\n const\n containerParam = [\n 'adopt',\n 'appendTo',\n 'insertAfter',\n 'insertBefore'\n // @ts-ignore\n ].find(prop => bryntumConfig[prop]);\n if (!containerParam) {\n if (instanceName === 'Button' || elementRef.nativeElement.getRootNode() instanceof ShadowRoot) {\n // Button should always be <a> or <button> inside owner element\n bryntumConfig.appendTo = elementRef.nativeElement;\n }\n else {\n bryntumConfig.adopt = elementRef.nativeElement;\n }\n }\n else {\n WrapperHelper.devWarningContainer(instanceName, containerParam);\n }\n\n // In shadow DOM (e.g. Angular ViewEncapsulation.ShadowDom), theme CSS from document.head\n // does not cascade into the shadow root. Inject a matching <link> so Bryntum's CSS check\n // finds the theme. The @font-face rules from component styles are also extracted to\n // document scope so document.fonts detects them (shadow-root @font-face is not reliably\n // included in document.fonts across all browsers).\n const shadowRoot = elementRef.nativeElement.getRootNode();\n if (shadowRoot instanceof ShadowRoot) {\n initThemeInShadowRoots();\n BryntumChartComponent.ensureFontsInDocument(shadowRoot);\n }\n\n // @ts-ignore\n me.instance = instanceName === 'Widget' ? Widget.create(bryntumConfig) : new instanceClass(bryntumConfig);\n\n }\n\n /**\n * Extracts all @font-face declarations from a shadow root's stylesheets and adds them to\n * document.head as a single <style> element. This is needed because @font-face rules inside\n * a shadow root are not reliably included in document.fonts across all browsers, causing\n * Bryntum's CSS compatibility check to incorrectly report missing fonts.\n * Safe to call multiple times — the extraction runs only once per page.\n */\n private static ensureFontsInDocument(shadowRoot: ShadowRoot): void {\n if (document.querySelector('#b-shadow-root-fonts')) {\n return;\n }\n\n const fontFaceRules: string[] = [];\n\n const extractFromSheet = (sheet: CSSStyleSheet): void => {\n try {\n const rules = sheet.cssRules;\n for (let i = 0; i < rules.length; i++) {\n if (rules[i].type === CSSRule.FONT_FACE_RULE) {\n fontFaceRules.push(rules[i].cssText);\n }\n }\n }\n catch (_e) {\n // Cross-origin access may throw; silently skip\n }\n };\n\n // adoptedStyleSheets (Angular 14+ / modern browsers)\n const adoptedSheets: CSSStyleSheet[] = (shadowRoot as any).adoptedStyleSheets ?? [];\n adoptedSheets.forEach(sheet => extractFromSheet(sheet));\n\n // <style> elements (older Angular or fallback)\n shadowRoot.querySelectorAll('style').forEach(el => {\n if (el.sheet) {\n extractFromSheet(el.sheet);\n }\n });\n\n if (fontFaceRules.length > 0) {\n const style = document.createElement('style');\n style.id = 'b-shadow-root-fonts';\n style.textContent = fontFaceRules.join('\\n');\n document.head.appendChild(style);\n }\n }\n\n /**\n * Watch for changes\n * @param changes\n */\n ngOnChanges(changes: SimpleChanges): void {\n const\n { instance } = this,\n { instanceName } = BryntumChartComponent;\n if (!instance) {\n return;\n }\n // Iterate over all changes\n Object.entries(changes).forEach(([prop, change]) => {\n const\n newValue = (change as SimpleChange).currentValue,\n { instance } = this,\n { bryntumConfigsOnly, bryntumProps } = BryntumChartComponent;\n if (bryntumProps.includes(prop)) {\n WrapperHelper.applyPropValue(instance, prop, newValue, false);\n if (bryntumConfigsOnly.includes(prop)) {\n WrapperHelper.devWarningUpdateProp(instanceName, prop);\n }\n }\n });\n }\n\n /**\n * Destroy the component\n */\n ngOnDestroy(): void {\n // @ts-ignore\n if (this.instance && this.instance.destroy) {\n this.instance.destroy();\n }\n }\n}\n","/**\n* Angular Bryntum Chart Shared module\n*/\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { BryntumChartComponent } from './bryntum-chart.component';\n\n@NgModule({\n declarations : [\n\n BryntumChartComponent\n ],\n imports : [CommonModule],\n exports : [\n\n BryntumChartComponent\n ]\n})\nexport class BryntumChartModule { }\n","/*\n * Public API Surface of Bryntum Chart\n */\nexport * from './lib/chart.module';\n\nexport * from './lib/bryntum-chart.component'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAEc,MAAO,aAAa,CAAA;AAC9B;;AAEG;AACI,IAAA,OAAO,UAAU,CAAC,OAAe,EAAE,GAAW,EAAA;;AAEjD,QAAA,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE,EAAE;AAC3D,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,CAAA,gCAAA,EAAmC,GAAG,CAAI,EAAA,CAAA;AACxE,gBAAA,uHAAuH,CACtH,CAAC;AACL,SAAA;KACJ;AAED;;AAEG;AACI,IAAA,OAAO,mBAAmB,CAAC,OAAe,EAAE,cAAsB,EAAA;AACrE,QAAA,aAAa,CAAC,UAAU,CAAC,OAAO,EAC5B,CAAA,OAAA,EAAU,cAAc,CAAqD,mDAAA,CAAA;YAC7E,+DAA+D;YAC/D,CAAqB,kBAAA,EAAA,cAAc,CAAiC,+BAAA,CAAA,CACvE,CAAC;KACL;AAED;;AAEG;AACI,IAAA,OAAO,oBAAoB,CAAC,OAAe,EAAE,IAAY,EAAA;AAC5D,QAAA,aAAa,CAAC,UAAU,CAAC,OAAO,EAC5B,CAAA,OAAA,EAAU,IAAI,CAAqD,mDAAA,CAAA;YACnE,CAA8C,2CAAA,EAAA,IAAI,CAAwD,sDAAA,CAAA,CAC7G,CAAC;KACL;AAED;;AAEG;AACI,IAAA,OAAO,oBAAoB,CAAC,OAAe,EAAE,IAAY,EAAA;QAC5D,aAAa,CAAC,UAAU,CAAC,OAAO,EAC5B,CAAI,CAAA,EAAA,IAAI,CAA+F,6FAAA,CAAA,CAC1G,CAAC;KACL;AAED;;;;;;AAMG;IACI,OAAO,cAAc,CAAC,gBAA4B,EAAE,IAAY,EAAE,KAAiB,EAAE,QAAA,GAAoB,IAAI,EAAA;QAEhH,IAAI,IAAI,KAAK,SAAS,EAAE;;AAEpB,YAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBACpC,gBAAgB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC;AACpD,aAAA;AACJ,SAAA;aACI,IAAI,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvD,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAA,EAAG,GAAG,CAAA,OAAA,CAAS,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5H,SAAA;aACI,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACrD,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,gBAAgB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAChH,SAAA;AACI,aAAA,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,QAAQ,EAAE;AACtC,YAAA,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;AAC5C,SAAA;AACI,aAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,MACI,QAAQ,GAAM,gBAAgB,CAAC,UAAU,CAAC,EAC1C,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9C,YAAA,IAAI,QAAQ,EAAE;AACV,gBAAA,QAAQ,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;AACjC,aAAA;AACI,iBAAA;AACD,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtC,gBAAA,IAAI,OAAO,EAAE;AACT,oBAAA,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5B,iBAAA;AACJ,aAAA;AACJ,SAAA;AACI,aAAA;AACD,YAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAClC,SAAA;KACJ;AAEJ;;ACtFD;AACA;AACA;AACA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAc,CAAC;AAE9C;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,IAAA,GAA+B,QAAQ,EAAA;AACnE,IAAA,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE;AAC1B,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACtC,KAAA;IACD,MAAM,KAAK,GAAkB,EAAE,CAAC;AAChC,IAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;QAChD,IAAK,EAA6C,CAAC,UAAU,EAAE;AAC3D,YAAA,KAAK,CAAC,IAAI,CAAE,EAAU,CAAC,UAAU,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAE,EAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AACjE,SAAA;AACL,KAAC,CAAC,CAAC;AACH,IAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;AACA;AACA,SAAS,sBAAsB,CAAC,QAA0B,EAAA;;AACtD,IAAA,MAAM,IAAI,GAAS,QAAQ,CAAC,IAAI,CAAC;IACjC,MAAM,SAAS,GAAI,CAAA,EAAA,GAAA,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAErE,IAAA,sBAAsB,EAAE,CAAC,OAAO,CAAC,UAAU,IAAG;AAC1C,QAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAkB,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;AAChG,YAAA,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,SAAC,CAAC,CAAC;AACP,KAAC,CAAC,CAAC;AACP,CAAC;AAED;AACA;AACM,SAAU,kBAAkB,CAAC,UAAuB,EAAA;AACtD,IAAA,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED;AACA;AACM,SAAU,oBAAoB,CAAC,UAAuB,EAAA;AACxD,IAAA,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC;AAED;AACA;AACA;AACA;SACgB,sBAAsB,GAAA;AAClC,IAAA,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAkB,0BAA0B,CAAC,CAAC,CAAC;AAE/G,IAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QACxB,OAAO;AACV,KAAA;AAED,IAAA,sBAAsB,EAAE,CAAC,OAAO,CAAC,UAAU,IAAG;AAC1C,QAAA,IAAI,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE;YACtD,OAAO;AACV,SAAA;AAED,QAAA,cAAc,CAAC,OAAO,CAAC,QAAQ,IAAG;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAChB,OAAO;AACV,aAAA;;AAED,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAqB,CAAC;AACtD,YAAA,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC3B,YAAA,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAClC,SAAC,CAAC,CAAC;AACP,KAAC,CAAC,CAAC;AACP,CAAC;AAED;AACA;AACA;AACA;AACA,YAAY,CAAC,GAAG,CAAC;IACb,KAAK,GAAA;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAkB,0BAA0B,CAAC,CAAC;AACtF,QAAA,IAAI,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE;YACZ,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAChC,SAAA;KACJ;AACJ,CAAA,CAAC;;AC1FF;MAquBa,qBAAqB,CAAA;AA4U9B,IAAA,WAAA,CAAY,OAAmB,EAAA;AATvB,QAAA,IAAA,CAAA,aAAa,GAAG;AACpB,YAAA,KAAK,EAAc,SAAS;AAC5B,YAAA,QAAQ,EAAW,SAAS;AAC5B,YAAA,IAAI,EAAe,SAAS;AAC5B,YAAA,gBAAgB,EAAG,IAAI;AACvB,YAAA,QAAQ,EAAW,EAAE;AACrB,YAAA,SAAS,EAAU,EAAE;SACxB,CAAC;;AA6JF;;;;AAIG;AACO,QAAA,IAAA,CAAA,eAAe,GAAQ,IAAI,YAAY,EAA8C,CAAC;AAChG;;;;AAIG;AACO,QAAA,IAAA,CAAA,YAAY,GAAQ,IAAI,YAAY,EAAwD,CAAC;AACvG;;;;;;AAMG;AACO,QAAA,IAAA,CAAA,iBAAiB,GAAQ,IAAI,YAAY,EAAkE,CAAC;AACtH;;;;AAIG;AACO,QAAA,IAAA,CAAA,YAAY,GAAQ,IAAI,YAAY,EAA6E,CAAC;AAC5H;;;;;;AAMG;AACO,QAAA,IAAA,CAAA,UAAU,GAAQ,IAAI,YAAY,EAAgE,CAAC;AAC7G;;;;AAIG;AACO,QAAA,IAAA,CAAA,SAAS,GAAQ,IAAI,YAAY,EAA8C,CAAC;AAC1F;;;;;AAKG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAQ,IAAI,YAAY,EAAmE,CAAC;AACxH;;;;AAIG;AACO,QAAA,IAAA,CAAA,gBAAgB,GAAQ,IAAI,YAAY,EAAsD,CAAC;AACzG;;;;;;;;;AASG;AACO,QAAA,IAAA,CAAA,SAAS,GAAQ,IAAI,YAAY,EAA4J,CAAC;AACxM;;;;;;;;;;;AAWG;AACO,QAAA,IAAA,CAAA,UAAU,GAAQ,IAAI,YAAY,EAA4J,CAAC;AACzM;;;;AAIG;AACO,QAAA,IAAA,CAAA,MAAM,GAAQ,IAAI,YAAY,EAAgD,CAAC;AACzF;;;;;;;AAOG;AACO,QAAA,IAAA,CAAA,OAAO,GAAQ,IAAI,YAAY,EAAqE,CAAC;AAC/G;;;;AAIG;AACO,QAAA,IAAA,CAAA,UAAU,GAAQ,IAAI,YAAY,EAAmD,CAAC;AAChG;;;AAGG;AACO,QAAA,IAAA,CAAA,WAAW,GAAQ,IAAI,YAAY,EAAuB,CAAC;AACrE;;;;;;;;AAQG;AACO,QAAA,IAAA,CAAA,QAAQ,GAAQ,IAAI,YAAY,EAAoH,CAAC;AAC/J;;;;AAIG;AACO,QAAA,IAAA,CAAA,MAAM,GAAQ,IAAI,YAAY,EAAgD,CAAC;AAhRrF,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;KAC7B;AAiRD;;AAEG;IACH,QAAQ,GAAA;QACJ,MACI,EAAE,GAAG,IAAI,EACT,EACI,UAAU,EACV,aAAa,EAChB,GAAG,EAAE,EACN,EACI,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EAChB,GAAG,qBAAqB,CAAC;AAE9B,QAAA,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;;AAEvD,YAAA,aAAa,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACvC,gBAAA,aAAa,CAAC,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC1D,aAAA;AACL,SAAC,CAAC,CAAC;;AAEH,QAAA,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAG;AAC3F,YAAA,MACI,YAAY,GAAG,CAAC,GAAW,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1E,SAAS,GAAG,CAAC,GAAW,KAAK,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;YAG5D,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAG;;gBAE5C,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;gBAGlB,OAAO,CAAC,CAAC,WAAW,CAAC;AACzB,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;;AAGH,QAAA,MACI,cAAc,GAAG;YACb,OAAO;YACP,UAAU;YACV,aAAa;YACb,cAAc;;SAEjB,CAAC,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,cAAc,EAAE;AACjB,YAAA,IAAI,YAAY,KAAK,QAAQ,IAAI,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,UAAU,EAAE;;AAE3F,gBAAA,aAAa,CAAC,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC;AACrD,aAAA;AACI,iBAAA;AACD,gBAAA,aAAa,CAAC,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC;AAClD,aAAA;AACJ,SAAA;AACI,aAAA;AACD,YAAA,aAAa,CAAC,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACnE,SAAA;;;;;;QAOD,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAC1D,IAAI,UAAU,YAAY,UAAU,EAAE;AAClC,YAAA,sBAAsB,EAAE,CAAC;AACzB,YAAA,qBAAqB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3D,SAAA;;QAGD,EAAE,CAAC,QAAQ,GAAG,YAAY,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;KAE7G;AAED;;;;;;AAMG;IACK,OAAO,qBAAqB,CAAC,UAAsB,EAAA;;AACvD,QAAA,IAAI,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE;YAChD,OAAO;AACV,SAAA;QAED,MAAM,aAAa,GAAa,EAAE,CAAC;AAEnC,QAAA,MAAM,gBAAgB,GAAG,CAAC,KAAoB,KAAU;YACpD,IAAI;AACA,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC7B,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,cAAc,EAAE;wBAC1C,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACxC,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA,OAAO,EAAE,EAAE;;AAEV,aAAA;AACL,SAAC,CAAC;;QAGF,MAAM,aAAa,GAAoB,CAAC,EAAA,GAAA,UAAkB,CAAC,kBAAkB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AACpF,QAAA,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;;QAGxD,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;YAC9C,IAAI,EAAE,CAAC,KAAK,EAAE;AACV,gBAAA,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC9B,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,YAAA,KAAK,CAAC,EAAE,GAAG,qBAAqB,CAAC;YACjC,KAAK,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACpC,SAAA;KACJ;AAED;;;AAGG;AACH,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,MACI,EAAE,QAAQ,EAAE,GAAG,IAAI,EACnB,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;AACV,SAAA;;AAED,QAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAI;AAC/C,YAAA,MACI,QAAQ,GAAI,MAAuB,CAAC,YAAY,EAChD,EAAE,QAAQ,EAAE,GAAG,IAAI,EACnB,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC;AACjE,YAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC7B,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9D,gBAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACnC,oBAAA,aAAa,CAAC,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC1D,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;KACN;AAED;;AAEG;IACH,WAAW,GAAA;;QAEP,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACxC,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC3B,SAAA;KACJ;;AA5vBa,qBAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAEtB,qBAAY,CAAA,YAAA,GAAG,OAAO,CAAC;AAEtB,qBAAA,CAAA,aAAa,GAAa;IACrC,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,cAAc;IACd,YAAY;IACZ,WAAW;IACX,oBAAoB;IACpB,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,aAAa;IACb,UAAU;IACV,QAAQ;CACX,CAAC;AAEa,qBAAmB,CAAA,mBAAA,GAAa,EAE9C,CAAC;AAEa,qBAAA,CAAA,cAAc,GAAa,qBAAqB,CAAC,mBAAmB,CAAC,MAAM,CAAC;IACvF,OAAO;IACP,OAAO;IACP,WAAW;IACX,QAAQ;IACR,SAAS;IACT,mBAAmB;IACnB,UAAU;IACV,iBAAiB;IACjB,WAAW;IACX,kBAAkB;IAClB,WAAW;IACX,gBAAgB;IAChB,YAAY;IACZ,cAAc;IACd,UAAU;IACV,QAAQ;IACR,cAAc;IACd,mBAAmB;IACnB,iBAAiB;IACjB,6BAA6B;IAC7B,UAAU;IACV,cAAc;IACd,cAAc;IACd,WAAW;IACX,KAAK;IACL,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,SAAS;IACT,mBAAmB;IACnB,MAAM;IACN,WAAW;IACX,gBAAgB;IAChB,SAAS;IACT,qBAAqB;IACrB,cAAc;IACd,UAAU;IACV,8BAA8B;IAC9B,UAAU;IACV,MAAM;IACN,WAAW;IACX,mBAAmB;IACnB,WAAW;IACX,OAAO;IACP,gBAAgB;IAChB,MAAM;IACN,UAAU;IACV,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,eAAe;IACf,MAAM;IACN,SAAS;IACT,IAAI;IACJ,sBAAsB;IACtB,iBAAiB;IACjB,cAAc;IACd,aAAa;IACb,aAAa;IACb,SAAS;IACT,OAAO;IACP,QAAQ;IACR,OAAO;IACP,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,WAAW;IACX,aAAa;IACb,aAAa;IACb,uBAAuB;IACvB,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,KAAK;IACL,WAAW;IACX,kBAAkB;IAClB,sBAAsB;IACtB,UAAU;IACV,KAAK;IACL,WAAW;IACX,sBAAsB;IACtB,UAAU;IACV,eAAe;IACf,YAAY;IACZ,oBAAoB;IACpB,WAAW;IACX,YAAY;IACZ,uBAAuB;IACvB,UAAU;IACV,QAAQ;IACR,kBAAkB;IAClB,WAAW;IACX,QAAQ;IACR,MAAM;IACN,aAAa;IACb,KAAK;IACL,YAAY;IACZ,cAAc;IACd,QAAQ;IACR,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,eAAe;IACf,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,WAAW;IACX,WAAW;IACX,cAAc;IACd,yBAAyB;IACzB,MAAM;IACN,qBAAqB;IACrB,UAAU;IACV,cAAc;IACd,iBAAiB;IACjB,KAAK;IACL,aAAa;IACb,KAAK;IACL,WAAW;IACX,aAAa;IACb,UAAU;IACV,eAAe;IACf,OAAO;IACP,WAAW;IACX,cAAc;IACd,SAAS;IACT,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,OAAO;IACP,GAAG;IACH,GAAG;AACN,CAAA,CAAC,CAAC;AAEY,qBAAA,CAAA,kBAAkB,GAAa;IAC1C,OAAO;IACP,OAAO;IACP,QAAQ;IACR,iBAAiB;IACjB,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,cAAc;IACd,OAAO;IACP,QAAQ;IACR,aAAa;IACb,mBAAmB;IACnB,WAAW;IACX,qBAAqB;IACrB,cAAc;IACd,UAAU;IACV,8BAA8B;IAC9B,MAAM;IACN,WAAW;IACX,mBAAmB;IACnB,UAAU;IACV,eAAe;IACf,eAAe;IACf,SAAS;IACT,sBAAsB;IACtB,SAAS;IACT,WAAW;IACX,WAAW;IACX,aAAa;IACb,aAAa;IACb,uBAAuB;IACvB,cAAc;IACd,QAAQ;IACR,eAAe;IACf,YAAY;IACZ,oBAAoB;IACpB,YAAY;IACZ,uBAAuB;IACvB,kBAAkB;IAClB,QAAQ;IACR,aAAa;IACb,cAAc;IACd,eAAe;IACf,yBAAyB;IACzB,KAAK;IACL,aAAa;IACb,KAAK;IACL,WAAW;IACX,aAAa;IACb,MAAM;IACN,IAAI;IACJ,QAAQ;CACX,CAAC;AAEa,qBAAA,CAAA,YAAY,GAAa,qBAAqB,CAAC,mBAAmB,CAAC,MAAM,CAAC;IACrF,WAAW;IACX,SAAS;IACT,mBAAmB;IACnB,UAAU;IACV,WAAW;IACX,gBAAgB;IAChB,YAAY;IACZ,cAAc;IACd,UAAU;IACV,mBAAmB;IACnB,iBAAiB;IACjB,6BAA6B;IAC7B,UAAU;IACV,cAAc;IACd,cAAc;IACd,WAAW;IACX,KAAK;IACL,QAAQ;IACR,SAAS;IACT,MAAM;IACN,gBAAgB;IAChB,SAAS;IACT,UAAU;IACV,WAAW;IACX,OAAO;IACP,gBAAgB;IAChB,MAAM;IACN,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,IAAI;IACJ,iBAAiB;IACjB,cAAc;IACd,aAAa;IACb,aAAa;IACb,OAAO;IACP,QAAQ;IACR,OAAO;IACP,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,QAAQ;IACR,KAAK;IACL,WAAW;IACX,kBAAkB;IAClB,sBAAsB;IACtB,UAAU;IACV,KAAK;IACL,WAAW;IACX,sBAAsB;IACtB,UAAU;IACV,QAAQ;IACR,WAAW;IACX,UAAU;IACV,QAAQ;IACR,WAAW;IACX,MAAM;IACN,KAAK;IACL,YAAY;IACZ,QAAQ;IACR,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,WAAW;IACX,WAAW;IACX,cAAc;IACd,MAAM;IACN,qBAAqB;IACrB,UAAU;IACV,cAAc;IACd,iBAAiB;IACjB,UAAU;IACV,eAAe;IACf,OAAO;IACP,WAAW;IACX,cAAc;IACd,SAAS;IACT,QAAQ;IACR,OAAO;IACP,GAAG;IACH,GAAG;AACN,CAAA,CAAC,CAAC;kHA9TM,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,2oIAFnB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAEJ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAG,eAAe;AAC1B,oBAAA,QAAQ,EAAG,EAAE;AAChB,iBAAA,CAAA;iGAkVY,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,4BAA4B,EAAA,CAAA;sBAApC,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAGG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,2BAA2B,EAAA,CAAA;sBAAnC,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,CAAC,EAAA,CAAA;sBAAT,KAAK;gBACG,CAAC,EAAA,CAAA;sBAAT,KAAK;gBAGG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAQI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAMG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAQG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAMG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAQG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAMG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAOG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAMG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAWG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAaG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAMG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBASG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAMG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAKG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAUG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAMG,MAAM,EAAA,CAAA;sBAAf,MAAM;;;ACl0CX;;AAEE;MAiBW,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EARvB,YAAA,EAAA,CAAA,qBAAqB,CAEd,EAAA,OAAA,EAAA,CAAA,YAAY,aAGnB,qBAAqB,CAAA,EAAA,CAAA,CAAA;gHAGhB,kBAAkB,EAAA,OAAA,EAAA,CANjB,CAAC,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;2FAMf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAG;wBAEX,qBAAqB;AACxB,qBAAA;oBACD,OAAO,EAAG,CAAC,YAAY,CAAC;AACxB,oBAAA,OAAO,EAAG;wBAEN,qBAAqB;AACxB,qBAAA;AACJ,iBAAA,CAAA;;;AClBD;;AAEG;;ACFH;;AAEG;;;;"}