nhanh-pure-function 4.1.0 → 4.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Canvas/Axis/LayerGroup/index.d.ts +1 -1
- package/dist/Canvas/Axis/OverlayCreator/index.d.ts +3 -5
- package/dist/Canvas/Axis/OverlayGroup/billboard.d.ts +50 -0
- package/dist/Canvas/Axis/OverlayGroup/index.d.ts +5 -4
- package/dist/Canvas/Axis/common.type.d.ts +7 -0
- package/dist/Canvas/Axis/core/quikmethod.d.ts +2 -0
- package/dist/Canvas/Axis/index.d.ts +3 -0
- package/dist/Canvas/Axis/index.types.d.ts +2 -1
- package/dist/Element/Runtime/fullscreen.d.ts +48 -0
- package/dist/Element/Runtime/index.d.ts +2 -0
- package/dist/Element/index.d.ts +1 -20
- package/dist/index.cjs.js +3 -3
- package/dist/index.es.js +1049 -792
- package/package.json +1 -1
|
@@ -23,7 +23,7 @@ export default class LayerGroup extends EventController {
|
|
|
23
23
|
/** 删除图层 */
|
|
24
24
|
removeLayer(layers: Layer | Layer[]): void;
|
|
25
25
|
/** 清空图层 */
|
|
26
|
-
|
|
26
|
+
clearLayer(): void;
|
|
27
27
|
/** 收集图层的 canvas */
|
|
28
28
|
fetchCanvas(): [number, HTMLCanvasElement, [[number, number], OverlayType][]][];
|
|
29
29
|
}
|
|
@@ -24,17 +24,15 @@ export default class OverlayCreator {
|
|
|
24
24
|
*/
|
|
25
25
|
axisValueLimiter?: (value: [number, number]) => [number, number];
|
|
26
26
|
constructor(canvas: _Canvas_Axis);
|
|
27
|
-
/** 按类型开始创建:多边形或线 */
|
|
28
|
-
create(type: "polygon" | "line"): Line | Polygon | undefined;
|
|
29
27
|
/** 禁用除创建层外的其他图层群组交互,并记录原始 isInteractive 以便复原 */
|
|
30
28
|
private disableOtherLayerGroups;
|
|
31
29
|
/** 复原此前禁用的图层群组的 isInteractive */
|
|
32
30
|
private restoreLayerGroupsInteractive;
|
|
33
|
-
createLine(): Line;
|
|
34
|
-
createPolygon(): Polygon;
|
|
31
|
+
createLine(options?: ConstructorParameters<typeof _Canvas_Axis.Line>[0]): Line;
|
|
32
|
+
createPolygon(options?: ConstructorParameters<typeof _Canvas_Axis.Polygon>[0]): Polygon;
|
|
35
33
|
finish?: (overlay?: Polygon | Line) => void;
|
|
36
34
|
/** 从创建层中移除指定覆盖物,不传则清空该层全部 */
|
|
37
|
-
|
|
35
|
+
removeOverlay(overlay?: Polygon | Line): void;
|
|
38
36
|
/** 清空创建层并重置当前创建状态 */
|
|
39
37
|
clear(): void;
|
|
40
38
|
/** 销毁实例:清空覆盖物并移除所有事件监听 */
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { default as Overlay } from './public/overlay';
|
|
2
|
+
import { OverlayType } from './index';
|
|
3
|
+
import { EventHandler } from '../public/eventController';
|
|
4
|
+
import { BillboardStyleType } from '../common.type';
|
|
5
|
+
type ObjectFit = "fill" | "contain" | "cover" | "scale-down";
|
|
6
|
+
type ConstructorOption = ConstructorParameters<typeof Overlay<BillboardStyleType, [number, number][]>>[0] & {
|
|
7
|
+
url?: string;
|
|
8
|
+
objectFit?: ObjectFit;
|
|
9
|
+
};
|
|
10
|
+
declare abstract class BillboardBase extends Overlay<BillboardStyleType, [
|
|
11
|
+
number,
|
|
12
|
+
number
|
|
13
|
+
][]> {
|
|
14
|
+
private _ready;
|
|
15
|
+
get ready(): boolean;
|
|
16
|
+
set ready(value: boolean);
|
|
17
|
+
protected image: HTMLImageElement;
|
|
18
|
+
private _url?;
|
|
19
|
+
get url(): string | undefined;
|
|
20
|
+
set url(url: string | undefined);
|
|
21
|
+
private _objectFit;
|
|
22
|
+
get objectFit(): ObjectFit;
|
|
23
|
+
set objectFit(value: ObjectFit);
|
|
24
|
+
/** 当前广告牌绘制矩形(左上角坐标 + 宽高) */
|
|
25
|
+
protected get drawRect(): {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
w: number;
|
|
29
|
+
h: number;
|
|
30
|
+
sx?: number;
|
|
31
|
+
sy?: number;
|
|
32
|
+
sw?: number;
|
|
33
|
+
sh?: number;
|
|
34
|
+
};
|
|
35
|
+
private loadImage;
|
|
36
|
+
protected updateBaseData(): void;
|
|
37
|
+
}
|
|
38
|
+
export default class Billboard extends BillboardBase {
|
|
39
|
+
constructor(option: ConstructorOption);
|
|
40
|
+
defaultDragg: EventHandler<"dragg">;
|
|
41
|
+
protected updateValueScope(): void;
|
|
42
|
+
isPointInPath(x: number, y: number): boolean;
|
|
43
|
+
isPointInStroke(x: number, y: number): boolean;
|
|
44
|
+
/** 设置样式 */
|
|
45
|
+
protected setOverlayStyles(ctx: CanvasRenderingContext2D): BillboardStyleType;
|
|
46
|
+
protected get computedValueScopeStyles(): {};
|
|
47
|
+
draw(ctx: CanvasRenderingContext2D): void;
|
|
48
|
+
getDraw(): [(ctx: CanvasRenderingContext2D) => void, OverlayType] | void;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -7,8 +7,9 @@ import { default as Polygon } from './polygon';
|
|
|
7
7
|
import { default as Custom } from './custom';
|
|
8
8
|
import { default as Arc } from './arc';
|
|
9
9
|
import { default as ArcTo } from './arcTo';
|
|
10
|
+
import { default as Billboard } from './billboard';
|
|
10
11
|
type ConstructorOption = ConstructorParameters<typeof EventController>[0];
|
|
11
|
-
export type OverlayType = Text | Point | Line | Arc | ArcTo | Polygon | Custom<any>;
|
|
12
|
+
export type OverlayType = Text | Point | Line | Arc | ArcTo | Polygon | Billboard | Custom<any>;
|
|
12
13
|
export default class OverlayGroup extends EventController {
|
|
13
14
|
/** 覆盖物集合 */
|
|
14
15
|
overlays: Set<OverlayType>;
|
|
@@ -18,13 +19,13 @@ export default class OverlayGroup extends EventController {
|
|
|
18
19
|
/** 设置覆盖物重新绘制方法 */
|
|
19
20
|
setNotifyReload(notifyReload?: () => void): void;
|
|
20
21
|
/** 添加覆盖物 */
|
|
21
|
-
|
|
22
|
+
addOverlay(overlays: OverlayType[] | OverlayType): void;
|
|
22
23
|
/** 是否包含覆盖物 */
|
|
23
24
|
hasOverlay(overlay: OverlayType): boolean;
|
|
24
25
|
/** 移除覆盖物 */
|
|
25
|
-
|
|
26
|
+
removeOverlay(overlays: OverlayType[] | OverlayType): void;
|
|
26
27
|
/** 清空覆盖物 */
|
|
27
|
-
|
|
28
|
+
clearOverlay(): void;
|
|
28
29
|
/** 获取覆盖物的绘制方法 */
|
|
29
30
|
getOverlaysDrawingMethod(): [number, [(ctx: CanvasRenderingContext2D) => void, OverlayType]][];
|
|
30
31
|
}
|
|
@@ -93,6 +93,11 @@ export type PolygonStyleType = {
|
|
|
93
93
|
/** 点位样式 */
|
|
94
94
|
point: PointStyleType;
|
|
95
95
|
};
|
|
96
|
+
/** 广告牌样式 */
|
|
97
|
+
export type BillboardStyleType = {
|
|
98
|
+
/** 描边 */
|
|
99
|
+
stroke: BaseLineStyle;
|
|
100
|
+
};
|
|
96
101
|
/** 主题样式 */
|
|
97
102
|
export type StyleItemType = {
|
|
98
103
|
/** 背景色 */
|
|
@@ -111,6 +116,8 @@ export type StyleItemType = {
|
|
|
111
116
|
arcTo: ArcToStyleType;
|
|
112
117
|
/** 面样式 */
|
|
113
118
|
polygon: PolygonStyleType;
|
|
119
|
+
/** 广告牌样式 */
|
|
120
|
+
billboard: BillboardStyleType;
|
|
114
121
|
};
|
|
115
122
|
/** 主题样式 */
|
|
116
123
|
export type StyleType = Record<KnownStyleKeys, StyleItemType> & Record<string, StyleItemType>;
|
|
@@ -15,6 +15,8 @@ declare class QuickMethod_Get extends Event {
|
|
|
15
15
|
overlays_line: OverlayGroup | undefined;
|
|
16
16
|
overlays_polygon: OverlayGroup | undefined;
|
|
17
17
|
overlays_custom: OverlayGroup | undefined;
|
|
18
|
+
overlays_billboard: OverlayGroup | undefined;
|
|
19
|
+
overlays_other: OverlayGroup | undefined;
|
|
18
20
|
} | undefined;
|
|
19
21
|
/**
|
|
20
22
|
* 获取所有可见的覆盖层(Overlay)
|
|
@@ -12,6 +12,7 @@ import { default as ArcTo } from './OverlayGroup/arcTo';
|
|
|
12
12
|
import { default as OverlayCreator } from './OverlayCreator';
|
|
13
13
|
import { default as ViewFit } from './public/viewFit';
|
|
14
14
|
import { DeepArray } from './common.type';
|
|
15
|
+
import { default as Billboard } from './OverlayGroup/billboard';
|
|
15
16
|
export type * from './index.types';
|
|
16
17
|
type ConstructorOption = ConstructorParameters<typeof QuickMethod>[0] & {
|
|
17
18
|
/** 轴线显示属性 */
|
|
@@ -49,6 +50,8 @@ export declare class _Canvas_Axis extends QuickMethod {
|
|
|
49
50
|
static Arc: typeof Arc;
|
|
50
51
|
/** 圆角 */
|
|
51
52
|
static ArcTo: typeof ArcTo;
|
|
53
|
+
/** 图片 */
|
|
54
|
+
static Billboard: typeof Billboard;
|
|
52
55
|
/** 按坐标轴值创建覆盖物(多边形/线)的交互管理 */
|
|
53
56
|
overlayCreator: OverlayCreator;
|
|
54
57
|
constructor(option: ConstructorOption);
|
|
@@ -13,4 +13,5 @@ import { default as OverlayCreatorByAxisValue } from './OverlayCreator';
|
|
|
13
13
|
import { default as ViewFit } from './public/viewFit';
|
|
14
14
|
import { EventHandler } from './public/eventController';
|
|
15
15
|
import { default as Overlay } from './OverlayGroup/public/overlay';
|
|
16
|
-
|
|
16
|
+
import { default as Billboard } from './OverlayGroup/billboard';
|
|
17
|
+
export type { LayerGroup, OverlayGroup, Layer, OverlayType, Overlay, Point, Text, Line, Polygon, Axis, Custom, Arc, ArcTo, Billboard, OverlayCreatorByAxisValue, ViewFit, EventHandler, };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/** 进入全屏模式 */
|
|
2
|
+
export declare function _Element_EnterFullscreen(element?: HTMLElement | string): Promise<void>;
|
|
3
|
+
/** 退出全屏模式 */
|
|
4
|
+
export declare function _Element_ExitFullscreen(): Promise<void>;
|
|
5
|
+
/** 判断是否处于全屏模式 */
|
|
6
|
+
export declare function _Element_IsFullscreen(element?: HTMLElement | string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* 返回一个用于切换全屏模式的函数
|
|
9
|
+
* @param {HTMLElement} content - 需要进入全屏的元素
|
|
10
|
+
* 该函数通过检查不同浏览器的特定方法来实现全屏切换
|
|
11
|
+
*/
|
|
12
|
+
export declare function _Element_Fullscreen(element?: HTMLElement | string): (() => void) | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* 元素全屏状态观察器
|
|
15
|
+
* 监听元素的全屏状态变化,并通过回调函数通知状态改变
|
|
16
|
+
* @param notify - 全屏状态变化回调函数,接收一个布尔值参数表示当前是否为全屏状态
|
|
17
|
+
* @param selectors - 要观察的元素或元素选择器,默认为document.documentElement
|
|
18
|
+
* @returns 返回一个清理函数,调用后可移除所有事件监听器
|
|
19
|
+
*/
|
|
20
|
+
export declare function _Element_FullscreenObserver(notify: (isFull: boolean) => void, selectors?: HTMLElement | string): (() => void) | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* 全屏控制:绑定目标元素,提供进入 / 退出 / 切换;在 document 上监听各厂商全屏事件并回调当前是否以该元素全屏。
|
|
23
|
+
* 构造时即注册监听;务必在不再使用时调用 {@link destroy},避免泄漏。
|
|
24
|
+
*/
|
|
25
|
+
export declare class _Element_FullscreenController {
|
|
26
|
+
/** 要全屏展示的目标元素 */
|
|
27
|
+
private targetElement?;
|
|
28
|
+
/**
|
|
29
|
+
* 全屏状态变化回调。参数为 `true` 表示当前全屏元素为本实例的目标元素。
|
|
30
|
+
*/
|
|
31
|
+
onFullscreenChange?: (isFullscreen: boolean) => void;
|
|
32
|
+
/** 解除 {@link attachFullscreenChangeListeners} 注册的 document 监听 */
|
|
33
|
+
private detachFullscreenListeners?;
|
|
34
|
+
constructor(targetOrSelector?: HTMLElement | string, onFullscreenChange?: (isFullscreen: boolean) => void);
|
|
35
|
+
/**
|
|
36
|
+
* 设置或更新目标元素(`HTMLElement` 或 CSS 选择器;未传时内部会回退到 `document.documentElement`)
|
|
37
|
+
*/
|
|
38
|
+
init(targetOrSelector?: HTMLElement | string): void;
|
|
39
|
+
/** 使目标元素进入浏览器全屏 */
|
|
40
|
+
enter(): void;
|
|
41
|
+
/** 退出浏览器全屏(不区分由哪个元素进入) */
|
|
42
|
+
exit(): void;
|
|
43
|
+
/** 若当前已为该目标全屏则退出,否则进入全屏 */
|
|
44
|
+
toggle(): void;
|
|
45
|
+
private attachFullscreenChangeListeners;
|
|
46
|
+
/** 移除全屏事件监听,实例不应再使用 */
|
|
47
|
+
destroy(): void;
|
|
48
|
+
}
|
package/dist/Element/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DragOption, LocalDragOptions, UiLibrary } from './type';
|
|
2
|
+
export * from './Runtime';
|
|
2
3
|
/**
|
|
3
4
|
* 滚动结束监听器
|
|
4
5
|
* @param {(trigger: "vertical" | "horizontal") => void} callback
|
|
@@ -47,26 +48,6 @@ export declare class _Element_LocalDrag {
|
|
|
47
48
|
mousemove(event: Event): void;
|
|
48
49
|
mouseup(): void;
|
|
49
50
|
}
|
|
50
|
-
/** 进入全屏模式 */
|
|
51
|
-
export declare function _Element_EnterFullscreen(element?: HTMLElement | string): Promise<void>;
|
|
52
|
-
/** 退出全屏模式 */
|
|
53
|
-
export declare function _Element_ExitFullscreen(): Promise<void>;
|
|
54
|
-
/** 判断是否处于全屏模式 */
|
|
55
|
-
export declare function _Element_IsFullscreen(element?: HTMLElement | string): boolean;
|
|
56
|
-
/**
|
|
57
|
-
* 返回一个用于切换全屏模式的函数
|
|
58
|
-
* @param {HTMLElement} content - 需要进入全屏的元素
|
|
59
|
-
* 该函数通过检查不同浏览器的特定方法来实现全屏切换
|
|
60
|
-
*/
|
|
61
|
-
export declare function _Element_Fullscreen(element?: HTMLElement | string): (() => void) | undefined;
|
|
62
|
-
/**
|
|
63
|
-
* 元素全屏状态观察器
|
|
64
|
-
* 监听元素的全屏状态变化,并通过回调函数通知状态改变
|
|
65
|
-
* @param notify - 全屏状态变化回调函数,接收一个布尔值参数表示当前是否为全屏状态
|
|
66
|
-
* @param selectors - 要观察的元素或元素选择器,默认为document.documentElement
|
|
67
|
-
* @returns 返回一个清理函数,调用后可移除所有事件监听器
|
|
68
|
-
*/
|
|
69
|
-
export declare function _Element_FullscreenObserver(notify: (isFull: boolean) => void, selectors?: HTMLElement | string): (() => void) | undefined;
|
|
70
51
|
/**
|
|
71
52
|
* 单位转换 12** -> **px
|
|
72
53
|
* @param {string} width
|