ooxml-core 0.19.0 → 0.20.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/automation/index.cjs +195 -193
- package/dist/automation/index.mjs +195 -193
- package/dist/diagram/index.cjs +2 -1
- package/dist/diagram/index.mjs +2 -1
- package/dist/docx/attr-units.d.ts +11 -0
- package/dist/docx/attr-units.d.ts.map +1 -0
- package/dist/docx/block-parser.d.ts.map +1 -1
- package/dist/docx/case-transform.d.ts +9 -0
- package/dist/docx/case-transform.d.ts.map +1 -0
- package/dist/docx/embedded.cjs +2 -1
- package/dist/docx/embedded.mjs +2 -1
- package/dist/docx/index.cjs +289 -3
- package/dist/docx/index.d.ts +5 -0
- package/dist/docx/index.d.ts.map +1 -1
- package/dist/docx/index.mjs +269 -4
- package/dist/docx/layout/adapter.d.ts.map +1 -1
- package/dist/docx/layout/table-layout.d.ts.map +1 -1
- package/dist/docx/load/index.cjs +2 -1
- package/dist/docx/load/index.mjs +2 -1
- package/dist/docx/page-setup-model.d.ts +29 -0
- package/dist/docx/page-setup-model.d.ts.map +1 -0
- package/dist/docx/page-size.d.ts +11 -0
- package/dist/docx/page-size.d.ts.map +1 -0
- package/dist/docx/parse.d.ts.map +1 -1
- package/dist/docx/section-edit.d.ts +19 -0
- package/dist/docx/section-edit.d.ts.map +1 -0
- package/dist/docx/tab-stops.d.ts.map +1 -1
- package/dist/docx/ui/backstage-focus.d.ts +6 -0
- package/dist/docx/ui/backstage-focus.d.ts.map +1 -0
- package/dist/docx/ui/break-note-schema.d.ts +11 -0
- package/dist/docx/ui/break-note-schema.d.ts.map +1 -0
- package/dist/docx/ui/collaboration-authority.d.ts +31 -0
- package/dist/docx/ui/collaboration-authority.d.ts.map +1 -0
- package/dist/docx/ui/collaboration-identity.d.ts +8 -0
- package/dist/docx/ui/collaboration-identity.d.ts.map +1 -0
- package/dist/docx/ui/collaboration-protocol.d.ts +25 -0
- package/dist/docx/ui/collaboration-protocol.d.ts.map +1 -0
- package/dist/docx/ui/collaboration.d.ts +30 -0
- package/dist/docx/ui/collaboration.d.ts.map +1 -0
- package/dist/docx/ui/defined.d.ts +3 -0
- package/dist/docx/ui/defined.d.ts.map +1 -0
- package/dist/docx/ui/dirty-state.d.ts +9 -0
- package/dist/docx/ui/dirty-state.d.ts.map +1 -0
- package/dist/docx/ui/field-guard.d.ts +21 -0
- package/dist/docx/ui/field-guard.d.ts.map +1 -0
- package/dist/docx/ui/header-footer-history.d.ts +15 -0
- package/dist/docx/ui/header-footer-history.d.ts.map +1 -0
- package/dist/docx/ui/index.cjs +2380 -0
- package/dist/docx/ui/index.d.ts +30 -0
- package/dist/docx/ui/index.d.ts.map +1 -0
- package/dist/docx/ui/index.mjs +2317 -0
- package/dist/docx/ui/inline-content-schema.d.ts +15 -0
- package/dist/docx/ui/inline-content-schema.d.ts.map +1 -0
- package/dist/docx/ui/ligature-style.d.ts +4 -0
- package/dist/docx/ui/ligature-style.d.ts.map +1 -0
- package/dist/docx/ui/node-numbering.d.ts +8 -0
- package/dist/docx/ui/node-numbering.d.ts.map +1 -0
- package/dist/docx/ui/review-schema.d.ts +90 -0
- package/dist/docx/ui/review-schema.d.ts.map +1 -0
- package/dist/docx/ui/ribbon-action-ids.d.ts +26 -0
- package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -0
- package/dist/docx/ui/ribbon-colors.d.ts +3 -0
- package/dist/docx/ui/ribbon-colors.d.ts.map +1 -0
- package/dist/docx/ui/ribbon-legacy-labels.d.ts +6 -0
- package/dist/docx/ui/ribbon-legacy-labels.d.ts.map +1 -0
- package/dist/docx/ui/run-compare.d.ts +5 -0
- package/dist/docx/ui/run-compare.d.ts.map +1 -0
- package/dist/docx/ui/run-extra-mark.d.ts +17 -0
- package/dist/docx/ui/run-extra-mark.d.ts.map +1 -0
- package/dist/docx/ui/schema-marks.d.ts +273 -0
- package/dist/docx/ui/schema-marks.d.ts.map +1 -0
- package/dist/docx/ui/smartart-theme.d.ts +21 -0
- package/dist/docx/ui/smartart-theme.d.ts.map +1 -0
- package/dist/docx/ui/table-render.d.ts +24 -0
- package/dist/docx/ui/table-render.d.ts.map +1 -0
- package/dist/docx/ui/table-visuals.d.ts +3 -0
- package/dist/docx/ui/table-visuals.d.ts.map +1 -0
- package/dist/docx/ui/theme/css-vars.d.ts +6 -0
- package/dist/docx/ui/theme/css-vars.d.ts.map +1 -0
- package/dist/docx/ui/theme/defaults.d.ts +12 -0
- package/dist/docx/ui/theme/defaults.d.ts.map +1 -0
- package/dist/docx/ui/theme/element.d.ts +9 -0
- package/dist/docx/ui/theme/element.d.ts.map +1 -0
- package/dist/docx/ui/theme/index.d.ts +5 -0
- package/dist/docx/ui/theme/index.d.ts.map +1 -0
- package/dist/docx/ui/theme/types.d.ts +42 -0
- package/dist/docx/ui/theme/types.d.ts.map +1 -0
- package/dist/docx/ui/word-count.d.ts +3 -0
- package/dist/docx/ui/word-count.d.ts.map +1 -0
- package/dist/docx/ui/zoom-fit.d.ts +16 -0
- package/dist/docx/ui/zoom-fit.d.ts.map +1 -0
- package/dist/docx/validate-paragraph.d.ts.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.mjs +2 -1
- package/dist/math/index.cjs +2 -1
- package/dist/math/index.mjs +2 -1
- package/dist/opc/index.cjs +2 -1
- package/dist/opc/index.mjs +2 -1
- package/dist/visio/index.cjs +2 -1
- package/dist/visio/index.mjs +2 -1
- package/dist/visio/ui/contract.d.ts +33 -0
- package/dist/visio/ui/contract.d.ts.map +1 -0
- package/dist/visio/ui/demo-document.d.ts +4 -0
- package/dist/visio/ui/demo-document.d.ts.map +1 -0
- package/dist/visio/ui/diagnostics.d.ts +10 -0
- package/dist/visio/ui/diagnostics.d.ts.map +1 -0
- package/dist/visio/ui/document-history.d.ts +43 -0
- package/dist/visio/ui/document-history.d.ts.map +1 -0
- package/dist/visio/ui/document-text-search.d.ts +45 -0
- package/dist/visio/ui/document-text-search.d.ts.map +1 -0
- package/dist/visio/ui/edit-commands.d.ts +4 -0
- package/dist/visio/ui/edit-commands.d.ts.map +1 -0
- package/dist/visio/ui/edit-error.d.ts +5 -0
- package/dist/visio/ui/edit-error.d.ts.map +1 -0
- package/dist/visio/ui/foreign-vector-budget.d.ts +25 -0
- package/dist/visio/ui/foreign-vector-budget.d.ts.map +1 -0
- package/dist/visio/ui/index.cjs +1523 -0
- package/dist/visio/ui/index.d.ts +12 -0
- package/dist/visio/ui/index.d.ts.map +1 -0
- package/dist/visio/ui/index.mjs +1498 -0
- package/dist/visio/ui/scene-details.d.ts +8 -0
- package/dist/visio/ui/scene-details.d.ts.map +1 -0
- package/dist/visio/ui/scene-validation.d.ts +5 -0
- package/dist/visio/ui/scene-validation.d.ts.map +1 -0
- package/dist/visio/ui/snapshot-scene.d.ts +9 -0
- package/dist/visio/ui/snapshot-scene.d.ts.map +1 -0
- package/dist/xlsx/index.cjs +100 -98
- package/dist/xlsx/index.mjs +100 -98
- package/dist/xlsx/load/index.cjs +68 -66
- package/dist/xlsx/load/index.mjs +68 -66
- package/dist/xlsx/ui/backstage/templates.d.ts +16 -0
- package/dist/xlsx/ui/backstage/templates.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/alignment.d.ts +4 -0
- package/dist/xlsx/ui/commands/alignment.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/cells.d.ts +3 -0
- package/dist/xlsx/ui/commands/cells.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/cf-presets.d.ts +15 -0
- package/dist/xlsx/ui/commands/cf-presets.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/clipboard.d.ts +22 -0
- package/dist/xlsx/ui/commands/clipboard.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/contextual.d.ts +13 -0
- package/dist/xlsx/ui/commands/contextual.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/data.d.ts +3 -0
- package/dist/xlsx/ui/commands/data.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/editing.d.ts +13 -0
- package/dist/xlsx/ui/commands/editing.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/font.d.ts +21 -0
- package/dist/xlsx/ui/commands/font.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/formulas.d.ts +15 -0
- package/dist/xlsx/ui/commands/formulas.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/core-features.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/core-features.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/format-cells.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/format-cells.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/index.d.ts +4 -0
- package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/messages.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/messages.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/navigation.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/ribbon-home.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/ribbon-home.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/rules.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/rules.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/tools.d.ts +3 -0
- package/dist/xlsx/ui/commands/i18n/tools.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/i18n/types.d.ts +5 -0
- package/dist/xlsx/ui/commands/i18n/types.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/icons.d.ts +4 -0
- package/dist/xlsx/ui/commands/icons.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/number.d.ts +11 -0
- package/dist/xlsx/ui/commands/number.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/page-layout.d.ts +10 -0
- package/dist/xlsx/ui/commands/page-layout.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/select-special.d.ts +12 -0
- package/dist/xlsx/ui/commands/select-special.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/sort-filter.d.ts +3 -0
- package/dist/xlsx/ui/commands/sort-filter.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/style-presets.d.ts +21 -0
- package/dist/xlsx/ui/commands/style-presets.d.ts.map +1 -0
- package/dist/xlsx/ui/commands/util.d.ts +59 -0
- package/dist/xlsx/ui/commands/util.d.ts.map +1 -0
- package/dist/xlsx/ui/commands.d.ts +36 -0
- package/dist/xlsx/ui/commands.d.ts.map +1 -0
- package/dist/xlsx/ui/context-menu/items.d.ts +36 -0
- package/dist/xlsx/ui/context-menu/items.d.ts.map +1 -0
- package/dist/xlsx/ui/context.d.ts +65 -0
- package/dist/xlsx/ui/context.d.ts.map +1 -0
- package/dist/xlsx/ui/dialogs/format-cells/number-categories.d.ts +28 -0
- package/dist/xlsx/ui/dialogs/format-cells/number-categories.d.ts.map +1 -0
- package/dist/xlsx/ui/dialogs/format-cells/types.d.ts +40 -0
- package/dist/xlsx/ui/dialogs/format-cells/types.d.ts.map +1 -0
- package/dist/xlsx/ui/dialogs/insert-chart-model.d.ts +9 -0
- package/dist/xlsx/ui/dialogs/insert-chart-model.d.ts.map +1 -0
- package/dist/xlsx/ui/dialogs.d.ts +9 -0
- package/dist/xlsx/ui/dialogs.d.ts.map +1 -0
- package/dist/xlsx/ui/dirty-state.d.ts +9 -0
- package/dist/xlsx/ui/dirty-state.d.ts.map +1 -0
- package/dist/xlsx/ui/formula-bar/name-resolve.d.ts +23 -0
- package/dist/xlsx/ui/formula-bar/name-resolve.d.ts.map +1 -0
- package/dist/xlsx/ui/grid/cell-items.d.ts +42 -0
- package/dist/xlsx/ui/grid/cell-items.d.ts.map +1 -0
- package/dist/xlsx/ui/grid/cell-paint.d.ts +26 -0
- package/dist/xlsx/ui/grid/cell-paint.d.ts.map +1 -0
- package/dist/xlsx/ui/grid/edit-bridge.d.ts +47 -0
- package/dist/xlsx/ui/grid/edit-bridge.d.ts.map +1 -0
- package/dist/xlsx/ui/grid/geometry.d.ts +76 -0
- package/dist/xlsx/ui/grid/geometry.d.ts.map +1 -0
- package/dist/xlsx/ui/grid/icon-sets.d.ts +3 -0
- package/dist/xlsx/ui/grid/icon-sets.d.ts.map +1 -0
- package/dist/xlsx/ui/grid/number-fit.d.ts +3 -0
- package/dist/xlsx/ui/grid/number-fit.d.ts.map +1 -0
- package/dist/xlsx/ui/grid/selection-ops.d.ts +32 -0
- package/dist/xlsx/ui/grid/selection-ops.d.ts.map +1 -0
- package/dist/xlsx/ui/grid/view-cache.d.ts +15 -0
- package/dist/xlsx/ui/grid/view-cache.d.ts.map +1 -0
- package/dist/xlsx/ui/index.cjs +28484 -0
- package/dist/xlsx/ui/index.d.ts +56 -0
- package/dist/xlsx/ui/index.d.ts.map +1 -0
- package/dist/xlsx/ui/index.mjs +28290 -0
- package/dist/xlsx/ui/locales/de/commands.d.ts +2 -0
- package/dist/xlsx/ui/locales/de/commands.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/de/grid.d.ts +2 -0
- package/dist/xlsx/ui/locales/de/grid.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/de/index.d.ts +2 -0
- package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/de/shell.d.ts +2 -0
- package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/en/commands.d.ts +2 -0
- package/dist/xlsx/ui/locales/en/commands.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/en/grid.d.ts +2 -0
- package/dist/xlsx/ui/locales/en/grid.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/en/index.d.ts +2 -0
- package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/en/shell.d.ts +2 -0
- package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/es/commands.d.ts +2 -0
- package/dist/xlsx/ui/locales/es/commands.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/es/grid.d.ts +2 -0
- package/dist/xlsx/ui/locales/es/grid.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/es/index.d.ts +2 -0
- package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/es/shell.d.ts +2 -0
- package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/fr/commands.d.ts +2 -0
- package/dist/xlsx/ui/locales/fr/commands.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/fr/grid.d.ts +2 -0
- package/dist/xlsx/ui/locales/fr/grid.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/fr/index.d.ts +2 -0
- package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/fr/shell.d.ts +2 -0
- package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/merge.d.ts +7 -0
- package/dist/xlsx/ui/locales/merge.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/zh-CN/commands.d.ts +2 -0
- package/dist/xlsx/ui/locales/zh-CN/commands.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/zh-CN/grid.d.ts +2 -0
- package/dist/xlsx/ui/locales/zh-CN/grid.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/zh-CN/index.d.ts +2 -0
- package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -0
- package/dist/xlsx/ui/locales/zh-CN/shell.d.ts +2 -0
- package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -0
- package/dist/xlsx/ui/localization.d.ts +23 -0
- package/dist/xlsx/ui/localization.d.ts.map +1 -0
- package/dist/xlsx/ui/ribbon/icon-paths.d.ts +9 -0
- package/dist/xlsx/ui/ribbon/icon-paths.d.ts.map +1 -0
- package/dist/xlsx/ui/ribbon/parts.d.ts +88 -0
- package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -0
- package/dist/xlsx/ui/ribbon/tab-api.d.ts +21 -0
- package/dist/xlsx/ui/ribbon/tab-api.d.ts.map +1 -0
- package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts +5 -0
- package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts.map +1 -0
- package/dist/xlsx/ui/ribbon/tabs/theme-palette.d.ts +8 -0
- package/dist/xlsx/ui/ribbon/tabs/theme-palette.d.ts.map +1 -0
- package/dist/xlsx/ui/ribbon/tell-me.d.ts +16 -0
- package/dist/xlsx/ui/ribbon/tell-me.d.ts.map +1 -0
- package/dist/xlsx/ui/selection.d.ts +34 -0
- package/dist/xlsx/ui/selection.d.ts.map +1 -0
- package/dist/xlsx/ui/theme/css-vars.d.ts +6 -0
- package/dist/xlsx/ui/theme/css-vars.d.ts.map +1 -0
- package/dist/xlsx/ui/theme/defaults.d.ts +6 -0
- package/dist/xlsx/ui/theme/defaults.d.ts.map +1 -0
- package/dist/xlsx/ui/theme/element.d.ts +9 -0
- package/dist/xlsx/ui/theme/element.d.ts.map +1 -0
- package/dist/xlsx/ui/theme/types.d.ts +54 -0
- package/dist/xlsx/ui/theme/types.d.ts.map +1 -0
- package/dist/xml/index.cjs +2 -1
- package/dist/xml/index.mjs +2 -1
- package/package.json +30 -3
package/dist/docx/index.mjs
CHANGED
|
@@ -31,7 +31,8 @@ function parseXml(xml, options = {}) {
|
|
|
31
31
|
}).parseFromString(xml, "application/xml");
|
|
32
32
|
} catch (error) {
|
|
33
33
|
throw new Error(
|
|
34
|
-
`Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}
|
|
34
|
+
`Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
|
|
35
|
+
{ cause: error }
|
|
35
36
|
);
|
|
36
37
|
}
|
|
37
38
|
if (parseError || !parsed.documentElement)
|
|
@@ -509,7 +510,7 @@ var twipsFromPoints = (points) => roundTwips(points * 20);
|
|
|
509
510
|
var signedTwipsFromPoints = (points) => roundSignedTwips(points * 20);
|
|
510
511
|
var twipsFromPixels = (pixels) => roundTwips(pixels * 15);
|
|
511
512
|
var signedTwipsFromPixels = (pixels) => roundSignedTwips(pixels * 15);
|
|
512
|
-
var twipsFromInches = (
|
|
513
|
+
var twipsFromInches = (inches2) => roundTwips(inches2 * 1440);
|
|
513
514
|
var halfPointsFromPoints = (points) => roundHalfPoints(points * 2);
|
|
514
515
|
var eighthPointsFromPoints = (points) => roundEighthPoints(points * 8);
|
|
515
516
|
var emuFromPixels = (pixels) => roundEmu(pixels * 9525);
|
|
@@ -3667,7 +3668,7 @@ var add = (parent, ...items) => {
|
|
|
3667
3668
|
for (const item of items) parent.appendChild(item);
|
|
3668
3669
|
return parent;
|
|
3669
3670
|
};
|
|
3670
|
-
var emu2 = (
|
|
3671
|
+
var emu2 = (px3) => String(Math.max(1, Math.round(px3 * EMU_PER_PIXEL)));
|
|
3671
3672
|
var descendants = (root, ns, local) => Array.from(root.getElementsByTagNameNS(ns, local));
|
|
3672
3673
|
function paragraphsFor(doc, lines) {
|
|
3673
3674
|
return (lines.length ? lines : [""]).map((line) => {
|
|
@@ -9814,4 +9815,268 @@ function sectionsOf(model) {
|
|
|
9814
9815
|
];
|
|
9815
9816
|
}
|
|
9816
9817
|
|
|
9817
|
-
|
|
9818
|
+
// src/docx/attr-units.ts
|
|
9819
|
+
function twipsAttr(value) {
|
|
9820
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? roundTwips(value) : void 0;
|
|
9821
|
+
}
|
|
9822
|
+
function signedTwipsAttr(value) {
|
|
9823
|
+
return typeof value === "number" && Number.isFinite(value) ? roundSignedTwips(value) : void 0;
|
|
9824
|
+
}
|
|
9825
|
+
function paragraphTwipsFromAttrs(attrs) {
|
|
9826
|
+
const result = {};
|
|
9827
|
+
const spacingBefore = twipsAttr(attrs.spacingBeforeTwips);
|
|
9828
|
+
const spacingAfter = twipsAttr(attrs.spacingAfterTwips);
|
|
9829
|
+
const lineSpacing = signedTwipsAttr(attrs.lineSpacingTwips);
|
|
9830
|
+
const left = signedTwipsAttr(attrs.indentLeftTwips);
|
|
9831
|
+
const right = signedTwipsAttr(attrs.indentRightTwips);
|
|
9832
|
+
const start = signedTwipsAttr(attrs.indentStartTwips);
|
|
9833
|
+
const end = signedTwipsAttr(attrs.indentEndTwips);
|
|
9834
|
+
const firstLine = twipsAttr(attrs.firstLineTwips);
|
|
9835
|
+
const hanging = twipsAttr(attrs.hangingTwips);
|
|
9836
|
+
if (spacingBefore !== void 0) result.spacingBeforeTwips = spacingBefore;
|
|
9837
|
+
if (spacingAfter !== void 0) result.spacingAfterTwips = spacingAfter;
|
|
9838
|
+
if (lineSpacing !== void 0) result.lineSpacingTwips = lineSpacing;
|
|
9839
|
+
if (left !== void 0) result.indentLeftTwips = left;
|
|
9840
|
+
if (right !== void 0) result.indentRightTwips = right;
|
|
9841
|
+
if (start !== void 0) result.indentStartTwips = start;
|
|
9842
|
+
if (end !== void 0) result.indentEndTwips = end;
|
|
9843
|
+
if (firstLine !== void 0) result.firstLineTwips = firstLine;
|
|
9844
|
+
if (hanging !== void 0) result.hangingTwips = hanging;
|
|
9845
|
+
return result;
|
|
9846
|
+
}
|
|
9847
|
+
|
|
9848
|
+
// src/docx/case-transform.ts
|
|
9849
|
+
var WORD = /[\p{L}\p{N}'’]/u;
|
|
9850
|
+
var swap = (char) => {
|
|
9851
|
+
const upper = char.toLocaleUpperCase();
|
|
9852
|
+
return char === upper ? char.toLocaleLowerCase() : upper;
|
|
9853
|
+
};
|
|
9854
|
+
function transformCase(text, mode, atSentenceStart = true) {
|
|
9855
|
+
if (mode === "lower") return text.toLocaleLowerCase();
|
|
9856
|
+
if (mode === "upper") return text.toLocaleUpperCase();
|
|
9857
|
+
if (mode === "toggle") return [...text].map(swap).join("");
|
|
9858
|
+
let start = mode === "sentence" ? atSentenceStart : true;
|
|
9859
|
+
let previousWord = false;
|
|
9860
|
+
let out = "";
|
|
9861
|
+
for (const char of text) {
|
|
9862
|
+
const isWord = WORD.test(char);
|
|
9863
|
+
if (mode === "title") {
|
|
9864
|
+
out += isWord && !previousWord ? char.toLocaleUpperCase() : char;
|
|
9865
|
+
} else if (isWord && start) {
|
|
9866
|
+
out += char.toLocaleUpperCase();
|
|
9867
|
+
start = false;
|
|
9868
|
+
} else {
|
|
9869
|
+
out += isWord ? char.toLocaleLowerCase() : char;
|
|
9870
|
+
if (/[.!?]/.test(char)) start = true;
|
|
9871
|
+
else if (isWord) start = false;
|
|
9872
|
+
}
|
|
9873
|
+
previousWord = isWord;
|
|
9874
|
+
}
|
|
9875
|
+
return out;
|
|
9876
|
+
}
|
|
9877
|
+
|
|
9878
|
+
// src/docx/section-edit.ts
|
|
9879
|
+
var px2 = twipsToPixels;
|
|
9880
|
+
function withSection(model, index, change) {
|
|
9881
|
+
const sections = sectionsOf(model).map(
|
|
9882
|
+
(section, position) => position === index ? change(structuredClone(section)) : section
|
|
9883
|
+
);
|
|
9884
|
+
const last = sections.at(-1);
|
|
9885
|
+
return {
|
|
9886
|
+
...model,
|
|
9887
|
+
sections,
|
|
9888
|
+
page: {
|
|
9889
|
+
width: px2(last.pageWidthTwips),
|
|
9890
|
+
height: px2(last.pageHeightTwips),
|
|
9891
|
+
marginTop: px2(last.marginTopTwips),
|
|
9892
|
+
marginRight: px2(last.marginRightTwips),
|
|
9893
|
+
marginBottom: px2(last.marginBottomTwips),
|
|
9894
|
+
marginLeft: px2(last.marginLeftTwips)
|
|
9895
|
+
}
|
|
9896
|
+
};
|
|
9897
|
+
}
|
|
9898
|
+
var NORMAL_MARGIN = twips(1440);
|
|
9899
|
+
var MARGINS = {
|
|
9900
|
+
normal: NORMAL_MARGIN,
|
|
9901
|
+
narrow: twips(720),
|
|
9902
|
+
wide: twips(2160)
|
|
9903
|
+
};
|
|
9904
|
+
function setMargins(model, index, preset) {
|
|
9905
|
+
if (preset === "moderate")
|
|
9906
|
+
return withSection(model, index, (section) => ({
|
|
9907
|
+
...section,
|
|
9908
|
+
marginTopTwips: NORMAL_MARGIN,
|
|
9909
|
+
marginBottomTwips: NORMAL_MARGIN,
|
|
9910
|
+
marginLeftTwips: twips(1080),
|
|
9911
|
+
marginRightTwips: twips(1080)
|
|
9912
|
+
}));
|
|
9913
|
+
const value = MARGINS[preset] ?? NORMAL_MARGIN;
|
|
9914
|
+
return withSection(model, index, (section) => ({
|
|
9915
|
+
...section,
|
|
9916
|
+
marginTopTwips: value,
|
|
9917
|
+
marginRightTwips: value,
|
|
9918
|
+
marginBottomTwips: value,
|
|
9919
|
+
marginLeftTwips: value
|
|
9920
|
+
}));
|
|
9921
|
+
}
|
|
9922
|
+
function setOrientation(model, index, orientation) {
|
|
9923
|
+
return withSection(model, index, (section) => {
|
|
9924
|
+
const { pageWidthTwips: width, pageHeightTwips: height } = section;
|
|
9925
|
+
const long = width >= height ? width : height;
|
|
9926
|
+
const short = width >= height ? height : width;
|
|
9927
|
+
return {
|
|
9928
|
+
...section,
|
|
9929
|
+
orientation,
|
|
9930
|
+
pageWidthTwips: orientation === "landscape" ? long : short,
|
|
9931
|
+
pageHeightTwips: orientation === "landscape" ? short : long
|
|
9932
|
+
};
|
|
9933
|
+
});
|
|
9934
|
+
}
|
|
9935
|
+
function setColumns(model, index, count) {
|
|
9936
|
+
return withSection(model, index, (section) => ({
|
|
9937
|
+
...section,
|
|
9938
|
+
columns: { count, spacingTwips: section.columns.spacingTwips ?? twips(720), equalWidth: true }
|
|
9939
|
+
}));
|
|
9940
|
+
}
|
|
9941
|
+
function setVerticalAlign(model, index, verticalAlign) {
|
|
9942
|
+
return withSection(model, index, (section) => {
|
|
9943
|
+
const { verticalAlign: _previous, ...rest } = section;
|
|
9944
|
+
return verticalAlign === "top" ? rest : { ...rest, verticalAlign };
|
|
9945
|
+
});
|
|
9946
|
+
}
|
|
9947
|
+
function setTitlePage(model, index, titlePage) {
|
|
9948
|
+
return withSection(model, index, (section) => ({ ...section, titlePage }));
|
|
9949
|
+
}
|
|
9950
|
+
function setPageNumbering(model, index, change) {
|
|
9951
|
+
return withSection(model, index, (section) => {
|
|
9952
|
+
const numbering = { ...section.pageNumbering };
|
|
9953
|
+
if (change.format !== void 0) numbering.format = change.format;
|
|
9954
|
+
if (change.restart === true) numbering.start = 1;
|
|
9955
|
+
if (change.restart === false) delete numbering.start;
|
|
9956
|
+
if (numbering.format === "decimal") delete numbering.format;
|
|
9957
|
+
const { pageNumbering: _previous, ...rest } = section;
|
|
9958
|
+
return Object.keys(numbering).length ? { ...rest, pageNumbering: numbering } : rest;
|
|
9959
|
+
});
|
|
9960
|
+
}
|
|
9961
|
+
function setLineNumbering(model, index, mode) {
|
|
9962
|
+
return withSection(model, index, (section) => {
|
|
9963
|
+
const { lineNumbering: _on, lineNumberSettings: previous, ...rest } = section;
|
|
9964
|
+
if (mode === "none") return rest;
|
|
9965
|
+
return {
|
|
9966
|
+
...rest,
|
|
9967
|
+
lineNumbering: true,
|
|
9968
|
+
lineNumberSettings: {
|
|
9969
|
+
countBy: previous?.countBy ?? 1,
|
|
9970
|
+
start: previous?.start ?? 1,
|
|
9971
|
+
restart: mode,
|
|
9972
|
+
...previous?.distanceTwips !== void 0 ? { distanceTwips: previous.distanceTwips } : {}
|
|
9973
|
+
}
|
|
9974
|
+
};
|
|
9975
|
+
});
|
|
9976
|
+
}
|
|
9977
|
+
|
|
9978
|
+
// src/docx/page-size.ts
|
|
9979
|
+
var PAGE_SIZES = {
|
|
9980
|
+
letter: [12240, 15840],
|
|
9981
|
+
legal: [12240, 20160],
|
|
9982
|
+
tabloid: [15840, 24480],
|
|
9983
|
+
executive: [10440, 15120],
|
|
9984
|
+
a3: [16838, 23811],
|
|
9985
|
+
a4: [11906, 16838],
|
|
9986
|
+
a5: [8391, 11906],
|
|
9987
|
+
b5: [10319, 14570]
|
|
9988
|
+
};
|
|
9989
|
+
var PAGE_SIZE_OPTIONS = [
|
|
9990
|
+
["letter", "Letter"],
|
|
9991
|
+
["legal", "Legal"],
|
|
9992
|
+
["tabloid", "Tabloid"],
|
|
9993
|
+
["executive", "Executive"],
|
|
9994
|
+
["a3", "A3"],
|
|
9995
|
+
["a4", "A4"],
|
|
9996
|
+
["a5", "A5"],
|
|
9997
|
+
["b5", "B5 (JIS)"]
|
|
9998
|
+
];
|
|
9999
|
+
function setPageSize(model, index, preset) {
|
|
10000
|
+
const size = PAGE_SIZES[preset];
|
|
10001
|
+
if (!size) return model;
|
|
10002
|
+
return withSection(model, index, (section) => {
|
|
10003
|
+
const [short, long] = size;
|
|
10004
|
+
const landscape = section.orientation === "landscape";
|
|
10005
|
+
return {
|
|
10006
|
+
...section,
|
|
10007
|
+
pageWidthTwips: twips(landscape ? long : short),
|
|
10008
|
+
pageHeightTwips: twips(landscape ? short : long)
|
|
10009
|
+
};
|
|
10010
|
+
});
|
|
10011
|
+
}
|
|
10012
|
+
function pageSizeOf(section) {
|
|
10013
|
+
const a = Math.min(section.pageWidthTwips, section.pageHeightTwips);
|
|
10014
|
+
const b = Math.max(section.pageWidthTwips, section.pageHeightTwips);
|
|
10015
|
+
for (const [key, [short, long]] of Object.entries(PAGE_SIZES))
|
|
10016
|
+
if (Math.abs(short - a) <= 2 && Math.abs(long - b) <= 2) return key;
|
|
10017
|
+
return null;
|
|
10018
|
+
}
|
|
10019
|
+
|
|
10020
|
+
// src/docx/page-setup-model.ts
|
|
10021
|
+
var TWIPS_PER_INCH2 = 1440;
|
|
10022
|
+
var MAX_PAGE_INCHES = 22;
|
|
10023
|
+
var MIN_TEXT_INCHES = 0.5;
|
|
10024
|
+
var inches = (value) => Math.round(value / TWIPS_PER_INCH2 * 1e3) / 1e3;
|
|
10025
|
+
function readPageSetup(section) {
|
|
10026
|
+
const short = Math.min(section.pageWidthTwips, section.pageHeightTwips);
|
|
10027
|
+
const long = Math.max(section.pageWidthTwips, section.pageHeightTwips);
|
|
10028
|
+
return {
|
|
10029
|
+
topIn: inches(section.marginTopTwips),
|
|
10030
|
+
bottomIn: inches(section.marginBottomTwips),
|
|
10031
|
+
leftIn: inches(section.marginLeftTwips),
|
|
10032
|
+
rightIn: inches(section.marginRightTwips),
|
|
10033
|
+
gutterIn: inches(section.gutterTwips ?? 0),
|
|
10034
|
+
headerIn: inches(section.headerDistanceTwips ?? 720),
|
|
10035
|
+
footerIn: inches(section.footerDistanceTwips ?? 720),
|
|
10036
|
+
orientation: section.orientation,
|
|
10037
|
+
widthIn: inches(short),
|
|
10038
|
+
heightIn: inches(long)
|
|
10039
|
+
};
|
|
10040
|
+
}
|
|
10041
|
+
function validatePageSetup(values) {
|
|
10042
|
+
const margins = [values.topIn, values.bottomIn, values.leftIn, values.rightIn, values.gutterIn];
|
|
10043
|
+
const measures = [...margins, values.headerIn, values.footerIn];
|
|
10044
|
+
if (measures.some((value) => !Number.isFinite(value) || value < 0 || value > MAX_PAGE_INCHES))
|
|
10045
|
+
return "range";
|
|
10046
|
+
if (![values.widthIn, values.heightIn].every((v) => v > 0 && v <= MAX_PAGE_INCHES))
|
|
10047
|
+
return "range";
|
|
10048
|
+
const short = Math.min(values.widthIn, values.heightIn);
|
|
10049
|
+
const long = Math.max(values.widthIn, values.heightIn);
|
|
10050
|
+
const [width, height] = values.orientation === "landscape" ? [long, short] : [short, long];
|
|
10051
|
+
if (width - values.leftIn - values.rightIn - values.gutterIn < MIN_TEXT_INCHES) return "width";
|
|
10052
|
+
if (height - values.topIn - values.bottomIn < MIN_TEXT_INCHES) return "height";
|
|
10053
|
+
return null;
|
|
10054
|
+
}
|
|
10055
|
+
var toTwips = (value) => Math.round(value * TWIPS_PER_INCH2);
|
|
10056
|
+
function applyPageSetup(model, index, values) {
|
|
10057
|
+
if (validatePageSetup(values)) return model;
|
|
10058
|
+
const short = Math.min(values.widthIn, values.heightIn);
|
|
10059
|
+
const long = Math.max(values.widthIn, values.heightIn);
|
|
10060
|
+
const landscape = values.orientation === "landscape";
|
|
10061
|
+
return withSection(model, index, (section) => ({
|
|
10062
|
+
...section,
|
|
10063
|
+
orientation: values.orientation,
|
|
10064
|
+
pageWidthTwips: twips(toTwips(landscape ? long : short)),
|
|
10065
|
+
pageHeightTwips: twips(toTwips(landscape ? short : long)),
|
|
10066
|
+
marginTopTwips: signedTwips(toTwips(values.topIn)),
|
|
10067
|
+
marginBottomTwips: signedTwips(toTwips(values.bottomIn)),
|
|
10068
|
+
marginLeftTwips: twips(toTwips(values.leftIn)),
|
|
10069
|
+
marginRightTwips: twips(toTwips(values.rightIn)),
|
|
10070
|
+
gutterTwips: twips(toTwips(values.gutterIn)),
|
|
10071
|
+
headerDistanceTwips: twips(toTwips(values.headerIn)),
|
|
10072
|
+
footerDistanceTwips: twips(toTwips(values.footerIn))
|
|
10073
|
+
}));
|
|
10074
|
+
}
|
|
10075
|
+
function presetOf(values) {
|
|
10076
|
+
return pageSizeOf({
|
|
10077
|
+
pageWidthTwips: twips(toTwips(values.widthIn)),
|
|
10078
|
+
pageHeightTwips: twips(toTwips(values.heightIn))
|
|
10079
|
+
});
|
|
10080
|
+
}
|
|
10081
|
+
|
|
10082
|
+
export { DEFAULT_STYLES_XML, DEFAULT_TABLE_BORDERS, DEFAULT_TOC_INSTRUCTION, DIAGRAM_GRAPHIC_URI, DocxModelValidationError, EMPTY_FIGURES_TEXT, EMPTY_TOC_TEXT, EMU_PER_INCH, EMU_PER_PIXEL, EMU_PER_POINT, LIGATURE_VALUES, PAGE_SIZES, PAGE_SIZE_OPTIONS, PIXELS_PER_INCH, PROPERTY_FIELDS, ST_AlgClass, ST_AlgType, ST_AnnotationVMerge, ST_Border, ST_BrClear, ST_BrType, ST_CalendarType, ST_CaptionPos, ST_ChapterSep, ST_CharacterSpacing, ST_CombineBrackets, ST_ConformanceClass, ST_CryptProv, ST_Direction, ST_DisplacedByCustomXml, ST_DocGrid, ST_DocPartBehavior, ST_DocPartGallery, ST_DocPartType, ST_DocProtect, ST_DropCap, ST_EdGrp, ST_EdnPos, ST_Em, ST_FFTextType, ST_FldCharType, ST_FontFamily, ST_FrameLayout, ST_FrameScrollbar, ST_FtnEdn, ST_FtnPos, ST_HAnchor, ST_HdrFtr, ST_HeightRule, ST_HexColorAuto, ST_HighlightColor, ST_Hint, ST_InfoTextType, ST_Jc, ST_JcTable, ST_LevelSuffix, ST_LineNumberRestart, ST_LineSpacingRule, ST_Lock, ST_MailMergeDest, ST_MailMergeDocType, ST_MailMergeOdsoFMDFieldType, ST_MailMergeSourceType, ST_Merge, ST_MultiLevelType, ST_NumberFormat, ST_ObjectDrawAspect, ST_ObjectUpdateMode, ST_OnOff1, ST_PTabAlignment, ST_PTabLeader, ST_PTabRelativeTo, ST_PageBorderDisplay, ST_PageBorderOffset, ST_PageBorderZOrder, ST_PageOrientation, ST_Pitch, ST_Proof, ST_ProofErr, ST_RelFromH, ST_RelFromV, ST_RestartNumber, ST_RubyAlign, ST_SchemeColorVal, ST_SdtDateMappingType, ST_SectionMark, ST_Shd, ST_StyleSort, ST_StyleType, ST_TabJc, ST_TabTlc, ST_TargetScreenSz, ST_TblLayoutType, ST_TblOverlap, ST_TblStyleOverrideType, ST_TblWidth, ST_TextAlignment, ST_TextDirection, ST_TextEffect, ST_TextboxTightWrap, ST_Theme, ST_ThemeColor, ST_TrueFalse, ST_TrueFalseBlank, ST_Underline, ST_VAnchor, ST_VerticalAlignRun, ST_VerticalJc, ST_View, ST_WmlColorSchemeIndex, ST_Wrap, ST_XAlign, ST_YAlign, ST_Zoom, TWIPS_PER_INCH, TWIPS_PER_POINT, WORD, WORD_HIGHLIGHT_TOKENS, WORD_UNDERLINE_TOKENS, acceptAllRevisions, acceptRevision, alignFromJustification, applyPageSetup, applyThemeShade, applyThemeTint, assertValidDocumentModel, buildTableOfContents, captionParagraphs, changeColumnGap, changeColumnWidth, columnPreset, columnTextWidth, computeListLabels, createDocument, createListDefinition, dateFieldResult, datePicture, defaultStyleCatalogs, diagramColorTheme, diagramsIn, displayListLabel, documentStats, eighthPoints, eighthPointsFromPoints, eighthPointsToPoints, emu, emuFromPixels, emuToPixels, ensureListDefinition, enumValue, equalColumnDraft, fieldName, findRevision, findTableOfContents, formatListNumber, formatNoteNumber, formatWordDate, halfPoints, halfPointsFromPoints, halfPointsToPoints, headingLevel, headingListLevels, isCaptionOf, isHeadingListKind, isLigatures, isStAlgClass, isStAlgType, isStAnnotationVMerge, isStBorder, isStBrClear, isStBrType, isStCalendarType, isStCaptionPos, isStChapterSep, isStCharacterSpacing, isStCombineBrackets, isStConformanceClass, isStCryptProv, isStDirection, isStDisplacedByCustomXml, isStDocGrid, isStDocPartBehavior, isStDocPartGallery, isStDocPartType, isStDocProtect, isStDropCap, isStEdGrp, isStEdnPos, isStEm, isStFFTextType, isStFldCharType, isStFontFamily, isStFrameLayout, isStFrameScrollbar, isStFtnEdn, isStFtnPos, isStHAnchor, isStHdrFtr, isStHeightRule, isStHexColorAuto, isStHighlightColor, isStHint, isStInfoTextType, isStJc, isStJcTable, isStLevelSuffix, isStLineNumberRestart, isStLineSpacingRule, isStLock, isStMailMergeDest, isStMailMergeDocType, isStMailMergeOdsoFMDFieldType, isStMailMergeSourceType, isStMerge, isStMultiLevelType, isStNumberFormat, isStObjectDrawAspect, isStObjectUpdateMode, isStOnOff1, isStPTabAlignment, isStPTabLeader, isStPTabRelativeTo, isStPageBorderDisplay, isStPageBorderOffset, isStPageBorderZOrder, isStPageOrientation, isStPitch, isStProof, isStProofErr, isStRelFromH, isStRelFromV, isStRestartNumber, isStRubyAlign, isStSchemeColorVal, isStSdtDateMappingType, isStSectionMark, isStShd, isStStyleSort, isStStyleType, isStTabJc, isStTabTlc, isStTargetScreenSz, isStTblLayoutType, isStTblOverlap, isStTblStyleOverrideType, isStTblWidth, isStTextAlignment, isStTextDirection, isStTextEffect, isStTextboxTightWrap, isStTheme, isStThemeColor, isStTrueFalse, isStTrueFalseBlank, isStUnderline, isStVAnchor, isStVerticalAlignRun, isStVerticalJc, isStView, isStWmlColorSchemeIndex, isStWrap, isStXAlign, isStYAlign, isStZoom, isThemeColorToken, isValidLanguageTag, isWordHighlightToken, isWordUnderlineStyle, lineSpacingLabel, lineSpacingOptions, lineSpacingValue, linkStylesToList, listRevisions, loadDocx, numberNotesInOrder, onOffAttribute, onOffElement, pageSizeOf, paragraphTwipsFromAttrs, parseColorSchemeMapping, parseEighthPoints, parseHalfPoints, parseHexColor, parseInteger, parseJustification, parseLineSpacingValue, parseNumberingCatalog, parseOnOff, parseParagraphStyleCatalog, parseRgbColor, parseRunStyleCatalog, parseSignedHalfPoints, parseSignedTwips, parseTableStyleCatalog, parseTextScale, parseTheme, parseTintShade, parseTwips, parseUnsignedInteger, plainText2 as plainText, presetOf, readColumnDraft, readPageSetup, rejectAllRevisions, rejectRevision, reportParseWarning, resolveCellVisuals, resolveDiagramColor, resolveNumberingLevel, resolveParagraphFormatting, resolveParagraphNumbering, resolveRunFormatting, resolveStyleNumbering, resolveTableStyleFormatting, resolveThemeColorReference, resolveThemeColorToken, roundEighthPoints, roundEmu, roundHalfPoints, roundSignedTwips, roundTwips, saveDocx, sectionLayoutJson, sectionsFromLayout, sectionsOf, setColumns, setLineNumbering, setMargins, setOrientation, setPageNumbering, setPageSize, setTitlePage, setVerticalAlign, signedTwips, signedTwipsAttr, signedTwipsFromPixels, signedTwipsFromPoints, tableOfFiguresInstruction, tocBookmarks, tocCaptionLabel, tocEntries, tocHyperlinks, tocLevels, transformCase, twips, twipsAttr, twipsFromInches, twipsFromPixels, twipsFromPoints, twipsToInches, twipsToPixels, twipsToPoints, unequalColumnPreset, universalMeasureToTwips, updateTableOfContents, validColumnDraft, validateDocumentModel, validatePageSetup, withParseWarnings, withSection, withTocBookmarks };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/docx/layout/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,aAAa,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/docx/layout/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,aAAa,EAIb,MAAM,aAAa,CAAC;AAmBrB,OAAO,KAAK,EAEX,mBAAmB,EAKnB,MAAM,YAAY,CAAC;AA2BpB,oFAAoF;AACpF,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAe,GACxC,mBAAmB,CA8PrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-layout.d.ts","sourceRoot":"","sources":["../../../src/docx/layout/table-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"table-layout.d.ts","sourceRoot":"","sources":["../../../src/docx/layout/table-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAC9B,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,KAAK,SAAI,EACT,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAyBnD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACxB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,GAChC,SAAS,CAyCX;AAsDD,MAAM,WAAW,QAAQ;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAoB9E"}
|
package/dist/docx/load/index.cjs
CHANGED
|
@@ -1879,7 +1879,8 @@ function parseXml(xml, options = {}) {
|
|
|
1879
1879
|
}).parseFromString(xml, "application/xml");
|
|
1880
1880
|
} catch (error) {
|
|
1881
1881
|
throw new Error(
|
|
1882
|
-
`Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}
|
|
1882
|
+
`Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
|
|
1883
|
+
{ cause: error }
|
|
1883
1884
|
);
|
|
1884
1885
|
}
|
|
1885
1886
|
if (parseError || !parsed.documentElement)
|
package/dist/docx/load/index.mjs
CHANGED
|
@@ -1873,7 +1873,8 @@ function parseXml(xml, options = {}) {
|
|
|
1873
1873
|
}).parseFromString(xml, "application/xml");
|
|
1874
1874
|
} catch (error) {
|
|
1875
1875
|
throw new Error(
|
|
1876
|
-
`Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}
|
|
1876
|
+
`Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
|
|
1877
|
+
{ cause: error }
|
|
1877
1878
|
);
|
|
1878
1879
|
}
|
|
1879
1880
|
if (parseError || !parsed.documentElement)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { DocumentModel } from './model.js';
|
|
2
|
+
import type { SectionProperties } from './section-model.js';
|
|
3
|
+
/** What Word's Page Setup dialog edits for one section, in inches. */
|
|
4
|
+
export interface PageSetupValues {
|
|
5
|
+
topIn: number;
|
|
6
|
+
bottomIn: number;
|
|
7
|
+
leftIn: number;
|
|
8
|
+
rightIn: number;
|
|
9
|
+
gutterIn: number;
|
|
10
|
+
headerIn: number;
|
|
11
|
+
footerIn: number;
|
|
12
|
+
orientation: 'portrait' | 'landscape';
|
|
13
|
+
/** Portrait width and height; landscape swaps them when applied. */
|
|
14
|
+
widthIn: number;
|
|
15
|
+
heightIn: number;
|
|
16
|
+
}
|
|
17
|
+
export type PageSetupProblem = 'range' | 'width' | 'height';
|
|
18
|
+
/** The section's current settings, with the paper always in portrait terms. */
|
|
19
|
+
export declare function readPageSetup(section: SectionProperties): PageSetupValues;
|
|
20
|
+
/**
|
|
21
|
+
* Checks the values as Word does: every measure in range, and margins that leave room for text
|
|
22
|
+
* (at least half an inch each way). Returns the first problem, or null when they can be applied.
|
|
23
|
+
*/
|
|
24
|
+
export declare function validatePageSetup(values: PageSetupValues): PageSetupProblem | null;
|
|
25
|
+
/** Applies validated values to section `index`; invalid values leave the model as it was. */
|
|
26
|
+
export declare function applyPageSetup(model: DocumentModel, index: number, values: PageSetupValues): DocumentModel;
|
|
27
|
+
/** The paper-size preset a set of values matches, or null for a custom size. */
|
|
28
|
+
export declare function presetOf(values: PageSetupValues): string | null;
|
|
29
|
+
//# sourceMappingURL=page-setup-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-setup-model.d.ts","sourceRoot":"","sources":["../../src/docx/page-setup-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC;IACtC,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAO5D,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAezE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAalF;AAID,6FAA6F;AAC7F,wBAAgB,cAAc,CAC7B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,eAAe,GACrB,aAAa,CAkBf;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAK/D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DocumentModel } from './model.js';
|
|
2
|
+
import type { SectionProperties } from './section-model.js';
|
|
3
|
+
/** Word's Layout > Size presets, portrait width by height in twips (1/1440 inch). */
|
|
4
|
+
export declare const PAGE_SIZES: Record<string, readonly [width: number, height: number]>;
|
|
5
|
+
/** English labels for the size list; paper names are proper nouns and stay as they are. */
|
|
6
|
+
export declare const PAGE_SIZE_OPTIONS: Array<[string, string]>;
|
|
7
|
+
/** Sets a section's paper size, keeping its orientation (landscape swaps width and height). */
|
|
8
|
+
export declare function setPageSize(model: DocumentModel, index: number, preset: string): DocumentModel;
|
|
9
|
+
/** The preset a section's paper matches in either orientation, or null for a custom size. */
|
|
10
|
+
export declare function pageSizeOf(section: SectionProperties): string | null;
|
|
11
|
+
//# sourceMappingURL=page-size.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-size.d.ts","sourceRoot":"","sources":["../../src/docx/page-size.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,qFAAqF;AACrF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAS/E,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD,CAAC;AAEF,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAY9F;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAMpE"}
|
package/dist/docx/parse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/docx/parse.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAS,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/docx/parse.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAS,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA8BvE,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IAC3E,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACvC,CAAC,CAgLD;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAUvF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DocumentModel } from './model.js';
|
|
2
|
+
import type { SectionProperties } from './section-model.js';
|
|
3
|
+
/** Returns `model` with section `index` changed; the last section also drives `model.page`. */
|
|
4
|
+
export declare function withSection(model: DocumentModel, index: number, change: (section: SectionProperties) => SectionProperties): DocumentModel;
|
|
5
|
+
export declare function setMargins(model: DocumentModel, index: number, preset: string): DocumentModel;
|
|
6
|
+
export declare function setOrientation(model: DocumentModel, index: number, orientation: 'portrait' | 'landscape'): DocumentModel;
|
|
7
|
+
export declare function setColumns(model: DocumentModel, index: number, count: number): DocumentModel;
|
|
8
|
+
/** Layout > Page Setup > Vertical alignment for one section. */
|
|
9
|
+
export declare function setVerticalAlign(model: DocumentModel, index: number, verticalAlign: NonNullable<SectionProperties['verticalAlign']>): DocumentModel;
|
|
10
|
+
/** Header & Footer > Different First Page for one section. */
|
|
11
|
+
export declare function setTitlePage(model: DocumentModel, index: number, titlePage: boolean): DocumentModel;
|
|
12
|
+
/** Page number format, and whether numbering continues or restarts at 1 in this section. */
|
|
13
|
+
export declare function setPageNumbering(model: DocumentModel, index: number, change: {
|
|
14
|
+
format?: NonNullable<SectionProperties['pageNumbering']>['format'];
|
|
15
|
+
restart?: boolean;
|
|
16
|
+
}): DocumentModel;
|
|
17
|
+
/** Layout > Line Numbers: off, or on with the restart rule; other line-number values are kept. */
|
|
18
|
+
export declare function setLineNumbering(model: DocumentModel, index: number, mode: 'none' | 'continuous' | 'newPage' | 'newSection'): DocumentModel;
|
|
19
|
+
//# sourceMappingURL=section-edit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-edit.d.ts","sourceRoot":"","sources":["../../src/docx/section-edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,+FAA+F;AAC/F,wBAAgB,WAAW,CAC1B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,iBAAiB,GACvD,aAAa,CAiBf;AASD,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAiB7F;AAED,wBAAgB,cAAc,CAC7B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,UAAU,GAAG,WAAW,GACnC,aAAa,CAYf;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAK5F;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,WAAW,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAC5D,aAAa,CAKf;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAC3B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GAChB,aAAa,CAEf;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/F,aAAa,CAUf;AAED,kGAAkG;AAClG,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,GACpD,aAAa,CAef"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-stops.d.ts","sourceRoot":"","sources":["../../src/docx/tab-stops.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrD,OAAO,
|
|
1
|
+
{"version":3,"file":"tab-stops.d.ts","sourceRoot":"","sources":["../../src/docx/tab-stops.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrD,OAAO,EAKN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,MAAM,UAAU,CAAC;AAElB,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,EAAE,CAUrE;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAC5B,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,SAAS,EACpB,IAAI,CAAC,EAAE,SAAS,GACd,IAAI,CAcN;AA0CD,gDAAgD;AAChD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAEhE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backstage-focus.d.ts","sourceRoot":"","sources":["../../../src/docx/ui/backstage-focus.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW;IAKjD,IAAI;IAUJ,KAAK;EAON"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NodeSpec } from 'prosemirror-model';
|
|
2
|
+
/** A visible, editable page or column break marker (`w:br` type page/column). */
|
|
3
|
+
export declare const pageBreakNodeSpec: NodeSpec;
|
|
4
|
+
/** A read-only footnote/endnote reference mark; its number is derived from document order. */
|
|
5
|
+
export declare const noteReferenceNodeSpec: NodeSpec;
|
|
6
|
+
/**
|
|
7
|
+
* A complex field's structural run: a `w:fldChar` marker (begin/separate/end) or its instruction
|
|
8
|
+
* text (`code`). Invisible while editing; its run formatting rides in `format` like note references.
|
|
9
|
+
*/
|
|
10
|
+
export declare const fieldMarkerNodeSpec: NodeSpec;
|
|
11
|
+
//# sourceMappingURL=break-note-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"break-note-schema.d.ts","sourceRoot":"","sources":["../../../src/docx/ui/break-note-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,EAAE,QAoB/B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,qBAAqB,EAAE,QAoCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAyBjC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Node as ProseMirrorNode } from 'prosemirror-model';
|
|
2
|
+
import { type StepBatch } from './collaboration-protocol.js';
|
|
3
|
+
export interface CollaborationAuthorityConfig {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
doc: ProseMirrorNode;
|
|
6
|
+
version?: number;
|
|
7
|
+
stepHistoryLimit?: number;
|
|
8
|
+
}
|
|
9
|
+
export type AuthorityResult = {
|
|
10
|
+
status: 'accepted' | 'duplicate';
|
|
11
|
+
batch: StepBatch;
|
|
12
|
+
} | {
|
|
13
|
+
status: 'rejected';
|
|
14
|
+
reason: string;
|
|
15
|
+
};
|
|
16
|
+
/** Small in-memory reference authority. A host should replace it with its server and persistence. */
|
|
17
|
+
export declare class CollaborationAuthority {
|
|
18
|
+
readonly sessionId: string;
|
|
19
|
+
private readonly schema;
|
|
20
|
+
private readonly stepHistoryLimit;
|
|
21
|
+
private version;
|
|
22
|
+
private documents;
|
|
23
|
+
private records;
|
|
24
|
+
private readonly requests;
|
|
25
|
+
constructor(config: CollaborationAuthorityConfig);
|
|
26
|
+
get currentVersion(): number;
|
|
27
|
+
get doc(): ProseMirrorNode;
|
|
28
|
+
submit(input: unknown): AuthorityResult;
|
|
29
|
+
private pruneHistory;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=collaboration-authority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration-authority.d.ts","sourceRoot":"","sources":["../../../src/docx/ui/collaboration-authority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,eAAe,EAAU,MAAM,mBAAmB,CAAC;AAIzE,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAEtF,MAAM,WAAW,4BAA4B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,eAAe,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,eAAe,GACxB;IAAE,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAkB1C,qGAAqG;AACrG,qBAAa,sBAAsB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwD;IAEjF,YAAY,MAAM,EAAE,4BAA4B,EAW/C;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,GAAG,IAAI,eAAe,CAEzB;IAED,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CA2EtC;IAED,OAAO,CAAC,YAAY;CAOpB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EditorState, Transaction } from 'prosemirror-state';
|
|
2
|
+
/** Generates collision-resistant document IDs within one unique client session. */
|
|
3
|
+
export declare function createCollaborationIdGenerator(clientId: string): (kind: string) => string;
|
|
4
|
+
/** Repairs missing or duplicate block IDs on local transactions. */
|
|
5
|
+
export declare function repairCollaborativeDocumentIds(state: EditorState, clientId: string, idGenerator?: (kind: string) => string): Transaction | null;
|
|
6
|
+
/** @deprecated Use repairCollaborativeDocumentIds to include table IDs as well. */
|
|
7
|
+
export declare const repairCollaborativeParagraphIds: typeof repairCollaborativeDocumentIds;
|
|
8
|
+
//# sourceMappingURL=collaboration-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration-identity.d.ts","sourceRoot":"","sources":["../../../src/docx/ui/collaboration-identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGlE,mFAAmF;AACnF,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAGzF;AAED,oEAAoE;AACpE,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,UAT6D,MAAM,KAAK,MAS7B,GACpD,WAAW,GAAG,IAAI,CAwBpB;AAED,mFAAmF;AACnF,eAAO,MAAM,+BAA+B,uCAAiC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Schema } from 'prosemirror-model';
|
|
2
|
+
import { Step } from 'prosemirror-transform';
|
|
3
|
+
export interface CollaborationConfig {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
clientId: string;
|
|
6
|
+
version?: number;
|
|
7
|
+
}
|
|
8
|
+
/** Version is the authority version immediately before applying these steps. */
|
|
9
|
+
export interface StepBatch {
|
|
10
|
+
protocol: 1;
|
|
11
|
+
sessionId: string;
|
|
12
|
+
batchId: string;
|
|
13
|
+
version: number;
|
|
14
|
+
clientId: string;
|
|
15
|
+
steps: readonly unknown[];
|
|
16
|
+
}
|
|
17
|
+
export type ParsedBatch = {
|
|
18
|
+
batch: StepBatch;
|
|
19
|
+
steps: Step[];
|
|
20
|
+
fingerprint: string;
|
|
21
|
+
};
|
|
22
|
+
/** Freezing comes from the shared collab area. */
|
|
23
|
+
export declare const freezeBatch: (batch: StepBatch) => StepBatch;
|
|
24
|
+
export declare function parseBatch(value: unknown, schema: Schema): ParsedBatch | string;
|
|
25
|
+
//# sourceMappingURL=collaboration-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration-protocol.d.ts","sourceRoot":"","sources":["../../../src/docx/ui/collaboration-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG7C,MAAM,WAAW,mBAAmB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,CAAC,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,kDAAkD;AAClD,eAAO,MAAM,WAAW,UAAW,SAAS,KAAG,SAA8B,CAAC;AAE9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CA+B/E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Plugin, type EditorState, type Transaction } from 'prosemirror-state';
|
|
2
|
+
import { type CollaborationConfig, type StepBatch } from './collaboration-protocol.js';
|
|
3
|
+
export type { CollaborationConfig, StepBatch } from './collaboration-protocol.js';
|
|
4
|
+
export { CollaborationAuthority } from './collaboration-authority.js';
|
|
5
|
+
export type { CollaborationAuthorityConfig, AuthorityResult } from './collaboration-authority.js';
|
|
6
|
+
export type ClientReceiveResult = {
|
|
7
|
+
status: 'applied';
|
|
8
|
+
transaction: Transaction;
|
|
9
|
+
} | {
|
|
10
|
+
status: 'duplicate' | 'stale' | 'out-of-order' | 'wrong-session' | 'invalid';
|
|
11
|
+
reason?: string;
|
|
12
|
+
};
|
|
13
|
+
/** Client-side plugin and transport helpers. It does not open a network connection. */
|
|
14
|
+
export declare class CollaborationClient {
|
|
15
|
+
readonly plugin: Plugin;
|
|
16
|
+
readonly sessionId: string;
|
|
17
|
+
readonly clientId: string;
|
|
18
|
+
private readonly config;
|
|
19
|
+
private sequence;
|
|
20
|
+
private pending?;
|
|
21
|
+
private readonly received;
|
|
22
|
+
constructor(config: CollaborationConfig);
|
|
23
|
+
get hasPendingAck(): boolean;
|
|
24
|
+
pendingStepCount(state: EditorState): number;
|
|
25
|
+
/** Returns the same envelope until acknowledged, so transport retries are idempotent. */
|
|
26
|
+
createPendingBatch(state: EditorState): StepBatch | null;
|
|
27
|
+
/** Converts one ordered authority batch into the transaction hosts should dispatch. */
|
|
28
|
+
receive(state: EditorState, input: unknown): ClientReceiveResult;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=collaboration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration.d.ts","sourceRoot":"","sources":["../../../src/docx/ui/collaboration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,YAAY,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAElG,MAAM,MAAM,mBAAmB,GAC5B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAC/C;IACA,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,GAAG,SAAS,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAmBL,uFAAuF;AACvF,qBAAa,mBAAmB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAAC,CAAwB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IAErE,YAAY,MAAM,EAAE,mBAAmB,EAStC;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE3C;IAED,yFAAyF;IACzF,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAUvD;IAED,uFAAuF;IACvF,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAyC/D;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defined.d.ts","sourceRoot":"","sources":["../../../src/docx/ui/defined.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAGhF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Unsaved-changes flag behind `element.dirty`; reports only real transitions. */
|
|
2
|
+
export declare class DirtyState {
|
|
3
|
+
private readonly changed;
|
|
4
|
+
private value;
|
|
5
|
+
constructor(changed: (dirty: boolean) => void);
|
|
6
|
+
get dirty(): boolean;
|
|
7
|
+
set(dirty: boolean): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=dirty-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dirty-state.d.ts","sourceRoot":"","sources":["../../../src/docx/ui/dirty-state.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,qBAAa,UAAU;IAGV,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,KAAK,CAAS;IAEtB,YAA6B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EAAI;IAElE,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAIxB;CACD"}
|