import { BooleanInput } from '@angular/cdk/coercion'; import { ChangeDetectorRef, ElementRef, OnInit, TemplateRef } from '@angular/core'; import { ControlValueAccessor, NgControl } from '@angular/forms'; import { Destroy } from '@deja-js/component/core'; import { Position } from '@deja-js/component/core/graphics'; import * as i0 from "@angular/core"; export declare enum ClockwiseFactorEnum { clockwise = -1, counterClockwise = 1 } export interface ICircularValue { position: Position; value: number; } /** * Circular-picker component for Angular */ export declare class DejaCircularPickerComponent extends Destroy implements OnInit, ControlValueAccessor { private changeDetectorRef; control: NgControl; /** ClockwiseFactor allows user to choose rotation direction of picker */ clockwiseFactor: ClockwiseFactorEnum; /** Diameter of circular picker in pixels. Default 310px */ fullDiameter: number; /** Diameter of labels on circular picker */ labelsDiameter: number; /** Ranges of circular picker */ ranges: ICircularRange[]; /** Template for labels inside picker. Use it to customize labels */ labelTemplate: TemplateRef; /** template for cursor inside picker. Use it to customize labels */ cursorTemplate: TemplateRef; private picker; private _outerLabels; /** * Allows user to choose labels position. If outerLabels is true, labels will come outside the circular picker * * With outerLabels = true, and ranges.length > 1, labels will go outwards. * With outerLabels = false, and ranges.length > 1, labels will go inwards. */ set outerLabels(value: BooleanInput); get outerLabels(): BooleanInput; /** disabled property setter. Can be string or empty so you can use it like : */ set disabled(value: BooleanInput); /** To get disabled attribute. */ get disabled(): BooleanInput; private _disabled; private _value; private twoPi; private _radius; private configs; private selectedConfig; private _circularValues; private _cursor; private _cursorHand; private cursorElement; private clickedTime; get cursorHand(): { width: number; angle: number; }; get cursor(): ICircularValue; get radius(): number; get circularValues(): ICircularValue[]; /** * Constructor. * Create MouseDown & mouseMove Observables needed inside this control. */ constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, control: NgControl); /** * Init circular-picker configuration */ ngOnInit(): void; /** set accessor including call the onchange callback */ set value(v: number); /** get accessor */ get value(): number; /** From ControlValueAccessor interface */ writeValue(value: number): void; /** From ControlValueAccessor interface */ registerOnChange(fn: (_a: unknown) => void): void; /** From ControlValueAccessor interface */ registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; protected onChangeCallback: (_a: unknown) => void; protected onTouchedCallback: () => void; /** * Take a point in parameter and return corresponding value * * @param x xPos of point * @param y yPos of point * @param config config where the point is located * * @return value */ protected pointToValue(x: number, y: number, config: IConfig): number; /** * Take velue and returns its position * @param value value to check * @param radiusOffset Radius to ckeck (if outerLabels are on, the radius offset = fullDiameter + labelsDiameter) * @param config the config where to check * * @return the position of value */ protected valueToPoint(value: number, radiusOffset: number, config: IConfig): Position; private pointToAngle; private valueToAngle; private bind; private updateCursor; private getHtmlElement; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export interface IConfig { range: ICircularRange; steps: number; stepAngle: number; } export interface ICircularRange { min: number; max: number; interval?: number; labelInterval?: number; beginOffset?: number; }