@lspriv/wx-calendar
Version:
94 lines (93 loc) • 2.69 kB
TypeScript
import { CalendarHandler, CalendarInstance } from '../interface/component';
import { Shared } from './tools';
import { View } from './constants';
import { Callable } from '../utils/shared';
declare global {
namespace WechatMiniprogram {
interface Worklet {
shared<T>(initialValue: T): Shared<T>;
timing<T>(toValue: T, options: TimingOption, callback?: (...args: any[]) => any): T;
spring<T>(toValue: T, options: SpringOption, callback?: (...args: any[]) => any): T;
delay<T>(delayMS: number, delayedAnimation: T): T;
sequence<T>(...args: Array<T>): T;
}
interface WorkletEasing {
in(easing?: Callable): any;
out(easing?: Callable): any;
inOut(easing?: Callable): any;
sin(...args: any[]): any;
bezier(x1: number, y1: number, x2: number, y2: number): any;
}
}
}
/**
* skyline渲染下的面板拖拽控制器
*/
export declare class Dragger extends CalendarHandler {
/** 保存动画id */
private _style_ids_;
/** 保存当前面板的日程样式选择器 */
private _schedule_selector_?;
constructor(instance: CalendarInstance);
/**
* 初始化动画变量
*/
private initializeShared;
/**
* 更新当前面板索引和偏移量
*/
update(): void;
/**
* 绑定动画
*/
bindAnimations(): void;
/**
* 绑定日历容器动画,主要是整体高度变化
*/
private bindContainerAnimation;
/**
* 绑定面板动画,主要是垂直方向偏移量变化
*/
private bindPanelAnimation;
/**
* 绑定地步控制条动画,主要是角度变化
*/
private bindBarAnimation;
/**
* 绑定视图控制条动画,主要是水平偏移量变化
*/
private bindViewBarAnimation;
/**
* 绑定日程动画,主要是透明度变化
*/
bindScheduleAnimation(): Promise<void>;
/**
* 清除日程动画绑定
*/
private clearScheduleAnimation;
/**
* 计算面板偏移量
* @param idx 面板索引
* @param checked 当前选中日期
*/
private calcPanelOffset;
/**
* 设置面板偏移量
*/
private setPanelTrans;
/**
* 处理拖拽结束
* @param velocity 拖拽结束时纵向速度
*/
dragout(velocity: number): Promise<View>;
/**
* 跳转到视图
* @param view 要跳转的视图
* @param animate 是否动画,默认否
*/
toView(view: View, animate?: boolean): Promise<void>;
/**
* 清除拖拽控制器实例
*/
clear(): void;
}