@idraw/core 0.4.0-beta.9 → 0.4.0

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 (101) hide show
  1. package/dist/esm/board/index.d.ts +44 -0
  2. package/dist/esm/board/index.js +366 -0
  3. package/dist/esm/board/sharer.d.ts +21 -0
  4. package/dist/esm/board/sharer.js +101 -0
  5. package/dist/esm/board/viewer.d.ts +32 -0
  6. package/dist/esm/board/viewer.js +165 -0
  7. package/dist/esm/board/watcher.d.ts +15 -0
  8. package/dist/esm/board/watcher.js +218 -0
  9. package/dist/esm/config.d.ts +28 -0
  10. package/dist/esm/config.js +34 -0
  11. package/dist/esm/{lib → cursor}/cursor-image.d.ts +1 -0
  12. package/dist/esm/{lib → cursor}/cursor-image.js +1 -0
  13. package/dist/esm/cursor/cursor.d.ts +7 -0
  14. package/dist/esm/cursor/cursor.js +154 -0
  15. package/dist/esm/index.d.ts +39 -10
  16. package/dist/esm/index.js +296 -17
  17. package/dist/esm/middlewares/dragger/index.d.ts +7 -0
  18. package/dist/esm/{middleware → middlewares}/dragger/index.js +4 -3
  19. package/dist/esm/middlewares/info/config.d.ts +5 -0
  20. package/dist/esm/middlewares/info/config.js +9 -0
  21. package/dist/esm/middlewares/info/draw-info.d.ts +29 -0
  22. package/dist/esm/middlewares/info/draw-info.js +113 -0
  23. package/dist/esm/middlewares/info/index.d.ts +9 -0
  24. package/dist/esm/middlewares/info/index.js +131 -0
  25. package/dist/esm/middlewares/info/types.d.ts +3 -0
  26. package/dist/esm/middlewares/info/types.js +1 -0
  27. package/dist/esm/middlewares/layout-selector/config.d.ts +11 -0
  28. package/dist/esm/middlewares/layout-selector/config.js +12 -0
  29. package/dist/esm/middlewares/layout-selector/index.d.ts +5 -0
  30. package/dist/esm/middlewares/layout-selector/index.js +371 -0
  31. package/dist/esm/middlewares/layout-selector/types.d.ts +17 -0
  32. package/dist/esm/middlewares/layout-selector/types.js +2 -0
  33. package/dist/esm/middlewares/layout-selector/util.d.ts +9 -0
  34. package/dist/esm/middlewares/layout-selector/util.js +78 -0
  35. package/dist/esm/middlewares/pointer/index.d.ts +3 -0
  36. package/dist/esm/middlewares/pointer/index.js +42 -0
  37. package/dist/esm/middlewares/pointer/types.d.ts +3 -0
  38. package/dist/esm/middlewares/pointer/types.js +1 -0
  39. package/dist/esm/middlewares/ruler/config.d.ts +7 -0
  40. package/dist/esm/middlewares/ruler/config.js +21 -0
  41. package/dist/esm/middlewares/ruler/index.d.ts +3 -0
  42. package/dist/esm/middlewares/ruler/index.js +66 -0
  43. package/dist/esm/middlewares/ruler/types.d.ts +3 -0
  44. package/dist/esm/middlewares/ruler/types.js +1 -0
  45. package/dist/esm/{middleware → middlewares}/ruler/util.d.ts +20 -4
  46. package/dist/esm/{middleware → middlewares}/ruler/util.js +99 -26
  47. package/dist/esm/middlewares/scaler/index.d.ts +2 -0
  48. package/dist/esm/{middleware → middlewares}/scaler/index.js +2 -2
  49. package/dist/esm/{middleware → middlewares}/scroller/config.d.ts +4 -0
  50. package/dist/esm/middlewares/scroller/config.js +16 -0
  51. package/dist/esm/middlewares/scroller/index.d.ts +3 -0
  52. package/dist/esm/{middleware → middlewares}/scroller/index.js +47 -6
  53. package/dist/esm/middlewares/scroller/types.d.ts +11 -0
  54. package/dist/esm/middlewares/scroller/types.js +1 -0
  55. package/dist/esm/{middleware → middlewares}/scroller/util.d.ts +3 -2
  56. package/dist/esm/{middleware → middlewares}/scroller/util.js +33 -44
  57. package/dist/esm/{middleware → middlewares}/selector/config.d.ts +9 -1
  58. package/dist/esm/{middleware → middlewares}/selector/config.js +17 -1
  59. package/dist/esm/middlewares/selector/draw-auxiliary.d.ts +1 -0
  60. package/dist/esm/middlewares/selector/draw-auxiliary.js +12 -0
  61. package/dist/esm/middlewares/selector/draw-base.d.ts +30 -0
  62. package/dist/esm/middlewares/selector/draw-base.js +100 -0
  63. package/dist/esm/middlewares/selector/draw-debug.d.ts +5 -0
  64. package/dist/esm/middlewares/selector/draw-debug.js +30 -0
  65. package/dist/esm/middlewares/selector/draw-reference.d.ts +7 -0
  66. package/dist/esm/middlewares/selector/draw-reference.js +31 -0
  67. package/dist/esm/{middleware → middlewares}/selector/draw-wrapper.d.ts +16 -1
  68. package/dist/esm/middlewares/selector/draw-wrapper.js +139 -0
  69. package/dist/esm/middlewares/selector/index.d.ts +11 -0
  70. package/dist/esm/middlewares/selector/index.js +879 -0
  71. package/dist/esm/middlewares/selector/pattern/icon-rotate.d.ts +4 -0
  72. package/dist/esm/middlewares/selector/pattern/icon-rotate.js +88 -0
  73. package/dist/esm/middlewares/selector/pattern/index.d.ts +8 -0
  74. package/dist/esm/middlewares/selector/pattern/index.js +38 -0
  75. package/dist/esm/middlewares/selector/reference.d.ts +13 -0
  76. package/dist/esm/middlewares/selector/reference.js +267 -0
  77. package/dist/esm/{middleware → middlewares}/selector/types.d.ts +11 -5
  78. package/dist/esm/middlewares/selector/types.js +2 -0
  79. package/dist/esm/{middleware → middlewares}/selector/util.d.ts +14 -7
  80. package/dist/esm/{middleware → middlewares}/selector/util.js +46 -43
  81. package/dist/esm/middlewares/text-editor/index.d.ts +20 -0
  82. package/dist/esm/middlewares/text-editor/index.js +286 -0
  83. package/dist/esm/record.d.ts +5 -0
  84. package/dist/esm/record.js +38 -0
  85. package/dist/index.global.js +5740 -1632
  86. package/dist/index.global.min.js +1 -1
  87. package/package.json +5 -6
  88. package/dist/esm/lib/cursor.d.ts +0 -16
  89. package/dist/esm/lib/cursor.js +0 -129
  90. package/dist/esm/middleware/dragger/index.d.ts +0 -7
  91. package/dist/esm/middleware/ruler/index.d.ts +0 -3
  92. package/dist/esm/middleware/ruler/index.js +0 -48
  93. package/dist/esm/middleware/scaler/index.d.ts +0 -3
  94. package/dist/esm/middleware/scroller/config.js +0 -6
  95. package/dist/esm/middleware/scroller/index.d.ts +0 -2
  96. package/dist/esm/middleware/selector/draw-wrapper.js +0 -107
  97. package/dist/esm/middleware/selector/index.d.ts +0 -5
  98. package/dist/esm/middleware/selector/index.js +0 -510
  99. package/dist/esm/middleware/selector/types.js +0 -1
  100. package/dist/esm/middleware/text-editor/index.d.ts +0 -3
  101. package/dist/esm/middleware/text-editor/index.js +0 -147
