@idraw/core 0.4.2 → 1.0.0-alpha.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.
Files changed (149) hide show
  1. package/dist/esm/board/index.d.ts +2 -2
  2. package/dist/esm/board/index.js +23 -12
  3. package/dist/esm/board/sharer.d.ts +3 -3
  4. package/dist/esm/board/sharer.js +10 -10
  5. package/dist/esm/board/viewer.d.ts +3 -3
  6. package/dist/esm/board/viewer.js +14 -14
  7. package/dist/esm/board/watcher.d.ts +3 -3
  8. package/dist/esm/board/watcher.js +68 -43
  9. package/dist/esm/core.d.ts +52 -0
  10. package/dist/esm/core.js +393 -0
  11. package/dist/esm/cursor/cursor-image.d.ts +2 -0
  12. package/dist/esm/cursor/cursor-image.js +2 -0
  13. package/dist/esm/cursor/cursor.js +60 -24
  14. package/dist/esm/index.d.ts +12 -61
  15. package/dist/esm/index.js +11 -389
  16. package/dist/esm/middlewares/common.d.ts +4 -0
  17. package/dist/esm/middlewares/common.js +13 -0
  18. package/dist/esm/middlewares/creator/dom.d.ts +11 -0
  19. package/dist/esm/middlewares/creator/dom.js +52 -0
  20. package/dist/esm/middlewares/creator/index.d.ts +5 -0
  21. package/dist/esm/middlewares/creator/index.js +136 -0
  22. package/dist/esm/middlewares/creator/static.d.ts +14 -0
  23. package/dist/esm/middlewares/creator/static.js +19 -0
  24. package/dist/esm/middlewares/creator/styles.d.ts +4 -0
  25. package/dist/esm/middlewares/creator/styles.js +32 -0
  26. package/dist/esm/middlewares/creator/types.d.ts +7 -0
  27. package/dist/esm/middlewares/creator/types.js +1 -0
  28. package/dist/esm/middlewares/creator/util.d.ts +10 -0
  29. package/dist/esm/middlewares/creator/util.js +52 -0
  30. package/dist/esm/middlewares/dragger/index.js +5 -5
  31. package/dist/esm/middlewares/info/draw-info.d.ts +11 -11
  32. package/dist/esm/middlewares/info/draw-info.js +18 -18
  33. package/dist/esm/middlewares/info/index.d.ts +2 -1
  34. package/dist/esm/middlewares/info/index.js +48 -51
  35. package/dist/esm/middlewares/info/static.d.ts +6 -0
  36. package/dist/esm/middlewares/info/{config.js → static.js} +6 -1
  37. package/dist/esm/middlewares/info/types.d.ts +2 -2
  38. package/dist/esm/middlewares/layout-selector/dom.d.ts +10 -0
  39. package/dist/esm/middlewares/layout-selector/dom.js +108 -0
  40. package/dist/esm/middlewares/layout-selector/index.d.ts +1 -1
  41. package/dist/esm/middlewares/layout-selector/index.js +89 -141
  42. package/dist/esm/middlewares/layout-selector/static.d.ts +32 -0
  43. package/dist/esm/middlewares/layout-selector/static.js +39 -0
  44. package/dist/esm/middlewares/layout-selector/styles.d.ts +4 -0
  45. package/dist/esm/middlewares/layout-selector/styles.js +127 -0
  46. package/dist/esm/middlewares/layout-selector/types.d.ts +6 -6
  47. package/dist/esm/middlewares/layout-selector/types.js +2 -2
  48. package/dist/esm/middlewares/layout-selector/util.d.ts +4 -4
  49. package/dist/esm/middlewares/layout-selector/util.js +19 -19
  50. package/dist/esm/middlewares/path-creator/dom.d.ts +29 -0
  51. package/dist/esm/middlewares/path-creator/dom.js +145 -0
  52. package/dist/esm/middlewares/path-creator/index.d.ts +5 -0
  53. package/dist/esm/middlewares/path-creator/index.js +203 -0
  54. package/dist/esm/middlewares/path-creator/static.d.ts +23 -0
  55. package/dist/esm/middlewares/path-creator/static.js +49 -0
  56. package/dist/esm/middlewares/path-creator/types.d.ts +1 -0
  57. package/dist/esm/middlewares/path-editor/calc.d.ts +6 -0
  58. package/dist/esm/middlewares/path-editor/calc.js +51 -0
  59. package/dist/esm/middlewares/path-editor/dom.d.ts +32 -0
  60. package/dist/esm/middlewares/path-editor/dom.js +575 -0
  61. package/dist/esm/middlewares/path-editor/draw.d.ts +7 -0
  62. package/dist/esm/middlewares/path-editor/draw.js +113 -0
  63. package/dist/esm/middlewares/path-editor/index.d.ts +5 -0
  64. package/dist/esm/middlewares/path-editor/index.js +312 -0
  65. package/dist/esm/middlewares/path-editor/parse.d.ts +5 -0
  66. package/dist/esm/middlewares/path-editor/parse.js +37 -0
  67. package/dist/esm/middlewares/path-editor/static.d.ts +34 -0
  68. package/dist/esm/middlewares/path-editor/static.js +82 -0
  69. package/dist/esm/middlewares/path-editor/types.d.ts +26 -0
  70. package/dist/esm/middlewares/path-editor/types.js +1 -0
  71. package/dist/esm/middlewares/path-editor/util.d.ts +5 -0
  72. package/dist/esm/middlewares/path-editor/util.js +21 -0
  73. package/dist/esm/middlewares/pointer/index.js +5 -5
  74. package/dist/esm/middlewares/pointer/types.d.ts +2 -2
  75. package/dist/esm/middlewares/ruler/index.d.ts +2 -0
  76. package/dist/esm/middlewares/ruler/index.js +12 -19
  77. package/dist/esm/middlewares/ruler/static.d.ts +8 -0
  78. package/dist/esm/middlewares/ruler/{config.js → static.js} +16 -3
  79. package/dist/esm/middlewares/ruler/types.d.ts +2 -2
  80. package/dist/esm/middlewares/ruler/util.d.ts +6 -6
  81. package/dist/esm/middlewares/ruler/util.js +31 -31
  82. package/dist/esm/middlewares/scaler/index.js +2 -2
  83. package/dist/esm/middlewares/scroller/dom.d.ts +14 -0
  84. package/dist/esm/middlewares/scroller/dom.js +53 -0
  85. package/dist/esm/middlewares/scroller/index.d.ts +2 -0
  86. package/dist/esm/middlewares/scroller/index.js +111 -46
  87. package/dist/esm/middlewares/scroller/static.d.ts +21 -0
  88. package/dist/esm/middlewares/scroller/static.js +29 -0
  89. package/dist/esm/middlewares/scroller/styles.d.ts +4 -0
  90. package/dist/esm/middlewares/scroller/styles.js +73 -0
  91. package/dist/esm/middlewares/scroller/types.d.ts +8 -6
  92. package/dist/esm/middlewares/scroller/types.js +1 -1
  93. package/dist/esm/middlewares/scroller/util.d.ts +6 -13
  94. package/dist/esm/middlewares/scroller/util.js +15 -144
  95. package/dist/esm/middlewares/selector/dom.d.ts +21 -0
  96. package/dist/esm/middlewares/selector/dom.js +395 -0
  97. package/dist/esm/middlewares/selector/draw-base.d.ts +9 -21
  98. package/dist/esm/middlewares/selector/draw-base.js +19 -43
  99. package/dist/esm/middlewares/selector/draw-reference.d.ts +4 -5
  100. package/dist/esm/middlewares/selector/draw-reference.js +5 -5
  101. package/dist/esm/middlewares/selector/index.d.ts +4 -2
  102. package/dist/esm/middlewares/selector/index.js +315 -439
  103. package/dist/esm/middlewares/selector/reference.d.ts +5 -5
  104. package/dist/esm/middlewares/selector/reference.js +36 -30
  105. package/dist/esm/middlewares/selector/render-frame.d.ts +11 -0
  106. package/dist/esm/middlewares/selector/render-frame.js +107 -0
  107. package/dist/esm/middlewares/selector/resize.d.ts +7 -0
  108. package/dist/esm/middlewares/selector/resize.js +27 -0
  109. package/dist/esm/middlewares/selector/static.d.ts +67 -0
  110. package/dist/esm/middlewares/selector/static.js +92 -0
  111. package/dist/esm/middlewares/selector/styles.d.ts +4 -0
  112. package/dist/esm/middlewares/selector/styles.js +153 -0
  113. package/dist/esm/middlewares/selector/types.d.ts +27 -27
  114. package/dist/esm/middlewares/selector/types.js +1 -1
  115. package/dist/esm/middlewares/selector/util.d.ts +22 -32
  116. package/dist/esm/middlewares/selector/util.js +226 -243
  117. package/dist/esm/middlewares/text-editor/dom.d.ts +5 -0
  118. package/dist/esm/middlewares/text-editor/dom.js +135 -0
  119. package/dist/esm/middlewares/text-editor/index.d.ts +5 -20
  120. package/dist/esm/middlewares/text-editor/index.js +201 -207
  121. package/dist/esm/middlewares/text-editor/static.d.ts +10 -0
  122. package/dist/esm/middlewares/text-editor/static.js +17 -0
  123. package/dist/esm/middlewares/text-editor/types.d.ts +21 -0
  124. package/dist/esm/middlewares/text-editor/types.js +1 -0
  125. package/dist/esm/record.d.ts +5 -5
  126. package/dist/esm/record.js +14 -14
  127. package/dist/esm/{config.d.ts → static.d.ts} +16 -0
  128. package/dist/esm/{config.js → static.js} +18 -2
  129. package/dist/index.global.js +8934 -5646
  130. package/dist/index.global.min.js +1 -1
  131. package/package.json +4 -4
  132. package/dist/esm/middlewares/info/config.d.ts +0 -5
  133. package/dist/esm/middlewares/layout-selector/config.d.ts +0 -11
  134. package/dist/esm/middlewares/layout-selector/config.js +0 -12
  135. package/dist/esm/middlewares/ruler/config.d.ts +0 -7
  136. package/dist/esm/middlewares/scroller/config.d.ts +0 -10
  137. package/dist/esm/middlewares/scroller/config.js +0 -16
  138. package/dist/esm/middlewares/selector/config.d.ts +0 -30
  139. package/dist/esm/middlewares/selector/config.js +0 -38
  140. package/dist/esm/middlewares/selector/draw-auxiliary.js +0 -12
  141. package/dist/esm/middlewares/selector/draw-debug.d.ts +0 -5
  142. package/dist/esm/middlewares/selector/draw-debug.js +0 -30
  143. package/dist/esm/middlewares/selector/draw-wrapper.d.ts +0 -37
  144. package/dist/esm/middlewares/selector/draw-wrapper.js +0 -139
  145. package/dist/esm/middlewares/selector/pattern/icon-rotate.d.ts +0 -4
  146. package/dist/esm/middlewares/selector/pattern/icon-rotate.js +0 -88
  147. package/dist/esm/middlewares/selector/pattern/index.d.ts +0 -8
  148. package/dist/esm/middlewares/selector/pattern/index.js +0 -38
  149. /package/dist/esm/middlewares/{selector/draw-auxiliary.d.ts → path-creator/types.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { Renderer, Calculator } from '@idraw/renderer';
2
2
  import { EventEmitter } from '@idraw/util';
3
- import type { Data, BoardOptions, BoardMiddleware, ViewSizeInfo, PointSize, BoardExtendEventMap } from '@idraw/types';
3
+ import type { Data, BoardOptions, BoardMiddleware, ViewSizeInfo, Point, BoardExtendEventMap } from '@idraw/types';
4
4
  import { Sharer } from './sharer';
5
5
  import { Viewer } from './viewer';
6
6
  export declare class Board<T extends BoardExtendEventMap = BoardExtendEventMap> {
@@ -20,7 +20,7 @@ export declare class Board<T extends BoardExtendEventMap = BoardExtendEventMap>
20
20
  resetMiddlewareConfig<C extends any = any>(middleware: BoardMiddleware<any, any, any>, config?: Partial<C>): void;
21
21
  scale(opts: {
22
22
  scale: number;
23
- point: PointSize;
23
+ point: Point;
24
24
  ignoreUpdateVisibleStatus?: boolean;
25
25
  }): void;
26
26
  scroll(opts: {
@@ -9,9 +9,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _Board_instances, _Board_opts, _Board_middlewareMap, _Board_activeMiddlewareObjs, _Board_watcher, _Board_renderer, _Board_sharer, _Board_viewer, _Board_calculator, _Board_eventHub, _Board_hasDestroyed, _Board_init, _Board_handlePointStart, _Board_handlePointEnd, _Board_handlePointMove, _Board_handlePointLeave, _Board_handleHover, _Board_handleDoubleClick, _Board_handleContextMenu, _Board_handleWheel, _Board_handleWheelScale, _Board_handleScrollX, _Board_handleScrollY, _Board_handleResize, _Board_handleClear, _Board_handleBeforeDrawFrame, _Board_handleAfterDrawFrame, _Board_resetActiveMiddlewareObjs;
12
+ var _Board_instances, _Board_opts, _Board_middlewareMap, _Board_activeMiddlewareObjs, _Board_watcher, _Board_renderer, _Board_sharer, _Board_viewer, _Board_calculator, _Board_eventHub, _Board_hasDestroyed, _Board_init, _Board_handlePointStart, _Board_handlePointEnd, _Board_handlePointMove, _Board_handlePointLeave, _Board_handleHover, _Board_handleClick, _Board_handleDoubleClick, _Board_handleContextMenu, _Board_handleWheel, _Board_handleWheelScale, _Board_handleScrollX, _Board_handleScrollY, _Board_handleResize, _Board_handleClear, _Board_handleBeforeDrawFrame, _Board_handleAfterDrawFrame, _Board_resetActiveMiddlewareObjs;
13
13
  import { Renderer, Calculator } from '@idraw/renderer';
14
- import { calcElementsContextSize, EventEmitter } from '@idraw/util';
14
+ import { calcMaterialsContextSize, EventEmitter, } from '@idraw/util';
15
15
  import { BoardWatcher } from './watcher';
16
16
  import { Sharer } from './sharer';
17
17
  import { Viewer } from './viewer';
@@ -28,17 +28,18 @@ export class Board {
28
28
  _Board_calculator.set(this, void 0);
29
29
  _Board_eventHub.set(this, new EventEmitter());
30
30
  _Board_hasDestroyed.set(this, false);
31
- const { boardContent } = opts;
31
+ const { boardContent, container } = opts;
32
32
  const sharer = new Sharer();
33
33
  const watcher = new BoardWatcher({
34
34
  boardContent,
35
35
  sharer,
36
- disabled: opts === null || opts === void 0 ? void 0 : opts.disableWatcher
36
+ disabled: opts === null || opts === void 0 ? void 0 : opts.disableWatcher,
37
+ container,
37
38
  });
38
39
  const renderer = new Renderer({
39
40
  viewContext: boardContent.viewContext,
40
41
  tempContext: boardContent.tempContext,
41
- sharer
42
+ sharer,
42
43
  });
43
44
  const calculator = renderer.getCalculator();
44
45
  __classPrivateFieldSet(this, _Board_opts, opts, "f");
@@ -56,7 +57,7 @@ export class Board {
56
57
  },
57
58
  afterDrawFrame: (e) => {
58
59
  __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleAfterDrawFrame).call(this, e);
59
- }
60
+ },
60
61
  }), "f");
