- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs
Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
91 lines
3.8 KiB
TypeScript
91 lines
3.8 KiB
TypeScript
import { IGroup, IShape } from '@antv/g-base';
|
||
import Button from './timeButton';
|
||
import { ExtendedShapeStyle } from './constant';
|
||
export declare const TIME_TYPE: {
|
||
SINGLE: "single";
|
||
RANGE: "range";
|
||
};
|
||
export type ControllerCfg = Partial<{
|
||
readonly group: IGroup;
|
||
/** 控制栏的起始位置以及宽高,width height 将不缩放内部子控制器,仅影响它们的位置分布。需要缩放请使用 scale */
|
||
readonly x?: number;
|
||
readonly y?: number;
|
||
readonly width: number;
|
||
readonly height: number;
|
||
/** 控制器背景的颜色和描边色 */
|
||
readonly fill?: string;
|
||
readonly stroke?: string;
|
||
/** 整个控制栏的字体样式,优先级低于各个子控制器的 text 内的 fontFamily */
|
||
readonly fontFamily?: string;
|
||
/** 控制栏缩放比例 */
|
||
readonly scale?: number;
|
||
/** 播放速度,1 个 tick 花费时间 */
|
||
readonly speed?: number;
|
||
/** 是否循环播放 */
|
||
readonly loop?: boolean;
|
||
readonly hideTimeTypeController: boolean;
|
||
/** ‘上一帧’按钮的样式,同时可以为其配置 scale、offsetX、offsetY 单独控制该控制器的缩放以及平移 */
|
||
readonly preBtnStyle?: ExtendedShapeStyle;
|
||
/** ‘下一帧’按钮的样式,同时可以为其配置 scale、offsetX、offsetY 单独控制该控制器的缩放以及平移 */
|
||
readonly nextBtnStyle?: ExtendedShapeStyle;
|
||
/** ‘播放’ 与 ‘暂停’ 按钮的样式,同时可以为其配置 scale、offsetX、offsetY 单独控制该控制器的缩放以及平移 */
|
||
readonly playBtnStyle?: ExtendedShapeStyle;
|
||
/** 控制栏背景方框的样式 */
|
||
readonly containerStyle?: ExtendedShapeStyle;
|
||
/** ‘速度控制器’ 的样式,包括速度的指针、速度指示滚轮(横线)、文本的样式,以及整个速度控制器的缩放(scale)与左右偏移(offsetX,offsetY) */
|
||
readonly speedControllerStyle?: {
|
||
offsetX?: number;
|
||
offsetY?: number;
|
||
scale?: number;
|
||
pointer?: ExtendedShapeStyle;
|
||
scroller?: ExtendedShapeStyle;
|
||
text?: ExtendedShapeStyle;
|
||
};
|
||
/** ‘播放时间类型切换器’ 的样式,包括 checkbox 的框、checkbox 的选中勾、文本的样式,以及整个播放时间类型控制器的缩放(scale)与左右偏移(offsetX,offsetY) */
|
||
readonly timeTypeControllerStyle?: {
|
||
offsetX?: number;
|
||
offsetY?: number;
|
||
scale?: number;
|
||
check?: ExtendedShapeStyle;
|
||
box?: ExtendedShapeStyle;
|
||
text?: ExtendedShapeStyle;
|
||
};
|
||
/** 播放时间类型切换器单一文本时的文本,默认为‘单一时间’ */
|
||
readonly timePointControllerText?: string;
|
||
/** 播放时间类型切换器单一文本时的文本,默认为‘时间范围’ */
|
||
readonly timeRangeControllerText?: string;
|
||
/** 时间播放类型默认值,不配置则为 'range' 即‘时间范围’ */
|
||
readonly defaultTimeType?: 'single' | 'range';
|
||
}>;
|
||
export default class ControllerBtn {
|
||
/** 是否处于播放状态 */
|
||
private isPlay;
|
||
playButton: Button;
|
||
preStepButton: IShape;
|
||
nextStepButton: IShape;
|
||
private checkedIcon;
|
||
private checkedText;
|
||
readonly controllerCfg?: ControllerCfg;
|
||
private group;
|
||
private controllerGroup;
|
||
private fontFamily;
|
||
private speedGroup;
|
||
private toggleGroup;
|
||
private speedText;
|
||
private speedPoint;
|
||
private speedAxisY;
|
||
private currentSpeed;
|
||
private currentType;
|
||
constructor(cfg: ControllerCfg);
|
||
init(): void;
|
||
/** 获取播放键 marker path */
|
||
private getNextMarkerPath;
|
||
private getPreMarkerPath;
|
||
private renderPlayButton;
|
||
private renderSpeedBtn;
|
||
private getPointerPath;
|
||
private renderToggleTime;
|
||
private bindEvent;
|
||
destroy(): void;
|
||
}
|