@revideo/2d 0.2.1-alpha.891 → 0.2.2
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.
- package/lib/code/CodeCursor.d.ts +74 -74
- package/lib/code/CodeCursor.js +286 -352
- package/lib/code/CodeDiffer.d.ts +16 -21
- package/lib/code/CodeDiffer.js +41 -39
- package/lib/code/CodeFragment.d.ts +8 -16
- package/lib/code/CodeFragment.js +36 -36
- package/lib/code/CodeHighlighter.d.ts +59 -59
- package/lib/code/CodeHighlighter.js +1 -1
- package/lib/code/CodeMetrics.d.ts +8 -12
- package/lib/code/CodeMetrics.js +24 -26
- package/lib/code/CodeRange.d.ts +5 -21
- package/lib/code/CodeRange.js +124 -131
- package/lib/code/CodeScope.d.ts +8 -18
- package/lib/code/CodeScope.js +61 -59
- package/lib/code/CodeSelection.d.ts +4 -9
- package/lib/code/CodeSelection.js +8 -8
- package/lib/code/CodeSignal.d.ts +47 -74
- package/lib/code/CodeSignal.js +189 -206
- package/lib/code/CodeTokenizer.d.ts +1 -1
- package/lib/code/CodeTokenizer.js +41 -41
- package/lib/code/DefaultHighlightStyle.d.ts +2 -2
- package/lib/code/DefaultHighlightStyle.js +96 -96
- package/lib/code/LezerHighlighter.d.ts +19 -21
- package/lib/code/LezerHighlighter.js +101 -101
- package/lib/code/diff.d.ts +9 -12
- package/lib/code/diff.js +205 -218
- package/lib/code/extractRange.d.ts +4 -7
- package/lib/code/extractRange.js +71 -79
- package/lib/code/index.d.ts +1 -1
- package/lib/code/index.js +1 -1
- package/lib/components/Audio.d.ts +11 -11
- package/lib/components/Audio.js +109 -115
- package/lib/components/Bezier.d.ts +18 -18
- package/lib/components/Bezier.js +75 -86
- package/lib/components/Circle.d.ts +90 -95
- package/lib/components/Circle.js +74 -85
- package/lib/components/Code.d.ts +211 -244
- package/lib/components/Code.js +269 -317
- package/lib/components/CodeBlock.d.ts +67 -109
- package/lib/components/CodeBlock.js +373 -414
- package/lib/components/CubicBezier.d.ts +36 -36
- package/lib/components/CubicBezier.js +49 -52
- package/lib/components/Curve.d.ts +198 -208
- package/lib/components/Curve.js +269 -270
- package/lib/components/Grid.d.ts +42 -47
- package/lib/components/Grid.js +56 -63
- package/lib/components/Icon.d.ts +50 -55
- package/lib/components/Icon.js +50 -58
- package/lib/components/Img.d.ts +79 -86
- package/lib/components/Img.js +181 -193
- package/lib/components/Knot.d.ts +78 -97
- package/lib/components/Knot.js +60 -81
- package/lib/components/Latex.d.ts +12 -12
- package/lib/components/Latex.js +65 -77
- package/lib/components/Layout.d.ts +413 -455
- package/lib/components/Layout.js +681 -666
- package/lib/components/Line.d.ts +49 -61
- package/lib/components/Line.js +193 -216
- package/lib/components/Media.d.ts +35 -35
- package/lib/components/Media.js +134 -135
- package/lib/components/Node.d.ts +830 -875
- package/lib/components/Node.js +1314 -1383
- package/lib/components/Path.d.ts +14 -35
- package/lib/components/Path.js +89 -100
- package/lib/components/Polygon.d.ts +55 -60
- package/lib/components/Polygon.js +66 -71
- package/lib/components/QuadBezier.d.ts +29 -29
- package/lib/components/QuadBezier.js +45 -50
- package/lib/components/Ray.d.ts +28 -28
- package/lib/components/Ray.js +64 -71
- package/lib/components/Rect.d.ts +108 -115
- package/lib/components/Rect.js +72 -78
- package/lib/components/SVG.d.ts +139 -165
- package/lib/components/SVG.js +541 -609
- package/lib/components/Shape.d.ts +35 -44
- package/lib/components/Shape.js +127 -112
- package/lib/components/Spline.d.ts +40 -46
- package/lib/components/Spline.js +175 -190
- package/lib/components/Txt.d.ts +44 -55
- package/lib/components/Txt.js +155 -156
- package/lib/components/TxtLeaf.d.ts +16 -20
- package/lib/components/TxtLeaf.js +158 -177
- package/lib/components/Video.d.ts +41 -41
- package/lib/components/Video.js +135 -138
- package/lib/components/View2D.d.ts +21 -21
- package/lib/components/View2D.js +85 -98
- package/lib/components/index.d.ts +1 -1
- package/lib/components/index.js +1 -1
- package/lib/components/types.d.ts +9 -22
- package/lib/components/types.js +1 -1
- package/lib/curves/ArcSegment.d.ts +24 -36
- package/lib/curves/ArcSegment.js +94 -145
- package/lib/curves/CircleSegment.d.ts +16 -26
- package/lib/curves/CircleSegment.js +49 -56
- package/lib/curves/CubicBezierSegment.d.ts +13 -18
- package/lib/curves/CubicBezierSegment.js +46 -79
- package/lib/curves/CurveDrawingInfo.d.ts +9 -9
- package/lib/curves/CurveDrawingInfo.js +1 -1
- package/lib/curves/CurvePoint.d.ts +13 -13
- package/lib/curves/CurvePoint.js +1 -1
- package/lib/curves/CurveProfile.d.ts +5 -5
- package/lib/curves/CurveProfile.js +1 -1
- package/lib/curves/KnotInfo.d.ts +8 -8
- package/lib/curves/KnotInfo.js +1 -1
- package/lib/curves/LineSegment.d.ts +14 -19
- package/lib/curves/LineSegment.js +42 -42
- package/lib/curves/Polynomial.d.ts +110 -110
- package/lib/curves/Polynomial.js +239 -249
- package/lib/curves/Polynomial2D.d.ts +20 -20
- package/lib/curves/Polynomial2D.js +42 -46
- package/lib/curves/PolynomialSegment.d.ts +37 -42
- package/lib/curves/PolynomialSegment.js +81 -83
- package/lib/curves/QuadBezierSegment.d.ts +12 -12
- package/lib/curves/QuadBezierSegment.js +41 -71
- package/lib/curves/Segment.d.ts +7 -12
- package/lib/curves/Segment.js +3 -2
- package/lib/curves/UniformPolynomialCurveSampler.d.ts +34 -34
- package/lib/curves/UniformPolynomialCurveSampler.js +62 -68
- package/lib/curves/createCurveProfileLerp.d.ts +6 -17
- package/lib/curves/createCurveProfileLerp.js +208 -211
- package/lib/curves/getBezierSplineProfile.d.ts +4 -8
- package/lib/curves/getBezierSplineProfile.js +101 -145
- package/lib/curves/getCircleProfile.d.ts +4 -10
- package/lib/curves/getCircleProfile.js +40 -72
- package/lib/curves/getPathProfile.d.ts +2 -2
- package/lib/curves/getPathProfile.js +112 -135
- package/lib/curves/getPointAtDistance.d.ts +4 -7
- package/lib/curves/getPointAtDistance.js +12 -12
- package/lib/curves/getPolylineProfile.d.ts +4 -8
- package/lib/curves/getPolylineProfile.js +54 -67
- package/lib/curves/getRectProfile.d.ts +4 -9
- package/lib/curves/getRectProfile.js +52 -117
- package/lib/curves/index.d.ts +1 -1
- package/lib/curves/index.js +1 -1
- package/lib/decorators/canvasStyleSignal.d.ts +3 -3
- package/lib/decorators/canvasStyleSignal.js +10 -10
- package/lib/decorators/colorSignal.d.ts +1 -1
- package/lib/decorators/colorSignal.js +7 -7
- package/lib/decorators/compound.d.ts +2 -4
- package/lib/decorators/compound.js +23 -43
- package/lib/decorators/computed.d.ts +1 -1
- package/lib/decorators/computed.js +9 -9
- package/lib/decorators/defaultStyle.d.ts +2 -5
- package/lib/decorators/defaultStyle.js +11 -11
- package/lib/decorators/filtersSignal.d.ts +8 -28
- package/lib/decorators/filtersSignal.js +64 -87
- package/lib/decorators/index.d.ts +1 -1
- package/lib/decorators/index.js +1 -1
- package/lib/decorators/initializers.d.ts +2 -5
- package/lib/decorators/initializers.js +19 -18
- package/lib/decorators/nodeName.d.ts +1 -1
- package/lib/decorators/nodeName.js +4 -4
- package/lib/decorators/signal.d.ts +20 -40
- package/lib/decorators/signal.js +104 -113
- package/lib/decorators/spacingSignal.d.ts +1 -1
- package/lib/decorators/spacingSignal.js +13 -13
- package/lib/decorators/vector2Signal.d.ts +7 -13
- package/lib/decorators/vector2Signal.js +13 -15
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/jsx-dev-runtime.d.ts +3 -3
- package/lib/jsx-dev-runtime.js +3 -3
- package/lib/jsx-runtime.d.ts +9 -19
- package/lib/jsx-runtime.js +18 -18
- package/lib/partials/Filter.d.ts +16 -24
- package/lib/partials/Filter.js +69 -69
- package/lib/partials/Gradient.d.ts +24 -30
- package/lib/partials/Gradient.js +58 -69
- package/lib/partials/Pattern.d.ts +9 -14
- package/lib/partials/Pattern.js +24 -30
- package/lib/partials/ShaderConfig.d.ts +74 -81
- package/lib/partials/ShaderConfig.js +23 -22
- package/lib/partials/index.d.ts +1 -1
- package/lib/partials/index.js +1 -1
- package/lib/partials/types.d.ts +6 -19
- package/lib/partials/types.js +1 -1
- package/lib/scenes/Scene2D.d.ts +23 -42
- package/lib/scenes/Scene2D.js +151 -161
- package/lib/scenes/index.d.ts +1 -1
- package/lib/scenes/index.js +1 -1
- package/lib/scenes/makeScene2D.d.ts +5 -7
- package/lib/scenes/makeScene2D.js +10 -10
- package/lib/scenes/useScene2D.d.ts +2 -2
- package/lib/scenes/useScene2D.js +3 -3
- package/lib/utils/CanvasUtils.d.ts +21 -93
- package/lib/utils/CanvasUtils.js +105 -186
- package/lib/utils/diff.d.ts +18 -25
- package/lib/utils/diff.js +87 -84
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/is.d.ts +2 -4
- package/lib/utils/is.js +2 -2
- package/lib/utils/makeSignalExtensions.d.ts +4 -11
- package/lib/utils/makeSignalExtensions.js +17 -17
- package/package.json +5 -5
- package/lib/components/AudioTest.d.ts +0 -99
- package/lib/components/AudioTest.d.ts.map +0 -1
- package/lib/components/AudioTest.js +0 -281
package/lib/components/Code.js
CHANGED
|
@@ -1,45 +1,14 @@
|
|
|
1
|
-
var __decorate =
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
r =
|
|
6
|
-
c < 3
|
|
7
|
-
? target
|
|
8
|
-
: desc === null
|
|
9
|
-
? (desc = Object.getOwnPropertyDescriptor(target, key))
|
|
10
|
-
: desc,
|
|
11
|
-
d;
|
|
12
|
-
if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
|
|
13
|
-
r = Reflect.decorate(decorators, target, key, desc);
|
|
14
|
-
else
|
|
15
|
-
for (var i = decorators.length - 1; i >= 0; i--)
|
|
16
|
-
if ((d = decorators[i]))
|
|
17
|
-
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
18
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
|
-
|
|
20
|
-
import {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
map,
|
|
26
|
-
unwrap,
|
|
27
|
-
} from '@revideo/core';
|
|
28
|
-
import {
|
|
29
|
-
CodeCursor,
|
|
30
|
-
codeSignal,
|
|
31
|
-
CodeSignalContext,
|
|
32
|
-
DefaultHighlightStyle,
|
|
33
|
-
findAllCodeRanges,
|
|
34
|
-
isPointInCodeSelection,
|
|
35
|
-
LezerHighlighter,
|
|
36
|
-
lines,
|
|
37
|
-
parseCodeSelection,
|
|
38
|
-
resolveScope,
|
|
39
|
-
} from '../code';
|
|
40
|
-
import {computed, initial, nodeName, parser, signal} from '../decorators';
|
|
41
|
-
import {useScene2D} from '../scenes';
|
|
42
|
-
import {Shape} from './Shape';
|
|
6
|
+
};
|
|
7
|
+
import { BBox, createSignal, ExperimentalError, lazy, map, unwrap, } from '@revideo/core';
|
|
8
|
+
import { CodeCursor, codeSignal, CodeSignalContext, DefaultHighlightStyle, findAllCodeRanges, isPointInCodeSelection, LezerHighlighter, lines, parseCodeSelection, resolveScope, } from '../code';
|
|
9
|
+
import { computed, initial, nodeName, parser, signal } from '../decorators';
|
|
10
|
+
import { useScene2D } from '../scenes';
|
|
11
|
+
import { Shape } from './Shape';
|
|
43
12
|
/**
|
|
44
13
|
* A node for displaying and animating code.
|
|
45
14
|
*
|
|
@@ -84,290 +53,273 @@ import {Shape} from './Shape';
|
|
|
84
53
|
* ```
|
|
85
54
|
*/
|
|
86
55
|
let Code = class Code extends Shape {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
initial,
|
|
97
|
-
undefined,
|
|
98
|
-
highlighter,
|
|
99
|
-
dialect,
|
|
100
|
-
).toSignal();
|
|
101
|
-
}
|
|
102
|
-
*tweenSelection(value, duration, timingFunction) {
|
|
103
|
-
this.oldSelection = this.selection();
|
|
104
|
-
this.selection(value);
|
|
105
|
-
this.selectionProgress(0);
|
|
106
|
-
yield* this.selectionProgress(1, duration, timingFunction);
|
|
107
|
-
this.selectionProgress(null);
|
|
108
|
-
this.oldSelection = null;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Get the currently displayed code as a string.
|
|
112
|
-
*/
|
|
113
|
-
parsed() {
|
|
114
|
-
return resolveScope(this.code(), scope => unwrap(scope.progress) > 0.5);
|
|
115
|
-
}
|
|
116
|
-
highlighterCache() {
|
|
117
|
-
const highlighter = this.highlighter();
|
|
118
|
-
if (!highlighter || !highlighter.initialize()) return null;
|
|
119
|
-
const code = this.code();
|
|
120
|
-
const before = resolveScope(code, false);
|
|
121
|
-
const after = resolveScope(code, true);
|
|
122
|
-
const dialect = this.dialect();
|
|
123
|
-
return {
|
|
124
|
-
before: highlighter.prepare(before, dialect),
|
|
125
|
-
after: highlighter.prepare(after, dialect),
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
get cursor() {
|
|
129
|
-
this.cursorCache ?? (this.cursorCache = new CodeCursor(this));
|
|
130
|
-
return this.cursorCache;
|
|
131
|
-
}
|
|
132
|
-
constructor(props) {
|
|
133
|
-
super({
|
|
134
|
-
fontFamily: 'monospace',
|
|
135
|
-
...props,
|
|
136
|
-
});
|
|
137
|
-
this.oldSelection = null;
|
|
138
|
-
this.selectionProgress = createSignal(null);
|
|
139
|
-
if (!useScene2D().experimentalFeatures) {
|
|
140
|
-
throw new ExperimentalError('The Code node is an experimental feature');
|
|
56
|
+
/**
|
|
57
|
+
* Create a standalone code signal.
|
|
58
|
+
*
|
|
59
|
+
* @param initial - The initial code.
|
|
60
|
+
* @param highlighter - Custom highlighter to use.
|
|
61
|
+
* @param dialect - Custom dialect to use.
|
|
62
|
+
*/
|
|
63
|
+
static createSignal(initial, highlighter, dialect) {
|
|
64
|
+
return new CodeSignalContext(initial, undefined, highlighter, dialect).toSignal();
|
|
141
65
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
return new CodeSignalContext(
|
|
150
|
-
initial,
|
|
151
|
-
this,
|
|
152
|
-
this.highlighter,
|
|
153
|
-
this.dialect,
|
|
154
|
-
).toSignal();
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Find all code ranges that match the given pattern.
|
|
158
|
-
*
|
|
159
|
-
* @param pattern - Either a string or a regular expression to match.
|
|
160
|
-
*/
|
|
161
|
-
findAllRanges(pattern) {
|
|
162
|
-
return findAllCodeRanges(this.parsed(), pattern);
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Find the first code range that matches the given pattern.
|
|
166
|
-
*
|
|
167
|
-
* @param pattern - Either a string or a regular expression to match.
|
|
168
|
-
*/
|
|
169
|
-
findFirstRange(pattern) {
|
|
170
|
-
return (
|
|
171
|
-
findAllCodeRanges(this.parsed(), pattern, 1)[0] ?? [
|
|
172
|
-
[0, 0],
|
|
173
|
-
[0, 0],
|
|
174
|
-
]
|
|
175
|
-
);
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Find the last code range that matches the given pattern.
|
|
179
|
-
*
|
|
180
|
-
* @param pattern - Either a string or a regular expression to match.
|
|
181
|
-
*/
|
|
182
|
-
findLastRange(pattern) {
|
|
183
|
-
return (
|
|
184
|
-
findAllCodeRanges(this.parsed(), pattern).at(-1) ?? [
|
|
185
|
-
[0, 0],
|
|
186
|
-
[0, 0],
|
|
187
|
-
]
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Return the bounding box of the given point (character) in the code.
|
|
192
|
-
*
|
|
193
|
-
* @remarks
|
|
194
|
-
* The returned bound box is in local space of the `Code` node.
|
|
195
|
-
*
|
|
196
|
-
* @param point - The point to get the bounding box for.
|
|
197
|
-
*/
|
|
198
|
-
getPointBbox(point) {
|
|
199
|
-
const [line, column] = point;
|
|
200
|
-
const drawingInfo = this.drawingInfo();
|
|
201
|
-
let match;
|
|
202
|
-
for (const info of drawingInfo.fragments) {
|
|
203
|
-
if (info.cursor.y < line) {
|
|
204
|
-
match = info;
|
|
205
|
-
continue;
|
|
206
|
-
}
|
|
207
|
-
if (info.cursor.y === line && info.cursor.x < column) {
|
|
208
|
-
match = info;
|
|
209
|
-
continue;
|
|
210
|
-
}
|
|
211
|
-
break;
|
|
66
|
+
*tweenSelection(value, duration, timingFunction) {
|
|
67
|
+
this.oldSelection = this.selection();
|
|
68
|
+
this.selection(value);
|
|
69
|
+
this.selectionProgress(0);
|
|
70
|
+
yield* this.selectionProgress(1, duration, timingFunction);
|
|
71
|
+
this.selectionProgress(null);
|
|
72
|
+
this.oldSelection = null;
|
|
212
73
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
.
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Get the currently displayed code as a string.
|
|
76
|
+
*/
|
|
77
|
+
parsed() {
|
|
78
|
+
return resolveScope(this.code(), scope => unwrap(scope.progress) > 0.5);
|
|
79
|
+
}
|
|
80
|
+
highlighterCache() {
|
|
81
|
+
const highlighter = this.highlighter();
|
|
82
|
+
if (!highlighter || !highlighter.initialize())
|
|
83
|
+
return null;
|
|
84
|
+
const code = this.code();
|
|
85
|
+
const before = resolveScope(code, false);
|
|
86
|
+
const after = resolveScope(code, true);
|
|
87
|
+
const dialect = this.dialect();
|
|
88
|
+
return {
|
|
89
|
+
before: highlighter.prepare(before, dialect),
|
|
90
|
+
after: highlighter.prepare(after, dialect),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
get cursor() {
|
|
94
|
+
this.cursorCache ?? (this.cursorCache = new CodeCursor(this));
|
|
95
|
+
return this.cursorCache;
|
|
96
|
+
}
|
|
97
|
+
constructor(props) {
|
|
98
|
+
super({
|
|
99
|
+
fontFamily: 'monospace',
|
|
100
|
+
...props,
|
|
101
|
+
});
|
|
102
|
+
this.oldSelection = null;
|
|
103
|
+
this.selectionProgress = createSignal(null);
|
|
104
|
+
if (!useScene2D().experimentalFeatures) {
|
|
105
|
+
throw new ExperimentalError('The Code node is an experimental feature');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create a child code signal.
|
|
110
|
+
*
|
|
111
|
+
* @param initial - The initial code.
|
|
112
|
+
*/
|
|
113
|
+
createSignal(initial) {
|
|
114
|
+
return new CodeSignalContext(initial, this, this.highlighter, this.dialect).toSignal();
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Find all code ranges that match the given pattern.
|
|
118
|
+
*
|
|
119
|
+
* @param pattern - Either a string or a regular expression to match.
|
|
120
|
+
*/
|
|
121
|
+
findAllRanges(pattern) {
|
|
122
|
+
return findAllCodeRanges(this.parsed(), pattern);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Find the first code range that matches the given pattern.
|
|
126
|
+
*
|
|
127
|
+
* @param pattern - Either a string or a regular expression to match.
|
|
128
|
+
*/
|
|
129
|
+
findFirstRange(pattern) {
|
|
130
|
+
return (findAllCodeRanges(this.parsed(), pattern, 1)[0] ?? [
|
|
131
|
+
[0, 0],
|
|
132
|
+
[0, 0],
|
|
133
|
+
]);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Find the last code range that matches the given pattern.
|
|
137
|
+
*
|
|
138
|
+
* @param pattern - Either a string or a regular expression to match.
|
|
139
|
+
*/
|
|
140
|
+
findLastRange(pattern) {
|
|
141
|
+
return (findAllCodeRanges(this.parsed(), pattern).at(-1) ?? [
|
|
142
|
+
[0, 0],
|
|
143
|
+
[0, 0],
|
|
144
|
+
]);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Return the bounding box of the given point (character) in the code.
|
|
148
|
+
*
|
|
149
|
+
* @remarks
|
|
150
|
+
* The returned bound box is in local space of the `Code` node.
|
|
151
|
+
*
|
|
152
|
+
* @param point - The point to get the bounding box for.
|
|
153
|
+
*/
|
|
154
|
+
getPointBbox(point) {
|
|
155
|
+
const [line, column] = point;
|
|
156
|
+
const drawingInfo = this.drawingInfo();
|
|
157
|
+
let match;
|
|
158
|
+
for (const info of drawingInfo.fragments) {
|
|
159
|
+
if (info.cursor.y < line) {
|
|
160
|
+
match = info;
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (info.cursor.y === line && info.cursor.x < column) {
|
|
164
|
+
match = info;
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
245
168
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
169
|
+
if (!match)
|
|
170
|
+
return new BBox();
|
|
171
|
+
const size = this.computedSize();
|
|
172
|
+
return new BBox(match.position
|
|
173
|
+
.sub(size.scale(0.5))
|
|
174
|
+
.addX(match.characterSize.x * (column - match.cursor.x)), match.characterSize);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Return bounding boxes of all characters in the selection.
|
|
178
|
+
*
|
|
179
|
+
* @remarks
|
|
180
|
+
* The returned bound boxes are in local space of the `Code` node.
|
|
181
|
+
* Each line of code has a separate bounding box.
|
|
182
|
+
*
|
|
183
|
+
* @param selection - The selection to get the bounding boxes for.
|
|
184
|
+
*/
|
|
185
|
+
getSelectionBbox(selection) {
|
|
186
|
+
const size = this.computedSize();
|
|
187
|
+
const range = parseCodeSelection(selection);
|
|
188
|
+
const drawingInfo = this.drawingInfo();
|
|
189
|
+
const bboxes = [];
|
|
190
|
+
let current = null;
|
|
191
|
+
let line = 0;
|
|
192
|
+
let column = 0;
|
|
193
|
+
for (const info of drawingInfo.fragments) {
|
|
194
|
+
if (info.cursor.y !== line) {
|
|
195
|
+
line = info.cursor.y;
|
|
196
|
+
if (current) {
|
|
197
|
+
bboxes.push(current);
|
|
198
|
+
current = null;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
column = info.cursor.x;
|
|
202
|
+
for (let i = 0; i < info.text.length; i++) {
|
|
203
|
+
if (isPointInCodeSelection([line, column], range)) {
|
|
204
|
+
const bbox = new BBox(info.position
|
|
205
|
+
.sub(size.scale(0.5))
|
|
206
|
+
.addX(info.characterSize.x * (column - info.cursor.x)), info.characterSize);
|
|
207
|
+
if (!current) {
|
|
208
|
+
current = bbox;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
current = current.union(bbox);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
else if (current) {
|
|
215
|
+
bboxes.push(current);
|
|
216
|
+
current = null;
|
|
217
|
+
}
|
|
218
|
+
column++;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (current) {
|
|
222
|
+
bboxes.push(current);
|
|
264
223
|
}
|
|
265
|
-
|
|
266
|
-
}
|
|
224
|
+
return bboxes;
|
|
267
225
|
}
|
|
268
|
-
|
|
269
|
-
|
|
226
|
+
drawingInfo() {
|
|
227
|
+
this.requestFontUpdate();
|
|
228
|
+
const context = this.cacheCanvas();
|
|
229
|
+
const code = this.code();
|
|
230
|
+
context.save();
|
|
231
|
+
this.applyStyle(context);
|
|
232
|
+
this.applyText(context);
|
|
233
|
+
this.cursor.setupDraw(context);
|
|
234
|
+
this.cursor.drawScope(code);
|
|
235
|
+
const info = this.cursor.getDrawingInfo();
|
|
236
|
+
context.restore();
|
|
237
|
+
return info;
|
|
270
238
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
);
|
|
310
|
-
const drawHooks = this.drawHooks();
|
|
311
|
-
for (const info of drawingInfo.fragments) {
|
|
312
|
-
context.save();
|
|
313
|
-
context.globalAlpha *= info.alpha;
|
|
314
|
-
drawHooks.token(context, info.text, info.position, info.fill, info.time);
|
|
315
|
-
context.restore();
|
|
239
|
+
desiredSize() {
|
|
240
|
+
this.requestFontUpdate();
|
|
241
|
+
const context = this.cacheCanvas();
|
|
242
|
+
const code = this.code();
|
|
243
|
+
context.save();
|
|
244
|
+
this.applyStyle(context);
|
|
245
|
+
this.applyText(context);
|
|
246
|
+
this.cursor.setupMeasure(context);
|
|
247
|
+
this.cursor.measureSize(code);
|
|
248
|
+
const size = this.cursor.getSize();
|
|
249
|
+
context.restore();
|
|
250
|
+
return size;
|
|
251
|
+
}
|
|
252
|
+
draw(context) {
|
|
253
|
+
this.requestFontUpdate();
|
|
254
|
+
this.applyStyle(context);
|
|
255
|
+
this.applyText(context);
|
|
256
|
+
const size = this.computedSize();
|
|
257
|
+
const drawingInfo = this.drawingInfo();
|
|
258
|
+
context.save();
|
|
259
|
+
context.translate(-size.width / 2, -size.height / 2 + drawingInfo.verticalOffset);
|
|
260
|
+
const drawHooks = this.drawHooks();
|
|
261
|
+
for (const info of drawingInfo.fragments) {
|
|
262
|
+
context.save();
|
|
263
|
+
context.globalAlpha *= info.alpha;
|
|
264
|
+
drawHooks.token(context, info.text, info.position, info.fill, info.time);
|
|
265
|
+
context.restore();
|
|
266
|
+
}
|
|
267
|
+
context.restore();
|
|
268
|
+
this.drawChildren(context);
|
|
269
|
+
}
|
|
270
|
+
applyText(context) {
|
|
271
|
+
super.applyText(context);
|
|
272
|
+
context.font = this.styles.font;
|
|
273
|
+
context.textBaseline = 'top';
|
|
274
|
+
if ('letterSpacing' in context) {
|
|
275
|
+
context.letterSpacing = this.styles.letterSpacing;
|
|
276
|
+
}
|
|
316
277
|
}
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
applyText(context) {
|
|
321
|
-
super.applyText(context);
|
|
322
|
-
context.font = this.styles.font;
|
|
323
|
-
context.textBaseline = 'top';
|
|
324
|
-
if ('letterSpacing' in context) {
|
|
325
|
-
context.letterSpacing = this.styles.letterSpacing;
|
|
278
|
+
collectAsyncResources() {
|
|
279
|
+
super.collectAsyncResources();
|
|
280
|
+
this.highlighter()?.initialize();
|
|
326
281
|
}
|
|
327
|
-
}
|
|
328
|
-
collectAsyncResources() {
|
|
329
|
-
super.collectAsyncResources();
|
|
330
|
-
this.highlighter()?.initialize();
|
|
331
|
-
}
|
|
332
282
|
};
|
|
333
|
-
__decorate([
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
)
|
|
340
|
-
|
|
341
|
-
__decorate(
|
|
342
|
-
|
|
283
|
+
__decorate([
|
|
284
|
+
initial(''),
|
|
285
|
+
signal()
|
|
286
|
+
], Code.prototype, "dialect", void 0);
|
|
287
|
+
__decorate([
|
|
288
|
+
initial(() => Code.defaultHighlighter),
|
|
289
|
+
signal()
|
|
290
|
+
], Code.prototype, "highlighter", void 0);
|
|
291
|
+
__decorate([
|
|
292
|
+
codeSignal()
|
|
293
|
+
], Code.prototype, "code", void 0);
|
|
294
|
+
__decorate([
|
|
343
295
|
initial({
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
296
|
+
token(ctx, text, position, color, selection) {
|
|
297
|
+
ctx.fillStyle = color;
|
|
298
|
+
ctx.globalAlpha *= map(0.2, 1, selection);
|
|
299
|
+
ctx.fillText(text, position.x, position.y);
|
|
300
|
+
},
|
|
349
301
|
}),
|
|
350
|
-
signal()
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
)
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
)
|
|
362
|
-
|
|
363
|
-
__decorate([
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
)
|
|
371
|
-
|
|
372
|
-
export {Code};
|
|
373
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9Db2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDTCxJQUFJLEVBQ0osWUFBWSxFQUNaLGlCQUFpQixFQUNqQixJQUFJLEVBQ0osR0FBRyxFQU9ILE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsVUFBVSxFQU9WLFVBQVUsRUFDVixpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxrQkFBa0IsRUFHbEIsWUFBWSxHQUNiLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFDLEtBQUssRUFBYSxNQUFNLFNBQVMsQ0FBQztBQXlEMUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBDRztBQUVJLElBQU0sSUFBSSxHQUFWLE1BQU0sSUFBSyxTQUFRLEtBQUs7SUFDN0I7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FDeEIsT0FBMEIsRUFDMUIsV0FBMEMsRUFDMUMsT0FBNkI7UUFFN0IsT0FBTyxJQUFJLGlCQUFpQixDQUMxQixPQUFPLEVBQ1AsU0FBUyxFQUNULFdBQVcsRUFDWCxPQUFPLENBQ1IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUM7SUE2SFMsQ0FBQyxjQUFjLENBQ3ZCLEtBQWtCLEVBQ2xCLFFBQWdCLEVBQ2hCLGNBQThCO1FBRTlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JD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
|
|
302
|
+
signal()
|
|
303
|
+
], Code.prototype, "drawHooks", void 0);
|
|
304
|
+
__decorate([
|
|
305
|
+
initial(lines(0, Infinity)),
|
|
306
|
+
parser(parseCodeSelection),
|
|
307
|
+
signal()
|
|
308
|
+
], Code.prototype, "selection", void 0);
|
|
309
|
+
__decorate([
|
|
310
|
+
computed()
|
|
311
|
+
], Code.prototype, "parsed", null);
|
|
312
|
+
__decorate([
|
|
313
|
+
computed()
|
|
314
|
+
], Code.prototype, "highlighterCache", null);
|
|
315
|
+
__decorate([
|
|
316
|
+
computed()
|
|
317
|
+
], Code.prototype, "drawingInfo", null);
|
|
318
|
+
__decorate([
|
|
319
|
+
lazy(() => new LezerHighlighter(DefaultHighlightStyle))
|
|
320
|
+
], Code, "defaultHighlighter", void 0);
|
|
321
|
+
Code = __decorate([
|
|
322
|
+
nodeName('CodeBlock')
|
|
323
|
+
], Code);
|
|
324
|
+
export { Code };
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9Db2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDTCxJQUFJLEVBQ0osWUFBWSxFQUNaLGlCQUFpQixFQUNqQixJQUFJLEVBQ0osR0FBRyxFQU9ILE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsVUFBVSxFQU9WLFVBQVUsRUFDVixpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxrQkFBa0IsRUFHbEIsWUFBWSxHQUNiLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFDLEtBQUssRUFBYSxNQUFNLFNBQVMsQ0FBQztBQXlEMUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBDRztBQUVJLElBQU0sSUFBSSxHQUFWLE1BQU0sSUFBSyxTQUFRLEtBQUs7SUFDN0I7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FDeEIsT0FBMEIsRUFDMUIsV0FBMEMsRUFDMUMsT0FBNkI7UUFFN0IsT0FBTyxJQUFJLGlCQUFpQixDQUMxQixPQUFPLEVBQ1AsU0FBUyxFQUNULFdBQVcsRUFDWCxPQUFPLENBQ1IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUM7SUE2SFMsQ0FBQyxjQUFjLENBQ3ZCLEtBQWtCLEVBQ2xCLFFBQWdCLEVBQ2hCLGNBQThCO1FBRTlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JD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
|