@rdkmaster/jigsaw-labs
Version:
Jigsaw, the next generation component set for RDK
176 lines (175 loc) • 4.76 kB
TypeScript
/**
* Created by 10177553 on 2017/4/13.
*/
import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer2 } from "@angular/core";
import { ControlValueAccessor } from "@angular/forms";
import { ArrayCollection } from "../../core/data/array-collection";
import { AbstractJigsawComponent } from "../common";
export declare class SliderMark {
value: number;
label: string;
style?: any;
}
/**
* @internal
*/
export declare class JigsawSliderHandle implements OnInit {
private _render;
private _zone;
private _value;
key: number;
value: number;
change: EventEmitter<number>;
private _valueToPos();
private _offset;
/**
* @internal
*/
_$handleStyle: {};
private setHandleStyle();
private _dragging;
transformPosToValue(pos: any): number;
/**
* 计算需要保留小数的位数
* 子级组件需要用到
* @internal
*/
_calFloat(value: number): number;
/**
* @internal
*/
_$startToDrag(): void;
globalEventMouseMove: Function;
globalEventMouseUp: Function;
_registerGlobalEvent(): void;
_destroyGlobalEvent(): void;
private _slider;
constructor(_render: Renderer2, slider: JigsawSlider, _zone: NgZone);
/**
* 改变value的值
* @internal
*/
_$updateValuePosition(event?: any): void;
ngOnInit(): void;
}
/**
* @description 滑动条组件.
*
* 何时使用
* 当用户需要在数值区间/自定义区间内进行选择时
*/
export declare class JigsawSlider extends AbstractJigsawComponent implements ControlValueAccessor, OnInit, OnDestroy {
private _element;
private _render;
private _zone;
constructor(_element: ElementRef, _render: Renderer2, _zone: NgZone);
valid: boolean;
private _sliderHandle;
/**
* @internal
*/
_$value: ArrayCollection<number>;
private _removeRefreshCallback;
/**
* slider的当前值, 类型 number | ArrayCollection<number> 支持多触点.
* @returns {any}
*/
value: number | ArrayCollection<number>;
/**
* 此函数用于ngFor比较数组的值更新视图时,使数组不管值是否相等都能够更新
* @internal
* @param index
* @param item
* @private
*/
_$trackByFun: (index: number, item: any) => number;
/**
* 设置单个的值。内部使用
* 子级组件需要用到
* @internal
*/
_updateValue(index: number, value: number): void;
/**
* 最后重新计算一下,垂直滚动条的位置
* 子级组件需要用到
* @internal
*/
_refresh(): void;
/**
* 使 value 支持双向绑定
* @type {EventEmitter<number|ArrayCollection<number>>}
*/
valueChange: EventEmitter<number | ArrayCollection<number>>;
change: EventEmitter<number | ArrayCollection<number>>;
private _min;
/**
* 可选范围的最小值
* @returns {number}
*/
min: number;
private _max;
/**
* 输入范围的可选最大值.
* @returns {number}
*/
max: number;
private _step;
/**
* 每次变化的最小值, 最小支持小数点后两位.
* @returns {number}
*/
step: number;
/**
* 子级组件需要用到
* @internal
*/
_transformValueToPos(value?: any): number;
/**
* 子级组件需要用到
* @internal
*/
_dimensions: ClientRect;
/**
* 垂直滑动条 默认 false
* @type {boolean}
*/
vertical: boolean;
/**
* 是否禁用. 数据类型 boolean, 默认false;
* @type {boolean}
*/
disabled: boolean;
/**
* @internal
*/
_$trackStyle: {};
private _setTrackStyle(value?);
/**
* @internal
*/
_$marks: any[];
private _marks;
/**
* marks 标签 使用格式为 [Object] 其中 Object 必须包含value 及label 可以有style 属性 例如: marks = [{value: 20, label: '20 ℃'},
*/
marks: SliderMark[];
private _calcMarks();
ngOnInit(): void;
private _removeResizeEvent;
private resize();
/**
* 暂没有使用场景.
*/
ngOnDestroy(): void;
/**
* 校验value的合法性. 大于最大值,取最大值, 小于最小值取最小值
* 子级组件需要用到
* @internal
*/
_verifyValue(value: number): number;
private _getRemoveRefreshCallback();
private _propagateChange;
writeValue(value: any): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
}