ooxml-core 0.18.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/column-settings.d.ts +16 -0
- package/dist/docx/column-settings.d.ts.map +1 -0
- package/dist/docx/embedded.cjs +2 -1
- package/dist/docx/embedded.mjs +2 -1
- package/dist/docx/index.cjs +461 -3
- package/dist/docx/index.d.ts +8 -0
- package/dist/docx/index.d.ts.map +1 -1
- package/dist/docx/index.mjs +426 -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/line-spacing.d.ts +9 -0
- package/dist/docx/line-spacing.d.ts.map +1 -0
- 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/section-layout.d.ts +14 -0
- package/dist/docx/section-layout.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
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { VisioShape } from '../index.js';
|
|
2
|
+
export interface DetailBudget {
|
|
3
|
+
rows: number;
|
|
4
|
+
characters: number;
|
|
5
|
+
}
|
|
6
|
+
/** Runtime model checks prevent implicit DOM stringification of host-provided objects. */
|
|
7
|
+
export declare function assertShapeDetails(shape: VisioShape, budget: DetailBudget): void;
|
|
8
|
+
//# sourceMappingURL=scene-details.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-details.d.ts","sourceRoot":"","sources":["../../../src/visio/ui/scene-details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACnB;AACD,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAuEhF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type VisioDocument } from '../index.js';
|
|
2
|
+
export declare const MAX_INPUT_BYTES: number;
|
|
3
|
+
/** Defensive display limits also protect callers supplying their own typed scenes. */
|
|
4
|
+
export declare function assertViewableDocument(model: VisioDocument): void;
|
|
5
|
+
//# sourceMappingURL=scene-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-validation.d.ts","sourceRoot":"","sources":["../../../src/visio/ui/scene-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,aAAa,EAGlB,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,eAAe,QAAmB,CAAC;AAUhD,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CA6RjE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { VisioDocument } from '../index.js';
|
|
2
|
+
/**
|
|
3
|
+
* @internal Copy a canonically validated scene without retaining any renderer-used mutable input.
|
|
4
|
+
* The caller validates the result before use. Independent allocation caps also bound a host that
|
|
5
|
+
* changes its arrays while fields are read. Shared raster buffers are copied once per invocation.
|
|
6
|
+
* Inspector metadata, connectors, layers and unknown host properties are not used by static SVG.
|
|
7
|
+
*/
|
|
8
|
+
export declare function copySnapshotScene(model: VisioDocument): VisioDocument;
|
|
9
|
+
//# sourceMappingURL=snapshot-scene.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-scene.d.ts","sourceRoot":"","sources":["../../../src/visio/ui/snapshot-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAOb,MAAM,aAAa,CAAC;AAwBrB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAoKrE"}
|
package/dist/xlsx/index.cjs
CHANGED
|
@@ -1646,8 +1646,8 @@ function fitNumber(value, format, options) {
|
|
|
1646
1646
|
const date1904 = options.date1904 ?? false;
|
|
1647
1647
|
const width = options.width ?? 0;
|
|
1648
1648
|
const fits = (text2) => (options.measure ? options.measure(text2) : text2.length) <= width;
|
|
1649
|
-
const
|
|
1650
|
-
if (fits(
|
|
1649
|
+
const first2 = formatNumber(value, format, date1904);
|
|
1650
|
+
if (fits(first2.text) || first2.text === OVERFLOW_TEXT) return first2;
|
|
1651
1651
|
const choice = chooseSection(compileFormat(format), value);
|
|
1652
1652
|
const general = choice && !choice.section.number && !choice.section.fraction && choice.section.tokens.some((t) => t.t === "general");
|
|
1653
1653
|
if (general) {
|
|
@@ -1657,7 +1657,7 @@ function fitNumber(value, format, options) {
|
|
|
1657
1657
|
}
|
|
1658
1658
|
}
|
|
1659
1659
|
const fill2 = hashFill(options);
|
|
1660
|
-
return
|
|
1660
|
+
return first2.color ? { text: fill2, color: first2.color } : { text: fill2 };
|
|
1661
1661
|
}
|
|
1662
1662
|
function formatNumber(value, format, date1904, generalWidth) {
|
|
1663
1663
|
if (!Number.isFinite(value)) return { text: "#NUM!" };
|
|
@@ -2640,9 +2640,9 @@ function serialToYmd(serial, date1904 = date1904Mode) {
|
|
|
2640
2640
|
return { year: d.getUTCFullYear(), month: d.getUTCMonth() + 1, day: d.getUTCDate() };
|
|
2641
2641
|
}
|
|
2642
2642
|
function monthStartSerial(year, month0, date1904) {
|
|
2643
|
-
const
|
|
2644
|
-
|
|
2645
|
-
const days = Math.round((
|
|
2643
|
+
const first2 = /* @__PURE__ */ new Date(0);
|
|
2644
|
+
first2.setUTCFullYear(year, month0, 1);
|
|
2645
|
+
const days = Math.round((first2.getTime() - (date1904 ? EPOCH_19042 : EPOCH_19002)) / DAY_MS);
|
|
2646
2646
|
return !date1904 && days < 61 ? days - 1 : days;
|
|
2647
2647
|
}
|
|
2648
2648
|
function ymdToSerial(year, month, day, date1904 = date1904Mode) {
|
|
@@ -3710,9 +3710,9 @@ function percentRank(values2, x, digits2, exclusive) {
|
|
|
3710
3710
|
const s = sorted(values2);
|
|
3711
3711
|
const n2 = s.length;
|
|
3712
3712
|
if (n2 === 0 || digits2 < 1) fail(ERR.NUM);
|
|
3713
|
-
const
|
|
3713
|
+
const first2 = s[0];
|
|
3714
3714
|
const last = s[n2 - 1];
|
|
3715
|
-
if (x <
|
|
3715
|
+
if (x < first2 || x > last) fail(ERR.NA);
|
|
3716
3716
|
let rank4;
|
|
3717
3717
|
const lower2 = s.filter((v) => v < x).length;
|
|
3718
3718
|
const exact = s.includes(x);
|
|
@@ -3912,8 +3912,8 @@ function weekendDays(value) {
|
|
|
3912
3912
|
}
|
|
3913
3913
|
const code = Math.trunc(num(v));
|
|
3914
3914
|
if (code >= 1 && code <= 7) {
|
|
3915
|
-
const
|
|
3916
|
-
return /* @__PURE__ */ new Set([
|
|
3915
|
+
const first2 = (code + 5) % 7;
|
|
3916
|
+
return /* @__PURE__ */ new Set([first2, (first2 + 1) % 7]);
|
|
3917
3917
|
}
|
|
3918
3918
|
if (code >= 11 && code <= 17) return /* @__PURE__ */ new Set([code - 11]);
|
|
3919
3919
|
return fail(ERR.NUM);
|
|
@@ -5157,16 +5157,16 @@ function quasiPeriods(anchor, from, to, frequency2, ctx) {
|
|
|
5157
5157
|
}
|
|
5158
5158
|
function accruedInterest(args, ctx) {
|
|
5159
5159
|
const issue = serialArg(args[0]);
|
|
5160
|
-
const
|
|
5160
|
+
const first2 = serialArg(args[1]);
|
|
5161
5161
|
const settlement = serialArg(args[2]);
|
|
5162
5162
|
const [rate, par] = [num(args[3]), optNum(args, 4, 1e3)];
|
|
5163
5163
|
const frequency2 = int(args[5]);
|
|
5164
5164
|
const basis = basisOf(args, 6);
|
|
5165
5165
|
const fromIssue = args.length > 7 && args[7] !== null ? bool(args[7]) : true;
|
|
5166
5166
|
if (rate <= 0 || par <= 0 || ![1, 2, 4].includes(frequency2) || issue >= settlement) fail(ERR.NUM);
|
|
5167
|
-
const start = fromIssue ? issue : Math.max(issue,
|
|
5167
|
+
const start = fromIssue ? issue : Math.max(issue, first2);
|
|
5168
5168
|
if (start >= settlement) return 0;
|
|
5169
|
-
const dates = quasiPeriods(
|
|
5169
|
+
const dates = quasiPeriods(first2, start, settlement, frequency2, ctx);
|
|
5170
5170
|
const count2 = (a, b) => basis === 0 || basis === 4 ? days360(a, b, basis === 4, ctx) : b - a;
|
|
5171
5171
|
let sum2 = 0;
|
|
5172
5172
|
for (let i = 0; i + 1 < dates.length; i++) {
|
|
@@ -5625,8 +5625,8 @@ function datedFlows(ctx, args) {
|
|
|
5625
5625
|
const values2 = collectNumbers(ctx, [args[0] ?? null]);
|
|
5626
5626
|
const dates = collectNumbers(ctx, [args[1] ?? null]).map(Math.floor);
|
|
5627
5627
|
if (values2.length !== dates.length || values2.length === 0) fail(ERR.NUM);
|
|
5628
|
-
const
|
|
5629
|
-
if (dates.some((d) => d <
|
|
5628
|
+
const first2 = dates[0];
|
|
5629
|
+
if (dates.some((d) => d < first2)) fail(ERR.NUM);
|
|
5630
5630
|
return { values: values2, dates };
|
|
5631
5631
|
}
|
|
5632
5632
|
var xnpv = (rate, values2, dates) => values2.reduce(
|
|
@@ -5798,13 +5798,13 @@ function sheetIndex(host, name) {
|
|
|
5798
5798
|
function prefixSheets(host, prefix, current) {
|
|
5799
5799
|
if (!prefix) return [current];
|
|
5800
5800
|
if (prefix.book !== void 0) return void 0;
|
|
5801
|
-
const
|
|
5802
|
-
if (
|
|
5803
|
-
if (prefix.sheet2 === void 0) return [
|
|
5801
|
+
const first2 = sheetIndex(host, prefix.sheet);
|
|
5802
|
+
if (first2 < 0) return void 0;
|
|
5803
|
+
if (prefix.sheet2 === void 0) return [first2];
|
|
5804
5804
|
const last = sheetIndex(host, prefix.sheet2);
|
|
5805
5805
|
if (last < 0) return void 0;
|
|
5806
5806
|
const out = [];
|
|
5807
|
-
for (let i = Math.min(
|
|
5807
|
+
for (let i = Math.min(first2, last); i <= Math.max(first2, last); i++) out.push(i);
|
|
5808
5808
|
return out;
|
|
5809
5809
|
}
|
|
5810
5810
|
var specRange = (spec2) => normalizeRange({
|
|
@@ -7375,7 +7375,7 @@ function matchingCells(ctx, pairs, target, sameShape) {
|
|
|
7375
7375
|
const tests = pairs.map((p) => makeCriteria(scalar(p.criteria)));
|
|
7376
7376
|
const values2 = matrices[matrices.length - 1];
|
|
7377
7377
|
const out = [];
|
|
7378
|
-
const
|
|
7378
|
+
const first2 = matrices[0];
|
|
7379
7379
|
const holds = (r, c2) => {
|
|
7380
7380
|
for (let i = 0; i < tests.length; i++) {
|
|
7381
7381
|
if (!tests[i](matrices[i].get(r, c2))) return false;
|
|
@@ -7385,23 +7385,23 @@ function matchingCells(ctx, pairs, target, sameShape) {
|
|
|
7385
7385
|
const candidates = indexedCandidates(pairs, matrices);
|
|
7386
7386
|
if (candidates) {
|
|
7387
7387
|
for (const at of candidates) {
|
|
7388
|
-
const r = Math.floor(at /
|
|
7389
|
-
const c2 = at - r *
|
|
7388
|
+
const r = Math.floor(at / first2.cols);
|
|
7389
|
+
const c2 = at - r * first2.cols;
|
|
7390
7390
|
if (holds(r, c2)) out.push(values2.get(r, c2));
|
|
7391
7391
|
}
|
|
7392
7392
|
} else {
|
|
7393
|
-
for (let r = 0; r <
|
|
7394
|
-
for (let c2 = 0; c2 <
|
|
7393
|
+
for (let r = 0; r < first2.rows; r++) {
|
|
7394
|
+
for (let c2 = 0; c2 < first2.cols; c2++) if (holds(r, c2)) out.push(values2.get(r, c2));
|
|
7395
7395
|
}
|
|
7396
7396
|
}
|
|
7397
7397
|
const blankTail = total2 > block && tests.every((test) => test(null)) ? total2 - block : 0;
|
|
7398
7398
|
return { values: out, blankTail };
|
|
7399
7399
|
}
|
|
7400
7400
|
function indexedCandidates(pairs, matrices) {
|
|
7401
|
-
const
|
|
7401
|
+
const first2 = matrices[0];
|
|
7402
7402
|
for (let i = 0; i < pairs.length; i++) {
|
|
7403
7403
|
const m = matrices[i];
|
|
7404
|
-
if (!(pairs[i]?.range instanceof RefValue) || m.cols !==
|
|
7404
|
+
if (!(pairs[i]?.range instanceof RefValue) || m.cols !== first2.cols) continue;
|
|
7405
7405
|
const key = equalityKey(scalar(pairs[i]?.criteria));
|
|
7406
7406
|
if (key === void 0) continue;
|
|
7407
7407
|
const found = positionsOf(m, key);
|
|
@@ -7458,12 +7458,12 @@ var C18 = "Math & Trig";
|
|
|
7458
7458
|
var numbersOf = (values2) => values2.filter((v) => typeof v === "number");
|
|
7459
7459
|
function sumProduct(ctx, args) {
|
|
7460
7460
|
const matrices = args.map((a) => ctx.toMatrix(a));
|
|
7461
|
-
const
|
|
7462
|
-
if (!
|
|
7463
|
-
for (const m of matrices) if (m.rows !==
|
|
7461
|
+
const first2 = matrices[0];
|
|
7462
|
+
if (!first2) fail(ERR.VALUE);
|
|
7463
|
+
for (const m of matrices) if (m.rows !== first2.rows || m.cols !== first2.cols) fail(ERR.VALUE);
|
|
7464
7464
|
let total2 = 0;
|
|
7465
|
-
for (let r = 0; r <
|
|
7466
|
-
for (let c2 = 0; c2 <
|
|
7465
|
+
for (let r = 0; r < first2.rows; r++) {
|
|
7466
|
+
for (let c2 = 0; c2 < first2.cols; c2++) {
|
|
7467
7467
|
let product = 1;
|
|
7468
7468
|
for (const m of matrices) {
|
|
7469
7469
|
const v = m.get(r, c2);
|
|
@@ -11329,9 +11329,9 @@ function visit(node, c2) {
|
|
|
11329
11329
|
let sheet = c2.sheet;
|
|
11330
11330
|
if (node.prefix) {
|
|
11331
11331
|
const sheets = prefixSheets(c2.host, node.prefix, c2.sheet);
|
|
11332
|
-
const
|
|
11333
|
-
if (
|
|
11334
|
-
sheet =
|
|
11332
|
+
const first2 = sheets?.[0];
|
|
11333
|
+
if (first2 === void 0) return;
|
|
11334
|
+
sheet = first2;
|
|
11335
11335
|
}
|
|
11336
11336
|
const defined = findDefinedName(c2.host, node.name, sheet, node.prefix !== void 0);
|
|
11337
11337
|
if (defined) {
|
|
@@ -11469,9 +11469,9 @@ var AreaIndex = class {
|
|
|
11469
11469
|
else this.wide.set(area.sheet, [entry]);
|
|
11470
11470
|
return;
|
|
11471
11471
|
}
|
|
11472
|
-
const
|
|
11472
|
+
const first2 = start.row >> CHUNK_SHIFT;
|
|
11473
11473
|
const last = end.row >> CHUNK_SHIFT;
|
|
11474
|
-
if (last -
|
|
11474
|
+
if (last - first2 + 1 > CHUNKS) {
|
|
11475
11475
|
const cols2 = inner(this.tall, area.sheet);
|
|
11476
11476
|
for (let c2 = start.col; c2 <= end.col; c2++) push2(cols2, c2, entry);
|
|
11477
11477
|
return;
|
|
@@ -11480,7 +11480,7 @@ var AreaIndex = class {
|
|
|
11480
11480
|
for (let c2 = start.col; c2 <= end.col; c2++) {
|
|
11481
11481
|
let chunks = cols.get(c2);
|
|
11482
11482
|
if (!chunks) cols.set(c2, chunks = /* @__PURE__ */ new Map());
|
|
11483
|
-
for (let k =
|
|
11483
|
+
for (let k = first2; k <= last; k++) push2(chunks, k, entry);
|
|
11484
11484
|
}
|
|
11485
11485
|
}
|
|
11486
11486
|
/** Items whose areas intersect `range` on `sheet` (each once). */
|
|
@@ -11521,13 +11521,13 @@ var AreaIndex = class {
|
|
|
11521
11521
|
} else for (const c2 of map.keys()) if (c2 >= start.col && c2 <= end.col) visit2(c2);
|
|
11522
11522
|
};
|
|
11523
11523
|
const chunked = this.chunked.get(sheet);
|
|
11524
|
-
const
|
|
11524
|
+
const first2 = start.row >> CHUNK_SHIFT;
|
|
11525
11525
|
const last = end.row >> CHUNK_SHIFT;
|
|
11526
11526
|
columns(chunked, (c2) => {
|
|
11527
11527
|
const chunks = chunked?.get(c2);
|
|
11528
|
-
if (last -
|
|
11529
|
-
for (let k =
|
|
11530
|
-
} else for (const [k, list] of chunks) if (k >=
|
|
11528
|
+
if (last - first2 + 1 <= chunks.size) {
|
|
11529
|
+
for (let k = first2; k <= last; k++) check3(chunks.get(k));
|
|
11530
|
+
} else for (const [k, list] of chunks) if (k >= first2 && k <= last) check3(list);
|
|
11531
11531
|
});
|
|
11532
11532
|
const tall = this.tall.get(sheet);
|
|
11533
11533
|
columns(tall, (c2) => check3(tall?.get(c2)));
|
|
@@ -11998,8 +11998,8 @@ function formulaOrder(nodes, successors) {
|
|
|
11998
11998
|
const ranks = /* @__PURE__ */ new Map();
|
|
11999
11999
|
const components = stronglyConnected(nodes, successors).map((members, rank4) => {
|
|
12000
12000
|
for (const member of members) ranks.set(member, rank4);
|
|
12001
|
-
const
|
|
12002
|
-
return { nodes: members, cyclic: members.length > 1 || successors(
|
|
12001
|
+
const first2 = members[0];
|
|
12002
|
+
return { nodes: members, cyclic: members.length > 1 || successors(first2).includes(first2) };
|
|
12003
12003
|
});
|
|
12004
12004
|
return { components, ranks };
|
|
12005
12005
|
}
|
|
@@ -12038,9 +12038,9 @@ function sameRange(a, b) {
|
|
|
12038
12038
|
return a.start.row === b.start.row && a.start.col === b.start.col && a.end.row === b.end.row && a.end.col === b.end.col;
|
|
12039
12039
|
}
|
|
12040
12040
|
function boundingBox(ranges) {
|
|
12041
|
-
const
|
|
12042
|
-
const start = { ...
|
|
12043
|
-
const end = { ...
|
|
12041
|
+
const first2 = ranges[0];
|
|
12042
|
+
const start = { ...first2.start };
|
|
12043
|
+
const end = { ...first2.end };
|
|
12044
12044
|
for (const r of ranges) {
|
|
12045
12045
|
start.row = Math.min(start.row, r.start.row);
|
|
12046
12046
|
start.col = Math.min(start.col, r.start.col);
|
|
@@ -12177,13 +12177,13 @@ var EngineCore = class extends EngineHost {
|
|
|
12177
12177
|
this.dynamicCycleHits = /* @__PURE__ */ new Set();
|
|
12178
12178
|
try {
|
|
12179
12179
|
for (const component of order.components) {
|
|
12180
|
-
const
|
|
12180
|
+
const first2 = component.nodes[0];
|
|
12181
12181
|
if (component.cyclic) {
|
|
12182
12182
|
const iterate = this.workbook.iterate;
|
|
12183
12183
|
if (iterate) this.iterateGroup(component.nodes, iterate);
|
|
12184
12184
|
else for (const node of component.nodes) this.markCycle(node);
|
|
12185
|
-
} else if (this.pending.has(
|
|
12186
|
-
this.computeFrom(
|
|
12185
|
+
} else if (this.pending.has(first2)) {
|
|
12186
|
+
this.computeFrom(first2);
|
|
12187
12187
|
}
|
|
12188
12188
|
}
|
|
12189
12189
|
} finally {
|
|
@@ -12526,24 +12526,24 @@ function mergeSpacedAreas(tokens2) {
|
|
|
12526
12526
|
const out = [];
|
|
12527
12527
|
const plainCell = (t) => t?.kind === "ref" && t.ref?.kind === "cell" && !t.spill;
|
|
12528
12528
|
for (let i = 0; i < tokens2.length; i++) {
|
|
12529
|
-
const
|
|
12529
|
+
const first2 = tokens2[i];
|
|
12530
12530
|
let j = i + 1;
|
|
12531
12531
|
while (tokens2[j]?.kind === "ws") j++;
|
|
12532
12532
|
let k = j + 1;
|
|
12533
12533
|
while (tokens2[k]?.kind === "ws") k++;
|
|
12534
12534
|
const colon = tokens2[j];
|
|
12535
12535
|
const last = tokens2[k];
|
|
12536
|
-
if (plainCell(
|
|
12536
|
+
if (plainCell(first2) && colon?.kind === "op" && colon.text === ":" && plainCell(last) && !last?.prefix && k > i + 2 && first2.ref && last?.ref) {
|
|
12537
12537
|
const text2 = tokens2.slice(i, k + 1).map((t) => t.text).join("");
|
|
12538
12538
|
out.push({
|
|
12539
|
-
...
|
|
12539
|
+
...first2,
|
|
12540
12540
|
text: text2,
|
|
12541
|
-
ref: { kind: "area", start:
|
|
12541
|
+
ref: { kind: "area", start: first2.ref.start, end: last.ref.start }
|
|
12542
12542
|
});
|
|
12543
12543
|
i = k;
|
|
12544
12544
|
continue;
|
|
12545
12545
|
}
|
|
12546
|
-
out.push(
|
|
12546
|
+
out.push(first2);
|
|
12547
12547
|
}
|
|
12548
12548
|
return out;
|
|
12549
12549
|
}
|
|
@@ -12595,10 +12595,10 @@ function renameSheetInFormula(formula, oldName, newName) {
|
|
|
12595
12595
|
for (const token of tokens2) {
|
|
12596
12596
|
const prefix = token.prefix;
|
|
12597
12597
|
if (!prefix || prefix.book !== void 0) continue;
|
|
12598
|
-
const
|
|
12598
|
+
const first2 = prefix.sheet.toLowerCase() === lower2;
|
|
12599
12599
|
const second = prefix.sheet2?.toLowerCase() === lower2;
|
|
12600
|
-
if (!
|
|
12601
|
-
const renamed = { ...prefix, sheet:
|
|
12600
|
+
if (!first2 && !second) continue;
|
|
12601
|
+
const renamed = { ...prefix, sheet: first2 ? newName : prefix.sheet };
|
|
12602
12602
|
if (prefix.sheet2 !== void 0) renamed.sheet2 = second ? newName : prefix.sheet2;
|
|
12603
12603
|
const text2 = prefixText(renamed);
|
|
12604
12604
|
token.text = text2 + token.text.slice(prefix.text.length);
|
|
@@ -13159,7 +13159,8 @@ function parseXml(xml, options = {}) {
|
|
|
13159
13159
|
}).parseFromString(xml, "application/xml");
|
|
13160
13160
|
} catch (error) {
|
|
13161
13161
|
throw new Error(
|
|
13162
|
-
`Invalid ${label2} XML: ${error instanceof Error ? error.message : String(error)}
|
|
13162
|
+
`Invalid ${label2} XML: ${error instanceof Error ? error.message : String(error)}`,
|
|
13163
|
+
{ cause: error }
|
|
13163
13164
|
);
|
|
13164
13165
|
}
|
|
13165
13166
|
if (parseError || !parsed.documentElement)
|
|
@@ -13807,7 +13808,8 @@ async function readZipParts(input, limits = {}) {
|
|
|
13807
13808
|
zip = await JSZip__default.default.loadAsync(bytes);
|
|
13808
13809
|
} catch (error) {
|
|
13809
13810
|
throw new Error(
|
|
13810
|
-
`Not a valid XLSX package: ${error instanceof Error ? error.message : String(error)}
|
|
13811
|
+
`Not a valid XLSX package: ${error instanceof Error ? error.message : String(error)}`,
|
|
13812
|
+
{ cause: error }
|
|
13811
13813
|
);
|
|
13812
13814
|
}
|
|
13813
13815
|
const entries = Object.values(zip.files).filter((entry) => !entry.dir);
|
|
@@ -16801,9 +16803,9 @@ function seriesXml(chart, series, index2) {
|
|
|
16801
16803
|
var axes = (horizontal, scatter2) => {
|
|
16802
16804
|
const common = '<c:scaling><c:orientation val="minMax"/></c:scaling><c:delete val="0"/>';
|
|
16803
16805
|
const ticks = '<c:numFmt formatCode="General" sourceLinked="1"/><c:majorTickMark val="out"/><c:minorTickMark val="none"/><c:tickLblPos val="nextTo"/>';
|
|
16804
|
-
const
|
|
16806
|
+
const first2 = scatter2 ? `<c:valAx><c:axId val="500000001"/>${common}<c:axPos val="b"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:crossBetween val="midCat"/></c:valAx>` : `<c:catAx><c:axId val="500000001"/>${common}<c:axPos val="${horizontal ? "l" : "b"}"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:auto val="1"/><c:lblAlgn val="ctr"/><c:lblOffset val="100"/><c:noMultiLvlLbl val="0"/></c:catAx>`;
|
|
16805
16807
|
const second = `<c:valAx><c:axId val="500000002"/>${common}<c:axPos val="${horizontal ? "b" : "l"}"/><c:majorGridlines/>${ticks}<c:crossAx val="500000001"/><c:crosses val="autoZero"/><c:crossBetween val="${scatter2 ? "midCat" : "between"}"/></c:valAx>`;
|
|
16806
|
-
return
|
|
16808
|
+
return first2 + second;
|
|
16807
16809
|
};
|
|
16808
16810
|
var AX_IDS = '<c:axId val="500000001"/><c:axId val="500000002"/>';
|
|
16809
16811
|
function plotXml(chart) {
|
|
@@ -18212,8 +18214,8 @@ function ruleXml(rule, styles, anchor) {
|
|
|
18212
18214
|
}
|
|
18213
18215
|
function conditionalFormatsXml(formats, styles) {
|
|
18214
18216
|
return formats.filter((format) => format.ranges.length && format.rules.length).map((format) => {
|
|
18215
|
-
const
|
|
18216
|
-
const anchor =
|
|
18217
|
+
const first2 = format.ranges[0];
|
|
18218
|
+
const anchor = first2 ? formatAddress(first2.start) : "A1";
|
|
18217
18219
|
const rules = format.rules.map((rule) => ruleXml(rule, styles, anchor)).join("");
|
|
18218
18220
|
return `<conditionalFormatting sqref="${format.ranges.map((r) => formatRange(r)).join(" ")}">${rules}</conditionalFormatting>`;
|
|
18219
18221
|
}).join("");
|
|
@@ -18920,10 +18922,10 @@ function dimensionXml(sheet) {
|
|
|
18920
18922
|
function sheetViewsXml(sheet, tabSelected) {
|
|
18921
18923
|
const source2 = snapshotElement(sheet, "sheetViews");
|
|
18922
18924
|
if (source2 && sameModel(readSheetView(source2), sheet.view)) {
|
|
18923
|
-
const
|
|
18924
|
-
if (
|
|
18925
|
-
if (tabSelected)
|
|
18926
|
-
else
|
|
18925
|
+
const first2 = elements(source2).find((node) => node.localName === "sheetView");
|
|
18926
|
+
if (first2) {
|
|
18927
|
+
if (tabSelected) first2.setAttribute("tabSelected", "1");
|
|
18928
|
+
else first2.removeAttribute("tabSelected");
|
|
18927
18929
|
}
|
|
18928
18930
|
return outerXml(source2);
|
|
18929
18931
|
}
|
|
@@ -20748,14 +20750,14 @@ var TEXT_NUMBER = /^(.*?)(\d+)(\D*)$/;
|
|
|
20748
20750
|
var QUARTER = /^(q|qtr|quarter)(\s?)([1-4])$/i;
|
|
20749
20751
|
function textSeries(texts) {
|
|
20750
20752
|
const lists = texts.map(listMatch);
|
|
20751
|
-
const
|
|
20752
|
-
if (
|
|
20753
|
+
const first2 = lists[0];
|
|
20754
|
+
if (first2 && lists.every((m) => m && m.list === first2.list)) {
|
|
20753
20755
|
const second = lists[1];
|
|
20754
|
-
const step2 = second ? mod(second.index -
|
|
20756
|
+
const step2 = second ? mod(second.index - first2.index, first2.list.length) || 1 : 1;
|
|
20755
20757
|
const sample = texts[0] ?? "";
|
|
20756
20758
|
return (k) => ({
|
|
20757
20759
|
kind: "value",
|
|
20758
|
-
value: matchCase(
|
|
20760
|
+
value: matchCase(first2.list[mod(first2.index + step2 * k, first2.list.length)] ?? "", sample)
|
|
20759
20761
|
});
|
|
20760
20762
|
}
|
|
20761
20763
|
const quarters = texts.map((t) => QUARTER.exec(t));
|
|
@@ -20795,11 +20797,11 @@ function formatShowsDate(code) {
|
|
|
20795
20797
|
function dateCode(format) {
|
|
20796
20798
|
return (format.split(";")[0] ?? "").replace(/"[^"]*"|\\.|_.|\*./g, "").replace(/\[(h+|m+|s+)\]/gi, "$1").replace(/\[[^\]]*\]/g, "").replace(/am\/pm|a\/p/gi, "").toLowerCase();
|
|
20797
20799
|
}
|
|
20798
|
-
function singleDateSeries(
|
|
20800
|
+
function singleDateSeries(first2, format) {
|
|
20799
20801
|
const code = dateCode(format);
|
|
20800
|
-
if (!formatShowsDate(code)) return (k) => ({ kind: "value", value:
|
|
20801
|
-
const base = /[hs]/.test(code) ?
|
|
20802
|
-
return (k) => ({ kind: "value", value: k === 0 ?
|
|
20802
|
+
if (!formatShowsDate(code)) return (k) => ({ kind: "value", value: first2 + k / 24 });
|
|
20803
|
+
const base = /[hs]/.test(code) ? first2 : Math.floor(first2);
|
|
20804
|
+
return (k) => ({ kind: "value", value: k === 0 ? first2 : base + k });
|
|
20803
20805
|
}
|
|
20804
20806
|
function dateSeries(serials, date1904, format) {
|
|
20805
20807
|
if (serials.length === 1) return singleDateSeries(serials[0] ?? 0, format);
|
|
@@ -20808,9 +20810,9 @@ function dateSeries(serials, date1904, format) {
|
|
|
20808
20810
|
const sameDay = dates.every((d) => d.getUTCDate() === dates[0]?.getUTCDate());
|
|
20809
20811
|
const stepMonths = (monthIndex[1] ?? 0) - (monthIndex[0] ?? 0);
|
|
20810
20812
|
const evenMonths = stepMonths !== 0 && monthIndex.every((m, i) => m - (monthIndex[0] ?? 0) === stepMonths * i);
|
|
20811
|
-
const
|
|
20813
|
+
const first2 = serials[0] ?? 0;
|
|
20812
20814
|
if (sameDay && evenMonths)
|
|
20813
|
-
return (k) => ({ kind: "value", value: addMonths2(
|
|
20815
|
+
return (k) => ({ kind: "value", value: addMonths2(first2, stepMonths * k, date1904) });
|
|
20814
20816
|
const trend = linearTrend(serials);
|
|
20815
20817
|
return (k) => ({ kind: "value", value: trend(k) });
|
|
20816
20818
|
}
|
|
@@ -22283,9 +22285,9 @@ function applyTotalsRow(sheet, table2) {
|
|
|
22283
22285
|
const row2 = table2.range.end.row;
|
|
22284
22286
|
const { columns } = table2;
|
|
22285
22287
|
if (!columns.some((c2) => c2.totalsRowFunction || c2.totalsRowLabel)) {
|
|
22286
|
-
const
|
|
22288
|
+
const first2 = columns[0];
|
|
22287
22289
|
const last = columns[columns.length - 1];
|
|
22288
|
-
if (
|
|
22290
|
+
if (first2 && columns.length > 1) first2.totalsRowLabel = "Total";
|
|
22289
22291
|
if (last) last.totalsRowFunction = "sum";
|
|
22290
22292
|
}
|
|
22291
22293
|
columns.forEach((column, i) => {
|
|
@@ -22608,25 +22610,25 @@ function removeDuplicates(ctx, s, range, columns, hasHeader) {
|
|
|
22608
22610
|
const { workbook } = ctx;
|
|
22609
22611
|
const sheet = sheetAt(workbook, s);
|
|
22610
22612
|
const r = normalizeRange(range);
|
|
22611
|
-
const
|
|
22612
|
-
if (
|
|
22613
|
-
const data = { start: { row:
|
|
22613
|
+
const first2 = hasHeader ? r.start.row + 1 : r.start.row;
|
|
22614
|
+
if (first2 > r.end.row) return { removed: 0, remaining: 0 };
|
|
22615
|
+
const data = { start: { row: first2, col: r.start.col }, end: r.end };
|
|
22614
22616
|
if (sheet.merges.some((m) => rangesIntersect(m, data)))
|
|
22615
22617
|
throw new Error("Cannot remove duplicates from a range that contains merged cells.");
|
|
22616
22618
|
const keyCols = columns.filter((c2) => c2 >= r.start.col && c2 <= r.end.col);
|
|
22617
22619
|
const cols = keyCols.length ? keyCols : Array.from({ length: r.end.col - r.start.col + 1 }, (_v, i) => r.start.col + i);
|
|
22618
|
-
let lastStored =
|
|
22620
|
+
let lastStored = first2;
|
|
22619
22621
|
for (const row2 of sheet.rows.keys()) if (row2 > lastStored) lastStored = row2;
|
|
22620
22622
|
const lastRow = Math.min(r.end.row, lastStored);
|
|
22621
22623
|
const keep2 = [];
|
|
22622
22624
|
const seen = /* @__PURE__ */ new Set();
|
|
22623
|
-
for (let row2 =
|
|
22625
|
+
for (let row2 = first2; row2 <= lastRow; row2++) {
|
|
22624
22626
|
const key = cols.map((col) => displayText(workbook, getCell(sheet, row2, col)).toLowerCase()).join("\0");
|
|
22625
22627
|
if (seen.has(key)) continue;
|
|
22626
22628
|
seen.add(key);
|
|
22627
22629
|
keep2.push(row2);
|
|
22628
22630
|
}
|
|
22629
|
-
const removed = lastRow -
|
|
22631
|
+
const removed = lastRow - first2 + 1 - keep2.length;
|
|
22630
22632
|
if (!removed) return { removed: 0, remaining: keep2.length };
|
|
22631
22633
|
ctx.run(
|
|
22632
22634
|
"Remove duplicates",
|
|
@@ -22639,11 +22641,11 @@ function removeDuplicates(ctx, s, range, columns, hasHeader) {
|
|
|
22639
22641
|
if (col >= r.start.col && col <= r.end.col) cells.set(col, cell);
|
|
22640
22642
|
return { row: row2, cells };
|
|
22641
22643
|
});
|
|
22642
|
-
for (let row2 =
|
|
22644
|
+
for (let row2 = first2; row2 <= lastRow; row2++)
|
|
22643
22645
|
for (const col of [...sheet.rows.get(row2)?.keys() ?? []])
|
|
22644
22646
|
if (col >= r.start.col && col <= r.end.col) deleteCell(sheet, row2, col);
|
|
22645
22647
|
moved.forEach(({ row: from, cells }, i) => {
|
|
22646
|
-
const row2 =
|
|
22648
|
+
const row2 = first2 + i;
|
|
22647
22649
|
for (const [col, cell] of cells) {
|
|
22648
22650
|
if (cell.formula !== void 0 && row2 !== from)
|
|
22649
22651
|
cell.formula = translateFormula(cell.formula, row2 - from, 0);
|
|
@@ -23458,9 +23460,9 @@ function merge(ctx, s, range, mode) {
|
|
|
23458
23460
|
sheet.merges = sheet.merges.filter((m) => !rangesIntersect(m, r));
|
|
23459
23461
|
for (const target of targets) {
|
|
23460
23462
|
const anchor = target.start;
|
|
23461
|
-
const [
|
|
23462
|
-
if (
|
|
23463
|
-
const source2 = getCell(sheet,
|
|
23463
|
+
const [first2] = filledCells(sheet, target);
|
|
23464
|
+
if (first2 && (first2[0] !== anchor.row || first2[1] !== anchor.col)) {
|
|
23465
|
+
const source2 = getCell(sheet, first2[0], first2[1]);
|
|
23464
23466
|
const corner2 = getCell(sheet, anchor.row, anchor.col);
|
|
23465
23467
|
if (source2) {
|
|
23466
23468
|
const moved = structuredClone(source2);
|
|
@@ -24085,10 +24087,10 @@ var LINE_HEIGHTS = [
|
|
|
24085
24087
|
[72, 93.75]
|
|
24086
24088
|
];
|
|
24087
24089
|
function lineHeightPoints(sizePt) {
|
|
24088
|
-
const
|
|
24090
|
+
const first2 = LINE_HEIGHTS[0];
|
|
24089
24091
|
const last = LINE_HEIGHTS[LINE_HEIGHTS.length - 1];
|
|
24090
24092
|
let height;
|
|
24091
|
-
if (sizePt <=
|
|
24093
|
+
if (sizePt <= first2[0]) height = first2[1] / first2[0] * sizePt;
|
|
24092
24094
|
else if (sizePt >= last[0]) height = last[1] / last[0] * sizePt;
|
|
24093
24095
|
else {
|
|
24094
24096
|
let i = 1;
|
|
@@ -25490,8 +25492,8 @@ function navigate(sheet, from, key, pageRows = 20) {
|
|
|
25490
25492
|
return { row: r, col };
|
|
25491
25493
|
}
|
|
25492
25494
|
case "home": {
|
|
25493
|
-
const
|
|
25494
|
-
return { row: row2, col:
|
|
25495
|
+
const first2 = isColHidden(0) ? step(0, 1, MAX_COL, isColHidden) : 0;
|
|
25496
|
+
return { row: row2, col: first2 };
|
|
25495
25497
|
}
|
|
25496
25498
|
case "end": {
|
|
25497
25499
|
const cols = [...filledInRow(sheet, row2)].filter((c2) => !isColHidden(c2));
|
|
@@ -25696,8 +25698,8 @@ function chartView(workbook, sheetIndex2, chart, evaluateRef) {
|
|
|
25696
25698
|
(_, i) => firstCats[i] !== void 0 ? toText2(firstCats[i] ?? null) : String(i + 1)
|
|
25697
25699
|
);
|
|
25698
25700
|
if (radial) {
|
|
25699
|
-
const
|
|
25700
|
-
if (
|
|
25701
|
+
const first2 = series[0];
|
|
25702
|
+
if (first2) first2.pointColors = first2.values.map((_, i) => autoSeriesColor(theme2, i));
|
|
25701
25703
|
for (const s of series.slice(1))
|
|
25702
25704
|
s.pointColors = s.values.map((_, i) => autoSeriesColor(theme2, i));
|
|
25703
25705
|
}
|
|
@@ -26055,10 +26057,10 @@ function radarSvg(model, area) {
|
|
|
26055
26057
|
var FONT_FAMILY = "Calibri, Carlito, Arial, sans-serif";
|
|
26056
26058
|
function legendEntries(model) {
|
|
26057
26059
|
if (model.type === "pie" || model.type === "doughnut") {
|
|
26058
|
-
const
|
|
26060
|
+
const first2 = model.series[0];
|
|
26059
26061
|
return model.categories.map((label2, i) => ({
|
|
26060
26062
|
label: label2,
|
|
26061
|
-
color:
|
|
26063
|
+
color: first2?.pointColors?.[i] ?? first2?.color ?? "#4472C4"
|
|
26062
26064
|
}));
|
|
26063
26065
|
}
|
|
26064
26066
|
return model.series.map((s) => ({ label: s.name, color: s.color }));
|