| import Path, { PathProps } from '../Path'; | 
| import * as roundSectorHelper from '../helper/roundSector'; | 
|   | 
| export class SectorShape { | 
|     cx = 0 | 
|     cy = 0 | 
|     r0 = 0 | 
|     r = 0 | 
|     startAngle = 0 | 
|     endAngle = Math.PI * 2 | 
|     clockwise = true | 
|     /** | 
|      * Corner radius of sector | 
|      * | 
|      * clockwise, from inside to outside, four corners are | 
|      * inner start -> inner end | 
|      * outer start -> outer end | 
|      * | 
|      * 5               => [5, 5, 5, 5] | 
|      * [5]             => [5, 5, 0, 0] | 
|      * [5, 10]         => [5, 5, 10, 10] | 
|      * [5, 10, 15]     => [5, 10, 15, 15] | 
|      * [5, 10, 15, 20] => [5, 10, 15, 20] | 
|      */ | 
|     cornerRadius: number | number[] = 0 | 
| } | 
|   | 
| export interface SectorProps extends PathProps { | 
|     shape?: Partial<SectorShape> | 
| } | 
|   | 
| class Sector extends Path<SectorProps> { | 
|   | 
|     shape: SectorShape | 
|   | 
|     constructor(opts?: SectorProps) { | 
|         super(opts); | 
|     } | 
|   | 
|     getDefaultShape() { | 
|         return new SectorShape(); | 
|     } | 
|   | 
|     buildPath(ctx: CanvasRenderingContext2D, shape: SectorShape) { | 
|         roundSectorHelper.buildPath(ctx, shape); | 
|     } | 
|   | 
|     isZeroArea() { | 
|         return this.shape.startAngle === this.shape.endAngle | 
|             || this.shape.r === this.shape.r0; | 
|     } | 
| } | 
|   | 
| Sector.prototype.type = 'sector'; | 
|   | 
| export default Sector; |