@idraw/core 0.4.0-beta.35 → 0.4.0-beta.37

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 (30) hide show
  1. package/dist/esm/index.js +1 -0
  2. package/dist/esm/middleware/info/config.d.ts +1 -0
  3. package/dist/esm/middleware/info/config.js +1 -0
  4. package/dist/esm/middleware/info/draw-info.d.ts +1 -1
  5. package/dist/esm/middleware/info/index.d.ts +7 -1
  6. package/dist/esm/middleware/info/index.js +27 -14
  7. package/dist/esm/middleware/layout-selector/config.d.ts +3 -1
  8. package/dist/esm/middleware/layout-selector/config.js +3 -1
  9. package/dist/esm/middleware/layout-selector/index.d.ts +2 -2
  10. package/dist/esm/middleware/layout-selector/index.js +40 -32
  11. package/dist/esm/middleware/layout-selector/types.d.ts +4 -2
  12. package/dist/esm/middleware/layout-selector/types.js +1 -1
  13. package/dist/esm/middleware/selector/config.d.ts +2 -0
  14. package/dist/esm/middleware/selector/config.js +2 -0
  15. package/dist/esm/middleware/selector/draw-debug.d.ts +5 -0
  16. package/dist/esm/middleware/selector/draw-debug.js +30 -0
  17. package/dist/esm/middleware/selector/draw-wrapper.d.ts +1 -0
  18. package/dist/esm/middleware/selector/draw-wrapper.js +8 -6
  19. package/dist/esm/middleware/selector/index.d.ts +6 -1
  20. package/dist/esm/middleware/selector/index.js +46 -30
  21. package/dist/esm/middleware/selector/pattern/icon-rotate.d.ts +4 -0
  22. package/dist/esm/middleware/selector/pattern/icon-rotate.js +88 -0
  23. package/dist/esm/middleware/selector/pattern/index.d.ts +5 -0
  24. package/dist/esm/middleware/selector/pattern/index.js +38 -0
  25. package/dist/esm/middleware/selector/types.d.ts +2 -1
  26. package/dist/esm/middleware/selector/types.js +1 -1
  27. package/dist/esm/middleware/selector/util.js +1 -1
  28. package/dist/index.global.js +760 -551
  29. package/dist/index.global.min.js +1 -1
  30. package/package.json +5 -5
