mind-elixir 5.1.0 → 5.2.0-beta.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 (54) hide show
  1. package/LICENSE +21 -21
  2. package/dist/MindElixir.iife.js +9 -10
  3. package/dist/MindElixir.js +839 -829
  4. package/dist/MindElixirLite.iife.js +14 -15
  5. package/dist/MindElixirLite.js +690 -680
  6. package/dist/example.iife.js +7 -2
  7. package/dist/example.js +78 -19
  8. package/dist/style.css +1 -1
  9. package/dist/types/{arrow.d.ts → src/arrow.d.ts} +1 -1
  10. package/dist/types/src/dev.d.ts +1 -0
  11. package/dist/types/src/exampleData/1.d.ts +3 -0
  12. package/dist/types/{index.d.ts → src/index.d.ts} +13 -14
  13. package/dist/types/{methods.d.ts → src/methods.d.ts} +10 -10
  14. package/dist/types/{nodeOperation.d.ts → src/nodeOperation.d.ts} +1 -1
  15. package/dist/types/{plugin → src/plugin}/keypress.d.ts +1 -1
  16. package/dist/types/{summary.d.ts → src/summary.d.ts} +3 -2
  17. package/dist/types/{types → src/types}/dom.d.ts +2 -1
  18. package/dist/types/{types → src/types}/index.d.ts +4 -2
  19. package/dist/types/src/utils/index.d.ts +440 -0
  20. package/dist/types/{utils → src/utils}/pubsub.d.ts +2 -2
  21. package/dist/types/{utils → src/utils}/svg.d.ts +15 -5
  22. package/package.json +107 -105
  23. package/readme.md +432 -432
  24. package/dist/types/dev.d.ts +0 -1
  25. package/dist/types/exampleData/1.d.ts +0 -3
  26. package/dist/types/exampleData/markdown.d.ts +0 -8
  27. package/dist/types/utils/index.d.ts +0 -40
  28. package/dist/types/utils/markdown.d.ts +0 -25
  29. /package/dist/types/{const.d.ts → src/const.d.ts} +0 -0
  30. /package/dist/types/{docs.d.ts → src/docs.d.ts} +0 -0
  31. /package/dist/types/{exampleData → src/exampleData}/1.cn.d.ts +0 -0
  32. /package/dist/types/{exampleData → src/exampleData}/2.d.ts +0 -0
  33. /package/dist/types/{exampleData → src/exampleData}/3.d.ts +0 -0
  34. /package/dist/types/{exampleData → src/exampleData}/htmlText.d.ts +0 -0
  35. /package/dist/types/{i18n.d.ts → src/i18n.d.ts} +0 -0
  36. /package/dist/types/{interact.d.ts → src/interact.d.ts} +0 -0
  37. /package/dist/types/{linkDiv.d.ts → src/linkDiv.d.ts} +0 -0
  38. /package/dist/types/{mouse.d.ts → src/mouse.d.ts} +0 -0
  39. /package/dist/types/{plugin → src/plugin}/contextMenu.d.ts +0 -0
  40. /package/dist/types/{plugin → src/plugin}/exportImage.d.ts +0 -0
  41. /package/dist/types/{plugin → src/plugin}/nodeDraggable.d.ts +0 -0
  42. /package/dist/types/{plugin → src/plugin}/operationHistory.d.ts +0 -0
  43. /package/dist/types/{plugin → src/plugin}/selection.d.ts +0 -0
  44. /package/dist/types/{plugin → src/plugin}/toolBar.d.ts +0 -0
  45. /package/dist/types/{types → src/types}/global.d.ts +0 -0
  46. /package/dist/types/{utils → src/utils}/LinkDragMoveHelper.d.ts +0 -0
  47. /package/dist/types/{utils → src/utils}/dom.d.ts +0 -0
  48. /package/dist/types/{utils → src/utils}/domManipulation.d.ts +0 -0
  49. /package/dist/types/{utils → src/utils}/dragMoveHelper.d.ts +0 -0
  50. /package/dist/types/{utils → src/utils}/generateBranch.d.ts +0 -0
  51. /package/dist/types/{utils → src/utils}/layout-ssr.d.ts +0 -0
  52. /package/dist/types/{utils → src/utils}/layout.d.ts +0 -0
  53. /package/dist/types/{utils → src/utils}/objectManipulation.d.ts +0 -0
  54. /package/dist/types/{utils → src/utils}/theme.d.ts +0 -0
