@jbrowse/svgcanvas 7.0.0 → 8.0.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.
package/dist/index.d.ts CHANGED
@@ -9,11 +9,8 @@
9
9
  * Copyright (c) 2014 Gliffy Inc.
10
10
  * Copyright (c) 2021 Zeno Zeng
11
11
  *
12
- * Vendored and converted to ESM/TypeScript for pure ESM compatibility, and cut
13
- * down to the drawing calls the renderers make: what a multiple sequence
14
- * alignment needs is rectangles, paths, arcs and a great many glyphs. Gradients,
15
- * patterns, clipping, rotation, bezier curves, stroked text, shadows and image
16
- * drawing are gone with the state they carried.
12
+ * Vendored, converted to ESM/TypeScript, and cut down to the calls the
13
+ * renderers make: rectangles, paths, arcs and glyphs.
17
14
  */
18
15
  interface ContextOptions {
19
16
  document?: Document;
@@ -51,9 +48,9 @@ export declare class Context {
51
48
  __applyStyleState(styleState: Record<string, any>): void;
52
49
  __getStyleState(): Record<string, any>;
53
50
  /**
54
- * A translation is what an element's own x/y already say, and repeating it as
55
- * a matrix costs ~35 bytes on every glyph of an alignment. Anything else --
56
- * the scale a sequence-logo letter is stretched by -- still needs the matrix.
51
+ * A pure translation folds into the element's x/y, saving ~35 bytes per
52
+ * glyph. Any other transform, such as a sequence-logo letter's scale, is
53
+ * written as a matrix.
57
54
  */
58
55
  __applyTransformation(element: SVGElement, matrix?: DOMMatrix): void;
59
56
  __applyStyleToCurrentElement(type: string): void;
package/dist/index.js CHANGED
@@ -9,11 +9,8 @@
9
9
  * Copyright (c) 2014 Gliffy Inc.
10
10
  * Copyright (c) 2021 Zeno Zeng
11
11
  *
12
- * Vendored and converted to ESM/TypeScript for pure ESM compatibility, and cut
13
- * down to the drawing calls the renderers make: what a multiple sequence
14
- * alignment needs is rectangles, paths, arcs and a great many glyphs. Gradients,
15
- * patterns, clipping, rotation, bezier curves, stroked text, shadows and image
16
- * drawing are gone with the state they carried.
12
+ * Vendored, converted to ESM/TypeScript, and cut down to the calls the
13
+ * renderers make: rectangles, paths, arcs and glyphs.
17
14
  */
18
15
  /* eslint-disable @typescript-eslint/no-explicit-any */
19
16
  function getTextAnchor(textAlign) {
@@ -37,9 +34,8 @@ function getDominantBaseline(textBaseline) {
37
34
  return mapping[textBaseline] || mapping.alphabetic;
38
35
  }
39
36
  /**
40
- * The value SVG already assumes for a text presentation attribute, so writing it
41
- * out says nothing. A text-heavy export repeats each of these on every glyph:
42
- * dropping the four below takes ~22% off a sequence-logo figure.
37
+ * SVG's initial values for text presentation attributes. Omitting them from
38
+ * every glyph takes ~22% off a sequence-logo figure.
43
39
  */
44
40
  const TEXT_ATTR_DEFAULTS = {
45
41
  'font-style': 'normal',
@@ -78,9 +74,8 @@ const STYLES = {
78
74
  textBaseline: {
79
75
  canvas: 'alphabetic',
80
76
  },
81
- // null rather than an empty array: the canvas default is "no dashes", which is
82
- // also the svg default, and the two have to compare equal or every stroke
83
- // carries an empty stroke-dasharray
77
+ // null on both sides so the canvas and svg defaults compare equal and strokes
78
+ // carry no empty stroke-dasharray
84
79
  lineDash: {
85
80
  svgAttr: 'stroke-dasharray',
86
81
  canvas: null,
@@ -104,10 +99,9 @@ export class Context {
104
99
  __currentPosition;
105
100
  __transformMatrix;
106
101
  __transformMatrixStack;
107
- // the parsed font, keyed by the `font` string that produced it: parsing costs
108
- // a DOM element and a CSS parse, and a text-heavy export asks per glyph
102
+ // parsed fonts keyed by `font` string; each parse costs a DOM element and a
103
+ // CSS parse, and exports ask per glyph
109
104
  __fontCache = new Map();
110
- // Style properties
111
105
  strokeStyle;
112
106
  fillStyle;
113
107
  lineWidth;
@@ -145,17 +139,15 @@ export class Context {
145
139
  __createElement(elementName, properties = {}, resetFill) {
146
140
  const element = this.__document.createElementNS('http://www.w3.org/2000/svg', elementName);
147
141
  if (resetFill) {
148
- // a placeholder: whichever of fill()/stroke() paints this element
149
- // overwrites its own, and __applyStyleToCurrentElement drops the other
150
- // when it is the svg default anyway
142
+ // placeholders: fill()/stroke() overwrite their own attribute, and
143
+ // __applyStyleToCurrentElement drops the other when it is the svg default
151
144
  element.setAttribute('fill', 'none');
152
145
  element.setAttribute('stroke', 'none');
153
146
  }
154
147
  for (const key of Object.keys(properties)) {
155
- // an unset property means "no such attribute", not the string
156
- // "undefined". __applyText passes optional attributes through
157
- // unconditionally, so without this every glyph in an export carries
158
- // text-decoration="undefined" -- invalid, and ~28 wasted bytes per letter
148
+ // __applyText passes optional attributes through unconditionally; skipping
149
+ // unset ones keeps an invalid text-decoration="undefined" (~28 bytes) off
150
+ // every glyph
159
151
  const value = properties[key];
160
152
  if (value !== undefined && value !== null) {
161
153
  element.setAttribute(key, value);
@@ -183,9 +175,9 @@ export class Context {
183
175
  return styleState;
184
176
  }
185
177
  /**
186
- * A translation is what an element's own x/y already say, and repeating it as
187
- * a matrix costs ~35 bytes on every glyph of an alignment. Anything else --
188
- * the scale a sequence-logo letter is stretched by -- still needs the matrix.
178
+ * A pure translation folds into the element's x/y, saving ~35 bytes per
179
+ * glyph. Any other transform, such as a sequence-logo letter's scale, is
180
+ * written as a matrix.
189
181
  */
190
182
  __applyTransformation(element, matrix) {
191
183
  const { a, b, c, d, e, f } = matrix || this.getTransform();
@@ -219,7 +211,7 @@ export class Context {
219
211
  ? rgbaRegex.exec(value)
220
212
  : null;
221
213
  if (matches) {
222
- // SVG has no rgba(): the alpha belongs in its own -opacity attribute
214
+ // SVG has no rgba(); the alpha goes in the -opacity attribute
223
215
  currentElement.setAttribute(style.svgAttr, `rgb(${matches[1]},${matches[2]},${matches[3]})`);
224
216
  currentElement.setAttribute(`${style.svgAttr}-opacity`, matches[4]);
225
217
  }
@@ -231,9 +223,8 @@ export class Context {
231
223
  currentElement.setAttribute(style.svgAttr, value);
232
224
  }
233
225
  }
234
- // a filled element with no stroke does not have to say so: `none` is what
235
- // svg assumes. The reverse is not true -- an unstroked fill defaults to
236
- // black -- so a stroked element keeps its fill="none"
226
+ // svg defaults stroke to none, so a fill drops stroke="none". Fill defaults
227
+ // to black, so a stroked element keeps fill="none".
237
228
  if (type === 'fill' && currentElement.getAttribute('stroke') === 'none') {
238
229
  currentElement.removeAttribute('stroke');
239
230
  }
@@ -312,8 +303,8 @@ export class Context {
312
303
  const p = this.__matrixTransform(x, y);
313
304
  this.__addPathCommand(`Q ${cp.x} ${cp.y} ${p.x} ${p.y}`);
314
305
  }
315
- // paint-order only says something when the element carries both a fill and a
316
- // stroke, which is the collapsed-clade triangle and nothing else
306
+ // paint-order matters only on an element with both fill and stroke: the
307
+ // collapsed-clade triangle
317
308
  __applyPaintOrder(order, other) {
318
309
  const current = this.__currentElement;
319
310
  if (current.nodeName === 'path' &&
@@ -332,10 +323,8 @@ export class Context {
332
323
  this.__applyCurrentDefaultPath();
333
324
  this.__applyStyleToCurrentElement('fill');
334
325
  }
335
- // A fill that happens to cover the context is still a fill: it paints over
336
- // what is under it, exactly as the canvas would. Treating it as a clear threw
337
- // the drawing away instead -- a full-width highlight band over an alignment
338
- // took the export from 124 letters to 4.
326
+ // A fill covering the whole context paints over what is under it, as on a
327
+ // canvas; it does not clear the drawing.
339
328
  fillRect(x, y, width, height) {
340
329
  const rect = this.__createElement('rect', { x, y, width, height }, true);
341
330
  this.__closestGroupOrSvg().appendChild(rect);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/svgcanvas",
3
- "version": "7.0.0",
3
+ "version": "8.0.0",
4
4
  "description": "Draw on SVG using Canvas's 2D Context API - ESM fork of svgcanvas",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -9,11 +9,8 @@
9
9
  * Copyright (c) 2014 Gliffy Inc.
10
10
  * Copyright (c) 2021 Zeno Zeng
11
11
  *
12
- * Vendored and converted to ESM/TypeScript for pure ESM compatibility, and cut
13
- * down to the drawing calls the renderers make: what a multiple sequence
14
- * alignment needs is rectangles, paths, arcs and a great many glyphs. Gradients,
15
- * patterns, clipping, rotation, bezier curves, stroked text, shadows and image
16
- * drawing are gone with the state they carried.
12
+ * Vendored, converted to ESM/TypeScript, and cut down to the calls the
13
+ * renderers make: rectangles, paths, arcs and glyphs.
17
14
  */
18
15
 
19
16
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -41,9 +38,8 @@ function getDominantBaseline(textBaseline: string): string {
41
38
  }
42
39
 
43
40
  /**
44
- * The value SVG already assumes for a text presentation attribute, so writing it
45
- * out says nothing. A text-heavy export repeats each of these on every glyph:
46
- * dropping the four below takes ~22% off a sequence-logo figure.
41
+ * SVG's initial values for text presentation attributes. Omitting them from
42
+ * every glyph takes ~22% off a sequence-logo figure.
47
43
  */
48
44
  const TEXT_ATTR_DEFAULTS: Record<string, string> = {
49
45
  'font-style': 'normal',
@@ -84,9 +80,8 @@ const STYLES: Record<string, any> = {
84
80
  textBaseline: {
85
81
  canvas: 'alphabetic',
86
82
  },
87
- // null rather than an empty array: the canvas default is "no dashes", which is
88
- // also the svg default, and the two have to compare equal or every stroke
89
- // carries an empty stroke-dasharray
83
+ // null on both sides so the canvas and svg defaults compare equal and strokes
84
+ // carry no empty stroke-dasharray
90
85
  lineDash: {
91
86
  svgAttr: 'stroke-dasharray',
92
87
  canvas: null,
@@ -119,11 +114,10 @@ export class Context {
119
114
  __currentPosition: { x?: number; y?: number }
120
115
  __transformMatrix: DOMMatrix
121
116
  __transformMatrixStack?: DOMMatrix[]
122
- // the parsed font, keyed by the `font` string that produced it: parsing costs
123
- // a DOM element and a CSS parse, and a text-heavy export asks per glyph
117
+ // parsed fonts keyed by `font` string; each parse costs a DOM element and a
118
+ // CSS parse, and exports ask per glyph
124
119
  __fontCache = new Map<string, CSSStyleDeclaration>()
125
120
 
126
- // Style properties
127
121
  strokeStyle: any
128
122
  fillStyle: any
129
123
  lineWidth: any
@@ -181,17 +175,15 @@ export class Context {
181
175
  elementName,
182
176
  )
183
177
  if (resetFill) {
184
- // a placeholder: whichever of fill()/stroke() paints this element
185
- // overwrites its own, and __applyStyleToCurrentElement drops the other
186
- // when it is the svg default anyway
178
+ // placeholders: fill()/stroke() overwrite their own attribute, and
179
+ // __applyStyleToCurrentElement drops the other when it is the svg default
187
180
  element.setAttribute('fill', 'none')
188
181
  element.setAttribute('stroke', 'none')
189
182
  }
190
183
  for (const key of Object.keys(properties)) {
191
- // an unset property means "no such attribute", not the string
192
- // "undefined". __applyText passes optional attributes through
193
- // unconditionally, so without this every glyph in an export carries
194
- // text-decoration="undefined" -- invalid, and ~28 wasted bytes per letter
184
+ // __applyText passes optional attributes through unconditionally; skipping
185
+ // unset ones keeps an invalid text-decoration="undefined" (~28 bytes) off
186
+ // every glyph
195
187
  const value = properties[key]
196
188
  if (value !== undefined && value !== null) {
197
189
  element.setAttribute(key, value)
@@ -221,9 +213,9 @@ export class Context {
221
213
  }
222
214
 
223
215
  /**
224
- * A translation is what an element's own x/y already say, and repeating it as
225
- * a matrix costs ~35 bytes on every glyph of an alignment. Anything else --
226
- * the scale a sequence-logo letter is stretched by -- still needs the matrix.
216
+ * A pure translation folds into the element's x/y, saving ~35 bytes per
217
+ * glyph. Any other transform, such as a sequence-logo letter's scale, is
218
+ * written as a matrix.
227
219
  */
228
220
  __applyTransformation(element: SVGElement, matrix?: DOMMatrix) {
229
221
  const { a, b, c, d, e, f } = matrix || this.getTransform()
@@ -262,7 +254,7 @@ export class Context {
262
254
  ? rgbaRegex.exec(value)
263
255
  : null
264
256
  if (matches) {
265
- // SVG has no rgba(): the alpha belongs in its own -opacity attribute
257
+ // SVG has no rgba(); the alpha goes in the -opacity attribute
266
258
  currentElement.setAttribute(
267
259
  style.svgAttr,
268
260
  `rgb(${matches[1]},${matches[2]},${matches[3]})`,
@@ -279,9 +271,8 @@ export class Context {
279
271
  }
280
272
  }
281
273
 
282
- // a filled element with no stroke does not have to say so: `none` is what
283
- // svg assumes. The reverse is not true -- an unstroked fill defaults to
284
- // black -- so a stroked element keeps its fill="none"
274
+ // svg defaults stroke to none, so a fill drops stroke="none". Fill defaults
275
+ // to black, so a stroked element keeps fill="none".
285
276
  if (type === 'fill' && currentElement.getAttribute('stroke') === 'none') {
286
277
  currentElement.removeAttribute('stroke')
287
278
  }
@@ -374,8 +365,8 @@ export class Context {
374
365
  this.__addPathCommand(`Q ${cp.x} ${cp.y} ${p.x} ${p.y}`)
375
366
  }
376
367
 
377
- // paint-order only says something when the element carries both a fill and a
378
- // stroke, which is the collapsed-clade triangle and nothing else
368
+ // paint-order matters only on an element with both fill and stroke: the
369
+ // collapsed-clade triangle
379
370
  __applyPaintOrder(order: string, other: string) {
380
371
  const current = this.__currentElement
381
372
  if (
@@ -399,10 +390,8 @@ export class Context {
399
390
  this.__applyStyleToCurrentElement('fill')
400
391
  }
401
392
 
402
- // A fill that happens to cover the context is still a fill: it paints over
403
- // what is under it, exactly as the canvas would. Treating it as a clear threw
404
- // the drawing away instead -- a full-width highlight band over an alignment
405
- // took the export from 124 letters to 4.
393
+ // A fill covering the whole context paints over what is under it, as on a
394
+ // canvas; it does not clear the drawing.
406
395
  fillRect(x: number, y: number, width: number, height: number) {
407
396
  const rect = this.__createElement('rect', { x, y, width, height }, true)
408
397
  this.__closestGroupOrSvg().appendChild(rect)