@idraw/core 0.4.3 → 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 -208
  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 -5647
  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
@@ -0,0 +1,73 @@
1
+ import { injectStyles, removeStyles, getMiddlewareValidStyles } from '@idraw/util';
2
+ import { classNameMap, scrollbarTrackSize, scrollbarThumbLength, scrollbarThumbSize } from './static';
3
+ export function initStyles(rootClassName, styles) {
4
+ const cls = (str) => `.${str}`;
5
+ const stylesProps = {
6
+ zIndex: styles.zIndex,
7
+ position: 'absolute',
8
+ background: 'transparent',
9
+ [cls(classNameMap.thumb)]: {
10
+ position: 'absolute',
11
+ background: styles.thumbBackground,
12
+ border: `1px solid ${styles.thumbBorderColor}`,
13
+ borderRadius: `${scrollbarThumbSize / 2}px`,
14
+ boxSizing: 'border-box',
15
+ [`&:hover`]: {
16
+ background: styles.hoverThumbBackground,
17
+ border: `1px solid ${styles.hoverThumbBorderColor}`,
18
+ },
19
+ [`&:active`]: {
20
+ background: styles.activeThumbBackground,
21
+ border: `1px solid ${styles.activeThumbBorderColor}`,
22
+ },
23
+ },
24
+ [`&${cls(classNameMap.vertical)}`]: {
25
+ top: 0,
26
+ bottom: 0,
27
+ right: 0,
28
+ left: 'unset',
29
+ width: scrollbarTrackSize,
30
+ overflow: 'hidden',
31
+ [cls(classNameMap.thumb)]: {
32
+ top: scrollbarTrackSize,
33
+ bottom: 'unset',
34
+ left: scrollbarThumbSize / 2,
35
+ right: 'unset',
36
+ height: scrollbarThumbLength,
37
+ width: scrollbarThumbSize,
38
+ },
39
+ },
40
+ [`&${cls(classNameMap.horizontal)}`]: {
41
+ left: 0,
42
+ right: 0,
43
+ top: 'unset',
44
+ bottom: 0,
45
+ height: scrollbarTrackSize,
46
+ overflow: 'hidden',
47
+ [cls(classNameMap.thumb)]: {
48
+ top: scrollbarThumbSize / 2,
49
+ bottom: 'unset',
50
+ left: scrollbarTrackSize,
51
+ right: 'unset',
52
+ height: scrollbarThumbSize,
53
+ width: scrollbarThumbLength,
54
+ },
55
+ },
56
+ };
57
+ injectStyles({ styles: stylesProps, rootClassName, type: 'element' });
58
+ }
59
+ export function destroyStyles(rootClassName) {
60
+ removeStyles({ rootClassName, type: 'element' });
61
+ }
62
+ export function getMiddlewareScrollerStyles(config) {
63
+ const styles = getMiddlewareValidStyles(config, [
64
+ 'zIndex',
65
+ 'thumbBackground',
66
+ 'thumbBorderColor',
67
+ 'hoverThumbBackground',
68
+ 'hoverThumbBorderColor',
69
+ 'activeThumbBackground',
70
+ 'activeThumbBorderColor',
71
+ ]);
72
+ return styles;
73
+ }
@@ -1,11 +1,13 @@
1
- import type { Point, ElementSize } from '@idraw/types';
2
- import { keyXThumbRect, keyYThumbRect, keyPrevPoint, keyActivePoint, keyActiveThumbType, keyHoverXThumbRect, keyHoverYThumbRect } from './config';
1
+ import type { Point, HTMLCSSProps } from '@idraw/types';
2
+ import { keyXThumbStyle, keyYThumbStyle, keyPrevPoint, keyActivePoint, keyActiveThumbType } from './static';
3
3
  export type DeepScrollerSharedStorage = {
4
- [keyXThumbRect]: null | ElementSize;
5
- [keyYThumbRect]: null | ElementSize;
6
- [keyHoverXThumbRect]: boolean | null;
7
- [keyHoverYThumbRect]: boolean | null;
4
+ [keyXThumbStyle]: null | HTMLCSSProps;
5
+ [keyYThumbStyle]: null | HTMLCSSProps;
8
6
  [keyPrevPoint]: null | Point;
9
7
  [keyActivePoint]: null | Point;
10
8
  [keyActiveThumbType]: null | 'X' | 'Y';
11
9
  };
