@tmagic/stage 1.8.0-manmanyu.9 → 1.8.0

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/types/index.d.ts CHANGED
@@ -5,29 +5,28 @@ import Core, { Id, MApp, MContainer, MNode } from "@tmagic/core";
5
5
  import Guides, { GuidesOptions, GuidesOptions as GuidesOptions$1 } from "@scena/guides";
6
6
  import MoveableHelper from "moveable-helper";
7
7
  export * from "moveable";
8
-
9
8
  //#region temp/packages/stage/src/const.d.ts
10
9
  /** 流式布局下拖动时需要clone一个镜像节点,镜像节点的id前缀 */
11
- declare const GHOST_EL_ID_PREFIX = "ghost_el_";
10
+ export declare const GHOST_EL_ID_PREFIX = "ghost_el_";
12
11
  /** 拖动的时候需要在蒙层中创建一个占位节点,该节点的id前缀 */
13
- declare const DRAG_EL_ID_PREFIX = "drag_el_";
12
+ export declare const DRAG_EL_ID_PREFIX = "drag_el_";
14
13
  /** 高亮时需要在蒙层中创建一个占位节点,该节点的id前缀 */
15
- declare const HIGHLIGHT_EL_ID_PREFIX = "highlight_el_";
14
+ export declare const HIGHLIGHT_EL_ID_PREFIX = "highlight_el_";
16
15
  /** 闪烁提示时需要在蒙层中创建一个占位节点,该节点的id前缀 */
17
- declare const FLASH_EL_ID_PREFIX = "flash_el_";
18
- declare const CONTAINER_HIGHLIGHT_CLASS_NAME = "tmagic-stage-container-highlight";
19
- declare const PAGE_CLASS = "magic-ui-page";
16
+ export declare const FLASH_EL_ID_PREFIX = "flash_el_";
17
+ export declare const CONTAINER_HIGHLIGHT_CLASS_NAME = "tmagic-stage-container-highlight";
18
+ export declare const PAGE_CLASS = "magic-ui-page";
20
19
  /** 默认放到缩小倍数 */
21
- declare const DEFAULT_ZOOM = 1;
20
+ export declare const DEFAULT_ZOOM = 1;
22
21
  /** 参考线类型 */
