@idraw/core 0.4.0-beta.4 → 0.4.0-beta.41

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 (87) hide show
  1. package/dist/esm/board/index.d.ts +44 -0
  2. package/dist/esm/board/index.js +358 -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/index.d.ts +37 -8
  12. package/dist/esm/index.js +265 -10
  13. package/dist/esm/lib/cursor-image.d.ts +1 -0
  14. package/dist/esm/lib/cursor-image.js +1 -0
  15. package/dist/esm/lib/cursor.d.ts +3 -12
  16. package/dist/esm/lib/cursor.js +137 -112
  17. package/dist/esm/middleware/dragger/index.d.ts +2 -2
  18. package/dist/esm/middleware/dragger/index.js +5 -3
  19. package/dist/esm/middleware/info/config.d.ts +5 -0
  20. package/dist/esm/middleware/info/config.js +9 -0
  21. package/dist/esm/middleware/info/draw-info.d.ts +29 -0
  22. package/dist/esm/middleware/info/draw-info.js +113 -0
  23. package/dist/esm/middleware/info/index.d.ts +9 -0
  24. package/dist/esm/middleware/info/index.js +131 -0
  25. package/dist/esm/middleware/info/types.d.ts +3 -0
  26. package/dist/esm/middleware/info/types.js +1 -0
  27. package/dist/esm/middleware/layout-selector/config.d.ts +11 -0
  28. package/dist/esm/middleware/layout-selector/config.js +12 -0
  29. package/dist/esm/middleware/layout-selector/index.d.ts +5 -0
  30. package/dist/esm/middleware/layout-selector/index.js +371 -0
  31. package/dist/esm/middleware/layout-selector/types.d.ts +17 -0
  32. package/dist/esm/middleware/layout-selector/types.js +2 -0
  33. package/dist/esm/middleware/layout-selector/util.d.ts +9 -0
  34. package/dist/esm/middleware/layout-selector/util.js +78 -0
  35. package/dist/esm/middleware/pointer/index.d.ts +3 -0
  36. package/dist/esm/middleware/pointer/index.js +42 -0
  37. package/dist/esm/middleware/pointer/types.d.ts +3 -0
  38. package/dist/esm/middleware/pointer/types.js +1 -0
  39. package/dist/esm/middleware/ruler/config.d.ts +7 -0
  40. package/dist/esm/middleware/ruler/config.js +21 -0
  41. package/dist/esm/middleware/ruler/index.d.ts +3 -3
  42. package/dist/esm/middleware/ruler/index.js +33 -14
  43. package/dist/esm/middleware/ruler/types.d.ts +3 -0
  44. package/dist/esm/middleware/ruler/types.js +1 -0
  45. package/dist/esm/middleware/ruler/util.d.ts +20 -4
  46. package/dist/esm/middleware/ruler/util.js +99 -26
  47. package/dist/esm/middleware/scaler/index.d.ts +2 -3
  48. package/dist/esm/middleware/scaler/index.js +3 -2
  49. package/dist/esm/middleware/scroller/config.d.ts +4 -0
  50. package/dist/esm/middleware/scroller/config.js +10 -0
  51. package/dist/esm/middleware/scroller/index.d.ts +3 -2
  52. package/dist/esm/middleware/scroller/index.js +48 -6
  53. package/dist/esm/middleware/scroller/types.d.ts +11 -0
  54. package/dist/esm/middleware/scroller/types.js +1 -0
  55. package/dist/esm/middleware/scroller/util.d.ts +3 -2
  56. package/dist/esm/middleware/scroller/util.js +33 -44
  57. package/dist/esm/middleware/selector/config.d.ts +9 -1
  58. package/dist/esm/middleware/selector/config.js +17 -1
  59. package/dist/esm/middleware/selector/draw-auxiliary.d.ts +1 -0
  60. package/dist/esm/middleware/selector/draw-auxiliary.js +12 -0
  61. package/dist/esm/middleware/selector/draw-base.d.ts +30 -0
  62. package/dist/esm/middleware/selector/draw-base.js +100 -0
  63. package/dist/esm/middleware/selector/draw-debug.d.ts +5 -0
  64. package/dist/esm/middleware/selector/draw-debug.js +30 -0
  65. package/dist/esm/middleware/selector/draw-reference.d.ts +7 -0
  66. package/dist/esm/middleware/selector/draw-reference.js +31 -0
  67. package/dist/esm/middleware/selector/draw-wrapper.d.ts +16 -1
  68. package/dist/esm/middleware/selector/draw-wrapper.js +70 -38
  69. package/dist/esm/middleware/selector/index.d.ts +11 -4
  70. package/dist/esm/middleware/selector/index.js +450 -70
  71. package/dist/esm/middleware/selector/pattern/icon-rotate.d.ts +4 -0
  72. package/dist/esm/middleware/selector/pattern/icon-rotate.js +88 -0
  73. package/dist/esm/middleware/selector/pattern/index.d.ts +8 -0
  74. package/dist/esm/middleware/selector/pattern/index.js +38 -0
  75. package/dist/esm/middleware/selector/reference.d.ts +13 -0
  76. package/dist/esm/middleware/selector/reference.js +267 -0
  77. package/dist/esm/middleware/selector/types.d.ts +11 -5
  78. package/dist/esm/middleware/selector/types.js +2 -1
  79. package/dist/esm/middleware/selector/util.d.ts +14 -7
  80. package/dist/esm/middleware/selector/util.js +45 -43
  81. package/dist/esm/middleware/text-editor/index.d.ts +20 -3
  82. package/dist/esm/middleware/text-editor/index.js +168 -28
  83. package/dist/esm/record.d.ts +5 -0
  84. package/dist/esm/record.js +38 -0
  85. package/dist/index.global.js +5729 -1519
  86. package/dist/index.global.min.js +1 -1
  87. package/package.json +5 -6
