ooxml-core 1.7.0 → 1.8.1
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/automation/index.cjs +10903 -5961
- package/dist/automation/index.mjs +10903 -5961
- package/dist/collab/session.d.ts.map +1 -1
- package/dist/color/index.cjs +103 -0
- package/dist/color/index.d.ts +1 -0
- package/dist/color/index.d.ts.map +1 -1
- package/dist/color/index.mjs +94 -1
- package/dist/color/theme-palette.d.ts +55 -0
- package/dist/color/theme-palette.d.ts.map +1 -0
- package/dist/docx/layout/page-cursor.d.ts.map +1 -1
- package/dist/docx/model.d.ts +2 -2
- package/dist/docx/model.d.ts.map +1 -1
- package/dist/docx/style-numbering-package.d.ts.map +1 -1
- package/dist/docx/tab-stops.d.ts.map +1 -1
- package/dist/docx/table-styles.d.ts.map +1 -1
- package/dist/docx/write-drawing.d.ts.map +1 -1
- package/dist/docx/write-table.d.ts.map +1 -1
- package/dist/geometry/connector-router-astar.d.ts +24 -0
- package/dist/geometry/connector-router-astar.d.ts.map +1 -0
- package/dist/geometry/connector-router-graph.d.ts +38 -0
- package/dist/geometry/connector-router-graph.d.ts.map +1 -0
- package/dist/geometry/connector-router-types.d.ts +53 -0
- package/dist/geometry/connector-router-types.d.ts.map +1 -0
- package/dist/geometry/connector-router.d.ts +35 -0
- package/dist/geometry/connector-router.d.ts.map +1 -0
- package/dist/geometry/guide-formula-api.d.ts.map +1 -1
- package/dist/geometry/index.cjs +319 -0
- package/dist/geometry/index.d.ts +1 -0
- package/dist/geometry/index.d.ts.map +1 -1
- package/dist/geometry/index.mjs +304 -1
- package/dist/geometry/preset-shape-definitions-chart-marks.d.ts.map +1 -1
- package/dist/geometry/preset-shape-paths.d.ts +1 -1
- package/dist/geometry/preset-shape-paths.d.ts.map +1 -1
- package/dist/index.cjs +510 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +510 -4
- package/dist/math/omml-to-latex.d.ts.map +1 -1
- package/dist/pptx/automation/index.d.ts.map +1 -1
- package/dist/pptx/chunks/index-Cn-GzYGp.d.ts.map +1 -1
- package/dist/pptx/signature-node/index.cjs +37 -7
- package/dist/pptx/signature-node/index.d.ts.map +1 -1
- package/dist/pptx/signature-node/index.mjs +37 -7
- package/dist/pptx/ui/index.cjs +22 -24
- package/dist/pptx/ui/index.d.ts +14 -7
- package/dist/pptx/ui/index.d.ts.map +1 -1
- package/dist/pptx/ui/index.mjs +22 -24
- package/dist/ribbon/add-in.d.ts +53 -0
- package/dist/ribbon/add-in.d.ts.map +1 -0
- package/dist/ribbon/index.cjs +28 -0
- package/dist/ribbon/index.d.ts +2 -0
- package/dist/ribbon/index.d.ts.map +1 -0
- package/dist/ribbon/index.mjs +23 -0
- package/dist/teams/files.d.ts.map +1 -1
- package/dist/teams/index.cjs +29 -15
- package/dist/teams/index.mjs +29 -15
- package/dist/text/font-metrics/advance-width.d.ts +9 -0
- package/dist/text/font-metrics/advance-width.d.ts.map +1 -0
- package/dist/text/font-metrics/design-advances.generated.d.ts +12 -0
- package/dist/text/font-metrics/design-advances.generated.d.ts.map +1 -0
- package/dist/text/index.cjs +53 -0
- package/dist/text/index.d.ts +1 -0
- package/dist/text/index.d.ts.map +1 -1
- package/dist/text/index.mjs +52 -1
- package/dist/visio/clipboard-types.d.ts +8 -0
- package/dist/visio/clipboard-types.d.ts.map +1 -1
- package/dist/visio/clipboard-xml.d.ts.map +1 -1
- package/dist/visio/clipboard.d.ts.map +1 -1
- package/dist/visio/connector-route-avoid.d.ts +24 -0
- package/dist/visio/connector-route-avoid.d.ts.map +1 -0
- package/dist/visio/connector-route-walk.d.ts +37 -0
- package/dist/visio/connector-route-walk.d.ts.map +1 -0
- package/dist/visio/connector-route.d.ts +5 -2
- package/dist/visio/connector-route.d.ts.map +1 -1
- package/dist/visio/create-document.d.ts +6 -0
- package/dist/visio/create-document.d.ts.map +1 -1
- package/dist/visio/edit-change-shape-builtin.d.ts +18 -0
- package/dist/visio/edit-change-shape-builtin.d.ts.map +1 -0
- package/dist/visio/edit-change-shape-commands.d.ts +10 -4
- package/dist/visio/edit-change-shape-commands.d.ts.map +1 -1
- package/dist/visio/edit-change-shape.d.ts +3 -1
- package/dist/visio/edit-change-shape.d.ts.map +1 -1
- package/dist/visio/edit-commands.d.ts +5 -1
- package/dist/visio/edit-commands.d.ts.map +1 -1
- package/dist/visio/edit-connector-layout.d.ts +2 -2
- package/dist/visio/edit-connector-layout.d.ts.map +1 -1
- package/dist/visio/edit-connector-obstacles.d.ts +14 -0
- package/dist/visio/edit-connector-obstacles.d.ts.map +1 -0
- package/dist/visio/edit-connector-reroute.d.ts +7 -0
- package/dist/visio/edit-connector-reroute.d.ts.map +1 -1
- package/dist/visio/edit-connector.d.ts +2 -0
- package/dist/visio/edit-connector.d.ts.map +1 -1
- package/dist/visio/edit-delete.d.ts +4 -2
- package/dist/visio/edit-delete.d.ts.map +1 -1
- package/dist/visio/edit-duplicate-scope.d.ts +7 -2
- package/dist/visio/edit-duplicate-scope.d.ts.map +1 -1
- package/dist/visio/edit-duplicate.d.ts.map +1 -1
- package/dist/visio/edit-formatting-cell-admission.d.ts.map +1 -1
- package/dist/visio/edit-formatting-commands.d.ts +17 -0
- package/dist/visio/edit-formatting-commands.d.ts.map +1 -1
- package/dist/visio/edit-formatting-paint.d.ts.map +1 -1
- package/dist/visio/edit-formatting-scope.d.ts +6 -1
- package/dist/visio/edit-formatting-scope.d.ts.map +1 -1
- package/dist/visio/edit-formatting-text.d.ts.map +1 -1
- package/dist/visio/edit-formatting.d.ts.map +1 -1
- package/dist/visio/edit-group-formulas.d.ts +22 -0
- package/dist/visio/edit-group-formulas.d.ts.map +1 -0
- package/dist/visio/edit-group-rotation.d.ts +3 -1
- package/dist/visio/edit-group-rotation.d.ts.map +1 -1
- package/dist/visio/edit-group.d.ts +10 -3
- package/dist/visio/edit-group.d.ts.map +1 -1
- package/dist/visio/edit-instance-checks.d.ts +18 -0
- package/dist/visio/edit-instance-checks.d.ts.map +1 -0
- package/dist/visio/edit-instance-clipboard.d.ts +22 -0
- package/dist/visio/edit-instance-clipboard.d.ts.map +1 -0
- package/dist/visio/edit-instance-delete.d.ts +19 -0
- package/dist/visio/edit-instance-delete.d.ts.map +1 -0
- package/dist/visio/edit-instance-duplicate.d.ts +17 -0
- package/dist/visio/edit-instance-duplicate.d.ts.map +1 -0
- package/dist/visio/edit-instance-format.d.ts +31 -0
- package/dist/visio/edit-instance-format.d.ts.map +1 -0
- package/dist/visio/edit-instance-geometry.d.ts +21 -0
- package/dist/visio/edit-instance-geometry.d.ts.map +1 -0
- package/dist/visio/edit-instance-group.d.ts +18 -0
- package/dist/visio/edit-instance-group.d.ts.map +1 -0
- package/dist/visio/edit-instance-order.d.ts +16 -0
- package/dist/visio/edit-instance-order.d.ts.map +1 -0
- package/dist/visio/edit-instance-recalculate.d.ts +32 -0
- package/dist/visio/edit-instance-recalculate.d.ts.map +1 -0
- package/dist/visio/edit-instance-replace.d.ts +18 -0
- package/dist/visio/edit-instance-replace.d.ts.map +1 -0
- package/dist/visio/edit-instance-scope.d.ts +29 -0
- package/dist/visio/edit-instance-scope.d.ts.map +1 -0
- package/dist/visio/edit-instance-shape.d.ts +52 -0
- package/dist/visio/edit-instance-shape.d.ts.map +1 -0
- package/dist/visio/edit-instance-sheet.d.ts +52 -0
- package/dist/visio/edit-instance-sheet.d.ts.map +1 -0
- package/dist/visio/edit-master-drop.d.ts +39 -0
- package/dist/visio/edit-master-drop.d.ts.map +1 -0
- package/dist/visio/edit-master-index.d.ts.map +1 -1
- package/dist/visio/edit-master-instance-extras.d.ts +15 -0
- package/dist/visio/edit-master-instance-extras.d.ts.map +1 -0
- package/dist/visio/edit-master-instance-group.d.ts +25 -0
- package/dist/visio/edit-master-instance-group.d.ts.map +1 -0
- package/dist/visio/edit-master-instance.d.ts +42 -0
- package/dist/visio/edit-master-instance.d.ts.map +1 -0
- package/dist/visio/edit-master-scope.d.ts.map +1 -1
- package/dist/visio/edit-page-auto-size.d.ts.map +1 -1
- package/dist/visio/edit-page-layout.d.ts +15 -0
- package/dist/visio/edit-page-layout.d.ts.map +1 -0
- package/dist/visio/edit-page-setup-commands.d.ts +3 -1
- package/dist/visio/edit-page-setup-commands.d.ts.map +1 -1
- package/dist/visio/edit-page-theme-refresh.d.ts +4 -0
- package/dist/visio/edit-page-theme-refresh.d.ts.map +1 -0
- package/dist/visio/edit-page-theme.d.ts.map +1 -1
- package/dist/visio/edit-pages.d.ts.map +1 -1
- package/dist/visio/edit-paste.d.ts +3 -1
- package/dist/visio/edit-paste.d.ts.map +1 -1
- package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
- package/dist/visio/edit-recalculate-values.d.ts.map +1 -1
- package/dist/visio/edit-shape-order.d.ts +19 -4
- package/dist/visio/edit-shape-order.d.ts.map +1 -1
- package/dist/visio/edit-snap-glue.d.ts +16 -0
- package/dist/visio/edit-snap-glue.d.ts.map +1 -0
- package/dist/visio/edit-stencil-connector-drop.d.ts +9 -0
- package/dist/visio/edit-stencil-connector-drop.d.ts.map +1 -0
- package/dist/visio/edit-stencil-connector-layout.d.ts +14 -0
- package/dist/visio/edit-stencil-connector-layout.d.ts.map +1 -0
- package/dist/visio/edit-stencil-connector-write.d.ts +16 -0
- package/dist/visio/edit-stencil-connector-write.d.ts.map +1 -0
- package/dist/visio/edit-stencil-connector.d.ts +29 -0
- package/dist/visio/edit-stencil-connector.d.ts.map +1 -0
- package/dist/visio/edit-stencil-master.d.ts +17 -0
- package/dist/visio/edit-stencil-master.d.ts.map +1 -0
- package/dist/visio/edit-text-size-formula.d.ts +17 -0
- package/dist/visio/edit-text-size-formula.d.ts.map +1 -0
- package/dist/visio/edit-text-size.d.ts +34 -0
- package/dist/visio/edit-text-size.d.ts.map +1 -0
- package/dist/visio/edit.d.ts +1 -1
- package/dist/visio/edit.d.ts.map +1 -1
- package/dist/visio/formula-evaluate.d.ts +2 -0
- package/dist/visio/formula-evaluate.d.ts.map +1 -1
- package/dist/visio/formula-functions.d.ts +13 -0
- package/dist/visio/formula-functions.d.ts.map +1 -0
- package/dist/visio/formula-numeric-functions.d.ts.map +1 -1
- package/dist/visio/formula.d.ts +14 -0
- package/dist/visio/formula.d.ts.map +1 -1
- package/dist/visio/index.cjs +11004 -5929
- package/dist/visio/index.d.ts +11 -1
- package/dist/visio/index.d.ts.map +1 -1
- package/dist/visio/index.mjs +10978 -5930
- package/dist/visio/line-jumps.d.ts +21 -0
- package/dist/visio/line-jumps.d.ts.map +1 -0
- package/dist/visio/master-list.d.ts +20 -0
- package/dist/visio/master-list.d.ts.map +1 -0
- package/dist/visio/model.d.ts +41 -0
- package/dist/visio/model.d.ts.map +1 -1
- package/dist/visio/page-layout.d.ts +40 -0
- package/dist/visio/page-layout.d.ts.map +1 -0
- package/dist/visio/page-theme.d.ts.map +1 -1
- package/dist/visio/parser.d.ts.map +1 -1
- package/dist/visio/shape-connections.d.ts +2 -2
- package/dist/visio/shape-connections.d.ts.map +1 -1
- package/dist/visio/snap-glue.d.ts +49 -0
- package/dist/visio/snap-glue.d.ts.map +1 -0
- package/dist/visio/stencil-master-part.d.ts +15 -0
- package/dist/visio/stencil-master-part.d.ts.map +1 -0
- package/dist/visio/stencil-masters.d.ts +19 -0
- package/dist/visio/stencil-masters.d.ts.map +1 -0
- package/dist/visio/stencil-windows.d.ts +20 -0
- package/dist/visio/stencil-windows.d.ts.map +1 -0
- package/dist/visio/stencils.d.ts +2 -0
- package/dist/visio/stencils.d.ts.map +1 -1
- package/dist/visio/style.d.ts +5 -0
- package/dist/visio/style.d.ts.map +1 -1
- package/dist/visio/text-extent.d.ts +40 -0
- package/dist/visio/text-extent.d.ts.map +1 -0
- package/dist/visio/text-fields.d.ts.map +1 -1
- package/dist/visio/theme-color-ref.d.ts +33 -0
- package/dist/visio/theme-color-ref.d.ts.map +1 -0
- package/dist/visio/ui/auto-connect.d.ts +80 -0
- package/dist/visio/ui/auto-connect.d.ts.map +1 -0
- package/dist/visio/ui/connection-points.d.ts +7 -2
- package/dist/visio/ui/connection-points.d.ts.map +1 -1
- package/dist/visio/ui/connector-preview.d.ts +3 -2
- package/dist/visio/ui/connector-preview.d.ts.map +1 -1
- package/dist/visio/ui/contract.d.ts +7 -2
- package/dist/visio/ui/contract.d.ts.map +1 -1
- package/dist/visio/ui/data-graphics.d.ts +6 -2
- package/dist/visio/ui/data-graphics.d.ts.map +1 -1
- package/dist/visio/ui/edit-commands.d.ts.map +1 -1
- package/dist/visio/ui/formatting.d.ts +27 -0
- package/dist/visio/ui/formatting.d.ts.map +1 -1
- package/dist/visio/ui/guides.d.ts +11 -2
- package/dist/visio/ui/guides.d.ts.map +1 -1
- package/dist/visio/ui/index.cjs +22141 -16751
- package/dist/visio/ui/index.d.ts +3 -0
- package/dist/visio/ui/index.d.ts.map +1 -1
- package/dist/visio/ui/index.mjs +22112 -16752
- package/dist/visio/ui/master-drop.d.ts +38 -0
- package/dist/visio/ui/master-drop.d.ts.map +1 -0
- package/dist/visio/ui/page-edit.d.ts.map +1 -1
- package/dist/visio/ui/ruler-grid.d.ts +45 -0
- package/dist/visio/ui/ruler-grid.d.ts.map +1 -0
- package/dist/visio/ui/sample-drawing.d.ts +3 -2
- package/dist/visio/ui/sample-drawing.d.ts.map +1 -1
- package/dist/visio/ui/scene-validation.d.ts.map +1 -1
- package/dist/visio/ui/shape-change.d.ts +16 -4
- package/dist/visio/ui/shape-change.d.ts.map +1 -1
- package/dist/visio/ui/shape-clipboard.d.ts.map +1 -1
- package/dist/visio/ui/shape-duplicate.d.ts +7 -1
- package/dist/visio/ui/shape-duplicate.d.ts.map +1 -1
- package/dist/visio/ui/shape-group.d.ts.map +1 -1
- package/dist/visio/ui/shape-order.d.ts +6 -1
- package/dist/visio/ui/shape-order.d.ts.map +1 -1
- package/dist/visio/ui/shape-resize.d.ts.map +1 -1
- package/dist/visio/ui/shape-rotation.d.ts +10 -1
- package/dist/visio/ui/shape-rotation.d.ts.map +1 -1
- package/dist/visio/ui/size-position.d.ts.map +1 -1
- package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
- package/dist/xlsx/conditional-extensions.d.ts.map +1 -1
- package/dist/xlsx/edit/cell-shift.d.ts.map +1 -1
- package/dist/xlsx/edit/insert-guard.d.ts +6 -0
- package/dist/xlsx/edit/insert-guard.d.ts.map +1 -0
- package/dist/xlsx/edit/shift-preserved.d.ts +2 -0
- package/dist/xlsx/edit/shift-preserved.d.ts.map +1 -1
- package/dist/xlsx/edit/shift-rule-anchors.d.ts +9 -0
- package/dist/xlsx/edit/shift-rule-anchors.d.ts.map +1 -0
- package/dist/xlsx/edit/shift-sheet.d.ts.map +1 -1
- package/dist/xlsx/edit/structure.d.ts.map +1 -1
- package/dist/xlsx/edit/table-edits.d.ts.map +1 -1
- package/dist/xlsx/formula/engine-util.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +118 -16
- package/dist/xlsx/index.mjs +118 -16
- package/dist/xlsx/load/index.cjs +70 -16
- package/dist/xlsx/load/index.mjs +70 -16
- package/dist/xlsx/load/text-decode.d.ts.map +1 -1
- package/dist/xlsx/model.d.ts +2 -0
- package/dist/xlsx/model.d.ts.map +1 -1
- package/dist/xlsx/read/package.d.ts.map +1 -1
- package/dist/xlsx/read/tables.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/number.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/util.d.ts.map +1 -1
- package/dist/xlsx/ui/index.cjs +100 -1
- package/dist/xlsx/ui/index.mjs +100 -1
- package/dist/xlsx/ui/locales/de/grid.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/en/grid.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/es/grid.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/fr/grid.d.ts.map +1 -1
- package/dist/xlsx/ui/locales/zh-CN/grid.d.ts.map +1 -1
- package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -1
- package/dist/xlsx/write/conditional.d.ts.map +1 -1
- package/dist/xlsx/write/styles.d.ts.map +1 -1
- package/dist/xlsx/write/table-patch.d.ts.map +1 -1
- package/package.json +6 -1
package/dist/pptx/ui/index.mjs
CHANGED
|
@@ -2,6 +2,22 @@ import { THEME_COLOR_PALETTE_COLUMNS } from '../../chunk-EP5BJIUW.mjs';
|
|
|
2
2
|
import { resolveThemeColorRef, hexToRgbChannels, rgbToHsl } from '../../chunk-KII4AAYH.mjs';
|
|
3
3
|
import '../../chunk-7P6ASYW6.mjs';
|
|
4
4
|
|
|
5
|
+
// color/theme-palette.ts
|
|
6
|
+
var lighter = (percent) => ({ kind: "lighter", percent });
|
|
7
|
+
var darker = (percent) => ({ kind: "darker", percent });
|
|
8
|
+
function themePaletteVariantsForLuminance(l) {
|
|
9
|
+
if (l < 0.05) return [lighter(50), lighter(35), lighter(25), lighter(15), lighter(5)];
|
|
10
|
+
if (l < 0.25) return [lighter(90), lighter(75), lighter(50), lighter(25), lighter(10)];
|
|
11
|
+
if (l < 0.75) return [lighter(80), lighter(60), lighter(40), darker(25), darker(50)];
|
|
12
|
+
if (l < 0.95) return [darker(10), darker(25), darker(50), darker(75), darker(90)];
|
|
13
|
+
return [darker(5), darker(15), darker(25), darker(35), darker(50)];
|
|
14
|
+
}
|
|
15
|
+
function themePaletteVariantLuminance(variant) {
|
|
16
|
+
const fraction = variant.percent / 100;
|
|
17
|
+
const lumMod = Math.round((1 - fraction) * 1e5) / 1e5;
|
|
18
|
+
return variant.kind === "lighter" ? { lumMod, lumOff: fraction } : { lumMod };
|
|
19
|
+
}
|
|
20
|
+
|
|
5
21
|
// pptx/ui/theme-color-swatches.ts
|
|
6
22
|
var COLUMN_LABELS = {
|
|
7
23
|
bg1: "Background 1",
|
|
@@ -21,31 +37,13 @@ var COLUMN_LABELS = {
|
|
|
21
37
|
hlink: "Hyperlink",
|
|
22
38
|
folHlink: "Followed Hyperlink"
|
|
23
39
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
function darker(percent) {
|
|
28
|
-
return { kind: "darker", percent };
|
|
29
|
-
}
|
|
40
|
+
var lighter2 = (percent) => ({ kind: "lighter", percent });
|
|
41
|
+
var darker2 = (percent) => ({ kind: "darker", percent });
|
|
30
42
|
function themeColorVariantsForLuminance(l) {
|
|
31
|
-
|
|
32
|
-
return [lighter(50), lighter(35), lighter(25), lighter(15), lighter(5)];
|
|
33
|
-
}
|
|
34
|
-
if (l < 0.25) {
|
|
35
|
-
return [lighter(90), lighter(75), lighter(50), lighter(25), lighter(10)];
|
|
36
|
-
}
|
|
37
|
-
if (l < 0.75) {
|
|
38
|
-
return [lighter(80), lighter(60), lighter(40), darker(25), darker(50)];
|
|
39
|
-
}
|
|
40
|
-
if (l < 0.95) {
|
|
41
|
-
return [darker(10), darker(25), darker(50), darker(75), darker(90)];
|
|
42
|
-
}
|
|
43
|
-
return [darker(5), darker(15), darker(25), darker(35), darker(50)];
|
|
43
|
+
return themePaletteVariantsForLuminance(l);
|
|
44
44
|
}
|
|
45
45
|
function themeColorVariantToRef(scheme, variant) {
|
|
46
|
-
|
|
47
|
-
const lumMod = Math.round((1 - fraction) * 1e5) / 1e5;
|
|
48
|
-
return variant.kind === "lighter" ? { scheme, lumMod, lumOff: fraction } : { scheme, lumMod };
|
|
46
|
+
return { scheme, ...themePaletteVariantLuminance(variant) };
|
|
49
47
|
}
|
|
50
48
|
function describeThemeColorSwatch(ref, variant) {
|
|
51
49
|
const column = COLUMN_LABELS[ref.scheme] ?? ref.scheme;
|
|
@@ -61,9 +59,9 @@ function themeColorVariantOfRef(ref) {
|
|
|
61
59
|
}
|
|
62
60
|
const percent = Math.round((1 - ref.lumMod) * 100);
|
|
63
61
|
if (ref.lumOff !== void 0) {
|
|
64
|
-
return Math.round(ref.lumOff * 100) === percent ?
|
|
62
|
+
return Math.round(ref.lumOff * 100) === percent ? lighter2(percent) : void 0;
|
|
65
63
|
}
|
|
66
|
-
return
|
|
64
|
+
return darker2(percent);
|
|
67
65
|
}
|
|
68
66
|
function buildThemeColorSwatchGrid(themeColorMap) {
|
|
69
67
|
if (!themeColorMap) {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ribbon add-in tabs: tabs a host application adds after a product's own, as an Office add-in
|
|
3
|
+
* does (the ACROBAT tab in Visio and Excel). The descriptor is plain data, so one tab works in
|
|
4
|
+
* every editor and every framework binding; the DOM that renders it lives in `ooxml-ui`
|
|
5
|
+
* (`syncRibbonAddIns`) and in the PowerPoint ribbon descriptors.
|
|
6
|
+
*/
|
|
7
|
+
/** One command of an add-in group. With `items` it is a drop-down of those commands. */
|
|
8
|
+
export interface RibbonAddInCommand {
|
|
9
|
+
/** Unique within the tab; reported in the event detail. */
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
/** A name from the shared icon set (`registerIcon` of `ooxml-ui` adds the host's own). */
|
|
13
|
+
icon?: string;
|
|
14
|
+
/** `large` (the default) stacks the icon over the label; `small` commands fill columns of three. */
|
|
15
|
+
size?: 'large' | 'small';
|
|
16
|
+
/** Tooltip; the label when omitted. */
|
|
17
|
+
title?: string;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
items?: readonly RibbonAddInCommand[];
|
|
20
|
+
run?: () => void;
|
|
21
|
+
}
|
|
22
|
+
export interface RibbonAddInGroup {
|
|
23
|
+
label: string;
|
|
24
|
+
commands: readonly RibbonAddInCommand[];
|
|
25
|
+
}
|
|
26
|
+
export interface RibbonAddInTab {
|
|
27
|
+
/** Unique among the add-in tabs and different from the product's tab ids (`home`, `insert`...). */
|
|
28
|
+
id: string;
|
|
29
|
+
label: string;
|
|
30
|
+
/** Key tip of the tab, for products that show key tips. */
|
|
31
|
+
keytip?: string;
|
|
32
|
+
groups: readonly RibbonAddInGroup[];
|
|
33
|
+
}
|
|
34
|
+
/** Name of the DOM event an editor dispatches when an add-in command is chosen. */
|
|
35
|
+
export declare const RIBBON_ADD_IN_EVENT = "office-ribbon-add-in";
|
|
36
|
+
/** Detail of the `office-ribbon-add-in` event: the tab and the command that was chosen. */
|
|
37
|
+
export interface RibbonAddInCommandDetail {
|
|
38
|
+
tab: string;
|
|
39
|
+
command: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The tabs a ribbon may show, in order: a tab whose id is empty, repeated or one of `reserved`
|
|
43
|
+
* (the product's own tab ids) is left out, so an add-in can never replace a built-in tab.
|
|
44
|
+
*/
|
|
45
|
+
export declare function acceptedRibbonAddIns(tabs: readonly RibbonAddInTab[] | null | undefined, reserved?: Iterable<string>): RibbonAddInTab[];
|
|
46
|
+
/** Every command of a tab, drop-down items included, in document order. */
|
|
47
|
+
export declare function ribbonAddInCommands(tab: RibbonAddInTab): RibbonAddInCommand[];
|
|
48
|
+
/**
|
|
49
|
+
* The enabled command `id` of the tab, or undefined when it is unknown or disabled. Renderers
|
|
50
|
+
* call this before running a command, so a disabled command never runs however it was reached.
|
|
51
|
+
*/
|
|
52
|
+
export declare function findRibbonAddInCommand(tab: RibbonAddInTab, id: string | undefined): RibbonAddInCommand | undefined;
|
|
53
|
+
//# sourceMappingURL=add-in.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-in.d.ts","sourceRoot":"","sources":["../../ribbon/add-in.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wFAAwF;AACxF,MAAM,WAAW,kBAAkB;IAClC,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oGAAoG;IACpG,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC9B,mGAAmG;IACnG,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACpC;AAED,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAE1D,2FAA2F;AAC3F,MAAM,WAAW,wBAAwB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,EAClD,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAAM,GAC7B,cAAc,EAAE,CASlB;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,kBAAkB,EAAE,CAI7E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,cAAc,EACnB,EAAE,EAAE,MAAM,GAAG,SAAS,GACpB,kBAAkB,GAAG,SAAS,CAIhC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// ribbon/add-in.ts
|
|
4
|
+
var RIBBON_ADD_IN_EVENT = "office-ribbon-add-in";
|
|
5
|
+
function acceptedRibbonAddIns(tabs, reserved = []) {
|
|
6
|
+
const taken = new Set(reserved);
|
|
7
|
+
const accepted = [];
|
|
8
|
+
for (const tab of tabs ?? []) {
|
|
9
|
+
if (!tab || typeof tab.id !== "string" || !tab.id || taken.has(tab.id)) continue;
|
|
10
|
+
taken.add(tab.id);
|
|
11
|
+
accepted.push(tab);
|
|
12
|
+
}
|
|
13
|
+
return accepted;
|
|
14
|
+
}
|
|
15
|
+
function ribbonAddInCommands(tab) {
|
|
16
|
+
const flatten = (commands) => commands.flatMap((command) => [command, ...flatten(command.items ?? [])]);
|
|
17
|
+
return flatten(tab.groups.flatMap((group) => group.commands));
|
|
18
|
+
}
|
|
19
|
+
function findRibbonAddInCommand(tab, id) {
|
|
20
|
+
if (id === void 0) return void 0;
|
|
21
|
+
const command = ribbonAddInCommands(tab).find((candidate) => candidate.id === id);
|
|
22
|
+
return command && !command.disabled ? command : void 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
exports.RIBBON_ADD_IN_EVENT = RIBBON_ADD_IN_EVENT;
|
|
26
|
+
exports.acceptedRibbonAddIns = acceptedRibbonAddIns;
|
|
27
|
+
exports.findRibbonAddInCommand = findRibbonAddInCommand;
|
|
28
|
+
exports.ribbonAddInCommands = ribbonAddInCommands;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ribbon/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// ribbon/add-in.ts
|
|
2
|
+
var RIBBON_ADD_IN_EVENT = "office-ribbon-add-in";
|
|
3
|
+
function acceptedRibbonAddIns(tabs, reserved = []) {
|
|
4
|
+
const taken = new Set(reserved);
|
|
5
|
+
const accepted = [];
|
|
6
|
+
for (const tab of tabs ?? []) {
|
|
7
|
+
if (!tab || typeof tab.id !== "string" || !tab.id || taken.has(tab.id)) continue;
|
|
8
|
+
taken.add(tab.id);
|
|
9
|
+
accepted.push(tab);
|
|
10
|
+
}
|
|
11
|
+
return accepted;
|
|
12
|
+
}
|
|
13
|
+
function ribbonAddInCommands(tab) {
|
|
14
|
+
const flatten = (commands) => commands.flatMap((command) => [command, ...flatten(command.items ?? [])]);
|
|
15
|
+
return flatten(tab.groups.flatMap((group) => group.commands));
|
|
16
|
+
}
|
|
17
|
+
function findRibbonAddInCommand(tab, id) {
|
|
18
|
+
if (id === void 0) return void 0;
|
|
19
|
+
const command = ribbonAddInCommands(tab).find((candidate) => candidate.id === id);
|
|
20
|
+
return command && !command.disabled ? command : void 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { RIBBON_ADD_IN_EVENT, acceptedRibbonAddIns, findRibbonAddInCommand, ribbonAddInCommands };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../teams/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../teams/files.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE3D,KAAK,QAAQ,GAAG,cAAc,GAAG,IAAI,CAAC;AACtC,UAAU,WAAW;IACpB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,SAAS,IAAI,OAAO,CAAC;IACrB,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;CAC1E;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,WAAW,GAClB,IAAI,CAAC,WAAW,EAAE,cAAc,GAAG,aAAa,GAAG,gBAAgB,CAAC,CAoGtE"}
|
package/dist/teams/index.cjs
CHANGED
|
@@ -18727,6 +18727,8 @@ function parseTable(xml, partName) {
|
|
|
18727
18727
|
const columns = xChildren(xFirst(root, "tableColumns") ?? root, "tableColumn").map(
|
|
18728
18728
|
(node) => {
|
|
18729
18729
|
const column = { name: att(node, "name") ?? "" };
|
|
18730
|
+
const id = numAttr(node, "id");
|
|
18731
|
+
if (id !== void 0 && Number.isInteger(id) && id >= 0) column.sourceId = id;
|
|
18730
18732
|
const fn = att(node, "totalsRowFunction");
|
|
18731
18733
|
if (fn && fn !== "none") column.totalsRowFunction = fn;
|
|
18732
18734
|
const label2 = att(node, "totalsRowLabel");
|
|
@@ -19090,7 +19092,22 @@ function tableFilterRange(table2) {
|
|
|
19090
19092
|
end: { ...table2.range.end, row: table2.range.end.row - (table2.totalsRow ? 1 : 0) }
|
|
19091
19093
|
};
|
|
19092
19094
|
}
|
|
19093
|
-
function
|
|
19095
|
+
function sourceColumnsForPatch(root, table2, names2) {
|
|
19096
|
+
const list = xKid(root, "tableColumns");
|
|
19097
|
+
const source2 = list ? xKids(list, "tableColumn") : [];
|
|
19098
|
+
const byId = new Map(source2.map((c2) => [Number(c2.getAttribute("id")), c2]));
|
|
19099
|
+
const byName = new Map(source2.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2]));
|
|
19100
|
+
const tracked = table2.partName !== void 0 || table2.columns.some((c2) => c2.sourceId !== void 0);
|
|
19101
|
+
const used = /* @__PURE__ */ new Set();
|
|
19102
|
+
return names2.map((name, index2) => {
|
|
19103
|
+
const id = table2.columns[index2]?.sourceId;
|
|
19104
|
+
const match2 = id !== void 0 ? byId.get(id) : tracked ? void 0 : source2.length === names2.length ? source2[index2] : byName.get(name.toLowerCase());
|
|
19105
|
+
if (!match2 || used.has(match2)) return void 0;
|
|
19106
|
+
used.add(match2);
|
|
19107
|
+
return match2;
|
|
19108
|
+
});
|
|
19109
|
+
}
|
|
19110
|
+
function patchAutoFilter(doc, root, table2, before, names2) {
|
|
19094
19111
|
const existing = xKid(root, "autoFilter");
|
|
19095
19112
|
if (!table2.headerRow) {
|
|
19096
19113
|
if (existing) root.removeChild(existing);
|
|
@@ -19099,10 +19116,14 @@ function patchAutoFilter(doc, root, table2, before) {
|
|
|
19099
19116
|
const filter2 = existing ?? doc.createElementNS(NS.x, "autoFilter");
|
|
19100
19117
|
const range = tableFilterRange(table2);
|
|
19101
19118
|
filter2.setAttribute("ref", formatRange(range));
|
|
19102
|
-
const
|
|
19119
|
+
const list = xKid(root, "tableColumns");
|
|
19120
|
+
const original = list ? xKids(list, "tableColumn") : [];
|
|
19121
|
+
const current = new Map(sourceColumnsForPatch(root, table2, names2).map((c2, index2) => [c2, index2]));
|
|
19103
19122
|
for (const column of xKids(filter2, "filterColumn")) {
|
|
19104
|
-
const
|
|
19105
|
-
|
|
19123
|
+
const old = original[Number(column.getAttribute("colId") ?? "0")];
|
|
19124
|
+
const index2 = old ? current.get(old) : void 0;
|
|
19125
|
+
if (index2 === void 0) filter2.removeChild(column);
|
|
19126
|
+
else column.setAttribute("colId", num(index2));
|
|
19106
19127
|
}
|
|
19107
19128
|
if (!existing) insertBefore(root, filter2, ["sortState", "tableColumns"]);
|
|
19108
19129
|
const sort2 = xKid(filter2, "sortState") ?? xKid(root, "sortState");
|
|
@@ -19135,18 +19156,11 @@ function patchColumns(doc, root, sheet, table2, names2) {
|
|
|
19135
19156
|
insertBefore(root, list, ["tableStyleInfo", "extLst"]);
|
|
19136
19157
|
}
|
|
19137
19158
|
const sourceColumns = xKids(list, "tableColumn");
|
|
19138
|
-
const byName = new Map(
|
|
19139
|
-
sourceColumns.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2])
|
|
19140
|
-
);
|
|
19141
|
-
const sameCount = sourceColumns.length === names2.length;
|
|
19142
|
-
const used = /* @__PURE__ */ new Set();
|
|
19143
19159
|
const ids = /* @__PURE__ */ new Set();
|
|
19144
|
-
const picked = names2.map((
|
|
19145
|
-
|
|
19146
|
-
if (!match2 || used.has(match2)) return void 0;
|
|
19147
|
-
used.add(match2);
|
|
19160
|
+
const picked = sourceColumnsForPatch(root, table2, names2).map((match2) => {
|
|
19161
|
+
if (!match2) return void 0;
|
|
19148
19162
|
const id = Number(match2.getAttribute("id"));
|
|
19149
|
-
if (Number.isInteger(id) && id
|
|
19163
|
+
if (Number.isInteger(id) && id >= 0 && !ids.has(id)) ids.add(id);
|
|
19150
19164
|
else match2.removeAttribute("id");
|
|
19151
19165
|
return match2;
|
|
19152
19166
|
});
|
|
@@ -19219,7 +19233,7 @@ function patchTableXml(sourceXml, sheet, table2, id, names2) {
|
|
|
19219
19233
|
root.removeAttribute("totalsRowCount");
|
|
19220
19234
|
if (!root.hasAttribute("totalsRowShown")) root.setAttribute("totalsRowShown", "0");
|
|
19221
19235
|
}
|
|
19222
|
-
patchAutoFilter(doc, root, table2, before);
|
|
19236
|
+
patchAutoFilter(doc, root, table2, before, names2);
|
|
19223
19237
|
patchColumns(doc, root, sheet, table2, names2);
|
|
19224
19238
|
patchStyleInfo(doc, root, table2);
|
|
19225
19239
|
return buildXml(doc);
|
package/dist/teams/index.mjs
CHANGED
|
@@ -18700,6 +18700,8 @@ function parseTable(xml, partName) {
|
|
|
18700
18700
|
const columns = xChildren(xFirst(root, "tableColumns") ?? root, "tableColumn").map(
|
|
18701
18701
|
(node) => {
|
|
18702
18702
|
const column = { name: att(node, "name") ?? "" };
|
|
18703
|
+
const id = numAttr(node, "id");
|
|
18704
|
+
if (id !== void 0 && Number.isInteger(id) && id >= 0) column.sourceId = id;
|
|
18703
18705
|
const fn = att(node, "totalsRowFunction");
|
|
18704
18706
|
if (fn && fn !== "none") column.totalsRowFunction = fn;
|
|
18705
18707
|
const label2 = att(node, "totalsRowLabel");
|
|
@@ -19063,7 +19065,22 @@ function tableFilterRange(table2) {
|
|
|
19063
19065
|
end: { ...table2.range.end, row: table2.range.end.row - (table2.totalsRow ? 1 : 0) }
|
|
19064
19066
|
};
|
|
19065
19067
|
}
|
|
19066
|
-
function
|
|
19068
|
+
function sourceColumnsForPatch(root, table2, names2) {
|
|
19069
|
+
const list = xKid(root, "tableColumns");
|
|
19070
|
+
const source2 = list ? xKids(list, "tableColumn") : [];
|
|
19071
|
+
const byId = new Map(source2.map((c2) => [Number(c2.getAttribute("id")), c2]));
|
|
19072
|
+
const byName = new Map(source2.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2]));
|
|
19073
|
+
const tracked = table2.partName !== void 0 || table2.columns.some((c2) => c2.sourceId !== void 0);
|
|
19074
|
+
const used = /* @__PURE__ */ new Set();
|
|
19075
|
+
return names2.map((name, index2) => {
|
|
19076
|
+
const id = table2.columns[index2]?.sourceId;
|
|
19077
|
+
const match2 = id !== void 0 ? byId.get(id) : tracked ? void 0 : source2.length === names2.length ? source2[index2] : byName.get(name.toLowerCase());
|
|
19078
|
+
if (!match2 || used.has(match2)) return void 0;
|
|
19079
|
+
used.add(match2);
|
|
19080
|
+
return match2;
|
|
19081
|
+
});
|
|
19082
|
+
}
|
|
19083
|
+
function patchAutoFilter(doc, root, table2, before, names2) {
|
|
19067
19084
|
const existing = xKid(root, "autoFilter");
|
|
19068
19085
|
if (!table2.headerRow) {
|
|
19069
19086
|
if (existing) root.removeChild(existing);
|
|
@@ -19072,10 +19089,14 @@ function patchAutoFilter(doc, root, table2, before) {
|
|
|
19072
19089
|
const filter2 = existing ?? doc.createElementNS(NS.x, "autoFilter");
|
|
19073
19090
|
const range = tableFilterRange(table2);
|
|
19074
19091
|
filter2.setAttribute("ref", formatRange(range));
|
|
19075
|
-
const
|
|
19092
|
+
const list = xKid(root, "tableColumns");
|
|
19093
|
+
const original = list ? xKids(list, "tableColumn") : [];
|
|
19094
|
+
const current = new Map(sourceColumnsForPatch(root, table2, names2).map((c2, index2) => [c2, index2]));
|
|
19076
19095
|
for (const column of xKids(filter2, "filterColumn")) {
|
|
19077
|
-
const
|
|
19078
|
-
|
|
19096
|
+
const old = original[Number(column.getAttribute("colId") ?? "0")];
|
|
19097
|
+
const index2 = old ? current.get(old) : void 0;
|
|
19098
|
+
if (index2 === void 0) filter2.removeChild(column);
|
|
19099
|
+
else column.setAttribute("colId", num(index2));
|
|
19079
19100
|
}
|
|
19080
19101
|
if (!existing) insertBefore(root, filter2, ["sortState", "tableColumns"]);
|
|
19081
19102
|
const sort2 = xKid(filter2, "sortState") ?? xKid(root, "sortState");
|
|
@@ -19108,18 +19129,11 @@ function patchColumns(doc, root, sheet, table2, names2) {
|
|
|
19108
19129
|
insertBefore(root, list, ["tableStyleInfo", "extLst"]);
|
|
19109
19130
|
}
|
|
19110
19131
|
const sourceColumns = xKids(list, "tableColumn");
|
|
19111
|
-
const byName = new Map(
|
|
19112
|
-
sourceColumns.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2])
|
|
19113
|
-
);
|
|
19114
|
-
const sameCount = sourceColumns.length === names2.length;
|
|
19115
|
-
const used = /* @__PURE__ */ new Set();
|
|
19116
19132
|
const ids = /* @__PURE__ */ new Set();
|
|
19117
|
-
const picked = names2.map((
|
|
19118
|
-
|
|
19119
|
-
if (!match2 || used.has(match2)) return void 0;
|
|
19120
|
-
used.add(match2);
|
|
19133
|
+
const picked = sourceColumnsForPatch(root, table2, names2).map((match2) => {
|
|
19134
|
+
if (!match2) return void 0;
|
|
19121
19135
|
const id = Number(match2.getAttribute("id"));
|
|
19122
|
-
if (Number.isInteger(id) && id
|
|
19136
|
+
if (Number.isInteger(id) && id >= 0 && !ids.has(id)) ids.add(id);
|
|
19123
19137
|
else match2.removeAttribute("id");
|
|
19124
19138
|
return match2;
|
|
19125
19139
|
});
|
|
@@ -19192,7 +19206,7 @@ function patchTableXml(sourceXml, sheet, table2, id, names2) {
|
|
|
19192
19206
|
root.removeAttribute("totalsRowCount");
|
|
19193
19207
|
if (!root.hasAttribute("totalsRowShown")) root.setAttribute("totalsRowShown", "0");
|
|
19194
19208
|
}
|
|
19195
|
-
patchAutoFilter(doc, root, table2, before);
|
|
19209
|
+
patchAutoFilter(doc, root, table2, before, names2);
|
|
19196
19210
|
patchColumns(doc, root, sheet, table2, names2);
|
|
19197
19211
|
patchStyleInfo(doc, root, table2);
|
|
19198
19212
|
return buildXml(doc);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Whether `family` has measured design advances (regular and bold upright faces). */
|
|
2
|
+
export declare const hasDesignAdvances: (family: string) => boolean;
|
|
3
|
+
/**
|
|
4
|
+
* The unhinted, unkerned width of `text` in em (multiply by the font size) from the font's own
|
|
5
|
+
* advance widths. `undefined` when the family was not measured or a character is outside
|
|
6
|
+
* printable ASCII: a caller that needs a width it can rely on must not get a guess.
|
|
7
|
+
*/
|
|
8
|
+
export declare function designTextWidthEm(text: string, family: string, bold?: boolean): number | undefined;
|
|
9
|
+
//# sourceMappingURL=advance-width.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advance-width.d.ts","sourceRoot":"","sources":["../../../text/font-metrics/advance-width.ts"],"names":[],"mappings":"AAiBA,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,WAAY,MAAM,KAAG,OAAoC,CAAC;AAExF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,GAAG,SAAS,CAUhG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unhinted glyph advances per 1000 em for printable ASCII (code points 32 to 126, in order),
|
|
3
|
+
* regular and bold, as Visio 16 measures them: `TEXTWIDTH` of a repeated character at 100 pt
|
|
4
|
+
* (`scripts/record-visio-glyph-advances.ps1`). They equal the font files' own advance widths
|
|
5
|
+
* (Calibri "P" is 1058/2048 em), so they suit any layout that does not hint or kern.
|
|
6
|
+
* GENERATED by `scripts/make-visio-advance-table.py`: do not edit by hand.
|
|
7
|
+
*/
|
|
8
|
+
export declare const DESIGN_ADVANCES: Readonly<Record<string, {
|
|
9
|
+
readonly regular: string;
|
|
10
|
+
readonly bold: string;
|
|
11
|
+
}>>;
|
|
12
|
+
//# sourceMappingURL=design-advances.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-advances.generated.d.ts","sourceRoot":"","sources":["../../../text/font-metrics/design-advances.generated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CACrC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA2BnE,CAAC"}
|
package/dist/text/index.cjs
CHANGED
|
@@ -314,15 +314,68 @@ function changeTextCaseRanges(text, mode, boundaries = []) {
|
|
|
314
314
|
return ranges;
|
|
315
315
|
}
|
|
316
316
|
|
|
317
|
+
// text/font-metrics/design-advances.generated.ts
|
|
318
|
+
var DESIGN_ADVANCES = {
|
|
319
|
+
arial: {
|
|
320
|
+
regular: "277.83 277.83 354.98 556.15 556.15 889.16 666.99 190.92 333.01 333.01 389.16 583.98 277.83 333.01 277.83 277.83 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 277.83 277.83 583.98 583.98 583.98 556.15 1015.14 666.99 666.99 722.17 722.17 666.99 610.84 777.83 722.17 277.83 500 666.99 556.15 833.01 722.17 777.83 666.99 777.83 722.17 666.99 610.84 722.17 666.99 943.85 666.99 666.99 610.84 277.83 277.83 277.83 469.24 556.15 333.01 556.15 556.15 500 556.15 556.15 277.83 556.15 556.15 222.17 222.17 500 222.17 833.01 556.15 556.15 556.15 556.15 333.01 500 277.83 556.15 500 722.17 500 500 500 333.98 259.77 333.98 583.98",
|
|
321
|
+
bold: "277.83 333.01 474.12 556.15 556.15 889.16 722.17 237.79 333.01 333.01 389.16 583.98 277.83 333.01 277.83 277.83 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 333.01 333.01 583.98 583.98 583.98 610.84 975.1 722.17 722.17 722.17 722.17 666.99 610.84 777.83 722.17 277.83 556.15 722.17 610.84 833.01 722.17 777.83 666.99 777.83 722.17 666.99 610.84 722.17 666.99 943.85 666.99 666.99 610.84 333.01 277.83 333.01 583.98 556.15 333.01 556.15 610.84 556.15 610.84 556.15 333.01 610.84 610.84 277.83 277.83 556.15 277.83 889.16 610.84 610.84 610.84 610.84 389.16 556.15 333.01 610.84 556.15 777.83 556.15 556.15 500 389.16 279.79 389.16 583.98"
|
|
322
|
+
},
|
|
323
|
+
calibri: {
|
|
324
|
+
regular: "226.07 325.68 400.88 498.05 506.83 714.85 682.13 220.7 303.22 303.22 498.05 498.05 249.51 306.15 252.44 386.23 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 267.58 267.58 498.05 498.05 498.05 463.38 894.04 578.61 543.95 533.2 615.23 488.28 459.47 630.86 623.05 251.95 318.85 519.53 420.41 854.98 645.51 662.11 516.6 672.85 542.97 459.47 487.3 641.6 567.38 889.65 519.04 487.3 468.26 306.64 386.23 306.64 498.05 498.05 291.02 479 525.39 422.85 525.39 497.56 305.18 470.7 525.39 229.49 239.26 454.59 229.49 798.83 525.39 527.34 525.39 525.39 348.63 391.11 334.96 525.39 451.66 714.85 433.11 452.64 395.02 314.45 460.45 314.45 498.05",
|
|
325
|
+
bold: "226.07 325.68 438.48 498.05 506.83 729 704.59 233.4 311.52 311.52 498.05 498.05 257.81 306.15 267.09 429.69 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 275.88 275.88 498.05 498.05 498.05 463.38 898.44 605.96 560.55 529.3 630.37 487.79 458.98 637.21 630.86 266.6 331.05 546.88 422.85 874.02 658.69 676.27 532.23 686.04 562.99 472.66 495.12 652.83 591.31 906.25 550.78 519.53 478.03 324.71 429.69 324.71 498.05 498.05 300.29 493.65 536.62 418.46 536.62 503.42 316.41 474.12 536.62 245.6 255.37 479.98 245.6 813.48 536.62 537.6 536.62 536.62 355.47 398.93 346.68 536.62 473.14 745.12 459.47 473.63 397.46 343.75 475.1 343.75 498.05"
|
|
326
|
+
},
|
|
327
|
+
"calibri light": {
|
|
328
|
+
regular: "226.07 325.68 380.37 498.05 506.83 707.03 669.92 213.87 298.83 298.83 498.05 498.05 244.63 306.15 244.63 362.3 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 262.69 262.69 498.05 498.05 498.05 463.38 891.6 563.48 535.16 535.16 606.93 488.77 459.96 627.44 619.14 244.14 312.5 504.4 418.94 844.73 638.18 654.3 507.81 666.02 532.23 452.64 483.4 635.74 554.2 880.86 501.46 469.24 463.38 296.88 362.3 296.88 498.05 498.05 286.13 470.7 519.53 425.29 519.53 494.14 298.83 468.75 519.53 220.7 229.98 440.92 220.7 791.02 519.53 521.49 519.53 519.53 344.73 386.72 328.61 519.53 439.94 698.73 418.46 440.92 393.56 298.83 452.64 298.83 498.05",
|
|
329
|
+
bold: "222.17 319.82 373.54 488.77 497.56 693.85 657.23 209.96 293.46 293.46 488.77 488.77 240.24 300.78 240.24 355.96 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 258.3 258.3 488.77 488.77 488.77 454.59 874.51 552.74 525.39 525.39 595.7 479.49 451.66 615.72 607.42 239.75 307.13 495.12 411.13 828.61 625.98 642.09 498.54 653.32 522.46 444.34 474.61 624.02 543.95 864.26 492.19 460.45 454.59 291.5 355.96 291.5 488.77 488.77 281.25 461.92 509.77 417.48 509.77 484.86 293.46 459.96 509.77 216.8 226.07 432.62 216.8 775.88 509.77 511.72 509.77 509.77 338.38 379.88 322.75 509.77 431.64 685.55 410.64 432.62 386.23 293.46 444.34 293.46 488.77"
|
|
330
|
+
},
|
|
331
|
+
"segoe ui": {
|
|
332
|
+
regular: "273.93 284.18 392.09 590.82 539.06 818.36 800.29 229.98 301.76 301.76 416.99 684.08 216.8 399.9 216.8 389.65 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 216.8 216.8 684.08 684.08 684.08 448.24 955.08 645.02 573.24 619.14 701.17 505.86 488.28 686.04 709.96 266.11 356.94 580.08 470.7 897.95 748.05 753.91 560.06 753.91 598.14 531.25 523.93 687.01 621.09 934.08 589.85 552.74 570.31 301.76 378.91 301.76 684.08 415.04 268.07 508.79 587.89 461.92 588.87 522.95 312.99 588.87 565.92 242.19 242.19 497.07 242.19 861.33 565.92 585.94 587.89 588.87 347.66 424.32 338.87 565.92 479 722.66 458.98 483.89 452.15 301.76 239.26 301.76 684.08",
|
|
333
|
+
bold: "275.88 327.15 493.17 592.29 575.2 867.19 849.61 292.97 369.14 369.14 455.08 707.03 271 404.3 271 443.36 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 271 271 707.03 707.03 707.03 437.99 954.1 703.12 641.11 624.02 737.31 532.23 520.02 710.94 766.11 316.89 445.31 648.93 511.23 957.03 790.04 758.3 614.26 758.3 652.83 560.55 585.94 723.14 666.99 1004.88 655.27 606.93 606.93 369.14 436.04 369.14 707.03 415.04 313.96 538.09 620.12 479.98 619.14 541.02 383.3 619.14 602.05 284.18 284.18 559.08 284.18 916.01 604.98 611.33 620.12 619.14 397.95 439.94 389.16 604.98 541.99 797.36 552.25 538.09 479 369.14 326.17 369.14 707.03"
|
|
334
|
+
},
|
|
335
|
+
"times new roman": {
|
|
336
|
+
regular: "250 333.01 408.2 500 500 833.01 777.83 180.18 333.01 333.01 500 563.96 250 333.01 250 277.83 500 500 500 500 500 500 500 500 500 500 277.83 277.83 563.96 563.96 563.96 443.85 920.9 722.17 666.99 666.99 722.17 610.84 556.15 722.17 722.17 333.01 389.16 722.17 610.84 889.16 722.17 722.17 556.15 722.17 666.99 556.15 610.84 722.17 722.17 943.85 722.17 722.17 610.84 333.01 277.83 333.01 469.24 500 333.01 443.85 500 443.85 500 443.85 333.01 500 500 277.83 277.83 500 277.83 777.83 500 500 500 500 333.01 389.16 277.83 500 500 722.17 500 500 443.85 479.98 200.2 479.98 541.02",
|
|
337
|
+
bold: "250 333.01 555.17 500 500 1000 833.01 277.83 333.01 333.01 500 569.83 250 333.01 250 277.83 500 500 500 500 500 500 500 500 500 500 333.01 333.01 569.83 569.83 569.83 500 930.18 722.17 666.99 722.17 722.17 666.99 610.84 777.83 777.83 389.16 500 777.83 666.99 943.85 722.17 777.83 610.84 777.83 722.17 556.15 666.99 722.17 722.17 1000 722.17 722.17 666.99 333.01 277.83 333.01 581.06 500 333.01 500 556.15 443.85 556.15 443.85 333.01 500 556.15 277.83 333.01 556.15 277.83 833.01 556.15 500 556.15 556.15 443.85 389.16 333.01 556.15 500 722.17 500 500 443.85 394.04 220.22 394.04 520.02"
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
// text/font-metrics/advance-width.ts
|
|
342
|
+
var FIRST = 32;
|
|
343
|
+
var decoded = /* @__PURE__ */ new Map();
|
|
344
|
+
function advances(family, bold) {
|
|
345
|
+
const name = family.trim().toLowerCase();
|
|
346
|
+
const key = `${name}|${bold ? "b" : "r"}`;
|
|
347
|
+
const known = decoded.get(key);
|
|
348
|
+
if (known) return known;
|
|
349
|
+
const table = Object.hasOwn(DESIGN_ADVANCES, name) ? DESIGN_ADVANCES[name] : void 0;
|
|
350
|
+
if (!table) return void 0;
|
|
351
|
+
const values = (bold ? table.bold : table.regular).split(" ").map(Number);
|
|
352
|
+
decoded.set(key, values);
|
|
353
|
+
return values;
|
|
354
|
+
}
|
|
355
|
+
var hasDesignAdvances = (family) => !!advances(family, false);
|
|
356
|
+
function designTextWidthEm(text, family, bold = false) {
|
|
357
|
+
const table = advances(family, bold);
|
|
358
|
+
if (!table) return void 0;
|
|
359
|
+
let units = 0;
|
|
360
|
+
for (let index = 0; index < text.length; ++index) {
|
|
361
|
+
const advance = table[text.charCodeAt(index) - FIRST];
|
|
362
|
+
if (advance === void 0 || Number.isNaN(advance)) return void 0;
|
|
363
|
+
units += advance;
|
|
364
|
+
}
|
|
365
|
+
return units / 1e3;
|
|
366
|
+
}
|
|
367
|
+
|
|
317
368
|
exports.TEXT_CASE_MODES = TEXT_CASE_MODES;
|
|
318
369
|
exports.buildLeaderString = buildLeaderString;
|
|
319
370
|
exports.changeTextCase = changeTextCase;
|
|
320
371
|
exports.changeTextCaseRanges = changeTextCaseRanges;
|
|
321
372
|
exports.decimalAnchorIndex = decimalAnchorIndex;
|
|
322
373
|
exports.decimalSeparatorForLanguage = decimalSeparatorForLanguage;
|
|
374
|
+
exports.designTextWidthEm = designTextWidthEm;
|
|
323
375
|
exports.detectFontScript = detectFontScript;
|
|
324
376
|
exports.getLeaderCharacter = getLeaderCharacter;
|
|
325
377
|
exports.getLeaderStyles = getLeaderStyles;
|
|
378
|
+
exports.hasDesignAdvances = hasDesignAdvances;
|
|
326
379
|
exports.hasDistinctScriptFonts = hasDistinctScriptFonts;
|
|
327
380
|
exports.resolveFontForScript = resolveFontForScript;
|
|
328
381
|
exports.segmentByScript = segmentByScript;
|
package/dist/text/index.d.ts
CHANGED
package/dist/text/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../text/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACd,MAAM,4BAA4B,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../text/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACd,MAAM,4BAA4B,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC"}
|
package/dist/text/index.mjs
CHANGED
|
@@ -312,4 +312,55 @@ function changeTextCaseRanges(text, mode, boundaries = []) {
|
|
|
312
312
|
return ranges;
|
|
313
313
|
}
|
|
314
314
|
|
|
315
|
-
|
|
315
|
+
// text/font-metrics/design-advances.generated.ts
|
|
316
|
+
var DESIGN_ADVANCES = {
|
|
317
|
+
arial: {
|
|
318
|
+
regular: "277.83 277.83 354.98 556.15 556.15 889.16 666.99 190.92 333.01 333.01 389.16 583.98 277.83 333.01 277.83 277.83 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 277.83 277.83 583.98 583.98 583.98 556.15 1015.14 666.99 666.99 722.17 722.17 666.99 610.84 777.83 722.17 277.83 500 666.99 556.15 833.01 722.17 777.83 666.99 777.83 722.17 666.99 610.84 722.17 666.99 943.85 666.99 666.99 610.84 277.83 277.83 277.83 469.24 556.15 333.01 556.15 556.15 500 556.15 556.15 277.83 556.15 556.15 222.17 222.17 500 222.17 833.01 556.15 556.15 556.15 556.15 333.01 500 277.83 556.15 500 722.17 500 500 500 333.98 259.77 333.98 583.98",
|
|
319
|
+
bold: "277.83 333.01 474.12 556.15 556.15 889.16 722.17 237.79 333.01 333.01 389.16 583.98 277.83 333.01 277.83 277.83 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 333.01 333.01 583.98 583.98 583.98 610.84 975.1 722.17 722.17 722.17 722.17 666.99 610.84 777.83 722.17 277.83 556.15 722.17 610.84 833.01 722.17 777.83 666.99 777.83 722.17 666.99 610.84 722.17 666.99 943.85 666.99 666.99 610.84 333.01 277.83 333.01 583.98 556.15 333.01 556.15 610.84 556.15 610.84 556.15 333.01 610.84 610.84 277.83 277.83 556.15 277.83 889.16 610.84 610.84 610.84 610.84 389.16 556.15 333.01 610.84 556.15 777.83 556.15 556.15 500 389.16 279.79 389.16 583.98"
|
|
320
|
+
},
|
|
321
|
+
calibri: {
|
|
322
|
+
regular: "226.07 325.68 400.88 498.05 506.83 714.85 682.13 220.7 303.22 303.22 498.05 498.05 249.51 306.15 252.44 386.23 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 267.58 267.58 498.05 498.05 498.05 463.38 894.04 578.61 543.95 533.2 615.23 488.28 459.47 630.86 623.05 251.95 318.85 519.53 420.41 854.98 645.51 662.11 516.6 672.85 542.97 459.47 487.3 641.6 567.38 889.65 519.04 487.3 468.26 306.64 386.23 306.64 498.05 498.05 291.02 479 525.39 422.85 525.39 497.56 305.18 470.7 525.39 229.49 239.26 454.59 229.49 798.83 525.39 527.34 525.39 525.39 348.63 391.11 334.96 525.39 451.66 714.85 433.11 452.64 395.02 314.45 460.45 314.45 498.05",
|
|
323
|
+
bold: "226.07 325.68 438.48 498.05 506.83 729 704.59 233.4 311.52 311.52 498.05 498.05 257.81 306.15 267.09 429.69 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 275.88 275.88 498.05 498.05 498.05 463.38 898.44 605.96 560.55 529.3 630.37 487.79 458.98 637.21 630.86 266.6 331.05 546.88 422.85 874.02 658.69 676.27 532.23 686.04 562.99 472.66 495.12 652.83 591.31 906.25 550.78 519.53 478.03 324.71 429.69 324.71 498.05 498.05 300.29 493.65 536.62 418.46 536.62 503.42 316.41 474.12 536.62 245.6 255.37 479.98 245.6 813.48 536.62 537.6 536.62 536.62 355.47 398.93 346.68 536.62 473.14 745.12 459.47 473.63 397.46 343.75 475.1 343.75 498.05"
|
|
324
|
+
},
|
|
325
|
+
"calibri light": {
|
|
326
|
+
regular: "226.07 325.68 380.37 498.05 506.83 707.03 669.92 213.87 298.83 298.83 498.05 498.05 244.63 306.15 244.63 362.3 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 262.69 262.69 498.05 498.05 498.05 463.38 891.6 563.48 535.16 535.16 606.93 488.77 459.96 627.44 619.14 244.14 312.5 504.4 418.94 844.73 638.18 654.3 507.81 666.02 532.23 452.64 483.4 635.74 554.2 880.86 501.46 469.24 463.38 296.88 362.3 296.88 498.05 498.05 286.13 470.7 519.53 425.29 519.53 494.14 298.83 468.75 519.53 220.7 229.98 440.92 220.7 791.02 519.53 521.49 519.53 519.53 344.73 386.72 328.61 519.53 439.94 698.73 418.46 440.92 393.56 298.83 452.64 298.83 498.05",
|
|
327
|
+
bold: "222.17 319.82 373.54 488.77 497.56 693.85 657.23 209.96 293.46 293.46 488.77 488.77 240.24 300.78 240.24 355.96 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 258.3 258.3 488.77 488.77 488.77 454.59 874.51 552.74 525.39 525.39 595.7 479.49 451.66 615.72 607.42 239.75 307.13 495.12 411.13 828.61 625.98 642.09 498.54 653.32 522.46 444.34 474.61 624.02 543.95 864.26 492.19 460.45 454.59 291.5 355.96 291.5 488.77 488.77 281.25 461.92 509.77 417.48 509.77 484.86 293.46 459.96 509.77 216.8 226.07 432.62 216.8 775.88 509.77 511.72 509.77 509.77 338.38 379.88 322.75 509.77 431.64 685.55 410.64 432.62 386.23 293.46 444.34 293.46 488.77"
|
|
328
|
+
},
|
|
329
|
+
"segoe ui": {
|
|
330
|
+
regular: "273.93 284.18 392.09 590.82 539.06 818.36 800.29 229.98 301.76 301.76 416.99 684.08 216.8 399.9 216.8 389.65 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 216.8 216.8 684.08 684.08 684.08 448.24 955.08 645.02 573.24 619.14 701.17 505.86 488.28 686.04 709.96 266.11 356.94 580.08 470.7 897.95 748.05 753.91 560.06 753.91 598.14 531.25 523.93 687.01 621.09 934.08 589.85 552.74 570.31 301.76 378.91 301.76 684.08 415.04 268.07 508.79 587.89 461.92 588.87 522.95 312.99 588.87 565.92 242.19 242.19 497.07 242.19 861.33 565.92 585.94 587.89 588.87 347.66 424.32 338.87 565.92 479 722.66 458.98 483.89 452.15 301.76 239.26 301.76 684.08",
|
|
331
|
+
bold: "275.88 327.15 493.17 592.29 575.2 867.19 849.61 292.97 369.14 369.14 455.08 707.03 271 404.3 271 443.36 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 271 271 707.03 707.03 707.03 437.99 954.1 703.12 641.11 624.02 737.31 532.23 520.02 710.94 766.11 316.89 445.31 648.93 511.23 957.03 790.04 758.3 614.26 758.3 652.83 560.55 585.94 723.14 666.99 1004.88 655.27 606.93 606.93 369.14 436.04 369.14 707.03 415.04 313.96 538.09 620.12 479.98 619.14 541.02 383.3 619.14 602.05 284.18 284.18 559.08 284.18 916.01 604.98 611.33 620.12 619.14 397.95 439.94 389.16 604.98 541.99 797.36 552.25 538.09 479 369.14 326.17 369.14 707.03"
|
|
332
|
+
},
|
|
333
|
+
"times new roman": {
|
|
334
|
+
regular: "250 333.01 408.2 500 500 833.01 777.83 180.18 333.01 333.01 500 563.96 250 333.01 250 277.83 500 500 500 500 500 500 500 500 500 500 277.83 277.83 563.96 563.96 563.96 443.85 920.9 722.17 666.99 666.99 722.17 610.84 556.15 722.17 722.17 333.01 389.16 722.17 610.84 889.16 722.17 722.17 556.15 722.17 666.99 556.15 610.84 722.17 722.17 943.85 722.17 722.17 610.84 333.01 277.83 333.01 469.24 500 333.01 443.85 500 443.85 500 443.85 333.01 500 500 277.83 277.83 500 277.83 777.83 500 500 500 500 333.01 389.16 277.83 500 500 722.17 500 500 443.85 479.98 200.2 479.98 541.02",
|
|
335
|
+
bold: "250 333.01 555.17 500 500 1000 833.01 277.83 333.01 333.01 500 569.83 250 333.01 250 277.83 500 500 500 500 500 500 500 500 500 500 333.01 333.01 569.83 569.83 569.83 500 930.18 722.17 666.99 722.17 722.17 666.99 610.84 777.83 777.83 389.16 500 777.83 666.99 943.85 722.17 777.83 610.84 777.83 722.17 556.15 666.99 722.17 722.17 1000 722.17 722.17 666.99 333.01 277.83 333.01 581.06 500 333.01 500 556.15 443.85 556.15 443.85 333.01 500 556.15 277.83 333.01 556.15 277.83 833.01 556.15 500 556.15 556.15 443.85 389.16 333.01 556.15 500 722.17 500 500 443.85 394.04 220.22 394.04 520.02"
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
// text/font-metrics/advance-width.ts
|
|
340
|
+
var FIRST = 32;
|
|
341
|
+
var decoded = /* @__PURE__ */ new Map();
|
|
342
|
+
function advances(family, bold) {
|
|
343
|
+
const name = family.trim().toLowerCase();
|
|
344
|
+
const key = `${name}|${bold ? "b" : "r"}`;
|
|
345
|
+
const known = decoded.get(key);
|
|
346
|
+
if (known) return known;
|
|
347
|
+
const table = Object.hasOwn(DESIGN_ADVANCES, name) ? DESIGN_ADVANCES[name] : void 0;
|
|
348
|
+
if (!table) return void 0;
|
|
349
|
+
const values = (bold ? table.bold : table.regular).split(" ").map(Number);
|
|
350
|
+
decoded.set(key, values);
|
|
351
|
+
return values;
|
|
352
|
+
}
|
|
353
|
+
var hasDesignAdvances = (family) => !!advances(family, false);
|
|
354
|
+
function designTextWidthEm(text, family, bold = false) {
|
|
355
|
+
const table = advances(family, bold);
|
|
356
|
+
if (!table) return void 0;
|
|
357
|
+
let units = 0;
|
|
358
|
+
for (let index = 0; index < text.length; ++index) {
|
|
359
|
+
const advance = table[text.charCodeAt(index) - FIRST];
|
|
360
|
+
if (advance === void 0 || Number.isNaN(advance)) return void 0;
|
|
361
|
+
units += advance;
|
|
362
|
+
}
|
|
363
|
+
return units / 1e3;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
export { TEXT_CASE_MODES, buildLeaderString, changeTextCase, changeTextCaseRanges, decimalAnchorIndex, decimalSeparatorForLanguage, designTextWidthEm, detectFontScript, getLeaderCharacter, getLeaderStyles, hasDesignAdvances, hasDistinctScriptFonts, resolveFontForScript, segmentByScript, wrapStyledRuns };
|
|
@@ -15,6 +15,14 @@ export interface VisioClipboardSnapshot {
|
|
|
15
15
|
xml: string;
|
|
16
16
|
}[];
|
|
17
17
|
pageContext: string;
|
|
18
|
+
/**
|
|
19
|
+
* The masters captured stencil shapes are instances of: the master ID in the source drawing and
|
|
20
|
+
* what identifies the master itself. A paste needs the same master under the same ID.
|
|
21
|
+
*/
|
|
22
|
+
masters?: readonly {
|
|
23
|
+
id: string;
|
|
24
|
+
identity: string;
|
|
25
|
+
}[];
|
|
18
26
|
}
|
|
19
27
|
export declare const VISIO_CLIPBOARD_MAGIC = "OOXML-VISIO-SHAPES/1\n";
|
|
20
28
|
export declare const VISIO_CLIPBOARD_MAX_CHARS: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard-types.d.ts","sourceRoot":"","sources":["../../visio/clipboard-types.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,MAAM,EAAE,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,SAAS,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"clipboard-types.d.ts","sourceRoot":"","sources":["../../visio/clipboard-types.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,MAAM,EAAE,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,SAAS,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtD;AACD,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAC9D,eAAO,MAAM,yBAAyB,QAAkB,CAAC;AACzD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIlD;AACD,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB,CAgF5F;AACD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAK7E;AACD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAe9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard-xml.d.ts","sourceRoot":"","sources":["../../visio/clipboard-xml.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"clipboard-xml.d.ts","sourceRoot":"","sources":["../../visio/clipboard-xml.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,8FAA8F;AAC9F,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,MAAM,IAAI,GACf,IAAI,CAcN;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,OAAO,CAKpE;AACD,yFAAyF;AACzF,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,EACxB,KAAK,EAAE,MAAM,IAAI,GACf,IAAI,CAyBN;AACD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,OAAO,CAmC/F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../visio/clipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../visio/clipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAqB9C,OAAO,EAIN,KAAK,sBAAsB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,wFAAwF;AACxF,wBAAsB,qBAAqB,CAC1C,KAAK,EAAE,UAAU,GAAG,WAAW,EAC/B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,GAAE,eAAoB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAkFjC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { VisioRouteBox, VisioRoutePoint } from './connector-route.js';
|
|
2
|
+
/**
|
|
3
|
+
* Clearance kept around a shape: 3/16 inch, the distance Visio's own router was recorded passing
|
|
4
|
+
* a placeable shape at. It must stay below the stub a route leaves a glued shape with.
|
|
5
|
+
*/
|
|
6
|
+
export declare const VISIO_ROUTE_CLEARANCE = 0.1875;
|
|
7
|
+
/** The search is quadratic in obstacles; the nearest ones decide the route. */
|
|
8
|
+
export declare const VISIO_ROUTE_OBSTACLE_LIMIT = 24;
|
|
9
|
+
/** Whether the axis-aligned segment `p`-`q` passes through the inside of `box`. */
|
|
10
|
+
export declare function segmentCrossesBox(p: VisioRoutePoint, q: VisioRoutePoint, box: VisioRouteBox): boolean;
|
|
11
|
+
/** How many obstacle boxes a polyline passes through. */
|
|
12
|
+
export declare function routeCrossings(path: readonly VisioRoutePoint[], boxes: readonly VisioRouteBox[]): number;
|
|
13
|
+
/**
|
|
14
|
+
* The obstacles worth routing around: boxes with an area, near the two ends, that neither end
|
|
15
|
+
* sits in (a container holding an end is routed through, as in Visio), nearest first and capped.
|
|
16
|
+
*/
|
|
17
|
+
export declare function relevantObstacles(from: VisioRoutePoint, to: VisioRoutePoint, boxes: readonly VisioRouteBox[]): VisioRouteBox[];
|
|
18
|
+
/**
|
|
19
|
+
* A right-angle path from `from` to `to` around `boxes`, found by the shared orthogonal router
|
|
20
|
+
* (`geometry/connector-router`, the one PowerPoint uses). Undefined when the router finds no
|
|
21
|
+
* axis-aligned path, so the caller keeps its own route.
|
|
22
|
+
*/
|
|
23
|
+
export declare function routeAroundBoxes(from: VisioRoutePoint, to: VisioRoutePoint, boxes: readonly VisioRouteBox[]): VisioRoutePoint[] | undefined;
|
|
24
|
+
//# sourceMappingURL=connector-route-avoid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-route-avoid.d.ts","sourceRoot":"","sources":["../../visio/connector-route-avoid.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOxE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAK5C,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAG7C,mFAAmF;AACnF,wBAAgB,iBAAiB,CAChC,CAAC,EAAE,eAAe,EAClB,CAAC,EAAE,eAAe,EAClB,GAAG,EAAE,aAAa,GAChB,OAAO,CAMT;AAED,yDAAyD;AACzD,wBAAgB,cAAc,CAC7B,IAAI,EAAE,SAAS,eAAe,EAAE,EAChC,KAAK,EAAE,SAAS,aAAa,EAAE,GAC7B,MAAM,CAMR;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,EACnB,KAAK,EAAE,SAAS,aAAa,EAAE,GAC7B,aAAa,EAAE,CA2BjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,EACnB,KAAK,EAAE,SAAS,aAAa,EAAE,GAC7B,eAAe,EAAE,GAAG,SAAS,CAqD/B"}
|