@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,65 +1,16 @@
1
- import type { Data, PointSize, CoreOptions, Middleware, ViewSizeInfo, CoreEventMap, ViewScaleInfo, LoadItemMap, ElementType, RecursivePartial, Element, ModifyRecord, ElementPosition, DataLayout, DataGlobal } from '@idraw/types';
2
- import { Board, Sharer, Calculator } from './board';
3
- export { coreEventKeys } from './config';
4
- export type { CoreEventKeys } from './config';
5
- export { Board, Sharer, Calculator };
6
- export { MiddlewareSelector } from './middlewares/selector';
7
- export { MiddlewareScroller } from './middlewares/scroller';
1
+ export { coreEventKeys } from './static';
2
+ export type { CoreEventKeys } from './static';
3
+ export { Board, Sharer, Calculator } from './board';
4
+ export { MiddlewareCreator, getMiddlewareCreatorStyles } from './middlewares/creator';
5
+ export { MiddlewareSelector, getMiddlewareSelectorStyles } from './middlewares/selector';
6
+ export { MiddlewareScroller, getMiddlewareScrollerStyles } from './middlewares/scroller';
8
7
  export { MiddlewareScaler } from './middlewares/scaler';
9
- export { MiddlewareRuler } from './middlewares/ruler';
10
- export { MiddlewareTextEditor } from './middlewares/text-editor';
8
+ export { MiddlewareRuler, getMiddlewareRulerStyles } from './middlewares/ruler';
9
+ export { MiddlewareTextEditor, getMiddlewareTextEditorStyles } from './middlewares/text-editor';
11
10
  export { MiddlewareDragger } from './middlewares/dragger';
12
- export { MiddlewareInfo } from './middlewares/info';
11
+ export { MiddlewareInfo, getMiddlewareInfoStyles } from './middlewares/info';
13
12
  export { MiddlewareLayoutSelector } from './middlewares/layout-selector';
14
13
  export { MiddlewarePointer } from './middlewares/pointer';