@@ -1,7 +1,7 @@
1
- import type { BoardMiddleware, CoreEvent, Point } from '@idraw/types';
1
+ import type { Middleware, CoreEventMap, Point } from '@idraw/types';
2
2
  declare const keyPrevPoint: unique symbol;
3
3
  type DraggerSharedStorage = {
4
4
  [keyPrevPoint]: Point | null;
5
5
  };
6
- export declare const MiddlewareDragger: BoardMiddleware<DraggerSharedStorage, CoreEvent>;
6
+ export declare const MiddlewareDragger: Middleware<DraggerSharedStorage, CoreEventMap>;
7
7
  export {};
@@ -1,14 +1,16 @@
1
+ import { coreEventKeys } from '../../config';
1
2
  const key = 'DRAG';
2
3
  const keyPrevPoint = Symbol(`${key}_prevPoint`);
3
4
  export const MiddlewareDragger = (opts) => {
4
5
  const { eventHub, sharer, viewer } = opts;
5
6
  let isDragging = false;
6
7
  return {
8
+ name: '@middleware/dragger',
7
9
  hover() {
8
10
  if (isDragging === true) {
9
11
  return;
10
12
  }
11
- eventHub.trigger('cursor', {
13
+ eventHub.trigger(coreEventKeys.CURSOR, {
12
14
  type: 'drag-default'
13
15
  });
14
16
  },
@@ -16,7 +18,7 @@ export const MiddlewareDragger = (opts) => {
16
18
  const { point } = e;
17
19
  sharer.setSharedStorage(keyPrevPoint, point);
18
20
  isDragging = true;
19
- eventHub.trigger('cursor', {
21
+ eventHub.trigger(coreEventKeys.CURSOR, {
20
22
  type: 'drag-active'
21
23
  });
22
24
  },
@@ -34,7 +36,7 @@ export const MiddlewareDragger = (opts) => {
34
36
  pointEnd() {
35
37
  isDragging = false;
36
38
  sharer.setSharedStorage(keyPrevPoint, null);
37
- eventHub.trigger('cursor', {
39
+ eventHub.trigger(coreEventKeys.CURSOR, {
38
40
  type: 'drag-default'
39
41
  });
40
42
  }
@@ -0,0 +1,5 @@
1
+ import type { MiddlewareInfoStyle } from '@idraw/types';
2
+ export declare const infoFontSize = 10;
3
+ export declare const infoLineHeight = 16;
4
+ export declare const MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE = "@middleware/internal-event/show-info-angle";
5
+ export declare const defaltStyle: MiddlewareInfoStyle;
@@ -0,0 +1,9 @@
1
+ const infoBackground = '#1973bac6';
2
+ const infoTextColor = '#ffffff';
3
+ export const infoFontSize = 10;
4
+ export const infoLineHeight = 16;
5
+ export const MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE = '@middleware/internal-event/show-info-angle';
6
+ export const defaltStyle = {
7
+ textBackground: infoBackground,
8
+ textColor: infoTextColor
9
+ };
@@ -0,0 +1,29 @@
1
+ import type { PointSize, ViewContext2D } from '@idraw/types';
2
+ import type { MiddlewareInfoStyle } from '@idraw/types';
3
+ export declare function drawSizeInfoText(ctx: ViewContext2D, opts: {
4
+ point: PointSize;
5
+ rotateCenter: PointSize;
6
+ angle: number;
7
+ text: string;
8
+ fontSize: number;
9
+ lineHeight: number;
10
+ style: MiddlewareInfoStyle;
11
+ }): void;
12
+ export declare function drawPositionInfoText(ctx: ViewContext2D, opts: {
13
+ point: PointSize;
14
+ rotateCenter: PointSize;
15
+ angle: number;
16
+ text: string;
17
+ fontSize: number;
18
+ lineHeight: number;
19
+ style: MiddlewareInfoStyle;
20
+ }): void;
21
+ export declare function drawAngleInfoText(ctx: ViewContext2D, opts: {
22
+ point: PointSize;
23
+ rotateCenter: PointSize;
24
+ angle: number;
25
+ text: string;
26
+ fontSize: number;
27
+ lineHeight: number;
28
+ style: MiddlewareInfoStyle;
29
+ }): void;
@@ -0,0 +1,113 @@
1
+ import { rotateByCenter } from '@idraw/util';
2
+ const fontFamily = 'monospace';
3
+ export function drawSizeInfoText(ctx, opts) {
4
+ const { point, rotateCenter, angle, text, style, fontSize, lineHeight } = opts;
5
+ const { textColor, textBackground } = style;
6
+ rotateByCenter(ctx, angle, rotateCenter, () => {
7
+ ctx.$setFont({
8
+ fontWeight: '300',
9
+ fontSize,
10
+ fontFamily
11
+ });
12
+ const padding = (lineHeight - fontSize) / 2;
13
+ const textWidth = ctx.$undoPixelRatio(ctx.measureText(text).width);
14
+ const bgStart = {
15
+ x: point.x - textWidth / 2 - padding,
16
+ y: point.y
17
+ };
18
+ const bgEnd = {
19
+ x: bgStart.x + textWidth + padding * 2,
20
+ y: bgStart.y + fontSize + padding
21
+ };
22
+ const textStart = {
23
+ x: point.x - textWidth / 2,
24
+ y: point.y
25
+ };
26
+ ctx.setLineDash([]);
27
+ ctx.fillStyle = textBackground;
28
+ ctx.beginPath();
29
+ ctx.moveTo(bgStart.x, bgStart.y);
30
+ ctx.lineTo(bgEnd.x, bgStart.y);
31
+ ctx.lineTo(bgEnd.x, bgEnd.y);
32
+ ctx.lineTo(bgStart.x, bgEnd.y);
33
+ ctx.closePath();
34
+ ctx.fill('nonzero');
35
+ ctx.fillStyle = textColor;
36
+ ctx.textBaseline = 'top';
37
+ ctx.fillText(text, textStart.x, textStart.y + padding);
38
+ });
39
+ }
40
+ export function drawPositionInfoText(ctx, opts) {
41
+ const { point, rotateCenter, angle, text, style, fontSize, lineHeight } = opts;
42
+ const { textBackground, textColor } = style;
43
+ rotateByCenter(ctx, angle, rotateCenter, () => {
44
+ ctx.$setFont({
45
+ fontWeight: '300',
46
+ fontSize,
47
+ fontFamily
48
+ });
49
+ const padding = (lineHeight - fontSize) / 2;
50
+ const textWidth = ctx.$undoPixelRatio(ctx.measureText(text).width);
51
+ const bgStart = {
52
+ x: point.x,
53
+ y: point.y
54
+ };
55
+ const bgEnd = {
56
+ x: bgStart.x + textWidth + padding * 2,
57
+ y: bgStart.y + fontSize + padding
58
+ };
59
+ const textStart = {
60
+ x: point.x + padding,
61
+ y: point.y
62
+ };
63
+ ctx.setLineDash([]);
64
+ ctx.fillStyle = textBackground;
65
+ ctx.beginPath();
66
+ ctx.moveTo(bgStart.x, bgStart.y);
67
+ ctx.lineTo(bgEnd.x, bgStart.y);
68
+ ctx.lineTo(bgEnd.x, bgEnd.y);
69
+ ctx.lineTo(bgStart.x, bgEnd.y);
70
+ ctx.closePath();
71
+ ctx.fill('nonzero');
72
+ ctx.fillStyle = textColor;
73
+ ctx.textBaseline = 'top';
74
+ ctx.fillText(text, textStart.x, textStart.y + padding);
75
+ });
76
+ }
77
+ export function drawAngleInfoText(ctx, opts) {
78
+ const { point, rotateCenter, angle, text, style, fontSize, lineHeight } = opts;
79
+ const { textBackground, textColor } = style;
80
+ rotateByCenter(ctx, angle, rotateCenter, () => {
81
+ ctx.$setFont({
82
+ fontWeight: '300',
83
+ fontSize,
84
+ fontFamily
85
+ });
86
+ const padding = (lineHeight - fontSize) / 2;
87
+ const textWidth = ctx.$undoPixelRatio(ctx.measureText(text).width);
88
+ const bgStart = {
89
+ x: point.x,
90
+ y: point.y
91
+ };
92
+ const bgEnd = {
93
+ x: bgStart.x + textWidth + padding * 2,
94
+ y: bgStart.y + fontSize + padding
95
+ };
96
+ const textStart = {
97
+ x: point.x + padding,
98
+ y: point.y
99
+ };
100
+ ctx.setLineDash([]);
101
+ ctx.fillStyle = textBackground;
102
+ ctx.beginPath();
103
+ ctx.moveTo(bgStart.x, bgStart.y);
104
+ ctx.lineTo(bgEnd.x, bgStart.y);
105
+ ctx.lineTo(bgEnd.x, bgEnd.y);
106
+ ctx.lineTo(bgStart.x, bgEnd.y);
107
+ ctx.closePath();
108
+ ctx.fill('nonzero');
109
+ ctx.fillStyle = textColor;
110
+ ctx.textBaseline = 'top';
111
+ ctx.fillText(text, textStart.x, textStart.y + padding);
112
+ });
113
+ }
@@ -0,0 +1,9 @@
1
+ import type { Middleware, MiddlewareInfoConfig, CoreEventMap } from '@idraw/types';
2
+ import type { DeepInfoSharedStorage } from './types';
3
+ import { MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE } from './config';
4
+ export { MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE };
5
+ export declare const MiddlewareInfo: Middleware<DeepInfoSharedStorage, CoreEventMap & {
6
+ [MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE]: {
7
+ show: boolean;
8
+ };
9
+ }, MiddlewareInfoConfig>;
@@ -0,0 +1,131 @@
1
+ import { formatNumber, getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot, createUUID, limitAngle, rotatePoint, parseAngleToRadian } from '@idraw/util';
2
+ import { keySelectedElementList, keyActionType, keyGroupQueue } from '../selector';
3
+ import { drawSizeInfoText, drawPositionInfoText, drawAngleInfoText } from './draw-info';
4
+ import { defaltStyle, MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE } from './config';
5
+ export { MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE };
6
+ const infoFontSize = 10;
7
+ const infoLineHeight = 16;
8
+ export const MiddlewareInfo = (opts, config) => {
9
+ const { boardContent, calculator, eventHub } = opts;
10
+ const { overlayContext } = boardContent;
11
+ let innerConfig = Object.assign(Object.assign({}, defaltStyle), config);
12
+ let showAngleInfo = true;
13
+ const showInfoAngleCallback = ({ show }) => {
14
+ showAngleInfo = show;
15
+ };
16
+ return {
17
+ name: '@middleware/info',
18
+ use() {
19
+ eventHub.on(MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE, showInfoAngleCallback);
20
+ },
21
+ disuse() {
22
+ eventHub.off(MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE, showInfoAngleCallback);
23
+ },
24
+ resetConfig(config) {
25
+ innerConfig = Object.assign(Object.assign({}, innerConfig), config);
26
+ },
27
+ beforeDrawFrame({ snapshot }) {
28
+ var _a;
29
+ const { textBackground, textColor } = innerConfig;
30
+ const style = {
31
+ textBackground,
32
+ textColor
33
+ };
34
+ const { sharedStore } = snapshot;
35
+ const selectedElementList = sharedStore[keySelectedElementList];
36
+ const actionType = sharedStore[keyActionType];
37
+ const groupQueue = sharedStore[keyGroupQueue] || [];
38
+ if (selectedElementList.length === 1) {
39
+ const elem = selectedElementList[0];
40
+ if (elem && ['select', 'drag', 'resize'].includes(actionType)) {
41
+ const viewScaleInfo = getViewScaleInfoFromSnapshot(snapshot);
42
+ const viewSizeInfo = getViewSizeInfoFromSnapshot(snapshot);
43
+ const { x, y, w, h, angle } = elem;
44
+ const totalGroupQueue = [
45
+ ...groupQueue,
46
+ ...[
47
+ {
48
+ uuid: createUUID(),
49
+ x,
50
+ y,
51
+ w,
52
+ h,
53
+ angle,
54
+ type: 'group',
55
+ detail: { children: [] }
56
+ }
57
+ ]
58
+ ];
59
+ const calcOpts = { viewScaleInfo, viewSizeInfo };
60
+ const rangeRectInfo = calculator.calcViewRectInfoFromOrigin(elem.uuid, calcOpts);
61
+ let totalAngle = 0;
62
+ totalGroupQueue.forEach((group) => {
63
+ totalAngle += group.angle || 0;
64
+ });
65
+ const totalRadian = parseAngleToRadian(limitAngle(0 - totalAngle));
66
+ if (rangeRectInfo) {
67
+ const elemCenter = rangeRectInfo === null || rangeRectInfo === void 0 ? void 0 : rangeRectInfo.center;
68
+ const rectInfo = {
69
+ topLeft: rotatePoint(elemCenter, rangeRectInfo.topLeft, totalRadian),
70
+ topRight: rotatePoint(elemCenter, rangeRectInfo.topRight, totalRadian),
71
+ bottomRight: rotatePoint(elemCenter, rangeRectInfo.bottomRight, totalRadian),
72
+ bottomLeft: rotatePoint(elemCenter, rangeRectInfo.bottomLeft, totalRadian),
73
+ center: rotatePoint(elemCenter, rangeRectInfo.center, totalRadian),
74
+ top: rotatePoint(elemCenter, rangeRectInfo.top, totalRadian),
75
+ right: rotatePoint(elemCenter, rangeRectInfo.right, totalRadian),
76
+ bottom: rotatePoint(elemCenter, rangeRectInfo.bottom, totalRadian),
77
+ left: rotatePoint(elemCenter, rangeRectInfo.left, totalRadian)
78
+ };
79
+ const x = formatNumber(elem.x, { decimalPlaces: 2 });
80
+ const y = formatNumber(elem.y, { decimalPlaces: 2 });
81
+ const w = formatNumber(elem.w, { decimalPlaces: 2 });
82
+ const h = formatNumber(elem.h, { decimalPlaces: 2 });
83
+ const xyText = `${formatNumber(x, { decimalPlaces: 0 })},${formatNumber(y, { decimalPlaces: 0 })}`;
84
+ const whText = `${formatNumber(w, { decimalPlaces: 0 })}x${formatNumber(h, { decimalPlaces: 0 })}`;
85
+ const angleText = `${formatNumber(elem.angle || 0, { decimalPlaces: 0 })}°`;
86
+ drawSizeInfoText(overlayContext, {
87
+ point: {
88
+ x: rectInfo.bottom.x,
89
+ y: rectInfo.bottom.y + infoFontSize
90
+ },
91
+ rotateCenter: rectInfo.center,
92
+ angle: totalAngle,
93
+ text: whText,
94
+ fontSize: infoFontSize,
95
+ lineHeight: infoLineHeight,
96
+ style
97
+ });
98
+ drawPositionInfoText(overlayContext, {
99
+ point: {
100
+ x: rectInfo.topLeft.x,
101
+ y: rectInfo.topLeft.y - infoFontSize * 2
102
+ },
103
+ rotateCenter: rectInfo.center,
104
+ angle: totalAngle,
105
+ text: xyText,
106
+ fontSize: infoFontSize,
107
+ lineHeight: infoLineHeight,
108
+ style
109
+ });
110
+ if (showAngleInfo) {
111
+ if (((_a = elem.operations) === null || _a === void 0 ? void 0 : _a.rotatable) !== false) {
112
+ drawAngleInfoText(overlayContext, {
113
+ point: {
114
+ x: rectInfo.top.x + infoFontSize + 4,
115
+ y: rectInfo.top.y - infoFontSize * 2 - 18
116
+ },
117
+ rotateCenter: rectInfo.center,
118
+ angle: totalAngle,
119
+ text: angleText,
120
+ fontSize: infoFontSize,
121
+ lineHeight: infoLineHeight,
122
+ style
123
+ });
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ };
131
+ };
@@ -0,0 +1,3 @@
1
+ import { keySelectedElementList, keyHoverElement, keyActionType, keyGroupQueue } from '../selector';
2
+ import type { DeepSelectorSharedStorage } from '../selector';
3
+ export type DeepInfoSharedStorage = Pick<DeepSelectorSharedStorage, typeof keySelectedElementList | typeof keyHoverElement | typeof keyActionType | typeof keyGroupQueue>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { MiddlewareLayoutSelectorStyle } from '@idraw/types';
2
+ export declare const key = "LAYOUT_SELECT";
3
+ export declare const keyLayoutActionType: unique symbol;
4
+ export declare const keyLayoutControlType: unique symbol;
5
+ export declare const keyLayoutController: unique symbol;
6
+ export declare const keyLayoutIsHoverContent: unique symbol;
7
+ export declare const keyLayoutIsHoverController: unique symbol;
8
+ export declare const keyLayoutIsSelected: unique symbol;
9
+ export declare const keyLayoutIsBusyMoving: unique symbol;
10
+ export declare const controllerSize = 10;
11
+ export declare const defaultStyle: MiddlewareLayoutSelectorStyle;
@@ -0,0 +1,12 @@
1
+ export const key = 'LAYOUT_SELECT';
2
+ export const keyLayoutActionType = Symbol(`${key}_layoutActionType`);
3
+ export const keyLayoutControlType = Symbol(`${key}_layoutControlType`);
4
+ export const keyLayoutController = Symbol(`${key}_layoutController`);
5
+ export const keyLayoutIsHoverContent = Symbol(`${key}_layoutIsHoverContent`);
6
+ export const keyLayoutIsHoverController = Symbol(`${key}_layoutIsHoverController`);
7
+ export const keyLayoutIsSelected = Symbol(`${key}_layoutIsSelected`);
8
+ export const keyLayoutIsBusyMoving = Symbol(`${key}_layoutIsSelected`);
9
+ export const controllerSize = 10;
10
+ export const defaultStyle = {
11
+ activeColor: '#b331c9'
12
+ };
@@ -0,0 +1,5 @@
1
+ import type { Middleware, MiddlewareLayoutSelectorConfig, CoreEventMap } from '@idraw/types';
2
+ import type { LayoutSelectorSharedStorage } from './types';
3
+ import { keyLayoutIsSelected, keyLayoutIsBusyMoving } from './config';
4
+ export { keyLayoutIsSelected, keyLayoutIsBusyMoving };
5
+ export declare const MiddlewareLayoutSelector: Middleware<LayoutSelectorSharedStorage, CoreEventMap, MiddlewareLayoutSelectorConfig>;