@react-x11/components 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/README.md +95 -34
  2. package/dist/charts/node.d.ts +1 -1
  3. package/dist/charts/node.d.ts.map +1 -1
  4. package/dist/charts/node.js +6 -2
  5. package/dist/charts/node.js.map +1 -1
  6. package/dist/embed/client.d.ts +48 -3
  7. package/dist/embed/client.d.ts.map +1 -1
  8. package/dist/embed/client.js +79 -5
  9. package/dist/embed/client.js.map +1 -1
  10. package/dist/embed/index.d.ts +1 -1
  11. package/dist/embed/index.d.ts.map +1 -1
  12. package/dist/embed/index.js +1 -1
  13. package/dist/embed/index.js.map +1 -1
  14. package/dist/html/node.d.ts +3 -1
  15. package/dist/html/node.d.ts.map +1 -1
  16. package/dist/html/node.js +7 -5
  17. package/dist/html/node.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/{markdown → internal/markdown}/ast.d.ts +12 -0
  23. package/dist/internal/markdown/ast.d.ts.map +1 -0
  24. package/dist/internal/markdown/ast.js +22 -0
  25. package/dist/internal/markdown/ast.js.map +1 -0
  26. package/dist/internal/markdown/parse.d.ts.map +1 -0
  27. package/dist/{markdown → internal/markdown}/parse.js +112 -22
  28. package/dist/internal/markdown/parse.js.map +1 -0
  29. package/dist/internal/markdown/stringify.d.ts +4 -0
  30. package/dist/internal/markdown/stringify.d.ts.map +1 -0
  31. package/dist/internal/markdown/stringify.js +684 -0
  32. package/dist/internal/markdown/stringify.js.map +1 -0
  33. package/dist/internal/markdown/tags.d.ts.map +1 -0
  34. package/dist/internal/markdown/tags.js.map +1 -0
  35. package/dist/internal/scroll.d.ts +3 -2
  36. package/dist/internal/scroll.d.ts.map +1 -1
  37. package/dist/internal/scroll.js +1 -0
  38. package/dist/internal/scroll.js.map +1 -1
  39. package/dist/maps/anchors.d.ts +98 -0
  40. package/dist/maps/anchors.d.ts.map +1 -0
  41. package/dist/maps/anchors.js +531 -0
  42. package/dist/maps/anchors.js.map +1 -0
  43. package/dist/maps/controller.d.ts +283 -0
  44. package/dist/maps/controller.d.ts.map +1 -0
  45. package/dist/maps/controller.js +743 -0
  46. package/dist/maps/controller.js.map +1 -0
  47. package/dist/maps/gl/buckets.d.ts +95 -0
  48. package/dist/maps/gl/buckets.d.ts.map +1 -0
  49. package/dist/maps/gl/buckets.js +362 -0
  50. package/dist/maps/gl/buckets.js.map +1 -0
  51. package/dist/maps/gl/build-worker.d.ts +13 -0
  52. package/dist/maps/gl/build-worker.d.ts.map +1 -0
  53. package/dist/maps/gl/build-worker.js +44 -0
  54. package/dist/maps/gl/build-worker.js.map +1 -0
  55. package/dist/maps/gl/color.d.ts +8 -0
  56. package/dist/maps/gl/color.d.ts.map +1 -0
  57. package/dist/maps/gl/color.js +57 -0
  58. package/dist/maps/gl/color.js.map +1 -0
  59. package/dist/maps/gl/cover.d.ts +51 -0
  60. package/dist/maps/gl/cover.d.ts.map +1 -0
  61. package/dist/maps/gl/cover.js +124 -0
  62. package/dist/maps/gl/cover.js.map +1 -0
  63. package/dist/maps/gl/index.d.ts +3 -0
  64. package/dist/maps/gl/index.d.ts.map +1 -0
  65. package/dist/maps/gl/index.js +20 -0
  66. package/dist/maps/gl/index.js.map +1 -0
  67. package/dist/maps/gl/markers.d.ts +28 -0
  68. package/dist/maps/gl/markers.d.ts.map +1 -0
  69. package/dist/maps/gl/markers.js +60 -0
  70. package/dist/maps/gl/markers.js.map +1 -0
  71. package/dist/maps/gl/overlays.d.ts +68 -0
  72. package/dist/maps/gl/overlays.d.ts.map +1 -0
  73. package/dist/maps/gl/overlays.js +300 -0
  74. package/dist/maps/gl/overlays.js.map +1 -0
  75. package/dist/maps/gl/pane.d.ts +12 -0
  76. package/dist/maps/gl/pane.d.ts.map +1 -0
  77. package/dist/maps/gl/pane.js +37 -0
  78. package/dist/maps/gl/pane.js.map +1 -0
  79. package/dist/maps/gl/placement.d.ts +111 -0
  80. package/dist/maps/gl/placement.d.ts.map +1 -0
  81. package/dist/maps/gl/placement.js +567 -0
  82. package/dist/maps/gl/placement.js.map +1 -0
  83. package/dist/maps/gl/renderer.d.ts +352 -0
  84. package/dist/maps/gl/renderer.d.ts.map +1 -0
  85. package/dist/maps/gl/renderer.js +1127 -0
  86. package/dist/maps/gl/renderer.js.map +1 -0
  87. package/dist/maps/gl/shaders.d.ts +120 -0
  88. package/dist/maps/gl/shaders.d.ts.map +1 -0
  89. package/dist/maps/gl/shaders.js +451 -0
  90. package/dist/maps/gl/shaders.js.map +1 -0
  91. package/dist/maps/gl/store.d.ts +115 -0
  92. package/dist/maps/gl/store.d.ts.map +1 -0
  93. package/dist/maps/gl/store.js +469 -0
  94. package/dist/maps/gl/store.js.map +1 -0
  95. package/dist/maps/gl/text.d.ts +154 -0
  96. package/dist/maps/gl/text.d.ts.map +1 -0
  97. package/dist/maps/gl/text.js +382 -0
  98. package/dist/maps/gl/text.js.map +1 -0
  99. package/dist/maps/gl/view.d.ts +54 -0
  100. package/dist/maps/gl/view.d.ts.map +1 -0
  101. package/dist/maps/gl/view.js +974 -0
  102. package/dist/maps/gl/view.js.map +1 -0
  103. package/dist/maps/index.d.ts +1 -1
  104. package/dist/maps/index.d.ts.map +1 -1
  105. package/dist/maps/index.js +216 -52
  106. package/dist/maps/index.js.map +1 -1
  107. package/dist/maps/labels.d.ts +37 -16
  108. package/dist/maps/labels.d.ts.map +1 -1
  109. package/dist/maps/labels.js +188 -119
  110. package/dist/maps/labels.js.map +1 -1
  111. package/dist/maps/node.d.ts +162 -56
  112. package/dist/maps/node.d.ts.map +1 -1
  113. package/dist/maps/node.js +607 -515
  114. package/dist/maps/node.js.map +1 -1
  115. package/dist/maps/overlay.d.ts +72 -9
  116. package/dist/maps/overlay.d.ts.map +1 -1
  117. package/dist/maps/overlay.js +108 -28
  118. package/dist/maps/overlay.js.map +1 -1
  119. package/dist/maps/paint.d.ts +3 -0
  120. package/dist/maps/paint.d.ts.map +1 -1
  121. package/dist/maps/paint.js.map +1 -1
  122. package/dist/maps/proj.d.ts +14 -0
  123. package/dist/maps/proj.d.ts.map +1 -1
  124. package/dist/maps/proj.js +28 -0
  125. package/dist/maps/proj.js.map +1 -1
  126. package/dist/maps/renderer.d.ts +69 -0
  127. package/dist/maps/renderer.d.ts.map +1 -0
  128. package/dist/maps/renderer.js +66 -0
  129. package/dist/maps/renderer.js.map +1 -0
  130. package/dist/maps/sources.d.ts +25 -3
  131. package/dist/maps/sources.d.ts.map +1 -1
  132. package/dist/maps/sources.js +17 -0
  133. package/dist/maps/sources.js.map +1 -1
  134. package/dist/maps/theme.d.ts +19 -0
  135. package/dist/maps/theme.d.ts.map +1 -0
  136. package/dist/maps/theme.js +44 -0
  137. package/dist/maps/theme.js.map +1 -0
  138. package/dist/maps/tiles.d.ts +117 -17
  139. package/dist/maps/tiles.d.ts.map +1 -1
  140. package/dist/maps/tiles.js +163 -30
  141. package/dist/maps/tiles.js.map +1 -1
  142. package/dist/maps/types.d.ts +188 -20
  143. package/dist/maps/types.d.ts.map +1 -1
  144. package/dist/markdown/expressions.d.ts +1 -1
  145. package/dist/markdown/expressions.d.ts.map +1 -1
  146. package/dist/markdown/expressions.js.map +1 -1
  147. package/dist/markdown/index.d.ts +7 -6
  148. package/dist/markdown/index.d.ts.map +1 -1
  149. package/dist/markdown/index.js +9 -7
  150. package/dist/markdown/index.js.map +1 -1
  151. package/dist/markdown/spans.d.ts +1 -1
  152. package/dist/markdown/spans.d.ts.map +1 -1
  153. package/dist/media-player/index.d.ts +11 -3
  154. package/dist/media-player/index.d.ts.map +1 -1
  155. package/dist/media-player/index.js +13 -2
  156. package/dist/media-player/index.js.map +1 -1
  157. package/dist/rich-text-editor/clipboard.d.ts +23 -0
  158. package/dist/rich-text-editor/clipboard.d.ts.map +1 -0
  159. package/dist/rich-text-editor/clipboard.js +307 -0
  160. package/dist/rich-text-editor/clipboard.js.map +1 -0
  161. package/dist/rich-text-editor/collab.d.ts +32 -0
  162. package/dist/rich-text-editor/collab.d.ts.map +1 -0
  163. package/dist/rich-text-editor/collab.js +55 -0
  164. package/dist/rich-text-editor/collab.js.map +1 -0
  165. package/dist/rich-text-editor/commands.d.ts +50 -0
  166. package/dist/rich-text-editor/commands.d.ts.map +1 -0
  167. package/dist/rich-text-editor/commands.js +376 -0
  168. package/dist/rich-text-editor/commands.js.map +1 -0
  169. package/dist/rich-text-editor/drag.d.ts +68 -0
  170. package/dist/rich-text-editor/drag.d.ts.map +1 -0
  171. package/dist/rich-text-editor/drag.js +148 -0
  172. package/dist/rich-text-editor/drag.js.map +1 -0
  173. package/dist/rich-text-editor/html.d.ts +145 -0
  174. package/dist/rich-text-editor/html.d.ts.map +1 -0
  175. package/dist/rich-text-editor/html.js +516 -0
  176. package/dist/rich-text-editor/html.js.map +1 -0
  177. package/dist/rich-text-editor/index.d.ts +263 -0
  178. package/dist/rich-text-editor/index.d.ts.map +1 -0
  179. package/dist/rich-text-editor/index.js +822 -0
  180. package/dist/rich-text-editor/index.js.map +1 -0
  181. package/dist/rich-text-editor/inline.d.ts +94 -0
  182. package/dist/rich-text-editor/inline.d.ts.map +1 -0
  183. package/dist/rich-text-editor/inline.js +252 -0
  184. package/dist/rich-text-editor/inline.js.map +1 -0
  185. package/dist/rich-text-editor/keymap.d.ts +71 -0
  186. package/dist/rich-text-editor/keymap.d.ts.map +1 -0
  187. package/dist/rich-text-editor/keymap.js +393 -0
  188. package/dist/rich-text-editor/keymap.js.map +1 -0
  189. package/dist/rich-text-editor/keys.d.ts +29 -0
  190. package/dist/rich-text-editor/keys.d.ts.map +1 -0
  191. package/dist/rich-text-editor/keys.js +93 -0
  192. package/dist/rich-text-editor/keys.js.map +1 -0
  193. package/dist/rich-text-editor/look.d.ts +71 -0
  194. package/dist/rich-text-editor/look.d.ts.map +1 -0
  195. package/dist/rich-text-editor/look.js +342 -0
  196. package/dist/rich-text-editor/look.js.map +1 -0
  197. package/dist/rich-text-editor/markdown.d.ts +18 -0
  198. package/dist/rich-text-editor/markdown.d.ts.map +1 -0
  199. package/dist/rich-text-editor/markdown.js +496 -0
  200. package/dist/rich-text-editor/markdown.js.map +1 -0
  201. package/dist/rich-text-editor/nodes.d.ts +135 -0
  202. package/dist/rich-text-editor/nodes.d.ts.map +1 -0
  203. package/dist/rich-text-editor/nodes.js +397 -0
  204. package/dist/rich-text-editor/nodes.js.map +1 -0
  205. package/dist/rich-text-editor/render.d.ts +68 -0
  206. package/dist/rich-text-editor/render.d.ts.map +1 -0
  207. package/dist/rich-text-editor/render.js +500 -0
  208. package/dist/rich-text-editor/render.js.map +1 -0
  209. package/dist/rich-text-editor/schema.d.ts +16 -0
  210. package/dist/rich-text-editor/schema.d.ts.map +1 -0
  211. package/dist/rich-text-editor/schema.js +386 -0
  212. package/dist/rich-text-editor/schema.js.map +1 -0
  213. package/dist/rich-text-editor/store.d.ts +11 -0
  214. package/dist/rich-text-editor/store.d.ts.map +1 -0
  215. package/dist/rich-text-editor/store.js +43 -0
  216. package/dist/rich-text-editor/store.js.map +1 -0
  217. package/dist/rich-text-editor/suggest.d.ts +127 -0
  218. package/dist/rich-text-editor/suggest.d.ts.map +1 -0
  219. package/dist/rich-text-editor/suggest.js +0 -0
  220. package/dist/rich-text-editor/suggest.js.map +1 -0
  221. package/dist/rich-text-editor/tables.d.ts +41 -0
  222. package/dist/rich-text-editor/tables.d.ts.map +1 -0
  223. package/dist/rich-text-editor/tables.js +204 -0
  224. package/dist/rich-text-editor/tables.js.map +1 -0
  225. package/dist/rich-text-editor/toolbar.d.ts +58 -0
  226. package/dist/rich-text-editor/toolbar.d.ts.map +1 -0
  227. package/dist/rich-text-editor/toolbar.js +548 -0
  228. package/dist/rich-text-editor/toolbar.js.map +1 -0
  229. package/dist/rich-text-editor/view.d.ts +368 -0
  230. package/dist/rich-text-editor/view.d.ts.map +1 -0
  231. package/dist/rich-text-editor/view.js +1968 -0
  232. package/dist/rich-text-editor/view.js.map +1 -0
  233. package/dist/rich-text-editor/virtual.d.ts +54 -0
  234. package/dist/rich-text-editor/virtual.d.ts.map +1 -0
  235. package/dist/rich-text-editor/virtual.js +262 -0
  236. package/dist/rich-text-editor/virtual.js.map +1 -0
  237. package/dist/richtext/node.d.ts +25 -2
  238. package/dist/richtext/node.d.ts.map +1 -1
  239. package/dist/richtext/node.js +46 -24
  240. package/dist/richtext/node.js.map +1 -1
  241. package/dist/terminal/backends.d.ts +4 -1
  242. package/dist/terminal/backends.d.ts.map +1 -1
  243. package/dist/terminal/backends.js.map +1 -1
  244. package/dist/terminal/index.d.ts +18 -7
  245. package/dist/terminal/index.d.ts.map +1 -1
  246. package/dist/terminal/index.js +28 -11
  247. package/dist/terminal/index.js.map +1 -1
  248. package/package.json +23 -4
  249. package/src/charts/node.ts +6 -2
  250. package/src/embed/client.ts +102 -8
  251. package/src/embed/index.ts +2 -0
  252. package/src/html/node.ts +7 -5
  253. package/src/index.ts +2 -0
  254. package/src/{markdown → internal/markdown}/ast.ts +24 -7
  255. package/src/{markdown → internal/markdown}/parse.ts +134 -24
  256. package/src/internal/markdown/stringify.ts +772 -0
  257. package/src/internal/scroll.ts +5 -3
  258. package/src/maps/anchors.ts +607 -0
  259. package/src/maps/controller.ts +999 -0
  260. package/src/maps/gl/buckets.ts +457 -0
  261. package/src/maps/gl/build-worker.ts +55 -0
  262. package/src/maps/gl/color.ts +62 -0
  263. package/src/maps/gl/cover.ts +170 -0
  264. package/src/maps/gl/index.ts +23 -0
  265. package/src/maps/gl/markers.ts +83 -0
  266. package/src/maps/gl/overlays.ts +379 -0
  267. package/src/maps/gl/pane.ts +42 -0
  268. package/src/maps/gl/placement.ts +816 -0
  269. package/src/maps/gl/renderer.ts +1576 -0
  270. package/src/maps/gl/shaders.ts +486 -0
  271. package/src/maps/gl/store.ts +566 -0
  272. package/src/maps/gl/text.ts +495 -0
  273. package/src/maps/gl/view.ts +1224 -0
  274. package/src/maps/index.ts +270 -81
  275. package/src/maps/labels.ts +214 -121
  276. package/src/maps/node.ts +763 -629
  277. package/src/maps/overlay.ts +148 -43
  278. package/src/maps/paint.ts +3 -0
  279. package/src/maps/proj.ts +31 -0
  280. package/src/maps/renderer.ts +155 -0
  281. package/src/maps/sources.ts +38 -3
  282. package/src/maps/theme.ts +51 -0
  283. package/src/maps/tiles.ts +191 -33
  284. package/src/maps/types.ts +188 -20
  285. package/src/markdown/expressions.ts +5 -1
  286. package/src/markdown/index.ts +14 -11
  287. package/src/markdown/spans.ts +1 -1
  288. package/src/media-player/index.ts +18 -4
  289. package/src/rich-text-editor/clipboard.ts +439 -0
  290. package/src/rich-text-editor/collab.ts +91 -0
  291. package/src/rich-text-editor/commands.ts +448 -0
  292. package/src/rich-text-editor/dom-globals.d.ts +23 -0
  293. package/src/rich-text-editor/drag.ts +211 -0
  294. package/src/rich-text-editor/html.ts +619 -0
  295. package/src/rich-text-editor/index.ts +1331 -0
  296. package/src/rich-text-editor/inline.ts +345 -0
  297. package/src/rich-text-editor/keymap.ts +510 -0
  298. package/src/rich-text-editor/keys.ts +119 -0
  299. package/src/rich-text-editor/look.ts +427 -0
  300. package/src/rich-text-editor/markdown.ts +653 -0
  301. package/src/rich-text-editor/nodes.ts +497 -0
  302. package/src/rich-text-editor/render.ts +800 -0
  303. package/src/rich-text-editor/schema.ts +431 -0
  304. package/src/rich-text-editor/store.ts +39 -0
  305. package/src/rich-text-editor/suggest.ts +597 -0
  306. package/src/rich-text-editor/tables.ts +272 -0
  307. package/src/rich-text-editor/toolbar.ts +724 -0
  308. package/src/rich-text-editor/view.ts +2287 -0
  309. package/src/rich-text-editor/virtual.ts +347 -0
  310. package/src/richtext/node.ts +59 -30
  311. package/src/terminal/backends.ts +4 -1
  312. package/src/terminal/index.ts +43 -15
  313. package/dist/markdown/ast.d.ts.map +0 -1
  314. package/dist/markdown/ast.js +0 -17
  315. package/dist/markdown/ast.js.map +0 -1
  316. package/dist/markdown/parse.d.ts.map +0 -1
  317. package/dist/markdown/parse.js.map +0 -1
  318. package/dist/markdown/tags.d.ts.map +0 -1
  319. package/dist/markdown/tags.js.map +0 -1
  320. /package/dist/{markdown → internal/markdown}/parse.d.ts +0 -0
  321. /package/dist/{markdown → internal/markdown}/tags.d.ts +0 -0
  322. /package/dist/{markdown → internal/markdown}/tags.js +0 -0
  323. /package/src/{markdown → internal/markdown}/tags.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/maps/controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import type { VectorTile } from '../mvt.js';