15
- export declare class Core<E extends CoreEventMap = CoreEventMap> {
16
- #private;
17
- constructor(container: HTMLDivElement, opts: CoreOptions);
18
- isDestroyed(): boolean;
19
- destroy(): void;
20
- use<C extends any = any>(middleware: Middleware<any, any, any>, config?: C): void;
21
- disuse(middleware: Middleware<any, any, any>): void;
22
- resetMiddlewareConfig<C extends any = any>(middleware: Middleware<any, any, any>, config?: Partial<C>): void;
23
- setData(data: Data): void;
24
- getData(): Data | null;
25
- scale(opts: {
26
- scale: number;
27
- point: PointSize;
28
- }): void;
29
- resize(newViewSize: Partial<ViewSizeInfo>): void;
30
- clear(): void;
31
- on<T extends keyof E>(name: T, callback: (e: E[T]) => void): void;
32
- off<T extends keyof E>(name: T, callback: (e: E[T]) => void): void;
33
- trigger<T extends keyof E>(name: T, e: E[T]): void;
34
- getViewInfo(): {
35
- viewSizeInfo: ViewSizeInfo;
36
- viewScaleInfo: ViewScaleInfo;
37
- };
38
- refresh(): void;
39
- forceRender(): void;
40
- setViewScale(opts: {
41
- scale: number;
42
- offsetX: number;
43
- offsetY: number;
44
- }): void;
45
- getLoadItemMap(): LoadItemMap;
46
- onBoardWatcherEvents(): void;
47
- offBoardWatcherEvents(): void;
48
- createElement<T extends ElementType = ElementType>(type: T, element: RecursivePartial<Element<T>>, opts?: {
49
- viewCenter?: boolean;
50
- }): Element<T>;
51
- updateElement(element: Element): ModifyRecord<'updateElement'> | null;
52
- modifyElement(element: RecursivePartial<Omit<Element, 'uuid'>> & Pick<Element, 'uuid'>): ModifyRecord<'modifyElement'> | null;
53
- modifyElements(elements: Array<RecursivePartial<Omit<Element, 'uuid'>> & Pick<Element, 'uuid'>>): ModifyRecord<'modifyElements'> | null;
54
- addElement(element: Element, opts?: {
55
- position: ElementPosition;
56
- }): ModifyRecord<'addElement'>;
57
- deleteElement(uuid: string): ModifyRecord<'deleteElement'>;
58
- moveElement(uuid: string, to: ElementPosition): ModifyRecord<'moveElement'>;
59
- modifyLayout(layout: RecursivePartial<DataLayout> | null): ModifyRecord<'modifyLayout'>;
60
- modifyGlobal(global: RecursivePartial<DataGlobal> | null): {
61
- type: "modifyGlobal";
62
- time: number;
63
- content: import("@idraw/types").ModifyContentMap["modifyGlobal"];
64
- };
65
- }
14
+ export { MiddlewarePathEditor, getMiddlewarePathEditorStyles } from './middlewares/path-editor';
15
+ export { MiddlewarePathCreator, getMiddlewarePathCreatorStyles } from './middlewares/path-creator';
16
+ export { Core } from './core';
package/dist/esm/index.js CHANGED
@@ -1,393 +1,15 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
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
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var __rest = (this && this.__rest) || function (s, e) {
13
- var t = {};
14
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
- t[p] = s[p];
16
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
- t[p[i]] = s[p[i]];
20
- }
21
- return t;
22
- };
23
- var _Core_instances, _Core_board, _Core_canvas, _Core_container, _Core_initContainer, _Core_resetData;
24
- import { deepClone, createElement, getElementPositionFromList, toFlattenElement, deleteElementInList, findElementFromListByPosition, updateElementInListByPosition, insertElementToListByPosition, moveElementPosition, toFlattenLayout, toFlattenGlobal, get, mergeLayout, mergeGlobal } from '@idraw/util';
25
- import { Board, Sharer, Calculator } from './board';
26
- import { createBoardContent, validateElements } from '@idraw/util';
27
- import { Cursor } from './cursor/cursor';
28
- import { getModifyElementRecord } from './record';
29
- export { coreEventKeys } from './config';
30
- export { Board, Sharer, Calculator };
31
- export { MiddlewareSelector } from './middlewares/selector';
32
- export { MiddlewareScroller } from './middlewares/scroller';
1
+ export { coreEventKeys } from './static';
2
+ export { Board, Sharer, Calculator } from './board';
3
+ export { MiddlewareCreator, getMiddlewareCreatorStyles } from './middlewares/creator';
4
+ export { MiddlewareSelector, getMiddlewareSelectorStyles } from './middlewares/selector';
5
+ export { MiddlewareScroller, getMiddlewareScrollerStyles } from './middlewares/scroller';
33
6
  export { MiddlewareScaler } from './middlewares/scaler';
34
- export { MiddlewareRuler } from './middlewares/ruler';
35
- export { MiddlewareTextEditor } from './middlewares/text-editor';
7
+ export { MiddlewareRuler, getMiddlewareRulerStyles } from './middlewares/ruler';
8
+ export { MiddlewareTextEditor, getMiddlewareTextEditorStyles } from './middlewares/text-editor';
36
9
  export { MiddlewareDragger } from './middlewares/dragger';
37
- export { MiddlewareInfo } from './middlewares/info';
10
+ export { MiddlewareInfo, getMiddlewareInfoStyles } from './middlewares/info';
38
11
  export { MiddlewareLayoutSelector } from './middlewares/layout-selector';
39
12
  export { MiddlewarePointer } from './middlewares/pointer';
