ooxml-core 0.19.0 → 0.21.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/README.md +21 -43
- package/dist/automation/index.cjs +195 -193
- package/dist/automation/index.mjs +195 -193
- package/dist/chart/axis-nice.d.ts +97 -0
- package/dist/chart/axis-nice.d.ts.map +1 -0
- package/dist/chart/histogram-binning.d.ts +40 -0
- package/dist/chart/histogram-binning.d.ts.map +1 -0
- package/dist/chart/index.cjs +167 -0
- package/dist/chart/index.d.ts +2 -0
- package/dist/chart/index.d.ts.map +1 -1
- package/dist/chart/index.mjs +162 -1
- 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 +169 -1
- package/dist/index.mjs +169 -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/pptx/automation/index.cjs +1572 -863
- package/dist/pptx/automation/index.d.ts +4 -3
- package/dist/pptx/automation/index.d.ts.map +1 -1
- package/dist/pptx/automation/index.mjs +1572 -863
- package/dist/pptx/chunks/color-ref-BM66NGFP.d.ts +42 -0
- package/dist/pptx/chunks/color-ref-BM66NGFP.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-D0yGoLyw.d.ts → index-CcQTCBnT.d.ts} +63 -479
- package/dist/pptx/chunks/index-CcQTCBnT.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-BtBj3VG1.d.ts → index-DHoPgFcH.d.ts} +529 -11
- package/dist/pptx/chunks/index-DHoPgFcH.d.ts.map +1 -0
- package/dist/pptx/chunks/{text-operations-GuisjlbR.d.ts → text-operations-BzdehTeY.d.ts} +50 -51
- package/dist/pptx/chunks/text-operations-BzdehTeY.d.ts.map +1 -0
- package/dist/pptx/cli/index.cjs +1204 -489
- package/dist/pptx/cli/index.d.ts +1 -1
- package/dist/pptx/cli/index.mjs +1204 -489
- package/dist/pptx/converter/index.cjs +8 -5
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/converter/index.mjs +8 -5
- package/dist/pptx/index.cjs +1699 -989
- package/dist/pptx/index.d.ts +5 -4
- package/dist/pptx/index.mjs +1698 -990
- package/dist/pptx/ui/index.cjs +510 -0
- package/dist/pptx/ui/index.d.ts +80 -0
- package/dist/pptx/ui/index.d.ts.map +1 -0
- package/dist/pptx/ui/index.mjs +499 -0
- 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 +42 -4
- package/dist/pptx/chunks/index-BtBj3VG1.d.ts.map +0 -1
- package/dist/pptx/chunks/index-D0yGoLyw.d.ts.map +0 -1
- package/dist/pptx/chunks/text-operations-GuisjlbR.d.ts.map +0 -1
package/dist/xlsx/index.mjs
CHANGED
|
@@ -1640,8 +1640,8 @@ function fitNumber(value, format, options) {
|
|
|
1640
1640
|
const date1904 = options.date1904 ?? false;
|
|
1641
1641
|
const width = options.width ?? 0;
|
|
1642
1642
|
const fits = (text2) => (options.measure ? options.measure(text2) : text2.length) <= width;
|
|
1643
|
-
const
|
|
1644
|
-
if (fits(
|
|
1643
|
+
const first2 = formatNumber(value, format, date1904);
|
|
1644
|
+
if (fits(first2.text) || first2.text === OVERFLOW_TEXT) return first2;
|
|
1645
1645
|
const choice = chooseSection(compileFormat(format), value);
|
|
1646
1646
|
const general = choice && !choice.section.number && !choice.section.fraction && choice.section.tokens.some((t) => t.t === "general");
|
|
1647
1647
|
if (general) {
|
|
@@ -1651,7 +1651,7 @@ function fitNumber(value, format, options) {
|
|
|
1651
1651
|
}
|
|
1652
1652
|
}
|
|
1653
1653
|
const fill2 = hashFill(options);
|
|
1654
|
-
return
|
|
1654
|
+
return first2.color ? { text: fill2, color: first2.color } : { text: fill2 };
|
|
1655
1655
|
}
|
|
1656
1656
|
function formatNumber(value, format, date1904, generalWidth) {
|
|
1657
1657
|
if (!Number.isFinite(value)) return { text: "#NUM!" };
|
|
@@ -2634,9 +2634,9 @@ function serialToYmd(serial, date1904 = date1904Mode) {
|
|
|
2634
2634
|
return { year: d.getUTCFullYear(), month: d.getUTCMonth() + 1, day: d.getUTCDate() };
|
|
2635
2635
|
}
|
|
2636
2636
|
function monthStartSerial(year, month0, date1904) {
|
|
2637
|
-
const
|
|
2638
|
-
|
|
2639
|
-
const days = Math.round((
|
|
2637
|
+
const first2 = /* @__PURE__ */ new Date(0);
|
|
2638
|
+
first2.setUTCFullYear(year, month0, 1);
|
|
2639
|
+
const days = Math.round((first2.getTime() - (date1904 ? EPOCH_19042 : EPOCH_19002)) / DAY_MS);
|
|
2640
2640
|
return !date1904 && days < 61 ? days - 1 : days;
|
|
2641
2641
|
}
|
|
2642
2642
|
function ymdToSerial(year, month, day, date1904 = date1904Mode) {
|
|
@@ -3704,9 +3704,9 @@ function percentRank(values2, x, digits2, exclusive) {
|
|
|
3704
3704
|
const s = sorted(values2);
|
|
3705
3705
|
const n2 = s.length;
|
|
3706
3706
|
if (n2 === 0 || digits2 < 1) fail(ERR.NUM);
|
|
3707
|
-
const
|
|
3707
|
+
const first2 = s[0];
|
|
3708
3708
|
const last = s[n2 - 1];
|
|
3709
|
-
if (x <
|
|
3709
|
+
if (x < first2 || x > last) fail(ERR.NA);
|
|
3710
3710
|
let rank4;
|
|
3711
3711
|
const lower2 = s.filter((v) => v < x).length;
|
|
3712
3712
|
const exact = s.includes(x);
|
|
@@ -3906,8 +3906,8 @@ function weekendDays(value) {
|
|
|
3906
3906
|
}
|
|
3907
3907
|
const code = Math.trunc(num(v));
|
|
3908
3908
|
if (code >= 1 && code <= 7) {
|
|
3909
|
-
const
|
|
3910
|
-
return /* @__PURE__ */ new Set([
|
|
3909
|
+
const first2 = (code + 5) % 7;
|
|
3910
|
+
return /* @__PURE__ */ new Set([first2, (first2 + 1) % 7]);
|
|
3911
3911
|
}
|
|
3912
3912
|
if (code >= 11 && code <= 17) return /* @__PURE__ */ new Set([code - 11]);
|
|
3913
3913
|
return fail(ERR.NUM);
|
|
@@ -5151,16 +5151,16 @@ function quasiPeriods(anchor, from, to, frequency2, ctx) {
|
|
|
5151
5151
|
}
|
|
5152
5152
|
function accruedInterest(args, ctx) {
|
|
5153
5153
|
const issue = serialArg(args[0]);
|
|
5154
|
-
const
|
|
5154
|
+
const first2 = serialArg(args[1]);
|
|
5155
5155
|
const settlement = serialArg(args[2]);
|
|
5156
5156
|
const [rate, par] = [num(args[3]), optNum(args, 4, 1e3)];
|
|
5157
5157
|
const frequency2 = int(args[5]);
|
|
5158
5158
|
const basis = basisOf(args, 6);
|
|
5159
5159
|
const fromIssue = args.length > 7 && args[7] !== null ? bool(args[7]) : true;
|
|
5160
5160
|
if (rate <= 0 || par <= 0 || ![1, 2, 4].includes(frequency2) || issue >= settlement) fail(ERR.NUM);
|
|
5161
|
-
const start = fromIssue ? issue : Math.max(issue,
|
|
5161
|
+
const start = fromIssue ? issue : Math.max(issue, first2);
|
|
5162
5162
|
if (start >= settlement) return 0;
|
|
5163
|
-
const dates = quasiPeriods(
|
|
5163
|
+
const dates = quasiPeriods(first2, start, settlement, frequency2, ctx);
|
|
5164
5164
|
const count2 = (a, b) => basis === 0 || basis === 4 ? days360(a, b, basis === 4, ctx) : b - a;
|
|
5165
5165
|
let sum2 = 0;
|
|
5166
5166
|
for (let i = 0; i + 1 < dates.length; i++) {
|
|
@@ -5619,8 +5619,8 @@ function datedFlows(ctx, args) {
|
|
|
5619
5619
|
const values2 = collectNumbers(ctx, [args[0] ?? null]);
|
|
5620
5620
|
const dates = collectNumbers(ctx, [args[1] ?? null]).map(Math.floor);
|
|
5621
5621
|
if (values2.length !== dates.length || values2.length === 0) fail(ERR.NUM);
|
|
5622
|
-
const
|
|
5623
|
-
if (dates.some((d) => d <
|
|
5622
|
+
const first2 = dates[0];
|
|
5623
|
+
if (dates.some((d) => d < first2)) fail(ERR.NUM);
|
|
5624
5624
|
return { values: values2, dates };
|
|
5625
5625
|
}
|
|
5626
5626
|
var xnpv = (rate, values2, dates) => values2.reduce(
|
|
@@ -5792,13 +5792,13 @@ function sheetIndex(host, name) {
|
|
|
5792
5792
|
function prefixSheets(host, prefix, current) {
|
|
5793
5793
|
if (!prefix) return [current];
|
|
5794
5794
|
if (prefix.book !== void 0) return void 0;
|
|
5795
|
-
const
|
|
5796
|
-
if (
|
|
5797
|
-
if (prefix.sheet2 === void 0) return [
|
|
5795
|
+
const first2 = sheetIndex(host, prefix.sheet);
|
|
5796
|
+
if (first2 < 0) return void 0;
|
|
5797
|
+
if (prefix.sheet2 === void 0) return [first2];
|
|
5798
5798
|
const last = sheetIndex(host, prefix.sheet2);
|
|
5799
5799
|
if (last < 0) return void 0;
|
|
5800
5800
|
const out = [];
|
|
5801
|
-
for (let i = Math.min(
|
|
5801
|
+
for (let i = Math.min(first2, last); i <= Math.max(first2, last); i++) out.push(i);
|
|
5802
5802
|
return out;
|
|
5803
5803
|
}
|
|
5804
5804
|
var specRange = (spec2) => normalizeRange({
|
|
@@ -7369,7 +7369,7 @@ function matchingCells(ctx, pairs, target, sameShape) {
|
|
|
7369
7369
|
const tests = pairs.map((p) => makeCriteria(scalar(p.criteria)));
|
|
7370
7370
|
const values2 = matrices[matrices.length - 1];
|
|
7371
7371
|
const out = [];
|
|
7372
|
-
const
|
|
7372
|
+
const first2 = matrices[0];
|
|
7373
7373
|
const holds = (r, c2) => {
|
|
7374
7374
|
for (let i = 0; i < tests.length; i++) {
|
|
7375
7375
|
if (!tests[i](matrices[i].get(r, c2))) return false;
|
|
@@ -7379,23 +7379,23 @@ function matchingCells(ctx, pairs, target, sameShape) {
|
|
|
7379
7379
|
const candidates = indexedCandidates(pairs, matrices);
|
|
7380
7380
|
if (candidates) {
|
|
7381
7381
|
for (const at of candidates) {
|
|
7382
|
-
const r = Math.floor(at /
|
|
7383
|
-
const c2 = at - r *
|
|
7382
|
+
const r = Math.floor(at / first2.cols);
|
|
7383
|
+
const c2 = at - r * first2.cols;
|
|
7384
7384
|
if (holds(r, c2)) out.push(values2.get(r, c2));
|
|
7385
7385
|
}
|
|
7386
7386
|
} else {
|
|
7387
|
-
for (let r = 0; r <
|
|
7388
|
-
for (let c2 = 0; c2 <
|
|
7387
|
+
for (let r = 0; r < first2.rows; r++) {
|
|
7388
|
+
for (let c2 = 0; c2 < first2.cols; c2++) if (holds(r, c2)) out.push(values2.get(r, c2));
|
|
7389
7389
|
}
|
|
7390
7390
|
}
|
|
7391
7391
|
const blankTail = total2 > block && tests.every((test) => test(null)) ? total2 - block : 0;
|
|
7392
7392
|
return { values: out, blankTail };
|
|
7393
7393
|
}
|
|
7394
7394
|
function indexedCandidates(pairs, matrices) {
|
|
7395
|
-
const
|
|
7395
|
+
const first2 = matrices[0];
|
|
7396
7396
|
for (let i = 0; i < pairs.length; i++) {
|
|
7397
7397
|
const m = matrices[i];
|
|
7398
|
-
if (!(pairs[i]?.range instanceof RefValue) || m.cols !==
|
|
7398
|
+
if (!(pairs[i]?.range instanceof RefValue) || m.cols !== first2.cols) continue;
|
|
7399
7399
|
const key = equalityKey(scalar(pairs[i]?.criteria));
|
|
7400
7400
|
if (key === void 0) continue;
|
|
7401
7401
|
const found = positionsOf(m, key);
|
|
@@ -7452,12 +7452,12 @@ var C18 = "Math & Trig";
|
|
|
7452
7452
|
var numbersOf = (values2) => values2.filter((v) => typeof v === "number");
|
|
7453
7453
|
function sumProduct(ctx, args) {
|
|
7454
7454
|
const matrices = args.map((a) => ctx.toMatrix(a));
|
|
7455
|
-
const
|
|
7456
|
-
if (!
|
|
7457
|
-
for (const m of matrices) if (m.rows !==
|
|
7455
|
+
const first2 = matrices[0];
|
|
7456
|
+
if (!first2) fail(ERR.VALUE);
|
|
7457
|
+
for (const m of matrices) if (m.rows !== first2.rows || m.cols !== first2.cols) fail(ERR.VALUE);
|
|
7458
7458
|
let total2 = 0;
|
|
7459
|
-
for (let r = 0; r <
|
|
7460
|
-
for (let c2 = 0; c2 <
|
|
7459
|
+
for (let r = 0; r < first2.rows; r++) {
|
|
7460
|
+
for (let c2 = 0; c2 < first2.cols; c2++) {
|
|
7461
7461
|
let product = 1;
|
|
7462
7462
|
for (const m of matrices) {
|
|
7463
7463
|
const v = m.get(r, c2);
|
|
@@ -11323,9 +11323,9 @@ function visit(node, c2) {
|
|
|
11323
11323
|
let sheet = c2.sheet;
|
|
11324
11324
|
if (node.prefix) {
|
|
11325
11325
|
const sheets = prefixSheets(c2.host, node.prefix, c2.sheet);
|
|
11326
|
-
const
|
|
11327
|
-
if (
|
|
11328
|
-
sheet =
|
|
11326
|
+
const first2 = sheets?.[0];
|
|
11327
|
+
if (first2 === void 0) return;
|
|
11328
|
+
sheet = first2;
|
|
11329
11329
|
}
|
|
11330
11330
|
const defined = findDefinedName(c2.host, node.name, sheet, node.prefix !== void 0);
|
|
11331
11331
|
if (defined) {
|
|
@@ -11463,9 +11463,9 @@ var AreaIndex = class {
|
|
|
11463
11463
|
else this.wide.set(area.sheet, [entry]);
|
|
11464
11464
|
return;
|
|
11465
11465
|
}
|
|
11466
|
-
const
|
|
11466
|
+
const first2 = start.row >> CHUNK_SHIFT;
|
|
11467
11467
|
const last = end.row >> CHUNK_SHIFT;
|
|
11468
|
-
if (last -
|
|
11468
|
+
if (last - first2 + 1 > CHUNKS) {
|
|
11469
11469
|
const cols2 = inner(this.tall, area.sheet);
|
|
11470
11470
|
for (let c2 = start.col; c2 <= end.col; c2++) push2(cols2, c2, entry);
|
|
11471
11471
|
return;
|
|
@@ -11474,7 +11474,7 @@ var AreaIndex = class {
|
|
|
11474
11474
|
for (let c2 = start.col; c2 <= end.col; c2++) {
|
|
11475
11475
|
let chunks = cols.get(c2);
|
|
11476
11476
|
if (!chunks) cols.set(c2, chunks = /* @__PURE__ */ new Map());
|
|
11477
|
-
for (let k =
|
|
11477
|
+
for (let k = first2; k <= last; k++) push2(chunks, k, entry);
|
|
11478
11478
|
}
|
|
11479
11479
|
}
|
|
11480
11480
|
/** Items whose areas intersect `range` on `sheet` (each once). */
|
|
@@ -11515,13 +11515,13 @@ var AreaIndex = class {
|
|
|
11515
11515
|
} else for (const c2 of map.keys()) if (c2 >= start.col && c2 <= end.col) visit2(c2);
|
|
11516
11516
|
};
|
|
11517
11517
|
const chunked = this.chunked.get(sheet);
|
|
11518
|
-
const
|
|
11518
|
+
const first2 = start.row >> CHUNK_SHIFT;
|
|
11519
11519
|
const last = end.row >> CHUNK_SHIFT;
|
|
11520
11520
|
columns(chunked, (c2) => {
|
|
11521
11521
|
const chunks = chunked?.get(c2);
|
|
11522
|
-
if (last -
|
|
11523
|
-
for (let k =
|
|
11524
|
-
} else for (const [k, list] of chunks) if (k >=
|
|
11522
|
+
if (last - first2 + 1 <= chunks.size) {
|
|
11523
|
+
for (let k = first2; k <= last; k++) check3(chunks.get(k));
|
|
11524
|
+
} else for (const [k, list] of chunks) if (k >= first2 && k <= last) check3(list);
|
|
11525
11525
|
});
|
|
11526
11526
|
const tall = this.tall.get(sheet);
|
|
11527
11527
|
columns(tall, (c2) => check3(tall?.get(c2)));
|
|
@@ -11992,8 +11992,8 @@ function formulaOrder(nodes, successors) {
|
|
|
11992
11992
|
const ranks = /* @__PURE__ */ new Map();
|
|
11993
11993
|
const components = stronglyConnected(nodes, successors).map((members, rank4) => {
|
|
11994
11994
|
for (const member of members) ranks.set(member, rank4);
|
|
11995
|
-
const
|
|
11996
|
-
return { nodes: members, cyclic: members.length > 1 || successors(
|
|
11995
|
+
const first2 = members[0];
|
|
11996
|
+
return { nodes: members, cyclic: members.length > 1 || successors(first2).includes(first2) };
|
|
11997
11997
|
});
|
|
11998
11998
|
return { components, ranks };
|
|
11999
11999
|
}
|
|
@@ -12032,9 +12032,9 @@ function sameRange(a, b) {
|
|
|
12032
12032
|
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;
|
|
12033
12033
|
}
|
|
12034
12034
|
function boundingBox(ranges) {
|
|
12035
|
-
const
|
|
12036
|
-
const start = { ...
|
|
12037
|
-
const end = { ...
|
|
12035
|
+
const first2 = ranges[0];
|
|
12036
|
+
const start = { ...first2.start };
|
|
12037
|
+
const end = { ...first2.end };
|
|
12038
12038
|
for (const r of ranges) {
|
|
12039
12039
|
start.row = Math.min(start.row, r.start.row);
|
|
12040
12040
|
start.col = Math.min(start.col, r.start.col);
|
|
@@ -12171,13 +12171,13 @@ var EngineCore = class extends EngineHost {
|
|
|
12171
12171
|
this.dynamicCycleHits = /* @__PURE__ */ new Set();
|
|
12172
12172
|
try {
|
|
12173
12173
|
for (const component of order.components) {
|
|
12174
|
-
const
|
|
12174
|
+
const first2 = component.nodes[0];
|
|
12175
12175
|
if (component.cyclic) {
|
|
12176
12176
|
const iterate = this.workbook.iterate;
|
|
12177
12177
|
if (iterate) this.iterateGroup(component.nodes, iterate);
|
|
12178
12178
|
else for (const node of component.nodes) this.markCycle(node);
|
|
12179
|
-
} else if (this.pending.has(
|
|
12180
|
-
this.computeFrom(
|
|
12179
|
+
} else if (this.pending.has(first2)) {
|
|
12180
|
+
this.computeFrom(first2);
|
|
12181
12181
|
}
|
|
12182
12182
|
}
|
|
12183
12183
|
} finally {
|
|
@@ -12520,24 +12520,24 @@ function mergeSpacedAreas(tokens2) {
|
|
|
12520
12520
|
const out = [];
|
|
12521
12521
|
const plainCell = (t) => t?.kind === "ref" && t.ref?.kind === "cell" && !t.spill;
|
|
12522
12522
|
for (let i = 0; i < tokens2.length; i++) {
|
|
12523
|
-
const
|
|
12523
|
+
const first2 = tokens2[i];
|
|
12524
12524
|
let j = i + 1;
|
|
12525
12525
|
while (tokens2[j]?.kind === "ws") j++;
|
|
12526
12526
|
let k = j + 1;
|
|
12527
12527
|
while (tokens2[k]?.kind === "ws") k++;
|
|
12528
12528
|
const colon = tokens2[j];
|
|
12529
12529
|
const last = tokens2[k];
|
|
12530
|
-
if (plainCell(
|
|
12530
|
+
if (plainCell(first2) && colon?.kind === "op" && colon.text === ":" && plainCell(last) && !last?.prefix && k > i + 2 && first2.ref && last?.ref) {
|
|
12531
12531
|
const text2 = tokens2.slice(i, k + 1).map((t) => t.text).join("");
|
|
12532
12532
|
out.push({
|
|
12533
|
-
...
|
|
12533
|
+
...first2,
|
|
12534
12534
|
text: text2,
|
|
12535
|
-
ref: { kind: "area", start:
|
|
12535
|
+
ref: { kind: "area", start: first2.ref.start, end: last.ref.start }
|
|
12536
12536
|
});
|
|
12537
12537
|
i = k;
|
|
12538
12538
|
continue;
|
|
12539
12539
|
}
|
|
12540
|
-
out.push(
|
|
12540
|
+
out.push(first2);
|
|
12541
12541
|
}
|
|
12542
12542
|
return out;
|
|
12543
12543
|
}
|
|
@@ -12589,10 +12589,10 @@ function renameSheetInFormula(formula, oldName, newName) {
|
|
|
12589
12589
|
for (const token of tokens2) {
|
|
12590
12590
|
const prefix = token.prefix;
|
|
12591
12591
|
if (!prefix || prefix.book !== void 0) continue;
|
|
12592
|
-
const
|
|
12592
|
+
const first2 = prefix.sheet.toLowerCase() === lower2;
|
|
12593
12593
|
const second = prefix.sheet2?.toLowerCase() === lower2;
|
|
12594
|
-
if (!
|
|
12595
|
-
const renamed = { ...prefix, sheet:
|
|
12594
|
+
if (!first2 && !second) continue;
|
|
12595
|
+
const renamed = { ...prefix, sheet: first2 ? newName : prefix.sheet };
|
|
12596
12596
|
if (prefix.sheet2 !== void 0) renamed.sheet2 = second ? newName : prefix.sheet2;
|
|
12597
12597
|
const text2 = prefixText(renamed);
|
|
12598
12598
|
token.text = text2 + token.text.slice(prefix.text.length);
|
|
@@ -13153,7 +13153,8 @@ function parseXml(xml, options = {}) {
|
|
|
13153
13153
|
}).parseFromString(xml, "application/xml");
|
|
13154
13154
|
} catch (error) {
|
|
13155
13155
|
throw new Error(
|
|
13156
|
-
`Invalid ${label2} XML: ${error instanceof Error ? error.message : String(error)}
|
|
13156
|
+
`Invalid ${label2} XML: ${error instanceof Error ? error.message : String(error)}`,
|
|
13157
|
+
{ cause: error }
|
|
13157
13158
|
);
|
|
13158
13159
|
}
|
|
13159
13160
|
if (parseError || !parsed.documentElement)
|
|
@@ -13801,7 +13802,8 @@ async function readZipParts(input, limits = {}) {
|
|
|
13801
13802
|
zip = await JSZip.loadAsync(bytes);
|
|
13802
13803
|
} catch (error) {
|
|
13803
13804
|
throw new Error(
|
|
13804
|
-
`Not a valid XLSX package: ${error instanceof Error ? error.message : String(error)}
|
|
13805
|
+
`Not a valid XLSX package: ${error instanceof Error ? error.message : String(error)}`,
|
|
13806
|
+
{ cause: error }
|
|
13805
13807
|
);
|
|
13806
13808
|
}
|
|
13807
13809
|
const entries = Object.values(zip.files).filter((entry) => !entry.dir);
|
|
@@ -16795,9 +16797,9 @@ function seriesXml(chart, series, index2) {
|
|
|
16795
16797
|
var axes = (horizontal, scatter2) => {
|
|
16796
16798
|
const common = '<c:scaling><c:orientation val="minMax"/></c:scaling><c:delete val="0"/>';
|
|
16797
16799
|
const ticks = '<c:numFmt formatCode="General" sourceLinked="1"/><c:majorTickMark val="out"/><c:minorTickMark val="none"/><c:tickLblPos val="nextTo"/>';
|
|
16798
|
-
const
|
|
16800
|
+
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>`;
|
|
16799
16801
|
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>`;
|
|
16800
|
-
return
|
|
16802
|
+
return first2 + second;
|
|
16801
16803
|
};
|
|
16802
16804
|
var AX_IDS = '<c:axId val="500000001"/><c:axId val="500000002"/>';
|
|
16803
16805
|
function plotXml(chart) {
|
|
@@ -18206,8 +18208,8 @@ function ruleXml(rule, styles, anchor) {
|
|
|
18206
18208
|
}
|
|
18207
18209
|
function conditionalFormatsXml(formats, styles) {
|
|
18208
18210
|
return formats.filter((format) => format.ranges.length && format.rules.length).map((format) => {
|
|
18209
|
-
const
|
|
18210
|
-
const anchor =
|
|
18211
|
+
const first2 = format.ranges[0];
|
|
18212
|
+
const anchor = first2 ? formatAddress(first2.start) : "A1";
|
|
18211
18213
|
const rules = format.rules.map((rule) => ruleXml(rule, styles, anchor)).join("");
|
|
18212
18214
|
return `<conditionalFormatting sqref="${format.ranges.map((r) => formatRange(r)).join(" ")}">${rules}</conditionalFormatting>`;
|
|
18213
18215
|
}).join("");
|
|
@@ -18914,10 +18916,10 @@ function dimensionXml(sheet) {
|
|
|
18914
18916
|
function sheetViewsXml(sheet, tabSelected) {
|
|
18915
18917
|
const source2 = snapshotElement(sheet, "sheetViews");
|
|
18916
18918
|
if (source2 && sameModel(readSheetView(source2), sheet.view)) {
|
|
18917
|
-
const
|
|
18918
|
-
if (
|
|
18919
|
-
if (tabSelected)
|
|
18920
|
-
else
|
|
18919
|
+
const first2 = elements(source2).find((node) => node.localName === "sheetView");
|
|
18920
|
+
if (first2) {
|
|
18921
|
+
if (tabSelected) first2.setAttribute("tabSelected", "1");
|
|
18922
|
+
else first2.removeAttribute("tabSelected");
|
|
18921
18923
|
}
|
|
18922
18924
|
return outerXml(source2);
|
|
18923
18925
|
}
|
|
@@ -20742,14 +20744,14 @@ var TEXT_NUMBER = /^(.*?)(\d+)(\D*)$/;
|
|
|
20742
20744
|
var QUARTER = /^(q|qtr|quarter)(\s?)([1-4])$/i;
|
|
20743
20745
|
function textSeries(texts) {
|
|
20744
20746
|
const lists = texts.map(listMatch);
|
|
20745
|
-
const
|
|
20746
|
-
if (
|
|
20747
|
+
const first2 = lists[0];
|
|
20748
|
+
if (first2 && lists.every((m) => m && m.list === first2.list)) {
|
|
20747
20749
|
const second = lists[1];
|
|
20748
|
-
const step2 = second ? mod(second.index -
|
|
20750
|
+
const step2 = second ? mod(second.index - first2.index, first2.list.length) || 1 : 1;
|
|
20749
20751
|
const sample = texts[0] ?? "";
|
|
20750
20752
|
return (k) => ({
|
|
20751
20753
|
kind: "value",
|
|
20752
|
-
value: matchCase(
|
|
20754
|
+
value: matchCase(first2.list[mod(first2.index + step2 * k, first2.list.length)] ?? "", sample)
|
|
20753
20755
|
});
|
|
20754
20756
|
}
|
|
20755
20757
|
const quarters = texts.map((t) => QUARTER.exec(t));
|
|
@@ -20789,11 +20791,11 @@ function formatShowsDate(code) {
|
|
|
20789
20791
|
function dateCode(format) {
|
|
20790
20792
|
return (format.split(";")[0] ?? "").replace(/"[^"]*"|\\.|_.|\*./g, "").replace(/\[(h+|m+|s+)\]/gi, "$1").replace(/\[[^\]]*\]/g, "").replace(/am\/pm|a\/p/gi, "").toLowerCase();
|
|
20791
20793
|
}
|
|
20792
|
-
function singleDateSeries(
|
|
20794
|
+
function singleDateSeries(first2, format) {
|
|
20793
20795
|
const code = dateCode(format);
|
|
20794
|
-
if (!formatShowsDate(code)) return (k) => ({ kind: "value", value:
|
|
20795
|
-
const base = /[hs]/.test(code) ?
|
|
20796
|
-
return (k) => ({ kind: "value", value: k === 0 ?
|
|
20796
|
+
if (!formatShowsDate(code)) return (k) => ({ kind: "value", value: first2 + k / 24 });
|
|
20797
|
+
const base = /[hs]/.test(code) ? first2 : Math.floor(first2);
|
|
20798
|
+
return (k) => ({ kind: "value", value: k === 0 ? first2 : base + k });
|
|
20797
20799
|
}
|
|
20798
20800
|
function dateSeries(serials, date1904, format) {
|
|
20799
20801
|
if (serials.length === 1) return singleDateSeries(serials[0] ?? 0, format);
|
|
@@ -20802,9 +20804,9 @@ function dateSeries(serials, date1904, format) {
|
|
|
20802
20804
|
const sameDay = dates.every((d) => d.getUTCDate() === dates[0]?.getUTCDate());
|
|
20803
20805
|
const stepMonths = (monthIndex[1] ?? 0) - (monthIndex[0] ?? 0);
|
|
20804
20806
|
const evenMonths = stepMonths !== 0 && monthIndex.every((m, i) => m - (monthIndex[0] ?? 0) === stepMonths * i);
|
|
20805
|
-
const
|
|
20807
|
+
const first2 = serials[0] ?? 0;
|
|
20806
20808
|
if (sameDay && evenMonths)
|
|
20807
|
-
return (k) => ({ kind: "value", value: addMonths2(
|
|
20809
|
+
return (k) => ({ kind: "value", value: addMonths2(first2, stepMonths * k, date1904) });
|
|
20808
20810
|
const trend = linearTrend(serials);
|
|
20809
20811
|
return (k) => ({ kind: "value", value: trend(k) });
|
|
20810
20812
|
}
|
|
@@ -22277,9 +22279,9 @@ function applyTotalsRow(sheet, table2) {
|
|
|
22277
22279
|
const row2 = table2.range.end.row;
|
|
22278
22280
|
const { columns } = table2;
|
|
22279
22281
|
if (!columns.some((c2) => c2.totalsRowFunction || c2.totalsRowLabel)) {
|
|
22280
|
-
const
|
|
22282
|
+
const first2 = columns[0];
|
|
22281
22283
|
const last = columns[columns.length - 1];
|
|
22282
|
-
if (
|
|
22284
|
+
if (first2 && columns.length > 1) first2.totalsRowLabel = "Total";
|
|
22283
22285
|
if (last) last.totalsRowFunction = "sum";
|
|
22284
22286
|
}
|
|
22285
22287
|
columns.forEach((column, i) => {
|
|
@@ -22602,25 +22604,25 @@ function removeDuplicates(ctx, s, range, columns, hasHeader) {
|
|
|
22602
22604
|
const { workbook } = ctx;
|
|
22603
22605
|
const sheet = sheetAt(workbook, s);
|
|
22604
22606
|
const r = normalizeRange(range);
|
|
22605
|
-
const
|
|
22606
|
-
if (
|
|
22607
|
-
const data = { start: { row:
|
|
22607
|
+
const first2 = hasHeader ? r.start.row + 1 : r.start.row;
|
|
22608
|
+
if (first2 > r.end.row) return { removed: 0, remaining: 0 };
|
|
22609
|
+
const data = { start: { row: first2, col: r.start.col }, end: r.end };
|
|
22608
22610
|
if (sheet.merges.some((m) => rangesIntersect(m, data)))
|
|
22609
22611
|
throw new Error("Cannot remove duplicates from a range that contains merged cells.");
|
|
22610
22612
|
const keyCols = columns.filter((c2) => c2 >= r.start.col && c2 <= r.end.col);
|
|
22611
22613
|
const cols = keyCols.length ? keyCols : Array.from({ length: r.end.col - r.start.col + 1 }, (_v, i) => r.start.col + i);
|
|
22612
|
-
let lastStored =
|
|
22614
|
+
let lastStored = first2;
|
|
22613
22615
|
for (const row2 of sheet.rows.keys()) if (row2 > lastStored) lastStored = row2;
|
|
22614
22616
|
const lastRow = Math.min(r.end.row, lastStored);
|
|
22615
22617
|
const keep2 = [];
|
|
22616
22618
|
const seen = /* @__PURE__ */ new Set();
|
|
22617
|
-
for (let row2 =
|
|
22619
|
+
for (let row2 = first2; row2 <= lastRow; row2++) {
|
|
22618
22620
|
const key = cols.map((col) => displayText(workbook, getCell(sheet, row2, col)).toLowerCase()).join("\0");
|
|
22619
22621
|
if (seen.has(key)) continue;
|
|
22620
22622
|
seen.add(key);
|
|
22621
22623
|
keep2.push(row2);
|
|
22622
22624
|
}
|
|
22623
|
-
const removed = lastRow -
|
|
22625
|
+
const removed = lastRow - first2 + 1 - keep2.length;
|
|
22624
22626
|
if (!removed) return { removed: 0, remaining: keep2.length };
|
|
22625
22627
|
ctx.run(
|
|
22626
22628
|
"Remove duplicates",
|
|
@@ -22633,11 +22635,11 @@ function removeDuplicates(ctx, s, range, columns, hasHeader) {
|
|
|
22633
22635
|
if (col >= r.start.col && col <= r.end.col) cells.set(col, cell);
|
|
22634
22636
|
return { row: row2, cells };
|
|
22635
22637
|
});
|
|
22636
|
-
for (let row2 =
|
|
22638
|
+
for (let row2 = first2; row2 <= lastRow; row2++)
|
|
22637
22639
|
for (const col of [...sheet.rows.get(row2)?.keys() ?? []])
|
|
22638
22640
|
if (col >= r.start.col && col <= r.end.col) deleteCell(sheet, row2, col);
|
|
22639
22641
|
moved.forEach(({ row: from, cells }, i) => {
|
|
22640
|
-
const row2 =
|
|
22642
|
+
const row2 = first2 + i;
|
|
22641
22643
|
for (const [col, cell] of cells) {
|
|
22642
22644
|
if (cell.formula !== void 0 && row2 !== from)
|
|
22643
22645
|
cell.formula = translateFormula(cell.formula, row2 - from, 0);
|
|
@@ -23452,9 +23454,9 @@ function merge(ctx, s, range, mode) {
|
|
|
23452
23454
|
sheet.merges = sheet.merges.filter((m) => !rangesIntersect(m, r));
|
|
23453
23455
|
for (const target of targets) {
|
|
23454
23456
|
const anchor = target.start;
|
|
23455
|
-
const [
|
|
23456
|
-
if (
|
|
23457
|
-
const source2 = getCell(sheet,
|
|
23457
|
+
const [first2] = filledCells(sheet, target);
|
|
23458
|
+
if (first2 && (first2[0] !== anchor.row || first2[1] !== anchor.col)) {
|
|
23459
|
+
const source2 = getCell(sheet, first2[0], first2[1]);
|
|
23458
23460
|
const corner2 = getCell(sheet, anchor.row, anchor.col);
|
|
23459
23461
|
if (source2) {
|
|
23460
23462
|
const moved = structuredClone(source2);
|
|
@@ -24079,10 +24081,10 @@ var LINE_HEIGHTS = [
|
|
|
24079
24081
|
[72, 93.75]
|
|
24080
24082
|
];
|
|
24081
24083
|
function lineHeightPoints(sizePt) {
|
|
24082
|
-
const
|
|
24084
|
+
const first2 = LINE_HEIGHTS[0];
|
|
24083
24085
|
const last = LINE_HEIGHTS[LINE_HEIGHTS.length - 1];
|
|
24084
24086
|
let height;
|
|
24085
|
-
if (sizePt <=
|
|
24087
|
+
if (sizePt <= first2[0]) height = first2[1] / first2[0] * sizePt;
|
|
24086
24088
|
else if (sizePt >= last[0]) height = last[1] / last[0] * sizePt;
|
|
24087
24089
|
else {
|
|
24088
24090
|
let i = 1;
|
|
@@ -25484,8 +25486,8 @@ function navigate(sheet, from, key, pageRows = 20) {
|
|
|
25484
25486
|
return { row: r, col };
|
|
25485
25487
|
}
|
|
25486
25488
|
case "home": {
|
|
25487
|
-
const
|
|
25488
|
-
return { row: row2, col:
|
|
25489
|
+
const first2 = isColHidden(0) ? step(0, 1, MAX_COL, isColHidden) : 0;
|
|
25490
|
+
return { row: row2, col: first2 };
|
|
25489
25491
|
}
|
|
25490
25492
|
case "end": {
|
|
25491
25493
|
const cols = [...filledInRow(sheet, row2)].filter((c2) => !isColHidden(c2));
|
|
@@ -25690,8 +25692,8 @@ function chartView(workbook, sheetIndex2, chart, evaluateRef) {
|
|
|
25690
25692
|
(_, i) => firstCats[i] !== void 0 ? toText2(firstCats[i] ?? null) : String(i + 1)
|
|
25691
25693
|
);
|
|
25692
25694
|
if (radial) {
|
|
25693
|
-
const
|
|
25694
|
-
if (
|
|
25695
|
+
const first2 = series[0];
|
|
25696
|
+
if (first2) first2.pointColors = first2.values.map((_, i) => autoSeriesColor(theme2, i));
|
|
25695
25697
|
for (const s of series.slice(1))
|
|
25696
25698
|
s.pointColors = s.values.map((_, i) => autoSeriesColor(theme2, i));
|
|
25697
25699
|
}
|
|
@@ -26049,10 +26051,10 @@ function radarSvg(model, area) {
|
|
|
26049
26051
|
var FONT_FAMILY = "Calibri, Carlito, Arial, sans-serif";
|
|
26050
26052
|
function legendEntries(model) {
|
|
26051
26053
|
if (model.type === "pie" || model.type === "doughnut") {
|
|
26052
|
-
const
|
|
26054
|
+
const first2 = model.series[0];
|
|
26053
26055
|
return model.categories.map((label2, i) => ({
|
|
26054
26056
|
label: label2,
|
|
26055
|
-
color:
|
|
26057
|
+
color: first2?.pointColors?.[i] ?? first2?.color ?? "#4472C4"
|
|
26056
26058
|
}));
|
|
26057
26059
|
}
|
|
26058
26060
|
return model.series.map((s) => ({ label: s.name, color: s.color }));
|