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; 
 |