js.documents 14.4.46 → 14.4.48

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 (67) hide show
  1. package/dist/convert/composition.cjs +9 -4
  2. package/dist/convert/composition.js +9 -4
  3. package/dist/convert/variant-bridges.cjs +2 -1
  4. package/dist/convert/variant-bridges.js +2 -1
  5. package/dist/csv/records.cjs +2 -1
  6. package/dist/csv/records.js +2 -1
  7. package/dist/edit/geometry.cjs +2 -1
  8. package/dist/edit/geometry.js +2 -1
  9. package/dist/edit/odg/svg-path.cjs +2 -1
  10. package/dist/edit/odg/svg-path.js +2 -1
  11. package/dist/edit/ods/cell.cjs +2 -1
  12. package/dist/edit/ods/cell.js +2 -1
  13. package/dist/edit/pdf/util.cjs +2 -1
  14. package/dist/edit/pdf/util.js +2 -1
  15. package/dist/firebird/data.cjs +2 -1
  16. package/dist/firebird/data.js +2 -1
  17. package/dist/firebird/date.cjs +40 -21
  18. package/dist/firebird/date.js +40 -21
  19. package/dist/firebird/reader.cjs +30 -19
  20. package/dist/firebird/reader.js +30 -19
  21. package/dist/hsqldb/binary-script.cjs +5 -4
  22. package/dist/hsqldb/binary-script.js +5 -4
  23. package/dist/hsqldb/cache.cjs +4 -2
  24. package/dist/hsqldb/cache.js +4 -2
  25. package/dist/hsqldb/rowformat.cjs +93 -57
  26. package/dist/hsqldb/rowformat.js +93 -57
  27. package/dist/hsqldb/script.cjs +2 -1
  28. package/dist/hsqldb/script.js +2 -1
  29. package/dist/latex/lower.cjs +2 -1
  30. package/dist/latex/lower.js +2 -1
  31. package/dist/latex/rational.cjs +6 -3
  32. package/dist/latex/rational.js +6 -3
  33. package/dist/layout/cell-typing.cjs +7 -3
  34. package/dist/layout/cell-typing.js +7 -3
  35. package/dist/layout/reconstruct.cjs +17 -15
  36. package/dist/layout/reconstruct.js +17 -15
  37. package/dist/layout/shared.cjs +2 -1
  38. package/dist/layout/shared.js +2 -1
  39. package/dist/layout/sheets.cjs +2 -1
  40. package/dist/layout/sheets.js +2 -1
  41. package/dist/mathml/layout.cjs +11 -5
  42. package/dist/mathml/layout.js +11 -5
  43. package/dist/mathml/length.cjs +12 -10
  44. package/dist/mathml/length.js +12 -10
  45. package/dist/mathml/operators.cjs +7 -3
  46. package/dist/mathml/operators.js +7 -3
  47. package/dist/mathml/variant.cjs +116 -1142
  48. package/dist/mathml/variant.js +116 -1142
  49. package/dist/model/bytes.cjs +9 -16
  50. package/dist/model/bytes.js +9 -16
  51. package/dist/model/geometry.cjs +2 -1
  52. package/dist/model/geometry.js +2 -1
  53. package/dist/odb/read.cjs +10 -2
  54. package/dist/odb/read.js +10 -2
  55. package/dist/svg/paint.cjs +177 -749
  56. package/dist/svg/paint.js +177 -749
  57. package/dist/svg/path.cjs +11 -6
  58. package/dist/svg/path.js +11 -6
  59. package/dist/svg/read.cjs +7 -3
  60. package/dist/svg/read.js +8 -4
  61. package/dist/svg/transform.cjs +11 -7
  62. package/dist/svg/transform.js +11 -7
  63. package/dist/svg/units.cjs +9 -5
  64. package/dist/svg/units.d.cts +2 -1
  65. package/dist/svg/units.d.ts +2 -1
  66. package/dist/svg/units.js +9 -6
  67. package/package.json +12 -12