10
+ export type ScrollbarStyles = {
11
+ xThumbStyle: HTMLCSSProps | null;
12
+ yThumbStyle: HTMLCSSProps | null;
13
+ };
@@ -1 +1 @@
1
- import { keyXThumbRect, keyYThumbRect, keyPrevPoint, keyActivePoint, keyActiveThumbType, keyHoverXThumbRect, keyHoverYThumbRect } from './config';
1
+ import { keyXThumbStyle, keyYThumbStyle, keyPrevPoint, keyActivePoint, keyActiveThumbType } from './static';
@@ -1,13 +1,6 @@
1
- import type { Point, BoardViewerFrameSnapshot, ViewContext2D, ElementSize, MiddlewareScrollerStyle } from '@idraw/types';
2
- export type ScrollbarThumbType = 'X' | 'Y';
3
- export declare function isPointInScrollThumb(overlayContext: ViewContext2D, p: Point, opts: {
4
- xThumbRect?: ElementSize | null;
5
- yThumbRect?: ElementSize | null;
6
- }): ScrollbarThumbType | null;
7
- export declare function drawScroller(ctx: ViewContext2D, opts: {
8
- snapshot: BoardViewerFrameSnapshot;
9
- style: MiddlewareScrollerStyle;
10
- }): {
11
- xThumbRect: ElementSize;
12
- yThumbRect: ElementSize;
13
- };
1
+ import type { ViewScaleInfo, ViewSizeInfo } from '@idraw/types';
2
+ import type { ScrollbarStyles } from './types';
3
+ export declare function calcScrollbarStyles(opts: {
4
+ viewScaleInfo: ViewScaleInfo;
5
+ viewSizeInfo: ViewSizeInfo;
6
+ }): ScrollbarStyles;
@@ -1,49 +1,12 @@
1
- import { getViewScaleInfoFromSnapshot, getViewSizeInfoFromSnapshot } from '@idraw/util';
2
- import { keyActivePoint, keyActiveThumbType, keyPrevPoint, keyXThumbRect, keyYThumbRect, keyHoverXThumbRect, keyHoverYThumbRect } from './config';
3
- const scrollerLineWidth = 16;
4
- const minThumbLength = scrollerLineWidth * 2.5;
5
- function isPointAtRect(overlayContext, p, rect) {
6
- const ctx = overlayContext;
7
- const { x, y, w, h } = rect;
8
- ctx.beginPath();
9
- ctx.rect(x, y, w, h);
10
- ctx.closePath();
11
- if (ctx.isPointInPath(p.x, p.y)) {
12
- return true;
13
- }
14
- return false;
15
- }
16
- export function isPointInScrollThumb(overlayContext, p, opts) {
17
- let thumbType = null;
18
- const { xThumbRect, yThumbRect } = opts;
19
- if (xThumbRect && isPointAtRect(overlayContext, p, xThumbRect)) {
20
- thumbType = 'X';
21
- }
22
- else if (yThumbRect && isPointAtRect(overlayContext, p, yThumbRect)) {
23
- thumbType = 'Y';
24
- }
25
- return thumbType;
26
- }
27
- function getScrollInfoFromSnapshot(snapshot) {
28
- const { sharedStore } = snapshot;
29
- const info = {
30
- activePoint: sharedStore[keyActivePoint] || null,
31
- prevPoint: sharedStore[keyPrevPoint] || null,
32
- activeThumbType: sharedStore[keyActiveThumbType] || null,
33
- xThumbRect: sharedStore[keyXThumbRect] || null,
34
- yThumbRect: sharedStore[keyYThumbRect] || null,
35
- hoverXThumb: sharedStore[keyHoverXThumbRect],
36
- hoverYThumb: sharedStore[keyHoverYThumbRect]
37
- };
38
- return info;
39
- }
40
- function calcScrollerInfo(opts) {
41
- const { viewScaleInfo, viewSizeInfo, hoverXThumb, hoverYThumb, style } = opts;
1
+ import { scrollbarTrackSize, scrollbarThumbLength } from './static';
2
+ export function calcScrollbarStyles(opts) {
3
+ const { viewScaleInfo, viewSizeInfo } = opts;
42
4
  const { width, height } = viewSizeInfo;
43
5
  const { offsetTop, offsetBottom, offsetLeft, offsetRight } = viewScaleInfo;
6
+ const scrollerLineWidth = scrollbarTrackSize;
7
+ const minThumbLength = scrollbarThumbLength;
44
8
  const sliderMinSize = minThumbLength;
45
9
  const lineSize = scrollerLineWidth;
46
- const { thumbBackground, thumbBorderColor, hoverThumbBackground, hoverThumbBorderColor } = style;
47
10
  let xSize = 0;
48
11
  let ySize = 0;
49
12
  xSize = Math.max(sliderMinSize, width - lineSize * 2 - (Math.abs(offsetLeft) + Math.abs(offsetRight)));
@@ -80,109 +43,17 @@ function calcScrollerInfo(opts) {
80
43
  translateY = yStart + ((height - ySize) * Math.abs(offsetTop)) / (Math.abs(offsetTop) + Math.abs(offsetBottom));
81
44
  translateY = Math.min(Math.max(0, translateY - yStart), height - ySize);
82
45
  }
83
- const xThumbRect = {
84
- x: translateX,
85
- y: height - lineSize,
86
- w: xSize,
87
- h: lineSize
46
+ const xThumbStyle = {
47
+ left: translateX,
48
+ width: xSize,
88
49
  };
89
- const yThumbRect = {
90
- x: width - lineSize,
91
- y: translateY,
92
- w: lineSize,
93
- h: ySize
50
+ const yThumbStyle = {
51
+ top: translateY,
52
+ height: ySize,
94
53
  };
95
- const scrollWrapper = {
96
- lineSize,
97
- xSize,
98
- ySize,
99
- translateY,
100
- translateX,
101
- xThumbBackground: hoverXThumb ? hoverThumbBackground : thumbBackground,
102
- yThumbBackground: hoverYThumb ? hoverThumbBackground : thumbBackground,
103
- xThumbBorderColor: hoverXThumb ? hoverThumbBorderColor : thumbBorderColor,
104
- yThumbBorderColor: hoverYThumb ? hoverThumbBorderColor : thumbBorderColor,
105
- xThumbRect,
106
- yThumbRect
54
+ const scrollbarInfo = {
55
+ xThumbStyle,
56
+ yThumbStyle,
107
57
  };
108
- return scrollWrapper;
109
- }
110
- function drawScrollerThumb(ctx, opts) {
111
- let { x, y, h, w } = opts;
112
- const { background, borderColor } = opts;
113
- ctx.save();
114
- ctx.shadowColor = '#FFFFFF';
115
- ctx.shadowOffsetX = 0;
116
- ctx.shadowOffsetY = 0;
117
- ctx.shadowBlur = 1;
118
- {
119
- const { axis } = opts;
120
- if (axis === 'X') {
121
- y = y + h / 4 + 0;
122
- h = h / 2;
123
- }
124
- else if (axis === 'Y') {
125
- x = x + w / 4 + 0;
126
- w = w / 2;
127
- }
128
- let r = opts.r;
129
- r = Math.min(r, w / 2, h / 2);
130
- if (w < r * 2 || h < r * 2) {
131
- r = 0;
132
- }
133
- ctx.globalAlpha = 1;
134
- ctx.beginPath();
135
- ctx.moveTo(x + r, y);
136
- ctx.arcTo(x + w, y, x + w, y + h, r);
137
- ctx.arcTo(x + w, y + h, x, y + h, r);
138
- ctx.arcTo(x, y + h, x, y, r);
139
- ctx.arcTo(x, y, x + w, y, r);
140
- ctx.closePath();
141
- ctx.fillStyle = background;
142
- ctx.fill('nonzero');
143
- ctx.beginPath();
144
- ctx.lineWidth = 1;
145
- ctx.strokeStyle = borderColor;
146
- ctx.setLineDash([]);
147
- ctx.moveTo(x + r, y);
148
- ctx.arcTo(x + w, y, x + w, y + h, r);
149
- ctx.arcTo(x + w, y + h, x, y + h, r);
150
- ctx.arcTo(x, y + h, x, y, r);
151
- ctx.arcTo(x, y, x + w, y, r);
152
- ctx.closePath();
153
- ctx.stroke();
154
- }
155
- ctx.restore();
156
- }
157
- function drawScrollerInfo(overlayContext, opts) {
158
- const ctx = overlayContext;
159
- const { viewScaleInfo, viewSizeInfo, scrollInfo, style } = opts;
160
- const { activeThumbType, prevPoint, activePoint, hoverXThumb, hoverYThumb } = scrollInfo;
161
- const wrapper = calcScrollerInfo({ viewScaleInfo, viewSizeInfo, hoverXThumb, hoverYThumb, style });
162
- let xThumbRect = Object.assign({}, wrapper.xThumbRect);
163
- let yThumbRect = Object.assign({}, wrapper.yThumbRect);
164
- if (activeThumbType && prevPoint && activePoint) {
165
- if (activeThumbType === 'X' && scrollInfo.xThumbRect) {
166
- xThumbRect = Object.assign({}, scrollInfo.xThumbRect);
167
- xThumbRect.x = xThumbRect.x + (activePoint.x - prevPoint.x);
168
- }
169
- else if (activeThumbType === 'Y' && scrollInfo.yThumbRect) {
170
- yThumbRect = Object.assign({}, scrollInfo.yThumbRect);
171
- yThumbRect.y = yThumbRect.y + (activePoint.y - prevPoint.y);
172
- }
173
- }
174
- drawScrollerThumb(ctx, Object.assign(Object.assign({ axis: 'X' }, xThumbRect), { r: wrapper.lineSize / 2, background: wrapper.xThumbBackground, borderColor: wrapper.xThumbBorderColor }));
175
- drawScrollerThumb(ctx, Object.assign(Object.assign({ axis: 'Y' }, yThumbRect), { r: wrapper.lineSize / 2, background: wrapper.yThumbBackground, borderColor: wrapper.yThumbBorderColor }));
176
- return {
177
- xThumbRect,
178
- yThumbRect
179
- };
180
- }
181
- export function drawScroller(ctx, opts) {
182
- const { snapshot, style } = opts;
183
- const viewSizeInfo = getViewSizeInfoFromSnapshot(snapshot);
184
- const viewScaleInfo = getViewScaleInfoFromSnapshot(snapshot);
185
- const scrollInfo = getScrollInfoFromSnapshot(snapshot);
186
- const { xThumbRect, yThumbRect } = drawScrollerInfo(ctx, { viewSizeInfo, viewScaleInfo, scrollInfo, style });
187
- return { xThumbRect, yThumbRect };
58
+ return scrollbarInfo;
188
59
  }
@@ -0,0 +1,21 @@
1
+ import type { RenderMaterialHelperOptions, Point, Material, StrictMaterial } from '@idraw/types';
2
+ export declare function initRoot(opts: {
3
+ rootClassName: string;
4
+ $container: HTMLElement;
5
+ }): HTMLDivElement;
6
+ export declare function resetMaterialNestedBox($root: HTMLDivElement | null, opts: RenderMaterialHelperOptions): void;
7
+ export declare function clearMaterialHoverBox($root: HTMLDivElement | null): void;
8
+ export declare function renderMaterialHoverBox($root: HTMLDivElement | null, opts: RenderMaterialHelperOptions): void;
9
+ export declare function clearMaterialLockedBox($root: HTMLDivElement | null): void;
10
+ export declare function renderMaterialLockedBox($root: HTMLDivElement | null, opts: RenderMaterialHelperOptions): void;
11
+ export declare function resetMaterialSelectedBox($root: HTMLDivElement | null, opts: RenderMaterialHelperOptions): void;
12
+ export declare function clearMaterialSelectionAreaBox($root: HTMLDivElement | null): void;
13
+ export declare function resetMaterialSelectionAreaBox($root: HTMLDivElement | null, opts: RenderMaterialHelperOptions & {
14
+ areaStart: Point | null;
15
+ areaEnd: Point | null;
16
+ selectedMaterials: Material[];
17
+ }): void;
18
+ export declare function isPointInActiveGroup(e: Event, opts: {
19
+ $root: HTMLElement | null;
20
+ groupQueue: StrictMaterial<'group'>[] | null;
21
+ }): boolean;