@revideo/2d 0.4.7-two.1024 → 0.4.8-alpha.1032

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 (170) hide show
  1. package/editor/editor/tsconfig.build.tsbuildinfo +1 -1
  2. package/editor/index.js +151 -380
  3. package/editor/index.js.map +1 -1
  4. package/lib/code/CodeCursor.d.ts +74 -74
  5. package/lib/code/CodeDiffer.d.ts +16 -21
  6. package/lib/code/CodeDiffer.js +41 -39
  7. package/lib/code/CodeFragment.d.ts +8 -16
  8. package/lib/code/CodeFragment.js +36 -36
  9. package/lib/code/CodeHighlighter.d.ts +59 -59
  10. package/lib/code/CodeHighlighter.js +1 -1
  11. package/lib/code/CodeMetrics.d.ts +8 -12
  12. package/lib/code/CodeMetrics.js +24 -26
  13. package/lib/code/CodeRange.d.ts +5 -21
  14. package/lib/code/CodeRange.js +124 -131
  15. package/lib/code/CodeScope.d.ts +8 -18
  16. package/lib/code/CodeSelection.d.ts +4 -9
  17. package/lib/code/CodeSelection.js +8 -8
  18. package/lib/code/CodeSignal.d.ts +47 -74
  19. package/lib/code/CodeTokenizer.d.ts +1 -1
  20. package/lib/code/CodeTokenizer.js +41 -41
  21. package/lib/code/DefaultHighlightStyle.d.ts +2 -2
  22. package/lib/code/DefaultHighlightStyle.js +96 -96
  23. package/lib/code/LezerHighlighter.d.ts +19 -21
  24. package/lib/code/diff.d.ts +9 -12
  25. package/lib/code/diff.js +205 -218
  26. package/lib/code/extractRange.d.ts +4 -7
  27. package/lib/code/extractRange.js +71 -79
  28. package/lib/code/index.d.ts +1 -1
  29. package/lib/code/index.js +1 -1
  30. package/lib/components/Audio.d.ts +11 -11
  31. package/lib/components/Bezier.d.ts +18 -18
  32. package/lib/components/Circle.d.ts +90 -95
  33. package/lib/components/Code.d.ts +211 -244
  34. package/lib/components/CodeBlock.d.ts +1 -1
  35. package/lib/components/CubicBezier.d.ts +36 -36
  36. package/lib/components/Curve.d.ts +198 -208
  37. package/lib/components/Grid.d.ts +42 -47
  38. package/lib/components/Icon.d.ts +50 -55
  39. package/lib/components/Img.d.ts +79 -86
  40. package/lib/components/Knot.d.ts +78 -97
  41. package/lib/components/Latex.d.ts +12 -12
  42. package/lib/components/Layout.d.ts +413 -455
  43. package/lib/components/Line.d.ts +49 -61
  44. package/lib/components/Media.d.ts +37 -37
  45. package/lib/components/Node.d.ts +1 -1
  46. package/lib/components/Path.d.ts +1 -1
  47. package/lib/components/Polygon.d.ts +55 -60
  48. package/lib/components/QuadBezier.d.ts +29 -29
  49. package/lib/components/Ray.d.ts +28 -28
  50. package/lib/components/Rect.d.ts +108 -115
  51. package/lib/components/SVG.d.ts +1 -1
  52. package/lib/components/Shape.d.ts +1 -1
  53. package/lib/components/Spline.d.ts +40 -46
  54. package/lib/components/Txt.d.ts +44 -55
  55. package/lib/components/TxtLeaf.d.ts +16 -20
  56. package/lib/components/Video.d.ts +1 -0
  57. package/lib/components/Video.d.ts.map +1 -1
  58. package/lib/components/Video.js +9 -3
  59. package/lib/components/View2D.d.ts +22 -22
  60. package/lib/components/index.d.ts +2 -1
  61. package/lib/components/index.d.ts.map +1 -1
  62. package/lib/components/index.js +2 -1
  63. package/lib/components/types.d.ts +9 -22
  64. package/lib/curves/ArcSegment.d.ts +24 -36
  65. package/lib/curves/CircleSegment.d.ts +16 -26
  66. package/lib/curves/CubicBezierSegment.d.ts +13 -18
  67. package/lib/curves/CurveDrawingInfo.d.ts +9 -9
  68. package/lib/curves/CurvePoint.d.ts +13 -13
  69. package/lib/curves/CurveProfile.d.ts +5 -5
  70. package/lib/curves/CurveProfile.js +1 -1
  71. package/lib/curves/KnotInfo.d.ts +8 -8
  72. package/lib/curves/LineSegment.d.ts +14 -19
  73. package/lib/curves/Polynomial.d.ts +110 -110
  74. package/lib/curves/Polynomial2D.d.ts +20 -20
  75. package/lib/curves/PolynomialSegment.d.ts +37 -42
  76. package/lib/curves/QuadBezierSegment.d.ts +12 -12
  77. package/lib/curves/Segment.d.ts +7 -12
  78. package/lib/curves/UniformPolynomialCurveSampler.d.ts +34 -34
  79. package/lib/curves/createCurveProfileLerp.d.ts +6 -17
  80. package/lib/curves/getBezierSplineProfile.d.ts +4 -8
  81. package/lib/curves/getCircleProfile.d.ts +4 -10
  82. package/lib/curves/getPathProfile.d.ts +2 -2
  83. package/lib/curves/getPointAtDistance.d.ts +4 -7
  84. package/lib/curves/getPolylineProfile.d.ts +4 -8
  85. package/lib/curves/getRectProfile.d.ts +4 -9
  86. package/lib/curves/index.d.ts +1 -1
  87. package/lib/curves/index.js +1 -1
  88. package/lib/decorators/canvasStyleSignal.d.ts +3 -3
  89. package/lib/decorators/colorSignal.d.ts +1 -1
  90. package/lib/decorators/compound.d.ts +2 -4
  91. package/lib/decorators/computed.d.ts +1 -1
  92. package/lib/decorators/defaultStyle.d.ts +2 -5
  93. package/lib/decorators/filtersSignal.d.ts +8 -28
  94. package/lib/decorators/index.d.ts +1 -1
  95. package/lib/decorators/index.js +1 -1
  96. package/lib/decorators/initializers.d.ts +2 -5
  97. package/lib/decorators/initializers.js +19 -18
  98. package/lib/decorators/nodeName.d.ts +1 -1
  99. package/lib/decorators/nodeName.js +4 -4
  100. package/lib/decorators/signal.d.ts +20 -40
  101. package/lib/decorators/spacingSignal.d.ts +1 -1
  102. package/lib/decorators/vector2Signal.d.ts +7 -13
  103. package/lib/index.d.ts +1 -1
  104. package/lib/index.js +1 -1
  105. package/lib/jsx-dev-runtime.d.ts +3 -3
  106. package/lib/jsx-dev-runtime.js +3 -3
  107. package/lib/jsx-runtime.d.ts +9 -19
  108. package/lib/jsx-runtime.js +18 -18
  109. package/lib/partials/Filter.d.ts +16 -24
  110. package/lib/partials/Gradient.d.ts +24 -30
  111. package/lib/partials/Pattern.d.ts +9 -14
  112. package/lib/partials/ShaderConfig.d.ts +74 -81
  113. package/lib/partials/index.d.ts +1 -1
  114. package/lib/partials/index.js +1 -1
  115. package/lib/partials/types.d.ts +6 -19
  116. package/lib/scenes/Scene2D.d.ts +24 -42
  117. package/lib/scenes/Scene2D.d.ts.map +1 -1
  118. package/lib/scenes/Scene2D.js +10 -2
  119. package/lib/scenes/index.d.ts +1 -1
  120. package/lib/scenes/index.js +1 -1
  121. package/lib/scenes/makeScene2D.d.ts +5 -7
  122. package/lib/scenes/useScene2D.d.ts +2 -2
  123. package/lib/tsconfig.build.tsbuildinfo +1 -1
  124. package/lib/utils/diff.d.ts +18 -25
  125. package/lib/utils/diff.js +87 -84
  126. package/lib/utils/index.d.ts +1 -1
  127. package/lib/utils/index.js +1 -1
  128. package/lib/utils/is.d.ts +2 -4
  129. package/lib/utils/is.js +2 -2
  130. package/lib/utils/makeSignalExtensions.d.ts +4 -11
  131. package/lib/utils/video/mp4-parser-manager.d.ts +1 -0
  132. package/lib/utils/video/mp4-parser-manager.d.ts.map +1 -1
  133. package/lib/utils/video/mp4-parser-manager.js +21 -4
  134. package/lib/utils/video/parser/index.d.ts +2 -0
  135. package/lib/utils/video/parser/index.d.ts.map +1 -0
  136. package/lib/utils/video/parser/index.js +2 -0
  137. package/lib/utils/video/parser/parser.d.ts +21 -0
  138. package/lib/utils/video/parser/parser.d.ts.map +1 -0
  139. package/lib/utils/video/parser/parser.js +168 -0
  140. package/lib/utils/video/parser/sampler.d.ts +16 -0
  141. package/lib/utils/video/parser/sampler.d.ts.map +1 -0
  142. package/lib/utils/video/parser/sampler.js +56 -0
  143. package/lib/utils/video/parser/segment.d.ts +44 -0
  144. package/lib/utils/video/parser/segment.d.ts.map +1 -0
  145. package/lib/utils/video/parser/segment.js +195 -0
  146. package/lib/utils/video/parser/sink.d.ts +9 -0
  147. package/lib/utils/video/parser/sink.d.ts.map +1 -0
  148. package/lib/utils/video/parser/sink.js +22 -0
  149. package/lib/utils/video/parser/utils.d.ts +10 -0
  150. package/lib/utils/video/parser/utils.d.ts.map +1 -0
  151. package/lib/utils/video/parser/utils.js +22 -0
  152. package/package.json +4 -4
  153. package/src/lib/components/Video.ts +9 -2
  154. package/src/lib/components/index.ts +1 -0
  155. package/src/lib/scenes/Scene2D.ts +11 -1
  156. package/src/lib/utils/video/mp4-parser-manager.ts +24 -5
  157. package/src/lib/utils/video/parser/index.ts +1 -0
  158. package/src/lib/utils/video/parser/parser.ts +256 -0
  159. package/src/lib/utils/video/parser/sampler.ts +72 -0
  160. package/src/lib/utils/video/parser/segment.ts +252 -0
  161. package/src/lib/utils/video/parser/sink.ts +29 -0
  162. package/src/lib/utils/video/parser/utils.ts +31 -0
  163. package/lib/components/HlsVideo.d.ts +0 -62
  164. package/lib/components/HlsVideo.d.ts.map +0 -1
  165. package/lib/components/HlsVideo.js +0 -169
  166. package/lib/tsconfig.tsbuildinfo +0 -1
  167. package/lib/utils/video/mp4-parser.d.ts +0 -63
  168. package/lib/utils/video/mp4-parser.d.ts.map +0 -1
  169. package/lib/utils/video/mp4-parser.js +0 -264
  170. package/src/lib/utils/video/mp4-parser.ts +0 -340
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUhpZ2hsaWdodGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb2RlL0NvZGVIaWdobGlnaHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUhpZ2hsaWdodGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb2RlL0NvZGVIaWdobGlnaHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,15 +1,11 @@
1
1
  export interface CodeMetrics {
2
- content: string;
3
- newRows: number;
4
- endColumn: number;
5
- firstWidth: number;
6
- maxWidth: number;
7
- lastWidth: number;
2
+ content: string;
3
+ newRows: number;
4
+ endColumn: number;
5
+ firstWidth: number;
6
+ maxWidth: number;
7
+ lastWidth: number;
8
8
  }