61
62
  __classPrivateFieldGet(this, _Board_instances, "m", _Board_init).call(this);
62
63
  __classPrivateFieldGet(this, _Board_instances, "m", _Board_resetActiveMiddlewareObjs).call(this);
@@ -85,14 +86,14 @@ export class Board {
85
86
  __classPrivateFieldGet(this, _Board_sharer, "f").setActiveStorage('data', data);
86
87
  const viewSizeInfo = sharer.getActiveViewSizeInfo();
87
88
  const viewScaleInfo = sharer.getActiveViewScaleInfo();
88
- const newViewContextSize = calcElementsContextSize(data.elements, {
89
+ const newViewContextSize = calcMaterialsContextSize(data.materials, {
89
90
  viewWidth: viewSizeInfo.width,
90
91
  viewHeight: viewSizeInfo.height,
91
- extend: true
92
+ extend: true,
92
93
  });
93
- __classPrivateFieldGet(this, _Board_viewer, "f").resetVirtualFlatItemMap(data, {
94
+ __classPrivateFieldGet(this, _Board_viewer, "f").resetVirtualItemMap(data, {
94
95
  viewSizeInfo,
95
- viewScaleInfo
96
+ viewScaleInfo,
96
97
  });
97
98
  __classPrivateFieldGet(this, _Board_viewer, "f").drawFrame();
98
99
  const newViewSizeInfo = Object.assign(Object.assign({}, viewSizeInfo), newViewContextSize);
@@ -124,7 +125,7 @@ export class Board {
124
125
  __classPrivateFieldGet(this, _Board_middlewareMap, "f").set(middleware, {
125
126
  status: 'enable',
126
127
  middlewareObject: obj,
127
- config
128
+ config,
128
129
  });
129
130
  __classPrivateFieldGet(this, _Board_instances, "m", _Board_resetActiveMiddlewareObjs).call(this);
130
131
  }
@@ -153,7 +154,7 @@ export class Board {
153
154
  const viewer = __classPrivateFieldGet(this, _Board_viewer, "f");
154
155
  const { ignoreUpdateVisibleStatus } = opts;
155
156
  const { moveX, moveY } = viewer.scale(Object.assign(Object.assign({}, opts), {
156
- ignoreUpdateVisibleStatus: true
157
+ ignoreUpdateVisibleStatus: true,
157
158
  }));
158
159
  viewer.scroll({ moveX, moveY, ignoreUpdateVisibleStatus });
159
160
  }
@@ -214,6 +215,7 @@ _Board_opts = new WeakMap(), _Board_middlewareMap = new WeakMap(), _Board_active
214
215
  __classPrivateFieldGet(this, _Board_watcher, "f").on('scrollX', __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleScrollX).bind(this));
215
216
  __classPrivateFieldGet(this, _Board_watcher, "f").on('scrollY', __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleScrollY).bind(this));
216
217
  __classPrivateFieldGet(this, _Board_watcher, "f").on('resize', __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleResize).bind(this));
218
+ __classPrivateFieldGet(this, _Board_watcher, "f").on('click', __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleClick).bind(this));
217
219
  __classPrivateFieldGet(this, _Board_watcher, "f").on('doubleClick', __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleDoubleClick).bind(this));
