UNPKG

@syncfusion/ej2-progressbar

Version:
347 lines (295 loc) 7.33 kB
import { Component, Property, NotifyPropertyChanges, Browser, Complex, Event, Collection, EventHandler } from '@syncfusion/ej2-base';import { EmitType, INotifyPropertyChanged, createElement, remove, ModuleDeclaration, isNullOrUndefined } from '@syncfusion/ej2-base';import { Rect, Size, RectOption, stringToNumber } from './utils/helper';import { MarginModel, AnimationModel, FontModel, RangeColorModel, TooltipSettingsModel } from './model/progress-base-model';import { Margin, Animation, Font, RangeColor, TooltipSettings } from './model/progress-base';import { ILoadedEventArgs, IProgressStyle, IProgressValueEventArgs, ITooltipRenderEventArgs } from './model/progress-interface';import { ITextRenderEventArgs, IProgressResizeEventArgs, IMouseEventArgs } from './model/progress-interface';import { SvgRenderer, PathOption, getElement } from '@syncfusion/ej2-svg-base';import { ProgressType, CornerType, ProgressTheme, ModeType } from './utils/enum';import { getProgressThemeColor } from './utils/theme';import { lineCapRadius, completeAngle, valueChanged, progressCompleted } from './model/constant';import { mouseClick, mouseDown, mouseLeave, mouseMove, mouseUp } from './model/constant';import { ProgressAnnotation, ProgressTooltip } from './model/index';import { ProgressAnnotationSettingsModel } from './model/index';import { ProgressAnnotationSettings } from './model/index';import { Linear } from './types/linear-progress';import { Circular } from './types/circular-progress';import { ProgressAnimation } from './utils/progress-animation'; import {ComponentModel} from '@syncfusion/ej2-base'; /** * Interface for a class ProgressBar */ export interface ProgressBarModel extends ComponentModel{ /** * type of the progress bar * * @default Linear */ type?: ProgressType; /** * progress value * * @default null */ value?: number; /** * secondary progress value * * @default null */ secondaryProgress?: number; /** * Defines color for the secondary progress bar. By default, it takes the primary progress bar color with half of the opacity. * * @default '' */ secondaryProgressColor?: string; /** * Defines thickness for the secondary progress bar. By default, it takes the primary progress bar thickness. * * @default null */ secondaryProgressThickness?: number; /** * minimum progress value * * @default 0 */ minimum?: number; /** * maximum progress value * * @default 100 */ maximum?: number; /** * startAngle for circular progress bar * * @default 0 */ startAngle?: number; /** * endAngle for circular progress bar * * @default 0 */ endAngle?: number; /** * track radius for circular * * @default '100%' */ radius?: string; /** * progress radius for circular * * @default '100%' */ innerRadius?: string; /** * segmentCount of the progress bar * * @default 1 */ segmentCount?: number; /** * gapwidth of the segment * * @default null */ gapWidth?: number; /** * Segment color * * @default null */ segmentColor?: string[]; /** * corner type * * @default Auto */ cornerRadius?: CornerType; /** * height of the progress bar * * @default null */ height?: string; /** * width of the progress bar * * @default null */ width?: string; /** * Indeterminate progress * * @default false */ isIndeterminate?: boolean; /** * Active state * * @default false */ isActive?: boolean; /** * gradient * * @default false */ isGradient?: boolean; /** * striped * * @default false */ isStriped?: boolean; /** * modes of linear progress * * @default null */ role?: ModeType; /** * right to left * * @default false */ enableRtl?: boolean; /** * labelOnTrack * * @default true */ labelOnTrack?: boolean; /** * trackColor * * @default null */ trackColor?: string; /** * progressColor * * @default null */ progressColor?: string; /** * track thickness * * @default 0 */ trackThickness?: number; /** * progress thickness * * @default 0 */ progressThickness?: number; /** * pie view * * @default false */ enablePieProgress?: boolean; /** * theme style * * @default Fabric */ theme?: ProgressTheme; /** * label of the progress bar * * @default false */ showProgressValue?: boolean; /** * disable the trackSegment * * @default false */ enableProgressSegments?: boolean; /** * Option for customizing the label text. */ labelStyle?: FontModel; /** * margin size */ margin?: MarginModel; /** * Animation for the progress bar */ animation?: AnimationModel; /** * Options for customizing the tooltip of progressbar. */ tooltip?: TooltipSettingsModel; /** * Triggers before the progress bar get rendered. * * @event load */ load?: EmitType<ILoadedEventArgs>; /** * Triggers before the progress bar label renders. * * @event textRender */ textRender?: EmitType<ITextRenderEventArgs>; /** * Triggers after the progress bar has loaded. * * @event loaded */ loaded?: EmitType<ILoadedEventArgs>; /** * Triggers after the value has changed. * * @event valueChanged */ valueChanged?: EmitType<IProgressValueEventArgs>; /** * Triggers after the progress value completed. * * @event progressCompleted */ progressCompleted?: EmitType<IProgressValueEventArgs>; /** * Triggers after the animation completed. * * @event animationComplete */ animationComplete?: EmitType<IProgressValueEventArgs>; /** * Trigger after mouse click * * @event mouseClick */ mouseClick?: EmitType<IMouseEventArgs>; /** * Trigger after mouse move * * @event mouseMove */ mouseMove?: EmitType<IMouseEventArgs>; /** * Trigger after mouse up * * @event mouseUp */ mouseUp?: EmitType<IMouseEventArgs>; /** * Trigger after mouse down * * @event mouseDown */ mouseDown?: EmitType<IMouseEventArgs>; /** * Trigger after mouse down * * @event mouseLeave */ mouseLeave?: EmitType<IMouseEventArgs>; /** * Triggers before the tooltip for series is rendered. * * @event tooltipRender */ tooltipRender?: EmitType<ITooltipRenderEventArgs>; /** * The configuration for annotation in Progressbar. */ annotations?: ProgressAnnotationSettingsModel[]; /** * RangeColor in Progressbar. */ rangeColors?: RangeColorModel[]; }