2
+ import type { PreparedStyle } from '../paint.js';
3
+ import type { GlLabelData } from '../anchors.js';
4
+ /** Tile units across a tile, after normalisation. */
5
+ export declare const TILE_EXTENT = 4096;
6
+ /** The int16 that marks the end of a polyline or ring. Real coordinates are
7
+ * clamped to one above it. */
8
+ export declare const BREAK = -32768;
9
+ /** Bytes per record, in either stream. */
10
+ export declare const RECORD_BYTES = 8;
11
+ /** A `circle` layer's points are line-stream records too, one per point —
12
+ * a disc each — with a sentinel after them. */
13
+ export type DrawKind = 'fill' | 'line' | 'circle';
14
+ /** What one style layer draws from one tile. */
15
+ export interface LayerDraw {
16
+ /** Index into {@link PreparedStyle.layers}. */
17
+ layer: number;
18
+ kind: DrawKind;
19
+ /**
20
+ * `[firstRecord, recordCount]` pairs into the kind's stream. A range of
21
+ * `n` records is `n - 1` segment instances; the last record of every
22
+ * range is a {@link BREAK}, so the instance that would join a range to
23
+ * whatever follows it is a degenerate one.
24
+ */
25
+ ranges: number[];
26
+ }
27
+ /** What building a tile's buckets cost and produced. */
28
+ export interface BucketStats {
29
+ features: number;
30
+ /** Records written to the line stream, sentinels included. */
31
+ lineRecords: number;
32
+ /** Records written to the fill stream, closing points and sentinels
33
+ * included. */
34
+ fillRecords: number;
35
+ /** Membership groups — distinct sets of style layers a feature belongs
36
+ * to. What decides how many draw ranges a layer needs. */
37
+ groups: number;
38
+ ms: number;
39
+ }
40
+ /** One tile, ready for upload. Plain typed arrays and a small draw list, so
41
+ * it can be built on a worker and transferred without a copy. */
42
+ export interface GlTileData {
43
+ /** The line stream: `lineRecords` records over one buffer. */
44
+ line: ArrayBuffer;
45
+ lineRecords: number;
46
+ /** The fill stream: `fillRecords` records. */
47
+ fill: ArrayBuffer;
48
+ fillRecords: number;
49
+ /** Indexed by style layer; a hole where this tile has nothing to draw. */
50
+ draws: (LayerDraw | undefined)[];
51
+ /** Where the tile's labels could go — see `../anchors.ts`. */
52
+ labels?: GlLabelData;
53
+ /** A raster tile's image — RGBA, not premultiplied, as a source decodes
54
+ * it — in place of streams: its own texture, and no style. */
55
+ raster?: {
56
+ width: number;
57
+ height: number;
58
+ pixels: Uint8Array;
59
+ };
60
+ stats: BucketStats;
61
+ }
62
+ /** A raster tile as the store keeps it: its image, and nothing to build. */
63
+ export declare function rasterTileData(width: number, height: number, pixels: Uint8Array): GlTileData;
64
+ /** A growable stream of 8-byte records, viewed both ways. */
65
+ export declare class Stream {
66
+ bytes: ArrayBuffer;
67
+ i16: Int16Array;
68
+ f32: Float32Array;
69
+ count: number;
70
+ constructor(records: number);
71
+ reserve(more: number): void;
72
+ /** The records written, trimmed to size — what is kept and uploaded. */
73
+ take(): ArrayBuffer;
74
+ }
75
+ /** A line stream's sentinel. The caller has reserved the record. */
76
+ export declare function pushBreak(line: Stream): void;
77
+ /** A fill stream's sentinel. The caller has reserved the record. */
78
+ export declare function pushFillBreak(fill: Stream): void;
79
+ /**
80
+ * Build a tile's buckets for a style.
81
+ *
82
+ * The style is walked in the same **runs** the retained painter uses —
83
+ * consecutive style layers over one source layer — and each run's features
84
+ * are read once. The new part is what happens to a feature's answer: every
85
+ * feature gets a *membership mask*, the set of the run's layers that select
86
+ * it, and features are written grouped by mask. A road network is fourteen
87
+ * style layers over `streets` whose casing and fill select exactly the same
88
+ * roads, so `motorway-casing` and `motorway` share one group and one copy of
89
+ * the geometry: two draws over the same records, with a different width and
90
+ * colour. Without the grouping every feature would be copied once per layer
91
+ * that draws it — twice for every road — and without it being contiguous
92
+ * a layer would be one draw per feature.
93
+ */
94
+ export declare function buildTileBuckets(tile: VectorTile, prepared: PreparedStyle): GlTileData;
95
+ //# sourceMappingURL=buckets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../../../src/maps/gl/buckets.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,qDAAqD;AACrD,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC;+BAC+B;AAC/B,eAAO,MAAM,KAAK,SAAS,CAAC;AAE5B,0CAA0C;AAC1C,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;gDACgD;AAChD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAElD,gDAAgD;AAChD,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf;;;;;OAKG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB;oBACgB;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB;+DAC2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;kEACkE;AAClE,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,KAAK,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC;IACjC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;mEAC+D;IAC/D,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC;IAC/D,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GACjB,UAAU,CAUZ;AA8CD,6DAA6D;AAC7D,qBAAa,MAAM;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,YAAY,CAAC;IAClB,KAAK,SAAK;IAEV,YAAY,OAAO,EAAE,MAAM,EAI1B;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAY1B;IAED,wEAAwE;IACxE,IAAI,IAAI,WAAW,CAElB;CACF;AAQD,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAM5C;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOhD;AAuFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,aAAa,GACtB,UAAU,CAkIZ"}
@@ -0,0 +1,362 @@
1
+ // A tile's features as GPU-ready streams — the GL renderer's whole CPU side.
2
+ //
3
+ // The retained renderer (`../paint.ts`) turns a tile into *pixels*, once per
4
+ // zoom level and style, and composites the pixels; this turns it into
5
+ // *geometry*, once per tile, and draws the geometry every frame. That is the
6
+ // entire difference, and it is why nothing here knows about a camera, a
7
+ // scale or a style colour: a bucket is valid for every zoom, every pan,
8
+ // every display scale and every palette, so a style change is a uniform
9
+ // write and a fractional zoom is a matrix.
10
+ //
11
+ // Two streams, both made of 8-byte **records**, and one idea behind both:
12
+ // the GPU draws *segment i* from records `i` and `i + 1` of a stream, as one
13
+ // instance — so a polyline of `k` points is `k` consecutive records and
14
+ // costs nothing to "tessellate". There is no extrusion, no join geometry and
15
+ // no triangulation on the CPU at all: the vertex shader widens a segment into
16
+ // a quad and the fragment shader rounds its ends, so joins, caps and
17
+ // antialiasing come out of one distance function (see `./shaders.ts`).
18
+ //
19
+ // - **line** — `x:int16, y:int16, dist:float32`. `dist` is how far along
20
+ // its polyline the point is, in tile units, for dashes.
21
+ // - **fill** — `x:int16, y:int16, ax:int16, ay:int16`. Every ring is closed
22
+ // explicitly and each record carries its ring's first point as `a`, so
23
+ // segment `i` with `a` is a triangle of the ring's fan. Drawn into the
24
+ // stencil buffer, a fan per ring is a polygon with its holes — no
25
+ // triangulator, the same non-zero rule the retained renderer fills with.
26
+ // The same records drawn as segments are the polygon's outline.
27
+ //
28
+ // Between two polylines (or rings) sits one {@link BREAK} record. The two
29
+ // segments that touch it collapse in the vertex shader, which is cheaper
30
+ // than the index buffer that would otherwise say where every part ends.
31
+ //
32
+ // Coordinates are normalised to {@link TILE_EXTENT} because `extent` is a
33
+ // per-*layer* field that real tiles vary (Shortbread cuts `streets`, `land`,
34
+ // `ocean` and `water_polygons` at 2048 and everything else at 4096), and a
35
+ // per-draw extent would be one more uniform on the hottest loop in the
36
+ // renderer for no benefit.
37
+ import { GeomType, GeometryBuffer } from '../mvt.js';
38
+ import { buildTileLabels } from '../anchors.js';
39
+ /** Tile units across a tile, after normalisation. */
40
+ export const TILE_EXTENT = 4096;
41
+ /** The int16 that marks the end of a polyline or ring. Real coordinates are
42
+ * clamped to one above it. */
43
+ export const BREAK = -32768;
44
+ /** Bytes per record, in either stream. */
45
+ export const RECORD_BYTES = 8;
46
+ /** A raster tile as the store keeps it: its image, and nothing to build. */
47
+ export function rasterTileData(width, height, pixels) {
48
+ return {
49
+ line: new ArrayBuffer(0),
50
+ lineRecords: 0,
51
+ fill: new ArrayBuffer(0),
52
+ fillRecords: 0,
53
+ draws: [],
54
+ raster: { width, height, pixels },
55
+ stats: { features: 0, lineRecords: 0, fillRecords: 0, groups: 0, ms: 0 },
56
+ };
57
+ }
58
+ /** Whether a style layer is one this renderer draws from a tile at all. */
59
+ function drawable(layer) {
60
+ // Symbol layers are labels, which are placed per frame and not bucketed.
61
+ return ((layer.type === 'fill' ||
62
+ layer.type === 'line' ||
63
+ layer.type === 'circle') &&
64
+ layer.visible !== false);
65
+ }
66
+ /** `paint.ts`'s rule: a `line` layer takes polygons too — stroking a ring is
67
+ * what a style asking for an outline means — a `fill` only polygons, and a
68
+ * `circle` only points. */
69
+ function takes(type, geometry) {
70
+ if (type === 'circle')
71
+ return geometry === GeomType.Point;
72
+ return type === 'fill'
73
+ ? geometry === GeomType.Polygon
74
+ : geometry === GeomType.LineString || geometry === GeomType.Polygon;
75
+ }
76
+ /** Points, a record each, for a circle layer's discs. */
77
+ function emitPoints(line, coords, from, to, k) {
78
+ line.reserve(to - from);
79
+ for (let i = from; i < to; i++) {
80
+ const at = line.count;
81
+ line.i16[at * 4] = coord(coords[i * 2], k);
82
+ line.i16[at * 4 + 1] = coord(coords[i * 2 + 1], k);
83
+ line.f32[at * 2 + 1] = 0;
84
+ line.count++;
85
+ }
86
+ }
87
+ const globals = globalThis;
88
+ const now = () => globals.performance?.now() ?? Date.now();
89
+ /** A growable stream of 8-byte records, viewed both ways. */
90
+ export class Stream {
91
+ bytes;
92
+ i16;
93
+ f32;
94
+ count = 0;
95
+ constructor(records) {
96
+ this.bytes = new ArrayBuffer(records * RECORD_BYTES);
97
+ this.i16 = new Int16Array(this.bytes);
98
+ this.f32 = new Float32Array(this.bytes);
99
+ }
100
+ reserve(more) {
101
+ const want = (this.count + more) * RECORD_BYTES;
102
+ if (want <= this.bytes.byteLength)
103
+ return;
104
+ let size = this.bytes.byteLength || RECORD_BYTES * 64;
105
+ while (size < want)
106
+ size *= 2;
107
+ const next = new ArrayBuffer(size);
108
+ new Uint8Array(next).set(new Uint8Array(this.bytes, 0, this.count * RECORD_BYTES));
109
+ this.bytes = next;
110
+ this.i16 = new Int16Array(next);
111
+ this.f32 = new Float32Array(next);
112
+ }
113
+ /** The records written, trimmed to size — what is kept and uploaded. */
114
+ take() {
115
+ return this.bytes.slice(0, this.count * RECORD_BYTES);
116
+ }
117
+ }
118
+ /** A tile coordinate, normalised and kept clear of the sentinel. */
119
+ function coord(v, k) {
120
+ const s = Math.round(v * k);
121
+ return s < -32767 ? -32767 : s > 32767 ? 32767 : s;
122
+ }
123
+ /** A line stream's sentinel. The caller has reserved the record. */
124
+ export function pushBreak(line) {
125
+ const at = line.count * 4;
126
+ line.i16[at] = BREAK;
127
+ line.i16[at + 1] = BREAK;
128
+ line.f32[line.count * 2 + 1] = 0;
129
+ line.count++;
130
+ }
131
+ /** A fill stream's sentinel. The caller has reserved the record. */
132
+ export function pushFillBreak(fill) {
133
+ const at = fill.count * 4;
134
+ fill.i16[at] = BREAK;
135
+ fill.i16[at + 1] = BREAK;
136
+ fill.i16[at + 2] = BREAK;
137
+ fill.i16[at + 3] = BREAK;
138
+ fill.count++;
139
+ }
140
+ /** One part as a polyline: its points, then (for a ring) its first point
141
+ * again, then a sentinel. */
142
+ function emitLine(line, coords, from, to, k, closed) {
143
+ const count = to - from;
144
+ if (count < 2)
145
+ return;
146
+ line.reserve(count + 2);
147
+ const i16 = line.i16;
148
+ const f32 = line.f32;
149
+ let dist = 0;
150
+ let px = coord(coords[from * 2], k);
151
+ let py = coord(coords[from * 2 + 1], k);
152
+ const firstX = px;
153
+ const firstY = py;
154
+ let at = line.count;
155
+ i16[at * 4] = px;
156
+ i16[at * 4 + 1] = py;
157
+ f32[at * 2 + 1] = 0;
158
+ at++;
159
+ for (let i = from + 1; i < to; i++) {
160
+ const x = coord(coords[i * 2], k);
161
+ const y = coord(coords[i * 2 + 1], k);
162
+ dist += Math.hypot(x - px, y - py);
163
+ i16[at * 4] = x;
164
+ i16[at * 4 + 1] = y;
165
+ f32[at * 2 + 1] = dist;
166
+ at++;
167
+ px = x;
168
+ py = y;
169
+ }
170
+ if (closed && (px !== firstX || py !== firstY)) {
171
+ dist += Math.hypot(firstX - px, firstY - py);
172
+ i16[at * 4] = firstX;
173
+ i16[at * 4 + 1] = firstY;
174
+ f32[at * 2 + 1] = dist;
175
+ at++;
176
+ }
177
+ line.count = at;
178
+ pushBreak(line);
179
+ }
180
+ /** One ring as a fan: its points, closed, each carrying the ring's first
181
+ * point as the fan's apex, then a sentinel. */
182
+ function emitRing(fill, coords, from, to, k) {
183
+ const count = to - from;
184
+ if (count < 3)
185
+ return;
186
+ fill.reserve(count + 2);
187
+ const i16 = fill.i16;
188
+ const ax = coord(coords[from * 2], k);
189
+ const ay = coord(coords[from * 2 + 1], k);
190
+ let at = fill.count * 4;
191
+ for (let i = from; i < to; i++) {
192
+ i16[at] = coord(coords[i * 2], k);
193
+ i16[at + 1] = coord(coords[i * 2 + 1], k);
194
+ i16[at + 2] = ax;
195
+ i16[at + 3] = ay;
196
+ at += 4;
197
+ }
198
+ i16[at] = ax;
199
+ i16[at + 1] = ay;
200
+ i16[at + 2] = ax;
201
+ i16[at + 3] = ay;
202
+ fill.count += count + 1;
203
+ pushFillBreak(fill);
204
+ }
205
+ /**
206
+ * Build a tile's buckets for a style.
207
+ *
208
+ * The style is walked in the same **runs** the retained painter uses —
209
+ * consecutive style layers over one source layer — and each run's features
210
+ * are read once. The new part is what happens to a feature's answer: every
211
+ * feature gets a *membership mask*, the set of the run's layers that select
212
+ * it, and features are written grouped by mask. A road network is fourteen
213
+ * style layers over `streets` whose casing and fill select exactly the same
214
+ * roads, so `motorway-casing` and `motorway` share one group and one copy of
215
+ * the geometry: two draws over the same records, with a different width and
216
+ * colour. Without the grouping every feature would be copied once per layer
217
+ * that draws it — twice for every road — and without it being contiguous
218
+ * a layer would be one draw per feature.
219
+ */
220
+ export function buildTileBuckets(tile, prepared) {
221
+ const started = now();
222
+ const line = new Stream(1024);
223
+ const fill = new Stream(1024);
224
+ const buffer = new GeometryBuffer();
225
+ const draws = new Array(prepared.layers.length);
226
+ let features = 0;
227
+ let groupCount = 0;
228
+ let cursor = null;
229
+ for (const run of prepared.runs) {
230
+ const source = tile.layers.get(run.sourceLayer);
231
+ if (!source || source.length === 0)
232
+ continue;
233
+ const active = [];
234
+ for (let i = run.from; i < run.to; i++) {
235
+ const layer = prepared.layers[i].layer;
236
+ if (drawable(layer)) {
237
+ active.push({
238
+ index: i,
239
+ prepared: prepared.layers[i],
240
+ type: layer.type,
241
+ });
242
+ }
243
+ }
244
+ // A mask is a 32-bit integer. A run longer than that is not one any
245
+ // style has been written with; its tail draws nothing rather than
246
+ // aliasing onto the head.
247
+ if (active.length > 31)
248
+ active.length = 31;
249
+ if (active.length === 0)
250
+ continue;
251
+ const k = TILE_EXTENT / source.extent;
252
+ cursor = source.feature(0);
253
+ const byMask = new Map();
254
+ const order = [];
255
+ for (let f = 0; f < source.length; f++) {
256
+ source.seek(f, cursor);
257
+ let mask = 0;
258
+ for (let j = 0; j < active.length; j++) {
259
+ if (!takes(active[j].type, cursor.type))
260
+ continue;
261
+ if (!active[j].prepared.filter(cursor))
262
+ continue;
263
+ mask |= 1 << j;
264
+ }
265
+ if (mask === 0)
266
+ continue;
267
+ let group = byMask.get(mask);
268
+ if (!group) {
269
+ group = { mask, features: [], fill: [0, 0], line: [0, 0] };
270
+ byMask.set(mask, group);
271
+ order.push(group);
272
+ }
273
+ group.features.push(f);
274
+ }
275
+ for (const group of order) {
276
+ let needFill = false;
277
+ let needLine = false;
278
+ let needPoints = false;
279
+ for (let j = 0; j < active.length; j++) {
280
+ if (!(group.mask & (1 << j)))
281
+ continue;
282
+ if (active[j].type === 'fill')
283
+ needFill = true;
284
+ else if (active[j].type === 'circle')
285
+ needPoints = true;
286
+ else
287
+ needLine = true;
288
+ }
289
+ const fillFrom = fill.count;
290
+ const lineFrom = line.count;
291
+ for (const f of group.features) {
292
+ source.seek(f, cursor);
293
+ cursor.readGeometry(buffer);
294
+ if (buffer.parts === 0)
295
+ continue;
296
+ features++;
297
+ const polygon = cursor.type === GeomType.Polygon;
298
+ const points = cursor.type === GeomType.Point;
299
+ for (let part = 0; part < buffer.parts; part++) {
300
+ const from = buffer.starts[part];
301
+ const to = buffer.starts[part + 1];
302
+ if (points) {
303
+ if (needPoints)
304
+ emitPoints(line, buffer.coords, from, to, k);
305
+ continue;
306
+ }
307
+ if (needFill && polygon)
308
+ emitRing(fill, buffer.coords, from, to, k);
309
+ if (needLine)
310
+ emitLine(line, buffer.coords, from, to, k, polygon);
311
+ }
312
+ }
313
+ // A group's points end in a sentinel like a polyline does, so the
314
+ // instance count of their range is the number of points.
315
+ if (needPoints && line.count > lineFrom) {
316
+ line.reserve(1);
317
+ pushBreak(line);
318
+ }
319
+ group.fill = [fillFrom, fill.count - fillFrom];
320
+ group.line = [lineFrom, line.count - lineFrom];
321
+ }
322
+ groupCount += order.length;
323
+ for (let j = 0; j < active.length; j++) {
324
+ const { index, type } = active[j];
325
+ const ranges = [];
326
+ for (const group of order) {
327
+ if (!(group.mask & (1 << j)))
328
+ continue;
329
+ const [first, count] = type === 'fill' ? group.fill : group.line;
330
+ if (count < 2)
331
+ continue;
332
+ const last = ranges.length - 2;
333
+ // Adjacent groups coalesce into one range, so a layer is one draw
334
+ // whenever the groups it spans were written next to each other.
335
+ if (last >= 0 && ranges[last] + ranges[last + 1] === first) {
336
+ ranges[last + 1] += count;
337
+ }
338
+ else {
339
+ ranges.push(first, count);
340
+ }
341
+ }
342
+ if (ranges.length > 0)
343
+ draws[index] = { layer: index, kind: type, ranges };
344
+ }
345
+ }
346
+ return {
347
+ line: line.take(),
348
+ lineRecords: line.count,
349
+ fill: fill.take(),
350
+ fillRecords: fill.count,
351
+ draws,
352
+ labels: buildTileLabels(tile, prepared, TILE_EXTENT),
353
+ stats: {
354
+ features,
355
+ lineRecords: line.count,
356
+ fillRecords: fill.count,
357
+ groups: groupCount,
358
+ ms: now() - started,
359
+ },
360
+ };
361
+ }
362
+ //# sourceMappingURL=buckets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../../src/maps/gl/buckets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { MapStyleLayer } from '../style.js';
2
+ /** What the store sends. */
3
+ export type BuildRequest = {
4
+ type: 'style';
5
+ id: number;
6
+ layers: MapStyleLayer[];
7
+ } | {
8
+ type: 'build';
9
+ job: number;
10
+ style: number;
11
+ bytes: Uint8Array;
12
+ };
13
+ //# sourceMappingURL=build-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-worker.d.ts","sourceRoot":"","sources":["../../../src/maps/gl/build-worker.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,4BAA4B;AAC5B,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC"}
@@ -0,0 +1,44 @@
1
+ // A worker thread's half of `GlTileStore`: tile bytes in, buckets out.
2
+ //
3
+ // Loaded only as a `Worker` entry and never imported, so the listener below
4
+ // is not an import-time side effect of the package — no bundle that follows
5
+ // imports can reach this file. What crosses the thread boundary is the point
6
+ // of the bucket format: a tile arrives as its own bytes (copied, a few
7
+ // hundred kilobytes) and leaves as two ArrayBuffers that are *transferred*,
8
+ // so the main thread's whole cost for a tile is the upload.
9
+ //
10
+ // `node:worker_threads` through a variable specifier, as `src/embed/host.ts`
11
+ // reaches `node:net`: `src/` compiles with `types: []`, and a literal
12
+ // specifier would make every build depend on Node's type declarations.
13
+ import { prepareStyle } from '../paint.js';
14
+ import { parseVectorTile } from '../sources.js';
15
+ import { buildTileBuckets } from './buckets.js';
16
+ const WORKER_THREADS = 'node:worker_threads';
17
+ const { parentPort } = (await import(WORKER_THREADS));
18
+ /** Compiled filters per style id. Two are kept: the store may still have a
19
+ * build in flight for the style it is leaving. */
20
+ const styles = new Map();
21
+ parentPort?.on('message', (message) => {
22
+ const request = message;
23
+ if (request.type === 'style') {
24
+ styles.set(request.id, prepareStyle({ layers: request.layers }));
25
+ for (const id of styles.keys())
26
+ if (id < request.id - 1)
27
+ styles.delete(id);
28
+ return;
29
+ }
30
+ try {
31
+ const prepared = styles.get(request.style);
32
+ if (!prepared)
33
+ throw new Error(`style ${request.style} was never sent`);
34
+ const data = buildTileBuckets(parseVectorTile(request.bytes), prepared);
35
+ const transfer = [data.line, data.fill];
36
+ if (data.labels)
37
+ transfer.push(data.labels.anchors.buffer);
38
+ parentPort.postMessage({ job: request.job, data }, transfer);
39
+ }
40
+ catch (error) {
41
+ parentPort.postMessage({ job: request.job, error: String(error) });
42
+ }
43
+ });
44
+ //# sourceMappingURL=build-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-worker.js","sourceRoot":"","sources":["../../../src/maps/gl/build-worker.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,uEAAuE;AACvE,4EAA4E;AAC5E,4DAA4D;AAC5D,EAAE;AACF,6EAA6E;AAC7E,sEAAsE;AACtE,uEAAuE;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYhD,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAEnD,CAAC;AAEF;mDACmD;AACnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEhD,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;IACpC,MAAM,OAAO,GAAG,OAAuB,CAAC;IACxC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjE,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE;YAAE,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,CAAC,KAAK,iBAAiB,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAqB,CAAC,CAAC;QAC1E,UAAU,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** Straight (unassociated) `[r, g, b, a]`, each in `0..1`. */
2
+ export type Rgba = readonly [number, number, number, number];
3
+ /** Parse `#rgb`, `#rgba`, `#rrggbb`, `#rrggbbaa`, `rgb()` and `rgba()`. */
4
+ export declare function parseColor(value: string): Rgba | null;
5
+ /** Premultiplied, with an extra opacity folded in — what the renderer's
6
+ * `ONE, ONE_MINUS_SRC_ALPHA` blend wants. */
7
+ export declare function premultiplied(color: Rgba, opacity?: number): Rgba;
8
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/maps/gl/color.ts"],"names":[],"mappings":"AAQA,8DAA8D;AAC9D,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAwC7D,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAIrD;AAED;8CAC8C;AAC9C,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,SAAI,GAAG,IAAI,CAG5D"}