@@ -0,0 +1,440 @@
1
+ import type { Topic } from '../types/dom';
2
+ import type { NodeObj, MindElixirInstance, NodeObjExport } from '../types/index';
3
+ export declare function encodeHTML(s: string): string;
4
+ export declare const isMobile: () => boolean;
5
+ export declare const getObjById: (id: string, data: NodeObj) => NodeObj | null;
6
+ /**
7
+ * Add parent property to every node
8
+ */
9
+ export declare const fillParent: (data: NodeObj, parent?: NodeObj) => void;
10
+ export declare const setExpand: (node: NodeObj, isExpand: boolean, level?: number) => void;
11
+ export declare function refreshIds(data: NodeObj): void;
12
+ export declare const throttle: <T extends (...args: never[]) => void>(fn: T, wait: number) => (...args: Parameters<T>) => void;
13
+ export declare function getArrowPoints(p3x: number, p3y: number, p4x: number, p4y: number): {
14
+ x1: number;
15
+ y1: number;
16
+ x2: number;
17
+ y2: number;
18
+ } | undefined;
19
+ export declare function generateUUID(): string;
20
+ export declare const generateNewObj: (this: MindElixirInstance) => NodeObjExport;
21
+ export declare function checkMoveValid(from: NodeObj, to: NodeObj): boolean;
22
+ export declare function deepClone(obj: NodeObj): any;
23
+ export declare const getOffsetLT: (parent: HTMLElement, child: HTMLElement) => {
24
+ offsetLeft: number;
25
+ offsetTop: number;
26
+ };
27
+ export declare const setAttributes: (el: HTMLElement | SVGElement, attrs: {
28
+ [key: string]: string;
29
+ }) => void;
30
+ export declare const isTopic: (target?: HTMLElement) => target is Topic;
31
+ export declare const unionTopics: (nodes: Topic[]) => Topic[];
32
+ export declare const getTranslate: (styleText: string) => {
33
+ x: number;
34
+ y: number;
35
+ };
36
+ export declare const on: (list: ({
37
+ dom: EventTarget;
38
+ evt: "keypress";
39
+ func: (this: EventTarget, ev: KeyboardEvent) => void;
40
+ } | {
41
+ dom: EventTarget;
42
+ evt: "input";
43
+ func: (this: EventTarget, ev: Event) => void;
44
+ } | {
45
+ dom: EventTarget;
46
+ evt: "progress";
47
+ func: (this: EventTarget, ev: ProgressEvent<EventTarget>) => void;
48
+ } | {
49
+ dom: EventTarget;
50
+ evt: "select";
51
+ func: (this: EventTarget, ev: Event) => void;
52
+ } | {
53
+ dom: EventTarget;
54
+ evt: "keydown";
55
+ func: (this: EventTarget, ev: KeyboardEvent) => void;
56
+ } | {
57
+ dom: EventTarget;
58
+ evt: "abort";
59
+ func: (this: EventTarget, ev: UIEvent) => void;
60
+ } | {
61
+ dom: EventTarget;
62
+ evt: "animationcancel";
63
+ func: (this: EventTarget, ev: AnimationEvent) => void;
64
+ } | {
65
+ dom: EventTarget;
66
+ evt: "animationend";
67
+ func: (this: EventTarget, ev: AnimationEvent) => void;
68
+ } | {
69
+ dom: EventTarget;
70
+ evt: "animationiteration";
71
+ func: (this: EventTarget, ev: AnimationEvent) => void;
72
+ } | {
73
+ dom: EventTarget;
74
+ evt: "animationstart";
75
+ func: (this: EventTarget, ev: AnimationEvent) => void;
76
+ } | {
77
+ dom: EventTarget;
78
+ evt: "auxclick";
79
+ func: (this: EventTarget, ev: MouseEvent) => void;
80
+ } | {
81
+ dom: EventTarget;
82
+ evt: "beforeinput";
83
+ func: (this: EventTarget, ev: InputEvent) => void;
84
+ } | {
85
+ dom: EventTarget;
86
+ evt: "beforetoggle";
87
+ func: (this: EventTarget, ev: Event) => void;
88
+ } | {
89
+ dom: EventTarget;
90
+ evt: "blur";
91
+ func: (this: EventTarget, ev: FocusEvent) => void;
92
+ } | {
93
+ dom: EventTarget;
94
+ evt: "cancel";
95
+ func: (this: EventTarget, ev: Event) => void;
96
+ } | {
97
+ dom: EventTarget;
98
+ evt: "canplay";
99
+ func: (this: EventTarget, ev: Event) => void;
100
+ } | {
101
+ dom: EventTarget;
102
+ evt: "canplaythrough";
103
+ func: (this: EventTarget, ev: Event) => void;
104
+ } | {
105
+ dom: EventTarget;
106
+ evt: "change";
107
+ func: (this: EventTarget, ev: Event) => void;
108
+ } | {
109
+ dom: EventTarget;
110
+ evt: "click";
111
+ func: (this: EventTarget, ev: MouseEvent) => void;
112
+ } | {
113
+ dom: EventTarget;
114
+ evt: "close";
115
+ func: (this: EventTarget, ev: Event) => void;
116
+ } | {
117
+ dom: EventTarget;
118
+ evt: "compositionend";
119
+ func: (this: EventTarget, ev: CompositionEvent) => void;
120
+ } | {
121
+ dom: EventTarget;
122
+ evt: "compositionstart";
123
+ func: (this: EventTarget, ev: CompositionEvent) => void;
124
+ } | {
125
+ dom: EventTarget;
126
+ evt: "compositionupdate";
127
+ func: (this: EventTarget, ev: CompositionEvent) => void;
128
+ } | {
129
+ dom: EventTarget;
130
+ evt: "contextmenu";
131
+ func: (this: EventTarget, ev: MouseEvent) => void;
132
+ } | {
133
+ dom: EventTarget;
134
+ evt: "copy";
135
+ func: (this: EventTarget, ev: ClipboardEvent) => void;
136
+ } | {
137
+ dom: EventTarget;
138
+ evt: "cuechange";
139
+ func: (this: EventTarget, ev: Event) => void;
140
+ } | {
141
+ dom: EventTarget;
142
+ evt: "cut";
143
+ func: (this: EventTarget, ev: ClipboardEvent) => void;
144
+ } | {
145
+ dom: EventTarget;
146
+ evt: "dblclick";
147
+ func: (this: EventTarget, ev: MouseEvent) => void;
148
+ } | {
149
+ dom: EventTarget;
150
+ evt: "drag";
151
+ func: (this: EventTarget, ev: DragEvent) => void;
152
+ } | {
153
+ dom: EventTarget;
154
+ evt: "dragend";
155
+ func: (this: EventTarget, ev: DragEvent) => void;
156
+ } | {
157
+ dom: EventTarget;
158
+ evt: "dragenter";
159
+ func: (this: EventTarget, ev: DragEvent) => void;
160
+ } | {
161
+ dom: EventTarget;
162
+ evt: "dragleave";
163
+ func: (this: EventTarget, ev: DragEvent) => void;
164
+ } | {
165
+ dom: EventTarget;
166
+ evt: "dragover";
167
+ func: (this: EventTarget, ev: DragEvent) => void;
168
+ } | {
169
+ dom: EventTarget;
170
+ evt: "dragstart";
171
+ func: (this: EventTarget, ev: DragEvent) => void;
172
+ } | {
173
+ dom: EventTarget;
174
+ evt: "drop";
175
+ func: (this: EventTarget, ev: DragEvent) => void;
176
+ } | {
177
+ dom: EventTarget;
178
+ evt: "durationchange";
179
+ func: (this: EventTarget, ev: Event) => void;
180
+ } | {
181
+ dom: EventTarget;
182
+ evt: "emptied";
183
+ func: (this: EventTarget, ev: Event) => void;
184
+ } | {
185
+ dom: EventTarget;
186
+ evt: "ended";
187
+ func: (this: EventTarget, ev: Event) => void;
188
+ } | {
189
+ dom: EventTarget;
190
+ evt: "error";
191
+ func: (this: EventTarget, ev: ErrorEvent) => void;
192
+ } | {
193
+ dom: EventTarget;
194
+ evt: "focus";
195
+ func: (this: EventTarget, ev: FocusEvent) => void;
196
+ } | {
197
+ dom: EventTarget;
198
+ evt: "focusin";
199
+ func: (this: EventTarget, ev: FocusEvent) => void;
200
+ } | {
201
+ dom: EventTarget;
202
+ evt: "focusout";
203
+ func: (this: EventTarget, ev: FocusEvent) => void;
204
+ } | {
205
+ dom: EventTarget;
206
+ evt: "formdata";
207
+ func: (this: EventTarget, ev: FormDataEvent) => void;
208
+ } | {
209
+ dom: EventTarget;
210
+ evt: "gotpointercapture";
211
+ func: (this: EventTarget, ev: PointerEvent) => void;
212
+ } | {
213
+ dom: EventTarget;
214
+ evt: "invalid";
215
+ func: (this: EventTarget, ev: Event) => void;
216
+ } | {
217
+ dom: EventTarget;
218
+ evt: "keyup";
219
+ func: (this: EventTarget, ev: KeyboardEvent) => void;
220
+ } | {
221
+ dom: EventTarget;
222
+ evt: "load";
223
+ func: (this: EventTarget, ev: Event) => void;
224
+ } | {
225
+ dom: EventTarget;
226
+ evt: "loadeddata";
227
+ func: (this: EventTarget, ev: Event) => void;
228
+ } | {
229
+ dom: EventTarget;
230
+ evt: "loadedmetadata";
231
+ func: (this: EventTarget, ev: Event) => void;
232
+ } | {
233
+ dom: EventTarget;
234
+ evt: "loadstart";
235
+ func: (this: EventTarget, ev: Event) => void;
236
+ } | {
237
+ dom: EventTarget;
238
+ evt: "lostpointercapture";
239
+ func: (this: EventTarget, ev: PointerEvent) => void;
240
+ } | {
241
+ dom: EventTarget;
242
+ evt: "mousedown";
243
+ func: (this: EventTarget, ev: MouseEvent) => void;
244
+ } | {
245
+ dom: EventTarget;
246
+ evt: "mouseenter";
247
+ func: (this: EventTarget, ev: MouseEvent) => void;
248
+ } | {
249
+ dom: EventTarget;
250
+ evt: "mouseleave";
251
+ func: (this: EventTarget, ev: MouseEvent) => void;
252
+ } | {
253
+ dom: EventTarget;
254
+ evt: "mousemove";
255
+ func: (this: EventTarget, ev: MouseEvent) => void;
256
+ } | {
257
+ dom: EventTarget;
258
+ evt: "mouseout";
259
+ func: (this: EventTarget, ev: MouseEvent) => void;
260
+ } | {
261
+ dom: EventTarget;
262
+ evt: "mouseover";
263
+ func: (this: EventTarget, ev: MouseEvent) => void;
264
+ } | {
265
+ dom: EventTarget;
266
+ evt: "mouseup";
267
+ func: (this: EventTarget, ev: MouseEvent) => void;
268
+ } | {
269
+ dom: EventTarget;
270
+ evt: "paste";
271
+ func: (this: EventTarget, ev: ClipboardEvent) => void;
272
+ } | {
273
+ dom: EventTarget;
274
+ evt: "pause";
275
+ func: (this: EventTarget, ev: Event) => void;
276
+ } | {
277
+ dom: EventTarget;
278
+ evt: "play";
279
+ func: (this: EventTarget, ev: Event) => void;
280
+ } | {
281
+ dom: EventTarget;
282
+ evt: "playing";
283
+ func: (this: EventTarget, ev: Event) => void;
284
+ } | {
285
+ dom: EventTarget;
286
+ evt: "pointercancel";
287
+ func: (this: EventTarget, ev: PointerEvent) => void;
288
+ } | {
289
+ dom: EventTarget;
290
+ evt: "pointerdown";
291
+ func: (this: EventTarget, ev: PointerEvent) => void;
292
+ } | {
293
+ dom: EventTarget;
294
+ evt: "pointerenter";
295
+ func: (this: EventTarget, ev: PointerEvent) => void;
296
+ } | {
297
+ dom: EventTarget;
298
+ evt: "pointerleave";
299
+ func: (this: EventTarget, ev: PointerEvent) => void;
300
+ } | {
301
+ dom: EventTarget;
302
+ evt: "pointermove";
303
+ func: (this: EventTarget, ev: PointerEvent) => void;
304
+ } | {
305
+ dom: EventTarget;
306
+ evt: "pointerout";
307
+ func: (this: EventTarget, ev: PointerEvent) => void;
308
+ } | {
309
+ dom: EventTarget;
310
+ evt: "pointerover";
311
+ func: (this: EventTarget, ev: PointerEvent) => void;
312
+ } | {
313
+ dom: EventTarget;
314
+ evt: "pointerup";
315
+ func: (this: EventTarget, ev: PointerEvent) => void;
316
+ } | {
317
+ dom: EventTarget;
318
+ evt: "ratechange";
319
+ func: (this: EventTarget, ev: Event) => void;
320
+ } | {
321
+ dom: EventTarget;
322
+ evt: "reset";
323
+ func: (this: EventTarget, ev: Event) => void;
324
+ } | {
325
+ dom: EventTarget;
326
+ evt: "resize";
327
+ func: (this: EventTarget, ev: UIEvent) => void;
328
+ } | {
329
+ dom: EventTarget;
330
+ evt: "scroll";
331
+ func: (this: EventTarget, ev: Event) => void;
332
+ } | {
333
+ dom: EventTarget;
334
+ evt: "scrollend";
335
+ func: (this: EventTarget, ev: Event) => void;
336
+ } | {
337
+ dom: EventTarget;
338
+ evt: "securitypolicyviolation";
339
+ func: (this: EventTarget, ev: SecurityPolicyViolationEvent) => void;
340
+ } | {
341
+ dom: EventTarget;
342
+ evt: "seeked";
343
+ func: (this: EventTarget, ev: Event) => void;
344
+ } | {
345
+ dom: EventTarget;
346
+ evt: "seeking";
347
+ func: (this: EventTarget, ev: Event) => void;
348
+ } | {
349
+ dom: EventTarget;
350
+ evt: "selectionchange";
351
+ func: (this: EventTarget, ev: Event) => void;
352
+ } | {
353
+ dom: EventTarget;
354
+ evt: "selectstart";
355
+ func: (this: EventTarget, ev: Event) => void;
356
+ } | {
357
+ dom: EventTarget;
358
+ evt: "slotchange";
359
+ func: (this: EventTarget, ev: Event) => void;
360
+ } | {
361
+ dom: EventTarget;
362
+ evt: "stalled";
363
+ func: (this: EventTarget, ev: Event) => void;
364
+ } | {
365
+ dom: EventTarget;
366
+ evt: "submit";
367
+ func: (this: EventTarget, ev: SubmitEvent) => void;
368
+ } | {
369
+ dom: EventTarget;
370
+ evt: "suspend";
371
+ func: (this: EventTarget, ev: Event) => void;
372
+ } | {
373
+ dom: EventTarget;
374
+ evt: "timeupdate";
375
+ func: (this: EventTarget, ev: Event) => void;
376
+ } | {
377
+ dom: EventTarget;
378
+ evt: "toggle";
379
+ func: (this: EventTarget, ev: Event) => void;
380
+ } | {
381
+ dom: EventTarget;
382
+ evt: "touchcancel";
383
+ func: (this: EventTarget, ev: TouchEvent) => void;
384
+ } | {
385
+ dom: EventTarget;
386
+ evt: "touchend";
387
+ func: (this: EventTarget, ev: TouchEvent) => void;
388
+ } | {
389
+ dom: EventTarget;
390
+ evt: "touchmove";
391
+ func: (this: EventTarget, ev: TouchEvent) => void;
392
+ } | {
393
+ dom: EventTarget;
394
+ evt: "touchstart";
395
+ func: (this: EventTarget, ev: TouchEvent) => void;
396
+ } | {
397
+ dom: EventTarget;
398
+ evt: "transitioncancel";
399
+ func: (this: EventTarget, ev: TransitionEvent) => void;
400
+ } | {
401
+ dom: EventTarget;
402
+ evt: "transitionend";
403
+ func: (this: EventTarget, ev: TransitionEvent) => void;
404
+ } | {
405
+ dom: EventTarget;
406
+ evt: "transitionrun";
407
+ func: (this: EventTarget, ev: TransitionEvent) => void;
408
+ } | {
409
+ dom: EventTarget;
410
+ evt: "transitionstart";
411
+ func: (this: EventTarget, ev: TransitionEvent) => void;
412
+ } | {
413
+ dom: EventTarget;
414
+ evt: "volumechange";
415
+ func: (this: EventTarget, ev: Event) => void;
416
+ } | {
417
+ dom: EventTarget;
418
+ evt: "waiting";
419
+ func: (this: EventTarget, ev: Event) => void;
420
+ } | {
421
+ dom: EventTarget;
422
+ evt: "webkitanimationend";
423
+ func: (this: EventTarget, ev: Event) => void;
424
+ } | {
425
+ dom: EventTarget;
426
+ evt: "webkitanimationiteration";
427
+ func: (this: EventTarget, ev: Event) => void;
428
+ } | {
429
+ dom: EventTarget;
430
+ evt: "webkitanimationstart";
431
+ func: (this: EventTarget, ev: Event) => void;
432
+ } | {
433
+ dom: EventTarget;
434
+ evt: "webkittransitionend";
435
+ func: (this: EventTarget, ev: Event) => void;
436
+ } | {
437
+ dom: EventTarget;
438
+ evt: "wheel";
439
+ func: (this: EventTarget, ev: WheelEvent) => void;
440
+ })[]) => () => void;
@@ -75,7 +75,7 @@ export type EventMap = {
75
75
  export declare function createBus<T extends Record<string, (...args: any[]) => void> = EventMap>(): {
76
76
  handlers: Record<keyof T, ((...arg: any[]) => void)[]>;
77
77
  addListener: <K extends keyof T>(type: K, handler: T[K]) => void;
78
- fire: <K extends keyof T>(type: K, ...payload: Parameters<T[K]>) => void;
79
- removeListener: <K extends keyof T>(type: K, handler: T[K]) => void;
78
+ fire: <K_1 extends keyof T>(type: K_1, ...payload: Parameters<T[K_1]>) => void;
79
+ removeListener: <K_2 extends keyof T>(type: K_2, handler: T[K_2]) => void;
80
80
  };
81
81
  export {};
@@ -6,12 +6,22 @@ export declare const svgNS = "http://www.w3.org/2000/svg";
6
6
  export interface SvgTextOptions {
7
7
  anchor?: 'start' | 'middle' | 'end';
8
8
  color?: string;
9
- dataType?: string;
9
+ dataType: string;
10
+ svgId: string;
10
11
  }
11
12
  /**
12
- * Create an SVG text element with common attributes
13
+ * Create a div label for SVG elements with positioning
13
14
  */
14
- export declare const createSvgText: (text: string, x: number, y: number, options?: SvgTextOptions) => SVGTextElement;
15
+ export declare const calculatePrecisePosition: (element: HTMLElement) => void;
16
+ export declare const createSvgText: (text: string, x: number, y: number, options: SvgTextOptions) => HTMLDivElement;
17
+ /**
18
+ * Find SVG element by label ID
19
+ */
20
+ export declare const findSvgByLabelId: (labelId: string) => SVGElement | null;
21
+ /**
22
+ * Find label element by SVG ID
23
+ */
24
+ export declare const findLabelBySvgId: (svgId: string) => HTMLDivElement | null;
15
25
  export declare const createPath: (d: string, color: string, width: string) => SVGPathElement;
16
26
  export declare const createLinkSvg: (klass: string) => SVGSVGElement;
17
27
  export declare const createLine: () => SVGLineElement;
@@ -19,8 +29,8 @@ export declare const createSvgGroup: (d: string, arrowd1: string, arrowd2: strin
19
29
  stroke?: string;
20
30
  strokeWidth?: string | number;
21
31
  strokeDasharray?: string;
22
- strokeLinecap?: "butt" | "round" | "square";
32
+ strokeLinecap?: 'butt' | 'round' | 'square';
23
33
  opacity?: string | number;
24
34
  labelColor?: string;
25
35
  }) => CustomSvg;
26
- export declare const editSvgText: (mei: MindElixirInstance, textEl: SVGTextElement, node: Summary | Arrow) => void;
36
+ export declare const editSvgText: (mei: MindElixirInstance, textEl: HTMLDivElement, node: Summary | Arrow) => void;