@rowsncolumns/toolkit 24.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +100 -0
- package/Readme.md +27 -0
- package/dist/cjs/autofilter-condition.d.ts +43 -0
- package/dist/cjs/autofilter-condition.d.ts.map +1 -0
- package/dist/cjs/autofilter-condition.js +155 -0
- package/dist/cjs/csv-export.d.ts +49 -0
- package/dist/cjs/csv-export.d.ts.map +1 -0
- package/dist/cjs/csv-export.js +142 -0
- package/dist/cjs/csv-import-worker.d.ts +16 -0
- package/dist/cjs/csv-import-worker.d.ts.map +1 -0
- package/dist/cjs/csv-import-worker.js +60 -0
- package/dist/cjs/csv-import.d.ts +38 -0
- package/dist/cjs/csv-import.d.ts.map +1 -0
- package/dist/cjs/csv-import.js +166 -0
- package/dist/cjs/csv-parser/helpers.d.ts +14 -0
- package/dist/cjs/csv-parser/helpers.d.ts.map +1 -0
- package/dist/cjs/csv-parser/helpers.js +145 -0
- package/dist/cjs/csv-parser/types.d.ts +66 -0
- package/dist/cjs/csv-parser/types.d.ts.map +1 -0
- package/dist/cjs/csv-parser/types.js +14 -0
- package/dist/cjs/csv-parser/worker.d.ts +2 -0
- package/dist/cjs/csv-parser/worker.d.ts.map +1 -0
- package/dist/cjs/csv-parser/worker.js +200 -0
- package/dist/cjs/excel-export.d.ts +11 -0
- package/dist/cjs/excel-export.d.ts.map +1 -0
- package/dist/cjs/excel-export.js +22 -0
- package/dist/cjs/excel-import-session.d.ts +51 -0
- package/dist/cjs/excel-import-session.d.ts.map +1 -0
- package/dist/cjs/excel-import-session.js +307 -0
- package/dist/cjs/excel-import-worker.d.ts +7 -0
- package/dist/cjs/excel-import-worker.d.ts.map +1 -0
- package/dist/cjs/excel-import-worker.js +119 -0
- package/dist/cjs/excel-parser/builtin-numfmts.d.ts +24 -0
- package/dist/cjs/excel-parser/builtin-numfmts.d.ts.map +1 -0
- package/dist/cjs/excel-parser/builtin-numfmts.js +63 -0
- package/dist/cjs/excel-parser/cfb-decryptor.d.ts +53 -0
- package/dist/cjs/excel-parser/cfb-decryptor.d.ts.map +1 -0
- package/dist/cjs/excel-parser/cfb-decryptor.js +553 -0
- package/dist/cjs/excel-parser/cfb-encryptor.d.ts +23 -0
- package/dist/cjs/excel-parser/cfb-encryptor.d.ts.map +1 -0
- package/dist/cjs/excel-parser/cfb-encryptor.js +200 -0
- package/dist/cjs/excel-parser/dv-cell-stamp.d.ts +29 -0
- package/dist/cjs/excel-parser/dv-cell-stamp.d.ts.map +1 -0
- package/dist/cjs/excel-parser/dv-cell-stamp.js +239 -0
- package/dist/cjs/excel-parser/helpers.d.ts +28 -0
- package/dist/cjs/excel-parser/helpers.d.ts.map +1 -0
- package/dist/cjs/excel-parser/helpers.js +188 -0
- package/dist/cjs/excel-parser/interface.d.ts +179 -0
- package/dist/cjs/excel-parser/interface.d.ts.map +1 -0
- package/dist/cjs/excel-parser/interface.js +1 -0
- package/dist/cjs/excel-parser/plugins/base/index.d.ts +31 -0
- package/dist/cjs/excel-parser/plugins/base/index.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/base/index.js +101 -0
- package/dist/cjs/excel-parser/plugins/ods/conditional-formatting.d.ts +16 -0
- package/dist/cjs/excel-parser/plugins/ods/conditional-formatting.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/ods/conditional-formatting.js +488 -0
- package/dist/cjs/excel-parser/plugins/ods/data-validations.d.ts +15 -0
- package/dist/cjs/excel-parser/plugins/ods/data-validations.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/ods/data-validations.js +353 -0
- package/dist/cjs/excel-parser/plugins/ods/formula.d.ts +8 -0
- package/dist/cjs/excel-parser/plugins/ods/formula.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/ods/formula.js +82 -0
- package/dist/cjs/excel-parser/plugins/ods/index.d.ts +122 -0
- package/dist/cjs/excel-parser/plugins/ods/index.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/ods/index.js +3642 -0
- package/dist/cjs/excel-parser/plugins/ods/sparklines.d.ts +25 -0
- package/dist/cjs/excel-parser/plugins/ods/sparklines.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/ods/sparklines.js +221 -0
- package/dist/cjs/excel-parser/plugins/ods/styles.d.ts +60 -0
- package/dist/cjs/excel-parser/plugins/ods/styles.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/ods/styles.js +808 -0
- package/dist/cjs/excel-parser/plugins/ods/types.d.ts +7 -0
- package/dist/cjs/excel-parser/plugins/ods/types.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/ods/types.js +1 -0
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts +5 -0
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xls/index.js +19 -0
- package/dist/cjs/excel-parser/plugins/xlsb/biff-record-reader.d.ts +13 -0
- package/dist/cjs/excel-parser/plugins/xlsb/biff-record-reader.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsb/biff-record-reader.js +49 -0
- package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts +117 -0
- package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsb/index.js +2972 -0
- package/dist/cjs/excel-parser/plugins/xlsb/rgce-parser.d.ts +18 -0
- package/dist/cjs/excel-parser/plugins/xlsb/rgce-parser.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsb/rgce-parser.js +527 -0
- package/dist/cjs/excel-parser/plugins/xlsm/index.d.ts +5 -0
- package/dist/cjs/excel-parser/plugins/xlsm/index.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsm/index.js +10 -0
- package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts +60 -0
- package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/charts.js +2178 -0
- package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.d.ts +18 -0
- package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.js +620 -0
- package/dist/cjs/excel-parser/plugins/xlsx/data-validations.d.ts +4 -0
- package/dist/cjs/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/data-validations.js +515 -0
- package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts +39 -0
- package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/drawing.js +941 -0
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +320 -0
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/index.js +6056 -0
- package/dist/cjs/excel-parser/plugins/xlsx/numfmt.d.ts +2 -0
- package/dist/cjs/excel-parser/plugins/xlsx/numfmt.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/numfmt.js +3 -0
- package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts +40 -0
- package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/pivots.js +342 -0
- package/dist/cjs/excel-parser/plugins/xlsx/relationships.d.ts +8 -0
- package/dist/cjs/excel-parser/plugins/xlsx/relationships.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/relationships.js +26 -0
- package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts +26 -0
- package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.js +59 -0
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts +44 -0
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/styles.js +1377 -0
- package/dist/cjs/excel-parser/plugins/xlsx/theme.d.ts +50 -0
- package/dist/cjs/excel-parser/plugins/xlsx/theme.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/theme.js +150 -0
- package/dist/cjs/excel-parser/plugins/xlsx/threaded-comments.d.ts +47 -0
- package/dist/cjs/excel-parser/plugins/xlsx/threaded-comments.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/threaded-comments.js +141 -0
- package/dist/cjs/excel-parser/plugins/xlsx/value-type-detection.d.ts +44 -0
- package/dist/cjs/excel-parser/plugins/xlsx/value-type-detection.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/value-type-detection.js +407 -0
- package/dist/cjs/excel-parser/registry.d.ts +5 -0
- package/dist/cjs/excel-parser/registry.d.ts.map +1 -0
- package/dist/cjs/excel-parser/registry.js +21 -0
- package/dist/cjs/excel-parser/style-registry.d.ts +51 -0
- package/dist/cjs/excel-parser/style-registry.d.ts.map +1 -0
- package/dist/cjs/excel-parser/style-registry.js +175 -0
- package/dist/cjs/excel-parser/theme-default.d.ts +3 -0
- package/dist/cjs/excel-parser/theme-default.d.ts.map +1 -0
- package/dist/cjs/excel-parser/theme-default.js +19 -0
- package/dist/cjs/excel-parser/types.d.ts +365 -0
- package/dist/cjs/excel-parser/types.d.ts.map +1 -0
- package/dist/cjs/excel-parser/types.js +59 -0
- package/dist/cjs/excel-parser/utils.d.ts +6 -0
- package/dist/cjs/excel-parser/utils.d.ts.map +1 -0
- package/dist/cjs/excel-parser/utils.js +30 -0
- package/dist/cjs/excel-parser/workbook.d.ts +51 -0
- package/dist/cjs/excel-parser/workbook.d.ts.map +1 -0
- package/dist/cjs/excel-parser/workbook.js +317 -0
- package/dist/cjs/excel-parser/worker.d.ts +2 -0
- package/dist/cjs/excel-parser/worker.d.ts.map +1 -0
- package/dist/cjs/excel-parser/worker.js +1149 -0
- package/dist/cjs/excel-parser/zip-parser-streaming.d.ts +13 -0
- package/dist/cjs/excel-parser/zip-parser-streaming.d.ts.map +1 -0
- package/dist/cjs/excel-parser/zip-parser-streaming.js +200 -0
- package/dist/cjs/excel-parser/zip-parser.d.ts +11 -0
- package/dist/cjs/excel-parser/zip-parser.d.ts.map +1 -0
- package/dist/cjs/excel-parser/zip-parser.js +49 -0
- package/dist/cjs/exporter/invalid-data-validation.d.ts +19 -0
- package/dist/cjs/exporter/invalid-data-validation.d.ts.map +1 -0
- package/dist/cjs/exporter/invalid-data-validation.js +39 -0
- package/dist/cjs/exporter/ods/ods-export.d.ts +26 -0
- package/dist/cjs/exporter/ods/ods-export.d.ts.map +1 -0
- package/dist/cjs/exporter/ods/ods-export.js +3714 -0
- package/dist/cjs/exporter/ods/sparkline-builder.d.ts +33 -0
- package/dist/cjs/exporter/ods/sparkline-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/ods/sparkline-builder.js +221 -0
- package/dist/cjs/exporter/xlsx/chart-builder.d.ts +3 -0
- package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/chart-builder.js +1901 -0
- package/dist/cjs/exporter/xlsx/chart-templates.d.ts +1781 -0
- package/dist/cjs/exporter/xlsx/chart-templates.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/chart-templates.js +1798 -0
- package/dist/cjs/exporter/xlsx/future-functions.d.ts +10 -0
- package/dist/cjs/exporter/xlsx/future-functions.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/future-functions.js +264 -0
- package/dist/cjs/exporter/xlsx/pivot-builder.d.ts +58 -0
- package/dist/cjs/exporter/xlsx/pivot-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/pivot-builder.js +277 -0
- package/dist/cjs/exporter/xlsx/power-query-builder.d.ts +26 -0
- package/dist/cjs/exporter/xlsx/power-query-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/power-query-builder.js +306 -0
- package/dist/cjs/exporter/xlsx/slicer-builder.d.ts +11 -0
- package/dist/cjs/exporter/xlsx/slicer-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/slicer-builder.js +87 -0
- package/dist/cjs/exporter/xlsx/sparkline-builder.d.ts +61 -0
- package/dist/cjs/exporter/xlsx/sparkline-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/sparkline-builder.js +489 -0
- package/dist/cjs/exporter/xlsx/style-builder.d.ts +93 -0
- package/dist/cjs/exporter/xlsx/style-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/style-builder.js +813 -0
- package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts +58 -0
- package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/threaded-comments-builder.js +189 -0
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts +121 -0
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/xlsx-export.js +4596 -0
- package/dist/cjs/helpers/theme-xml-generator.d.ts +8 -0
- package/dist/cjs/helpers/theme-xml-generator.d.ts.map +1 -0
- package/dist/cjs/helpers/theme-xml-generator.js +33 -0
- package/dist/cjs/helpers.d.ts +34 -0
- package/dist/cjs/helpers.d.ts.map +1 -0
- package/dist/cjs/helpers.js +189 -0
- package/dist/cjs/index.d.ts +16 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +15 -0
- package/dist/cjs/indexed-colors.d.ts +2 -0
- package/dist/cjs/indexed-colors.d.ts.map +1 -0
- package/dist/cjs/indexed-colors.js +75 -0
- package/dist/cjs/ods-export.d.ts +24 -0
- package/dist/cjs/ods-export.d.ts.map +1 -0
- package/dist/cjs/ods-export.js +23 -0
- package/dist/cjs/parse.d.ts +24 -0
- package/dist/cjs/parse.d.ts.map +1 -0
- package/dist/cjs/parse.js +68 -0
- package/dist/cjs/power-query.d.ts +41 -0
- package/dist/cjs/power-query.d.ts.map +1 -0
- package/dist/cjs/power-query.js +22 -0
- package/dist/cjs/server.d.ts +9 -0
- package/dist/cjs/server.d.ts.map +1 -0
- package/dist/cjs/server.js +8 -0
- package/dist/cjs/theme1.d.ts +3 -0
- package/dist/cjs/theme1.d.ts.map +1 -0
- package/dist/cjs/theme1.js +2 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/cjs/types.d.ts +14 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +14 -0
- package/dist/cjs/vitest.config.d.ts +3 -0
- package/dist/cjs/vitest.config.d.ts.map +1 -0
- package/dist/cjs/vitest.config.js +16 -0
- package/dist/esm/autofilter-condition.d.ts +43 -0
- package/dist/esm/autofilter-condition.d.ts.map +1 -0
- package/dist/esm/autofilter-condition.js +145 -0
- package/dist/esm/csv-export.d.ts +49 -0
- package/dist/esm/csv-export.d.ts.map +1 -0
- package/dist/esm/csv-export.js +126 -0
- package/dist/esm/csv-import-worker.d.ts +16 -0
- package/dist/esm/csv-import-worker.d.ts.map +1 -0
- package/dist/esm/csv-import-worker.js +60 -0
- package/dist/esm/csv-import.d.ts +38 -0
- package/dist/esm/csv-import.d.ts.map +1 -0
- package/dist/esm/csv-import.js +132 -0
- package/dist/esm/csv-parser/helpers.d.ts +14 -0
- package/dist/esm/csv-parser/helpers.d.ts.map +1 -0
- package/dist/esm/csv-parser/helpers.js +0 -0
- package/dist/esm/csv-parser/types.d.ts +66 -0
- package/dist/esm/csv-parser/types.d.ts.map +1 -0
- package/dist/esm/csv-parser/types.js +14 -0
- package/dist/esm/csv-parser/worker.d.ts +2 -0
- package/dist/esm/csv-parser/worker.d.ts.map +1 -0
- package/dist/esm/csv-parser/worker.js +154 -0
- package/dist/esm/excel-export.d.ts +11 -0
- package/dist/esm/excel-export.d.ts.map +1 -0
- package/dist/esm/excel-export.js +13 -0
- package/dist/esm/excel-import-session.d.ts +51 -0
- package/dist/esm/excel-import-session.d.ts.map +1 -0
- package/dist/esm/excel-import-session.js +255 -0
- package/dist/esm/excel-import-worker.d.ts +7 -0
- package/dist/esm/excel-import-worker.d.ts.map +1 -0
- package/dist/esm/excel-import-worker.js +116 -0
- package/dist/esm/excel-parser/builtin-numfmts.d.ts +24 -0
- package/dist/esm/excel-parser/builtin-numfmts.d.ts.map +1 -0
- package/dist/esm/excel-parser/builtin-numfmts.js +59 -0
- package/dist/esm/excel-parser/cfb-decryptor.d.ts +53 -0
- package/dist/esm/excel-parser/cfb-decryptor.d.ts.map +1 -0
- package/dist/esm/excel-parser/cfb-decryptor.js +493 -0
- package/dist/esm/excel-parser/cfb-encryptor.d.ts +23 -0
- package/dist/esm/excel-parser/cfb-encryptor.d.ts.map +1 -0
- package/dist/esm/excel-parser/cfb-encryptor.js +181 -0
- package/dist/esm/excel-parser/dv-cell-stamp.d.ts +29 -0
- package/dist/esm/excel-parser/dv-cell-stamp.d.ts.map +1 -0
- package/dist/esm/excel-parser/dv-cell-stamp.js +155 -0
- package/dist/esm/excel-parser/helpers.d.ts +28 -0
- package/dist/esm/excel-parser/helpers.d.ts.map +1 -0
- package/dist/esm/excel-parser/helpers.js +160 -0
- package/dist/esm/excel-parser/interface.d.ts +179 -0
- package/dist/esm/excel-parser/interface.d.ts.map +1 -0
- package/dist/esm/excel-parser/interface.js +1 -0
- package/dist/esm/excel-parser/plugins/base/index.d.ts +31 -0
- package/dist/esm/excel-parser/plugins/base/index.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/base/index.js +64 -0
- package/dist/esm/excel-parser/plugins/ods/conditional-formatting.d.ts +16 -0
- package/dist/esm/excel-parser/plugins/ods/conditional-formatting.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/ods/conditional-formatting.js +405 -0
- package/dist/esm/excel-parser/plugins/ods/data-validations.d.ts +15 -0
- package/dist/esm/excel-parser/plugins/ods/data-validations.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/ods/data-validations.js +331 -0
- package/dist/esm/excel-parser/plugins/ods/formula.d.ts +8 -0
- package/dist/esm/excel-parser/plugins/ods/formula.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/ods/formula.js +82 -0
- package/dist/esm/excel-parser/plugins/ods/index.d.ts +122 -0
- package/dist/esm/excel-parser/plugins/ods/index.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/ods/index.js +2896 -0
- package/dist/esm/excel-parser/plugins/ods/sparklines.d.ts +25 -0
- package/dist/esm/excel-parser/plugins/ods/sparklines.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/ods/sparklines.js +188 -0
- package/dist/esm/excel-parser/plugins/ods/styles.d.ts +60 -0
- package/dist/esm/excel-parser/plugins/ods/styles.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/ods/styles.js +732 -0
- package/dist/esm/excel-parser/plugins/ods/types.d.ts +7 -0
- package/dist/esm/excel-parser/plugins/ods/types.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/ods/types.js +1 -0
- package/dist/esm/excel-parser/plugins/xls/index.d.ts +5 -0
- package/dist/esm/excel-parser/plugins/xls/index.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xls/index.js +7 -0
- package/dist/esm/excel-parser/plugins/xlsb/biff-record-reader.d.ts +13 -0
- package/dist/esm/excel-parser/plugins/xlsb/biff-record-reader.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsb/biff-record-reader.js +48 -0
- package/dist/esm/excel-parser/plugins/xlsb/index.d.ts +117 -0
- package/dist/esm/excel-parser/plugins/xlsb/index.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsb/index.js +2339 -0
- package/dist/esm/excel-parser/plugins/xlsb/rgce-parser.d.ts +18 -0
- package/dist/esm/excel-parser/plugins/xlsb/rgce-parser.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsb/rgce-parser.js +522 -0
- package/dist/esm/excel-parser/plugins/xlsm/index.d.ts +5 -0
- package/dist/esm/excel-parser/plugins/xlsm/index.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsm/index.js +6 -0
- package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts +60 -0
- package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/charts.js +2036 -0
- package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.d.ts +18 -0
- package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.js +621 -0
- package/dist/esm/excel-parser/plugins/xlsx/data-validations.d.ts +4 -0
- package/dist/esm/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/data-validations.js +493 -0
- package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts +39 -0
- package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/drawing.js +905 -0
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +320 -0
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/index.js +4654 -0
- package/dist/esm/excel-parser/plugins/xlsx/numfmt.d.ts +2 -0
- package/dist/esm/excel-parser/plugins/xlsx/numfmt.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/numfmt.js +3 -0
- package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts +40 -0
- package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/pivots.js +254 -0
- package/dist/esm/excel-parser/plugins/xlsx/relationships.d.ts +8 -0
- package/dist/esm/excel-parser/plugins/xlsx/relationships.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/relationships.js +13 -0
- package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts +26 -0
- package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/sheet-views.js +64 -0
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts +44 -0
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/styles.js +1365 -0
- package/dist/esm/excel-parser/plugins/xlsx/theme.d.ts +50 -0
- package/dist/esm/excel-parser/plugins/xlsx/theme.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/theme.js +127 -0
- package/dist/esm/excel-parser/plugins/xlsx/threaded-comments.d.ts +47 -0
- package/dist/esm/excel-parser/plugins/xlsx/threaded-comments.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/threaded-comments.js +103 -0
- package/dist/esm/excel-parser/plugins/xlsx/value-type-detection.d.ts +44 -0
- package/dist/esm/excel-parser/plugins/xlsx/value-type-detection.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/value-type-detection.js +399 -0
- package/dist/esm/excel-parser/registry.d.ts +5 -0
- package/dist/esm/excel-parser/registry.d.ts.map +1 -0
- package/dist/esm/excel-parser/registry.js +20 -0
- package/dist/esm/excel-parser/style-registry.d.ts +51 -0
- package/dist/esm/excel-parser/style-registry.d.ts.map +1 -0
- package/dist/esm/excel-parser/style-registry.js +163 -0
- package/dist/esm/excel-parser/theme-default.d.ts +3 -0
- package/dist/esm/excel-parser/theme-default.d.ts.map +1 -0
- package/dist/esm/excel-parser/theme-default.js +19 -0
- package/dist/esm/excel-parser/types.d.ts +365 -0
- package/dist/esm/excel-parser/types.d.ts.map +1 -0
- package/dist/esm/excel-parser/types.js +59 -0
- package/dist/esm/excel-parser/utils.d.ts +6 -0
- package/dist/esm/excel-parser/utils.d.ts.map +1 -0
- package/dist/esm/excel-parser/utils.js +25 -0
- package/dist/esm/excel-parser/workbook.d.ts +51 -0
- package/dist/esm/excel-parser/workbook.d.ts.map +1 -0
- package/dist/esm/excel-parser/workbook.js +192 -0
- package/dist/esm/excel-parser/worker.d.ts +2 -0
- package/dist/esm/excel-parser/worker.d.ts.map +1 -0
- package/dist/esm/excel-parser/worker.js +862 -0
- package/dist/esm/excel-parser/zip-parser-streaming.d.ts +13 -0
- package/dist/esm/excel-parser/zip-parser-streaming.d.ts.map +1 -0
- package/dist/esm/excel-parser/zip-parser-streaming.js +119 -0
- package/dist/esm/excel-parser/zip-parser.d.ts +11 -0
- package/dist/esm/excel-parser/zip-parser.d.ts.map +1 -0
- package/dist/esm/excel-parser/zip-parser.js +43 -0
- package/dist/esm/exporter/invalid-data-validation.d.ts +19 -0
- package/dist/esm/exporter/invalid-data-validation.d.ts.map +1 -0
- package/dist/esm/exporter/invalid-data-validation.js +37 -0
- package/dist/esm/exporter/ods/ods-export.d.ts +26 -0
- package/dist/esm/exporter/ods/ods-export.d.ts.map +1 -0
- package/dist/esm/exporter/ods/ods-export.js +3238 -0
- package/dist/esm/exporter/ods/sparkline-builder.d.ts +33 -0
- package/dist/esm/exporter/ods/sparkline-builder.d.ts.map +1 -0
- package/dist/esm/exporter/ods/sparkline-builder.js +165 -0
- package/dist/esm/exporter/xlsx/chart-builder.d.ts +3 -0
- package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/chart-builder.js +1805 -0
- package/dist/esm/exporter/xlsx/chart-templates.d.ts +1781 -0
- package/dist/esm/exporter/xlsx/chart-templates.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/chart-templates.js +1798 -0
- package/dist/esm/exporter/xlsx/future-functions.d.ts +10 -0
- package/dist/esm/exporter/xlsx/future-functions.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/future-functions.js +264 -0
- package/dist/esm/exporter/xlsx/pivot-builder.d.ts +58 -0
- package/dist/esm/exporter/xlsx/pivot-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/pivot-builder.js +230 -0
- package/dist/esm/exporter/xlsx/power-query-builder.d.ts +26 -0
- package/dist/esm/exporter/xlsx/power-query-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/power-query-builder.js +257 -0
- package/dist/esm/exporter/xlsx/slicer-builder.d.ts +11 -0
- package/dist/esm/exporter/xlsx/slicer-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/slicer-builder.js +84 -0
- package/dist/esm/exporter/xlsx/sparkline-builder.d.ts +61 -0
- package/dist/esm/exporter/xlsx/sparkline-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/sparkline-builder.js +437 -0
- package/dist/esm/exporter/xlsx/style-builder.d.ts +93 -0
- package/dist/esm/exporter/xlsx/style-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/style-builder.js +795 -0
- package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts +58 -0
- package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/threaded-comments-builder.js +175 -0
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts +121 -0
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/xlsx-export.js +4062 -0
- package/dist/esm/helpers/theme-xml-generator.d.ts +8 -0
- package/dist/esm/helpers/theme-xml-generator.d.ts.map +1 -0
- package/dist/esm/helpers/theme-xml-generator.js +33 -0
- package/dist/esm/helpers.d.ts +34 -0
- package/dist/esm/helpers.d.ts.map +1 -0
- package/dist/esm/helpers.js +182 -0
- package/dist/esm/index.d.ts +16 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/indexed-colors.d.ts +2 -0
- package/dist/esm/indexed-colors.d.ts.map +1 -0
- package/dist/esm/indexed-colors.js +75 -0
- package/dist/esm/ods-export.d.ts +24 -0
- package/dist/esm/ods-export.d.ts.map +1 -0
- package/dist/esm/ods-export.js +12 -0
- package/dist/esm/parse.d.ts +24 -0
- package/dist/esm/parse.d.ts.map +1 -0
- package/dist/esm/parse.js +55 -0
- package/dist/esm/power-query.d.ts +41 -0
- package/dist/esm/power-query.d.ts.map +1 -0
- package/dist/esm/power-query.js +19 -0
- package/dist/esm/server.d.ts +9 -0
- package/dist/esm/server.d.ts.map +1 -0
- package/dist/esm/server.js +8 -0
- package/dist/esm/theme1.d.ts +3 -0
- package/dist/esm/theme1.d.ts.map +1 -0
- package/dist/esm/theme1.js +2 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/esm/types.d.ts +14 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +14 -0
- package/dist/esm/vitest.config.d.ts +3 -0
- package/dist/esm/vitest.config.d.ts.map +1 -0
- package/dist/esm/vitest.config.js +16 -0
- package/package.json +62 -0
- package/xlsx.d.ts +52 -0
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { __assign, __read, __values } from "tslib";
|
|
2
|
+
import { get } from "lodash-es";
|
|
3
|
+
export function extractDataValidations(ctx) {
|
|
4
|
+
var e_1, _a;
|
|
5
|
+
var sheetContexts = ctx.sheetContexts, sheetNameMap = ctx.sheetNameMap, spreadsheetNode = ctx.spreadsheetNode, getAttributes = ctx.getAttributes, parseRangeList = ctx.parseRangeList, normalizeConditionExpression = ctx.normalizeConditionExpression, parseBooleanAttribute = ctx.parseBooleanAttribute, mapAlertStyle = ctx.mapAlertStyle, toArray = ctx.toArray;
|
|
6
|
+
if (!sheetContexts.length)
|
|
7
|
+
return [];
|
|
8
|
+
var validations = [];
|
|
9
|
+
var validationId = 1;
|
|
10
|
+
var processNodes = function (nodes, fallbackContext) {
|
|
11
|
+
var e_2, _a;
|
|
12
|
+
var _b;
|
|
13
|
+
try {
|
|
14
|
+
for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
|
|
15
|
+
var node = nodes_1_1.value;
|
|
16
|
+
var attrs = getAttributes(node);
|
|
17
|
+
if (!attrs)
|
|
18
|
+
continue;
|
|
19
|
+
var rangeAttr = attrs["@_table:target-range-address"] ||
|
|
20
|
+
attrs["@_target-range-address"] ||
|
|
21
|
+
attrs["@_table:base-cell-address"];
|
|
22
|
+
var ranges = parseRangeList(rangeAttr, sheetNameMap, fallbackContext);
|
|
23
|
+
if (!ranges.length)
|
|
24
|
+
continue;
|
|
25
|
+
var baseCellAddress = attrs["@_table:base-cell-address"] || attrs["@_base-cell-address"];
|
|
26
|
+
var inferredSheetName = extractSheetNameFromAddress(baseCellAddress) || (fallbackContext === null || fallbackContext === void 0 ? void 0 : fallbackContext.name);
|
|
27
|
+
var conditionFormula = normalizeConditionExpression(attrs["@_table:condition"] || attrs["@_condition"]);
|
|
28
|
+
var condition = parseConditionFormula(conditionFormula, inferredSheetName);
|
|
29
|
+
var allowBlank = parseBooleanAttribute(attrs["@_table:allow-empty-cell"] || attrs["@_allow-empty-cell"]);
|
|
30
|
+
var displayStyleAttr = attrs["@_table:display-list"] || attrs["@_display-list"];
|
|
31
|
+
var displayStyle = void 0;
|
|
32
|
+
if (displayStyleAttr) {
|
|
33
|
+
var normalized = displayStyleAttr.toLowerCase();
|
|
34
|
+
if (normalized === "none") {
|
|
35
|
+
displayStyle = "plain";
|
|
36
|
+
}
|
|
37
|
+
else if (normalized === "list" ||
|
|
38
|
+
normalized === "unsorted" ||
|
|
39
|
+
normalized === "sorted") {
|
|
40
|
+
displayStyle = "arrow";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
var helpNode = get(node, "table:help-message") || get(node, "help-message");
|
|
44
|
+
var helpAttrs = getAttributes(helpNode);
|
|
45
|
+
var inputMessage = helpAttrs && (helpAttrs["@_table:message"] || helpAttrs["@_message"])
|
|
46
|
+
? {
|
|
47
|
+
title: helpAttrs["@_table:title"] || helpAttrs["@_title"] || undefined,
|
|
48
|
+
message: helpAttrs["@_table:message"] ||
|
|
49
|
+
helpAttrs["@_message"] ||
|
|
50
|
+
undefined,
|
|
51
|
+
}
|
|
52
|
+
: undefined;
|
|
53
|
+
var errorNode = get(node, "table:error-message") || get(node, "error-message");
|
|
54
|
+
var errorAttrs = getAttributes(errorNode);
|
|
55
|
+
var alert_1 = void 0;
|
|
56
|
+
if (errorAttrs &&
|
|
57
|
+
(errorAttrs["@_table:message"] || errorAttrs["@_message"])) {
|
|
58
|
+
alert_1 = {
|
|
59
|
+
style: (_b = mapAlertStyle(errorAttrs["@_table:message-type"] ||
|
|
60
|
+
errorAttrs["@_message-type"])) !== null && _b !== void 0 ? _b : "stop",
|
|
61
|
+
message: {
|
|
62
|
+
title: errorAttrs["@_table:title"] || errorAttrs["@_title"] || undefined,
|
|
63
|
+
message: errorAttrs["@_table:message"] ||
|
|
64
|
+
errorAttrs["@_message"] ||
|
|
65
|
+
undefined,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
validations.push({
|
|
70
|
+
id: "ods-dv-".concat(validationId++),
|
|
71
|
+
ranges: ranges,
|
|
72
|
+
condition: condition,
|
|
73
|
+
allowBlank: allowBlank,
|
|
74
|
+
displayStyle: displayStyle,
|
|
75
|
+
inputMessage: inputMessage,
|
|
76
|
+
alert: alert_1,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
81
|
+
finally {
|
|
82
|
+
try {
|
|
83
|
+
if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
|
|
84
|
+
}
|
|
85
|
+
finally { if (e_2) throw e_2.error; }
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
if (spreadsheetNode) {
|
|
89
|
+
var globalContainer = get(spreadsheetNode, "table:content-validations") ||
|
|
90
|
+
get(spreadsheetNode, "content-validations");
|
|
91
|
+
var globalNodes = globalContainer
|
|
92
|
+
? toArray(get(globalContainer, "table:content-validation") ||
|
|
93
|
+
get(globalContainer, "content-validation"))
|
|
94
|
+
: [];
|
|
95
|
+
processNodes(globalNodes);
|
|
96
|
+
}
|
|
97
|
+
try {
|
|
98
|
+
for (var sheetContexts_1 = __values(sheetContexts), sheetContexts_1_1 = sheetContexts_1.next(); !sheetContexts_1_1.done; sheetContexts_1_1 = sheetContexts_1.next()) {
|
|
99
|
+
var context = sheetContexts_1_1.value;
|
|
100
|
+
var container = get(context.node, "table:content-validations") ||
|
|
101
|
+
get(context.node, "content-validations");
|
|
102
|
+
var nodes = container
|
|
103
|
+
? toArray(get(container, "table:content-validation") ||
|
|
104
|
+
get(container, "content-validation"))
|
|
105
|
+
: [];
|
|
106
|
+
processNodes(nodes, context);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
110
|
+
finally {
|
|
111
|
+
try {
|
|
112
|
+
if (sheetContexts_1_1 && !sheetContexts_1_1.done && (_a = sheetContexts_1.return)) _a.call(sheetContexts_1);
|
|
113
|
+
}
|
|
114
|
+
finally { if (e_1) throw e_1.error; }
|
|
115
|
+
}
|
|
116
|
+
return validations;
|
|
117
|
+
}
|
|
118
|
+
var FUNCTION_CONDITION_MAP = {
|
|
119
|
+
"cell-content-is-between": { type: "NUMBER_BETWEEN", valueCount: 2 },
|
|
120
|
+
"cell-content-is-not-between": { type: "NUMBER_NOT_BETWEEN", valueCount: 2 },
|
|
121
|
+
"cell-content-is-equal-to": { type: "NUMBER_EQ", valueCount: 1 },
|
|
122
|
+
"cell-content-is-not-equal-to": { type: "NUMBER_NOT_EQ", valueCount: 1 },
|
|
123
|
+
"cell-content-is-greater-than": { type: "NUMBER_GREATER", valueCount: 1 },
|
|
124
|
+
"cell-content-is-greater-than-or-equal-to": {
|
|
125
|
+
type: "NUMBER_GREATER_THAN_EQ",
|
|
126
|
+
valueCount: 1,
|
|
127
|
+
},
|
|
128
|
+
"cell-content-is-less-than": { type: "NUMBER_LESS", valueCount: 1 },
|
|
129
|
+
"cell-content-is-less-than-or-equal-to": {
|
|
130
|
+
type: "NUMBER_LESS_THAN_EQ",
|
|
131
|
+
valueCount: 1,
|
|
132
|
+
},
|
|
133
|
+
"cell-content-text-equal-to": { type: "TEXT_EQ", valueCount: 1 },
|
|
134
|
+
"cell-content-text-not-equal-to": { type: "TEXT_NOT_EQ", valueCount: 1 },
|
|
135
|
+
"cell-content-text-contains": { type: "TEXT_CONTAINS", valueCount: 1 },
|
|
136
|
+
"cell-content-text-not-contains": {
|
|
137
|
+
type: "TEXT_NOT_CONTAINS",
|
|
138
|
+
valueCount: 1,
|
|
139
|
+
},
|
|
140
|
+
"cell-content-text-begins-with": { type: "TEXT_STARTS_WITH", valueCount: 1 },
|
|
141
|
+
"cell-content-text-ends-with": { type: "TEXT_ENDS_WITH", valueCount: 1 },
|
|
142
|
+
"cell-content-text-is-email": { type: "TEXT_IS_EMAIL", valueCount: 0 },
|
|
143
|
+
"cell-content-text-is-url": { type: "TEXT_IS_URL", valueCount: 0 },
|
|
144
|
+
"cell-content-date-equal-to": { type: "DATE_EQ", valueCount: 1 },
|
|
145
|
+
"cell-content-date-not-equal-to": { type: "DATE_NOT_EQ", valueCount: 1 },
|
|
146
|
+
"cell-content-date-before": { type: "DATE_BEFORE", valueCount: 1 },
|
|
147
|
+
"cell-content-date-after": { type: "DATE_AFTER", valueCount: 1 },
|
|
148
|
+
"cell-content-date-on-or-before": {
|
|
149
|
+
type: "DATE_ON_OR_BEFORE",
|
|
150
|
+
valueCount: 1,
|
|
151
|
+
},
|
|
152
|
+
"cell-content-date-on-or-after": {
|
|
153
|
+
type: "DATE_ON_OR_AFTER",
|
|
154
|
+
valueCount: 1,
|
|
155
|
+
},
|
|
156
|
+
"cell-content-date-between": { type: "DATE_BETWEEN", valueCount: 2 },
|
|
157
|
+
"cell-content-date-not-between": { type: "DATE_NOT_BETWEEN", valueCount: 2 },
|
|
158
|
+
"cell-content-date-is-valid": { type: "DATE_IS_VALID", valueCount: 0 },
|
|
159
|
+
"cell-content-is-blank": { type: "BLANK", valueCount: 0 },
|
|
160
|
+
"cell-content-is-not-blank": { type: "NOT_BLANK", valueCount: 0 },
|
|
161
|
+
"cell-content-is-boolean": { type: "BOOLEAN", valueCount: 0 },
|
|
162
|
+
"cell-content-is-in-range": { type: "ONE_OF_RANGE", valueCount: 1 },
|
|
163
|
+
"cell-content-is-error": { type: "ERROR", valueCount: 0 },
|
|
164
|
+
"cell-content-is-not-error": { type: "NOT_ERROR", valueCount: 0 },
|
|
165
|
+
};
|
|
166
|
+
var OPERATOR_CONDITION_MAP = {
|
|
167
|
+
">": "NUMBER_GREATER",
|
|
168
|
+
">=": "NUMBER_GREATER_THAN_EQ",
|
|
169
|
+
"<": "NUMBER_LESS",
|
|
170
|
+
"<=": "NUMBER_LESS_THAN_EQ",
|
|
171
|
+
"=": "NUMBER_EQ",
|
|
172
|
+
"==": "NUMBER_EQ",
|
|
173
|
+
"<>": "NUMBER_NOT_EQ",
|
|
174
|
+
"!=": "NUMBER_NOT_EQ",
|
|
175
|
+
};
|
|
176
|
+
var LIST_FUNCTION_REGEX = /^=cell-content-is-in-list\((.*)\)$/i;
|
|
177
|
+
function parseConditionFormula(conditionFormula, sheetName) {
|
|
178
|
+
var trimmed = conditionFormula === null || conditionFormula === void 0 ? void 0 : conditionFormula.trim();
|
|
179
|
+
if (!trimmed)
|
|
180
|
+
return undefined;
|
|
181
|
+
var listCondition = parseListCondition(trimmed, sheetName);
|
|
182
|
+
if (listCondition)
|
|
183
|
+
return listCondition;
|
|
184
|
+
var functionCondition = parseFunctionCondition(trimmed, sheetName);
|
|
185
|
+
if (functionCondition)
|
|
186
|
+
return functionCondition;
|
|
187
|
+
var operatorCondition = parseOperatorCondition(trimmed);
|
|
188
|
+
if (operatorCondition)
|
|
189
|
+
return operatorCondition;
|
|
190
|
+
return {
|
|
191
|
+
type: "CUSTOM_FORMULA",
|
|
192
|
+
values: [{ userEnteredValue: trimmed }],
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function parseListCondition(formula, sheetName) {
|
|
196
|
+
var match = formula.match(LIST_FUNCTION_REGEX);
|
|
197
|
+
if (!match)
|
|
198
|
+
return undefined;
|
|
199
|
+
var args = splitArguments(match[1]);
|
|
200
|
+
if (!args.length)
|
|
201
|
+
return undefined;
|
|
202
|
+
var _a = __read(args, 1), firstArg = _a[0];
|
|
203
|
+
if (firstArg && isRangeArgument(firstArg)) {
|
|
204
|
+
return {
|
|
205
|
+
type: "ONE_OF_RANGE",
|
|
206
|
+
values: [
|
|
207
|
+
{
|
|
208
|
+
userEnteredValue: formatRangeValue(firstArg, sheetName),
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
var values = [
|
|
214
|
+
{
|
|
215
|
+
userEnteredValue: args.join(","),
|
|
216
|
+
},
|
|
217
|
+
];
|
|
218
|
+
return {
|
|
219
|
+
type: "ONE_OF_LIST",
|
|
220
|
+
values: values,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
function parseFunctionCondition(formula, sheetName) {
|
|
224
|
+
var normalized = formula.startsWith("=") ? formula.slice(1) : formula;
|
|
225
|
+
var match = normalized.match(/^([a-z-]+)\((.*)\)$/i);
|
|
226
|
+
if (!match)
|
|
227
|
+
return undefined;
|
|
228
|
+
var fnName = match[1].toLowerCase();
|
|
229
|
+
if (fnName === "cell-content-is-in-list") {
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
var mapping = FUNCTION_CONDITION_MAP[fnName];
|
|
233
|
+
if (!mapping)
|
|
234
|
+
return undefined;
|
|
235
|
+
var args = splitArguments(match[2]);
|
|
236
|
+
if (mapping.valueCount > args.length)
|
|
237
|
+
return undefined;
|
|
238
|
+
if (mapping.type === "ONE_OF_RANGE" && args.length) {
|
|
239
|
+
return {
|
|
240
|
+
type: "ONE_OF_RANGE",
|
|
241
|
+
values: [{ userEnteredValue: formatRangeValue(args[0], sheetName) }],
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
var values = mapping.valueCount > 0
|
|
245
|
+
? args.slice(0, mapping.valueCount).map(function (value) { return ({
|
|
246
|
+
userEnteredValue: value,
|
|
247
|
+
}); })
|
|
248
|
+
: undefined;
|
|
249
|
+
return __assign({ type: mapping.type }, (values ? { values: values } : {}));
|
|
250
|
+
}
|
|
251
|
+
function parseOperatorCondition(formula) {
|
|
252
|
+
var normalized = formula.startsWith("=") ? formula.slice(1) : formula;
|
|
253
|
+
var match = normalized.match(/^cell-content\(\)\s*(<=|>=|<>|!=|=|==|<|>)\s*(.+)$/i);
|
|
254
|
+
if (!match)
|
|
255
|
+
return undefined;
|
|
256
|
+
var operator = match[1];
|
|
257
|
+
var conditionType = OPERATOR_CONDITION_MAP[operator];
|
|
258
|
+
if (!conditionType)
|
|
259
|
+
return undefined;
|
|
260
|
+
var value = stripQuotes(match[2].trim());
|
|
261
|
+
if (!value.length)
|
|
262
|
+
return undefined;
|
|
263
|
+
return {
|
|
264
|
+
type: conditionType,
|
|
265
|
+
values: [{ userEnteredValue: value }],
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
function splitArguments(value) {
|
|
269
|
+
if (!value)
|
|
270
|
+
return [];
|
|
271
|
+
return value
|
|
272
|
+
.split(/[,;](?=(?:[^"]*"[^"]*")*[^"]*$)/)
|
|
273
|
+
.map(function (part) { return stripQuotes(part.trim()); })
|
|
274
|
+
.filter(function (part) { return part.length > 0; });
|
|
275
|
+
}
|
|
276
|
+
function stripQuotes(value) {
|
|
277
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
278
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
279
|
+
return value.substring(1, value.length - 1);
|
|
280
|
+
}
|
|
281
|
+
return value;
|
|
282
|
+
}
|
|
283
|
+
function formatRangeValue(value, sheetName) {
|
|
284
|
+
var _a;
|
|
285
|
+
if (!value)
|
|
286
|
+
return value;
|
|
287
|
+
var reference = value.trim();
|
|
288
|
+
if (!reference)
|
|
289
|
+
return value;
|
|
290
|
+
if (reference.startsWith("=")) {
|
|
291
|
+
reference = reference.slice(1);
|
|
292
|
+
}
|
|
293
|
+
var bracketMatch = reference.match(/^\[(.*)\]$/);
|
|
294
|
+
if (bracketMatch) {
|
|
295
|
+
reference = bracketMatch[1];
|
|
296
|
+
}
|
|
297
|
+
var exclamationMatch = reference.match(/^(.*)!(.+)$/);
|
|
298
|
+
if (exclamationMatch) {
|
|
299
|
+
var sheet = escapeSheetName(exclamationMatch[1]);
|
|
300
|
+
var ref = exclamationMatch[2].replace(/\.(?=\$?[A-Za-z])/g, "");
|
|
301
|
+
if (sheet) {
|
|
302
|
+
return "='".concat(sheet, "'!").concat(ref);
|
|
303
|
+
}
|
|
304
|
+
var normalized = ref;
|
|
305
|
+
return normalized.startsWith("=") ? normalized : "=".concat(normalized);
|
|
306
|
+
}
|
|
307
|
+
var dotMatch = reference.match(/^(?:'([^']+)'|([^.!]+))\.(.+)$/);
|
|
308
|
+
if (dotMatch) {
|
|
309
|
+
var sheet = (_a = dotMatch[1]) !== null && _a !== void 0 ? _a : dotMatch[2];
|
|
310
|
+
var ref = dotMatch[3].replace(/\.(?=\$?[A-Za-z])/g, "");
|
|
311
|
+
return "='".concat(escapeSheetName(sheet), "'!").concat(ref);
|
|
312
|
+
}
|
|
313
|
+
var normalizedRef = reference.replace(/\.(?=\$?[A-Za-z])/g, "");
|
|
314
|
+
var inferredSheet = sheetName ? escapeSheetName(sheetName) : undefined;
|
|
315
|
+
if (inferredSheet) {
|
|
316
|
+
return "='".concat(inferredSheet, "'!").concat(normalizedRef);
|
|
317
|
+
}
|
|
318
|
+
return normalizedRef.startsWith("=") ? normalizedRef : "=".concat(normalizedRef);
|
|
319
|
+
}
|
|
320
|
+
function escapeSheetName(name) {
|
|
321
|
+
return name
|
|
322
|
+
.replace(/^'+|'+$/g, "")
|
|
323
|
+
.replace(/^\$+/, "")
|
|
324
|
+
.replace(/'/g, "''");
|
|
325
|
+
}
|
|
326
|
+
function isRangeArgument(value) {
|
|
327
|
+
if (!value)
|
|
328
|
+
return false;
|
|
329
|
+
if (/^\[.*\]$/.test(value)) {
|
|
330
|
+
return true;
|
|
331
|
+
}
|
|
332
|
+
return /[:.!]/.test(value) && /\d/.test(value);
|
|
333
|
+
}
|
|
334
|
+
function extractSheetNameFromAddress(address) {
|
|
335
|
+
if (!address)
|
|
336
|
+
return undefined;
|
|
337
|
+
var trimmed = address.trim();
|
|
338
|
+
if (!trimmed)
|
|
339
|
+
return undefined;
|
|
340
|
+
var bangMatch = trimmed.match(/^'([^']+)'!/);
|
|
341
|
+
if (bangMatch)
|
|
342
|
+
return bangMatch[1];
|
|
343
|
+
var dotBangMatch = trimmed.match(/^'([^']+)'[.!]/);
|
|
344
|
+
if (dotBangMatch)
|
|
345
|
+
return dotBangMatch[1];
|
|
346
|
+
var plainBangMatch = trimmed.match(/^([^'!.]+)!/);
|
|
347
|
+
if (plainBangMatch)
|
|
348
|
+
return plainBangMatch[1].replace(/^\$+/, "").trim();
|
|
349
|
+
var plainDotMatch = trimmed.match(/^([^'!.]+)\./);
|
|
350
|
+
if (plainDotMatch)
|
|
351
|
+
return plainDotMatch[1].replace(/^\$+/, "").trim();
|
|
352
|
+
return undefined;
|
|
353
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts ODS OpenFormula to Excel formula
|
|
3
|
+
* Example: of:=SUM([.A1:.B2]) -> =SUM(A1:B2)
|
|
4
|
+
* Example: of:=[.A1]+[.B2] -> =A1+B2
|
|
5
|
+
* Example: of:=[$Sheet2.A1] -> =Sheet2!A1
|
|
6
|
+
*/
|
|
7
|
+
export declare function convertOdsFormulaToExcel(odsFormula: string): string;
|
|
8
|
+
//# sourceMappingURL=formula.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/ods/formula.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAiGnE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts ODS OpenFormula to Excel formula
|
|
3
|
+
* Example: of:=SUM([.A1:.B2]) -> =SUM(A1:B2)
|
|
4
|
+
* Example: of:=[.A1]+[.B2] -> =A1+B2
|
|
5
|
+
* Example: of:=[$Sheet2.A1] -> =Sheet2!A1
|
|
6
|
+
*/
|
|
7
|
+
export function convertOdsFormulaToExcel(odsFormula) {
|
|
8
|
+
if (!odsFormula)
|
|
9
|
+
return "";
|
|
10
|
+
var formula = odsFormula;
|
|
11
|
+
// Remove 'of:' prefix
|
|
12
|
+
if (formula.startsWith("of:")) {
|
|
13
|
+
formula = formula.substring(3);
|
|
14
|
+
}
|
|
15
|
+
// If it doesn't start with '=', add it (unless it's just a value, but ODS formulas usually denote calculation)
|
|
16
|
+
// Actually ODS formulas in table:formula often start with := or just = after of:
|
|
17
|
+
// formula "of:=..." -> "="
|
|
18
|
+
// formula "of:..." -> "..."
|
|
19
|
+
// Handle cell references
|
|
20
|
+
// [.A1] -> A1 (Absolute/Relative handling in ODS is complex, but basic mapping:
|
|
21
|
+
// [.A1] usually refers to cell A1 in current sheet.
|
|
22
|
+
// [.$A$1] -> $A$1
|
|
23
|
+
// [.A1:.B2] -> A1:B2
|
|
24
|
+
// Regex to match references like [.A1], [.A1:.B2], [$Sheet1.A1]
|
|
25
|
+
// Replace ranges [.A1:.B2] -> A1:B2
|
|
26
|
+
formula = formula.replace(/\[\.([A-Z]+[0-9]+):\.\1([A-Z]+[0-9]+)\]/g, "$1:$2"); // This is too specific
|
|
27
|
+
// Better: Match generic range pattern
|
|
28
|
+
// ODS Range: [.A1:.B2]
|
|
29
|
+
// We can try to strip the brackets and dots for local references.
|
|
30
|
+
// Simple replacer for local single cell refs [.A1] -> A1
|
|
31
|
+
formula = formula.replace(/\[\.([A-Z$]+[0-9$]+)\]/g, "$1");
|
|
32
|
+
// Simple replacer for local ranges [.A1:.B2] -> A1:B2
|
|
33
|
+
// Note: range might be [.A1:.B2] or [.A1:.C3]
|
|
34
|
+
formula = formula.replace(/\[\.([A-Z$]+[0-9$]+):\.\1([A-Z$]+[0-9$]+)\]/g, // This regex is wrong (uses backreference \1)
|
|
35
|
+
"$1:$2");
|
|
36
|
+
// Correct regex for ranges: [.A1:.B2]
|
|
37
|
+
formula = formula.replace(/\[\.([A-Za-z]+[0-9]+):\.\1([A-Za-z]+[0-9]+)\]/g, // Only matches if same col? No.
|
|
38
|
+
function (match, p1, p2) { return "".concat(p1, ":").concat(p2); } // Logic above was weird.
|
|
39
|
+
);
|
|
40
|
+
// Let's use a more general approach.
|
|
41
|
+
// Replace `[.colrow]` with `colrow`.
|
|
42
|
+
// Replace `:.colrow` with `:colrow`.
|
|
43
|
+
formula = formula.replace(/\[\.([A-Za-z0-9$]+)\]/g, "$1");
|
|
44
|
+
// Handle Ranges inside brackets [A1:B2] which ODS might represent as [.A1:.B2]
|
|
45
|
+
// If we already replaced single refs, we might have `A1:.B2` left if we are not careful?
|
|
46
|
+
// ODS range is a single token `[.A1:.B2]`.
|
|
47
|
+
// Strategy:
|
|
48
|
+
// 1. Find [...] blocks.
|
|
49
|
+
// 2. Inside them, remove leading dots for cell refs.
|
|
50
|
+
// 3. Convert :. to :
|
|
51
|
+
formula = formula.replace(/\[(.*?)\]/g, function (match, content) {
|
|
52
|
+
// Content is like ".A1:.B2" or "$Sheet1.A1"
|
|
53
|
+
// Check for sheet ref
|
|
54
|
+
if (content.startsWith("$")) {
|
|
55
|
+
// $SheetName.A1 -> SheetName!A1
|
|
56
|
+
// content: $Sheet1.A1
|
|
57
|
+
// Split by last dot?
|
|
58
|
+
var lastDotIndex = content.lastIndexOf(".");
|
|
59
|
+
if (lastDotIndex > 0) {
|
|
60
|
+
var sheetPart = content.substring(1, lastDotIndex); // Remove leading $
|
|
61
|
+
var cellPart = content.substring(lastDotIndex + 1);
|
|
62
|
+
// If sheet name has spaces, wrap in quotes? Excel standard: 'Sheet Name'!A1
|
|
63
|
+
// ODS sheet names in references usually don't have quotes inside the bracket?
|
|
64
|
+
// We assume valid Excel sheet syntax or just quote it.
|
|
65
|
+
return "'".concat(sheetPart, "'!").concat(cellPart);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Local ref
|
|
69
|
+
// .A1:.B2 -> A1:B2
|
|
70
|
+
// .A1 -> A1
|
|
71
|
+
var processed = content.replace(/^\./, ""); // Remove first dot
|
|
72
|
+
processed = processed.replace(/:\./g, ":"); // Remove dot after colon
|
|
73
|
+
return processed;
|
|
74
|
+
});
|
|
75
|
+
// Convert ; to , (function arguments)
|
|
76
|
+
// ODS uses ; as separator. Excel usually , (en-US).
|
|
77
|
+
// Be careful not to replace ; inside strings.
|
|
78
|
+
// Simple heuristic: if not inside quotes.
|
|
79
|
+
// For now, global replace might be safer than nothing, assuming no ; in strings usually.
|
|
80
|
+
formula = formula.replace(/;/g, ",");
|
|
81
|
+
return formula;
|
|
82
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, NamedRange, Sheet, TableView } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
import type { TextFormatRun } from "@rowsncolumns/common-types";
|
|
3
|
+
import { XMLParser } from "fast-xml-parser";
|
|
4
|
+
import type { EmbeddedObjectWithPosition, ProcessSheetDataResult } from "../../types";
|
|
5
|
+
import { ZipParser } from "../../zip-parser";
|
|
6
|
+
import { BaseWorkbookPlugin } from "../base/index";
|
|
7
|
+
import { OdsStyles } from "./styles";
|
|
8
|
+
import type { IterativeCalculationOptions } from "@rowsncolumns/common-types";
|
|
9
|
+
export declare class OdsPlugin extends BaseWorkbookPlugin {
|
|
10
|
+
zipParser: ZipParser;
|
|
11
|
+
xmlParser: XMLParser;
|
|
12
|
+
xmlOrderedParser: XMLParser;
|
|
13
|
+
contentXml: any;
|
|
14
|
+
contentXmlOrdered: any;
|
|
15
|
+
settingsXml: any;
|
|
16
|
+
odsStyles: OdsStyles;
|
|
17
|
+
cellXfs: Map<string | number, any>;
|
|
18
|
+
sharedStrings: string[];
|
|
19
|
+
richSharedStringRuns: Map<number, TextFormatRun[]>;
|
|
20
|
+
private sharedStringIndexByValue;
|
|
21
|
+
private sheetCache;
|
|
22
|
+
private sparklinesBySheet;
|
|
23
|
+
constructor();
|
|
24
|
+
load(buffer: ArrayBuffer | File, password?: string): Promise<void>;
|
|
25
|
+
getCellXfs(): Map<string | number, any>;
|
|
26
|
+
getSharedStrings(): string[];
|
|
27
|
+
private getOrCreateSharedStringIndex;
|
|
28
|
+
registerFormat(format: any): string;
|
|
29
|
+
dispose(): void;
|
|
30
|
+
private getSpreadsheetNode;
|
|
31
|
+
private getTables;
|
|
32
|
+
getSheetCount(): number;
|
|
33
|
+
private ensureSheetCache;
|
|
34
|
+
private buildSheetCache;
|
|
35
|
+
private extractTableViews;
|
|
36
|
+
private convertDatabaseRangeNode;
|
|
37
|
+
private extractNamedRanges;
|
|
38
|
+
private extractBasicFilters;
|
|
39
|
+
private convertFilterNodeToSpecs;
|
|
40
|
+
private applyFilterCondition;
|
|
41
|
+
private extractTextContent;
|
|
42
|
+
private extractTextContentWithRuns;
|
|
43
|
+
private normalizeInternalHyperlinkLocation;
|
|
44
|
+
private extractHyperlinkValue;
|
|
45
|
+
private extractSpaceNodes;
|
|
46
|
+
private getSpaceRepeatCount;
|
|
47
|
+
private extractEmbeddedObjects;
|
|
48
|
+
private buildAnchorKey;
|
|
49
|
+
/**
|
|
50
|
+
* Walk the ordered content XML for each table and assign outline
|
|
51
|
+
* level + collapsed/hiddenByGroup state on `rowMetadata` and
|
|
52
|
+
* `columnMetadata`. ODS encodes outline as `<table:table-row-group>`
|
|
53
|
+
* / `<table:table-column-group>` wrappers (nest for level > 1); a
|
|
54
|
+
* group is collapsed when its `table:display="false"`. Cells inside
|
|
55
|
+
* a collapsed wrapper get `hiddenByGroup`; the summary cell (per
|
|
56
|
+
* `outlinePr.summaryBelow`/`summaryRight`, default true = below /
|
|
57
|
+
* right of the group) gets `collapsed = true`.
|
|
58
|
+
*/
|
|
59
|
+
private extractOutlineGroups;
|
|
60
|
+
private extractMerges;
|
|
61
|
+
private getOrderedTableWrappers;
|
|
62
|
+
private findOrderedTableWrapperForContext;
|
|
63
|
+
private extractTableColumnsFromHeader;
|
|
64
|
+
private collectFrameNodes;
|
|
65
|
+
private extractSheetSettings;
|
|
66
|
+
private parseConfigItemEntry;
|
|
67
|
+
private parseFreezeCoordinates;
|
|
68
|
+
private convertFrameToEmbeddedObject;
|
|
69
|
+
private convertFrameToEmbeddedChart;
|
|
70
|
+
private findInlineChartNode;
|
|
71
|
+
private findFrameObjectNode;
|
|
72
|
+
private findFrameImageNode;
|
|
73
|
+
private loadChartNodeFromObject;
|
|
74
|
+
private loadChartNodeFromHref;
|
|
75
|
+
private resolveObjectPath;
|
|
76
|
+
private findChartNodeInDocument;
|
|
77
|
+
private findNodeRecursive;
|
|
78
|
+
private convertChartNodeToSpec;
|
|
79
|
+
private extractSeriesLabel;
|
|
80
|
+
private extractChartSeriesColor;
|
|
81
|
+
private extractColorFromChartProperties;
|
|
82
|
+
private mapOdsChartClassToType;
|
|
83
|
+
private findRangeString;
|
|
84
|
+
private looksLikeCellRangeAddress;
|
|
85
|
+
private createChartDataFromAddress;
|
|
86
|
+
private buildOverlayPlacement;
|
|
87
|
+
private getImageDataUrl;
|
|
88
|
+
private normalizeImagePath;
|
|
89
|
+
private getImageMimeType;
|
|
90
|
+
private createDataUrlFromBytes;
|
|
91
|
+
private bytesToBase64;
|
|
92
|
+
private convertLengthToPixels;
|
|
93
|
+
private normalizeOdsColor;
|
|
94
|
+
private parseIntegerValue;
|
|
95
|
+
private getNodeText;
|
|
96
|
+
private buildSheetNameMap;
|
|
97
|
+
private registerSheetNameVariants;
|
|
98
|
+
private normalizeSheetName;
|
|
99
|
+
private parseRangeList;
|
|
100
|
+
private splitAddressSegments;
|
|
101
|
+
private parseRange;
|
|
102
|
+
private parseCellReference;
|
|
103
|
+
private parseBooleanAttribute;
|
|
104
|
+
private normalizeConditionExpression;
|
|
105
|
+
private normalizeExpression;
|
|
106
|
+
private toArray;
|
|
107
|
+
private expandRowCells;
|
|
108
|
+
private wrapRawCellEntry;
|
|
109
|
+
private extractAttributesFromNode;
|
|
110
|
+
private getAttributes;
|
|
111
|
+
private mapAlertStyle;
|
|
112
|
+
getSheets(minRowCount?: number, minColumnCount?: number): Promise<[Sheet[], TableView[]]>;
|
|
113
|
+
getConditionalFormatting(): Promise<ConditionalFormatRule[]>;
|
|
114
|
+
getDrawings(): Promise<EmbeddedObjectWithPosition[]>;
|
|
115
|
+
getCharts(): Promise<EmbeddedChart[]>;
|
|
116
|
+
getDataValidations(): Promise<DataValidationRuleRecord[]>;
|
|
117
|
+
getNamedRanges(): NamedRange[];
|
|
118
|
+
private findCalculationSettings;
|
|
119
|
+
getIterativeCalculationOptions(): IterativeCalculationOptions | undefined;
|
|
120
|
+
processSheetData(chunkSize?: number, enableCellXfsRegistry?: boolean, enableSharedStrings?: boolean): AsyncGenerator<ProcessSheetDataResult, void, unknown>;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/ods/index.ts"],"names":[],"mappings":"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"}
|