sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
349 lines (319 loc) • 7.54 kB
TypeScript
declare function add(tick: () => void): void
declare interface AnimatedTarget {
target: object
index: number
total: number
}
declare type BaseValue = number | string
declare interface Between {
from: number
to: number
round: number
}
export declare function createAnimation(
target: string | unknown[] | object,
keyframes: Properties | Properties[],
options?: TweenOptions & TimelineOptions,
): {
play: () => void
pause: () => void
finish: () => void
restart: () => void
seek: (nextPosition: number) => void
progress: (p: number) => void
tick: () => void
getPosition(): number
getDuration(): number
getProgress(): number
isReverse(): boolean
add: {
(
target: string | unknown[] | object,
keyframes: Properties | Properties[],
options?: TweenOptions,
position?: number | string,
): any
(
target: string | unknown[] | object,
keyframes: Properties | Properties[],
position?: number | string,
): any
(target: TimelineEventTarget, position?: number | string): any
}
remove: (target: TimelineEventTarget) => void
clear: () => void
events: TimelineEvent[]
on: <
U extends
| 'pause'
| 'play'
| 'complete'
| 'update'
| 'begin'
| 'loopBegin'
| 'loopComplete',
>(
type: U,
callback: {
begin: () => void
loopBegin: () => void
complete: () => void
loopComplete: () => void
pause: () => void
play: () => void
update: (position: number, progress: number) => void
}[U],
) => void
off: <
U extends
| 'pause'
| 'play'
| 'complete'
| 'update'
| 'begin'
| 'loopBegin'
| 'loopComplete',
>(
type: U,
callback?:
| {
begin: () => void
loopBegin: () => void
complete: () => void
loopComplete: () => void
pause: () => void
play: () => void
update: (position: number, progress: number) => void
}[U]
| undefined,
) => void
once: <
U extends
| 'pause'
| 'play'
| 'complete'
| 'update'
| 'begin'
| 'loopBegin'
| 'loopComplete',
>(
type: U,
callback: {
begin: () => void
loopBegin: () => void
complete: () => void
loopComplete: () => void
pause: () => void
play: () => void
update: (position: number, progress: number) => void
}[U],
) => void
}
export declare function createTimeline(options?: TimelineOptions): {
play: () => void
pause: () => void
finish: () => void
restart: () => void
seek: (nextPosition: number) => void
progress: (p: number) => void
tick: () => void
getPosition(): number
getDuration(): number
getProgress(): number
isReverse(): boolean
add: {
(
target: string | unknown[] | object,
keyframes: Properties | Properties[],
options?: TweenOptions,
position?: number | string,
): any
(
target: string | unknown[] | object,
keyframes: Properties | Properties[],
position?: number | string,
): any
(target: TimelineEventTarget, position?: number | string): any
}
remove: (target: TimelineEventTarget) => void
clear: () => void
events: TimelineEvent[]
on: <
U extends
| 'pause'
| 'play'
| 'complete'
| 'update'
| 'begin'
| 'loopBegin'
| 'loopComplete',
>(
type: U,
callback: {
begin: () => void
loopBegin: () => void
complete: () => void
loopComplete: () => void
pause: () => void
play: () => void
update: (position: number, progress: number) => void
}[U],
) => void
off: <
U extends
| 'pause'
| 'play'
| 'complete'
| 'update'
| 'begin'
| 'loopBegin'
| 'loopComplete',
>(
type: U,
callback?:
| {
begin: () => void
loopBegin: () => void
complete: () => void
loopComplete: () => void
pause: () => void
play: () => void
update: (position: number, progress: number) => void
}[U]
| undefined,
) => void
once: <
U extends
| 'pause'
| 'play'
| 'complete'
| 'update'
| 'begin'
| 'loopBegin'
| 'loopComplete',
>(
type: U,
callback: {
begin: () => void
loopBegin: () => void
complete: () => void
loopComplete: () => void
pause: () => void
play: () => void
update: (position: number, progress: number) => void
}[U],
) => void
}
declare type Direction =
| 'normal'
| 'reverse'
| 'alternate'
| 'alternate-reverse'
export declare type Easing =
| keyof typeof easings
| FunctionalValue<(k: number) => number>
export declare type Easings = {
linear: (...args: any[]) => (p: number) => number
} & {
[p in EasingStuffNames as `${'easeIn' | 'easeOut' | 'easeInOut'}${p}`]: (
...args: any[]
) => (p: number) => number
}
export declare const easings: Easings
declare type EasingStuffNames =
| 'Quad'
| 'Cubic'
| 'Quart'
| 'Quint'
| 'Sine'
| 'Expo'
| 'Circ'
| 'Elastic'
| 'Back'
| 'Bounce'
declare type FunctionalValue<T> = (
target: object,
index: number,
total: number,
) => T
declare type MayFunctionValue<T> = T | FunctionalValue<T>
declare interface ObjectValue extends TweenOptions {
value: BaseValue | SpecialValue
}
export declare interface Properties {
[p: string]: Value
}
declare function remove(tick: () => void): void
declare type SingleValue = BaseValue | SpecialValue | ObjectValue
declare class SpecialValue {}
export declare const ticker: {
add: typeof add
remove: typeof remove
}
export declare type Timeline = ReturnType<typeof createTimeline>
declare interface TimelineCallbackOptions {
begin?: () => void
loopBegin?: () => void
complete?: () => void
loopComplete?: () => void
pause?: () => void
play?: () => void
update?: (position: number, progress: number) => void
}
declare interface TimelineEvent {
target: TimelineEventTarget
position: number | string
begin: number
end: number
}
declare interface TimelineEventTarget {
getDuration: () => number
seek: (position: number) => void
tweens?: Tween[]
events?: TimelineEvent[]
}
export declare interface TimelineOptions extends TimelineCallbackOptions {
externalTicker?: boolean
autoplay?: boolean
direction?: Direction
loop?: number
}
declare interface Tween<T extends {} = {}, U = {}> {
animatedTarget: AnimatedTarget & U
prop: string
duration: number
delay: number
endDelay: number
begin: number
end: number
easing: (k: number) => number
data: T
from: unknown
to: unknown
withoutFrom: boolean
round: number
unit: string
operator: string
between: Between[]
}
export declare interface TweenOptions {
duration?: number | FunctionalValue<number>
delay?: number | FunctionalValue<number>
endDelay?: number | FunctionalValue<number>
easing?: Easing
round?: number | FunctionalValue<number>
}
declare type Value = MayFunctionValue<SingleValue | SingleValue[]>
export declare function withFrom(
from: MayFunctionValue<BaseValue>,
to: MayFunctionValue<BaseValue>,
): WithFromValue
declare class WithFromValue extends SpecialValue {
from: MayFunctionValue<BaseValue>
to: MayFunctionValue<BaseValue>
constructor(
from: MayFunctionValue<BaseValue>,
to: MayFunctionValue<BaseValue>,
)
}
export {}