@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,46 +1,46 @@
1
- import { Data, ElementSize, ElementType, Element, ViewContext2D, Point, PointSize, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, Middleware, ViewRectVertexes, ElementSizeController, ElementPosition } from '@idraw/types';
2
- import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keySelectedElementPosition, keyIsMoving, keyEnableSelectInGroup, keyEnableSnapToGrid, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config';
1
+ import { Data, MaterialSize, MaterialType, StrictMaterial, Material, ViewContext2D, Point, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, Middleware, ViewRectVertexes, MaterialPosition, ModifyRecord } from '@idraw/types';
2
+ import { keyPrevPoint, keyPointStartMaterialSizeList, keyMoveOriginalStartPoint, keyMoveOriginalStartMaterialSize, keyInBusyMode, keyHasChangedData, keyStartResizeGroupRecord, keyEndResizeGroupRecord, keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyHoverMaterial, keySelectedMaterialList, keySelectedMaterialListVertexes, keySelectedMaterialPosition, keyIsMoving, keyEnableSelectInGroup, keyEnableSnapToGrid } from './static';
3
3
  import { keyLayoutIsSelected, keyLayoutIsBusyMoving } from '../layout-selector';
4
- export { Data, ElementType, Element, ElementSize, ViewContext2D, Point, PointSize, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, Middleware };
5
- export type ControllerStyle = ElementSize & {
6
- borderWidth: number;
7
- borderColor: string;
4
+ export { Data, MaterialType, Material, MaterialSize, ViewContext2D, Point, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, Middleware, };
5
+ export type ControllerStyle = MaterialSize & {
6
+ strokeWidth: number;
7
+ stroke: string;
8
8
  background: string;
9
9
  };
10
- export type SelectedElementSizeController = Record<string, ControllerStyle>;
10
+ export type SelectedMaterialSizeController = Record<string, ControllerStyle>;
11
11
  export type ResizeType = 'resize-left' | 'resize-right' | 'resize-top' | 'resize-bottom' | 'resize-top-left' | 'resize-top-right' | 'resize-bottom-left' | 'resize-bottom-right' | 'resize-rotate';
12
- export type PointTargetType = null | ResizeType | 'list-area' | 'over-element';
12
+ export type PointTargetType = null | ResizeType | 'list-area' | 'over-material';
13
13
  export interface PointTarget {
14
14
  type: PointTargetType;
15
- elements: Element<ElementType>[];
16
- groupQueue: Element<'group'>[];
17
- elementVertexesList: ViewRectVertexes[];
18
- groupQueueVertexesList: ViewRectVertexes[];
15
+ materials: StrictMaterial<MaterialType>[];
16
+ groupQueue: StrictMaterial<'group'>[];
17
+ materialVertexesList: ViewRectVertexes[];
19
18
  }
20
- export type AreaSize = ElementSize;
19
+ export type AreaSize = MaterialSize;
21
20
  export type ActionType = 'select' | 'drag-list' | 'drag-list-end' | 'drag' | 'hover' | 'resize' | 'area' | null;
22
21
  export type DeepSelectorSharedStorage = {
22
+ [keyPrevPoint]: Point | null;
23
+ [keyPointStartMaterialSizeList]: Array<Partial<MaterialSize> & {
24
+ id: string;
25
+ }>;
26
+ [keyMoveOriginalStartPoint]: Point | null;
27
+ [keyMoveOriginalStartMaterialSize]: MaterialSize | null;
28
+ [keyInBusyMode]: 'resize' | 'drag' | 'drag-list' | 'area' | null;
29
+ [keyHasChangedData]: boolean | null;
30
+ [keyStartResizeGroupRecord]: ModifyRecord<'resizeMaterials'> | null;
31
+ [keyEndResizeGroupRecord]: ModifyRecord<'resizeMaterials'> | null;
23
32
  [keyActionType]: ActionType | null;
24
33
  [keyResizeType]: ResizeType | null;
25
34
  [keyAreaStart]: Point | null;
26
35
  [keyAreaEnd]: Point | null;
27
- [keyGroupQueue]: Element<'group'>[];
28
- [keyGroupQueueVertexesList]: ViewRectVertexes[];
29
- [keyHoverElement]: Element<ElementType> | null;
30
- [keyHoverElementVertexes]: ViewRectVertexes | null;
31
- [keySelectedElementList]: Array<Element<ElementType>>;
32
- [keySelectedElementListVertexes]: ViewRectVertexes | null;
33
- [keySelectedElementController]: ElementSizeController | null;
34
- [keySelectedElementPosition]: ElementPosition;
36
+ [keyGroupQueue]: StrictMaterial<'group'>[];
37
+ [keyHoverMaterial]: StrictMaterial<MaterialType> | null;
38
+ [keySelectedMaterialList]: Array<StrictMaterial<MaterialType>>;
39
+ [keySelectedMaterialListVertexes]: ViewRectVertexes | null;
40
+ [keySelectedMaterialPosition]: MaterialPosition;
35
41
  [keyIsMoving]: boolean | null;
36
42
  [keyEnableSelectInGroup]: boolean | null;
37
43
  [keyEnableSnapToGrid]: boolean | null;
38
- [keyDebugElemCenter]: PointSize | null;
39
- [keyDebugEnd0]: PointSize | null;
40
- [keyDebugEndHorizontal]: PointSize | null;
41
- [keyDebugEndVertical]: PointSize | null;
42
- [keyDebugStartHorizontal]: PointSize | null;
43
- [keyDebugStartVertical]: PointSize | null;
44
44
  [keyLayoutIsSelected]: boolean | null;
45
45
  [keyLayoutIsBusyMoving]: boolean | null;
46
46
  };
@@ -1,2 +1,2 @@
1
- import { keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyGroupQueueVertexesList, keyHoverElement, keyHoverElementVertexes, keySelectedElementList, keySelectedElementListVertexes, keySelectedElementController, keySelectedElementPosition, keyIsMoving, keyEnableSelectInGroup, keyEnableSnapToGrid, keyDebugElemCenter, keyDebugEnd0, keyDebugEndHorizontal, keyDebugEndVertical, keyDebugStartHorizontal, keyDebugStartVertical } from './config';
1
+ import { keyPrevPoint, keyPointStartMaterialSizeList, keyMoveOriginalStartPoint, keyMoveOriginalStartMaterialSize, keyInBusyMode, keyHasChangedData, keyStartResizeGroupRecord, keyEndResizeGroupRecord, keyActionType, keyResizeType, keyAreaStart, keyAreaEnd, keyGroupQueue, keyHoverMaterial, keySelectedMaterialList, keySelectedMaterialListVertexes, keySelectedMaterialPosition, keyIsMoving, keyEnableSelectInGroup, keyEnableSnapToGrid, } from './static';
2
2
  import { keyLayoutIsSelected, keyLayoutIsBusyMoving } from '../layout-selector';
@@ -1,46 +1,36 @@
1
- import type { ViewRectVertexes, ElementSizeController, StoreSharer, ViewScaleInfo, ViewSizeInfo, ElementOperations } from '@idraw/types';
2
- import type { Data, Element, ViewContext2D, Point, PointSize, PointTarget, ViewCalculator, ElementType, ElementSize, ResizeType, AreaSize } from './types';
3
- export declare function isPointInViewActiveVertexes(p: PointSize, opts: {
4
- ctx: ViewContext2D;
5
- vertexes: ViewRectVertexes;
6
- viewScaleInfo: ViewScaleInfo;
7
- viewSizeInfo: ViewSizeInfo;
8
- }): boolean;
9
- export declare function isPointInViewActiveGroup(p: PointSize, opts: {
10
- ctx: ViewContext2D;
11
- viewScaleInfo: ViewScaleInfo;
12
- viewSizeInfo: ViewSizeInfo;
13
- groupQueue: Element<'group'>[] | null;
14
- }): boolean;
15
- export declare function getPointTarget(p: PointSize, opts: {
1
+ import type { StoreSharer, ViewScaleInfo, ViewSizeInfo, ViewCalculator, MaterialOperations, StrictMaterial } from '@idraw/types';
2
+ import type { Data, ViewContext2D, Point, PointTarget, MaterialType, MaterialSize, ResizeType, AreaSize } from './types';
3
+ export declare function getPointTarget(p: Point, opts: {
16
4
  ctx: ViewContext2D;
17
5
  data?: Data | null;
18
- selectedElements?: Element<ElementType>[];
6
+ selectedMaterials?: StrictMaterial<MaterialType>[];
19
7
  areaSize?: AreaSize | null;
20
8
  viewScaleInfo: ViewScaleInfo;
21
9
  viewSizeInfo: ViewSizeInfo;
22
10
  calculator: ViewCalculator;
23
- groupQueue: Element<'group'>[] | null;
24
- selectedElementController: ElementSizeController | null;
11
+ groupQueue: StrictMaterial<'group'>[] | null;
12
+ nativeEvent: Event;
25
13
  }): PointTarget;
26
- export declare function resizeElement(elem: ElementSize & {
27
- operations?: ElementOperations;
14
+ export declare function resizeMaterial(mtrl: MaterialSize & {
15
+ operations?: MaterialOperations;
28
16
  }, opts: {
29
- start: PointSize;
30
- end: PointSize;
17
+ start: Point;
18
+ end: Point;
31
19
  resizeType: ResizeType;
32
20
  scale: number;
33
21
  sharer: StoreSharer;
34
- }): ElementSize;
35
- export declare function rotateElement(elem: ElementSize, opts: {
36
- center: PointSize;
37
- start: PointSize;
38
- end: PointSize;
22
+ calculator: ViewCalculator;
23
+ }): MaterialSize;
24
+ export declare function rotateMaterial(mtrl: MaterialSize, opts: {
25
+ center: Point;
26
+ start: Point;
27
+ end: Point;
39
28
  resizeType: ResizeType;
40
29
  viewScaleInfo: ViewScaleInfo;
41
30
  viewSizeInfo: ViewSizeInfo;
42
31
  sharer: StoreSharer;
43
- }): ElementSize;
32
+ calculator: ViewCalculator;
33
+ }): MaterialSize;
44
34
  export declare function getSelectedListArea(data: Data, opts: {
45
35
  start: Point;
46
36
  end: Point;
@@ -49,12 +39,12 @@ export declare function getSelectedListArea(data: Data, opts: {
49
39
  calculator: ViewCalculator;
50
40
  }): {
51
41
  indexes: number[];
52
- uuids: string[];
53
- elements: Element<ElementType>[];
42
+ ids: string[];
43
+ materials: StrictMaterial<MaterialType>[];
54
44
  };
55
- export declare function calcSelectedElementsArea(elements: Element<ElementType>[], opts: {
45
+ export declare function calcSelectedMaterialsArea(materials: StrictMaterial<MaterialType>[], opts: {
56
46
  viewScaleInfo: ViewScaleInfo;
57
47
  viewSizeInfo: ViewSizeInfo;
58
48
  calculator: ViewCalculator;
59
49
  }): AreaSize | null;
60
- export declare function isElementInGroup(elem: Element<ElementType>, group: Element<'group'>): boolean;
50
+ export declare function isMaterialInGroup(mtrl: StrictMaterial<MaterialType>, group: StrictMaterial<'group'>): boolean;