@@ -0,0 +1,139 @@
1
+ import { rotateElementVertexes, calcViewPointSize, calcViewVertexes, calcViewElementSize } from '@idraw/util';
2
+ import { resizeControllerBorderWidth, areaBorderWidth, selectWrapperBorderWidth } from './config';
3
+ import { drawVertexes, drawCircleController, drawCrossVertexes } from './draw-base';
4
+ export function drawHoverVertexesWrapper(ctx, vertexes, opts) {
5
+ if (!vertexes) {
6
+ return;
7
+ }
8
+ const { style } = opts;
9
+ const { activeColor } = style;
10
+ const wrapperOpts = { borderColor: activeColor, borderWidth: 1, background: 'transparent', lineDash: [] };
11
+ drawVertexes(ctx, calcViewVertexes(vertexes, opts), wrapperOpts);
12
+ }
13
+ export function drawLockedVertexesWrapper(ctx, vertexes, opts) {
14
+ if (!vertexes) {
15
+ return;
16
+ }
17
+ const { style } = opts;
18
+ const { lockedColor } = style;
19
+ const wrapperOpts = { borderColor: lockedColor, borderWidth: 1, background: 'transparent', lineDash: [] };
20
+ drawVertexes(ctx, calcViewVertexes(vertexes, opts), wrapperOpts);
21
+ const { controller } = opts;
22
+ if (controller) {
23
+ const { topLeft, topRight, bottomLeft, bottomRight, topMiddle, bottomMiddle, leftMiddle, rightMiddle } = controller;
24
+ const ctrlOpts = Object.assign(Object.assign({}, wrapperOpts), { borderWidth: 1, background: lockedColor });
25
+ drawCrossVertexes(ctx, calcViewVertexes(topMiddle.vertexes, opts), ctrlOpts);
26
+ drawCrossVertexes(ctx, calcViewVertexes(bottomMiddle.vertexes, opts), ctrlOpts);
27
+ drawCrossVertexes(ctx, calcViewVertexes(leftMiddle.vertexes, opts), ctrlOpts);
28
+ drawCrossVertexes(ctx, calcViewVertexes(rightMiddle.vertexes, opts), ctrlOpts);
29
+ drawCrossVertexes(ctx, calcViewVertexes(topLeft.vertexes, opts), ctrlOpts);
30
+ drawCrossVertexes(ctx, calcViewVertexes(topRight.vertexes, opts), ctrlOpts);
31
+ drawCrossVertexes(ctx, calcViewVertexes(bottomLeft.vertexes, opts), ctrlOpts);
32
+ drawCrossVertexes(ctx, calcViewVertexes(bottomRight.vertexes, opts), ctrlOpts);
33
+ }
34
+ }
35
+ export function drawSelectedElementControllersVertexes(ctx, controller, opts) {
36
+ var _a;
37
+ if (!controller) {
38
+ return;
39
+ }
40
+ const { hideControllers, style, rotateControllerPattern, viewSizeInfo, element } = opts;
41
+ const { devicePixelRatio = 1 } = viewSizeInfo;
42
+ const { activeColor } = style;
43
+ const { elementWrapper, topLeft, topRight, bottomLeft, bottomRight, rotate } = controller;
44
+ const wrapperOpts = {
45
+ borderColor: activeColor,
46
+ borderWidth: selectWrapperBorderWidth,
47
+ background: 'transparent',
48
+ lineDash: []
49
+ };
50
+ const ctrlOpts = Object.assign(Object.assign({}, wrapperOpts), { borderWidth: resizeControllerBorderWidth, background: '#FFFFFF' });
51
+ drawVertexes(ctx, calcViewVertexes(elementWrapper, opts), wrapperOpts);
52
+ if (!hideControllers) {
53
+ drawVertexes(ctx, calcViewVertexes(topLeft.vertexes, opts), ctrlOpts);
54
+ drawVertexes(ctx, calcViewVertexes(topRight.vertexes, opts), ctrlOpts);
55
+ drawVertexes(ctx, calcViewVertexes(bottomLeft.vertexes, opts), ctrlOpts);
56
+ drawVertexes(ctx, calcViewVertexes(bottomRight.vertexes, opts), ctrlOpts);
57
+ if (((_a = element === null || element === void 0 ? void 0 : element.operations) === null || _a === void 0 ? void 0 : _a.rotatable) !== false) {
58
+ drawCircleController(ctx, calcViewPointSize(rotate.center, opts), Object.assign(Object.assign({}, ctrlOpts), { size: rotate.size, borderWidth: 0 }));
59
+ const rotateCenter = calcViewPointSize(rotate.center, opts);
60
+ ctx.drawImage(rotateControllerPattern.canvas, 0, 0, rotateControllerPattern.canvas.width / devicePixelRatio, rotateControllerPattern.canvas.height / devicePixelRatio, rotateCenter.x - rotate.size / 2, rotateCenter.y - rotate.size / 2, rotate.size, rotate.size);
61
+ }
62
+ }
63
+ }
64
+ export function drawElementListShadows(ctx, elements, opts) {
65
+ elements.forEach((elem) => {
66
+ let { x, y, w, h } = elem;
67
+ const { angle = 0 } = elem;
68
+ if (opts === null || opts === void 0 ? void 0 : opts.calculator) {
69
+ const size = calcViewElementSize({ x, y, w, h }, opts);
70
+ x = size.x;
71
+ y = size.y;
72
+ w = size.w;
73
+ h = size.h;
74
+ }
75
+ const vertexes = rotateElementVertexes({ x, y, w, h, angle });
76
+ if (vertexes.length >= 2) {
77
+ ctx.setLineDash([]);
78
+ ctx.lineWidth = 1;
79
+ ctx.strokeStyle = '#aaaaaa';
80
+ ctx.fillStyle = '#0000001A';
81
+ ctx.beginPath();
82
+ ctx.moveTo(vertexes[0].x, vertexes[0].y);
83
+ for (let i = 0; i < vertexes.length; i++) {
84
+ const p = vertexes[i];
85
+ ctx.lineTo(p.x, p.y);
86
+ }
87
+ ctx.closePath();
88
+ ctx.stroke();
89
+ ctx.fill('nonzero');
90
+ }
91
+ });
92
+ }
93
+ export function drawArea(ctx, opts) {
94
+ const { start, end, style } = opts;
95
+ const { activeColor, activeAreaColor } = style;
96
+ ctx.setLineDash([]);
97
+ ctx.lineWidth = areaBorderWidth;
98
+ ctx.strokeStyle = activeColor;
99
+ ctx.fillStyle = activeAreaColor;
100
+ ctx.beginPath();
101
+ ctx.moveTo(start.x, start.y);
102
+ ctx.lineTo(end.x, start.y);
103
+ ctx.lineTo(end.x, end.y);
104
+ ctx.lineTo(start.x, end.y);
105
+ ctx.closePath();
106
+ ctx.stroke();
107
+ ctx.fill('nonzero');
108
+ }
109
+ export function drawListArea(ctx, opts) {
110
+ const { areaSize, style } = opts;
111
+ const { activeColor, activeAreaColor } = style;
112
+ const { x, y, w, h } = areaSize;
113
+ ctx.setLineDash([]);
114
+ ctx.lineWidth = areaBorderWidth;
115
+ ctx.strokeStyle = activeColor;
116
+ ctx.fillStyle = activeAreaColor;
117
+ ctx.beginPath();
118
+ ctx.moveTo(x, y);
119
+ ctx.lineTo(x + w, y);
120
+ ctx.lineTo(x + w, y + h);
121
+ ctx.lineTo(x, y + h);
122
+ ctx.closePath();
123
+ ctx.stroke();
124
+ ctx.fill('nonzero');
125
+ }
126
+ export function drawGroupQueueVertexesWrappers(ctx, vertexesList, opts) {
127
+ const { style } = opts;
128
+ const { activeColor } = style;
129
+ for (let i = 0; i < vertexesList.length; i++) {
130
+ const vertexes = vertexesList[i];
131
+ const wrapperOpts = {
132
+ borderColor: activeColor,
133
+ borderWidth: selectWrapperBorderWidth,
134
+ background: 'transparent',
135
+ lineDash: [4, 4]
136
+ };
137
+ drawVertexes(ctx, calcViewVertexes(vertexes, opts), wrapperOpts);
138
+ }
139
+ }
@@ -0,0 +1,11 @@
1
+ import type { CoreEventMap, MiddlewareSelectorConfig } from '@idraw/types';
2
+ import type { Middleware, ActionType, DeepSelectorSharedStorage } from './types';
3
+ import { keyActionType, keyResizeType, keyGroupQueue, keyHoverElement, keySelectedElementList } from './config';
4
+ import { MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE } from '../info';
5
+ export { keySelectedElementList, keyHoverElement, keyActionType, keyResizeType, keyGroupQueue };
6
+ export type { DeepSelectorSharedStorage, ActionType };
7
+ export declare const MiddlewareSelector: Middleware<DeepSelectorSharedStorage, CoreEventMap & {
8
+ [MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE]: {
9
+ show: boolean;
10
+ };
11
+ }, MiddlewareSelectorConfig>;