9
- export declare function measureString(
10
- context: CanvasRenderingContext2D,
11
- monoWidth: number,
12
- value: string,
13
- ): CodeMetrics;
9
+ export declare function measureString(context: CanvasRenderingContext2D, monoWidth: number, value: string): CodeMetrics;
14
10
  export declare function isCodeMetrics(value: any): value is CodeMetrics;
15
- //# sourceMappingURL=CodeMetrics.d.ts.map
11
+ //# sourceMappingURL=CodeMetrics.d.ts.map
@@ -1,31 +1,29 @@
1
1
  export function measureString(context, monoWidth, value) {
2
- const lines = value.split('\n');
3
- const lastLine = lines[lines.length - 1];
4
- const firstWidth = Math.round(
5
- context.measureText(lines[0]).width / monoWidth,
6
- );
7
- let lastWidth = firstWidth;
8
- let maxWidth = firstWidth;
9
- for (let i = 1; i < lines.length - 1; i++) {
10
- const line = lines[i];
11
- const width = Math.round(context.measureText(line).width / monoWidth);
12
- if (width > maxWidth) {
13
- maxWidth = width;
2
+ const lines = value.split('\n');
3
+ const lastLine = lines[lines.length - 1];
4
+ const firstWidth = Math.round(context.measureText(lines[0]).width / monoWidth);
5
+ let lastWidth = firstWidth;
6
+ let maxWidth = firstWidth;
7
+ for (let i = 1; i < lines.length - 1; i++) {
8
+ const line = lines[i];
9
+ const width = Math.round(context.measureText(line).width / monoWidth);
10
+ if (width > maxWidth) {
11
+ maxWidth = width;
12
+ }
14
13
  }
15
- }
16
- if (lines.length > 0) {
17
- lastWidth = Math.round(context.measureText(lastLine).width / monoWidth);
18
- }
19
- return {
20
- content: value,
21
- newRows: lines.length - 1,
22
- endColumn: lastLine.length,
23
- firstWidth,
24
- maxWidth,
25
- lastWidth,
26
- };
14
+ if (lines.length > 0) {
15
+ lastWidth = Math.round(context.measureText(lastLine).width / monoWidth);
16
+ }
17
+ return {
18
+ content: value,
19
+ newRows: lines.length - 1,
20
+ endColumn: lastLine.length,
21
+ firstWidth,
22
+ maxWidth,
23
+ lastWidth,
24
+ };
27
25
  }
28
26
  export function isCodeMetrics(value) {
29
- return value?.content !== undefined;
27
+ return value?.content !== undefined;
30
28
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZU1ldHJpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvZGUvQ29kZU1ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBaUMsRUFDakMsU0FBaUIsRUFDakIsS0FBYTtJQUViLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDM0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUNoRCxDQUFDO0lBQ0YsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDO0lBQzNCLElBQUksUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUUxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQztRQUN0RSxJQUFJLEtBQUssR0FBRyxRQUFRLEVBQUUsQ0FBQztZQUNyQixRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLEtBQUs7UUFDZCxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3pCLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTTtRQUMxQixVQUFVO1FBQ1YsUUFBUTtRQUNSLFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLEtBQUssRUFBRSxPQUFPLEtBQUssU0FBUyxDQUFDO0FBQ3RDLENBQUMifQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZU1ldHJpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvZGUvQ29kZU1ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBaUMsRUFDakMsU0FBaUIsRUFDakIsS0FBYTtJQUViLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDM0IsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUNoRCxDQUFDO0lBQ0YsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDO0lBQzNCLElBQUksUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUUxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQztRQUN0RSxJQUFJLEtBQUssR0FBRyxRQUFRLEVBQUUsQ0FBQztZQUNyQixRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLEtBQUs7UUFDZCxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ3pCLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTTtRQUMxQixVQUFVO1FBQ1YsUUFBUTtRQUNSLFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLEtBQUssRUFBRSxPQUFPLEtBQUssU0FBUyxDQUFDO0FBQ3RDLENBQUMifQ==
@@ -17,11 +17,7 @@ export declare function lines(from: number, to?: number): CodeRange;
17
17
  * @param length - The length of the word. If omitted, the range will cover the
18
18
  * rest of the line.
19
19
  */
20
- export declare function word(
21
- line: number,
22
- from: number,
23
- length?: number,
24
- ): CodeRange;
20
+ export declare function word(line: number, from: number, length?: number): CodeRange;
25
21
  /**
26
22
  * Create a custom selection range.
27
23
  *
@@ -30,16 +26,8 @@ export declare function word(
30
26
  * @param endLine - The line at which the selection ends.
31
27
  * @param endColumn - The column at which the selection ends.
32
28
  */
33
- export declare function pointToPoint(
34
- startLine: number,
35
- startColumn: number,
36
- endLine: number,
37
- endColumn: number,
38
- ): CodeRange;
39
- export declare function isPointInCodeRange(
40
- point: CodePoint,
41
- range: CodeRange,
42
- ): boolean;
29
+ export declare function pointToPoint(startLine: number, startColumn: number, endLine: number, endColumn: number): CodeRange;
30
+ export declare function isPointInCodeRange(point: CodePoint, range: CodeRange): boolean;
43
31
  export declare function consolidateCodeRanges(ranges: CodeRange[]): CodeRange[];
44
32
  export declare function inverseCodeRange(ranges: CodeRange[]): CodeRange[];
45
33
  /**
@@ -49,9 +37,5 @@ export declare function inverseCodeRange(ranges: CodeRange[]): CodeRange[];
49
37
  * @param pattern - Either a string or a regular expression to search for.
50
38
  * @param limit - An optional limit on the number of ranges to find.
51
39
  */
52
- export declare function findAllCodeRanges(
53
- code: string,
54
- pattern: string | RegExp,
55
- limit?: number,
56
- ): CodeRange[];
57
- //# sourceMappingURL=CodeRange.d.ts.map
40
+ export declare function findAllCodeRanges(code: string, pattern: string | RegExp, limit?: number): CodeRange[];
41
+ //# sourceMappingURL=CodeRange.d.ts.map
@@ -1,18 +1,14 @@
1
1
  function isCodePoint(value) {
2
- return (
3
- Array.isArray(value) &&
4
- value.length === 2 &&
5
- typeof value[0] === 'number' &&
6
- typeof value[1] === 'number'
7
- );
2
+ return (Array.isArray(value) &&
3
+ value.length === 2 &&
4
+ typeof value[0] === 'number' &&
5
+ typeof value[1] === 'number');
8
6
  }
9
7
  export function isCodeRange(value) {
10
- return (
11
- Array.isArray(value) &&
12
- value.length === 2 &&
13
- isCodePoint(value[0]) &&
14
- isCodePoint(value[1])
15
- );
8
+ return (Array.isArray(value) &&
9
+ value.length === 2 &&
10
+ isCodePoint(value[0]) &&
11
+ isCodePoint(value[1]));
16
12
  }
17
13
  /**
18
14
  * Create a code range that spans the given lines.
@@ -22,10 +18,10 @@ export function isCodeRange(value) {
22
18
  * cover only one line.
23
19
  */
24
20
  export function lines(from, to) {
25
- return [
26
- [from, 0],
27
- [to ?? from, Infinity],
28
- ];
21
+ return [
22
+ [from, 0],
23
+ [to ?? from, Infinity],
24
+ ];
29
25
  }
30
26
  /**
31
27
  * Create a code range that highlights the given word.
@@ -36,10 +32,10 @@ export function lines(from, to) {
36
32
  * rest of the line.
37
33
  */
38
34
  export function word(line, from, length) {
39
- return [
40
- [line, from],
41
- [line, from + (length ?? Infinity)],
42
- ];
35
+ return [
36
+ [line, from],
37
+ [line, from + (length ?? Infinity)],
38
+ ];
43
39
  }
44
40
  /**
45
41
  * Create a custom selection range.
@@ -50,98 +46,94 @@ export function word(line, from, length) {
50
46
  * @param endColumn - The column at which the selection ends.
51
47
  */
52
48
  export function pointToPoint(startLine, startColumn, endLine, endColumn) {
53
- return [
54
- [startLine, startColumn],
55
- [endLine, endColumn],
56
- ];
49
+ return [
50
+ [startLine, startColumn],
51
+ [endLine, endColumn],
52
+ ];
57
53
  }
58
54
  export function isPointInCodeRange(point, range) {
59
- const [y, x] = point;
60
- const [[startLine, startColumn], [endLine, endColumn]] = range;
61
- return (
62
- ((y === startLine && x >= startColumn) || y > startLine) &&
63
- ((y === endLine && x < endColumn) || y < endLine)
64
- );
55
+ const [y, x] = point;
56
+ const [[startLine, startColumn], [endLine, endColumn]] = range;
57
+ return (((y === startLine && x >= startColumn) || y > startLine) &&
58
+ ((y === endLine && x < endColumn) || y < endLine));
65
59
  }
66
60
  export function consolidateCodeRanges(ranges) {
67
- // Sort by start position
68
- ranges.sort((a, b) => {
69
- const lines = b[0][0] - a[0][0];
70
- // Break ties on start column
71
- if (lines === 0) {
72
- return b[0][1] - a[0][1];
73
- }
74
- return lines;
75
- });
76
- const staged = [...ranges];
77
- const results = [];
78
- while (staged.length > 0) {
79
- let current = staged.pop();
80
- if (!current) {
81
- continue;
82
- }
83
- const [[initStartLine, initStartColumn], [initEndLine, initEndColumn]] =
84
- current;
85
- for (const targetRange of staged) {
86
- const [
87
- [targetStartLine, targetStartColumn],
88
- [targetEndLine, targetEndColumn],
89
- ] = targetRange;
90
- if (
91
- isPointInCodeRange(targetRange[0], current) ||
92
- isPointInCodeRange(targetRange[1], current)
93
- ) {
94
- staged.pop();
95
- let startColumn;
96
- if (initStartLine === targetStartLine) {
97
- startColumn = Math.min(initStartColumn, targetStartColumn);
98
- } else if (initStartLine < targetStartLine) {
99
- startColumn = initStartColumn;
100
- } else {
101
- startColumn = targetStartColumn;
61
+ // Sort by start position
62
+ ranges.sort((a, b) => {
63
+ const lines = b[0][0] - a[0][0];
64
+ // Break ties on start column
65
+ if (lines === 0) {
66
+ return b[0][1] - a[0][1];
102
67
  }
103
- let endColumn;
104
- if (initEndLine === targetEndLine) {
105
- endColumn = Math.max(initEndColumn, targetEndColumn);
106
- } else if (initEndLine > targetEndLine) {
107
- endColumn = initEndColumn;
108
- } else {
109
- endColumn = targetEndColumn;
68
+ return lines;
69
+ });
70
+ const staged = [...ranges];
71
+ const results = [];
72
+ while (staged.length > 0) {
73
+ let current = staged.pop();
74
+ if (!current) {
75
+ continue;
110
76
  }
111
- // Update the current to the consolidated one and get rid of the
112
- // remaining instance of the unconsolidated target
113
- current = [
114
- [Math.min(initStartLine, targetStartLine), startColumn],
115
- [Math.max(initEndLine, targetEndLine), endColumn],
116
- ];
117
- }
77
+ const [[initStartLine, initStartColumn], [initEndLine, initEndColumn]] = current;
78
+ for (const targetRange of staged) {
79
+ const [[targetStartLine, targetStartColumn], [targetEndLine, targetEndColumn],] = targetRange;
80
+ if (isPointInCodeRange(targetRange[0], current) ||
81
+ isPointInCodeRange(targetRange[1], current)) {
82
+ staged.pop();
83
+ let startColumn;
84
+ if (initStartLine === targetStartLine) {
85
+ startColumn = Math.min(initStartColumn, targetStartColumn);
86
+ }
87
+ else if (initStartLine < targetStartLine) {
88
+ startColumn = initStartColumn;
89
+ }
90
+ else {
91
+ startColumn = targetStartColumn;
92
+ }
93
+ let endColumn;
94
+ if (initEndLine === targetEndLine) {
95
+ endColumn = Math.max(initEndColumn, targetEndColumn);
96
+ }
97
+ else if (initEndLine > targetEndLine) {
98
+ endColumn = initEndColumn;
99
+ }
100
+ else {
101
+ endColumn = targetEndColumn;
102
+ }
103
+ // Update the current to the consolidated one and get rid of the
104
+ // remaining instance of the unconsolidated target
105
+ current = [
106
+ [Math.min(initStartLine, targetStartLine), startColumn],
107
+ [Math.max(initEndLine, targetEndLine), endColumn],
108
+ ];
109
+ }
110
+ }
111
+ results.push(current);
118
112
  }
119
- results.push(current);
120
- }
121
- return results;
113
+ return results;
122
114
  }
123
115
  export function inverseCodeRange(ranges) {
124
- if (ranges.length === 0) {
116
+ if (ranges.length === 0) {
117
+ return [
118
+ [
119
+ [0, 0],
120
+ [Infinity, Infinity],
121
+ ],
122
+ ];
123
+ }
124
+ const firstRange = ranges[0];
125
+ const result = [];
126
+ for (let first = 0; first < ranges.length - 1; first++) {
127
+ const range1 = ranges[first];
128
+ const range2 = ranges[first + 1];
129
+ result.push([range1[1], range2[0]]);
130
+ }
131
+ const lastRange = ranges.slice(-1)[0];
125
132
  return [
126
- [
127
- [0, 0],
128
- [Infinity, Infinity],
129
- ],
133
+ [[0, 0], firstRange[0]],
134
+ ...result,
135
+ [lastRange[1], [Infinity, Infinity]],
130
136
  ];
131
- }
132
- const firstRange = ranges[0];
133
- const result = [];
134
- for (let first = 0; first < ranges.length - 1; first++) {
135
- const range1 = ranges[first];
136
- const range2 = ranges[first + 1];
137
- result.push([range1[1], range2[0]]);
138
- }
139
- const lastRange = ranges.slice(-1)[0];
140
- return [
141
- [[0, 0], firstRange[0]],
142
- ...result,
143
- [lastRange[1], [Infinity, Infinity]],
144
- ];
145
137
  }
146
138
  /**
147
139
  * Find all code ranges that match the given pattern.
@@ -151,36 +143,37 @@ export function inverseCodeRange(ranges) {
151
143
  * @param limit - An optional limit on the number of ranges to find.
152
144
  */
153
145
  export function findAllCodeRanges(code, pattern, limit = Infinity) {
154
- if (typeof pattern === 'string') {
155
- pattern = new RegExp(pattern, 'g');
156
- }
157
- const matches = code.matchAll(pattern);
158
- const ranges = [];
159
- let index = 0;
160
- let line = 0;
161
- let column = 0;
162
- for (const match of matches) {
163
- if (match.index === undefined || ranges.length >= limit) {
164
- continue;
146
+ if (typeof pattern === 'string') {
147
+ pattern = new RegExp(pattern, 'g');
165
148
  }
166
- let from = [line, column];
167
- while (index <= code.length) {
168
- if (index === match.index) {
169
- from = [line, column];
170
- }
171
- if (index === match.index + match[0].length) {
172
- ranges.push([from, [line, column]]);
173
- break;
174
- }
175
- if (code[index] === '\n') {
176
- line++;
177
- column = 0;
178
- } else {
179
- column++;
180
- }
181
- index++;
149
+ const matches = code.matchAll(pattern);
150
+ const ranges = [];
151
+ let index = 0;
152
+ let line = 0;
153
+ let column = 0;
154
+ for (const match of matches) {
155
+ if (match.index === undefined || ranges.length >= limit) {
156
+ continue;
157
+ }
158
+ let from = [line, column];
159
+ while (index <= code.length) {
160
+ if (index === match.index) {
161
+ from = [line, column];
162
+ }
163
+ if (index === match.index + match[0].length) {
164
+ ranges.push([from, [line, column]]);
165
+ break;
166
+ }
167
+ if (code[index] === '\n') {
168
+ line++;
169
+ column = 0;
170
+ }
171
+ else {
172
+ column++;
173
+ }
174
+ index++;
175
+ }
182
176
  }
183
- }
184
- return ranges;
177
+ return ranges;
185
178
  }
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZVJhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb2RlL0NvZGVSYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQ2pDLE9BQU8sQ0FDTCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNwQixLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUTtRQUM1QixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQzdCLENBQUM7QUFDSixDQUFDO0FBSUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3hDLE9BQU8sQ0FDTCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNwQixLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDbEIsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxJQUFZLEVBQUUsRUFBVztJQUM3QyxPQUFPO1FBQ0wsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLFFBQVEsQ0FBQztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsTUFBZTtJQUM5RCxPQUFPO1FBQ0wsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ1osQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDO0tBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLFNBQWlCLEVBQ2pCLFdBQW1CLEVBQ25CLE9BQWUsRUFDZixTQUFpQjtJQUVqQixPQUFPO1FBQ0wsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDO1FBQ3hCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztLQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFnQixFQUFFLEtBQWdCO0lBQ25FLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMvRCxPQUFPLENBQ0wsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FDbEQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBbUI7SUFDdkQseUJBQXlCO0lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbkIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyw2QkFBNkI7UUFDN0IsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxNQUFNLEdBQWdCLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUN4QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDbkIsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pCLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixTQUFTO1FBQ1gsQ0FBQztRQUNELE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUNwRSxPQUFPLENBQUM7UUFFVixLQUFLLE1BQU0sV0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FDSixDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxFQUNwQyxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsRUFDakMsR0FBRyxXQUFXLENBQUM7WUFDaEIsSUFDRSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO2dCQUMzQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQzNDLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUViLElBQUksV0FBVyxDQUFDO2dCQUNoQixJQUFJLGFBQWEsS0FBSyxlQUFlLEVBQUUsQ0FBQztvQkFDdEMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBQzdELENBQUM7cUJBQU0sSUFBSSxhQUFhLEdBQUcsZUFBZSxFQUFFLENBQUM7b0JBQzNDLFdBQVcsR0FBRyxlQUFlLENBQUM7Z0JBQ2hDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixXQUFXLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ2xDLENBQUM7Z0JBRUQsSUFBSSxTQUFTLENBQUM7Z0JBQ2QsSUFBSSxXQUFXLEtBQUssYUFBYSxFQUFFLENBQUM7b0JBQ2xDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztnQkFDdkQsQ0FBQztxQkFBTSxJQUFJLFdBQVcsR0FBRyxhQUFhLEVBQUUsQ0FBQztvQkFDdkMsU0FBUyxHQUFHLGFBQWEsQ0FBQztnQkFDNUIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLFNBQVMsR0FBRyxlQUFlLENBQUM7Z0JBQzlCLENBQUM7Z0JBQ0QsZ0VBQWdFO2dCQUNoRSxrREFBa0Q7Z0JBQ2xELE9BQU8sR0FBRztvQkFDUixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxFQUFFLFdBQVcsQ0FBQztvQkFDdkQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsRUFBRSxTQUFTLENBQUM7aUJBQ2xELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBbUI7SUFDbEQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU87WUFDTDtnQkFDRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ04sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO2FBQ3JCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsTUFBTSxNQUFNLEdBQWdCLEVBQUUsQ0FBQztJQUMvQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN2RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxPQUFPO1FBQ0wsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsR0FBRyxNQUFNO1FBQ1QsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDckMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQVksRUFDWixPQUF3QixFQUN4QixLQUFLLEdBQUcsUUFBUTtJQUVoQixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsTUFBTSxNQUFNLEdBQWdCLEVBQUUsQ0FBQztJQUMvQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFZixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN4RCxTQUFTO1FBQ1gsQ0FBQztRQUVELElBQUksSUFBSSxHQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzFCLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBRUQsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxNQUFNO1lBQ1IsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN6QixJQUFJLEVBQUUsQ0FBQztnQkFDUCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sRUFBRSxDQUFDO1lBQ1gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIn0=
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZVJhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb2RlL0NvZGVSYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQ2pDLE9BQU8sQ0FDTCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNwQixLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUTtRQUM1QixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQzdCLENBQUM7QUFDSixDQUFDO0FBSUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3hDLE9BQU8sQ0FDTCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNwQixLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDbEIsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxJQUFZLEVBQUUsRUFBVztJQUM3QyxPQUFPO1FBQ0wsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLFFBQVEsQ0FBQztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsTUFBZTtJQUM5RCxPQUFPO1FBQ0wsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ1osQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDO0tBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNI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
@@ -1,26 +1,16 @@
1
- import {SignalValue} from '@revideo/core';
2
- import {PossibleCodeFragment} from './CodeFragment';
1
+ import { SignalValue } from '@revideo/core';
2
+ import { PossibleCodeFragment } from './CodeFragment';
3
3
  export interface CodeScope {
4
- progress: SignalValue<number>;
5
- fragments: CodeTag[];
4
+ progress: SignalValue<number>;
5
+ fragments: CodeTag[];
6
6
  }
7
7
  export type PossibleCodeScope = CodeScope | CodeTag[] | string;
8
8
  export type CodeTag = SignalValue<PossibleCodeFragment | CodeScope | CodeTag[]>;
9
- export declare function CODE(
10
- strings: TemplateStringsArray,
11
- ...tags: CodeTag[]
12
- ): CodeTag[];
9
+ export declare function CODE(strings: TemplateStringsArray, ...tags: CodeTag[]): CodeTag[];
13
10
  export declare function isCodeScope(value: any): value is CodeScope;
14
11
  export declare function parseCodeScope(value: PossibleCodeScope): CodeScope;
15
12
  type IsAfterPredicate = ((scope: CodeScope) => boolean) | boolean;
16
- export declare function resolveScope(
17
- scope: CodeScope,
18
- isAfter: IsAfterPredicate,
19
- ): string;
20
- export declare function resolveCodeTag(
21
- wrapped: CodeTag,
22
- after: boolean,
23
- isAfter?: IsAfterPredicate,
24
- ): string;
13
+ export declare function resolveScope(scope: CodeScope, isAfter: IsAfterPredicate): string;
14
+ export declare function resolveCodeTag(wrapped: CodeTag, after: boolean, isAfter?: IsAfterPredicate): string;
25
15
  export {};
26
- //# sourceMappingURL=CodeScope.d.ts.map
16
+ //# sourceMappingURL=CodeScope.d.ts.map
@@ -1,11 +1,6 @@
1
- import {CodePoint, CodeRange} from './CodeRange';
1
+ import { CodePoint, CodeRange } from './CodeRange';
2
2
  export type CodeSelection = CodeRange[];
3
3
  export type PossibleCodeSelection = CodeRange | CodeRange[];
4
- export declare function parseCodeSelection(
5
- value: PossibleCodeSelection,
6
- ): CodeSelection;
7
- export declare function isPointInCodeSelection(
8
- point: CodePoint,
9
- selection: CodeSelection,
10
- ): boolean;
11
- //# sourceMappingURL=CodeSelection.d.ts.map
4
+ export declare function parseCodeSelection(value: PossibleCodeSelection): CodeSelection;
5
+ export declare function isPointInCodeSelection(point: CodePoint, selection: CodeSelection): boolean;
6
+ //# sourceMappingURL=CodeSelection.d.ts.map
@@ -1,13 +1,13 @@
1
- import {isCodeRange, isPointInCodeRange} from './CodeRange';
1
+ import { isCodeRange, isPointInCodeRange, } from './CodeRange';
2
2
  export function parseCodeSelection(value) {
3
- return isCodeRange(value) ? [value] : value;
3
+ return isCodeRange(value) ? [value] : value;
4
4
  }
5
5
  export function isPointInCodeSelection(point, selection) {
6
- for (const range of selection) {
7
- if (isPointInCodeRange(point, range)) {
8
- return true;
6
+ for (const range of selection) {
7
+ if (isPointInCodeRange(point, range)) {
8
+ return true;
9
+ }
9
10
  }
10
- }
11
- return false;
11
+ return false;
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZVNlbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29kZS9Db2RlU2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxXQUFXLEVBQ1gsa0JBQWtCLEdBQ25CLE1BQU0sYUFBYSxDQUFDO0FBS3JCLE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsS0FBNEI7SUFFNUIsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxLQUFnQixFQUNoQixTQUF3QjtJQUV4QixLQUFLLE1BQU0sS0FBSyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzlCLElBQUksa0JBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyJ9
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZVNlbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29kZS9Db2RlU2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxXQUFXLEVBQ1gsa0JBQWtCLEdBQ25CLE1BQU0sYUFBYSxDQUFDO0FBS3JCLE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsS0FBNEI7SUFFNUIsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxLQUFnQixFQUNoQixTQUF3QjtJQUV4QixLQUFLLE1BQU0sS0FBSyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzlCLElBQUksa0JBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyJ9