@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,8 @@
|
|
|
1
|
+
import type { SpreadsheetTheme } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
/**
|
|
3
|
+
* Generates Excel theme XML from SpreadsheetTheme
|
|
4
|
+
* @param theme - The spreadsheet theme object
|
|
5
|
+
* @returns XML string for Excel theme
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateThemeXml(theme: SpreadsheetTheme): string;
|
|
8
|
+
//# sourceMappingURL=theme-xml-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-xml-generator.d.ts","sourceRoot":"","sources":["../../../helpers/theme-xml-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAWlE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAqBhE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a hex color to RGB format without the # prefix
|
|
3
|
+
* @param hexColor - Hex color string (e.g., "#5B9BD5")
|
|
4
|
+
* @returns RGB color string without # (e.g., "5B9BD5")
|
|
5
|
+
*/
|
|
6
|
+
function hexToRgb(hexColor) {
|
|
7
|
+
return hexColor.replace("#", "").toUpperCase();
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Generates Excel theme XML from SpreadsheetTheme
|
|
11
|
+
* @param theme - The spreadsheet theme object
|
|
12
|
+
* @returns XML string for Excel theme
|
|
13
|
+
*/
|
|
14
|
+
export function generateThemeXml(theme) {
|
|
15
|
+
const { name, primaryFontFamily, themeColors } = theme;
|
|
16
|
+
// Heading (major) typeface. Themes imported before headingFontFamily
|
|
17
|
+
// existed carry only primaryFontFamily — write it to both slots, the
|
|
18
|
+
// prior behavior.
|
|
19
|
+
const headingFontFamily = theme.headingFontFamily || primaryFontFamily;
|
|
20
|
+
// Map theme colors to Excel color scheme elements
|
|
21
|
+
const text1 = hexToRgb(themeColors.text1 || "#000000");
|
|
22
|
+
const background1 = hexToRgb(themeColors.background1 || "#FFFFFF");
|
|
23
|
+
const text2 = hexToRgb(themeColors.text2 || "#44546A");
|
|
24
|
+
const background2 = hexToRgb(themeColors.background2 || "#E7E6E6");
|
|
25
|
+
const accent1 = hexToRgb(themeColors.accent1 || "#5B9BD5");
|
|
26
|
+
const accent2 = hexToRgb(themeColors.accent2 || "#ED7D31");
|
|
27
|
+
const accent3 = hexToRgb(themeColors.accent3 || "#A5A5A5");
|
|
28
|
+
const accent4 = hexToRgb(themeColors.accent4 || "#FFC000");
|
|
29
|
+
const accent5 = hexToRgb(themeColors.accent5 || "#4472C4");
|
|
30
|
+
const accent6 = hexToRgb(themeColors.accent6 || "#70AD47");
|
|
31
|
+
const hyperlink = hexToRgb(themeColors.hyperlink || "#0563C1");
|
|
32
|
+
return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?><a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" name="${name}"><a:themeElements><a:clrScheme name="${name}"><a:dk1><a:srgbClr val="${text1}"/></a:dk1><a:lt1><a:srgbClr val="${background1}"/></a:lt1><a:dk2><a:srgbClr val="${text2}"/></a:dk2><a:lt2><a:srgbClr val="${background2}"/></a:lt2><a:accent1><a:srgbClr val="${accent1}"/></a:accent1><a:accent2><a:srgbClr val="${accent2}"/></a:accent2><a:accent3><a:srgbClr val="${accent3}"/></a:accent3><a:accent4><a:srgbClr val="${accent4}"/></a:accent4><a:accent5><a:srgbClr val="${accent5}"/></a:accent5><a:accent6><a:srgbClr val="${accent6}"/></a:accent6><a:hlink><a:srgbClr val="${hyperlink}"/></a:hlink><a:folHlink><a:srgbClr val="${hyperlink}"/></a:folHlink></a:clrScheme><a:fontScheme name="${name}"><a:majorFont><a:latin typeface="${headingFontFamily}"/><a:ea typeface="${headingFontFamily}"/><a:cs typeface="${headingFontFamily}"/></a:majorFont><a:minorFont><a:latin typeface="${primaryFontFamily}"/><a:ea typeface="${primaryFontFamily}"/><a:cs typeface="${primaryFontFamily}"/></a:minorFont></a:fontScheme><a:fmtScheme name="${name}"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:lumMod val="110000"/><a:satMod val="105000"/><a:tint val="67000"/></a:schemeClr></a:gs><a:gs pos="50000"><a:schemeClr val="phClr"><a:lumMod val="105000"/><a:satMod val="103000"/><a:tint val="73000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:lumMod val="105000"/><a:satMod val="109000"/><a:tint val="81000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="5400000" scaled="0"/></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:satMod val="103000"/><a:lumMod val="102000"/><a:tint val="94000"/></a:schemeClr></a:gs><a:gs pos="50000"><a:schemeClr val="phClr"><a:satMod val="110000"/><a:lumMod val="100000"/><a:shade val="100000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:lumMod val="99000"/><a:satMod val="120000"/><a:shade val="78000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="5400000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="6350" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/><a:miter lim="800000"/></a:ln><a:ln w="12700" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/><a:miter lim="800000"/></a:ln><a:ln w="19050" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/><a:miter lim="800000"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="57150" dist="19050" dir="5400000" algn="ctr" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="63000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:solidFill><a:schemeClr val="phClr"><a:tint val="95000"/><a:satMod val="170000"/></a:schemeClr></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="93000"/><a:satMod val="150000"/><a:shade val="98000"/><a:lumMod val="102000"/></a:schemeClr></a:gs><a:gs pos="50000"><a:schemeClr val="phClr"><a:tint val="98000"/><a:satMod val="130000"/><a:shade val="90000"/><a:lumMod val="103000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="63000"/><a:satMod val="120000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="5400000" scaled="0"/></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements></a:theme>`;
|
|
33
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CellInterface, GridRange } from "@rowsncolumns/common-types";
|
|
2
|
+
export declare const formulaToRelativeReference: (formula: string | undefined, sourceCell: CellInterface, destinationCell: CellInterface, options?: {
|
|
3
|
+
exclusionRange?: GridRange;
|
|
4
|
+
ignoreCircular?: boolean;
|
|
5
|
+
}) => string | undefined;
|
|
6
|
+
export declare const imageUrlToBase64: (imageUrl: string) => Promise<string | undefined>;
|
|
7
|
+
export declare const createDownloadableFile: (filename: string, urlOrBlob: Blob | string) => string | Blob | undefined;
|
|
8
|
+
export declare const toArrayBuffer: (data: ArrayBuffer | Uint8Array) => ArrayBuffer;
|
|
9
|
+
export declare const charsToPixel: (chars: number) => number;
|
|
10
|
+
export declare const pixelToCharacters: (px: number) => number;
|
|
11
|
+
export declare const columnCharsToPixel: (chars: number) => number;
|
|
12
|
+
export declare const columnPixelToChars: (pixel: number) => number;
|
|
13
|
+
/**
|
|
14
|
+
* Get range from address reference with minimal processing
|
|
15
|
+
*/
|
|
16
|
+
export declare function getRangeFromAddressRef(addressRef: string | undefined): {
|
|
17
|
+
startRowIndex: number;
|
|
18
|
+
startColumnIndex: number;
|
|
19
|
+
endRowIndex: number;
|
|
20
|
+
endColumnIndex: number;
|
|
21
|
+
} | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Checks if a File object is an Excel file
|
|
24
|
+
* @param file - The File object to check
|
|
25
|
+
* @returns boolean - true if the file is an Excel file, false otherwise
|
|
26
|
+
*/
|
|
27
|
+
export declare function isExcelFile(file: File): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Checks if a File object is a CSV file
|
|
30
|
+
* @param file - The File object to check
|
|
31
|
+
* @returns boolean - true if the file is a CSV file, false otherwise
|
|
32
|
+
*/
|
|
33
|
+
export declare function isCSVFile(file: File): boolean;
|
|
34
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA+B3E,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,GAAG,SAAS,EAC3B,YAAY,aAAa,EACzB,iBAAiB,aAAa,EAC9B,UAAU;IACR,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,KACA,MAAM,GAAG,SA8BX,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAiB5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,WAAW,IAAI,GAAG,MAAM,8BAazB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,WAAW,GAAG,UAAU,KAAG,WAO9D,CAAC;AAIF,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,WAAiC,CAAC;AAC5E,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,WAA+B,CAAC;AAoB5E,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,WACrB,CAAC;AAE5B,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,WAClB,CAAC;AAE/B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS;;;;;cAwBpE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAsB/C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAe7C"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { addressToCell, canUseDOM } from "@rowsncolumns/utils";
|
|
2
|
+
// ---- Formula helpers ----
|
|
3
|
+
import { alpha2number, number2Alpha } from "@rowsncolumns/utils";
|
|
4
|
+
const CELL_ADDR_RE = /(?:'[^']+'!?|[^'!\s]+!?)?(\$?[A-Z]+\$?\d+)(?::(\$?[A-Z]+\$?\d+))?/g;
|
|
5
|
+
const parseAddr = (addr) => {
|
|
6
|
+
const m = /^(\$?)([A-Z]+)(\$?)(\d+)$/.exec(addr);
|
|
7
|
+
if (!m)
|
|
8
|
+
return null;
|
|
9
|
+
const [, absCol, colAlpha, absRow, rowStr] = m;
|
|
10
|
+
return {
|
|
11
|
+
col: alpha2number(colAlpha),
|
|
12
|
+
row: parseInt(rowStr, 10),
|
|
13
|
+
absCol: absCol === "$",
|
|
14
|
+
absRow: absRow === "$",
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
const formatAddr = (row, col, absCol, absRow) => {
|
|
18
|
+
const colAlpha = number2Alpha(Math.max(0, col - 1));
|
|
19
|
+
const rowNum = Math.max(1, row);
|
|
20
|
+
return `${absCol ? "$" : ""}${colAlpha}${absRow ? "$" : ""}${rowNum}`;
|
|
21
|
+
};
|
|
22
|
+
export const formulaToRelativeReference = (formula, sourceCell, destinationCell, options) => {
|
|
23
|
+
if (!formula)
|
|
24
|
+
return formula;
|
|
25
|
+
if (sourceCell.rowIndex === destinationCell.rowIndex &&
|
|
26
|
+
sourceCell.columnIndex === destinationCell.columnIndex) {
|
|
27
|
+
return formula;
|
|
28
|
+
}
|
|
29
|
+
const dRow = destinationCell.rowIndex - sourceCell.rowIndex;
|
|
30
|
+
const dCol = destinationCell.columnIndex - sourceCell.columnIndex;
|
|
31
|
+
return formula.replace(CELL_ADDR_RE, (match, left, right) => {
|
|
32
|
+
// Only adjust the A1 parts, keep any sheet prefixes as-is
|
|
33
|
+
const adjustOne = (addr) => {
|
|
34
|
+
const p = parseAddr(addr);
|
|
35
|
+
if (!p)
|
|
36
|
+
return addr;
|
|
37
|
+
const newRow = p.absRow ? p.row : p.row + dRow;
|
|
38
|
+
const newCol = p.absCol ? p.col : p.col + dCol;
|
|
39
|
+
return formatAddr(newRow, newCol, p.absCol, p.absRow);
|
|
40
|
+
};
|
|
41
|
+
if (right) {
|
|
42
|
+
// Range A1:B2
|
|
43
|
+
const leftAdjusted = adjustOne(left);
|
|
44
|
+
const rightAdjusted = adjustOne(right);
|
|
45
|
+
return match.replace(left, leftAdjusted).replace(right, rightAdjusted);
|
|
46
|
+
}
|
|
47
|
+
const singleAdjusted = adjustOne(left);
|
|
48
|
+
return match.replace(left, singleAdjusted);
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
export const imageUrlToBase64 = async (imageUrl) => {
|
|
52
|
+
return new Promise((resolve, reject) => {
|
|
53
|
+
const xhr = new XMLHttpRequest();
|
|
54
|
+
xhr.onload = function () {
|
|
55
|
+
const reader = new FileReader();
|
|
56
|
+
reader.onloadend = function () {
|
|
57
|
+
resolve(reader.result);
|
|
58
|
+
};
|
|
59
|
+
reader.readAsDataURL(xhr.response);
|
|
60
|
+
};
|
|
61
|
+
xhr.onerror = function () {
|
|
62
|
+
reject();
|
|
63
|
+
};
|
|
64
|
+
xhr.open("GET", imageUrl);
|
|
65
|
+
xhr.responseType = "blob";
|
|
66
|
+
xhr.send();
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
export const createDownloadableFile = (filename, urlOrBlob) => {
|
|
70
|
+
if (!canUseDOM) {
|
|
71
|
+
return urlOrBlob;
|
|
72
|
+
}
|
|
73
|
+
const url = urlOrBlob instanceof Blob
|
|
74
|
+
? window.URL.createObjectURL(urlOrBlob)
|
|
75
|
+
: urlOrBlob;
|
|
76
|
+
const anchor = document.createElement("a");
|
|
77
|
+
anchor.href = url;
|
|
78
|
+
anchor.download = filename;
|
|
79
|
+
anchor.dispatchEvent(new MouseEvent("click"));
|
|
80
|
+
};
|
|
81
|
+
export const toArrayBuffer = (data) => {
|
|
82
|
+
if (data instanceof Uint8Array) {
|
|
83
|
+
const bytes = new Uint8Array(data.byteLength);
|
|
84
|
+
bytes.set(data);
|
|
85
|
+
return bytes.buffer;
|
|
86
|
+
}
|
|
87
|
+
return data;
|
|
88
|
+
};
|
|
89
|
+
// 10 = 65 pixels
|
|
90
|
+
export const charsToPixel = (chars) => Math.ceil((96 / 72) * chars);
|
|
91
|
+
export const pixelToCharacters = (px) => Math.floor((72 / 96) * px);
|
|
92
|
+
// 33.25 (excels) = 265 (google sheets)
|
|
93
|
+
// export const dimensionToPixel = (chWidth: number) =>
|
|
94
|
+
// Math.ceil((265 / 33.25) * chWidth);
|
|
95
|
+
// export const pixelToDimension = (chWidth: number) =>
|
|
96
|
+
// Math.ceil((33.25 / 265) * chWidth);
|
|
97
|
+
// // const dimensionToPixel = (chWidth: number) => (72 / 30) * chWidth;
|
|
98
|
+
// Excel column-width / pixel conversion. Excel's rendered column box
|
|
99
|
+
// includes a 5-pixel padding around the MDW (max-digit-width, 7 px for
|
|
100
|
+
// Calibri 11), so the default width 8.43 renders at 64 px (8.43 × 7 + 5).
|
|
101
|
+
// We keep the +5 padding form so a round-trip pixels → width → pixels is
|
|
102
|
+
// an identity for the values Excel itself produces.
|
|
103
|
+
//
|
|
104
|
+
// pixels = floor(widthChars × 7 + 5)
|
|
105
|
+
// widthChars = (pixels − 5) / 7
|
|
106
|
+
//
|
|
107
|
+
// The "pure" ECMA-376 §18.3.1.13 formula omits the 5px padding and gives
|
|
108
|
+
// 59 for default-width columns instead of Excel's actual 64.
|
|
109
|
+
export const columnCharsToPixel = (chars) => Math.floor(chars * 7 + 5);
|
|
110
|
+
export const columnPixelToChars = (pixel) => Math.max(0, (pixel - 5) / 7);
|
|
111
|
+
/**
|
|
112
|
+
* Get range from address reference with minimal processing
|
|
113
|
+
*/
|
|
114
|
+
export function getRangeFromAddressRef(addressRef) {
|
|
115
|
+
if (!addressRef)
|
|
116
|
+
return undefined;
|
|
117
|
+
try {
|
|
118
|
+
const cleanAddress = addressRef.replace(/\$/gi, "");
|
|
119
|
+
const [from, to] = cleanAddress.split(":");
|
|
120
|
+
const topBound = addressToCell(from);
|
|
121
|
+
if (!topBound)
|
|
122
|
+
return undefined;
|
|
123
|
+
// If no "to" part exists (single cell), use the same cell for both start and end
|
|
124
|
+
const bottomBound = to ? addressToCell(to) : topBound;
|
|
125
|
+
if (!bottomBound)
|
|
126
|
+
return undefined;
|
|
127
|
+
return {
|
|
128
|
+
startRowIndex: topBound.rowIndex,
|
|
129
|
+
startColumnIndex: topBound.columnIndex,
|
|
130
|
+
endRowIndex: bottomBound.rowIndex,
|
|
131
|
+
endColumnIndex: bottomBound.columnIndex,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
console.warn("Error parsing address reference:", err);
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Checks if a File object is an Excel file
|
|
141
|
+
* @param file - The File object to check
|
|
142
|
+
* @returns boolean - true if the file is an Excel file, false otherwise
|
|
143
|
+
*/
|
|
144
|
+
export function isExcelFile(file) {
|
|
145
|
+
const excelMimeTypes = [
|
|
146
|
+
"application/vnd.ms-excel", // .xls
|
|
147
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", // .xlsx
|
|
148
|
+
"application/vnd.ms-excel.sheet.binary.macroenabled.12", // .xlsb
|
|
149
|
+
"application/vnd.ms-excel.sheet.macroenabled.12", // .xlsm
|
|
150
|
+
"application/vnd.ms-excel.template.macroenabled.12", // .xltm
|
|
151
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.template", // .xltx
|
|
152
|
+
"application/vnd.oasis.opendocument.spreadsheet", // ods
|
|
153
|
+
];
|
|
154
|
+
const excelExtensions = [".xls", ".xlsx", ".xlsb", ".xlsm", ".xltx", ".xltm"];
|
|
155
|
+
const fileType = file.type.toLowerCase();
|
|
156
|
+
// Check MIME type first
|
|
157
|
+
if (excelMimeTypes.includes(fileType)) {
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
// Fallback to file extension check (in case MIME type is not set correctly)
|
|
161
|
+
const fileName = file.name.toLowerCase();
|
|
162
|
+
return excelExtensions.some((ext) => fileName.endsWith(ext));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Checks if a File object is a CSV file
|
|
166
|
+
* @param file - The File object to check
|
|
167
|
+
* @returns boolean - true if the file is a CSV file, false otherwise
|
|
168
|
+
*/
|
|
169
|
+
export function isCSVFile(file) {
|
|
170
|
+
const csvMimeTypes = [
|
|
171
|
+
"text/csv",
|
|
172
|
+
"application/csv",
|
|
173
|
+
"text/comma-separated-values",
|
|
174
|
+
];
|
|
175
|
+
// Check MIME type first
|
|
176
|
+
if (csvMimeTypes.includes(file.type)) {
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
// Fallback to file extension check
|
|
180
|
+
const fileName = file.name.toLowerCase();
|
|
181
|
+
return fileName.endsWith(".csv");
|
|
182
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { createRowDataFromCSVFile, createRowDataFromCSVString, createCellDataArrayFromCSVString, parseCSV, } from "./csv-import";
|
|
2
|
+
export { createCSVFromSheetData, exportToCSV } from "./csv-export";
|
|
3
|
+
export { createRowDataFromFile, readImageFileAsDataUri, getImageDimensionsFromUrl, SUPPORTED_FILE_TYPES, } from "./parse";
|
|
4
|
+
export { exportToExcel } from "./excel-export";
|
|
5
|
+
export { createExcelFile } from "./exporter/xlsx/xlsx-export";
|
|
6
|
+
export { createODSFile, exportToODS } from "./ods-export";
|
|
7
|
+
export { createDownloadableFile, isCSVFile, isExcelFile } from "./helpers";
|
|
8
|
+
export { createExcelImportWorker } from "./excel-import-worker";
|
|
9
|
+
export { createExcelImportSession, type ExcelImportSession, type ExcelSessionLoadSheetOptions, type ExcelSessionOpenResult, type ExcelSessionOpenSuccess, type ExcelSessionPasswordRequired, type ExcelSessionSheetChunk, type ExcelSessionSheetComplete, } from "./excel-import-session";
|
|
10
|
+
export { createCSVImportWorker } from "./csv-import-worker";
|
|
11
|
+
export { RequestType, ResponseType, type WorkerRequest, type WorkerResponse, type ExternalLink, type SheetCatalogEntry, } from "./excel-parser/types";
|
|
12
|
+
export { CsvRequestType, CsvResponseType, type CsvWorkerRequest, type CsvWorkerResponse, } from "./csv-parser/types";
|
|
13
|
+
export { readExcelFile } from "./excel-parser/helpers";
|
|
14
|
+
export { WorkBook } from "./excel-parser/workbook";
|
|
15
|
+
export { hasPowerQueryParts, type PowerQueryCustomXmlItem, type PowerQueryParts, type PowerQueryTable, type PowerQueryTableColumn, } from "./power-query";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { createRowDataFromCSVFile, createRowDataFromCSVString, createCellDataArrayFromCSVString, parseCSV, } from "./csv-import";
|
|
2
|
+
export { createCSVFromSheetData, exportToCSV } from "./csv-export";
|
|
3
|
+
export { createRowDataFromFile, readImageFileAsDataUri, getImageDimensionsFromUrl, SUPPORTED_FILE_TYPES, } from "./parse";
|
|
4
|
+
export { exportToExcel } from "./excel-export";
|
|
5
|
+
export { createExcelFile } from "./exporter/xlsx/xlsx-export";
|
|
6
|
+
export { createODSFile, exportToODS } from "./ods-export";
|
|
7
|
+
export { createDownloadableFile, isCSVFile, isExcelFile } from "./helpers";
|
|
8
|
+
export { createExcelImportWorker } from "./excel-import-worker";
|
|
9
|
+
export { createExcelImportSession, } from "./excel-import-session";
|
|
10
|
+
export { createCSVImportWorker } from "./csv-import-worker";
|
|
11
|
+
export { RequestType, ResponseType, } from "./excel-parser/types";
|
|
12
|
+
export { CsvRequestType, CsvResponseType, } from "./csv-parser/types";
|
|
13
|
+
export { readExcelFile } from "./excel-parser/helpers";
|
|
14
|
+
export { WorkBook } from "./excel-parser/workbook";
|
|
15
|
+
export { hasPowerQueryParts, } from "./power-query";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed-colors.d.ts","sourceRoot":"","sources":["../../indexed-colors.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,mBAyExB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// Excel indexed colors mapping used for legacy color references
|
|
2
|
+
export const IndexedColors = Object.freeze([
|
|
3
|
+
// 0-7
|
|
4
|
+
"#000000",
|
|
5
|
+
"#FFFFFF",
|
|
6
|
+
"#FF0000",
|
|
7
|
+
"#00FF00",
|
|
8
|
+
"#0000FF",
|
|
9
|
+
"#FFFF00",
|
|
10
|
+
"#FF00FF",
|
|
11
|
+
"#00FFFF",
|
|
12
|
+
// 8-15
|
|
13
|
+
"#000000",
|
|
14
|
+
"#FFFFFF",
|
|
15
|
+
"#FF0000",
|
|
16
|
+
"#00FF00",
|
|
17
|
+
"#0000FF",
|
|
18
|
+
"#FFFF00",
|
|
19
|
+
"#FF00FF",
|
|
20
|
+
"#00FFFF",
|
|
21
|
+
// 16-23
|
|
22
|
+
"#800000",
|
|
23
|
+
"#008000",
|
|
24
|
+
"#000080",
|
|
25
|
+
"#808000",
|
|
26
|
+
"#800080",
|
|
27
|
+
"#008080",
|
|
28
|
+
"#C0C0C0",
|
|
29
|
+
"#808080",
|
|
30
|
+
// 24-31
|
|
31
|
+
"#9999FF",
|
|
32
|
+
"#993366",
|
|
33
|
+
"#FFFFCC",
|
|
34
|
+
"#CCFFFF",
|
|
35
|
+
"#660066",
|
|
36
|
+
"#FF8080",
|
|
37
|
+
"#0066CC",
|
|
38
|
+
"#CCCCFF",
|
|
39
|
+
// 32-39
|
|
40
|
+
"#000080",
|
|
41
|
+
"#FF00FF",
|
|
42
|
+
"#FFFF00",
|
|
43
|
+
"#00FFFF",
|
|
44
|
+
"#800080",
|
|
45
|
+
"#800000",
|
|
46
|
+
"#008080",
|
|
47
|
+
"#0000FF",
|
|
48
|
+
// 40-47
|
|
49
|
+
"#00CCFF",
|
|
50
|
+
"#CCFFFF",
|
|
51
|
+
"#CCFFCC",
|
|
52
|
+
"#FFFF99",
|
|
53
|
+
"#99CCFF",
|
|
54
|
+
"#FF99CC",
|
|
55
|
+
"#CC99FF",
|
|
56
|
+
"#FFCC99",
|
|
57
|
+
// 48-55
|
|
58
|
+
"#3366FF",
|
|
59
|
+
"#33CCCC",
|
|
60
|
+
"#99CC00",
|
|
61
|
+
"#FFCC00",
|
|
62
|
+
"#FF9900",
|
|
63
|
+
"#FF6600",
|
|
64
|
+
"#666699",
|
|
65
|
+
"#969696",
|
|
66
|
+
// 56-63
|
|
67
|
+
"#003366",
|
|
68
|
+
"#339966",
|
|
69
|
+
"#003300",
|
|
70
|
+
"#333300",
|
|
71
|
+
"#993300",
|
|
72
|
+
"#993366",
|
|
73
|
+
"#333399",
|
|
74
|
+
"#333333",
|
|
75
|
+
]);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CellData, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, EmbeddedObject, NamedRange, Sheet, SpreadsheetTheme, TableView } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
import type { Citation, IterativeCalculationOptions } from "@rowsncolumns/common-types";
|
|
3
|
+
import type { CellXfs, SharedStrings } from "@rowsncolumns/spreadsheet-state";
|
|
4
|
+
import { type SheetData } from "@rowsncolumns/common-types";
|
|
5
|
+
export type ExportOdsProps<S extends Sheet, T extends CellData, C extends Citation> = {
|
|
6
|
+
sheets: S[];
|
|
7
|
+
sheetData: SheetData<T>;
|
|
8
|
+
sharedStrings?: SharedStrings;
|
|
9
|
+
tables?: TableView[];
|
|
10
|
+
conditionalFormats?: ConditionalFormatRule[];
|
|
11
|
+
dataValidations?: DataValidationRuleRecord[];
|
|
12
|
+
cellXfs?: CellXfs | null;
|
|
13
|
+
theme?: SpreadsheetTheme;
|
|
14
|
+
embeds?: EmbeddedObject[];
|
|
15
|
+
charts?: EmbeddedChart[];
|
|
16
|
+
namedRanges?: NamedRange[];
|
|
17
|
+
iterativeCalculationOptions?: IterativeCalculationOptions;
|
|
18
|
+
citations?: Citation[];
|
|
19
|
+
};
|
|
20
|
+
export declare const createODSFile: <S extends Sheet, T extends CellData, C extends Citation>(props: ExportOdsProps<S, T, C>) => Promise<ArrayBuffer>;
|
|
21
|
+
export declare const exportToODS: <S extends Sheet, T extends CellData, C extends Citation>({ filename, ...rest }: ExportOdsProps<S, T, C> & {
|
|
22
|
+
filename: string;
|
|
23
|
+
}) => Promise<string | Blob | undefined>;
|
|
24
|
+
//# sourceMappingURL=ods-export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ods-export.d.ts","sourceRoot":"","sources":["../../ods-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,SAAS,EACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,QAAQ,EACR,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAK5D,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,IAChB;IACF,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,EAElB,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,yBAG/B,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,EAClB,uBAGC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,uCAMhD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createODSFile as createOdsExport } from "./exporter/ods/ods-export";
|
|
2
|
+
import { createDownloadableFile, toArrayBuffer } from "./helpers";
|
|
3
|
+
export const createODSFile = async (props) => {
|
|
4
|
+
return createOdsExport(props);
|
|
5
|
+
};
|
|
6
|
+
export const exportToODS = async ({ filename, ...rest }) => {
|
|
7
|
+
const buffer = await createOdsExport(rest);
|
|
8
|
+
const blob = new Blob([toArrayBuffer(buffer)], {
|
|
9
|
+
type: "application/vnd.oasis.opendocument.spreadsheet",
|
|
10
|
+
});
|
|
11
|
+
return createDownloadableFile(`${filename}.ods`, blob);
|
|
12
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CellData } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
export declare enum SUPPORTED_FILE_TYPES {
|
|
3
|
+
CSV = "text/csv",
|
|
4
|
+
CSV_TAB_SEPARATED = "text/tab-separated-values",
|
|
5
|
+
XLS = "application/vnd.ms-excel",
|
|
6
|
+
EXCEL = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
7
|
+
XLSB = "application/vnd.ms-excel.sheet.binary.macroenabled.12",
|
|
8
|
+
XLSM = "application/vnd.ms-excel.sheet.macroenabled.12",
|
|
9
|
+
ODS = "application/vnd.oasis.opendocument.spreadsheet"
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Parse CSV file object
|
|
13
|
+
* @param file
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare const createRowDataFromFile: <T extends CellData>(file: File, locale: string) => Promise<import("@rowsncolumns/common-types").RowData<T>[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Read file as data URI
|
|
19
|
+
* @param file
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
export declare const readImageFileAsDataUri: (file: File) => Promise<[uri: string, width: number, height: number]>;
|
|
23
|
+
export declare const getImageDimensionsFromUrl: (url: string) => Promise<[width: number, height: number] | undefined>;
|
|
24
|
+
//# sourceMappingURL=parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAI1D,oBAAY,oBAAoB;IAC9B,GAAG,aAAa;IAChB,iBAAiB,8BAA8B;IAC/C,GAAG,6BAA6B;IAChC,KAAK,sEAAsE;IAC3E,IAAI,0DAA0D;IAC9D,IAAI,mDAAmD;IACvD,GAAG,mDAAmD;CACvD;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,CAAC,SAAS,QAAQ,EAC5D,MAAM,IAAI,EACV,QAAQ,MAAM,+DAWf,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,MAAM,IAAI,0DAmBtD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,KAAK,MAAM,KACV,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAQrD,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createRowDataFromCSVFile } from "./csv-import";
|
|
2
|
+
export var SUPPORTED_FILE_TYPES;
|
|
3
|
+
(function (SUPPORTED_FILE_TYPES) {
|
|
4
|
+
SUPPORTED_FILE_TYPES["CSV"] = "text/csv";
|
|
5
|
+
SUPPORTED_FILE_TYPES["CSV_TAB_SEPARATED"] = "text/tab-separated-values";
|
|
6
|
+
SUPPORTED_FILE_TYPES["XLS"] = "application/vnd.ms-excel";
|
|
7
|
+
SUPPORTED_FILE_TYPES["EXCEL"] = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
8
|
+
SUPPORTED_FILE_TYPES["XLSB"] = "application/vnd.ms-excel.sheet.binary.macroenabled.12";
|
|
9
|
+
SUPPORTED_FILE_TYPES["XLSM"] = "application/vnd.ms-excel.sheet.macroenabled.12";
|
|
10
|
+
SUPPORTED_FILE_TYPES["ODS"] = "application/vnd.oasis.opendocument.spreadsheet";
|
|
11
|
+
})(SUPPORTED_FILE_TYPES || (SUPPORTED_FILE_TYPES = {}));
|
|
12
|
+
/**
|
|
13
|
+
* Parse CSV file object
|
|
14
|
+
* @param file
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
export const createRowDataFromFile = async (file, locale) => {
|
|
18
|
+
const type = file.type;
|
|
19
|
+
switch (type) {
|
|
20
|
+
case SUPPORTED_FILE_TYPES.CSV:
|
|
21
|
+
case SUPPORTED_FILE_TYPES.CSV_TAB_SEPARATED:
|
|
22
|
+
return createRowDataFromCSVFile(file, true, locale);
|
|
23
|
+
default:
|
|
24
|
+
throw "File type is not support";
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Read file as data URI
|
|
29
|
+
* @param file
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
export const readImageFileAsDataUri = async (file) => {
|
|
33
|
+
let resolver;
|
|
34
|
+
const sheetPromise = new Promise((resolve) => (resolver = resolve));
|
|
35
|
+
const reader = new FileReader();
|
|
36
|
+
reader.onload = async () => {
|
|
37
|
+
const image = new Image();
|
|
38
|
+
image.onload = () => {
|
|
39
|
+
resolver([reader.result, image.width, image.height]);
|
|
40
|
+
};
|
|
41
|
+
image.src = reader.result;
|
|
42
|
+
};
|
|
43
|
+
/* Start reading the file */
|
|
44
|
+
reader.readAsDataURL(file);
|
|
45
|
+
return sheetPromise;
|
|
46
|
+
};
|
|
47
|
+
export const getImageDimensionsFromUrl = async (url) => {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
const img = new Image();
|
|
50
|
+
img.onload = () => resolve([img.naturalWidth, img.naturalHeight]);
|
|
51
|
+
img.onerror = (err) => reject(err);
|
|
52
|
+
img.crossOrigin = "anonymous";
|
|
53
|
+
img.src = url;
|
|
54
|
+
});
|
|
55
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Power Query preservation envelope — the workbook's Get & Transform machinery, preserved as
|
|
3
|
+
* verbatim part XML so a round-tripped file keeps its queries. The JS mirror of the Rust engine's
|
|
4
|
+
* `LoadDocument.powerQuery` wire shape (`rnc-import`'s `queries` module / `rnc-export`'s
|
|
5
|
+
* `inject_power_query`), so an envelope read by either importer can be re-emitted by either
|
|
6
|
+
* exporter.
|
|
7
|
+
*
|
|
8
|
+
* Excel persists Power Query across three part families, none of which the engine evaluates:
|
|
9
|
+
* - `customXml/item{N}.xml` — the `<DataMashup>` blob ([MS-QDEFF]: the M source for every query +
|
|
10
|
+
* its load metadata), paired with `customXml/itemProps{N}.xml`, related from `xl/workbook.xml`.
|
|
11
|
+
* - `xl/connections.xml` — one `<connection>` per loaded query (`Provider=Microsoft.Mashup.OleDb.1`).
|
|
12
|
+
* - `xl/queryTables/queryTable{N}.xml` — binds a connection to the ListObject it fills; related FROM
|
|
13
|
+
* the table part, whose `<tableColumn>`s carry `queryTableFieldId`s.
|
|
14
|
+
*/
|
|
15
|
+
/** A preserved DataMashup `customXml` item + its `itemProps` part (verbatim XML). */
|
|
16
|
+
export type PowerQueryCustomXmlItem = {
|
|
17
|
+
itemXml: string;
|
|
18
|
+
propsXml?: string;
|
|
19
|
+
};
|
|
20
|
+
/** One `<tableColumn>` of the original query table (original `id` + `queryTableFieldId`). */
|
|
21
|
+
export type PowerQueryTableColumn = {
|
|
22
|
+
name: string;
|
|
23
|
+
/** The original `<tableColumn id=…>` — the queryTable part's `tableColumnId`s reference these. */
|
|
24
|
+
id: string;
|
|
25
|
+
queryTableFieldId?: string;
|
|
26
|
+
};
|
|
27
|
+
/** A preserved `queryTable` part plus its original table linkage (title match key + column ids). */
|
|
28
|
+
export type PowerQueryTable = {
|
|
29
|
+
tableTitle: string;
|
|
30
|
+
partXml: string;
|
|
31
|
+
columns: PowerQueryTableColumn[];
|
|
32
|
+
};
|
|
33
|
+
/** The whole preservation envelope. Every field optional — absent families were absent on import. */
|
|
34
|
+
export type PowerQueryParts = {
|
|
35
|
+
customXmlParts?: PowerQueryCustomXmlItem[];
|
|
36
|
+
connectionsXml?: string;
|
|
37
|
+
queryTables?: PowerQueryTable[];
|
|
38
|
+
};
|
|
39
|
+
/** Whether the envelope carries anything worth emitting. */
|
|
40
|
+
export declare const hasPowerQueryParts: (parts: PowerQueryParts | undefined | null) => parts is PowerQueryParts;
|
|
41
|
+
//# sourceMappingURL=power-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"power-query.d.ts","sourceRoot":"","sources":["../../power-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,qFAAqF;AACrF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,6FAA6F;AAC7F,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,kGAAkG;IAClG,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,oGAAoG;AACpG,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AAEF,qGAAqG;AACrG,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,GAAG,SAAS,GAAG,IAAI,KACxC,KAAK,IAAI,eAMT,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Power Query preservation envelope — the workbook's Get & Transform machinery, preserved as
|
|
3
|
+
* verbatim part XML so a round-tripped file keeps its queries. The JS mirror of the Rust engine's
|
|
4
|
+
* `LoadDocument.powerQuery` wire shape (`rnc-import`'s `queries` module / `rnc-export`'s
|
|
5
|
+
* `inject_power_query`), so an envelope read by either importer can be re-emitted by either
|
|
6
|
+
* exporter.
|
|
7
|
+
*
|
|
8
|
+
* Excel persists Power Query across three part families, none of which the engine evaluates:
|
|
9
|
+
* - `customXml/item{N}.xml` — the `<DataMashup>` blob ([MS-QDEFF]: the M source for every query +
|
|
10
|
+
* its load metadata), paired with `customXml/itemProps{N}.xml`, related from `xl/workbook.xml`.
|
|
11
|
+
* - `xl/connections.xml` — one `<connection>` per loaded query (`Provider=Microsoft.Mashup.OleDb.1`).
|
|
12
|
+
* - `xl/queryTables/queryTable{N}.xml` — binds a connection to the ListObject it fills; related FROM
|
|
13
|
+
* the table part, whose `<tableColumn>`s carry `queryTableFieldId`s.
|
|
14
|
+
*/
|
|
15
|
+
/** Whether the envelope carries anything worth emitting. */
|
|
16
|
+
export const hasPowerQueryParts = (parts) => Boolean(parts &&
|
|
17
|
+
((parts.customXmlParts?.length ?? 0) > 0 ||
|
|
18
|
+
parts.connectionsXml ||
|
|
19
|
+
(parts.queryTables?.length ?? 0) > 0));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { detectValueTypeAndPattern } from "./excel-parser/plugins/xlsx/value-type-detection";
|
|
2
|
+
export { WorkBook } from "./excel-parser/workbook";
|
|
3
|
+
export { readExcelFile } from "./excel-parser/helpers";
|
|
4
|
+
export { buildCellData } from "./csv-parser/helpers";
|
|
5
|
+
export { RequestType, ResponseType, type WorkerRequest, type WorkerResponse, } from "./excel-parser/types";
|
|
6
|
+
export { createCSVFromSheetData } from "./csv-export";
|
|
7
|
+
export { createODSFile } from "./ods-export";
|
|
8
|
+
export { createExcelFile } from "./exporter/xlsx/xlsx-export";
|
|
9
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { detectValueTypeAndPattern } from "./excel-parser/plugins/xlsx/value-type-detection";
|
|
2
|
+
export { WorkBook } from "./excel-parser/workbook";
|
|
3
|
+
export { readExcelFile } from "./excel-parser/helpers";
|
|
4
|
+
export { buildCellData } from "./csv-parser/helpers";
|
|
5
|
+
export { RequestType, ResponseType, } from "./excel-parser/types";
|
|
6
|
+
export { createCSVFromSheetData } from "./csv-export";
|
|
7
|
+
export { createODSFile } from "./ods-export";
|
|
8
|
+
export { createExcelFile } from "./exporter/xlsx/xlsx-export";
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" name=\"Office Theme\"><a:themeElements><a:clrScheme name=\"Office\"><a:dk1><a:srgbClr val=\"000000\"/></a:dk1><a:lt1><a:srgbClr val=\"FFFFFF\"/></a:lt1><a:dk2><a:srgbClr val=\"000000\"/></a:dk2><a:lt2><a:srgbClr val=\"FFFFFF\"/></a:lt2><a:accent1><a:srgbClr val=\"365BB7\"/></a:accent1><a:accent2><a:srgbClr val=\"E66826\"/></a:accent2><a:accent3><a:srgbClr val=\"949494\"/></a:accent3><a:accent4><a:srgbClr val=\"FDB506\"/></a:accent4><a:accent5><a:srgbClr val=\"4B87CB\"/></a:accent5><a:accent6><a:srgbClr val=\"60A038\"/></a:accent6><a:hlink><a:srgbClr val=\"0B4CB4\"/></a:hlink><a:folHlink><a:srgbClr val=\"1155CC\"/></a:folHlink></a:clrScheme><a:fontScheme name=\"Office\"><a:majorFont><a:latin typeface=\"Arial\"/><a:ea typeface=\"Arial\"/><a:cs typeface=\"Arial\"/></a:majorFont><a:minorFont><a:latin typeface=\"Arial\"/><a:ea typeface=\"Arial\"/><a:cs typeface=\"Arial\"/></a:minorFont></a:fontScheme><a:fmtScheme name=\"Office\"><a:fillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"110000\"/><a:satMod val=\"105000\"/><a:tint val=\"67000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"103000\"/><a:tint val=\"73000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"109000\"/><a:tint val=\"81000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:satMod val=\"103000\"/><a:lumMod val=\"102000\"/><a:tint val=\"94000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:satMod val=\"110000\"/><a:lumMod val=\"100000\"/><a:shade val=\"100000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"99000\"/><a:satMod val=\"120000\"/><a:shade val=\"78000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w=\"6350\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln><a:ln w=\"12700\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln><a:ln w=\"19050\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"57150\" dist=\"19050\" dir=\"5400000\" algn=\"ctr\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"63000\"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:solidFill><a:schemeClr val=\"phClr\"><a:tint val=\"95000\"/><a:satMod val=\"170000\"/></a:schemeClr></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"93000\"/><a:satMod val=\"150000\"/><a:shade val=\"98000\"/><a:lumMod val=\"102000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:tint val=\"98000\"/><a:satMod val=\"130000\"/><a:shade val=\"90000\"/><a:lumMod val=\"103000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"63000\"/><a:satMod val=\"120000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements></a:theme>";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=theme1.d.ts.map
|