microboard-temp 0.13.41 → 0.13.43

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 (138) hide show
  1. package/dist/cjs/browser.js +55398 -52148
  2. package/dist/cjs/index.js +55392 -52147
  3. package/dist/cjs/node.js +58180 -54930
  4. package/dist/esm/browser.js +55385 -52198
  5. package/dist/esm/index.js +55381 -52199
  6. package/dist/esm/node.js +57588 -54407
  7. package/dist/types/Board.d.ts +9 -7
  8. package/dist/types/BoardCommand.d.ts +2 -2
  9. package/dist/types/Camera/Camera.d.ts +4 -1
  10. package/dist/types/Events/BaseCommand.d.ts +5 -4
  11. package/dist/types/Events/Command.d.ts +11 -7
  12. package/dist/types/Events/CreateCommand.d.ts +5 -0
  13. package/dist/types/Events/Events.d.ts +2 -1
  14. package/dist/types/Events/EventsOperations.d.ts +23 -15
  15. package/dist/types/Events/Log/EventsLog.d.ts +6 -5
  16. package/dist/types/Events/Log/createEventsList.d.ts +3 -1
  17. package/dist/types/Events/Log/deserializeAndApplyToList.d.ts +2 -2
  18. package/dist/types/Events/MessageRouter/boardMessageInterface.d.ts +57 -3
  19. package/dist/types/Events/MessageRouter/handleAiChatMassage.d.ts +1 -5
  20. package/dist/types/Events/MessageRouter/handleBoardEventMessage.d.ts +1 -8
  21. package/dist/types/Events/MessageRouter/handleConfirmation.d.ts +1 -6
  22. package/dist/types/Events/MessageRouter/handleCreateSnapshotRequestMessage.d.ts +2 -5
  23. package/dist/types/Events/MessageRouter/handleModeMessage.d.ts +1 -5
  24. package/dist/types/Events/MessageRouter/handlePresenceEventMessage.d.ts +1 -1
  25. package/dist/types/Events/MessageRouter/index.d.ts +0 -5
  26. package/dist/types/Events/index.d.ts +2 -1
  27. package/dist/types/Items/AINode/AINode.d.ts +2 -2
  28. package/dist/types/Items/Anchor/Anchor.d.ts +2 -1
  29. package/dist/types/Items/Arc/Arc.d.ts +4 -1
  30. package/dist/types/Items/Audio/Audio.d.ts +3 -3
  31. package/dist/types/Items/BaseItem/BaseItem.d.ts +10 -9
  32. package/dist/types/Items/Comment/Comment.d.ts +1 -1
  33. package/dist/types/Items/Connector/Connector.d.ts +13 -18
  34. package/dist/types/Items/Connector/ConnectorCommand.d.ts +2 -2
  35. package/dist/types/Items/Connector/ConnectorOperations.d.ts +1 -1
  36. package/dist/types/Items/Connector/ConnectorTypes.d.ts +10 -0
  37. package/dist/types/Items/Connector/Pointers/Pointers.d.ts +3 -2
  38. package/dist/types/Items/Connector/Pointers/index.d.ts +1 -1
  39. package/dist/types/Items/Connector/getLine/getLine.d.ts +1 -1
  40. package/dist/types/Items/Connector/index.d.ts +3 -2
  41. package/dist/types/Items/Curve/Curve.d.ts +4 -4
  42. package/dist/types/Items/Drawing/Drawing.d.ts +7 -6
  43. package/dist/types/Items/Drawing/DrawingCommand.d.ts +2 -2
  44. package/dist/types/Items/Examples/CardGame/Card/Card.d.ts +12 -9
  45. package/dist/types/Items/Examples/CardGame/Deck/Deck.d.ts +1 -1
  46. package/dist/types/Items/Examples/CardGame/Dice/Dice.d.ts +11 -2
  47. package/dist/types/Items/Examples/CardGame/Screen/Screen.d.ts +7 -2
  48. package/dist/types/Items/Examples/Counter/Counter.d.ts +1 -1
  49. package/dist/types/Items/Examples/Star/Star.d.ts +1 -1
  50. package/dist/types/Items/Frame/Frame.d.ts +12 -3
  51. package/dist/types/Items/Frame/FrameData.d.ts +3 -3
  52. package/dist/types/Items/Geometry.d.ts +1 -1
  53. package/dist/types/Items/Group/Group.d.ts +9 -5
  54. package/dist/types/Items/Image/Image.d.ts +5 -4
  55. package/dist/types/Items/Item.d.ts +15 -15
  56. package/dist/types/Items/Line/Line.d.ts +1 -1
  57. package/dist/types/Items/Mbr/Mbr.d.ts +5 -5
  58. package/dist/types/Items/Placeholder/Placeholder.d.ts +13 -8
  59. package/dist/types/Items/Point/Point.d.ts +1 -1
  60. package/dist/types/Items/RegisterItem.d.ts +3 -1
  61. package/dist/types/Items/RichText/EditorContainer.d.ts +2 -2
  62. package/dist/types/Items/RichText/RichText.d.ts +12 -6
  63. package/dist/types/Items/RichText/RichTextCommand.d.ts +2 -2
  64. package/dist/types/Items/RichText/RichTextData.d.ts +1 -1
  65. package/dist/types/Items/RichText/RichTextOperations.d.ts +1 -1
  66. package/dist/types/Items/RichText/editorHelpers/common/getAreAllChildrenEmpty.d.ts +1 -1
  67. package/dist/types/Items/RichText/editorHelpers/lists/getBlockParentList.d.ts +2 -2
  68. package/dist/types/Items/Shape/BPMN/BPMN_Annotation/index.d.ts +2 -1
  69. package/dist/types/Items/Shape/BPMN/BPMN_DataObject/index.d.ts +3 -1
  70. package/dist/types/Items/Shape/BPMN/BPMN_DataStore/index.d.ts +3 -1
  71. package/dist/types/Items/Shape/BPMN/BPMN_EndEvent/index.d.ts +3 -1
  72. package/dist/types/Items/Shape/BPMN/BPMN_EventSubprocess/index.d.ts +3 -1
  73. package/dist/types/Items/Shape/BPMN/BPMN_Gateway/index.d.ts +3 -1
  74. package/dist/types/Items/Shape/BPMN/BPMN_GatewayParallel/index.d.ts +3 -1
  75. package/dist/types/Items/Shape/BPMN/BPMN_GatewayXOR/index.d.ts +3 -1
  76. package/dist/types/Items/Shape/BPMN/BPMN_Group/index.d.ts +3 -1
  77. package/dist/types/Items/Shape/BPMN/BPMN_IntermediateEvent/index.d.ts +3 -1
  78. package/dist/types/Items/Shape/BPMN/BPMN_IntermediateEventNoneInterrupting/index.d.ts +3 -1
  79. package/dist/types/Items/Shape/BPMN/BPMN_Participant/index.d.ts +3 -1
  80. package/dist/types/Items/Shape/BPMN/BPMN_StartEvent/index.d.ts +3 -1
  81. package/dist/types/Items/Shape/BPMN/BPMN_StartEventNoneInterrupting/index.d.ts +3 -1
  82. package/dist/types/Items/Shape/BPMN/BPMN_Task/index.d.ts +3 -1
  83. package/dist/types/Items/Shape/BPMN/BPMN_Transaction/index.d.ts +3 -1
  84. package/dist/types/Items/Shape/Basic/ArrowBlockLeft/index.d.ts +3 -1
  85. package/dist/types/Items/Shape/Basic/ArrowBlockRigth/index.d.ts +3 -1
  86. package/dist/types/Items/Shape/Basic/ArrowLeft/index.d.ts +3 -1
  87. package/dist/types/Items/Shape/Basic/ArrowLeftRight/index.d.ts +3 -1
  88. package/dist/types/Items/Shape/Basic/ArrowRight/index.d.ts +3 -1
  89. package/dist/types/Items/Shape/Basic/BracesLeft/index.d.ts +2 -1
  90. package/dist/types/Items/Shape/Basic/BracesRight/index.d.ts +2 -1
  91. package/dist/types/Items/Shape/Basic/Circle/index.d.ts +3 -1
  92. package/dist/types/Items/Shape/Basic/Cloud/index.d.ts +3 -1
  93. package/dist/types/Items/Shape/Basic/Cross/index.d.ts +3 -1
  94. package/dist/types/Items/Shape/Basic/Cylinder/index.d.ts +3 -1
  95. package/dist/types/Items/Shape/Basic/Hexagon/index.d.ts +3 -1
  96. package/dist/types/Items/Shape/Basic/Octagon/index.d.ts +3 -1
  97. package/dist/types/Items/Shape/Basic/Parallelogram/index.d.ts +3 -1
  98. package/dist/types/Items/Shape/Basic/Pentagon/index.d.ts +3 -1
  99. package/dist/types/Items/Shape/Basic/PredefinedProcess/index.d.ts +3 -1
  100. package/dist/types/Items/Shape/Basic/Rectangle/index.d.ts +3 -1
  101. package/dist/types/Items/Shape/Basic/ReversedParallelogram/index.d.ts +3 -1
  102. package/dist/types/Items/Shape/Basic/ReversedTriangle/index.d.ts +3 -1
  103. package/dist/types/Items/Shape/Basic/Rhombus/index.d.ts +3 -1
  104. package/dist/types/Items/Shape/Basic/RoundedRectangle/index.d.ts +3 -1
  105. package/dist/types/Items/Shape/Basic/SpeachBubble/index.d.ts +3 -1
  106. package/dist/types/Items/Shape/Basic/Star/index.d.ts +3 -1
  107. package/dist/types/Items/Shape/Basic/Trapezoid/index.d.ts +3 -1
  108. package/dist/types/Items/Shape/Basic/Triangle/index.d.ts +3 -1
  109. package/dist/types/Items/Shape/Shape.d.ts +8 -2
  110. package/dist/types/Items/Shape/ShapeCommand.d.ts +2 -2
  111. package/dist/types/Items/Shape/ShapeOperation.d.ts +1 -1
  112. package/dist/types/Items/Shape/ShapeType.d.ts +3 -0
  113. package/dist/types/Items/Shape/index.d.ts +1 -3
  114. package/dist/types/Items/Sticker/Sticker.d.ts +7 -5
  115. package/dist/types/Items/Transformation/Matrix.d.ts +1 -1
  116. package/dist/types/Items/Transformation/TransformationCommand.d.ts +1 -1
  117. package/dist/types/Items/Video/Video.d.ts +2 -2
  118. package/dist/types/Items/index.d.ts +2 -3
  119. package/dist/types/Presence/Events.d.ts +1 -20
  120. package/dist/types/Presence/Presence.d.ts +2 -1
  121. package/dist/types/Selection/Selection.d.ts +11 -8
  122. package/dist/types/Selection/SelectionItems.d.ts +1 -0
  123. package/dist/types/SessionStorage.d.ts +1 -1
  124. package/dist/types/Settings.d.ts +17 -12
  125. package/dist/types/SpatialIndex/LayeredIndex/index.d.ts +12 -8
  126. package/dist/types/SpatialIndex/RTreeIndex/index.d.ts +12 -7
  127. package/dist/types/SpatialIndex/SimpleSpatialIndex.d.ts +28 -10
  128. package/dist/types/SpatialIndex/SpacialIndex.d.ts +89 -10
  129. package/dist/types/Tools/AddConnector/AddConnector.d.ts +1 -1
  130. package/dist/types/Tools/CustomTool.d.ts +3 -3
  131. package/dist/types/Tools/Tools.d.ts +3 -2
  132. package/dist/types/Validators/Validators.d.ts +4 -3
  133. package/dist/types/api/MockPath2D.d.ts +3 -3
  134. package/dist/types/api/Path2DFactory.d.ts +1 -1
  135. package/dist/types/itemFactories.d.ts +27 -1
  136. package/dist/types/parserHTML.d.ts +1 -2
  137. package/dist/types/sha256.d.ts +1 -1
  138. package/package.json +1 -1