@@ -0,0 +1,88 @@
1
+ import { createUUID } from '@idraw/util';
2
+ export const createIconRotate = (opts) => {
3
+ const iconRotate = {
4
+ uuid: createUUID(),
5
+ type: 'path',
6
+ x: 0,
7
+ y: 0,
8
+ w: 200,
9
+ h: 200,
10
+ detail: Object.assign({ commands: [
11
+ {
12
+ type: 'M',
13
+ params: [512, 0]
14
+ },
15
+ {
16
+ type: 'c',
17
+ params: [282.8, 0, 512, 229.2, 512, 512]
18
+ },
19
+ {
20
+ type: 's',
21
+ params: [-229.2, 512, -512, 512]
22
+ },
23
+ {
24
+ type: 'S',
25
+ params: [0, 794.8, 0, 512, 229.2, 0, 512, 0]
26
+ },
27
+ {
28
+ type: 'z',
29
+ params: []
30
+ },
31
+ {
32
+ type: 'm',
33
+ params: [309.8, 253.8]
34
+ },
35
+ {
36
+ type: 'c',
37
+ params: [0, -10.5, -6.5, -19.8, -15.7, -23.8, -9.7, -4, -21, -2, -28.2, 5.6]
38
+ },
39
+ {
40
+ type: 'l',
41
+ params: [-52.5, 52]
42
+ },
43
+ {
44
+ type: 'c',
45
+ params: [
46
+ -56.9, -53.7, -133.9, -85.5, -213.4, -85.5, -170.7, 0, -309.8, 139.2, -309.8, 309.8, 0, 170.6, 139.2, 309.8, 309.8, 309.8, 92.4, 0, 179.5, -40.8,
47
+ 238.4, -111.8, 4, -5.2, 4, -12.9, -0.8, -17.3
48
+ ]
49
+ },
50
+ {
51
+ type: 'L',
52
+ params: [694.3, 637]
53
+ },
54
+ {
55
+ type: 'c',
56
+ params: [
57
+ -2.8, -2.4, -6.5, -3.6, -10.1, -3.6, -3.6, 0.4, -7.3, 2, -9.3, 4.8, -39.5, 51.2, -98.8, 80.3, -163, 80.3, -113.8, 0, -206.5, -92.8, -206.5, -206.5,
58
+ 0, -113.8, 92.8, -206.5, 206.5, -206.5, 52.8, 0, 102.9, 20.2, 140.8, 55.3
59
+ ]
60
+ },
61
+ {
62
+ type: 'L',
63
+ params: [597, 416.5]
64
+ },
65
+ {
66
+ type: 'c',
67
+ params: [-7.7, 7.3, -9.7, 18.6, -5.6, 27.9, 4, 9.7, 13.3, 16.1, 23.8, 16.1]
68
+ },
69
+ {
70
+ type: 'H',
71
+ params: [796]
72
+ },
73
+ {
74
+ type: 'c',
75
+ params: [14.1, 0, 25.8, -11.7, 25.8, -25.8]
76
+ },
77
+ {
78
+ type: 'V',
79
+ params: [253.8]
80
+ },
81
+ {
82
+ type: 'z',
83
+ params: []
84
+ }
85
+ ], fill: '#2c2c2c', stroke: 'transparent', strokeWidth: 0, originX: 0, originY: 0, originW: 1024, originH: 1024, opacity: 1 }, opts)
86
+ };
87
+ return iconRotate;
88
+ };
@@ -0,0 +1,5 @@
1
+ import type { ViewContext2D } from '@idraw/types';
2
+ export declare function createRotateControllerPattern(opts: {
3
+ fill: string;
4
+ devicePixelRatio: number;
5
+ }): ViewContext2D;
@@ -0,0 +1,38 @@
1
+ import { createOffscreenContext2D } from '@idraw/util';
2
+ import { drawElement } from '@idraw/renderer';
3
+ import { createIconRotate } from './icon-rotate';
4
+ export function createRotateControllerPattern(opts) {
5
+ const { fill, devicePixelRatio } = opts;
6
+ const iconRotate = createIconRotate({ fill });
7
+ const { w, h } = iconRotate;
8
+ const context2d = createOffscreenContext2D({
9
+ width: w,
10
+ height: h,
11
+ devicePixelRatio
12
+ });
13
+ drawElement(context2d, iconRotate, {
14
+ loader: undefined,
15
+ viewScaleInfo: {
16
+ scale: 1,
17
+ offsetTop: 0,
18
+ offsetBottom: 0,
19
+ offsetLeft: 0,
20
+ offsetRight: 0
21
+ },
22
+ viewSizeInfo: {
23
+ width: w,
24
+ height: h,
25
+ devicePixelRatio,
26
+ contextWidth: w,
27
+ contextHeight: h
28
+ },
29
+ parentElementSize: {
30
+ x: 0,
31
+ y: 0,
32
+ w,
33
+ h
34
+ },
35
+ parentOpacity: 1
36
+ });
37
+ return context2d;
38
+ }
@@ -1,6 +1,6 @@
1
1
  import { Data, ElementSize, ElementType, Element, ViewContext2D, Point, PointSize, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, BoardMiddleware, ViewRectVertexes, ElementSizeController, ElementPosition } from '@idraw/types';
2
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';
3
- import { keyLayoutIsSelected } from '../layout-selector';
3
+ import { keyLayoutIsSelected, keyLayoutIsBusyMoving } from '../layout-selector';
4
4
  export { Data, ElementType, Element, ElementSize, ViewContext2D, Point, PointSize, ViewScaleInfo, ViewSizeInfo, ViewCalculator, PointWatcherEvent, BoardMiddleware };
5
5
  export type ControllerStyle = ElementSize & {
6
6
  borderWidth: number;
@@ -42,4 +42,5 @@ export type DeepSelectorSharedStorage = {
42
42
  [keyDebugStartHorizontal]: PointSize | null;
43
43
  [keyDebugStartVertical]: PointSize | null;
44
44
  [keyLayoutIsSelected]: boolean | null;
45
+ [keyLayoutIsBusyMoving]: boolean | null;
45
46
  };
@@ -1,2 +1,2 @@
1
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';
2
- import { keyLayoutIsSelected } from '../layout-selector';
2
+ import { keyLayoutIsSelected, keyLayoutIsBusyMoving } from '../layout-selector';
@@ -679,7 +679,7 @@ export function rotateElement(elem, opts) {
679
679
  });
680
680
  const startAngle = limitAngle(angle);
681
681
  const changedRadian = calcRadian(elemCenter, start, end);
682
- const endAngle = startAngle + parseRadianToAngle(changedRadian);
682
+ const endAngle = limitAngle(startAngle + parseRadianToAngle(changedRadian));
683
683
  return {
684
684
  x,
685
685
  y,