@syncfusion/ej2-progressbar
Version:
Essential JS 2 ProgressBar Component
347 lines (295 loc) • 7.33 kB
TypeScript
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[];
}