@@ -1,30 +1,35 @@
1
1
  import { Path2DFactory } from "./api/Path2DFactory";
2
+ import type { Board } from "./Board";
2
3
  import { BrowserDocumentFactory } from "./api/BrowserDocumentFactory";
3
4
  import { BrowserPath2D } from "./api/BrowserPath2DFactory";
4
5
  import { MockDocumentFactory } from "./api/MockDocumentFactory";
5
6
  import { MockPath2D } from "./api/MockPath2D";
7
+ import { TFunction } from "i18next";
6
8
  import type { BorderStyle } from "./Items/Path/Path";
7
9
  import type { Theme, ColorValue } from "./Color/ColorValue";
8
10
  export type { Theme, ColorValue };
11
+ import type { PresenceEventType } from "./Presence/Events";
12
+ import type { SocketMsg } from "./Events/MessageRouter/boardMessageInterface";
13
+ import type { Editor, BasePoint } from "slate";
9
14
  export interface Connection {
10
15
  connectionId: number;
11
16
  getCurrentUser: () => string;
12
17
  connect(): Promise<void>;
13
- subscribe(board: any): void;
14
- unsubscribe(board: any): void;
15
- publishPresenceEvent(boardId: string, event: any): void;
18
+ subscribe(board: Board): void;
19
+ unsubscribe(board: Board): void;
20
+ publishPresenceEvent(boardId: string, event: PresenceEventType): void;
16
21
  publishAuth(): Promise<void>;
17
22
  publishLogout(): void;
18
- onMessage?: (msg: any) => void;
23
+ onMessage?: (msg: SocketMsg) => void;
19
24
  onAccessDenied: (boardId: string, forceUpdate?: boolean) => void;
20
25
  notifyAboutLostConnection: () => void;
21
26
  dismissNotificationAboutLostConnection: () => void;
22
27
  resetConnection: () => void;
23
- send: (msg: any) => void;
28
+ send: (msg: SocketMsg) => void;
24
29
  }