40
- export class Core {
41
- constructor(container, opts) {
42
- _Core_instances.add(this);
43
- _Core_board.set(this, void 0);
44
- _Core_canvas.set(this, void 0);
45
- _Core_container.set(this, void 0);
46
- const { devicePixelRatio = 1, width, height, disableWatcher = false } = opts;
47
- __classPrivateFieldSet(this, _Core_container, container, "f");
48
- const canvas = document.createElement('canvas');
49
- canvas.setAttribute('tabindex', '0');
50
- __classPrivateFieldSet(this, _Core_canvas, canvas, "f");
51
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_initContainer).call(this);
52
- container.appendChild(canvas);
53
- const boardContent = createBoardContent(canvas, { width, height, devicePixelRatio });
54
- const board = new Board({ boardContent, container, disableWatcher });
55
- const sharer = board.getSharer();
56
- sharer.setActiveViewSizeInfo({
57
- width,
58
- height,
59
- devicePixelRatio,
60
- contextWidth: width,
61
- contextHeight: height
62
- });
63
- __classPrivateFieldSet(this, _Core_board, board, "f");
64
- this.resize(sharer.getActiveViewSizeInfo());
65
- const eventHub = board.getEventHub();
66
- new Cursor(container, {
67
- eventHub
68
- });
69
- }
70
- isDestroyed() {
71
- return __classPrivateFieldGet(this, _Core_board, "f").isDestroyed();
72
- }
73
- destroy() {
74
- __classPrivateFieldGet(this, _Core_board, "f").destroy();
75
- __classPrivateFieldGet(this, _Core_canvas, "f").remove();
76
- }
77
- use(middleware, config) {
78
- __classPrivateFieldGet(this, _Core_board, "f").use(middleware, config);
79
- }
80
- disuse(middleware) {
81
- __classPrivateFieldGet(this, _Core_board, "f").disuse(middleware);
82
- }
83
- resetMiddlewareConfig(middleware, config) {
84
- __classPrivateFieldGet(this, _Core_board, "f").resetMiddlewareConfig(middleware, config);
85
- }
86
- setData(data) {
87
- const loader = __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoader();
88
- loader.reset();
89
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
90
- }
91
- getData() {
92
- return __classPrivateFieldGet(this, _Core_board, "f").getData();
93
- }
94
- scale(opts) {
95
- __classPrivateFieldGet(this, _Core_board, "f").scale(opts);
96
- const viewer = __classPrivateFieldGet(this, _Core_board, "f").getViewer();
97
- viewer.drawFrame();
98
- }
99
- resize(newViewSize) {
100
- const board = __classPrivateFieldGet(this, _Core_board, "f");
101
- const sharer = board.getSharer();
102
- const viewSizeInfo = sharer.getActiveViewSizeInfo();
103
- board.resize(Object.assign(Object.assign({}, viewSizeInfo), newViewSize));
104
- }
105
- clear() {
106
- __classPrivateFieldGet(this, _Core_board, "f").clear();
107
- }
108
- on(name, callback) {
109
- const eventHub = __classPrivateFieldGet(this, _Core_board, "f").getEventHub();
110
- eventHub.on(name, callback);
111
- }
112
- off(name, callback) {
113
- const eventHub = __classPrivateFieldGet(this, _Core_board, "f").getEventHub();
114
- eventHub.off(name, callback);
115
- }
116
- trigger(name, e) {
117
- const eventHub = __classPrivateFieldGet(this, _Core_board, "f").getEventHub();
118
- eventHub.trigger(name, e);
119
- }
120
- getViewInfo() {
121
- const board = __classPrivateFieldGet(this, _Core_board, "f");
122
- const sharer = board.getSharer();
123
- const viewSizeInfo = sharer.getActiveViewSizeInfo();
124
- const viewScaleInfo = sharer.getActiveViewScaleInfo();
125
- return {
126
- viewSizeInfo,
127
- viewScaleInfo
128
- };
129
- }
130
- refresh() {
131
- __classPrivateFieldGet(this, _Core_board, "f").getViewer().drawFrame();
132
- }
133
- forceRender() {
134
- const renderer = __classPrivateFieldGet(this, _Core_board, "f").getRenderer();
135
- const calculator = renderer.getCalculator();
136
- const loader = renderer.getLoader();
137
- const data = this.getData();
138
- if (data) {
139
- const { viewScaleInfo, viewSizeInfo } = this.getViewInfo();
140
- calculator.resetVirtualFlatItemMap(data, {
141
- viewScaleInfo,
142
- viewSizeInfo
143
- });
144
- }
145
- loader.reset();
146
- this.refresh();
147
- }
148
- setViewScale(opts) {
149
- __classPrivateFieldGet(this, _Core_board, "f").updateViewScaleInfo(opts);
150
- }
151
- getLoadItemMap() {
152
- return __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoadItemMap();
153
- }
154
- onBoardWatcherEvents() {
155
- __classPrivateFieldGet(this, _Core_board, "f").onWatcherEvents();
156
- }
157
- offBoardWatcherEvents() {
158
- __classPrivateFieldGet(this, _Core_board, "f").offWatcherEvents();
159
- }
160
- createElement(type, element, opts) {
161
- const { viewScaleInfo, viewSizeInfo } = this.getViewInfo();
162
- return createElement(type, element || {}, (opts === null || opts === void 0 ? void 0 : opts.viewCenter) === true
163
- ? {
164
- viewScaleInfo,
165
- viewSizeInfo
166
- }
167
- : undefined);
168
- }
169
- updateElement(element) {
170
- const data = this.getData() || { elements: [] };
171
- const uuid = element.uuid;
172
- const position = getElementPositionFromList(uuid, data.elements);
173
- const beforeElem = findElementFromListByPosition(position, data.elements);
174
- if (!beforeElem) {
175
- return null;
176
- }
177
- const before = toFlattenElement(beforeElem);
178
- const updatedElement = updateElementInListByPosition(position, element, data.elements, { strict: true });
179
- const after = toFlattenElement(updatedElement);
180
- const loader = __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoader();
181
- loader.resetElementAsset(element);
182
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
183
- this.refresh();
184
- const modifyRecord = {
185
- type: 'updateElement',
186
- time: Date.now(),
187
- content: { method: 'updateElement', uuid, before, after }
188
- };
189
- return modifyRecord;
190
- }
191
- modifyElement(element) {
192
- const { uuid } = element, restElement = __rest(element, ["uuid"]);
193
- const data = this.getData() || { elements: [] };
194
- const position = getElementPositionFromList(uuid, data.elements);
195
- const beforeElem = findElementFromListByPosition(position, data.elements);
196
- if (!beforeElem) {
197
- return null;
198
- }
199
- const modifyRecord = getModifyElementRecord({
200
- modifiedElement: element,
201
- beforeElement: beforeElem
202
- });
203
- updateElementInListByPosition(position, restElement, data.elements);
204
- const loader = __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoader();
205
- loader.resetElementAsset(Object.assign(Object.assign({}, element), { type: beforeElem.type }));
206
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
207
- this.refresh();
208
- return modifyRecord;
209
- }
210
- modifyElements(elements) {
211
- const data = this.getData() || { elements: [] };
212
- let modifyRecord = null;
213
- const before = [];
214
- const after = [];
215
- elements.forEach((element) => {
216
- const { uuid } = element, restElement = __rest(element, ["uuid"]);
217
- const position = getElementPositionFromList(uuid, data.elements);
218
- const beforeElem = findElementFromListByPosition(position, data.elements);
219
- if (!beforeElem) {
220
- return null;
221
- }
222
- const tempRecord = getModifyElementRecord({
223
- modifiedElement: element,
224
- beforeElement: beforeElem
225
- });
226
- if (tempRecord.content) {
227
- before.push(Object.assign(Object.assign({}, tempRecord.content.before), { uuid }));
228
- after.push(Object.assign(Object.assign({}, tempRecord.content.after), { uuid }));
229
- }
230
- updateElementInListByPosition(position, restElement, data.elements);
231
- });
232
- modifyRecord = {
233
- type: 'modifyElements',
234
- time: Date.now(),
235
- content: {
236
- method: 'modifyElements',
237
- before,
238
- after
239
- }
240
- };
241
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
242
- this.refresh();
243
- return modifyRecord;
244
- }
245
- addElement(element, opts) {
246
- var _a;
247
- const data = this.getData() || { elements: [] };
248
- if (!opts || !((_a = opts === null || opts === void 0 ? void 0 : opts.position) === null || _a === void 0 ? void 0 : _a.length)) {
249
- data.elements.push(element);
250
- }
251
- else if (opts === null || opts === void 0 ? void 0 : opts.position) {
252
- const position = [...((opts === null || opts === void 0 ? void 0 : opts.position) || [])];
253
- insertElementToListByPosition(element, position, data.elements);
254
- }
255
- const position = getElementPositionFromList(element.uuid, data.elements);
256
- const modifyRecord = {
257
- type: 'addElement',
258
- time: Date.now(),
259
- content: { method: 'addElement', uuid: element.uuid, position, element: deepClone(element) }
260
- };
261
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
262
- this.refresh();
263
- return modifyRecord;
264
- }
265
- deleteElement(uuid) {
266
- const data = this.getData() || { elements: [] };
267
- const position = getElementPositionFromList(uuid, data.elements);
268
- const element = findElementFromListByPosition(position, data.elements);
269
- const modifyRecord = {
270
- type: 'deleteElement',
271
- time: Date.now(),
272
- content: { method: 'deleteElement', uuid, position, element: element ? deepClone(element) : null }
273
- };
274
- if (element) {
275
- const loader = __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoader();
276
- loader.resetElementAsset(element);
277
- }
278
- deleteElementInList(uuid, data.elements);
279
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
280
- this.refresh();
281
- return modifyRecord;
282
- }
283
- moveElement(uuid, to) {
284
- const data = this.getData() || { elements: [] };
285
- const from = getElementPositionFromList(uuid, data.elements);
286
- const modifyRecord = {
287
- type: 'moveElement',
288
- time: Date.now(),
289
- content: { method: 'moveElement', uuid, from: [...from], to: [...to] }
290
- };
291
- const { elements: list } = moveElementPosition(data.elements, { from, to });
292
- data.elements = list;
293
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
294
- this.refresh();
295
- return modifyRecord;
296
- }
297
- modifyLayout(layout) {
298
- const data = this.getData() || { elements: [] };
299
- const modifyRecord = {
300
- type: 'modifyLayout',
301
- time: Date.now(),
302
- content: {
303
- method: 'modifyLayout',
304
- before: null,
305
- after: null
306
- }
307
- };
308
- if (layout === null) {
309
- if (data.layout) {
310
- modifyRecord.content.before = toFlattenLayout(data.layout);
311
- delete data['layout'];
312
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
313
- this.refresh();
314
- return modifyRecord;
315
- }
316
- else {
317
- return modifyRecord;
318
- }
319
- }
320
- const beforeLayout = data.layout;
321
- let before = {};
322
- const after = toFlattenLayout(layout);
323
- if (data.layout) {
324
- Object.keys(after).forEach((key) => {
325
- let val = get(beforeLayout, key);
326
- if (val === undefined && /(borderRadius|borderWidth)\[[0-9]{1,}\]$/.test(key)) {
327
- key = key.replace(/\[[0-9]{1,}\]$/, '');
328
- val = get(beforeLayout, key);
329
- }
330
- before[key] = val;
331
- });
332
- before = toFlattenLayout(before);
333
- modifyRecord.content.before = before;
334
- }
335
- else {
336
- data.layout = {};
337
- }
338
- modifyRecord.content.after = after;
339
- mergeLayout(data.layout, layout);
340
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
341
- this.refresh();
342
- return modifyRecord;
343
- }
344
- modifyGlobal(global) {
345
- const data = this.getData() || { elements: [] };
346
- const modifyRecord = {
347
- type: 'modifyGlobal',
348
- time: Date.now(),
349
- content: {
350
- method: 'modifyGlobal',
351
- before: null,
352
- after: null
353
- }
354
- };
355
- if (global === null) {
356
- if (data.global) {
357
- modifyRecord.content.before = toFlattenGlobal(data.global);
358
- delete data['global'];
359
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
360
- this.refresh();
361
- return modifyRecord;
362
- }
363
- else {
364
- return modifyRecord;
365
- }
366
- }
367
- const beforeGlobal = data.global;
368
- let before = {};
369
- const after = toFlattenGlobal(global);
370
- if (data.global) {
371
- Object.keys(after).forEach((key) => {
372
- before[key] = get(beforeGlobal, key);
373
- });
374
- before = toFlattenGlobal(before);
375
- modifyRecord.content.before = before;
376
- }
377
- else {
378
- data.global = {};
379
- }
380
- modifyRecord.content.after = after;
381
- mergeGlobal(data.global, global);
382
- __classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
383
- this.refresh();
384
- return modifyRecord;
385
- }
386
- }
387
- _Core_board = new WeakMap(), _Core_canvas = new WeakMap(), _Core_container = new WeakMap(), _Core_instances = new WeakSet(), _Core_initContainer = function _Core_initContainer() {
388
- const container = __classPrivateFieldGet(this, _Core_container, "f");
389
- container.style.position = 'relative';
390
- }, _Core_resetData = function _Core_resetData(data) {
391
- validateElements((data === null || data === void 0 ? void 0 : data.elements) || []);
392
- __classPrivateFieldGet(this, _Core_board, "f").setData(data);
393
- };
13
+ export { MiddlewarePathEditor, getMiddlewarePathEditorStyles } from './middlewares/path-editor';
14
+ export { MiddlewarePathCreator, getMiddlewarePathCreatorStyles } from './middlewares/path-creator';
15
+ export { Core } from './core';
@@ -0,0 +1,4 @@
1
+ import type { UtilEventEmitter, CoreEventMap, CoreEventChange } from '@idraw/types';
2
+ type EventHub = UtilEventEmitter<CoreEventMap>;
3
+ export declare function triggerChangeEvent(eventHub: EventHub, e: CoreEventChange, status?: 'continuous' | 'all'): void;
4
+ export {};
@@ -0,0 +1,13 @@
1
+ import { coreEventKeys } from '../static';
2
+ export function triggerChangeEvent(eventHub, e, status) {
3
+ if (status === 'continuous') {
4
+ eventHub.trigger(coreEventKeys.CHANGING, e);
5
+ }
6
+ else if (status === 'all') {
7
+ eventHub.trigger(coreEventKeys.CHANGING, e);
8
+ eventHub.trigger(coreEventKeys.CHANGE, e);
9
+ }
10
+ else {
11
+ eventHub.trigger(coreEventKeys.CHANGE, e);
12
+ }
13
+ }
@@ -0,0 +1,11 @@
1
+ import type { Point } from '@idraw/types';
2
+ export declare function initRoot(opts: {
3
+ rootClassName: string;
4
+ $container: HTMLElement;
5
+ }): HTMLDivElement;
6
+ export declare function getCreationAreaBox($root: HTMLDivElement): HTMLElement;
7
+ export declare function clearCreationAreaBox($root: HTMLDivElement | null): void;
8
+ export declare function resetCreationAreaBox($root: HTMLDivElement | null, opts: {
9
+ start: Point;
10
+ end: Point;
11
+ }): void;
@@ -0,0 +1,52 @@
1
+ import { ATTR_VALID_WATCH, createHTMLElement, assembleHTMLElement, setHTMLCSSProps } from '@idraw/util';
2
+ import { classNameMap } from './static';
3
+ function destroyBoxs($root, opts) {
4
+ if (!$root) {
5
+ return;
6
+ }
7
+ const { className } = opts;
8
+ const $prevBoxs = Array.from($root.getElementsByClassName(className));
9
+ $prevBoxs.forEach(($box) => {
10
+ $box.remove();
11
+ });
12
+ }
13
+ export function initRoot(opts) {
14
+ const { rootClassName, $container } = opts;
15
+ const create = createHTMLElement;
16
+ const $root = create('div', {
17
+ className: rootClassName,
18
+ [ATTR_VALID_WATCH]: 'true',
19
+ }, []);
20
+ $container.appendChild($root);
21
+ return $root;
22
+ }
23
+ export function getCreationAreaBox($root) {
24
+ const $boxs = $root.getElementsByClassName(classNameMap.creationAreaBox);
25
+ if ($boxs[0]) {
26
+ return $boxs[0];
27
+ }
28
+ const $box = createHTMLElement('div', { [ATTR_VALID_WATCH]: 'true', className: classNameMap.creationAreaBox });
29
+ assembleHTMLElement($root, {}, [$box]);
30
+ return $box;
31
+ }
32
+ export function clearCreationAreaBox($root) {
33
+ destroyBoxs($root, { className: classNameMap.creationAreaBox });
34
+ }
35
+ export function resetCreationAreaBox($root, opts) {
36
+ if (!$root) {
37
+ return;
38
+ }
39
+ const { start, end } = opts;
40
+ if (start && end) {
41
+ const $box = getCreationAreaBox($root);
42
+ setHTMLCSSProps($box, {
43
+ left: Math.min(start.x, end.x),
44
+ top: Math.min(start.y, end.y),
45
+ width: Math.abs(end.x - start.x),
46
+ height: Math.abs(end.y - start.y),
47
+ });
48
+ }
49
+ else {
50
+ clearCreationAreaBox($root);
51
+ }
52
+ }
@@ -0,0 +1,5 @@
1
+ import type { Middleware, MiddlewareCreatorConfig, CoreEventMap } from '@idraw/types';
2
+ import type { CreatorSharedStorage } from './types';
3
+ import { getMiddlewareCreatorStyles } from './styles';
4
+ export { getMiddlewareCreatorStyles };
5
+ export declare const MiddlewareCreator: Middleware<CreatorSharedStorage, CoreEventMap, MiddlewareCreatorConfig>;