UNPKG

@devexperts/dxcharts-lite

Version:
79 lines (78 loc) 4.25 kB
/* * Copyright (C) 2019 - 2025 Devexperts Solutions IE Limited * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { Subject } from 'rxjs'; import { CanvasAnimation } from '../../animation/canvas-animation'; import { CanvasBoundsContainer, HitBoundsTest } from '../../canvas/canvas-bounds-container'; import { FullChartConfig } from '../../chart.config'; import { CanvasModel } from '../../model/canvas.model'; import { DrawingManager } from '../../drawers/drawing-manager'; import { ChartBaseElement } from '../../model/chart-base-element'; import { CanvasInputListenerComponent } from '../../inputlisteners/canvas-input-listener.component'; import { ChartPanComponent } from '../pan/chart-pan.component'; import { BoundsProvider } from '../../model/bounds.model'; import { HitTestCanvasModel } from '../../model/hit-test-canvas.model'; export declare const RESIZER_HIT_TEST_EXTENSION: number; /** * Bar separator between panes. * Used to resize the areas height or just draw a fixed line. * Supports hover animation. * * @doc-tags chart-core,resizer */ export declare class BarResizerComponent extends ChartBaseElement { readonly id: string; private boundsProvider; private hitTest; private dragTickCb; private dragPredicate; private chartPanComponent; private canvasModel; private drawingManager; private canvasInputListener; private canvasAnimation; private config; private canvasBoundsContainer; private hitTestCanvasModel; animationId: string; initialY: number; resizeEvent$: Subject<void>; constructor(id: string, boundsProvider: BoundsProvider, hitTest: HitBoundsTest, dragTickCb: (yDelta: number) => void, dragPredicate: () => boolean, chartPanComponent: ChartPanComponent, canvasModel: CanvasModel, drawingManager: DrawingManager, canvasInputListener: CanvasInputListenerComponent, canvasAnimation: CanvasAnimation, config: FullChartConfig, canvasBoundsContainer: CanvasBoundsContainer, hitTestCanvasModel: HitTestCanvasModel); /** * This method activates the pane resizer component. * It calls the parent class's doActivate method and then checks if the fixedMode property is set to false in the config object. * If it is false, it creates a new DragNDropYComponent and adds it to the component list. * It also adds a subscription to the canvasInputListener to observe mouse enter events and * handle hover animations if the animation is enabled in the config object. * Finally, it creates a new BarResizerDrawer and adds it to the drawing manager as a DynamicDrawerType.paneResizer with the current id. * It also adds a subscription to remove the drawer when the component is deactivated. * @protected * @returns {void} */ protected doActivate(): void; private onYDragStartMobile; private onYDragStart; private onYDragEndMobile; private onYDragEnd; private onYDragTick; /** * This method is called when the component is being deactivated. * It calls the parent method doDeactivate() and then completes the resizeEvent$ observable. * @protected * @returns {void} */ protected doDeactivate(): void; /** * This function handles the hover animation of a pane resizer. It takes a type parameter which can be either 'fading' or 'appearing'. * If the background mode is enabled, it gets the color alpha animation from the canvasAnimation and starts the color alpha animation * with the given animationId and the color and type provided in the parameter. If the background mode is not enabled, it gets the color transition * animation from the canvasAnimation and starts the color transition animation with the given animationId, startColor, endColor and type * provided in the parameter and the duration from the config. If there is an animation in progress, it reverts it. * * @param {string} type - The type of animation, can be either 'fading' or 'appearing'. * @returns {void} */ handleHoverAnimation(type: 'fading' | 'appearing'): void; }