23
- declare enum GuidesType {
22
+ export declare enum GuidesType {
24
23
  /** 水平 */
25
24
  HORIZONTAL = "horizontal",
26
25
  /** 垂直 */
27
26
  VERTICAL = "vertical"
28
27
  }
29
28
  /** css z-index */
30
- declare enum ZIndex {
29
+ export declare enum ZIndex {
31
30
  /** 蒙层,用于监听用户操作,需要置于顶层 */
32
31
  MASK = "99999",
33
32
  /** 选中的节点 */
@@ -37,7 +36,7 @@ declare enum ZIndex {
37
36
  HIGHLIGHT_EL = "8"
38
37
  }
39
38
  /** 鼠标按键 */
40
- declare enum MouseButton {
39
+ export declare enum MouseButton {
41
40
  /** 左键 */
42
41
  LEFT = 0,
43
42
  /** z中健 */
@@ -46,7 +45,7 @@ declare enum MouseButton {
46
45
  RIGHT = 2
47
46
  }
48
47
  /** 布局方式 */
49
- declare enum Mode {
48
+ export declare enum Mode {
50
49
  /** 绝对定位布局 */
51
50
  ABSOLUTE = "absolute",
52
51
  /** 固定定位布局 */
@@ -55,32 +54,32 @@ declare enum Mode {
55
54
  SORTABLE = "sortable"
56
55
  }
57
56
  /** 选中节点的class name */
58
- declare const SELECTED_CLASS = "tmagic-stage-selected-area";
59
- declare enum AbleActionEventType {
57
+ export declare const SELECTED_CLASS = "tmagic-stage-selected-area";
58
+ export declare enum AbleActionEventType {
60
59
  SELECT_PARENT = "select-parent",
61
60
  REMOVE = "remove",
62
61
  RERENDER = "rerender"
63
62
  }
64
63
  /** 将组件添加到容器的方式 */
65
- declare enum ContainerHighlightType {
64
+ export declare enum ContainerHighlightType {
66
65
  /** 默认方式:组件在容器上方悬停一段时间后加入 */
67
66
  DEFAULT = "default",
68
67
  /** 按住alt键,并在容器上方悬停一段时间后加入 */
69
68
  ALT = "alt"
70
69
  }
71
- declare enum RenderType {
70
+ export declare enum RenderType {
72
71
  IFRAME = "iframe",
73
72
  NATIVE = "native"
74
73
  }
75
74
  /** 选择状态 */
76
- declare enum SelectStatus {
75
+ export declare enum SelectStatus {
77
76
  /** 单选 */
78
77
  SELECT = "select",
79
78
  /** 多选 */
80
79
  MULTI_SELECT = "multiSelect"
81
80
  }
82
81
  /** 拖动状态 */
83
- declare enum StageDragStatus {
82
+ export declare enum StageDragStatus {
84
83
  /** 开始拖动 */
85
84
  START = "start",
86
85
  /** 拖动中 */
@@ -158,9 +157,9 @@ declare class DragResizeHelper {
158
157
  }
159
158
  //#endregion
160
159
  //#region temp/packages/stage/src/types.d.ts
161
- type TargetElement = HTMLElement | SVGElement;
162
- type CanSelect = (el: HTMLElement, event: MouseEvent, stop: () => boolean) => boolean | Promise<boolean>;
163
- type IsContainer = (el: HTMLElement) => boolean | Promise<boolean>;
160
+ export type TargetElement = HTMLElement | SVGElement;
161
+ export type CanSelect = (el: HTMLElement, event: MouseEvent, stop: () => boolean) => boolean | Promise<boolean>;
162
+ export type IsContainer = (el: HTMLElement) => boolean | Promise<boolean>;
164
163
  /**
165
164
  * 判断当前正在拖动的源是否可以拖入目标容器(用于画布上拖入组件时的容器高亮命中)
166
165
  * @param sourceIds 当前正在拖动的源节点 id 列表
@@ -172,21 +171,21 @@ type IsContainer = (el: HTMLElement) => boolean | Promise<boolean>;
172
171
  * - `Id`(string | number):将拖入目标重定向到该 id 对应的节点
173
172
  * - 其他(`true` / `void` / `undefined`):按命中的 targetId 正常拖入
174
173
  */
175
- type CanDropIn = (sourceIds: Id[], targetId: Id) => Id | boolean | void;
176
- type CustomizeRender = (renderer: StageCore) => Promise<HTMLElement | void> | HTMLElement | void;
177
- type CustomizeMoveableOptionsFunction = (config: CustomizeMoveableOptionsCallbackConfig) => MoveableOptions;
174
+ export type CanDropIn = (sourceIds: Id[], targetId: Id) => Id | boolean | void;
175
+ export type CustomizeRender = (renderer: StageCore) => Promise<HTMLElement | void> | HTMLElement | void;
176
+ export type CustomizeMoveableOptionsFunction = (config: CustomizeMoveableOptionsCallbackConfig) => MoveableOptions;
178
177
  /** 业务方自定义的moveableOptions,可以是配置,也可以是回调函数 */
179
- type CustomizeMoveableOptions = CustomizeMoveableOptionsFunction | MoveableOptions;
178
+ export type CustomizeMoveableOptions = CustomizeMoveableOptionsFunction | MoveableOptions;
180
179
  /** render提供给的接口,id转成el */
181
- type GetTargetElement = (id: Id) => HTMLElement | null;
180
+ export type GetTargetElement = (id: Id) => HTMLElement | null;
182
181
  /** render提供的接口,通过坐标获得坐标下所有HTML元素数组 */
183
- type GetElementsFromPoint = (point: Point) => HTMLElement[];
184
- type GetRenderDocument = () => Document | undefined;
185
- type DelayedMarkContainer = (event: MouseEvent, exclude: Element[]) => NodeJS.Timeout | undefined;
186
- type MarkContainerEnd = () => HTMLElement | null;
187
- type GetRootContainer = () => HTMLDivElement | undefined;
188
- type UpdateDragEl = (el: TargetElement, target: TargetElement, container: HTMLElement) => void;
189
- interface StageCoreConfig {
182
+ export type GetElementsFromPoint = (point: Point) => HTMLElement[];
183
+ export type GetRenderDocument = () => Document | undefined;
184
+ export type DelayedMarkContainer = (event: MouseEvent, exclude?: Element[], isAdd?: boolean) => NodeJS.Timeout | undefined;
185
+ export type MarkContainerEnd = () => HTMLElement | null;
186
+ export type GetRootContainer = () => HTMLDivElement | undefined;
187
+ export type UpdateDragEl = (el: TargetElement, target: TargetElement, container: HTMLElement) => void;
188
+ export interface StageCoreConfig {
190
189
  /** 需要对齐的dom节点的CSS选择器字符串 */
191
190
  snapElementQuerySelector?: string;
192
191
  /** 放大倍数,默认1倍 */
@@ -201,6 +200,11 @@ interface StageCoreConfig {
201
200
  containerHighlightClassName?: string;
202
201
  containerHighlightDuration?: number;
203
202
  containerHighlightType?: ContainerHighlightType;
203
+ /**
204
+ * 是否仅在新增组件(从组件列表拖入新组件)时才启用将组件拖入容器,
205
+ * 开启后在画布中拖动已有组件不会识别容器,默认 false
206
+ */
207
+ containerHighlightAddOnly?: boolean;
204
208
  moveableOptions?: CustomizeMoveableOptions;
205
209
  /** runtime 的HTML地址,可以是一个HTTP地址,如果和编辑器不同域,需要设置跨域,也可以是一个相对或绝对路径 */
206
210
  runtimeUrl?: string;
@@ -223,11 +227,13 @@ interface StageCoreConfig {
223
227
  */
224
228
  disabledFlashTip?: boolean;
225
229
  }
226
- interface ActionManagerConfig {
230
+ export interface ActionManagerConfig {
227
231
  container: HTMLElement;
228
232
  containerHighlightClassName?: string;
229
233
  containerHighlightDuration?: number;
230
234
  containerHighlightType?: ContainerHighlightType;
235
+ /** 见 StageCoreConfig.containerHighlightAddOnly */
236
+ containerHighlightAddOnly?: boolean;
231
237
  moveableOptions?: CustomizeMoveableOptions;
232
238
  disabledDragStart?: boolean;
233
239
  disabledMultiSelect?: boolean;
@@ -246,12 +252,12 @@ interface ActionManagerConfig {
246
252
  getTargetElement: GetTargetElement;
247
253
  getElementsFromPoint: GetElementsFromPoint;
248
254
  }
249
- interface MoveableOptionsManagerConfig {
255
+ export interface MoveableOptionsManagerConfig {
250
256
  container: HTMLElement;
251
257
  moveableOptions?: MoveableOptions | (() => MoveableOptions);
252
258
  getRootContainer: GetRootContainer;
253
259
  }
254
- interface CustomizeMoveableOptionsCallbackConfig {
260
+ export interface CustomizeMoveableOptionsCallbackConfig {
255
261
  targetEl: HTMLElement | null;
256
262
  targetElId?: string;
257
263
  targetEls?: HTMLElement[];
@@ -259,49 +265,49 @@ interface CustomizeMoveableOptionsCallbackConfig {
259
265
  isMulti: boolean;
260
266
  document?: Document;
261
267
  }
262
- interface StageRenderConfig {
268
+ export interface StageRenderConfig {
263
269
  runtimeUrl?: string;
264
270
  zoom: number | undefined;
265
271
  renderType?: RenderType;
266
272
  customizedRender?: () => Promise<HTMLElement | null | void>;
267
273
  }
268
- interface StageMaskConfig {
274
+ export interface StageMaskConfig {
269
275
  core: StageCore;
270
276
  }
271
- interface StageDragResizeConfig extends MoveableOptionsManagerConfig {
277
+ export interface StageDragResizeConfig extends MoveableOptionsManagerConfig {
272
278
  dragResizeHelper: DragResizeHelper;
273
279
  disabledDragStart?: boolean;
274
280
  getRenderDocument: GetRenderDocument;
275
281
  markContainerEnd: MarkContainerEnd;
276
282
  delayedMarkContainer: DelayedMarkContainer;
277
283
  }
278
- interface StageMultiDragResizeConfig extends MoveableOptionsManagerConfig {
284
+ export interface StageMultiDragResizeConfig extends MoveableOptionsManagerConfig {
279
285
  dragResizeHelper: DragResizeHelper;
280
286
  getRenderDocument: GetRenderDocument;
281
287
  markContainerEnd: MarkContainerEnd;
282
288
  delayedMarkContainer: DelayedMarkContainer;
283
289
  }
284
- interface DragResizeHelperConfig {
290
+ export interface DragResizeHelperConfig {
285
291
  container: HTMLElement;
286
292
  updateDragEl?: UpdateDragEl;
287
293
  }
288
- type Rect = {
294
+ export type Rect = {
289
295
  width: number;
290
296
  height: number;
291
297
  } & Offset;
292
- interface Offset {
298
+ export interface Offset {
293
299
  left: number;
294
300
  top: number;
295
301
  }
296
- interface Point {
302
+ export interface Point {
297
303
  clientX: number;
298
304
  clientY: number;
299
305
  }
300
- interface GuidesEventData {
306
+ export interface GuidesEventData {
301
307
  type: GuidesType;
302
308
  guides: number[];
303
309
  }
304
- interface UpdateEventData {
310
+ export interface UpdateEventData {
305
311
  data: {
306
312
  el: HTMLElement;
307
313
  style: {
@@ -318,28 +324,30 @@ interface UpdateEventData {
318
324
  }[];
319
325
  parentEl: HTMLElement | null;
320
326
  }
321
- interface RemoveEventData {
327
+ export interface RemoveEventData {
322
328
  data: {
323
329
  el: HTMLElement;
324
330
  }[];
325
331
  }
326
- interface SortEventData {
332
+ export interface SortEventData {
327
333
  src: Id;
328
334
  dist: Id;
329
335
  root?: MApp;
330
336
  }
331
- interface UpdateData {
337
+ export interface UpdateData {
332
338
  config: MNode;
333
339
  parent?: MContainer;
334
340
  parentId?: Id;
335
341
  root: MApp;
342
+ /** 插入到父节点 items 中的目标下标;runtime 优先按此同步,避免依赖选中态推算顺序 */
343
+ index?: number;
336
344
  }
337
- interface RemoveData {
345
+ export interface RemoveData {
338
346
  id: Id;
339
347
  parentId: Id;
340
348
  root: MApp;
341
349
  }
342
- interface Runtime {
350
+ export interface Runtime {
343
351
  getApp?: () => Core | undefined;
344
352
  updateRootConfig?: (config: MApp) => void;
345
353
  updatePageId?: (id: Id) => void;
@@ -350,35 +358,35 @@ interface Runtime {
350
358
  remove?: (data: RemoveData) => void;
351
359
  [key: string]: any;
352
360
  }
353
- interface Magic {
361
+ export interface Magic {
354
362
  id: string;
355
363
  /** 当前页面的根节点变化时调用该方法,编辑器会同步该el和stage的大小,该方法由stage注入到iframe.contentWindow中 */
356
364
  onPageElUpdate: (el: HTMLElement) => void;
357
365
  onRuntimeReady: (runtime: Runtime) => void;
358
366
  }
359
- interface RuntimeWindow extends Window {
367
+ export interface RuntimeWindow extends Window {
360
368
  magic: Magic;
361
369
  }
362
- interface StageHighlightConfig {
370
+ export interface StageHighlightConfig {
363
371
  container: HTMLElement;
364
372
  updateDragEl?: UpdateDragEl;
365
373
  getRootContainer: GetRootContainer;
366
374
  }
367
- interface TargetShadowConfig {
375
+ export interface TargetShadowConfig {
368
376
  container: HTMLElement;
369
377
  zIndex?: ZIndex;
370
378
  updateDragEl?: UpdateDragEl;
371
379
  idPrefix?: string;
372
380
  }
373
- interface StageFlashHighlightConfig {
381
+ export interface StageFlashHighlightConfig {
374
382
  container: HTMLElement;
375
383
  updateDragEl?: UpdateDragEl;
376
384
  }
377
- interface RuleOptions {
385
+ export interface RuleOptions {
378
386
  guidesOptions?: Partial<GuidesOptions$1>;
379
387
  disabledRule?: boolean;
380
388
  }
381
- interface CoreEvents {
389
+ export interface CoreEvents {
382
390
  mounted: [];
383
391
  'runtime-ready': [runtime: Runtime];
384
392
  'page-el-update': [el: HTMLElement];
@@ -396,19 +404,19 @@ interface CoreEvents {
396
404
  mouseleave: [event: MouseEvent];
397
405
  'drag-start': [event: OnDragStart];
398
406
  }
399
- interface RenderEvents {
407
+ export interface RenderEvents {
400
408
  onload: [];
401
409
  'page-el-update': [el: HTMLElement];
402
410
  'runtime-ready': [runtime: Runtime];
403
411
  }
404
- interface MaskEvents {
412
+ export interface MaskEvents {
405
413
  scroll: [event: WheelEvent];
406
414
  'change-guides': [data: {
407
415
  type: GuidesType.HORIZONTAL;
408
416
  guides: number[];
409
417
  }];
410
418
  }
411
- interface ActionManagerEvents {
419
+ export interface ActionManagerEvents {
412
420
  dblclick: [event: MouseEvent];
413
421
  mousemove: [event: MouseEvent];
414
422
  mouseleave: [event: MouseEvent];
@@ -427,7 +435,7 @@ interface ActionManagerEvents {
427
435
  'multi-select': [selectedElList: HTMLElement[], event: MouseEvent];
428
436
  'get-elements-from-point': [els: HTMLElement[]];
429
437
  }
430
- interface DrEvents {
438
+ export interface DrEvents {
431
439
  'update-moveable': [];
432
440
  [AbleActionEventType.REMOVE]: [];
433
441
  [AbleActionEventType.SELECT_PARENT]: [];
@@ -436,7 +444,7 @@ interface DrEvents {
436
444
  update: [data: UpdateEventData];
437
445
  sort: [data: SortEventData];
438
446
  }
439
- interface MultiDrEvents {
447
+ export interface MultiDrEvents {
440
448
  'update-moveable': [];
441
449
  'change-to-select': [id: Id, event: MouseEvent];
442
450
  update: [data: UpdateEventData];
@@ -467,6 +475,8 @@ declare class ActionManager extends EventEmitter$1 {
467
475
  private containerHighlightDuration;
468
476
  /** 将组件加入容器的操作方式 */
469
477
  private containerHighlightType?;
478
+ /** 是否仅在新增组件时才启用将组件加入容器 */
479
+ private containerHighlightAddOnly;
470
480
  private isAltKeydown;
471
481
  private getTargetElement;
472
482
  private getElementsFromPoint;
@@ -557,9 +567,10 @@ declare class ActionManager extends EventEmitter$1 {
557
567
  * 标记的作用:1、高亮容器,给用户一个加入容器的交互感知;2、释放鼠标后,通过标记的标志找到要加入的容器
558
568
  * @param event 鼠标事件
559
569
  * @param excludeElList 计算鼠标所在容器时要排除的元素列表
570
+ * @param isAdd 当前操作是否为新增组件(从组件列表拖入),开启 containerHighlightAddOnly 时只有新增才会标记
560
571
  * @returns timeoutId,调用方在鼠标移走时要取消该timeout,阻止标记
561
572
  */
562
- delayedMarkContainer(event: MouseEvent, excludeElList?: Element[]): NodeJS.Timeout | undefined;
573
+ delayedMarkContainer(event: MouseEvent, excludeElList?: Element[], isAdd?: boolean): NodeJS.Timeout | undefined;
563
574
  getDragStatus(): StageDragStatus | undefined;
564
575
  updateMoveableOptions(): void;
565
576
  destroy(): void;
@@ -575,7 +586,9 @@ declare class ActionManager extends EventEmitter$1 {
575
586
  */
576
587
  private beforeMultiSelect;
577
588
  /**
578
- * 当前状态下能否将组件加入容器,默认是鼠标悬停一段时间加入,alt模式则是按住alt+鼠标悬停一段时间加入
589
+ * 当前状态下能否将组件加入容器,默认是鼠标悬停一段时间加入,alt模式则是按住alt+鼠标悬停一段时间加入;
590
+ * 开启containerHighlightAddOnly时,画布中拖动已有组件不能加入容器
591
+ * @param isAdd 当前操作是否为新增组件
579
592
  */
580
593
  private canAddToContainer;
581
594
  /**
@@ -693,12 +706,13 @@ declare class StageMask extends Rule {
693
706
  setMode(mode: Mode): void;
694
707
  /**
695
708
  * 初始化视窗和蒙层监听,监听元素是否在视窗区域、监听mask蒙层所在的wrapper大小变化
696
- * @description 初始化视窗和蒙层监听
709
+ * @description 初始化视窗和蒙层监听;切换到新页面 DOM 时重置滚动
697
710
  * @param page 页面Dom节点
698
711
  */
699
712
  observe(page: HTMLElement): void;
700
713
  /**
701
- * 处理页面大小变更,同步页面和mask大小
714
+ * 处理页面大小变更,同步页面和 mask 大小
715
+ * @description 仅处理当前 page 且仍挂载在文档中的 entry;非当前页、已卸载或宽高为 0 的回调会被忽略
702
716
  * @param entries ResizeObserverEntry,获取页面最新大小
703
717
  */
704
718
  pageResize(entries: ResizeObserverEntry[]): void;
@@ -730,6 +744,14 @@ declare class StageMask extends Rule {
730
744
  private initObserverWrapper;
731
745
  private scroll;
732
746
  private scrollTo;
747
+ /**
748
+ * 从当前页面同步蒙层宽高,并修正滚动偏移
749
+ */
750
+ private syncPageSize;
751
+ /**
752
+ * 应用页面尺寸到蒙层;宽高为 0 时忽略,避免切换/布局过程中把 editor-mask 置空
753
+ */
754
+ private applyPageSize;
733
755
  /**
734
756
  * 设置蒙层高度
735
757
  * @param height 高度
@@ -767,12 +789,7 @@ declare class StageRender extends EventEmitter {
767
789
  private zoom;
768
790
  private renderType;
769
791
  private customizedRender?;
770
- constructor({
771
- runtimeUrl,
772
- zoom,
773
- customizedRender,
774
- renderType
775
- }: StageRenderConfig);
792
+ constructor({ runtimeUrl, zoom, customizedRender, renderType }: StageRenderConfig);
776
793
  getMagicApi: () => {
777
794
  id: string;
778
795
  onPageElUpdate: (el: HTMLElement) => void;
@@ -827,7 +844,7 @@ declare class StageRender extends EventEmitter {
827
844
  /**
828
845
  * 负责管理画布,管理renderer、mask、actionManager三个核心类,并负责统一对外通信,包括提供接口和抛事件
829
846
  */
830
- declare class StageCore extends EventEmitter {
847
+ export default class StageCore extends EventEmitter {
831
848
  container?: HTMLDivElement;
832
849
  renderer: StageRender | null;
833
850
  mask: StageMask | null;
@@ -891,9 +908,10 @@ declare class StageCore extends EventEmitter {
891
908
  * 标记的作用:1、高亮容器,给用户一个加入容器的交互感知;2、释放鼠标后,通过标记的标志找到要加入的容器
892
909
  * @param event 鼠标事件
893
910
  * @param excludeElList 计算鼠标所在容器时要排除的元素列表
911
+ * @param isAdd 当前操作是否为新增组件(从组件列表拖入),开启 containerHighlightAddOnly 时只有新增才会标记
894
912
  * @returns timeoutId,调用方在鼠标移走时要取消该timeout,阻止标记
895
913
  */
896
- delayedMarkContainer(event: MouseEvent, excludeElList?: Element[]): NodeJS.Timeout | undefined;
914
+ delayedMarkContainer(event: MouseEvent, excludeElList?: Element[], isAdd?: boolean): NodeJS.Timeout | undefined;
897
915
  getMoveableOption<K extends keyof MoveableOptions>(key: K): MoveableOptions[K] | undefined;
898
916
  getDragStatus(): import("@tmagic/editor").StageDragStatus | undefined;
899
917
  disableMultiSelect(): void;
@@ -918,6 +936,10 @@ declare class StageCore extends EventEmitter {
918
936
  * 监听页面大小变化
919
937
  */
920
938
  private observePageResize;
939
+ /**
940
+ * page-el-update 后,若当前选中节点仍在新页面文档中且需要自动滚动,则重新触发 scrollIntoView
941
+ */
942
+ private scrollSelectedIntoViewAfterPageUpdate;
921
943
  private getActionManagerConfig;
922
944
  private initRenderEvent;
923
945
  private initMaskEvent;
@@ -1080,38 +1102,43 @@ declare class StageDragResize extends MoveableOptionsManager {
1080
1102
  }
1081
1103
  //#endregion
1082
1104
  //#region temp/packages/stage/src/util.d.ts
1083
- declare const getOffset: (el: Element) => Offset;
1084
- declare const getTargetElStyle: (el: TargetElement, zIndex?: ZIndex) => string;
1085
- declare const getAbsolutePosition: (el: HTMLElement, {
1086
- top,
1087
- left
1088
- }: Offset) => {
1105
+ export declare const getOffset: (el: Element) => Offset;
1106
+ export declare const getTargetElStyle: (el: TargetElement, zIndex?: ZIndex) => string;
1107
+ export declare const getAbsolutePosition: (el: HTMLElement, { top, left }: Offset) => {
1089
1108
  left: number;
1090
1109
  top: number;
1091
1110
  };
1092
- declare const isAbsolute: (style: {
1111
+ export declare const isAbsolute: (style: {
1093
1112
  position?: string;
1094
1113
  }) => boolean;
1095
- declare const isRelative: (style: {
1114
+ export declare const isRelative: (style: {
1096
1115
  position?: string;
1097
1116
  }) => boolean;
1098
- declare const isStatic: (style: {
1117
+ export declare const isStatic: (style: {
1099
1118
  position?: string;
1100
1119
  }) => boolean;
1101
- declare const isFixed: (style: {
1120
+ export declare const isFixed: (style: {
1102
1121
  position?: string;
1103
1122
  }) => boolean;
1104
- declare const isFixedParent: (el: Element) => boolean;
1105
- declare const getMode: (el: Element) => Mode;
1106
- declare const getScrollParent: (element: HTMLElement, includeHidden?: boolean) => HTMLElement | null;
1107
- declare const removeSelectedClassName: (doc: Document) => void;
1108
- declare const addSelectedClassName: (el: Element, doc: Document) => void;
1123
+ export declare const isFixedParent: (el: Element) => boolean;
1124
+ export declare const getMode: (el: Element) => Mode;
1125
+ export declare const getScrollParent: (element: HTMLElement, includeHidden?: boolean) => HTMLElement | null;
1126
+ /**
1127
+ * 将元素滚动到指定滚动容器的可视区域内(仅垂直方向,滚动最小距离)
1128
+ * @description 与原生 scrollIntoView 不同,只滚动指定的容器自身,不会连带滚动外层祖先滚动容器,
1129
+ * 避免编辑器画布外层容器(如 stage 外层使用 transform 模拟滚动的容器)被浏览器自动滚动导致整个画布位移
1130
+ * @param el 目标元素
1131
+ * @param container 滚动容器
1132
+ */
1133
+ export declare const scrollElementIntoView: (el: Element, container: HTMLElement) => void;
1134
+ export declare const removeSelectedClassName: (doc: Document) => void;
1135
+ export declare const addSelectedClassName: (el: Element, doc: Document) => void;
1109
1136
  /**
1110
1137
  * 下移组件位置
1111
1138
  * @param {number} deltaTop 偏移量
1112
1139
  * @param {Object} detail 当前选中的组件配置
1113
1140
  */
1114
- declare const down: (deltaTop: number, target: TargetElement) => SortEventData;
1141
+ export declare const down: (deltaTop: number, target: TargetElement) => SortEventData;
1115
1142
  /**
1116
1143
  * 上移组件位置
1117
1144
  * @param {Array} brothers 处于同一容器下的所有子组件配置
@@ -1119,13 +1146,13 @@ declare const down: (deltaTop: number, target: TargetElement) => SortEventData;
1119
1146
  * @param {number} deltaTop 偏移量
1120
1147
  * @param {Object} detail 当前选中的组件配置
1121
1148
  */
1122
- declare const up: (deltaTop: number, target: TargetElement) => SortEventData;
1123
- declare const isMoveableButton: (target: Element) => boolean | undefined;
1124
- declare const getMarginValue: (el: Element) => {
1149
+ export declare const up: (deltaTop: number, target: TargetElement) => SortEventData;
1150
+ export declare const isMoveableButton: (target: Element) => boolean | undefined;
1151
+ export declare const getMarginValue: (el: Element) => {
1125
1152
  marginLeft: number;
1126
1153
  marginTop: number;
1127
1154
  };
1128
- declare const getBorderWidth: (el: Element) => {
1155
+ export declare const getBorderWidth: (el: Element) => {
1129
1156
  borderLeftWidth: number;
1130
1157
  borderRightWidth: number;
1131
1158
  borderTopWidth: number;
@@ -1133,7 +1160,7 @@ declare const getBorderWidth: (el: Element) => {
1133
1160
  };
1134
1161
  //#endregion
1135
1162
  //#region temp/packages/stage/src/MoveableActionsAble.d.ts
1136
- interface AbleCustomizedButton {
1163
+ export interface AbleCustomizedButton {
1137
1164
  props: {
1138
1165
  className?: string;
1139
1166
  onClick?(e: MouseEvent): void;
@@ -1149,4 +1176,4 @@ declare const _default: (handler: (type: AbleActionEventType) => void, customize
1149
1176
  render(moveable: MoveableManagerInterface<any, any>, React: Renderer): any;
1150
1177
  };
1151
1178
  //#endregion
1152
- export { AbleActionEventType, AbleCustomizedButton, ActionManagerConfig, ActionManagerEvents, CONTAINER_HIGHLIGHT_CLASS_NAME, CanDropIn, CanSelect, ContainerHighlightType, CoreEvents, CustomizeMoveableOptions, CustomizeMoveableOptionsCallbackConfig, CustomizeMoveableOptionsFunction, CustomizeRender, DEFAULT_ZOOM, DRAG_EL_ID_PREFIX, DelayedMarkContainer, DrEvents, DragResizeHelperConfig, FLASH_EL_ID_PREFIX, GHOST_EL_ID_PREFIX, GetElementsFromPoint, GetRenderDocument, GetRootContainer, GetTargetElement, GuidesEventData, type GuidesOptions, GuidesType, HIGHLIGHT_EL_ID_PREFIX, IsContainer, Magic, MarkContainerEnd, MaskEvents, Mode, MouseButton, _default as MoveableActionsAble, MoveableOptionsManagerConfig, MultiDrEvents, Offset, PAGE_CLASS, Point, Rect, RemoveData, RemoveEventData, RenderEvents, RenderType, RuleOptions, Runtime, RuntimeWindow, SELECTED_CLASS, SelectStatus, SortEventData, StageCoreConfig, StageDragResize, StageDragResizeConfig, StageDragStatus, StageFlashHighlightConfig, StageHighlightConfig, StageMask, StageMaskConfig, StageMultiDragResizeConfig, StageRender, StageRenderConfig, TargetElement, TargetShadowConfig, UpdateData, UpdateDragEl, UpdateEventData, ZIndex, addSelectedClassName, StageCore as default, down, getAbsolutePosition, getBorderWidth, getMarginValue, getMode, getOffset, getScrollParent, getTargetElStyle, isAbsolute, isFixed, isFixedParent, isMoveableButton, isRelative, isStatic, removeSelectedClassName, up };
1179
+ export { type GuidesOptions, _default as MoveableActionsAble, StageDragResize, StageMask, StageRender };