@unovis/ts 1.4.0-version.12 → 1.4.1-alpha.0
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.
- package/components/annotations/config.d.ts +19 -0
- package/components/annotations/config.js +6 -0
- package/components/annotations/config.js.map +1 -0
- package/components/annotations/index.d.ts +26 -0
- package/components/annotations/index.js +110 -0
- package/components/annotations/index.js.map +1 -0
- package/components/annotations/style.d.ts +16 -0
- package/components/annotations/style.js +47 -0
- package/components/annotations/style.js.map +1 -0
- package/components/annotations/types.d.ts +32 -0
- package/components/annotations/types.js +2 -0
- package/components/annotations/types.js.map +1 -0
- package/components/area/config.d.ts +1 -1
- package/components/area/config.js.map +1 -1
- package/components/area/index.js +2 -0
- package/components/area/index.js.map +1 -1
- package/components/bullet-legend/config.d.ts +11 -3
- package/components/bullet-legend/config.js +4 -3
- package/components/bullet-legend/config.js.map +1 -1
- package/components/bullet-legend/index.d.ts +1 -1
- package/components/bullet-legend/index.js +22 -20
- package/components/bullet-legend/index.js.map +1 -1
- package/components/bullet-legend/modules/shape.d.ts +2 -2
- package/components/bullet-legend/modules/shape.js +67 -46
- package/components/bullet-legend/modules/shape.js.map +1 -1
- package/components/bullet-legend/style.d.ts +1 -0
- package/components/bullet-legend/style.js +9 -3
- package/components/bullet-legend/style.js.map +1 -1
- package/components/bullet-legend/types.d.ts +17 -4
- package/components/bullet-legend/types.js +10 -7
- package/components/bullet-legend/types.js.map +1 -1
- package/components/chord-diagram/index.d.ts +3 -3
- package/components/chord-diagram/index.js +24 -15
- package/components/chord-diagram/index.js.map +1 -1
- package/components/chord-diagram/modules/label.js +16 -18
- package/components/chord-diagram/modules/label.js.map +1 -1
- package/components/chord-diagram/modules/layout.js +9 -5
- package/components/chord-diagram/modules/layout.js.map +1 -1
- package/components/chord-diagram/modules/link.js +1 -1
- package/components/chord-diagram/modules/link.js.map +1 -1
- package/components/chord-diagram/style.js +1 -1
- package/components/chord-diagram/style.js.map +1 -1
- package/components/crosshair/config.d.ts +4 -0
- package/components/crosshair/config.js +1 -1
- package/components/crosshair/config.js.map +1 -1
- package/components/crosshair/index.js +12 -4
- package/components/crosshair/index.js.map +1 -1
- package/components/crosshair/style.js +4 -2
- package/components/crosshair/style.js.map +1 -1
- package/components/crosshair/types.d.ts +2 -0
- package/components/nested-donut/config.d.ts +14 -2
- package/components/nested-donut/config.js +1 -1
- package/components/nested-donut/config.js.map +1 -1
- package/components/nested-donut/index.js +16 -10
- package/components/nested-donut/index.js.map +1 -1
- package/components/sankey/modules/node.js +1 -1
- package/components/sankey/modules/node.js.map +1 -1
- package/components/stacked-bar/index.js.map +1 -1
- package/components/vis-controls/index.d.ts +0 -3
- package/components/vis-controls/index.js +1 -6
- package/components/vis-controls/index.js.map +1 -1
- package/components/xy-labels/index.js +1 -1
- package/components/xy-labels/index.js.map +1 -1
- package/components.d.ts +2 -0
- package/components.js +1 -0
- package/components.js.map +1 -1
- package/containers/single-container/config.d.ts +3 -0
- package/containers/single-container/config.js +1 -1
- package/containers/single-container/config.js.map +1 -1
- package/containers/single-container/index.d.ts +1 -1
- package/containers/single-container/index.js +11 -1
- package/containers/single-container/index.js.map +1 -1
- package/containers/xy-container/config.d.ts +3 -0
- package/containers/xy-container/config.js +1 -1
- package/containers/xy-container/config.js.map +1 -1
- package/containers/xy-container/index.d.ts +2 -2
- package/containers/xy-container/index.js +19 -6
- package/containers/xy-container/index.js.map +1 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/types/misc.d.ts +1 -0
- package/types/scale.d.ts +3 -2
- package/types/scale.js +2 -1
- package/types/scale.js.map +1 -1
- package/types.d.ts +1 -0
- package/types.js +2 -1
- package/types.js.map +1 -1
- package/utils/data.js +1 -1
- package/utils/data.js.map +1 -1
- package/utils/misc.d.ts +2 -1
- package/utils/misc.js +13 -1
- package/utils/misc.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/containers/single-container/index.ts"],"sourcesContent":["// Global CSS variables (side effects import)\nimport 'styles/index'\n\n// Core\nimport { ContainerCore } from 'core/container'\nimport { ComponentCore } from 'core/component'\nimport { ComponentConfigInterface } from 'core/component/config'\n\n// Utils\nimport { smartTransition } from 'utils/d3'\n\n// Types\nimport { Sizing, ExtendedSizeComponent } from 'types/component'\n\n// Config\nimport { SingleContainerDefaultConfig, SingleContainerConfigInterface } from './config'\n\nexport class SingleContainer<Data> extends ContainerCore {\n public component: ComponentCore<Data>\n public config: SingleContainerConfigInterface<Data>\n protected _defaultConfig = SingleContainerDefaultConfig as SingleContainerConfigInterface<Data>\n\n constructor (element: HTMLElement, config?: SingleContainerConfigInterface<Data>, data?: Data) {\n super(element)\n\n if (config) {\n this.updateContainer(config, true)\n this.component = config.component\n }\n\n if (data) {\n this.setData(data, true)\n }\n\n // Render if component exists and has data\n if (this.component?.datamodel.data) this.render()\n }\n\n public setData (data: Data, preventRender?: boolean): void {\n const { config } = this\n\n if (this.component) this.component.setData(data)\n if (!preventRender) this.render()\n config.tooltip?.hide()\n }\n\n public updateContainer (containerConfig: SingleContainerConfigInterface<Data>, preventRender?: boolean): void {\n super.updateContainer(containerConfig)\n this._removeAllChildren()\n\n this.component = containerConfig.component\n if (containerConfig.sizing) this.component.sizing = containerConfig.sizing\n this.element.appendChild(this.component.element)\n\n const tooltip = containerConfig.tooltip\n if (tooltip) {\n if (!tooltip.hasContainer()) tooltip.setContainer(this._container)\n tooltip.setComponents([this.component])\n }\n\n // Defs\n this.element.appendChild(this._svgDefs.node())\n\n if (!preventRender) this.render()\n }\n\n public updateComponent (componentConfig: ComponentConfigInterface, preventRender?: boolean): void {\n this.component.setConfig(componentConfig)\n if (!preventRender) this.render()\n }\n\n public update (\n containerConfig: SingleContainerConfigInterface<Data>,\n componentConfig?: ComponentConfigInterface,\n data?: Data\n ): void {\n if (containerConfig) this.updateContainer(containerConfig, true)\n if (componentConfig) this.updateComponent(componentConfig, true)\n if (data) this.setData(data, true)\n this.render()\n }\n\n public getFitWidthScale (): number {\n const { config, component } = this\n\n const extendedSizeComponent = component as ExtendedSizeComponent\n if (!extendedSizeComponent.getWidth) return 1\n\n const componentWidth = extendedSizeComponent.getWidth() + config.margin.left + config.margin.right\n return this.width / componentWidth\n }\n\n protected _preRender (): void {\n super._preRender()\n this.component.setSize(this.width, this.height, this.containerWidth, this.containerHeight)\n }\n\n protected _render (duration?: number): void {\n const { config, component } = this\n super._render(duration)\n\n component.g.attr('transform', `translate(${config.margin.left},${config.margin.top})`)\n component.render(duration)\n\n if (config.tooltip) config.tooltip.update()\n }\n\n // Re-defining the `render()` function to handle different sizing techniques (`Sizing.Extend` and `Sizing.FitWidth`)\n // Not calling `super.render()` because we don't want it to interfere with setting the SVG size here.\n public render (duration = this.config.duration): void {\n const { config, component } = this\n\n if (config.sizing === Sizing.Extend || config.sizing === Sizing.FitWidth) {\n const fitToWidth = config.sizing === Sizing.FitWidth\n const extendedSizeComponent = component as ExtendedSizeComponent\n\n const componentWidth = extendedSizeComponent.getWidth() + config.margin.left + config.margin.right\n const componentHeight = extendedSizeComponent.getHeight() + config.margin.top + config.margin.bottom\n const scale = fitToWidth ? this.getFitWidthScale() : 1\n\n const currentWidth = this.svg.attr('width')\n const currentHeight = this.svg.attr('height')\n const scaledWidth = componentWidth * scale\n const scaledHeight = componentHeight * scale\n const animated = currentWidth || currentHeight\n\n smartTransition(this.svg, animated ? duration : 0)\n .attr('width', scaledWidth)\n .attr('height', scaledHeight)\n .attr('viewBox', `${0} ${0} ${componentWidth} ${fitToWidth ? scaledHeight : componentHeight}`)\n .attr('preserveAspectRatio', 'xMinYMin')\n } else {\n this.svg\n .attr('width', this.config.width || this.containerWidth)\n .attr('height', this.config.height || this.containerHeight)\n }\n\n // Set up Resize Observer\n if (!this._resizeObserver) this._setUpResizeObserver()\n\n // Schedule the actual rendering in the next frame\n cancelAnimationFrame(this._requestedAnimationFrame)\n this._requestedAnimationFrame = requestAnimationFrame(() => {\n this._preRender()\n this._render(duration)\n })\n }\n\n protected _onResize (): void {\n const { config } = this\n super._onResize()\n config.tooltip?.hide()\n }\n\n public destroy (): void {\n const { component, config } = this\n super.destroy()\n\n component?.destroy()\n config.tooltip?.destroy()\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/containers/single-container/index.ts"],"sourcesContent":["// Global CSS variables (side effects import)\nimport 'styles/index'\n\n// Core\nimport { ContainerCore } from 'core/container'\nimport { ComponentCore } from 'core/component'\nimport { ComponentConfigInterface } from 'core/component/config'\n\n// Utils\nimport { smartTransition } from 'utils/d3'\n\n// Types\nimport { Sizing, ExtendedSizeComponent } from 'types/component'\n\n// Config\nimport { SingleContainerDefaultConfig, SingleContainerConfigInterface } from './config'\n\nexport class SingleContainer<Data> extends ContainerCore {\n protected _defaultConfig = SingleContainerDefaultConfig as SingleContainerConfigInterface<Data>\n public component: ComponentCore<Data>\n public config: SingleContainerConfigInterface<Data> = this._defaultConfig\n\n constructor (element: HTMLElement, config?: SingleContainerConfigInterface<Data>, data?: Data) {\n super(element)\n\n if (config) {\n this.updateContainer(config, true)\n this.component = config.component\n }\n\n if (data) {\n this.setData(data, true)\n }\n\n // Render if component exists and has data\n if (this.component?.datamodel.data) this.render()\n }\n\n public setData (data: Data, preventRender?: boolean): void {\n const { config } = this\n\n if (this.component) this.component.setData(data)\n if (!preventRender) this.render()\n config.tooltip?.hide()\n }\n\n public updateContainer (containerConfig: SingleContainerConfigInterface<Data>, preventRender?: boolean): void {\n super.updateContainer(containerConfig)\n this._removeAllChildren()\n\n this.component = containerConfig.component\n if (containerConfig.sizing) this.component.sizing = containerConfig.sizing\n this.element.appendChild(this.component.element)\n\n const tooltip = containerConfig.tooltip\n if (tooltip) {\n if (!tooltip.hasContainer()) tooltip.setContainer(this._container)\n tooltip.setComponents([this.component])\n }\n\n const annotations = containerConfig.annotations\n if (annotations) {\n this.element.appendChild(annotations.element)\n }\n\n // Defs\n this.element.appendChild(this._svgDefs.node())\n\n if (!preventRender) this.render()\n }\n\n public updateComponent (componentConfig: ComponentConfigInterface, preventRender?: boolean): void {\n this.component.setConfig(componentConfig)\n if (!preventRender) this.render()\n }\n\n public update (\n containerConfig: SingleContainerConfigInterface<Data>,\n componentConfig?: ComponentConfigInterface,\n data?: Data\n ): void {\n if (containerConfig) this.updateContainer(containerConfig, true)\n if (componentConfig) this.updateComponent(componentConfig, true)\n if (data) this.setData(data, true)\n this.render()\n }\n\n public getFitWidthScale (): number {\n const { config, component } = this\n\n const extendedSizeComponent = component as ExtendedSizeComponent\n if (!extendedSizeComponent.getWidth) return 1\n\n const componentWidth = extendedSizeComponent.getWidth() + config.margin.left + config.margin.right\n return this.width / componentWidth\n }\n\n protected _preRender (): void {\n super._preRender()\n this.component.setSize(this.width, this.height, this.containerWidth, this.containerHeight)\n this.config.annotations?.setSize(this.width, this.height, this.containerWidth, this.containerHeight)\n }\n\n protected _render (duration?: number): void {\n const { config, component } = this\n super._render(duration)\n\n component.g.attr('transform', `translate(${config.margin.left},${config.margin.top})`)\n component.render(duration)\n config.annotations?.render(duration)\n\n if (config.tooltip) config.tooltip.update()\n }\n\n // Re-defining the `render()` function to handle different sizing techniques (`Sizing.Extend` and `Sizing.FitWidth`)\n // Not calling `super.render()` because we don't want it to interfere with setting the SVG size here.\n public render (duration = this.config.duration): void {\n const { config, component } = this\n\n if (config.sizing === Sizing.Extend || config.sizing === Sizing.FitWidth) {\n const fitToWidth = config.sizing === Sizing.FitWidth\n const extendedSizeComponent = component as ExtendedSizeComponent\n\n const componentWidth = extendedSizeComponent.getWidth() + config.margin.left + config.margin.right\n const componentHeight = extendedSizeComponent.getHeight() + config.margin.top + config.margin.bottom\n const scale = fitToWidth ? this.getFitWidthScale() : 1\n\n const currentWidth = this.svg.attr('width')\n const currentHeight = this.svg.attr('height')\n const scaledWidth = componentWidth * scale\n const scaledHeight = componentHeight * scale\n const animated = currentWidth || currentHeight\n\n smartTransition(this.svg, animated ? duration : 0)\n .attr('width', scaledWidth)\n .attr('height', scaledHeight)\n .attr('viewBox', `${0} ${0} ${componentWidth} ${fitToWidth ? scaledHeight : componentHeight}`)\n .attr('preserveAspectRatio', 'xMinYMin')\n } else {\n this.svg\n .attr('width', this.config.width || this.containerWidth)\n .attr('height', this.config.height || this.containerHeight)\n }\n\n // Set up Resize Observer\n if (!this._resizeObserver) this._setUpResizeObserver()\n\n // Schedule the actual rendering in the next frame\n cancelAnimationFrame(this._requestedAnimationFrame)\n this._requestedAnimationFrame = requestAnimationFrame(() => {\n this._preRender()\n this._render(duration)\n })\n }\n\n protected _onResize (): void {\n const { config } = this\n super._onResize()\n config.tooltip?.hide()\n }\n\n public destroy (): void {\n const { component, config } = this\n super.destroy()\n\n component?.destroy()\n config.tooltip?.destroy()\n config.annotations?.destroy()\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { XYComponentCore } from "../../core/xy-component";
|
|
2
2
|
import { ContainerConfigInterface } from "../../core/container/config";
|
|
3
|
+
import { Annotations } from "../../components/annotations";
|
|
3
4
|
import { Tooltip } from "../../components/tooltip";
|
|
4
5
|
import { Axis } from "../../components/axis";
|
|
5
6
|
import { Crosshair } from "../../components/crosshair";
|
|
@@ -77,5 +78,7 @@ export interface XYContainerConfigInterface<Datum> extends ContainerConfigInterf
|
|
|
77
78
|
preventEmptyDomain?: boolean | null;
|
|
78
79
|
/** Sets the Y scale domain based on the current X scale domain (not the whole dataset). Default: `false` */
|
|
79
80
|
scaleByDomain?: boolean;
|
|
81
|
+
/** Annotations component. Default: `undefined` */
|
|
82
|
+
annotations?: Annotations | undefined;
|
|
80
83
|
}
|
|
81
84
|
export declare const XYContainerDefaultConfig: XYContainerConfigInterface<unknown>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ContainerDefaultConfig } from '../../core/container/config.js';
|
|
2
2
|
import { Direction } from '../../types/direction.js';
|
|
3
3
|
|
|
4
|
-
const XYContainerDefaultConfig = Object.assign(Object.assign({}, ContainerDefaultConfig), { components: [], tooltip: undefined, crosshair: undefined, xAxis: undefined, yAxis: undefined, autoMargin: true, xScale: undefined, xDomain: undefined, xDomainMinConstraint: undefined, xDomainMaxConstraint: undefined, xRange: undefined, yScale: undefined, yDomain: undefined, yDomainMinConstraint: undefined, yDomainMaxConstraint: undefined, yRange: undefined, yDirection: Direction.North, preventEmptyDomain: null, scaleByDomain: false });
|
|
4
|
+
const XYContainerDefaultConfig = Object.assign(Object.assign({}, ContainerDefaultConfig), { components: [], tooltip: undefined, crosshair: undefined, annotations: undefined, xAxis: undefined, yAxis: undefined, autoMargin: true, xScale: undefined, xDomain: undefined, xDomainMinConstraint: undefined, xDomainMaxConstraint: undefined, xRange: undefined, yScale: undefined, yDomain: undefined, yDomainMinConstraint: undefined, yDomainMaxConstraint: undefined, yRange: undefined, yDirection: Direction.North, preventEmptyDomain: null, scaleByDomain: false });
|
|
5
5
|
|
|
6
6
|
export { XYContainerDefaultConfig };
|
|
7
7
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../../../src/containers/xy-container/config.ts"],"sourcesContent":["// Core\nimport { XYComponentCore } from 'core/xy-component'\nimport { ContainerDefaultConfig, ContainerConfigInterface } from 'core/container/config'\nimport { Tooltip } from 'components/tooltip'\
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../src/containers/xy-container/config.ts"],"sourcesContent":["// Core\nimport { XYComponentCore } from 'core/xy-component'\nimport { ContainerDefaultConfig, ContainerConfigInterface } from 'core/container/config'\n\n// Components\nimport { Annotations } from 'components/annotations'\nimport { Tooltip } from 'components/tooltip'\nimport { Axis } from 'components/axis'\nimport { Crosshair } from 'components/crosshair'\n\n// Types\nimport { ContinuousScale } from 'types/scale'\nimport { Direction } from 'types/direction'\n\nexport interface XYContainerConfigInterface<Datum> extends ContainerConfigInterface {\n /** An array of visualization components. Default: `[]` */\n components?: XYComponentCore<Datum>[];\n\n /** Scale for X dimension, e.g. Scale.scaleLinear().\n * If set, this value will override the components' xScale and they will have a single shared xScale instance.\n * By default the components have their own scale instances but their `domain` and `range` values are synchronized.\n * Default: `undefined` */\n xScale?: ContinuousScale;\n /** Scale domain (data extent) for X dimension. By default this value is calculated automatically based on data. */\n xDomain?: [number | undefined, number | undefined];\n /** Constraint the minimum value of the X scale domain. Useful when the data is plotted along the X axis.\n * For example, imagine that you have a chart with dynamic data that has negative values. When values are small\n * (let's say in the range of [-0.01, 0]), you might still want the chart to display some meaningful value range (e.g. [-1, 0]). That can\n * be achieved by setting `xDomainMinConstraint` to `[undefined, -1]`. In addition to that, if you want to cut off the\n * values that are too low (let's say lower than -100), you can set the constraint to `[-100, -1]`\n * Default: `undefined` */\n xDomainMinConstraint?: [number | undefined, number | undefined];\n /** Constraint the minimum value of the X scale domain. Useful when the data is plotted along the X axis.\n * For example, imagine that you have a chart with dynamic data. When values are small\n * (let's say < 0.01), you might still want the chart to display some meaningful value range (e.g. [0, 1]). That can\n * be achieved by setting `xDomainMaxConstraint` to `[1, undefined]`. In addition to that, if you want to cut off the\n * values that are too high (let's say higher than 100), you can set the constraint to `[1, 100]`\n * Default: `undefined` */\n xDomainMaxConstraint?: [number | undefined, number | undefined];\n /** Force set the X scale range (in the screen space). By default the range is calculated automatically based on the\n * chart's set up */\n xRange?: [number, number];\n\n /** Scale for Y dimension, e.g. Scale.scaleLinear().\n * If set, this value will override the components' yScale and they will have a single shared yScale instance.\n * By default the components have their own scale instances but their `domain` and `range` values are synchronized.\n * Default: `undefined` */\n yScale?: ContinuousScale;\n /** Scale domain (data extent) for Y dimension. By default this value is calculated automatically based on data. */\n yDomain?: [number | undefined, number | undefined];\n /** Constraint the minimum value of the Y scale domain.\n * For example, imagine that you have a chart with dynamic data that has negative values. When values are small\n * (let's say in the range of [-0.01, 0]), you might still want the chart to display some meaningful value range (e.g. [-1, 0]). That can\n * be achieved by setting `yDomainMinConstraint` to `[undefined, -1]`. In addition to that, if you want to cut off the\n * values that are too low (let's say lower than -100), you can set the constraint to `[-100, -1]`\n * Default: `undefined` */\n yDomainMinConstraint?: [number | undefined, number | undefined];\n /** Constraint the minimum value of the Y scale domain.\n * For example, imagine that you have a chart with dynamic data. When values are small\n * (let's say < 0.01), you might still want the chart to display some meaningful value range (e.g. [0, 1]). That can\n * be achieved by setting `yDomainMaxConstraint` to `[1, undefined]`. In addition to that, if you want to cut off the\n * values that are too high (let's say higher than 100), you can set the constraint to `[1, 100]`\n * Default: `undefined` */\n yDomainMaxConstraint?: [number | undefined, number | undefined];\n /** Force set the Y scale range (in the screen space). By default the range is calculated automatically based on the\n * chart's set up */\n yRange?: [number, number];\n /** Y Axis direction. Default: `Direction.North` */\n yDirection?: Direction.South | Direction.North | string;\n\n /** X Axis component instance. Default: `undefined` */\n xAxis?: Axis<Datum>;\n /** Y Axis component instance. Default: `undefined` */\n yAxis?: Axis<Datum>;\n /** Enables automatic calculation of chart margins based on the size of the axes. Default: `true` */\n autoMargin?: boolean;\n /** Tooltip component. Default: `undefined` */\n tooltip?: Tooltip | undefined;\n /** Crosshair component. Default: `undefined` */\n crosshair?: Crosshair<Datum> | undefined;\n /** Prevents the chart domain from being empty (when domain's min and max values are equal).\n * That usually happens when all the data values are equal or when there's no data.\n * Setting to `true` will automatically extend the domain by `+1` when the domain is empty (domain start equals domain end).\n * Setting to `null` will extend the empty X domain, but only when there's no data.\n * Setting to `false` will keep the domain as is.\n * Default: `null` */\n preventEmptyDomain?: boolean | null;\n /** Sets the Y scale domain based on the current X scale domain (not the whole dataset). Default: `false` */\n scaleByDomain?: boolean;\n /** Annotations component. Default: `undefined` */\n annotations?: Annotations | undefined;\n}\n\n\nexport const XYContainerDefaultConfig: XYContainerConfigInterface<unknown> = {\n ...ContainerDefaultConfig,\n components: [],\n tooltip: undefined,\n crosshair: undefined,\n annotations: undefined,\n xAxis: undefined,\n yAxis: undefined,\n autoMargin: true,\n\n xScale: undefined,\n xDomain: undefined,\n xDomainMinConstraint: undefined,\n xDomainMaxConstraint: undefined,\n xRange: undefined,\n\n yScale: undefined,\n yDomain: undefined,\n yDomainMinConstraint: undefined,\n yDomainMaxConstraint: undefined,\n yRange: undefined,\n yDirection: Direction.North,\n\n preventEmptyDomain: null,\n scaleByDomain: false,\n}\n\n"],"names":[],"mappings":";;;AA8Fa,MAAA,wBAAwB,mCAChC,sBAAsB,CAAA,EAAA,EACzB,UAAU,EAAE,EAAE,EACd,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,IAAI,EAEhB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,SAAS,EAClB,oBAAoB,EAAE,SAAS,EAC/B,oBAAoB,EAAE,SAAS,EAC/B,MAAM,EAAE,SAAS,EAEjB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,SAAS,EAClB,oBAAoB,EAAE,SAAS,EAC/B,oBAAoB,EAAE,SAAS,EAC/B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,CAAC,KAAK,EAE3B,kBAAkB,EAAE,IAAI,EACxB,aAAa,EAAE,KAAK;;;;"}
|
|
@@ -8,10 +8,10 @@ import { XYContainerConfigInterface } from './config';
|
|
|
8
8
|
import { AreaConfigInterface, BrushConfigInterface, LineConfigInterface, ScatterConfigInterface, StackedBarConfigInterface, TimelineConfigInterface } from '../../components';
|
|
9
9
|
export declare type XYConfigInterface<Datum> = XYComponentConfigInterface<Datum> | StackedBarConfigInterface<Datum> | LineConfigInterface<Datum> | ScatterConfigInterface<Datum> | BrushConfigInterface<Datum> | TimelineConfigInterface<Datum> | AreaConfigInterface<Datum>;
|
|
10
10
|
export declare class XYContainer<Datum> extends ContainerCore {
|
|
11
|
-
datamodel: CoreDataModel<Datum[]>;
|
|
12
|
-
config: XYContainerConfigInterface<Datum>;
|
|
13
11
|
protected _defaultConfig: XYContainerConfigInterface<Datum>;
|
|
14
12
|
protected _svgDefs: Selection<SVGDefsElement, unknown, null, undefined>;
|
|
13
|
+
datamodel: CoreDataModel<Datum[]>;
|
|
14
|
+
config: XYContainerConfigInterface<Datum>;
|
|
15
15
|
private _clipPath;
|
|
16
16
|
private _clipPathId;
|
|
17
17
|
private _axisMargin;
|
|
@@ -6,7 +6,7 @@ import { CoreDataModel } from '../../data-models/core.js';
|
|
|
6
6
|
import { AxisType } from '../../components/axis/types.js';
|
|
7
7
|
import { ScaleDimension } from '../../types/scale.js';
|
|
8
8
|
import { Direction } from '../../types/direction.js';
|
|
9
|
-
import { clamp,
|
|
9
|
+
import { clamp, clean, flatten } from '../../utils/data.js';
|
|
10
10
|
import { guid } from '../../utils/misc.js';
|
|
11
11
|
import { XYContainerDefaultConfig } from './config.js';
|
|
12
12
|
|
|
@@ -14,8 +14,9 @@ class XYContainer extends ContainerCore {
|
|
|
14
14
|
constructor(element, config, data) {
|
|
15
15
|
var _a, _b;
|
|
16
16
|
super(element);
|
|
17
|
-
this.datamodel = new CoreDataModel();
|
|
18
17
|
this._defaultConfig = XYContainerDefaultConfig;
|
|
18
|
+
this.datamodel = new CoreDataModel();
|
|
19
|
+
this.config = this._defaultConfig;
|
|
19
20
|
this._clipPathId = guid();
|
|
20
21
|
this._axisMargin = { top: 0, bottom: 0, left: 0, right: 0 };
|
|
21
22
|
this._firstRender = true;
|
|
@@ -113,6 +114,11 @@ class XYContainer extends ContainerCore {
|
|
|
113
114
|
crosshair.tooltip = tooltip;
|
|
114
115
|
this.element.appendChild(crosshair.element);
|
|
115
116
|
}
|
|
117
|
+
// Set up annotations
|
|
118
|
+
const annotations = containerConfig.annotations;
|
|
119
|
+
if (annotations) {
|
|
120
|
+
this.element.appendChild(annotations.element);
|
|
121
|
+
}
|
|
116
122
|
// Clipping path
|
|
117
123
|
this.element.appendChild(this._clipPath.node());
|
|
118
124
|
// Defs
|
|
@@ -149,11 +155,16 @@ class XYContainer extends ContainerCore {
|
|
|
149
155
|
if (config.autoMargin) {
|
|
150
156
|
this._setAutoMargin();
|
|
151
157
|
}
|
|
158
|
+
// Pass size to the components
|
|
159
|
+
const components = clean([...this.components, config.xAxis, config.yAxis, config.crosshair, config.annotations]);
|
|
160
|
+
for (const c of components) {
|
|
161
|
+
c.setSize(this.width, this.height, this.containerWidth, this.containerHeight);
|
|
162
|
+
}
|
|
152
163
|
// Update Scales of all the components at once to calculate required paddings and sync them
|
|
153
164
|
this._updateScales(...this.components, config.xAxis, config.yAxis, config.crosshair);
|
|
154
165
|
}
|
|
155
166
|
_render(customDuration) {
|
|
156
|
-
var _a, _b, _c;
|
|
167
|
+
var _a, _b, _c, _d, _e;
|
|
157
168
|
const { config } = this;
|
|
158
169
|
super._render();
|
|
159
170
|
// Get chart total margin after auto margin calculations
|
|
@@ -166,7 +177,7 @@ class XYContainer extends ContainerCore {
|
|
|
166
177
|
c.render(customDuration);
|
|
167
178
|
}
|
|
168
179
|
this._renderAxes(this._firstRender ? 0 : customDuration);
|
|
169
|
-
// Clip
|
|
180
|
+
// Clip RectsetSize
|
|
170
181
|
// Extending the clipping path to allow small overflow (e.g. Line will looks better that way when it touches the edges)
|
|
171
182
|
const clipPathExtension = 2;
|
|
172
183
|
this._clipPath.select('rect')
|
|
@@ -195,6 +206,8 @@ class XYContainer extends ContainerCore {
|
|
|
195
206
|
.style('-webkit-clip-path', `url(#${this._clipPathId})`);
|
|
196
207
|
crosshair.hide();
|
|
197
208
|
}
|
|
209
|
+
(_d = config.annotations) === null || _d === void 0 ? void 0 : _d.g.attr('transform', `translate(${margin.left},${margin.top})`);
|
|
210
|
+
(_e = config.annotations) === null || _e === void 0 ? void 0 : _e.render();
|
|
198
211
|
this._firstRender = false;
|
|
199
212
|
}
|
|
200
213
|
_updateScales(...components) {
|
|
@@ -254,7 +267,6 @@ class XYContainer extends ContainerCore {
|
|
|
254
267
|
if (isYDirectionSouth)
|
|
255
268
|
yRange.reverse();
|
|
256
269
|
for (const c of components) {
|
|
257
|
-
c.setSize(this.width, this.height, this.containerWidth, this.containerHeight);
|
|
258
270
|
c.setScaleRange(ScaleDimension.X, (_e = config.xRange) !== null && _e !== void 0 ? _e : xRange);
|
|
259
271
|
c.setScaleRange(ScaleDimension.Y, (_f = config.yRange) !== null && _f !== void 0 ? _f : yRange);
|
|
260
272
|
}
|
|
@@ -325,12 +337,13 @@ class XYContainer extends ContainerCore {
|
|
|
325
337
|
};
|
|
326
338
|
}
|
|
327
339
|
destroy() {
|
|
328
|
-
const { components, config: { tooltip, crosshair, xAxis, yAxis } } = this;
|
|
340
|
+
const { components, config: { tooltip, crosshair, annotations, xAxis, yAxis } } = this;
|
|
329
341
|
super.destroy();
|
|
330
342
|
for (const c of components)
|
|
331
343
|
c === null || c === void 0 ? void 0 : c.destroy();
|
|
332
344
|
tooltip === null || tooltip === void 0 ? void 0 : tooltip.destroy();
|
|
333
345
|
crosshair === null || crosshair === void 0 ? void 0 : crosshair.destroy();
|
|
346
|
+
annotations === null || annotations === void 0 ? void 0 : annotations.destroy();
|
|
334
347
|
xAxis === null || xAxis === void 0 ? void 0 : xAxis.destroy();
|
|
335
348
|
yAxis === null || yAxis === void 0 ? void 0 : yAxis.destroy();
|
|
336
349
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/containers/xy-container/index.ts"],"sourcesContent":["import { css } from '@emotion/css'\nimport { extent, merge as mergeArrays } from 'd3-array'\nimport { Selection } from 'd3-selection'\n\n// Global CSS variables (side effects import)\nimport 'styles/index'\n\n// Core\nimport { ContainerCore } from 'core/container'\nimport { XYComponentCore } from 'core/xy-component'\nimport { XYComponentConfigInterface } from 'core/xy-component/config'\n\n// Data Model\nimport { CoreDataModel } from 'data-models/core'\n\n// Types\nimport { Spacing } from 'types/spacing'\nimport { AxisType } from 'components/axis/types'\nimport { ScaleDimension } from 'types/scale'\nimport { Direction } from 'types/direction'\n\n// Utils\nimport { clamp, clean, flatten } from 'utils/data'\nimport { guid } from 'utils/misc'\n\n// Config\nimport { XYContainerDefaultConfig, XYContainerConfigInterface } from './config'\nimport {\n AreaConfigInterface,\n BrushConfigInterface,\n LineConfigInterface,\n ScatterConfigInterface,\n StackedBarConfigInterface,\n TimelineConfigInterface,\n} from '../../components'\n\nexport type XYConfigInterface<Datum> = XYComponentConfigInterface<Datum>\n| StackedBarConfigInterface<Datum>\n| LineConfigInterface<Datum>\n| ScatterConfigInterface<Datum>\n| BrushConfigInterface<Datum>\n| TimelineConfigInterface<Datum>\n| AreaConfigInterface<Datum>\n\nexport class XYContainer<Datum> extends ContainerCore {\n public datamodel: CoreDataModel<Datum[]> = new CoreDataModel()\n public config: XYContainerConfigInterface<Datum>\n protected _defaultConfig = XYContainerDefaultConfig as XYContainerConfigInterface<Datum>\n protected _svgDefs: Selection<SVGDefsElement, unknown, null, undefined>\n private _clipPath: Selection<SVGClipPathElement, unknown, null, undefined>\n private _clipPathId = guid()\n private _axisMargin: Spacing = { top: 0, bottom: 0, left: 0, right: 0 }\n private _firstRender = true\n\n constructor (element: HTMLElement, config?: XYContainerConfigInterface<Datum>, data?: Datum[]) {\n super(element)\n\n this._clipPath = this.svg.append('clipPath')\n .attr('id', this._clipPathId)\n this._clipPath.append('rect')\n\n // When the base tag is specified on the HTML head,\n // Safari fails to find the corresponding filter URL.\n // We have to provide tull url in order to fix that\n const highlightFilterId = 'saturate'\n const baseUrl = window.location.href.replace(window.location.hash, '')\n this.svg.attr('class', css`\n --highlight-filter-id: url(${baseUrl}#${highlightFilterId}); // defining a css variable\n `)\n\n this._svgDefs.append('filter')\n .attr('id', highlightFilterId)\n .attr('filterUnits', 'objectBoundingBox')\n .html('<feColorMatrix type=\"saturate\" in=\"SourceGraphic\" values=\"1.35\"/>')\n\n if (config) {\n this.updateContainer(config, true)\n }\n\n if (data) {\n this.setData(data, true)\n }\n\n // Render if there are axes or components with data\n if (\n this.config.xAxis ||\n this.config.yAxis ||\n this.components?.some(c => c.datamodel.data)\n ) {\n this.render()\n }\n\n // Force re-render axes when fonts are loaded\n (document as any).fonts?.ready.then(() => {\n if (!this._firstRender) this._renderAxes(0)\n })\n }\n\n get components (): XYComponentCore<Datum>[] {\n return this.config.components\n }\n\n // Overriding ContainerCore default get width method to work with axis auto margin\n get width (): number {\n const margin = this._getMargin()\n return clamp(this.containerWidth - margin.left - margin.right, 0, Number.POSITIVE_INFINITY)\n }\n\n // Overriding ContainerCore default get height method to work with axis auto margin\n get height (): number {\n const margin = this._getMargin()\n\n return clamp(this.containerHeight - margin.top - margin.bottom, 0, Number.POSITIVE_INFINITY)\n }\n\n public setData (data: Datum[], preventRender?: boolean): void {\n const { components, config } = this\n if (!data) return\n this.datamodel.data = data\n\n components.forEach((c) => {\n c.setData(data)\n })\n\n config.crosshair?.setData(data)\n config.xAxis?.setData(data)\n config.yAxis?.setData(data)\n config.tooltip?.hide()\n if (!preventRender) this.render()\n }\n\n public updateContainer (containerConfig: XYContainerConfigInterface<Datum>, preventRender?: boolean): void {\n super.updateContainer(containerConfig)\n this._removeAllChildren()\n\n // If there were any new components added we need to pass them data\n this.setData(this.datamodel.data, true)\n\n // Set up the axes\n if (containerConfig.xAxis) {\n this.config.xAxis.config.type = AxisType.X\n this.element.appendChild(containerConfig.xAxis.element)\n }\n if (containerConfig.yAxis) {\n this.config.yAxis.config.type = AxisType.Y\n this.element.appendChild(containerConfig.yAxis.element)\n }\n\n // Re-insert elements to the DOM\n for (const c of this.components) {\n this.element.appendChild(c.element)\n }\n\n // Set up the tooltip\n const tooltip = containerConfig.tooltip\n if (tooltip) {\n if (!tooltip.hasContainer()) tooltip.setContainer(this._container)\n tooltip.setComponents(this.components)\n }\n\n // Set up the crosshair\n const crosshair = containerConfig.crosshair\n if (crosshair) {\n crosshair.setContainer(this.svg)\n crosshair.tooltip = tooltip\n\n this.element.appendChild(crosshair.element)\n }\n\n // Clipping path\n this.element.appendChild(this._clipPath.node())\n\n // Defs\n this.element.appendChild(this._svgDefs.node())\n\n // Rendering\n if (!preventRender) this.render()\n }\n\n public updateComponents (componentConfigs: XYConfigInterface<Datum>[], preventRender?: boolean): void {\n const { config } = this\n\n this.components.forEach((c, i) => {\n const componentConfig = componentConfigs[i]\n if (componentConfig) {\n c.setConfig(componentConfigs[i])\n }\n })\n\n this._updateScales(...this.components, config.xAxis, config.yAxis, config.crosshair)\n if (!preventRender) this.render()\n }\n\n public update (containerConfig: XYContainerConfigInterface<Datum>, componentConfigs?: XYComponentConfigInterface<Datum>[], data?: Datum[]): void {\n if (data) this.datamodel.data = data // Just updating the data model because the `updateContainer` method has the `setData` step inside\n if (containerConfig) this.updateContainer(containerConfig, true)\n if (componentConfigs) this.updateComponents(componentConfigs, true)\n this.render()\n }\n\n protected _preRender (): void {\n const { config } = this\n super._preRender()\n\n // Calculate extra margin required to fit the axes\n if (config.autoMargin) {\n this._setAutoMargin()\n }\n\n // Update Scales of all the components at once to calculate required paddings and sync them\n this._updateScales(...this.components, config.xAxis, config.yAxis, config.crosshair)\n }\n\n protected _render (customDuration?: number): void {\n const { config } = this\n super._render()\n\n // Get chart total margin after auto margin calculations\n const margin = this._getMargin()\n\n // Render components\n for (const c of this.components) {\n c.g.attr('transform', `translate(${margin.left},${margin.top})`)\n .style('clip-path', c.clippable ? `url(#${this._clipPathId})` : null)\n .style('-webkit-clip-path', c.clippable ? `url(#${this._clipPathId})` : null)\n\n c.render(customDuration)\n }\n\n this._renderAxes(this._firstRender ? 0 : customDuration)\n\n // Clip Rect\n // Extending the clipping path to allow small overflow (e.g. Line will looks better that way when it touches the edges)\n const clipPathExtension = 2\n this._clipPath.select('rect')\n .attr('x', -clipPathExtension)\n .attr('y', -clipPathExtension)\n .attr('width', this.width + 2 * clipPathExtension)\n .attr('height', this.height + 2 * clipPathExtension)\n\n // Tooltip\n config.tooltip?.update() // Re-bind events\n\n // Crosshair\n const crosshair = config.crosshair\n if (crosshair) {\n // Pass accessors\n const yAccessors = this.components.filter(c => !c.stacked).map(c => c.config.y)\n const yStackedAccessors = this.components.filter(c => c.stacked).map(c => c.config.y)\n const baselineComponentConfig = this.components.find(c => (c.config as AreaConfigInterface<Datum>).baseline)?.config as AreaConfigInterface<Datum>\n const baselineAccessor = baselineComponentConfig?.baseline\n\n crosshair.accessors = {\n x: this.components[0]?.config.x,\n y: flatten(yAccessors),\n yStacked: flatten(yStackedAccessors),\n baseline: baselineAccessor,\n }\n\n crosshair.g.attr('transform', `translate(${margin.left},${margin.top})`)\n .style('clip-path', `url(#${this._clipPathId})`)\n .style('-webkit-clip-path', `url(#${this._clipPathId})`)\n crosshair.hide()\n }\n\n this._firstRender = false\n }\n\n private _updateScales<T extends XYComponentCore<Datum>> (...components: T[]): void {\n const c = clean(components || this.components)\n this._setScales(...c)\n this._updateScalesDomain(...c)\n this._updateScalesRange(...c)\n }\n\n private _setScales<T extends XYComponentCore<Datum>> (...components: T[]): void {\n const { config } = this\n if (!components) return\n\n // Set the X and Y scales\n if (config.xScale) components.forEach(c => c.setScale(ScaleDimension.X, config.xScale))\n if (config.yScale) components.forEach(c => c.setScale(ScaleDimension.Y, config.yScale))\n }\n\n private _updateScalesDomain<T extends XYComponentCore<Datum>> (...components: T[]): void {\n const { config } = this\n if (!components) return\n\n const componentsWithDomain = components.filter(c => !c.config.excludeFromDomainCalculation)\n\n // Loop over all the dimensions\n Object.values(ScaleDimension).forEach((dimension: ScaleDimension) => {\n const [min, max] = extent(\n mergeArrays(\n componentsWithDomain.map(c => c.getDataExtent(dimension, config.scaleByDomain))\n ) as number[]\n ) // Components with undefined dimension accessors will return [undefined, undefined] but d3.extent will take care of that\n\n const configuredDomain = dimension === ScaleDimension.Y ? config.yDomain : config.xDomain\n const configuredDomainMinConstraint = dimension === ScaleDimension.Y ? config.yDomainMinConstraint : config.xDomainMinConstraint\n const configuredDomainMaxConstraint = dimension === ScaleDimension.Y ? config.yDomainMaxConstraint : config.xDomainMaxConstraint\n const domainMin = configuredDomain?.[0] ?? min ?? 0\n const domainMax = configuredDomain?.[1] ?? max ?? 1\n const domain = [\n clamp(domainMin, configuredDomainMinConstraint?.[0] ?? Number.NEGATIVE_INFINITY, configuredDomainMinConstraint?.[1] ?? Number.POSITIVE_INFINITY),\n clamp(domainMax, configuredDomainMaxConstraint?.[0] ?? Number.NEGATIVE_INFINITY, configuredDomainMaxConstraint?.[1] ?? Number.POSITIVE_INFINITY),\n ]\n\n // Extend the X and Y domains if they're empty and `preventEmptyDomain` was explicitly set to `true`\n // or just the X domain if there is no data provided and `preventEmptyDomain` set to `null`\n if (domain[0] === domain[1]) {\n const hasDataProvided = componentsWithDomain.some(c => c.datamodel.data?.length > 0)\n if (config.preventEmptyDomain || (config.preventEmptyDomain === null && (!hasDataProvided || dimension === ScaleDimension.Y))) {\n domain[1] = domain[0] + 1\n }\n }\n\n components.forEach(c => c.setScaleDomain(dimension, domain))\n })\n }\n\n private _updateScalesRange<T extends XYComponentCore<Datum>> (...components: T[]): void {\n const { config } = this\n if (!components) return\n\n // Set initial scale range\n const isYDirectionSouth = config.yDirection === Direction.South\n const xRange: [number, number] = [config.padding.left ?? 0, this.width - config.padding.right ?? 0]\n const yRange: [number, number] = [this.height - config.padding.bottom ?? 0, config.padding.top ?? 0]\n if (isYDirectionSouth) yRange.reverse()\n\n for (const c of components) {\n c.setSize(this.width, this.height, this.containerWidth, this.containerHeight)\n c.setScaleRange(ScaleDimension.X, config.xRange ?? xRange)\n c.setScaleRange(ScaleDimension.Y, config.yRange ?? yRange)\n }\n\n // Get and combine bleed\n const bleed = components.map(c => c.bleed).reduce((bleed, b) => {\n for (const key of Object.keys(bleed)) {\n const k = key as keyof Spacing\n if (bleed[k] < b[k]) bleed[k] = b[k]\n }\n return bleed\n }, { top: 0, bottom: 0, left: 0, right: 0 })\n\n // Update scale range\n for (const c of components) {\n c.setScaleRange(ScaleDimension.X, [xRange[0] + bleed.left, xRange[1] - bleed.right])\n c.setScaleRange(\n ScaleDimension.Y,\n isYDirectionSouth\n ? [yRange[0] + bleed.top, yRange[1] - bleed.bottom] // if Y axis is directed downwards\n : [yRange[0] - bleed.bottom, yRange[1] + bleed.top] // if Y axis is directed upwards\n )\n }\n }\n\n private _renderAxes (duration: number): void {\n const { config: { xAxis, yAxis } } = this\n const margin = this._getMargin()\n\n const axes = clean([xAxis, yAxis])\n axes.forEach(axis => {\n const offset = axis.getOffset(margin)\n axis.g.attr('transform', `translate(${offset.left},${offset.top})`)\n axis.render(duration)\n })\n }\n\n private _setAutoMargin (): void {\n const { config: { xAxis, yAxis } } = this\n\n // At first we need to set the domain to the scales\n const components = clean([...this.components, xAxis, yAxis])\n this._updateScalesDomain(...components)\n\n // Calculate margin required by the axes\n // We do two iterations on the first render, because the amount and size of ticks can change\n // after new margin are calculated and applied (axes dimensions will change).\n // That's needed for correct label placement.\n const numIterations = this._firstRender ? 2 : 1\n for (let i = 0; i < numIterations; i += 1) {\n const axisMargin: Spacing = { top: 0, bottom: 0, left: 0, right: 0 }\n this._updateScalesRange(...components)\n const axes = clean([xAxis, yAxis])\n axes.forEach(axis => {\n axis.preRender()\n\n const m = axis.getRequiredMargin()\n if (axisMargin.top < m.top) axisMargin.top = m.top\n if (axisMargin.bottom < m.bottom) axisMargin.bottom = m.bottom\n if (axisMargin.left < m.left) axisMargin.left = m.left\n if (axisMargin.right < m.right) axisMargin.right = m.right\n })\n\n this._axisMargin = axisMargin\n }\n }\n\n private _getMargin (): Spacing {\n const { config: { margin } } = this\n\n return {\n top: margin.top + this._axisMargin.top,\n bottom: margin.bottom + this._axisMargin.bottom,\n left: margin.left + this._axisMargin.left,\n right: margin.right + this._axisMargin.right,\n }\n }\n\n public destroy (): void {\n const { components, config: { tooltip, crosshair, xAxis, yAxis } } = this\n super.destroy()\n\n for (const c of components) c?.destroy()\n tooltip?.destroy()\n crosshair?.destroy()\n xAxis?.destroy()\n yAxis?.destroy()\n }\n}\n"],"names":["mergeArrays"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/containers/xy-container/index.ts"],"sourcesContent":["import { css } from '@emotion/css'\nimport { extent, merge as mergeArrays } from 'd3-array'\nimport { Selection } from 'd3-selection'\n\n// Global CSS variables (side effects import)\nimport 'styles/index'\n\n// Core\nimport { ContainerCore } from 'core/container'\nimport { XYComponentCore } from 'core/xy-component'\nimport { XYComponentConfigInterface } from 'core/xy-component/config'\n\n// Data Model\nimport { CoreDataModel } from 'data-models/core'\n\n// Types\nimport { Spacing } from 'types/spacing'\nimport { AxisType } from 'components/axis/types'\nimport { ScaleDimension } from 'types/scale'\nimport { Direction } from 'types/direction'\n\n// Utils\nimport { clamp, clean, flatten } from 'utils/data'\nimport { guid } from 'utils/misc'\n\n// Config\nimport { XYContainerDefaultConfig, XYContainerConfigInterface } from './config'\nimport {\n AreaConfigInterface,\n BrushConfigInterface,\n LineConfigInterface,\n ScatterConfigInterface,\n StackedBarConfigInterface,\n TimelineConfigInterface,\n} from '../../components'\n\nexport type XYConfigInterface<Datum> = XYComponentConfigInterface<Datum>\n| StackedBarConfigInterface<Datum>\n| LineConfigInterface<Datum>\n| ScatterConfigInterface<Datum>\n| BrushConfigInterface<Datum>\n| TimelineConfigInterface<Datum>\n| AreaConfigInterface<Datum>\n\nexport class XYContainer<Datum> extends ContainerCore {\n protected _defaultConfig = XYContainerDefaultConfig as XYContainerConfigInterface<Datum>\n protected _svgDefs: Selection<SVGDefsElement, unknown, null, undefined>\n public datamodel: CoreDataModel<Datum[]> = new CoreDataModel()\n public config: XYContainerConfigInterface<Datum> = this._defaultConfig\n private _clipPath: Selection<SVGClipPathElement, unknown, null, undefined>\n private _clipPathId = guid()\n private _axisMargin: Spacing = { top: 0, bottom: 0, left: 0, right: 0 }\n private _firstRender = true\n\n constructor (element: HTMLElement, config?: XYContainerConfigInterface<Datum>, data?: Datum[]) {\n super(element)\n\n this._clipPath = this.svg.append('clipPath')\n .attr('id', this._clipPathId)\n this._clipPath.append('rect')\n\n // When the base tag is specified on the HTML head,\n // Safari fails to find the corresponding filter URL.\n // We have to provide tull url in order to fix that\n const highlightFilterId = 'saturate'\n const baseUrl = window.location.href.replace(window.location.hash, '')\n this.svg.attr('class', css`\n --highlight-filter-id: url(${baseUrl}#${highlightFilterId}); // defining a css variable\n `)\n\n this._svgDefs.append('filter')\n .attr('id', highlightFilterId)\n .attr('filterUnits', 'objectBoundingBox')\n .html('<feColorMatrix type=\"saturate\" in=\"SourceGraphic\" values=\"1.35\"/>')\n\n if (config) {\n this.updateContainer(config, true)\n }\n\n if (data) {\n this.setData(data, true)\n }\n\n // Render if there are axes or components with data\n if (\n this.config.xAxis ||\n this.config.yAxis ||\n this.components?.some(c => c.datamodel.data)\n ) {\n this.render()\n }\n\n // Force re-render axes when fonts are loaded\n (document as any).fonts?.ready.then(() => {\n if (!this._firstRender) this._renderAxes(0)\n })\n }\n\n get components (): XYComponentCore<Datum>[] {\n return this.config.components\n }\n\n // Overriding ContainerCore default get width method to work with axis auto margin\n get width (): number {\n const margin = this._getMargin()\n return clamp(this.containerWidth - margin.left - margin.right, 0, Number.POSITIVE_INFINITY)\n }\n\n // Overriding ContainerCore default get height method to work with axis auto margin\n get height (): number {\n const margin = this._getMargin()\n\n return clamp(this.containerHeight - margin.top - margin.bottom, 0, Number.POSITIVE_INFINITY)\n }\n\n public setData (data: Datum[], preventRender?: boolean): void {\n const { components, config } = this\n if (!data) return\n this.datamodel.data = data\n\n components.forEach((c) => {\n c.setData(data)\n })\n\n config.crosshair?.setData(data)\n config.xAxis?.setData(data)\n config.yAxis?.setData(data)\n config.tooltip?.hide()\n if (!preventRender) this.render()\n }\n\n public updateContainer (containerConfig: XYContainerConfigInterface<Datum>, preventRender?: boolean): void {\n super.updateContainer(containerConfig)\n this._removeAllChildren()\n\n // If there were any new components added we need to pass them data\n this.setData(this.datamodel.data, true)\n\n // Set up the axes\n if (containerConfig.xAxis) {\n this.config.xAxis.config.type = AxisType.X\n this.element.appendChild(containerConfig.xAxis.element)\n }\n if (containerConfig.yAxis) {\n this.config.yAxis.config.type = AxisType.Y\n this.element.appendChild(containerConfig.yAxis.element)\n }\n\n // Re-insert elements to the DOM\n for (const c of this.components) {\n this.element.appendChild(c.element)\n }\n\n // Set up the tooltip\n const tooltip = containerConfig.tooltip\n if (tooltip) {\n if (!tooltip.hasContainer()) tooltip.setContainer(this._container)\n tooltip.setComponents(this.components)\n }\n\n // Set up the crosshair\n const crosshair = containerConfig.crosshair\n if (crosshair) {\n crosshair.setContainer(this.svg)\n crosshair.tooltip = tooltip\n\n this.element.appendChild(crosshair.element)\n }\n\n // Set up annotations\n const annotations = containerConfig.annotations\n if (annotations) {\n this.element.appendChild(annotations.element)\n }\n\n // Clipping path\n this.element.appendChild(this._clipPath.node())\n\n // Defs\n this.element.appendChild(this._svgDefs.node())\n\n // Rendering\n if (!preventRender) this.render()\n }\n\n public updateComponents (componentConfigs: XYConfigInterface<Datum>[], preventRender?: boolean): void {\n const { config } = this\n\n this.components.forEach((c, i) => {\n const componentConfig = componentConfigs[i]\n if (componentConfig) {\n c.setConfig(componentConfigs[i])\n }\n })\n\n this._updateScales(...this.components, config.xAxis, config.yAxis, config.crosshair)\n if (!preventRender) this.render()\n }\n\n public update (containerConfig: XYContainerConfigInterface<Datum>, componentConfigs?: XYComponentConfigInterface<Datum>[], data?: Datum[]): void {\n if (data) this.datamodel.data = data // Just updating the data model because the `updateContainer` method has the `setData` step inside\n if (containerConfig) this.updateContainer(containerConfig, true)\n if (componentConfigs) this.updateComponents(componentConfigs, true)\n this.render()\n }\n\n protected _preRender (): void {\n const { config } = this\n super._preRender()\n\n // Calculate extra margin required to fit the axes\n if (config.autoMargin) {\n this._setAutoMargin()\n }\n\n // Pass size to the components\n const components = clean([...this.components, config.xAxis, config.yAxis, config.crosshair, config.annotations])\n for (const c of components) {\n c.setSize(this.width, this.height, this.containerWidth, this.containerHeight)\n }\n\n // Update Scales of all the components at once to calculate required paddings and sync them\n this._updateScales(...this.components, config.xAxis, config.yAxis, config.crosshair)\n }\n\n protected _render (customDuration?: number): void {\n const { config } = this\n super._render()\n\n // Get chart total margin after auto margin calculations\n const margin = this._getMargin()\n\n // Render components\n for (const c of this.components) {\n c.g.attr('transform', `translate(${margin.left},${margin.top})`)\n .style('clip-path', c.clippable ? `url(#${this._clipPathId})` : null)\n .style('-webkit-clip-path', c.clippable ? `url(#${this._clipPathId})` : null)\n\n c.render(customDuration)\n }\n\n this._renderAxes(this._firstRender ? 0 : customDuration)\n\n // Clip RectsetSize\n // Extending the clipping path to allow small overflow (e.g. Line will looks better that way when it touches the edges)\n const clipPathExtension = 2\n this._clipPath.select('rect')\n .attr('x', -clipPathExtension)\n .attr('y', -clipPathExtension)\n .attr('width', this.width + 2 * clipPathExtension)\n .attr('height', this.height + 2 * clipPathExtension)\n\n // Tooltip\n config.tooltip?.update() // Re-bind events\n\n // Crosshair\n const crosshair = config.crosshair\n if (crosshair) {\n // Pass accessors\n const yAccessors = this.components.filter(c => !c.stacked).map(c => c.config.y)\n const yStackedAccessors = this.components.filter(c => c.stacked).map(c => c.config.y)\n const baselineComponentConfig = this.components.find(c => (c.config as AreaConfigInterface<Datum>).baseline)?.config as AreaConfigInterface<Datum>\n const baselineAccessor = baselineComponentConfig?.baseline\n\n crosshair.accessors = {\n x: this.components[0]?.config.x,\n y: flatten(yAccessors),\n yStacked: flatten(yStackedAccessors),\n baseline: baselineAccessor,\n }\n\n crosshair.g.attr('transform', `translate(${margin.left},${margin.top})`)\n .style('clip-path', `url(#${this._clipPathId})`)\n .style('-webkit-clip-path', `url(#${this._clipPathId})`)\n crosshair.hide()\n }\n\n config.annotations?.g.attr('transform', `translate(${margin.left},${margin.top})`)\n config.annotations?.render()\n\n this._firstRender = false\n }\n\n private _updateScales<T extends XYComponentCore<Datum>> (...components: T[]): void {\n const c = clean(components || this.components)\n this._setScales(...c)\n this._updateScalesDomain(...c)\n this._updateScalesRange(...c)\n }\n\n private _setScales<T extends XYComponentCore<Datum>> (...components: T[]): void {\n const { config } = this\n if (!components) return\n\n // Set the X and Y scales\n if (config.xScale) components.forEach(c => c.setScale(ScaleDimension.X, config.xScale))\n if (config.yScale) components.forEach(c => c.setScale(ScaleDimension.Y, config.yScale))\n }\n\n private _updateScalesDomain<T extends XYComponentCore<Datum>> (...components: T[]): void {\n const { config } = this\n if (!components) return\n\n const componentsWithDomain = components.filter(c => !c.config.excludeFromDomainCalculation)\n\n // Loop over all the dimensions\n Object.values(ScaleDimension).forEach((dimension: ScaleDimension) => {\n const [min, max] = extent(\n mergeArrays(\n componentsWithDomain.map(c => c.getDataExtent(dimension, config.scaleByDomain))\n ) as number[]\n ) // Components with undefined dimension accessors will return [undefined, undefined] but d3.extent will take care of that\n\n const configuredDomain = dimension === ScaleDimension.Y ? config.yDomain : config.xDomain\n const configuredDomainMinConstraint = dimension === ScaleDimension.Y ? config.yDomainMinConstraint : config.xDomainMinConstraint\n const configuredDomainMaxConstraint = dimension === ScaleDimension.Y ? config.yDomainMaxConstraint : config.xDomainMaxConstraint\n const domainMin = configuredDomain?.[0] ?? min ?? 0\n const domainMax = configuredDomain?.[1] ?? max ?? 1\n const domain = [\n clamp(domainMin, configuredDomainMinConstraint?.[0] ?? Number.NEGATIVE_INFINITY, configuredDomainMinConstraint?.[1] ?? Number.POSITIVE_INFINITY),\n clamp(domainMax, configuredDomainMaxConstraint?.[0] ?? Number.NEGATIVE_INFINITY, configuredDomainMaxConstraint?.[1] ?? Number.POSITIVE_INFINITY),\n ]\n\n // Extend the X and Y domains if they're empty and `preventEmptyDomain` was explicitly set to `true`\n // or just the X domain if there is no data provided and `preventEmptyDomain` set to `null`\n if (domain[0] === domain[1]) {\n const hasDataProvided = componentsWithDomain.some(c => c.datamodel.data?.length > 0)\n if (config.preventEmptyDomain || (config.preventEmptyDomain === null && (!hasDataProvided || dimension === ScaleDimension.Y))) {\n domain[1] = domain[0] + 1\n }\n }\n\n components.forEach(c => c.setScaleDomain(dimension, domain))\n })\n }\n\n private _updateScalesRange<T extends XYComponentCore<Datum>> (...components: T[]): void {\n const { config } = this\n if (!components) return\n\n // Set initial scale range\n const isYDirectionSouth = config.yDirection === Direction.South\n const xRange: [number, number] = [config.padding.left ?? 0, this.width - config.padding.right ?? 0]\n const yRange: [number, number] = [this.height - config.padding.bottom ?? 0, config.padding.top ?? 0]\n if (isYDirectionSouth) yRange.reverse()\n\n for (const c of components) {\n c.setScaleRange(ScaleDimension.X, config.xRange ?? xRange)\n c.setScaleRange(ScaleDimension.Y, config.yRange ?? yRange)\n }\n\n // Get and combine bleed\n const bleed = components.map(c => c.bleed).reduce((bleed, b) => {\n for (const key of Object.keys(bleed)) {\n const k = key as keyof Spacing\n if (bleed[k] < b[k]) bleed[k] = b[k]\n }\n return bleed\n }, { top: 0, bottom: 0, left: 0, right: 0 })\n\n // Update scale range\n for (const c of components) {\n c.setScaleRange(ScaleDimension.X, [xRange[0] + bleed.left, xRange[1] - bleed.right])\n c.setScaleRange(\n ScaleDimension.Y,\n isYDirectionSouth\n ? [yRange[0] + bleed.top, yRange[1] - bleed.bottom] // if Y axis is directed downwards\n : [yRange[0] - bleed.bottom, yRange[1] + bleed.top] // if Y axis is directed upwards\n )\n }\n }\n\n private _renderAxes (duration: number): void {\n const { config: { xAxis, yAxis } } = this\n const margin = this._getMargin()\n\n const axes = clean([xAxis, yAxis])\n axes.forEach(axis => {\n const offset = axis.getOffset(margin)\n axis.g.attr('transform', `translate(${offset.left},${offset.top})`)\n axis.render(duration)\n })\n }\n\n private _setAutoMargin (): void {\n const { config: { xAxis, yAxis } } = this\n\n // At first we need to set the domain to the scales\n const components = clean([...this.components, xAxis, yAxis])\n this._updateScalesDomain(...components)\n\n // Calculate margin required by the axes\n // We do two iterations on the first render, because the amount and size of ticks can change\n // after new margin are calculated and applied (axes dimensions will change).\n // That's needed for correct label placement.\n const numIterations = this._firstRender ? 2 : 1\n for (let i = 0; i < numIterations; i += 1) {\n const axisMargin: Spacing = { top: 0, bottom: 0, left: 0, right: 0 }\n this._updateScalesRange(...components)\n const axes = clean([xAxis, yAxis])\n axes.forEach(axis => {\n axis.preRender()\n\n const m = axis.getRequiredMargin()\n if (axisMargin.top < m.top) axisMargin.top = m.top\n if (axisMargin.bottom < m.bottom) axisMargin.bottom = m.bottom\n if (axisMargin.left < m.left) axisMargin.left = m.left\n if (axisMargin.right < m.right) axisMargin.right = m.right\n })\n this._axisMargin = axisMargin\n }\n }\n\n private _getMargin (): Spacing {\n const { config: { margin } } = this\n\n return {\n top: margin.top + this._axisMargin.top,\n bottom: margin.bottom + this._axisMargin.bottom,\n left: margin.left + this._axisMargin.left,\n right: margin.right + this._axisMargin.right,\n }\n }\n\n public destroy (): void {\n const { components, config: { tooltip, crosshair, annotations, xAxis, yAxis } } = this\n super.destroy()\n\n for (const c of components) c?.destroy()\n tooltip?.destroy()\n crosshair?.destroy()\n annotations?.destroy()\n xAxis?.destroy()\n yAxis?.destroy()\n }\n}\n"],"names":["mergeArrays"],"mappings":"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"}
|
package/index.js
CHANGED
|
@@ -34,6 +34,7 @@ export { Donut } from './components/donut/index.js';
|
|
|
34
34
|
export { FreeBrush } from './components/free-brush/index.js';
|
|
35
35
|
export { XYLabels } from './components/xy-labels/index.js';
|
|
36
36
|
export { NestedDonut } from './components/nested-donut/index.js';
|
|
37
|
+
export { Annotations } from './components/annotations/index.js';
|
|
37
38
|
export { Curve, CurveType } from './types/curve.js';
|
|
38
39
|
export { Symbol, SymbolType } from './types/symbol.js';
|
|
39
40
|
export { Scale, ScaleDimension } from './types/scale.js';
|
|
@@ -50,7 +51,7 @@ export { GraphLayoutType, GraphLinkArrowStyle, GraphLinkStyle, GraphNodeShape }
|
|
|
50
51
|
export { SankeyEnterTransitionType, SankeyExitTransitionType, SankeyLayout, SankeyNodeAlign, SankeySubLabelPlacement } from './components/sankey/types.js';
|
|
51
52
|
export { VisControlsOrientation } from './components/vis-controls/types.js';
|
|
52
53
|
export { FreeBrushMode } from './components/free-brush/types.js';
|
|
53
|
-
export { BulletShape } from './components/bullet-legend/types.js';
|
|
54
|
+
export { BulletLegendOrientation, BulletShape } from './components/bullet-legend/types.js';
|
|
54
55
|
export { XYLabelPositioning } from './components/xy-labels/types.js';
|
|
55
56
|
export { NestedDonutDirection, NestedDonutSegmentLabelAlignment } from './components/nested-donut/types.js';
|
|
56
57
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unovis/ts",
|
|
3
3
|
"description": "Modular data visualization framework for React, Angular, Svelte, and vanilla TypeScript or JavaScript",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.1-alpha.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/f5/unovis.git",
|
package/types/misc.d.ts
CHANGED
package/types/scale.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { scaleLinear, scalePow, scaleSqrt, scaleLog, scaleIdentity, scaleTime, scaleUtc, scaleSequential, scaleDiverging, scaleQuantize, scaleQuantile, scaleThreshold, scaleOrdinal, scaleBand, scalePoint, ScaleLinear, ScalePower, ScaleLogarithmic, ScaleTime } from 'd3-scale';
|
|
2
|
-
export declare type ContinuousScale = ScaleLinear<number, number> | ScalePower<number, number> | ScaleLogarithmic<number, number> | ScaleTime<number, number>;
|
|
1
|
+
import { scaleLinear, scalePow, scaleSqrt, scaleLog, scaleSymlog, scaleIdentity, scaleTime, scaleUtc, scaleSequential, scaleDiverging, scaleQuantize, scaleQuantile, scaleThreshold, scaleOrdinal, scaleBand, scalePoint, ScaleLinear, ScalePower, ScaleLogarithmic, ScaleSymLog, ScaleTime } from 'd3-scale';
|
|
2
|
+
export declare type ContinuousScale = ScaleLinear<number, number> | ScalePower<number, number> | ScaleLogarithmic<number, number> | ScaleSymLog<number, number> | ScaleTime<number, number>;
|
|
3
3
|
export declare const Scale: {
|
|
4
4
|
scaleLinear: typeof scaleLinear;
|
|
5
5
|
scalePow: typeof scalePow;
|
|
6
6
|
scaleSqrt: typeof scaleSqrt;
|
|
7
7
|
scaleLog: typeof scaleLog;
|
|
8
|
+
scaleSymlog: typeof scaleSymlog;
|
|
8
9
|
scaleIdentity: typeof scaleIdentity;
|
|
9
10
|
scaleTime: typeof scaleTime;
|
|
10
11
|
scaleUtc: typeof scaleUtc;
|
package/types/scale.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { scaleLinear, scalePow, scaleSqrt, scaleLog, scaleIdentity, scaleTime, scaleUtc, scaleSequential, scaleDiverging, scaleQuantize, scaleQuantile, scaleThreshold, scaleOrdinal, scaleBand, scalePoint } from 'd3-scale';
|
|
1
|
+
import { scaleLinear, scalePow, scaleSqrt, scaleLog, scaleSymlog, scaleIdentity, scaleTime, scaleUtc, scaleSequential, scaleDiverging, scaleQuantize, scaleQuantile, scaleThreshold, scaleOrdinal, scaleBand, scalePoint } from 'd3-scale';
|
|
2
2
|
|
|
3
3
|
const Scale = {
|
|
4
4
|
scaleLinear,
|
|
5
5
|
scalePow,
|
|
6
6
|
scaleSqrt,
|
|
7
7
|
scaleLog,
|
|
8
|
+
scaleSymlog,
|
|
8
9
|
scaleIdentity,
|
|
9
10
|
scaleTime,
|
|
10
11
|
scaleUtc,
|
package/types/scale.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scale.js","sources":["../../src/types/scale.ts"],"sourcesContent":["import {\n scaleLinear,\n scalePow,\n scaleSqrt,\n scaleLog,\n scaleIdentity,\n scaleTime,\n scaleUtc,\n scaleSequential,\n scaleDiverging,\n scaleQuantize,\n scaleQuantile,\n scaleThreshold,\n scaleOrdinal,\n scaleBand,\n scalePoint,\n ScaleLinear,\n ScalePower,\n ScaleLogarithmic,\n ScaleTime,\n} from 'd3-scale'\n// Todo Ordinal Scales: ScaleOrdinal, ScaleBand, ScalePoint, ScaleThreshold, ScaleQuantile, ScaleQuantize, ScaleDiverging, ScaleSequential\n\nexport type ContinuousScale = ScaleLinear<number, number> | ScalePower<number, number> | ScaleLogarithmic<number, number> | ScaleTime<number, number>\n\nexport const Scale = {\n scaleLinear,\n scalePow,\n scaleSqrt,\n scaleLog,\n scaleIdentity,\n scaleTime,\n scaleUtc,\n scaleSequential,\n scaleDiverging,\n scaleQuantize,\n scaleQuantile,\n scaleThreshold,\n scaleOrdinal,\n scaleBand,\n scalePoint,\n}\n\nexport enum ScaleDimension {\n X = 'x',\n Y = 'y',\n}\n"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"scale.js","sources":["../../src/types/scale.ts"],"sourcesContent":["import {\n scaleLinear,\n scalePow,\n scaleSqrt,\n scaleLog,\n scaleSymlog,\n scaleIdentity,\n scaleTime,\n scaleUtc,\n scaleSequential,\n scaleDiverging,\n scaleQuantize,\n scaleQuantile,\n scaleThreshold,\n scaleOrdinal,\n scaleBand,\n scalePoint,\n ScaleLinear,\n ScalePower,\n ScaleLogarithmic,\n ScaleSymLog,\n ScaleTime,\n} from 'd3-scale'\n// Todo Ordinal Scales: ScaleOrdinal, ScaleBand, ScalePoint, ScaleThreshold, ScaleQuantile, ScaleQuantize, ScaleDiverging, ScaleSequential\n\nexport type ContinuousScale = ScaleLinear<number, number> | ScalePower<number, number> | ScaleLogarithmic<number, number> | ScaleSymLog<number, number> | ScaleTime<number, number>\n\nexport const Scale = {\n scaleLinear,\n scalePow,\n scaleSqrt,\n scaleLog,\n scaleSymlog,\n scaleIdentity,\n scaleTime,\n scaleUtc,\n scaleSequential,\n scaleDiverging,\n scaleQuantize,\n scaleQuantile,\n scaleThreshold,\n scaleOrdinal,\n scaleBand,\n scalePoint,\n}\n\nexport enum ScaleDimension {\n X = 'x',\n Y = 'y',\n}\n"],"names":[],"mappings":";;AA2Ba,MAAA,KAAK,GAAG;IACnB,WAAW;IACX,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,WAAW;IACX,aAAa;IACb,SAAS;IACT,QAAQ;IACR,eAAe;IACf,cAAc;IACd,aAAa;IACb,aAAa;IACb,cAAc;IACd,YAAY;IACZ,SAAS;IACT,UAAU;EACX;IAEW,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,GAAA,CAAA,GAAA,GAAO,CAAA;AACP,IAAA,cAAA,CAAA,GAAA,CAAA,GAAA,GAAO,CAAA;AACT,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA;;;;"}
|
package/types.d.ts
CHANGED
package/types.js
CHANGED
|
@@ -22,9 +22,10 @@ export { GraphLayoutType, GraphLinkArrowStyle, GraphLinkStyle, GraphNodeShape }
|
|
|
22
22
|
export { SankeyEnterTransitionType, SankeyExitTransitionType, SankeyLayout, SankeyNodeAlign, SankeySubLabelPlacement } from './components/sankey/types.js';
|
|
23
23
|
export { VisControlsOrientation } from './components/vis-controls/types.js';
|
|
24
24
|
export { FreeBrushMode } from './components/free-brush/types.js';
|
|
25
|
-
export { BulletShape } from './components/bullet-legend/types.js';
|
|
25
|
+
export { BulletLegendOrientation, BulletShape } from './components/bullet-legend/types.js';
|
|
26
26
|
export { XYLabelPositioning } from './components/xy-labels/types.js';
|
|
27
27
|
export { NestedDonutDirection, NestedDonutSegmentLabelAlignment } from './components/nested-donut/types.js';
|
|
28
|
+
import './components/annotations/types.js';
|
|
28
29
|
|
|
29
30
|
/* eslint-disable max-len */
|
|
30
31
|
//# sourceMappingURL=types.js.map
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["/* eslint-disable max-len */\n// Global Types\nexport * from 'types/accessor'\nexport * from 'types/curve'\nexport * from 'types/symbol'\nexport * from 'types/scale'\nexport * from 'types/position'\nexport * from 'types/shape'\nexport * from 'types/component'\nexport * from 'types/text'\nexport * from 'types/map'\nexport * from 'types/spacing'\nexport * from 'types/graph'\nexport * from 'types/data'\nexport * from 'types/direction'\n\n// Component Types\nexport * from 'core/component/types'\nexport * from 'components/crosshair/types'\nexport * from 'components/axis/types'\nexport * from 'components/chord-diagram/types'\nexport * from 'components/topojson-map/types'\nexport * from 'components/leaflet-map/types'\nexport * from 'components/leaflet-map/renderer/map-style'\nexport * from 'components/graph/types'\nexport * from 'components/sankey/types'\nexport * from 'components/vis-controls/types'\nexport * from 'components/free-brush/types'\nexport * from 'components/bullet-legend/types'\nexport * from 'components/xy-labels/types'\nexport * from 'components/nested-donut/types'\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["/* eslint-disable max-len */\n// Global Types\nexport * from 'types/accessor'\nexport * from 'types/curve'\nexport * from 'types/symbol'\nexport * from 'types/scale'\nexport * from 'types/position'\nexport * from 'types/shape'\nexport * from 'types/component'\nexport * from 'types/text'\nexport * from 'types/map'\nexport * from 'types/spacing'\nexport * from 'types/graph'\nexport * from 'types/data'\nexport * from 'types/direction'\n\n// Component Types\nexport * from 'core/component/types'\nexport * from 'components/crosshair/types'\nexport * from 'components/axis/types'\nexport * from 'components/chord-diagram/types'\nexport * from 'components/topojson-map/types'\nexport * from 'components/leaflet-map/types'\nexport * from 'components/leaflet-map/renderer/map-style'\nexport * from 'components/graph/types'\nexport * from 'components/sankey/types'\nexport * from 'components/vis-controls/types'\nexport * from 'components/free-brush/types'\nexport * from 'components/bullet-legend/types'\nexport * from 'components/xy-labels/types'\nexport * from 'components/nested-donut/types'\nexport * from 'components/annotations/types'\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA"}
|
package/utils/data.js
CHANGED
|
@@ -269,7 +269,7 @@ function getNearest(data, value, accessor) {
|
|
|
269
269
|
function filterDataByRange(data, range, accessor) {
|
|
270
270
|
const filteredData = data.filter((d, i) => {
|
|
271
271
|
const value = getNumber(d, accessor, i);
|
|
272
|
-
return (value >= range[0]) && (value
|
|
272
|
+
return (value >= range[0]) && (value <= range[1]);
|
|
273
273
|
});
|
|
274
274
|
return filteredData;
|
|
275
275
|
}
|