218
220
  __classPrivateFieldGet(this, _Board_watcher, "f").on('contextMenu', __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleContextMenu).bind(this));
219
221
  }
@@ -265,6 +267,15 @@ _Board_opts = new WeakMap(), _Board_middlewareMap = new WeakMap(), _Board_active
265
267
  return;
266
268
  }
267
269
  }
270
+ }, _Board_handleClick = function _Board_handleClick(e) {
271
+ var _a;
272
+ for (let i = 0; i < __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f").length; i++) {
273
+ const obj = __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f")[i];
274
+ const result = (_a = obj === null || obj === void 0 ? void 0 : obj.click) === null || _a === void 0 ? void 0 : _a.call(obj, e);
275
+ if (result === false) {
276
+ return;
277
+ }
278
+ }
268
279
  }, _Board_handleDoubleClick = function _Board_handleDoubleClick(e) {
269
280
  var _a;
270
281
  for (let i = 0; i < __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f").length; i++) {
@@ -1,4 +1,4 @@
1
- import type { ActiveStore, Element, ElementDetailMap, RecursivePartial, StoreSharer, ViewScaleInfo, ViewSizeInfo } from '@idraw/types';
1
+ import type { ActiveStore, Material, RecursivePartial, StoreSharer, ViewScaleInfo, ViewSizeInfo } from '@idraw/types';
2
2
  export declare class Sharer implements StoreSharer<Record<string | number | symbol | any, any>> {
3
3
  #private;
4
4
  constructor();
@@ -16,6 +16,6 @@ export declare class Sharer implements StoreSharer<Record<string | number | symb
16
16
  setActiveViewScaleInfo(viewScaleInfo: ViewScaleInfo): void;
17
17
  setActiveViewSizeInfo(size: ViewSizeInfo): void;
18
18
  getActiveViewSizeInfo(): ViewSizeInfo;
19
- getActiveOverrideElemenentMap(): Record<string, RecursivePartial<Element<keyof ElementDetailMap, Record<string, any>>>> | null;
20
- setActiveOverrideElemenentMap(map: Record<string, RecursivePartial<Element<keyof ElementDetailMap, Record<string, any>>>> | null): void;
19
+ getActiveOverrideMaterialMap(): Record<string, RecursivePartial<Material>> | null;
20
+ setActiveOverrideMaterialMap(map: Record<string, RecursivePartial<Material>> | null): void;
21
21
  }
@@ -17,23 +17,23 @@ const defaultActiveStorage = {
17
17
  devicePixelRatio: 1,
18
18
  contextWidth: 0,
19
19
  contextHeight: 0,
20
- data: null,
20
+ data: { materials: [] },
21
21
  scale: 1,
22
22
  offsetLeft: 0,
23
23
  offsetRight: 0,
24
24
  offsetTop: 0,
25
25
  offsetBottom: 0,
26
- overrideElementMap: null
26
+ overrideMaterialMap: null,
27
27
  };
28
28
  export class Sharer {
29
29
  constructor() {
30
30
  _Sharer_activeStore.set(this, void 0);
31
31
  _Sharer_sharedStore.set(this, void 0);
32
32
  const activeStore = new Store({
33
- defaultStorage: defaultActiveStorage
33
+ defaultStorage: defaultActiveStorage,
34
34
  });
35
35
  const sharedStore = new Store({
36
- defaultStorage: {}
36
+ defaultStorage: {},
37
37
  });
38
38
  __classPrivateFieldSet(this, _Sharer_activeStore, activeStore, "f");
39
39
  __classPrivateFieldSet(this, _Sharer_sharedStore, sharedStore, "f");
@@ -62,7 +62,7 @@ export class Sharer {
62
62
  offsetTop: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('offsetTop'),
63
63
  offsetBottom: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('offsetBottom'),
64
64
  offsetLeft: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('offsetLeft'),
65
- offsetRight: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('offsetRight')
65
+ offsetRight: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('offsetRight'),
66
66
  };
67
67
  return viewScaleInfo;
68
68
  }
@@ -87,15 +87,15 @@ export class Sharer {
87
87
  height: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('height'),
88
88
  devicePixelRatio: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('devicePixelRatio'),
89
89
  contextWidth: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('contextWidth'),
90
- contextHeight: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('contextHeight')
90
+ contextHeight: __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('contextHeight'),
91
91
  };
92
92
  return sizeInfo;
93
93
  }
94
- getActiveOverrideElemenentMap() {
95
- return __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('overrideElementMap');
94
+ getActiveOverrideMaterialMap() {
95
+ return __classPrivateFieldGet(this, _Sharer_activeStore, "f").get('overrideMaterialMap');
96
96
  }
97
- setActiveOverrideElemenentMap(map) {
98
- __classPrivateFieldGet(this, _Sharer_activeStore, "f").set('overrideElementMap', map);
97
+ setActiveOverrideMaterialMap(map) {
98
+ __classPrivateFieldGet(this, _Sharer_activeStore, "f").set('overrideMaterialMap', map);
99
99
  }
100
100
  }
101
101
  _Sharer_activeStore = new WeakMap(), _Sharer_sharedStore = new WeakMap();
@@ -1,16 +1,16 @@
1
1
  import { EventEmitter } from '@idraw/util';
2
- import type { PointSize, BoardViewer, BoardViewerEventMap, BoardViewerOptions, ViewScaleInfo, ViewSizeInfo, Data } from '@idraw/types';
2
+ import type { Point, BoardViewer, BoardViewerEventMap, BoardViewerOptions, ViewScaleInfo, ViewSizeInfo, Data } from '@idraw/types';
3
3
  export declare class Viewer extends EventEmitter<BoardViewerEventMap> implements BoardViewer {
4
4
  #private;
5
5
  constructor(opts: BoardViewerOptions);
6
- resetVirtualFlatItemMap(data: Data, opts: {
6
+ resetVirtualItemMap(data: Data, opts: {
7
7
  viewScaleInfo: ViewScaleInfo;
8
8
  viewSizeInfo: ViewSizeInfo;
9
9
  }): void;
10
10
  drawFrame(): void;
11
11
  scale(opts: {
12
12
  scale: number;
13
- point: PointSize;
13
+ point: Point;
14
14
  ignoreUpdateVisibleStatus?: boolean;
15
15
  }): {
16
16
  moveX: number;
@@ -22,9 +22,9 @@ export class Viewer extends EventEmitter {
22
22
  __classPrivateFieldSet(this, _Viewer_opts, opts, "f");
23
23
  __classPrivateFieldGet(this, _Viewer_instances, "m", _Viewer_init).call(this);
24
24
  }
25
- resetVirtualFlatItemMap(data, opts) {
25
+ resetVirtualItemMap(data, opts) {
26
26
  if (data) {
27
- __classPrivateFieldGet(this, _Viewer_opts, "f").calculator.resetVirtualFlatItemMap(data, opts);
27
+ __classPrivateFieldGet(this, _Viewer_opts, "f").calculator.resetVirtualItemMap(data, opts);
28
28
  }
29
29
  }
30
30
  drawFrame() {
@@ -33,7 +33,7 @@ export class Viewer extends EventEmitter {
33
33
  const sharedStore = sharer.getSharedStoreSnapshot();
34
34
  __classPrivateFieldGet(this, _Viewer_drawFrameSnapshotQueue, "f").push({
35
35
  activeStore,
36
- sharedStore
36
+ sharedStore,
37
37
  });
38
38
  __classPrivateFieldGet(this, _Viewer_instances, "m", _Viewer_drawAnimationFrame).call(this);
39
39
  }
@@ -44,13 +44,13 @@ export class Viewer extends EventEmitter {
44
44
  scale,
45
45
  point,
46
46
  viewScaleInfo: sharer.getActiveViewScaleInfo(),
47
- viewSizeInfo: sharer.getActiveViewSizeInfo()
47
+ viewSizeInfo: sharer.getActiveViewSizeInfo(),
48
48
  });
49
49
  sharer.setActiveStorage('scale', scale);
50
50
  if (!ignoreUpdateVisibleStatus) {
51
51
  __classPrivateFieldGet(this, _Viewer_opts, "f").calculator.updateVisiableStatus({
52
52
  viewScaleInfo: sharer.getActiveViewScaleInfo(),
53
- viewSizeInfo: sharer.getActiveViewSizeInfo()
53
+ viewSizeInfo: sharer.getActiveViewSizeInfo(),
54
54
  });
55
55
  }
56
56
  return { moveX, moveY };
@@ -64,13 +64,13 @@ export class Viewer extends EventEmitter {
64
64
  moveX,
65
65
  moveY,
66
66
  viewScaleInfo: prevViewScaleInfo,
67
- viewSizeInfo
67
+ viewSizeInfo,
68
68
  });
69
69
  sharer.setActiveViewScaleInfo(viewScaleInfo);
70
70
  if (!ignoreUpdateVisibleStatus) {
71
71
  __classPrivateFieldGet(this, _Viewer_opts, "f").calculator.updateVisiableStatus({
72
72
  viewScaleInfo: sharer.getActiveViewScaleInfo(),
73
- viewSizeInfo: sharer.getActiveViewSizeInfo()
73
+ viewSizeInfo: sharer.getActiveViewSizeInfo(),
74
74
  });
75
75
  }
76
76
  return viewScaleInfo;
@@ -78,12 +78,12 @@ export class Viewer extends EventEmitter {
78
78
  updateViewScaleInfo(opts) {
79
79
  const { sharer } = __classPrivateFieldGet(this, _Viewer_opts, "f");
80
80
  const viewScaleInfo = calcViewScaleInfo(opts, {
81
- viewSizeInfo: sharer.getActiveViewSizeInfo()
81
+ viewSizeInfo: sharer.getActiveViewSizeInfo(),
82
82
  });
83
83
  sharer.setActiveViewScaleInfo(viewScaleInfo);
84
84
  __classPrivateFieldGet(this, _Viewer_opts, "f").calculator.updateVisiableStatus({
85
85
  viewScaleInfo: sharer.getActiveViewScaleInfo(),
86
- viewSizeInfo: sharer.getActiveViewSizeInfo()
86
+ viewSizeInfo: sharer.getActiveViewSizeInfo(),
87
87
  });
88
88
  return viewScaleInfo;
89
89
  }
@@ -107,7 +107,7 @@ export class Viewer extends EventEmitter {
107
107
  if (!(opts === null || opts === void 0 ? void 0 : opts.ignoreUpdateVisibleStatus)) {
108
108
  __classPrivateFieldGet(this, _Viewer_opts, "f").calculator.updateVisiableStatus({
109
109
  viewScaleInfo: sharer.getActiveViewScaleInfo(),
110
- viewSizeInfo: sharer.getActiveViewSizeInfo()
110
+ viewSizeInfo: sharer.getActiveViewSizeInfo(),
111
111
  });
112
112
  }
113
113
  return newViewSize;
@@ -128,25 +128,25 @@ _Viewer_opts = new WeakMap(), _Viewer_drawFrameSnapshotQueue = new WeakMap(), _V
128
128
  const snapshot = __classPrivateFieldGet(this, _Viewer_drawFrameSnapshotQueue, "f").shift();
129
129
  const { renderer, boardContent, beforeDrawFrame, afterDrawFrame } = __classPrivateFieldGet(this, _Viewer_opts, "f");
130
130
  if (snapshot) {
131
- const { scale, offsetTop, offsetBottom, offsetLeft, offsetRight, width, height, contextHeight, contextWidth, devicePixelRatio } = snapshot.activeStore;
131
+ const { scale, offsetTop, offsetBottom, offsetLeft, offsetRight, width, height, contextHeight, contextWidth, devicePixelRatio, } = snapshot.activeStore;
132
132
  const viewScaleInfo = {
133
133
  scale,
134
134
  offsetTop,
135
135
  offsetBottom,
136
136
  offsetLeft,
137
- offsetRight
137
+ offsetRight,
138
138
  };
139
139
  const viewSizeInfo = {
140
140
  width,
141
141
  height,
142
142
  contextHeight,
143
143
  contextWidth,
144
- devicePixelRatio
144
+ devicePixelRatio,
145
145
  };
146
146
  if (snapshot === null || snapshot === void 0 ? void 0 : snapshot.activeStore.data) {
147
147
  renderer.drawData(snapshot.activeStore.data, {
148
148
  viewScaleInfo,
149
- viewSizeInfo
149
+ viewSizeInfo,
150
150
  });
151
151
  }
152
152
  beforeDrawFrame({ snapshot });
@@ -1,4 +1,4 @@
1
- import type { Point, BoardWatcherEventMap, Data, Element, ElementType, BoardWatcherOptions } from '@idraw/types';
1
+ import type { ActionPoint, BoardWatcherEventMap, Data, Material, BoardWatcherOptions } from '@idraw/types';
2
2
  import { EventEmitter } from '@idraw/util';
3
3
  export declare class BoardWatcher extends EventEmitter<BoardWatcherEventMap> {
4
4
  #private;
@@ -9,7 +9,7 @@ export declare class BoardWatcher extends EventEmitter<BoardWatcherEventMap> {
9
9
  }
10
10
  interface PointResult {
11
11
  index: number;
12
- element: Element<ElementType> | null;
12
+ material: Material | null;
13
13
  }
14
- export declare function getPointResult(p: Point, data: Data): PointResult;
14
+ export declare function getPointResult(p: ActionPoint, data: Data): PointResult;
15
15
  export {};
@@ -9,8 +9,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _BoardWatcher_instances, _BoardWatcher_opts, _BoardWatcher_store, _BoardWatcher_hasDestroyed, _BoardWatcher_init, _BoardWatcher_onWheel, _BoardWatcher_onContextMenu, _BoardWatcher_onClick, _BoardWatcher_onPointLeave, _BoardWatcher_onPointEnd, _BoardWatcher_onPointMove, _BoardWatcher_onPointStart, _BoardWatcher_onHover, _BoardWatcher_isInTarget, _BoardWatcher_getPoint, _BoardWatcher_isVaildPoint;
13
- import { EventEmitter, Store } from '@idraw/util';
12
+ var _BoardWatcher_instances, _BoardWatcher_opts, _BoardWatcher_store, _BoardWatcher_hasDestroyed, _BoardWatcher_init, _BoardWatcher_getBoardCanvas, _BoardWatcher_onWheel, _BoardWatcher_onContextMenu, _BoardWatcher_onClick, _BoardWatcher_doubleClick, _BoardWatcher_onPointLeave, _BoardWatcher_onPointEnd, _BoardWatcher_onPointMove, _BoardWatcher_onPointStart, _BoardWatcher_onHover, _BoardWatcher_isInTarget, _BoardWatcher_getPoint, _BoardWatcher_isVaildPoint;
13
+ import { EventEmitter, Store, ATTR_VALID_WATCH, getHTMLElementRectInPage } from '@idraw/util';
14
14
  function isBoardAvailableNum(num) {
15
15
  return num > 0 || num < 0 || num === 0;
16
16
  }
@@ -22,6 +22,7 @@ export class BoardWatcher extends EventEmitter {
22
22
  _BoardWatcher_store.set(this, void 0);
23
23
  _BoardWatcher_hasDestroyed.set(this, false);
24
24
  _BoardWatcher_onWheel.set(this, (e) => {
25
+ const nativeEvent = e;
25
26
  if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
26
27
  return;
27
28
  }
@@ -34,13 +35,14 @@ export class BoardWatcher extends EventEmitter {
34
35
  const deltaX = e.deltaX > 0 || e.deltaX < 0 ? e.deltaX : 0;
35
36
  const deltaY = e.deltaY > 0 || e.deltaY < 0 ? e.deltaY : 0;
36
37
  if (e.ctrlKey === true && this.has('wheelScale')) {
37
- this.trigger('wheelScale', { deltaX, deltaY, point });
38
+ this.trigger('wheelScale', { deltaX, deltaY, point, nativeEvent });
38
39
  }
39
40
  else if (this.has('wheel')) {
40
- this.trigger('wheel', { deltaX, deltaY, point });
41
+ this.trigger('wheel', { deltaX, deltaY, point, nativeEvent });
41
42
  }
42
43
  });
43
44
  _BoardWatcher_onContextMenu.set(this, (e) => {
45
+ const nativeEvent = e;
44
46
  if (e.button !== 2) {
45
47
  return;
46
48
  }
@@ -52,9 +54,10 @@ export class BoardWatcher extends EventEmitter {
52
54
  if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isVaildPoint).call(this, point)) {
53
55
  return;
54
56
  }
55
- this.trigger('contextMenu', { point });
57
+ this.trigger('contextMenu', { point, nativeEvent });
56
58
  });
57
59
  _BoardWatcher_onClick.set(this, (e) => {
60
+ const nativeEvent = e;
58
61
  if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
59
62
  return;
60
63
  }
@@ -63,35 +66,39 @@ export class BoardWatcher extends EventEmitter {
63
66
  if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isVaildPoint).call(this, point)) {
64
67
  return;
65
68
  }
66
- const maxLimitTime = 500;
67
- const t = Date.now();
68
- const preClickPoint = __classPrivateFieldGet(this, _BoardWatcher_store, "f").get('prevClickPoint');
69
- if (preClickPoint &&
70
- t - preClickPoint.t <= maxLimitTime &&
71
- Math.abs(preClickPoint.x - point.x) <= 5 &&
72
- Math.abs(preClickPoint.y - point.y) <= 5) {
73
- this.trigger('doubleClick', { point });
69
+ this.trigger('click', { point, nativeEvent });
70
+ });
71
+ _BoardWatcher_doubleClick.set(this, (e) => {
72
+ const nativeEvent = e;
73
+ if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
74
+ return;
74
75
  }
75
- else {
76
- __classPrivateFieldGet(this, _BoardWatcher_store, "f").set('prevClickPoint', point);
76
+ e.preventDefault();
77
+ const point = __classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_getPoint).call(this, e);
78
+ if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isVaildPoint).call(this, point)) {
79
+ return;
77
80
  }
81
+ this.trigger('doubleClick', { point, nativeEvent });
78
82
  });
79
83
  _BoardWatcher_onPointLeave.set(this, (e) => {
84
+ const nativeEvent = e;
80
85
  __classPrivateFieldGet(this, _BoardWatcher_store, "f").set('hasPointDown', false);
81
86
  e.preventDefault();
82
87
  const point = __classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_getPoint).call(this, e);
83
- this.trigger('pointLeave', { point });
88
+ this.trigger('pointLeave', { point, nativeEvent });
84
89
  });
85
90
  _BoardWatcher_onPointEnd.set(this, (e) => {
91
+ const nativeEvent = e;
86
92
  __classPrivateFieldGet(this, _BoardWatcher_store, "f").set('hasPointDown', false);
87
93
  if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
88
94
  return;
89
95
  }
90
96
  e.preventDefault();
91
97
  const point = __classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_getPoint).call(this, e);
92
- this.trigger('pointEnd', { point });
98
+ this.trigger('pointEnd', { point, nativeEvent });
93
99
  });
94
100
  _BoardWatcher_onPointMove.set(this, (e) => {
101
+ const nativeEvent = e;
95
102
  if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
96
103
  return;
97
104
  }
@@ -100,7 +107,7 @@ export class BoardWatcher extends EventEmitter {
100
107
  const point = __classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_getPoint).call(this, e);
101
108
  if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isVaildPoint).call(this, point)) {
102
109
  if (__classPrivateFieldGet(this, _BoardWatcher_store, "f").get('hasPointDown')) {
103
- this.trigger('pointLeave', { point });
110
+ this.trigger('pointLeave', { point, nativeEvent });
104
111
  __classPrivateFieldGet(this, _BoardWatcher_store, "f").set('hasPointDown', false);
105
112
  }
106
113
  return;
@@ -108,9 +115,10 @@ export class BoardWatcher extends EventEmitter {
108
115
  if (__classPrivateFieldGet(this, _BoardWatcher_store, "f").get('hasPointDown') !== true) {
109
116
  return;
110
117
  }
111
- this.trigger('pointMove', { point });
118
+ this.trigger('pointMove', { point, nativeEvent });
112
119
  });
113
120
  _BoardWatcher_onPointStart.set(this, (e) => {
121
+ const nativeEvent = e;
114
122
  if (e.button !== 0) {
115
123
  return;
116
124
  }
@@ -123,9 +131,10 @@ export class BoardWatcher extends EventEmitter {
123
131
  return;
124
132
  }
125
133
  __classPrivateFieldGet(this, _BoardWatcher_store, "f").set('hasPointDown', true);
126
- this.trigger('pointStart', { point });
134
+ this.trigger('pointStart', { point, nativeEvent });
127
135
  });
128
136
  _BoardWatcher_onHover.set(this, (e) => {
137
+ const nativeEvent = e;
129
138
  if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
130
139
  if (__classPrivateFieldGet(this, _BoardWatcher_store, "f").get('inCanvas') === true) {
131
140
  __classPrivateFieldGet(this, _BoardWatcher_store, "f").set('inCanvas', false);
@@ -139,46 +148,49 @@ export class BoardWatcher extends EventEmitter {
139
148
  if (!__classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_isVaildPoint).call(this, point)) {
140
149
  return;
141
150
  }
142
- this.trigger('hover', { point });
151
+ this.trigger('hover', { point, nativeEvent });
143
152
  });
144
153
  const store = new Store({
145
- defaultStorage: { hasPointDown: false, prevClickPoint: null, inCanvas: true }
154
+ defaultStorage: { hasPointDown: false, inCanvas: true },
146
155
  });
147
156
  __classPrivateFieldSet(this, _BoardWatcher_store, store, "f");
148
157
  __classPrivateFieldSet(this, _BoardWatcher_opts, opts, "f");
149
158
  __classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_init).call(this);
150
159
  }
151
160
  onEvents() {
161
+ var _a;
152
162
  if (__classPrivateFieldGet(this, _BoardWatcher_opts, "f").disabled === true) {
153
163
  return;
154
164
  }
155
165
  if (__classPrivateFieldGet(this, _BoardWatcher_hasDestroyed, "f")) {
156
166
  return;
157
167
  }
158
- const canvas = __classPrivateFieldGet(this, _BoardWatcher_opts, "f").boardContent.boardContext.canvas;
159
168
  const container = window;
160
- container.addEventListener('mousemove', __classPrivateFieldGet(this, _BoardWatcher_onHover, "f"));
161
- container.addEventListener('mousedown', __classPrivateFieldGet(this, _BoardWatcher_onPointStart, "f"));
169
+ const innerContainer = ((_a = __classPrivateFieldGet(this, _BoardWatcher_opts, "f")) === null || _a === void 0 ? void 0 : _a.container) || __classPrivateFieldGet(this, _BoardWatcher_opts, "f").boardContent.boardContext.canvas;
162
170
  container.addEventListener('mousemove', __classPrivateFieldGet(this, _BoardWatcher_onPointMove, "f"));
163
171
  container.addEventListener('mouseup', __classPrivateFieldGet(this, _BoardWatcher_onPointEnd, "f"));
164
- canvas.addEventListener('wheel', __classPrivateFieldGet(this, _BoardWatcher_onWheel, "f"), { passive: false });
165
- container.addEventListener('click', __classPrivateFieldGet(this, _BoardWatcher_onClick, "f"));
166
- container.addEventListener('contextmenu', __classPrivateFieldGet(this, _BoardWatcher_onContextMenu, "f"));
172
+ innerContainer.addEventListener('mousemove', __classPrivateFieldGet(this, _BoardWatcher_onHover, "f"));
173
+ innerContainer.addEventListener('mousedown', __classPrivateFieldGet(this, _BoardWatcher_onPointStart, "f"));
174
+ innerContainer.addEventListener('wheel', __classPrivateFieldGet(this, _BoardWatcher_onWheel, "f"), { passive: false });
175
+ innerContainer.addEventListener('click', __classPrivateFieldGet(this, _BoardWatcher_onClick, "f"));
176
+ innerContainer.addEventListener('contextmenu', __classPrivateFieldGet(this, _BoardWatcher_onContextMenu, "f"));
177
+ innerContainer.addEventListener('dblclick', __classPrivateFieldGet(this, _BoardWatcher_doubleClick, "f"));
167
178
  }
168
179
  offEvents() {
180
+ var _a;
169
181
  if (__classPrivateFieldGet(this, _BoardWatcher_opts, "f").disabled === true) {
170
182
  return;
171
183
  }
172
184
  const container = window;
173
- const canvas = __classPrivateFieldGet(this, _BoardWatcher_opts, "f").boardContent.boardContext.canvas;
174
- container.removeEventListener('mousemove', __classPrivateFieldGet(this, _BoardWatcher_onHover, "f"));
175
- container.removeEventListener('mousedown', __classPrivateFieldGet(this, _BoardWatcher_onPointStart, "f"));
185
+ const innerContainer = ((_a = __classPrivateFieldGet(this, _BoardWatcher_opts, "f")) === null || _a === void 0 ? void 0 : _a.container) || __classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_getBoardCanvas).call(this);
176
186
  container.removeEventListener('mousemove', __classPrivateFieldGet(this, _BoardWatcher_onPointMove, "f"));
177
187
  container.removeEventListener('mouseup', __classPrivateFieldGet(this, _BoardWatcher_onPointEnd, "f"));
178
- container.removeEventListener('mouseleave', __classPrivateFieldGet(this, _BoardWatcher_onPointLeave, "f"));
179
- canvas.removeEventListener('wheel', __classPrivateFieldGet(this, _BoardWatcher_onWheel, "f"));
180
- container.removeEventListener('click', __classPrivateFieldGet(this, _BoardWatcher_onClick, "f"));
181
- container.removeEventListener('contextmenu', __classPrivateFieldGet(this, _BoardWatcher_onContextMenu, "f"));
188
+ innerContainer.removeEventListener('mousemove', __classPrivateFieldGet(this, _BoardWatcher_onHover, "f"));
189
+ innerContainer.removeEventListener('mousedown', __classPrivateFieldGet(this, _BoardWatcher_onPointStart, "f"));
190
+ innerContainer.removeEventListener('wheel', __classPrivateFieldGet(this, _BoardWatcher_onWheel, "f"));
191
+ innerContainer.removeEventListener('click', __classPrivateFieldGet(this, _BoardWatcher_onClick, "f"));
192
+ innerContainer.removeEventListener('contextmenu', __classPrivateFieldGet(this, _BoardWatcher_onContextMenu, "f"));
193
+ innerContainer.removeEventListener('dblclick', __classPrivateFieldGet(this, _BoardWatcher_doubleClick, "f"));
182
194
  }
183
195
  destroy() {
184
196
  this.offEvents();
@@ -186,17 +198,30 @@ export class BoardWatcher extends EventEmitter {
186
198
  __classPrivateFieldSet(this, _BoardWatcher_hasDestroyed, true, "f");
187
199
  }
188
200
  }
189
- _BoardWatcher_opts = new WeakMap(), _BoardWatcher_store = new WeakMap(), _BoardWatcher_hasDestroyed = new WeakMap(), _BoardWatcher_onWheel = new WeakMap(), _BoardWatcher_onContextMenu = new WeakMap(), _BoardWatcher_onClick = new WeakMap(), _BoardWatcher_onPointLeave = new WeakMap(), _BoardWatcher_onPointEnd = new WeakMap(), _BoardWatcher_onPointMove = new WeakMap(), _BoardWatcher_onPointStart = new WeakMap(), _BoardWatcher_onHover = new WeakMap(), _BoardWatcher_instances = new WeakSet(), _BoardWatcher_init = function _BoardWatcher_init() {
201
+ _BoardWatcher_opts = new WeakMap(), _BoardWatcher_store = new WeakMap(), _BoardWatcher_hasDestroyed = new WeakMap(), _BoardWatcher_onWheel = new WeakMap(), _BoardWatcher_onContextMenu = new WeakMap(), _BoardWatcher_onClick = new WeakMap(), _BoardWatcher_doubleClick = new WeakMap(), _BoardWatcher_onPointLeave = new WeakMap(), _BoardWatcher_onPointEnd = new WeakMap(), _BoardWatcher_onPointMove = new WeakMap(), _BoardWatcher_onPointStart = new WeakMap(), _BoardWatcher_onHover = new WeakMap(), _BoardWatcher_instances = new WeakSet(), _BoardWatcher_init = function _BoardWatcher_init() {
190
202
  this.onEvents();
203
+ }, _BoardWatcher_getBoardCanvas = function _BoardWatcher_getBoardCanvas() {
204
+ return __classPrivateFieldGet(this, _BoardWatcher_opts, "f").boardContent.boardContext.canvas;
191
205
  }, _BoardWatcher_isInTarget = function _BoardWatcher_isInTarget(e) {
192
- return e.target === __classPrivateFieldGet(this, _BoardWatcher_opts, "f").boardContent.boardContext.canvas;
206
+ const $target = e.target;
207
+ if ($target.getAttribute(ATTR_VALID_WATCH) === 'true') {
208
+ return true;
209
+ }
210
+ if ($target !== __classPrivateFieldGet(this, _BoardWatcher_instances, "m", _BoardWatcher_getBoardCanvas).call(this)) {
211
+ return false;
212
+ }
213
+ const rect = getHTMLElementRectInPage(__classPrivateFieldGet(this, _BoardWatcher_opts, "f").boardContent.boardContext.canvas);
214
+ return (e.pageX >= rect.pageX &&
215
+ e.pageX <= rect.pageX + rect.width &&
216
+ e.pageY >= rect.pageY &&
217
+ e.pageY <= rect.pageY + rect.height);
193
218
  }, _BoardWatcher_getPoint = function _BoardWatcher_getPoint(e) {
194
219
  const boardCanvas = __classPrivateFieldGet(this, _BoardWatcher_opts, "f").boardContent.boardContext.canvas;
195
220
  const rect = boardCanvas.getBoundingClientRect();
196
221
  const p = {
197
222
  x: e.clientX - rect.left,
198
223
  y: e.clientY - rect.top,
199
- t: Date.now()
224
+ t: Date.now(),
200
225
  };
201
226
  return p;
202
227
  }, _BoardWatcher_isVaildPoint = function _BoardWatcher_isVaildPoint(p) {
@@ -210,13 +235,13 @@ _BoardWatcher_opts = new WeakMap(), _BoardWatcher_store = new WeakMap(), _BoardW
210
235
  export function getPointResult(p, data) {
211
236
  const result = {
212
237
  index: -1,
213
- element: null
238
+ material: null,
214
239
  };
215
- for (let i = 0; i < data.elements.length; i++) {
216
- const elem = data.elements[i];
217
- if (p.x >= elem.x && p.x <= elem.x + elem.w && p.y >= elem.y && p.y <= elem.y + elem.h) {
240
+ for (let i = 0; i < data.materials.length; i++) {
241
+ const mtrl = data.materials[i];
242
+ if (p.x >= mtrl.x && p.x <= mtrl.x + mtrl.width && p.y >= mtrl.y && p.y <= mtrl.y + mtrl.height) {
218
243
  result.index = i;
219
- result.element = elem;
244
+ result.material = mtrl;
220
245
  break;
221
246
  }
222
247
  }
@@ -0,0 +1,52 @@
1
+ import type { Data, Point, CoreOptions, Middleware, ViewSizeInfo, CoreEventMap, ViewScaleInfo, LoadItemMap, MaterialType, RecursivePartial, Material, StrictMaterial, ModifyRecord, MaterialPosition, DataLayout, DataGlobal } from '@idraw/types';
2
+ export declare class Core<E extends CoreEventMap = CoreEventMap> {
3
+ #private;
4
+ constructor(container: HTMLDivElement, opts: CoreOptions);
5
+ isDestroyed(): boolean;
6
+ destroy(): void;
7
+ use<C extends any = any>(middleware: Middleware<any, any, any>, config?: C): void;
8
+ disuse(middleware: Middleware<any, any, any>): void;
9
+ resetMiddlewareConfig<C extends any = any>(middleware: Middleware<any, any, any>, config?: Partial<C>): void;
10
+ setData(data: Data): void;
11
+ getData(): Data | null;
12
+ scale(opts: {
13
+ scale: number;
14
+ point: Point;
15
+ }): void;
16
+ resize(newViewSize: Partial<ViewSizeInfo>): void;
17
+ clear(): void;
18
+ on<T extends keyof E>(name: T, callback: (e: E[T]) => void): void;
19
+ off<T extends keyof E>(name: T, callback: (e: E[T]) => void): void;
20
+ trigger<T extends keyof E>(name: T, e: E[T]): void;
21
+ getViewInfo(): {
22
+ viewSizeInfo: ViewSizeInfo;
23
+ viewScaleInfo: ViewScaleInfo;
24
+ };
25
+ refresh(): void;
26
+ forceRender(): void;
27
+ setViewScale(opts: {
28
+ scale: number;
29
+ offsetX: number;
30
+ offsetY: number;
31
+ }): void;
32
+ getLoadItemMap(): LoadItemMap;
33
+ onBoardWatcherEvents(): void;
34
+ offBoardWatcherEvents(): void;
35
+ createMaterial<T extends MaterialType = MaterialType>(type: T, material: RecursivePartial<StrictMaterial<T>>, opts?: {
36
+ viewCenter?: boolean;
37
+ }): StrictMaterial<T>;
38
+ updateMaterial(material: Material): ModifyRecord<'updateMaterial'> | null;
39
+ modifyMaterial(material: RecursivePartial<Omit<Material, 'id'>> & Pick<Material, 'id'>): ModifyRecord<'modifyMaterial'> | null;
40
+ modifyMaterials(materials: Array<RecursivePartial<Omit<Material, 'id'>> & Pick<Material, 'id'>>): ModifyRecord<'modifyMaterials'> | null;
41
+ addMaterial(material: Material, opts?: {
42
+ position: MaterialPosition;
43
+ }): ModifyRecord<'addMaterial'>;
44
+ deleteMaterial(id: string): ModifyRecord<'deleteMaterial'>;
45
+ moveMaterial(id: string, to: MaterialPosition): ModifyRecord<'moveMaterial'>;
46
+ modifyLayout(layout: RecursivePartial<DataLayout> | null): ModifyRecord<'modifyLayout'>;
47
+ modifyGlobal(global: RecursivePartial<DataGlobal> | null): {
48
+ type: "modifyGlobal";
49
+ time: number;
50
+ content: import("@idraw/types").ModifyContentMap["modifyGlobal"];
51
+ };
52
+ }