25
30
  export interface I18NextInterface {
26
- t: (key: string, options?: any) => string;
27
- changeLanguage: (lng: string, callback?: (err: any, t: any) => void) => Promise<any>;
31
+ t: (key: string, options?: Record<string, unknown>) => string;
32
+ changeLanguage: (lng: string, callback?: (err: Error | null, t: TFunction) => void) => Promise<TFunction>;
28
33
  }
29
34
  export interface NotifyFunction {
30
35
  (options: {
@@ -110,8 +115,8 @@ type GetYouTubeIdFunction = (url?: string) => string | null;
110
115
  type GetDOMParser = () => {
111
116
  parseFromString: (str: string, type: DOMParserSupportedType) => Document;
112
117
  };
113
- type ReactEditorFocus = (editor: any) => void;
114
- type ReactEditorToSlatePoint = (editor: any, domNode: Node, offset: number, options: any) => any;
118
+ type ReactEditorFocus = (editor: Editor) => void;
119
+ type ReactEditorToSlatePoint = (editor: Editor, domNode: Node, offset: number, options?: Record<string, unknown>) => BasePoint | null;
115
120
  /**
116
121
  * Set properties before using the board.
117
122
  * @property {Path2DFactory} - The factory for creating Path2D objects.
@@ -125,9 +130,9 @@ export declare const conf: {
125
130
  measureCtx: CanvasRenderingContext2D;
126
131
  i18n: import("i18next").i18n;
127
132
  hooks: {
128
- beforeMediaUpload: (...args: any[]) => Promise<boolean>;
129
- beforeMediaRemove: (...args: any[]) => Promise<boolean>;
130
- onUploadMediaError: (...args: any[]) => Promise<boolean>;
133
+ beforeMediaUpload: (...args: unknown[]) => Promise<boolean>;
134
+ beforeMediaRemove: (...args: unknown[]) => Promise<boolean>;
135
+ onUploadMediaError: (...args: unknown[]) => Promise<boolean>;
131
136
  };
132
137
  getAccessToken: GetAccessTokenFunction;
133
138
  openModal: OpenModalFunction;
@@ -1,6 +1,6 @@
1
1
  import { Mbr } from '../../Items/Mbr/Mbr';
2
2
  import type { Point } from '../../Items/Point/Point';
3
- import type { Item } from '../../Items/Item';
3
+ import type { Item, ItemDataWithId } from '../../Items/Item';
4
4
  import { Layers } from './Layers';
5
5
  import { RTreeIndex } from '../RTreeIndex';
6
6
  export declare class Container {
@@ -20,13 +20,12 @@ export declare class LayeredIndex<T extends Item> {
20
20
  layers: Layers<RTreeIndex>;
21
21
  constructor(getZIndex: (item: T) => number);
22
22
  private isT;
23
- findById(id: string): Item | undefined;
24
- getEnclosed(rect: Mbr): Item[];
25
- getEnclosedOrCrossedBy(rect: Mbr): Item[];
26
- getUnderPoint(point: Point, tolerance?: number): Item[];
27
- getRectsEnclosedOrCrossedBy(rect: Mbr): T[];
23
+ listEnclosedBy(rect: Mbr): Item[];
24
+ listEnclosedOrCrossedBy(rect: Mbr): Item[];
25
+ listUnderPoint(point: Point, tolerance?: number): Item[];
26
+ listRectsEnclosedOrCrossedBy(rect: Mbr): T[];
28
27
  isAnyEnclosedOrCrossedBy(rect: Mbr): boolean;
29
- getNearestTo(point: Point, maxItems: number, filter: (item: Item) => boolean, maxDistance: number): Item[];
28
+ listNearestTo(point: Point, maxItems: number, filter: (item: Item) => boolean, maxDistance: number): Item[];
30
29
  private getContainersFromItems;
31
30
  insertContainer(container: Container): void;
32
31
  shiftContainerAbove(container: Container, layer: number): void;
@@ -35,7 +34,12 @@ export declare class LayeredIndex<T extends Item> {
35
34
  change(item: T): void;
36
35
  remove(item: Item): void;
37
36
  get(id: string): T | undefined;
38
- list(): T[];
37
+ listAll(): T[];
38
+ getById(id: string): Item | undefined;
39
+ findById(id: string): Item | undefined;
40
+ getByZIndex(index: number): Item;
41
+ getLastZIndex(): number;
42
+ copy(): ItemDataWithId[];
39
43
  batchInsert(items: T[]): void;
40
44
  batchChange(items: T[]): void;
41
45
  }
@@ -1,6 +1,6 @@
1
1
  import RBush, { BBox } from 'rbush';
2
2
  import { Point, Mbr } from '../../Items';
3
- import { Item } from '../../Items';
3
+ import type { Item, ItemDataWithId } from '../../Items/Item';
4
4
  import { Container } from '../LayeredIndex';
5
5
  declare class Tree extends RBush<Container> {
6
6
  toBBox(container: Container): BBox;
@@ -14,13 +14,18 @@ export declare class RTreeIndex {
14
14
  change(container: Container): void;
15
15
  get(id: string): Item | undefined;
16
16
  remove(id: string): void;
17
- list(): Item[];
18
- getEnclosed(rect: Mbr): Item[];
19
- getEnclosedOrCrossedBy(rect: Mbr): Item[];
20
- getUnderPoint(point: Point, tolerance?: number): Item[];
21
- getRectsEnclosedOrCrossedBy(rect: Mbr): Item[];
17
+ listAll(): Item[];
18
+ listEnclosedBy(rect: Mbr): Item[];
19
+ listEnclosedOrCrossedBy(rect: Mbr): Item[];
20
+ listUnderPoint(point: Point, tolerance?: number): Item[];
21
+ listRectsEnclosedOrCrossedBy(rect: Mbr): Item[];
22
22
  isAnyEnclosedOrCrossedBy(rect: Mbr): boolean;
23
- getNearestTo(point: Point, maxItems: number, filter: (item: Item) => boolean, maxDistance: number): Item[];
23
+ listNearestTo(point: Point, maxItems: number, filter: (item: Item) => boolean, maxDistance: number): Item[];
24
+ getById(id: string): Item | undefined;
25
+ findById(id: string): Item | undefined;
26
+ getByZIndex(index: number): Item;
27
+ getLastZIndex(): number;
28
+ copy(): ItemDataWithId[];
24
29
  batchInsert(batch: Container[]): void;
25
30
  batchChange(batch: Container[]): void;
26
31
  }
@@ -1,12 +1,13 @@
1
1
  import { Subject } from "../Subject";
2
- import { DrawingContext, Item, Point, Mbr } from "../Items";
2
+ import { DrawingContext } from "../Items/DrawingContext";
3
+ import { Item, ItemDataWithId } from "../Items/Item";
4
+ import { Point } from "../Items/Point/Point";
5
+ import { Mbr } from "../Items/Mbr/Mbr";
3
6
  import { Camera } from "../Camera";
4
7
  import { Pointer } from "../Pointer";
5
- import { BaseItem } from "../Items/BaseItem";
6
- import { ItemDataWithId } from "../Items/Item";
7
8
  import { ItemsIndexRecord } from "../BoardOperations";
8
- import { Items } from "./SpacialIndex";
9
- export declare class SimpleSpatialIndex {
9
+ import { Items, ISpatialIndex } from "./SpacialIndex";
10
+ export declare class SimpleSpatialIndex implements ISpatialIndex {
10
11
  subject: Subject<Items>;
11
12
  private itemsArray;
12
13
  private Mbr;
@@ -25,13 +26,30 @@ export declare class SimpleSpatialIndex {
25
26
  bringManyToFront(items: Item[]): void;
26
27
  moveSecondAfterFirst(first: Item, second: Item): void;
27
28
  moveSecondBeforeFirst(first: Item, second: Item): void;
28
- getById(id: string): BaseItem | undefined;
29
+ getById(id: string): Item | undefined;
29
30
  findById(id: string): Item | undefined;
30
- getEnclosed(left: number, top: number, right: number, bottom: number): Item[];
31
- getEnclosedOrCrossed(left: number, top: number, right: number, bottom: number): Item[];
32
- getUnderPoint(point: Point, tolerace?: number): Item[];
31
+ listEnclosedBy(left: number | Mbr | {
32
+ left: number;
33
+ top: number;
34
+ right: number;
35
+ bottom: number;
36
+ }, top?: number, right?: number, bottom?: number): Item[];
37
+ listEnclosedOrCrossedBy(left: number | Mbr | {
38
+ left: number;
39
+ top: number;
40
+ right: number;
41
+ bottom: number;
42
+ }, top?: number, right?: number, bottom?: number): Item[];
43
+ listUnderPoint(point: Point, tolerance?: number): Item[];
44
+ listRectsEnclosedOrCrossedBy(left: number | Mbr | {
45
+ left: number;
46
+ top: number;
47
+ right: number;
48
+ bottom: number;
49
+ }, top?: number, right?: number, bottom?: number): Mbr[];
50
+ listNearestTo(point: Point, maxItems: number, filter: (item: Item) => boolean, maxDistance: number): Item[];
33
51
  getMbr(): Mbr;
34
- list(): Item[];
52
+ listAll(): Item[];
35
53
  getZIndex(item: Item): number;
36
54
  getLastZIndex(): number;
37
55
  getByZIndex(index: number): Item;
@@ -1,13 +1,62 @@
1
1
  import { DocumentFactory } from '../api/DocumentFactory';
2
2
  import { ItemsIndexRecord } from '../BoardOperations';
3
3
  import { Camera } from '../Camera';
4
- import { Item, Mbr, Point, Connector, Comment } from '../Items';
4
+ import type { Item } from "../Items/Item";
5
+ import { Mbr } from "../Items/Mbr/Mbr";
6
+ import { Point } from "../Items/Point/Point";
7
+ import type { Connector } from "../Items/Connector/Connector";
8
+ import type { Comment } from "../Items/Comment/Comment";
9
+ import type { FrameType } from "../Items/Frame/Basic";
5
10
  import { DrawingContext } from '../Items/DrawingContext';
6
11
  import { Pointer } from '../Pointer';
7
12
  import { Subject } from '../Subject';
8
13
  import { BaseItem } from "../Items/BaseItem";
9
14
  import { ItemDataWithId } from "../Items/Item";
10
- export declare class SpatialIndex {
15
+ export declare function coerceMbr(left: number | Mbr | {
16
+ left: number;
17
+ top: number;
18
+ right: number;
19
+ bottom: number;
20
+ }, top?: number, right?: number, bottom?: number): Mbr;
21
+ export interface ISpatialIndex {
22
+ change(item: Item): void;
23
+ listAll(): Item[];
24
+ listUnderPoint(point: Point | {
25
+ x: number;
26
+ y: number;
27
+ }, tolerance?: number): Item[];
28
+ listEnclosedOrCrossedBy(rect: Mbr | {
29
+ left: number;
30
+ top: number;
31
+ right: number;
32
+ bottom: number;
33
+ } | number, top?: number, right?: number, bottom?: number): Item[];
34
+ listEnclosedBy(rect: Mbr | {
35
+ left: number;
36
+ top: number;
37
+ right: number;
38
+ bottom: number;
39
+ } | number, top?: number, right?: number, bottom?: number): Item[];
40
+ getZIndex(item: Item): number;
41
+ getById(id: string): Item | undefined;
42
+ findById(id: string): Item | undefined;
43
+ insert(item: Item): void;
44
+ remove(item: Item, preserveChildren?: boolean): void;
45
+ change(item: Item): void;
46
+ clear(): void;
47
+ getMbr(): Mbr;
48
+ listRectsEnclosedOrCrossedBy(rect: Mbr | {
49
+ left: number;
50
+ top: number;
51
+ right: number;
52
+ bottom: number;
53
+ } | number, top?: number, right?: number, bottom?: number): Mbr[];
54
+ listNearestTo(point: Point, maxItems: number, filter: (item: Item) => boolean, maxDistance: number): Item[];
55
+ getByZIndex(index: number): Item;
56
+ getLastZIndex(): number;
57
+ copy(): ItemDataWithId[];
58
+ }
59
+ export declare class SpatialIndex implements ISpatialIndex {
11
60
  subject: Subject<Items>;
12
61
  private itemsArray;
13
62
  private itemsIndex;
@@ -33,27 +82,55 @@ export declare class SpatialIndex {
33
82
  moveSecondBeforeFirst(first: Item, second: Item): void;
34
83
  getById(id: string): BaseItem | undefined;
35
84
  findById(id: string): Item | undefined;
36
- getEnclosed(left: number, top: number, right: number, bottom: number): Item[];
37
- getEnclosedOrCrossed(left: number, top: number, right: number, bottom: number): Item[];
38
- getUnderPoint(point: Point, tolerance?: number): Item[];
39
- getRectsEnclosedOrCrossed(left: number, top: number, right: number, bottom: number): Item[];
40
- getItemsEnclosedOrCrossed(left: number, top: number, right: number, bottom: number): Item[];
85
+ listEnclosedBy(left: number | Mbr | {
86
+ left: number;
87
+ top: number;
88
+ right: number;
89
+ bottom: number;
90
+ }, top?: number, right?: number, bottom?: number): Item[];
91
+ listEnclosedOrCrossedBy(left: number | Mbr | {
92
+ left: number;
93
+ top: number;
94
+ right: number;
95
+ bottom: number;
96
+ }, top?: number, right?: number, bottom?: number): Item[];
97
+ listRectsEnclosedOrCrossedBy(left: number | Mbr | {
98
+ left: number;
99
+ top: number;
100
+ right: number;
101
+ bottom: number;
102
+ }, top?: number, right?: number, bottom?: number): Mbr[];
103
+ listUnderPoint(point: Point, tolerance?: number): Item[];
104
+ listNearestTo(point: Point, maxItems: number, filter: (item: Item) => boolean, maxDistance: number): Item[];
41
105
  getComments(): Comment[];
42
106
  getMbr(): Mbr;
43
107
  getNearestTo(point: Point, maxItems: number, filter: (item: Item) => boolean, maxDistance: number): Item[];
44
- list(): Item[];
108
+ listAll(): Item[];
45
109
  getZIndex(item: Item): number;
46
110
  getLastZIndex(): number;
47
111
  getByZIndex(index: number): Item;
48
112
  }
49
113
  export declare class Items {
50
- index: SpatialIndex;
114
+ index: ISpatialIndex;
51
115
  private view;
52
116
  private pointer;
53
117
  readonly subject: Subject<Items>;
54
- constructor(index: SpatialIndex, view: Camera, pointer: Pointer, subject: Subject<Items>);
118
+ constructor(index: ISpatialIndex, view: Camera, pointer: Pointer, subject: Subject<Items>);
55
119
  update(item: Item): void;
56
120
  listAll(): Item[];
121
+ listUnderPoint(point: Point, tolerance?: number): Item[];
122
+ listEnclosedBy(left: number | Mbr | {
123
+ left: number;
124
+ top: number;
125
+ right: number;
126
+ bottom: number;
127
+ }, top?: number, right?: number, bottom?: number): Item[];
128
+ listEnclosedOrCrossedBy(left: number | Mbr | {
129
+ left: number;
130
+ top: number;
131
+ right: number;
132
+ bottom: number;
133
+ }, top?: number, right?: number, bottom?: number): Item[];
57
134
  listGroupItems(): BaseItem[];
58
135
  getById(id: string): BaseItem | undefined;
59
136
  findById(id: string): Item | undefined;
@@ -74,6 +151,8 @@ export declare class Items {
74
151
  getLastZIndex(): number;
75
152
  getLinkedConnectorsById(id: string): Connector[];
76
153
  getConnectorsByItemIds(startPointerItemId?: string, endPointerItemId?: string): Connector[];
154
+ setFrameType(frameType: FrameType): void;
155
+ getFrameType(): FrameType;
77
156
  render(context: DrawingContext): void;
78
157
  renderHTML(documentFactory: DocumentFactory): string;
79
158
  getWholeHTML(documentFactory: DocumentFactory): string;
@@ -1,7 +1,7 @@
1
1
  import { Board } from '../../Board';
2
2
  import { Connector, Item, Point } from '../../Items';
3
3
  import { ConnectorLineStyle } from '../../Items/Connector';
4
- import { ConnectionLineWidth } from '../../Items/Connector/Connector';
4
+ import { ConnectionLineWidth } from '../../Items/Connector/ConnectorTypes';
5
5
  import { ConnectorSnap } from '../../Items/Connector/ConnectorSnap';
6
6
  import { ConnectorPointerStyle } from '../../Items/Connector/Pointers/Pointers';
7
7
  import { DrawingContext } from '../../Items/DrawingContext';
@@ -19,7 +19,7 @@ export declare class CustomTool extends BoardTool {
19
19
  name: string;
20
20
  private itemClass;
21
21
  item: BaseItem;
22
- constructor(board: Board, name: string, itemClass: typeof BaseItem);
22
+ constructor(board: Board, name: string, itemClass: any);
23
23
  resetItem(): void;
24
24
  }
25
25
  export declare class ShapeTool extends CustomTool {
@@ -28,7 +28,7 @@ export declare class ShapeTool extends CustomTool {
28
28
  resizeType: ResizeType;
29
29
  bounds: Mbr;
30
30
  isDown: boolean;
31
- constructor(board: Board, name: string, item: typeof BaseItem, settings?: ShapeToolSettings | undefined);
31
+ constructor(board: Board, name: string, item: any, settings?: ShapeToolSettings | undefined);
32
32
  setCursor(): void;
33
33
  initTransformation(sx?: number, sy?: number): void;
34
34
  pointerDown(): boolean;
@@ -39,7 +39,7 @@ export declare class ShapeTool extends CustomTool {
39
39
  }
40
40
  export declare class StickerTool extends CustomTool {
41
41
  private settings;
42
- constructor(board: Board, name: string, item: typeof BaseItem, settings: StickerToolSettings);
42
+ constructor(board: Board, name: string, item: any, settings: StickerToolSettings);
43
43
  setCursor(): void;
44
44
  pointerDown(): boolean;
45
45
  keyDown(key: string): boolean;
@@ -17,7 +17,8 @@ import { ToolContext } from "./ToolContext";
17
17
  import { Subject } from "../Subject";
18
18
  import { CustomTool } from "./CustomTool";
19
19
  import { Tool } from "./Tool";
20
- export declare const registeredTools: Record<string, typeof CustomTool>;
20
+ export type CustomToolConstructor = new (board: Board, name: string, ...args: any[]) => CustomTool;
21
+ export declare const registeredTools: Record<string, CustomToolConstructor>;
21
22
  export declare class Tools extends ToolContext {
22
23
  protected board: Board;
23
24
  readonly subject: Subject<Tools>;
@@ -26,7 +27,7 @@ export declare class Tools extends ToolContext {
26
27
  addRegisteredTool(toolName: string, clearSelection?: boolean): void;
27
28
  getAddRegisteredTool(toolName: string): Tool | undefined;
28
29
  setTool(tool: BoardTool): void;
29
- switchMode(mode: any): void;
30
+ switchMode(mode: "navigate" | "select"): void;
30
31
  navigate(): void;
31
32
  getNavigate(): Navigate | undefined;
32
33
  select(clearSelection?: boolean): void;
@@ -1,5 +1,6 @@
1
1
  import { ItemData } from "../Items";
2
2
  export type ItemsMap = Record<string, ItemData>;
3
- export declare function validateItemsMap(parsedObject: any): parsedObject is ItemsMap;
4
- export declare const itemValidators: Record<string, (data: any) => boolean>;
5
- export declare function validateRichTextData(richTextData: any): boolean;
3
+ export declare function validateItemsMap(parsedObject: unknown): parsedObject is ItemsMap;
4
+ export type ItemValidator = (data: unknown) => boolean;
5
+ export declare const itemValidators: Record<string, ItemValidator>;
6
+ export declare function validateRichTextData(richTextData: unknown): boolean;
@@ -5,7 +5,7 @@ import { Path2DFactory } from "./Path2DFactory";
5
5
  * All methods are stubbed and don't perform actual path operations.
6
6
  */
7
7
  export declare class MockPath2D implements Path2DFactory {
8
- nativePath: any;
8
+ nativePath: unknown;
9
9
  private commands;
10
10
  constructor(d?: string);
11
11
  addPath(path: Path2DFactory, transform?: DOMMatrix2DInit): void;
@@ -25,7 +25,7 @@ export declare class MockPath2D implements Path2DFactory {
25
25
  */
26
26
  getCommands(): {
27
27
  method: string;
28
- args: any[];
28
+ args: unknown[];
29
29
  }[];
30
30
  /**
31
31
  * Clear all recorded commands
@@ -37,7 +37,7 @@ export declare class MockPath2D implements Path2DFactory {
37
37
  * @param method - The method name to check
38
38
  * @param args - Optional arguments to verify
39
39
  */
40
- wasCalledWith(method: string, args?: any[]): boolean;
40
+ wasCalledWith(method: string, args?: unknown[]): boolean;
41
41
  /**
42
42
  * Get the number of times a specific command was called
43
43
  * @param method - The method name to count
@@ -1,5 +1,5 @@
1
1
  export interface Path2DFactory {
2
- nativePath: any;
2
+ nativePath: unknown;
3
3
  /**
4
4
  * Adds the given path to the current path, optionally applying a transformation.
5
5
  * @param path - The Path2D to add.
@@ -1,8 +1,34 @@
1
1
  import { Board } from "./Board";
2
- import { ItemData, Item } from "./Items";
2
+ import type { RichTextData } from "./Items/RichText/RichTextData";
3
+ import type { ItemData, Item } from "./Items/Item";
4
+ import type { ShapeData } from "./Items/Shape/ShapeData";
5
+ import type { ConnectorData } from "./Items/Connector/ConnectorOperations";
6
+ import type { FrameData } from "./Items/Frame/FrameData";
7
+ import { AINodeData } from "./Items/AINode";
8
+ import { AudioItemData } from "./Items/Audio";
9
+ import { DrawingData } from "./Items/Drawing";
10
+ import { GroupData } from "./Items/Group";
11
+ import { ImageItemData } from "./Items/Image";
12
+ import { PlaceholderData } from "./Items/Placeholder";
13
+ import { StickerData } from "./Items/Sticker/StickerOperation";
14
+ import { VideoItemData } from "./Items/Video";
15
+ import { CommentData } from "./Items/Comment";
3
16
  interface ItemFactory {
4
17
  (id: string, data: ItemData, board: Board): Item;
5
18
  }
6
19
  export type ItemFactories = Record<string, ItemFactory>;
7
20
  export declare const itemFactories: ItemFactories;
21
+ export declare function isStickerData(data: ItemData): data is StickerData;
22
+ export declare function isCommentData(data: ItemData): data is CommentData;
23
+ export declare function isAINodeData(data: ItemData): data is AINodeData;
24
+ export declare function isShapeData(data: ItemData): data is ShapeData;
25
+ export declare function isRichTextData(data: ItemData): data is RichTextData;
26
+ export declare function isConnectorData(data: ItemData): data is ConnectorData;
27
+ export declare function isImageItemData(data: ItemData): data is ImageItemData;
28
+ export declare function isVideoItemData(data: ItemData): data is VideoItemData;
29
+ export declare function isAudioItemData(data: ItemData): data is AudioItemData;
30
+ export declare function isDrawingData(data: ItemData): data is DrawingData;
31
+ export declare function isFrameData(data: ItemData): data is FrameData;
32
+ export declare function isPlaceholderData(data: ItemData): data is PlaceholderData;
33
+ export declare function isGroupData(data: ItemData): data is GroupData;
8
34
  export {};
@@ -1,5 +1,4 @@
1
- import { ItemType } from "./Items";
2
- import { ItemDataWithId } from "./Items/Item";
1
+ import { ItemType, ItemDataWithId } from "./Items/Item";
3
2
  import { BaseItemData } from "./Items/BaseItem/BaseItem";
4
3
  type MapTagByType = Record<ItemType, string>;
5
4
  export declare const tagByType: MapTagByType;
@@ -1,2 +1,2 @@
1
- export declare function sha256(message: any): Promise<string>;
1
+ export declare function sha256(message: string): Promise<string>;
2
2
  export declare function fileTosha256(file: File): Promise<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microboard-temp",
3
- "version": "0.13.41",
3
+ "version": "0.13.43",
4
4
  "description": "A flexible interactive whiteboard library",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",