@@ -5,6 +5,7 @@ import { alignmentOffsetPt, formulaSizePtForFrame, justifyLineGapsPt, layoutDocu
5
5
  import { throwIfAborted } from "../ports/abort.js";
6
6
  import { COLOR_BLACK, DEFAULT_LAYOUT_FONT, columnIndexToLetters, resolveCellFillColor, rgbHexToColor } from "document-schema.js";
7
7
  //#region src/layout/sheets.ts
8
+ const PERCENT_SCALE = 100;
8
9
  function anchoredFormulas(sheet) {
9
10
  const resolved = [];
10
11
  for (const object of sheet.embeddedObjects ?? []) {
@@ -101,7 +102,7 @@ function computeHeaderGutter(printSettings, range, measurer) {
101
102
  };
102
103
  }
103
104
  function resolveScale(printSettings, availableWidthPt, availableHeightPt, totalContentWidthPt, totalContentHeightPt) {
104
- if (printSettings.scalePercent !== void 0) return Math.max(printSettings.scalePercent / 100, MINIMUM_SCALE);
105
+ if (printSettings.scalePercent !== void 0) return Math.max(printSettings.scalePercent / PERCENT_SCALE, MINIMUM_SCALE);
105
106
  if (printSettings.fitToPages !== void 0) {
106
107
  const budgetWidthPt = availableWidthPt * printSettings.fitToPages.width;
107
108
  const budgetHeightPt = availableHeightPt * printSettings.fitToPages.height;
@@ -6,6 +6,12 @@ const require_mathml_variant = require("./variant.cjs");
6
6
  const require_mathml_compose = require("./compose.cjs");
7
7
  const require_mathml_radical = require("./radical.cjs");
8
8
  //#region src/mathml/layout.ts
9
+ const HEX_RADIX = 16;
10
+ const UNICODE_HEX_DIGITS = 4;
11
+ const PERCENT_SCALE = 100;
12
+ const RADICAL_SIGN = 8730;
13
+ const TABLE_COLUMN_GAP_EM = .8;
14
+ const TABLE_ROW_GAP_EM = .5;
9
15
  function rootContext(options, diagnostics) {
10
16
  return {
11
17
  metrics: options.metrics,
@@ -50,7 +56,7 @@ function layoutToken(rawText, variant, ctx) {
50
56
  if (glyph === void 0) {
51
57
  ctx.diagnostics.push({
52
58
  kind: "missing-glyph",
53
- detail: `U+${codePoint.toString(16).toUpperCase().padStart(4, "0")}`
59
+ detail: `U+${codePoint.toString(HEX_RADIX).toUpperCase().padStart(UNICODE_HEX_DIGITS, "0")}`
54
60
  });
55
61
  continue;
56
62
  }
@@ -372,7 +378,7 @@ function wrapRadical(radicand, index, ctx) {
372
378
  const ascentPt = metrics.radicalExtraAscenderPt + ruleThicknessPt + gapPt + radicand.ascentPt;
373
379
  const descentPt = radicand.descentPt;
374
380
  const items = [];
375
- const stretched = ctx.metrics.stretch(8730, "vertical", signHeightPt - metrics.radicalExtraAscenderPt, ctx.sizePt);
381
+ const stretched = ctx.metrics.stretch(RADICAL_SIGN, "vertical", signHeightPt - metrics.radicalExtraAscenderPt, ctx.sizePt);
376
382
  let signWidthPt;
377
383
  if (stretched !== void 0) {
378
384
  const placements = stretched.placements.map((placement) => ({
@@ -403,7 +409,7 @@ function wrapRadical(radicand, index, ctx) {
403
409
  }
404
410
  items.push(...require_mathml_compose.placeChild(radicand, signOriginXPt + signWidthPt, 0, ascentPt));
405
411
  if (index !== void 0) {
406
- const raisePt = (ascentPt + descentPt) * metrics.radicalDegreeBottomRaisePercent / 100;
412
+ const raisePt = (ascentPt + descentPt) * metrics.radicalDegreeBottomRaisePercent / PERCENT_SCALE;
407
413
  const degreeBaselineFromTopPt = ascentPt + descentPt - raisePt - index.descentPt;
408
414
  items.push(...require_mathml_compose.shiftItems(index.items, metrics.radicalKernBeforeDegreePt, degreeBaselineFromTopPt - index.ascentPt));
409
415
  }
@@ -423,8 +429,8 @@ function layoutTable(element, ctx) {
423
429
  const columnCount = rowCells.reduce((max, row) => Math.max(max, row.length), 0);
424
430
  if (columnCount === 0) return require_mathml_compose.EMPTY_BOX;
425
431
  const columnWidthsPt = Array.from({ length: columnCount }, (_, column) => rowCells.reduce((max, row) => Math.max(max, row[column]?.widthPt ?? 0), 0));
426
- const columnGapPt = .8 * ctx.sizePt;
427
- const rowGapPt = .5 * ctx.sizePt;
432
+ const columnGapPt = TABLE_COLUMN_GAP_EM * ctx.sizePt;
433
+ const rowGapPt = TABLE_ROW_GAP_EM * ctx.sizePt;
428
434
  const items = [];
429
435
  let cursorYTopPt = 0;
430
436
  rowCells.forEach((row, rowIndex) => {
@@ -5,6 +5,12 @@ import { applyMathVariant, isMathVariant } from "./variant.js";
5
5
  import { EMPTY_BOX, concatBoxesHorizontally, placeChild, shiftItems } from "./compose.js";
6
6
  import { buildRadicalSign } from "./radical.js";
7
7
  //#region src/mathml/layout.ts
8
+ const HEX_RADIX = 16;
9
+ const UNICODE_HEX_DIGITS = 4;
10
+ const PERCENT_SCALE = 100;
11
+ const RADICAL_SIGN = 8730;
12
+ const TABLE_COLUMN_GAP_EM = .8;
13
+ const TABLE_ROW_GAP_EM = .5;
8
14
  function rootContext(options, diagnostics) {
9
15
  return {
10
16
  metrics: options.metrics,
@@ -49,7 +55,7 @@ function layoutToken(rawText, variant, ctx) {
49
55
  if (glyph === void 0) {
50
56
  ctx.diagnostics.push({
51
57
  kind: "missing-glyph",
52
- detail: `U+${codePoint.toString(16).toUpperCase().padStart(4, "0")}`
58
+ detail: `U+${codePoint.toString(HEX_RADIX).toUpperCase().padStart(UNICODE_HEX_DIGITS, "0")}`
53
59
  });
54
60
  continue;
55
61
  }
@@ -371,7 +377,7 @@ function wrapRadical(radicand, index, ctx) {
371
377
  const ascentPt = metrics.radicalExtraAscenderPt + ruleThicknessPt + gapPt + radicand.ascentPt;
372
378
  const descentPt = radicand.descentPt;
373
379
  const items = [];
374
- const stretched = ctx.metrics.stretch(8730, "vertical", signHeightPt - metrics.radicalExtraAscenderPt, ctx.sizePt);
380
+ const stretched = ctx.metrics.stretch(RADICAL_SIGN, "vertical", signHeightPt - metrics.radicalExtraAscenderPt, ctx.sizePt);
375
381
  let signWidthPt;
376
382
  if (stretched !== void 0) {
377
383
  const placements = stretched.placements.map((placement) => ({
@@ -402,7 +408,7 @@ function wrapRadical(radicand, index, ctx) {
402
408
  }
403
409
  items.push(...placeChild(radicand, signOriginXPt + signWidthPt, 0, ascentPt));
404
410
  if (index !== void 0) {
405
- const raisePt = (ascentPt + descentPt) * metrics.radicalDegreeBottomRaisePercent / 100;
411
+ const raisePt = (ascentPt + descentPt) * metrics.radicalDegreeBottomRaisePercent / PERCENT_SCALE;
406
412
  const degreeBaselineFromTopPt = ascentPt + descentPt - raisePt - index.descentPt;
407
413
  items.push(...shiftItems(index.items, metrics.radicalKernBeforeDegreePt, degreeBaselineFromTopPt - index.ascentPt));
408
414
  }
@@ -422,8 +428,8 @@ function layoutTable(element, ctx) {
422
428
  const columnCount = rowCells.reduce((max, row) => Math.max(max, row.length), 0);
423
429
  if (columnCount === 0) return EMPTY_BOX;
424
430
  const columnWidthsPt = Array.from({ length: columnCount }, (_, column) => rowCells.reduce((max, row) => Math.max(max, row[column]?.widthPt ?? 0), 0));
425
- const columnGapPt = .8 * ctx.sizePt;
426
- const rowGapPt = .5 * ctx.sizePt;
431
+ const columnGapPt = TABLE_COLUMN_GAP_EM * ctx.sizePt;
432
+ const rowGapPt = TABLE_ROW_GAP_EM * ctx.sizePt;
427
433
  const items = [];
428
434
  let cursorYTopPt = 0;
429
435
  rowCells.forEach((row, rowIndex) => {
@@ -1,14 +1,16 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  //#region src/mathml/length.ts
3
- const NAMED_MATH_SPACES = /* @__PURE__ */ new Map([
4
- ["veryverythinmathspace", 1 / 18],
5
- ["verythinmathspace", 2 / 18],
6
- ["thinmathspace", 3 / 18],
7
- ["mediummathspace", 4 / 18],
8
- ["thickmathspace", 5 / 18],
9
- ["verythickmathspace", 6 / 18],
10
- ["veryverythickmathspace", 7 / 18]
11
- ]);
3
+ const EM_DENOMINATOR = 18;
4
+ const NAMED_MATH_SPACES = new Map([
5
+ "veryverythinmathspace",
6
+ "verythinmathspace",
7
+ "thinmathspace",
8
+ "mediummathspace",
9
+ "thickmathspace",
10
+ "verythickmathspace",
11
+ "veryverythickmathspace"
12
+ ].map((name, index) => [name, (index + 1) / EM_DENOMINATOR]));
13
+ const PERCENT_SCALE = 100;
12
14
  const EX_APPROXIMATION_OF_EM = .5;
13
15
  const LENGTH_PATTERN = /^([+-]?[0-9]*\.?[0-9]+)\s*(em|ex|px|in|cm|mm|pt|pc|%)?$/;
14
16
  const PX_PER_INCH = 96;
@@ -27,7 +29,7 @@ function parseMathLength(value, fontSizePt) {
27
29
  switch (match[2] ?? "em") {
28
30
  case "em": return amount * fontSizePt;
29
31
  case "ex": return amount * fontSizePt * EX_APPROXIMATION_OF_EM;
30
- case "%": return amount / 100 * fontSizePt;
32
+ case "%": return amount / PERCENT_SCALE * fontSizePt;
31
33
  case "pt": return amount;
32
34
  case "px": return amount / PX_PER_INCH * PT_PER_INCH;
33
35
  case "in": return amount * PT_PER_INCH;
@@ -1,13 +1,15 @@
1
1
  //#region src/mathml/length.ts
2
- const NAMED_MATH_SPACES = /* @__PURE__ */ new Map([
3
- ["veryverythinmathspace", 1 / 18],
4
- ["verythinmathspace", 2 / 18],
5
- ["thinmathspace", 3 / 18],
6
- ["mediummathspace", 4 / 18],
7
- ["thickmathspace", 5 / 18],
8
- ["verythickmathspace", 6 / 18],
9
- ["veryverythickmathspace", 7 / 18]
10
- ]);
2
+ const EM_DENOMINATOR = 18;
3
+ const NAMED_MATH_SPACES = new Map([
4
+ "veryverythinmathspace",
5
+ "verythinmathspace",
6
+ "thinmathspace",
7
+ "mediummathspace",
8
+ "thickmathspace",
9
+ "verythickmathspace",
10
+ "veryverythickmathspace"
11
+ ].map((name, index) => [name, (index + 1) / EM_DENOMINATOR]));
12
+ const PERCENT_SCALE = 100;
11
13
  const EX_APPROXIMATION_OF_EM = .5;
12
14
  const LENGTH_PATTERN = /^([+-]?[0-9]*\.?[0-9]+)\s*(em|ex|px|in|cm|mm|pt|pc|%)?$/;
13
15
  const PX_PER_INCH = 96;
@@ -26,7 +28,7 @@ function parseMathLength(value, fontSizePt) {
26
28
  switch (match[2] ?? "em") {
27
29
  case "em": return amount * fontSizePt;
28
30
  case "ex": return amount * fontSizePt * EX_APPROXIMATION_OF_EM;
29
- case "%": return amount / 100 * fontSizePt;
31
+ case "%": return amount / PERCENT_SCALE * fontSizePt;
30
32
  case "pt": return amount;
31
33
  case "px": return amount / PX_PER_INCH * PT_PER_INCH;
32
34
  case "in": return amount * PT_PER_INCH;
@@ -1,9 +1,13 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  //#region src/mathml/operators.ts
3
3
  const ZERO_SPACE = 0;
4
- const THIN_SPACE = 1 / 6;
5
- const MEDIUM_SPACE = 2 / 9;
6
- const THICK_SPACE = 5 / 18;
4
+ const SPACE_EM_DENOMINATOR = 18;
5
+ const THIN_SPACE_NUMERATOR = 3;
6
+ const MEDIUM_SPACE_NUMERATOR = 4;
7
+ const THICK_SPACE_NUMERATOR = 5;
8
+ const THIN_SPACE = THIN_SPACE_NUMERATOR / SPACE_EM_DENOMINATOR;
9
+ const MEDIUM_SPACE = MEDIUM_SPACE_NUMERATOR / SPACE_EM_DENOMINATOR;
10
+ const THICK_SPACE = THICK_SPACE_NUMERATOR / SPACE_EM_DENOMINATOR;
7
11
  const DEFAULT_OPERATOR = {
8
12
  lspaceEm: THICK_SPACE,
9
13
  rspaceEm: THICK_SPACE,
@@ -1,8 +1,12 @@
1
1
  //#region src/mathml/operators.ts
2
2
  const ZERO_SPACE = 0;
3
- const THIN_SPACE = 1 / 6;
4
- const MEDIUM_SPACE = 2 / 9;
5
- const THICK_SPACE = 5 / 18;
3
+ const SPACE_EM_DENOMINATOR = 18;
4
+ const THIN_SPACE_NUMERATOR = 3;
5
+ const MEDIUM_SPACE_NUMERATOR = 4;
6
+ const THICK_SPACE_NUMERATOR = 5;
7
+ const THIN_SPACE = THIN_SPACE_NUMERATOR / SPACE_EM_DENOMINATOR;
8
+ const MEDIUM_SPACE = MEDIUM_SPACE_NUMERATOR / SPACE_EM_DENOMINATOR;
9
+ const THICK_SPACE = THICK_SPACE_NUMERATOR / SPACE_EM_DENOMINATOR;
6
10
  const DEFAULT_OPERATOR = {
7
11
  lspaceEm: THICK_SPACE,
8
12
  rspaceEm: THICK_SPACE,