@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,50 @@
|
|
|
1
|
+
import type { SpreadsheetTheme, ThemeColors } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
/**
|
|
3
|
+
* Fonts extracted from a workbook theme's `<a:fontScheme>`.
|
|
4
|
+
*
|
|
5
|
+
* `primaryFontFamily` is the body (minor) typeface — the font Excel uses
|
|
6
|
+
* for regular cells — and `headingFontFamily` is the heading (major)
|
|
7
|
+
* typeface. Both are always populated (falling back to the Office
|
|
8
|
+
* defaults, Calibri body / Cambria headings). `majorFontFamily` /
|
|
9
|
+
* `minorFontFamily` carry the RAW typefaces and stay `undefined` when the
|
|
10
|
+
* theme doesn't declare them, so scheme-font resolution can distinguish
|
|
11
|
+
* "theme says X" from "no theme — leave unresolved".
|
|
12
|
+
*/
|
|
13
|
+
export type ExtractedThemeFonts = {
|
|
14
|
+
name: string;
|
|
15
|
+
primaryFontFamily: string;
|
|
16
|
+
headingFontFamily: string;
|
|
17
|
+
majorFontFamily?: string;
|
|
18
|
+
minorFontFamily?: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Extract theme fonts from theme XML
|
|
22
|
+
* @param themeXml Parsed theme XML content
|
|
23
|
+
* @returns Font information
|
|
24
|
+
*/
|
|
25
|
+
export declare function extractThemeFonts(themeXml: any): ExtractedThemeFonts;
|
|
26
|
+
/**
|
|
27
|
+
* Function to extract theme colors from Excel theme XML file
|
|
28
|
+
* @param themeXml Parsed theme XML content
|
|
29
|
+
* @returns An object containing the theme colors
|
|
30
|
+
*/
|
|
31
|
+
export declare function extractThemeColors(themeXml: any, defaultTheme: SpreadsheetTheme): Record<string, string> | {
|
|
32
|
+
hyperlink: string;
|
|
33
|
+
text1: string;
|
|
34
|
+
text2: string;
|
|
35
|
+
background1: string;
|
|
36
|
+
background2: string;
|
|
37
|
+
accent1: string;
|
|
38
|
+
accent2: string;
|
|
39
|
+
accent3: string;
|
|
40
|
+
accent4: string;
|
|
41
|
+
accent5: string;
|
|
42
|
+
accent6: string;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Generate dark theme colors based on light theme colors
|
|
46
|
+
* @param themeColors Light theme colors
|
|
47
|
+
* @returns Dark theme color variants
|
|
48
|
+
*/
|
|
49
|
+
export declare function generateDarkThemeColors(themeColors: Record<ThemeColors, string>): Partial<Record<ThemeColors, string>>;
|
|
50
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAI/E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,mBAAmB,CAyBpE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,GAAG,EACb,YAAY,EAAE,gBAAgB;;;;;;;;;;;;EA4E/B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,GACvC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAuBtC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { __assign, __read, __values } from "tslib";
|
|
2
|
+
import { lightenColor } from "@rowsncolumns/utils";
|
|
3
|
+
import { get } from "lodash-es";
|
|
4
|
+
/**
|
|
5
|
+
* Extract theme fonts from theme XML
|
|
6
|
+
* @param themeXml Parsed theme XML content
|
|
7
|
+
* @returns Font information
|
|
8
|
+
*/
|
|
9
|
+
export function extractThemeFonts(themeXml) {
|
|
10
|
+
var _a;
|
|
11
|
+
var fontScheme = get(themeXml, "a:theme.a:themeElements.a:fontScheme");
|
|
12
|
+
if (!fontScheme) {
|
|
13
|
+
return {
|
|
14
|
+
name: "",
|
|
15
|
+
primaryFontFamily: "Calibri",
|
|
16
|
+
headingFontFamily: "Cambria",
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
// Get font scheme name
|
|
20
|
+
var name = ((_a = fontScheme.a$) === null || _a === void 0 ? void 0 : _a.name) || "";
|
|
21
|
+
var majorFontFamily = get(fontScheme, "a:majorFont.a:latin.a$.typeface") || undefined;
|
|
22
|
+
var minorFontFamily = get(fontScheme, "a:minorFont.a:latin.a$.typeface") || undefined;
|
|
23
|
+
return {
|
|
24
|
+
name: name,
|
|
25
|
+
primaryFontFamily: minorFontFamily || majorFontFamily || "Calibri",
|
|
26
|
+
headingFontFamily: majorFontFamily || minorFontFamily || "Cambria",
|
|
27
|
+
majorFontFamily: majorFontFamily,
|
|
28
|
+
minorFontFamily: minorFontFamily,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Function to extract theme colors from Excel theme XML file
|
|
33
|
+
* @param themeXml Parsed theme XML content
|
|
34
|
+
* @returns An object containing the theme colors
|
|
35
|
+
*/
|
|
36
|
+
export function extractThemeColors(themeXml, defaultTheme) {
|
|
37
|
+
var e_1, _a, e_2, _b;
|
|
38
|
+
// Initialize color scheme objects
|
|
39
|
+
var themeColors = {};
|
|
40
|
+
var colorScheme = get(themeXml, "a:theme.a:themeElements.a:clrScheme");
|
|
41
|
+
if (!colorScheme) {
|
|
42
|
+
console.warn("Could not find color scheme in theme file");
|
|
43
|
+
return themeColors;
|
|
44
|
+
}
|
|
45
|
+
// Map of Excel theme elements to color names
|
|
46
|
+
var colorElementMap = {
|
|
47
|
+
dk1: "text1",
|
|
48
|
+
lt1: "background1",
|
|
49
|
+
dk2: "text2",
|
|
50
|
+
lt2: "background2",
|
|
51
|
+
accent1: "accent1",
|
|
52
|
+
accent2: "accent2",
|
|
53
|
+
accent3: "accent3",
|
|
54
|
+
accent4: "accent4",
|
|
55
|
+
accent5: "accent5",
|
|
56
|
+
accent6: "accent6",
|
|
57
|
+
hlink: "hyperlink",
|
|
58
|
+
folHlink: "followedHyperlink",
|
|
59
|
+
};
|
|
60
|
+
try {
|
|
61
|
+
// Process each color element
|
|
62
|
+
for (var _c = __values(Object.entries(colorElementMap)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
63
|
+
var _e = __read(_d.value, 2), excelElement = _e[0], themeColor = _e[1];
|
|
64
|
+
var colorElement = colorScheme["a:".concat(excelElement)];
|
|
65
|
+
if (!colorElement)
|
|
66
|
+
continue;
|
|
67
|
+
// Check different color types (srgbClr, sysClr, etc.)
|
|
68
|
+
if (colorElement["a:srgbClr"]) {
|
|
69
|
+
// RGB color value
|
|
70
|
+
themeColors[themeColor] = "#".concat(colorElement["a:srgbClr"].a$.val);
|
|
71
|
+
}
|
|
72
|
+
else if (colorElement["a:sysClr"]) {
|
|
73
|
+
// System color value
|
|
74
|
+
themeColors[themeColor] = "#".concat(colorElement["a:sysClr"].a$.lastClr || colorElement["a:sysClr"].a$.val);
|
|
75
|
+
}
|
|
76
|
+
else if (colorElement["a:scrgbClr"]) {
|
|
77
|
+
// SCRGB color (percentage RGB)
|
|
78
|
+
var r = Math.round((parseInt(colorElement["a:scrgbClr"].a$.r, 10) * 255) / 100)
|
|
79
|
+
.toString(16)
|
|
80
|
+
.padStart(2, "0");
|
|
81
|
+
var g = Math.round((parseInt(colorElement["a:scrgbClr"].a$.g, 10) * 255) / 100)
|
|
82
|
+
.toString(16)
|
|
83
|
+
.padStart(2, "0");
|
|
84
|
+
var b = Math.round((parseInt(colorElement["a:scrgbClr"].a$.b, 10) * 255) / 100)
|
|
85
|
+
.toString(16)
|
|
86
|
+
.padStart(2, "0");
|
|
87
|
+
themeColors[themeColor] = "#".concat(r).concat(g).concat(b);
|
|
88
|
+
}
|
|
89
|
+
else if (colorElement["a:prstClr"]) {
|
|
90
|
+
// Preset color
|
|
91
|
+
themeColors[themeColor] = "#000000"; // Default to black for preset colors without additional processing
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
96
|
+
finally {
|
|
97
|
+
try {
|
|
98
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
99
|
+
}
|
|
100
|
+
finally { if (e_1) throw e_1.error; }
|
|
101
|
+
}
|
|
102
|
+
// Ensure all required colors are present, use defaults for missing colors
|
|
103
|
+
var newThemeColors = __assign({}, defaultTheme.themeColors);
|
|
104
|
+
try {
|
|
105
|
+
// Override defaults with extracted colors
|
|
106
|
+
for (var _f = __values(Object.entries(themeColors)), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
107
|
+
var _h = __read(_g.value, 2), key = _h[0], value = _h[1];
|
|
108
|
+
if (key in themeColors) {
|
|
109
|
+
newThemeColors[key] = value;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
114
|
+
finally {
|
|
115
|
+
try {
|
|
116
|
+
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
117
|
+
}
|
|
118
|
+
finally { if (e_2) throw e_2.error; }
|
|
119
|
+
}
|
|
120
|
+
return newThemeColors;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Generate dark theme colors based on light theme colors
|
|
124
|
+
* @param themeColors Light theme colors
|
|
125
|
+
* @returns Dark theme color variants
|
|
126
|
+
*/
|
|
127
|
+
export function generateDarkThemeColors(themeColors) {
|
|
128
|
+
var darkThemeColors = {};
|
|
129
|
+
// Invert background and text colors
|
|
130
|
+
if (themeColors.background1)
|
|
131
|
+
darkThemeColors.background1 = themeColors.text1;
|
|
132
|
+
if (themeColors.text1)
|
|
133
|
+
darkThemeColors.text1 = themeColors.background1;
|
|
134
|
+
if (themeColors.background2)
|
|
135
|
+
darkThemeColors.background2 = themeColors.text2;
|
|
136
|
+
if (themeColors.text2)
|
|
137
|
+
darkThemeColors.text2 = themeColors.background2;
|
|
138
|
+
// Lighten accent colors by 15% for dark mode
|
|
139
|
+
for (var i = 1; i <= 6; i++) {
|
|
140
|
+
var accentKey = "accent".concat(i);
|
|
141
|
+
if (themeColors[accentKey]) {
|
|
142
|
+
darkThemeColors[accentKey] = lightenColor(0.15, themeColors[accentKey]);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Lighten hyperlink color
|
|
146
|
+
if (themeColors.hyperlink) {
|
|
147
|
+
darkThemeColors.hyperlink = lightenColor(0.2, themeColors.hyperlink);
|
|
148
|
+
}
|
|
149
|
+
return darkThemeColors;
|
|
150
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { CommentThread } from "@rowsncolumns/common-types";
|
|
2
|
+
/**
|
|
3
|
+
* Import-side counterpart of `exporter/xlsx/threaded-comments-builder.ts`.
|
|
4
|
+
*
|
|
5
|
+
* Modern threaded comments (Excel's "Comments" sidebar) live in three
|
|
6
|
+
* coordinated parts:
|
|
7
|
+
*
|
|
8
|
+
* 1. `xl/threadedComments/threadedComment{N}.xml` — per-sheet ordered
|
|
9
|
+
* messages. The first message of a thread is the root; replies carry
|
|
10
|
+
* `parentId` = the root's id.
|
|
11
|
+
* 2. `xl/persons/person.xml` — workbook-level author list, referenced by
|
|
12
|
+
* each message's `personId`.
|
|
13
|
+
* 3. A down-level legacy mirror in `xl/comments{N}.xml` whose author is
|
|
14
|
+
* the sentinel `tc={rootGuid}` and whose text starts with the
|
|
15
|
+
* "[Threaded comment]" boilerplate. Importers that understand the
|
|
16
|
+
* threaded part must skip the mirror or every thread doubles up as a
|
|
17
|
+
* plain note.
|
|
18
|
+
*
|
|
19
|
+
* These helpers are pure functions over fast-xml-parser output in the
|
|
20
|
+
* plugin's `XMLOptions2` shape (attributes grouped under `a$`, text nodes
|
|
21
|
+
* under `t$`).
|
|
22
|
+
*/
|
|
23
|
+
/** personId GUID → author identity from `xl/persons/person.xml`. */
|
|
24
|
+
export type ParsedPersons = Map<string, {
|
|
25
|
+
displayName: string;
|
|
26
|
+
userId: string;
|
|
27
|
+
}>;
|
|
28
|
+
export type SheetThreadedComments = {
|
|
29
|
+
threads: CommentThread[];
|
|
30
|
+
/** Root cell address (e.g. "A1") → id of the thread anchored there. */
|
|
31
|
+
threadIdByAddress: Map<string, string>;
|
|
32
|
+
};
|
|
33
|
+
export declare const EMPTY_SHEET_THREADED_COMMENTS: SheetThreadedComments;
|
|
34
|
+
/** Parse `xl/persons/person.xml` (already run through fast-xml-parser). */
|
|
35
|
+
export declare const parsePersons: (parsed: any) => ParsedPersons;
|
|
36
|
+
/**
|
|
37
|
+
* Parse one sheet's `xl/threadedComments/threadedComment{N}.xml` part into
|
|
38
|
+
* the exporter's model: workbook-level {@link CommentThread}s plus the cell
|
|
39
|
+
* anchor of each thread's root (cells reference threads via
|
|
40
|
+
* `commentThreadId`, so placement rides on the cell — never on the thread).
|
|
41
|
+
*
|
|
42
|
+
* Messages keep document order (Excel writes roots before their replies).
|
|
43
|
+
* A reply whose `parentId` doesn't resolve is promoted to its own thread
|
|
44
|
+
* rather than dropped.
|
|
45
|
+
*/
|
|
46
|
+
export declare const parseThreadedComments: (parsed: any, persons: ParsedPersons) => SheetThreadedComments;
|
|
47
|
+
//# sourceMappingURL=threaded-comments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threaded-comments.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/threaded-comments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhF;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,uEAAuE;IACvE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,qBAG3C,CAAC;AA6BF,2EAA2E;AAC3E,eAAO,MAAM,YAAY,GAAI,QAAQ,GAAG,KAAG,aAe1C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,GAAG,EACX,SAAS,aAAa,KACrB,qBAsDF,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { __values } from "tslib";
|
|
2
|
+
import { get } from "lodash-es";
|
|
3
|
+
export var EMPTY_SHEET_THREADED_COMMENTS = {
|
|
4
|
+
threads: [],
|
|
5
|
+
threadIdByAddress: new Map(),
|
|
6
|
+
};
|
|
7
|
+
var toArray = function (value) {
|
|
8
|
+
return Array.isArray(value) ? value : value == null ? [] : [value];
|
|
9
|
+
};
|
|
10
|
+
var pick = function (source, paths) {
|
|
11
|
+
var e_1, _a;
|
|
12
|
+
try {
|
|
13
|
+
for (var paths_1 = __values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {
|
|
14
|
+
var path = paths_1_1.value;
|
|
15
|
+
var value = get(source, path);
|
|
16
|
+
if (value !== undefined) {
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
22
|
+
finally {
|
|
23
|
+
try {
|
|
24
|
+
if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);
|
|
25
|
+
}
|
|
26
|
+
finally { if (e_1) throw e_1.error; }
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
};
|
|
30
|
+
/** Flatten a parsed element's text content (`"x"`, `{ t$: "x" }`, …). */
|
|
31
|
+
var textOf = function (node) {
|
|
32
|
+
if (typeof node === "string") {
|
|
33
|
+
return node;
|
|
34
|
+
}
|
|
35
|
+
if (node && typeof node === "object") {
|
|
36
|
+
var inner = pick(node, ["t$", "_", "#text"]);
|
|
37
|
+
if (typeof inner === "string") {
|
|
38
|
+
return inner;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return "";
|
|
42
|
+
};
|
|
43
|
+
/** Parse `xl/persons/person.xml` (already run through fast-xml-parser). */
|
|
44
|
+
export var parsePersons = function (parsed) {
|
|
45
|
+
var e_2, _a;
|
|
46
|
+
var _b, _c;
|
|
47
|
+
var persons = new Map();
|
|
48
|
+
var list = toArray(pick(parsed, ["personList.person", "x:personList.x:person"]));
|
|
49
|
+
try {
|
|
50
|
+
for (var list_1 = __values(list), list_1_1 = list_1.next(); !list_1_1.done; list_1_1 = list_1.next()) {
|
|
51
|
+
var person = list_1_1.value;
|
|
52
|
+
var attrs = person === null || person === void 0 ? void 0 : person.a$;
|
|
53
|
+
var id = attrs === null || attrs === void 0 ? void 0 : attrs.id;
|
|
54
|
+
if (!id)
|
|
55
|
+
continue;
|
|
56
|
+
persons.set(String(id), {
|
|
57
|
+
displayName: String((_b = attrs.displayName) !== null && _b !== void 0 ? _b : "").trim() || "Unknown",
|
|
58
|
+
userId: String((_c = attrs.userId) !== null && _c !== void 0 ? _c : "").trim(),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
63
|
+
finally {
|
|
64
|
+
try {
|
|
65
|
+
if (list_1_1 && !list_1_1.done && (_a = list_1.return)) _a.call(list_1);
|
|
66
|
+
}
|
|
67
|
+
finally { if (e_2) throw e_2.error; }
|
|
68
|
+
}
|
|
69
|
+
return persons;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Parse one sheet's `xl/threadedComments/threadedComment{N}.xml` part into
|
|
73
|
+
* the exporter's model: workbook-level {@link CommentThread}s plus the cell
|
|
74
|
+
* anchor of each thread's root (cells reference threads via
|
|
75
|
+
* `commentThreadId`, so placement rides on the cell — never on the thread).
|
|
76
|
+
*
|
|
77
|
+
* Messages keep document order (Excel writes roots before their replies).
|
|
78
|
+
* A reply whose `parentId` doesn't resolve is promoted to its own thread
|
|
79
|
+
* rather than dropped.
|
|
80
|
+
*/
|
|
81
|
+
export var parseThreadedComments = function (parsed, persons) {
|
|
82
|
+
var e_3, _a;
|
|
83
|
+
var _b, _c;
|
|
84
|
+
var entries = toArray(pick(parsed, [
|
|
85
|
+
"ThreadedComments.threadedComment",
|
|
86
|
+
"x:ThreadedComments.x:threadedComment",
|
|
87
|
+
]));
|
|
88
|
+
if (entries.length === 0) {
|
|
89
|
+
return EMPTY_SHEET_THREADED_COMMENTS;
|
|
90
|
+
}
|
|
91
|
+
var threads = [];
|
|
92
|
+
var threadById = new Map();
|
|
93
|
+
var threadIdByAddress = new Map();
|
|
94
|
+
var fallbackId = 0;
|
|
95
|
+
try {
|
|
96
|
+
for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {
|
|
97
|
+
var entry = entries_1_1.value;
|
|
98
|
+
var attrs = entry === null || entry === void 0 ? void 0 : entry.a$;
|
|
99
|
+
if (!attrs)
|
|
100
|
+
continue;
|
|
101
|
+
var id = attrs.id ? String(attrs.id) : "imported-tc-".concat(fallbackId++);
|
|
102
|
+
var person = attrs.personId
|
|
103
|
+
? persons.get(String(attrs.personId))
|
|
104
|
+
: undefined;
|
|
105
|
+
var message = {
|
|
106
|
+
id: id,
|
|
107
|
+
text: textOf(pick(entry, ["text", "x:text"])),
|
|
108
|
+
authorId: (_b = person === null || person === void 0 ? void 0 : person.userId) !== null && _b !== void 0 ? _b : "",
|
|
109
|
+
authorName: (_c = person === null || person === void 0 ? void 0 : person.displayName) !== null && _c !== void 0 ? _c : "Unknown",
|
|
110
|
+
};
|
|
111
|
+
if (attrs.dT) {
|
|
112
|
+
message.createdAtISO = String(attrs.dT);
|
|
113
|
+
}
|
|
114
|
+
var parentId = attrs.parentId ? String(attrs.parentId) : undefined;
|
|
115
|
+
var parent_1 = parentId ? threadById.get(parentId) : undefined;
|
|
116
|
+
if (parent_1) {
|
|
117
|
+
parent_1.messages.push(message);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
// Root message — or an orphaned reply promoted to a root so it isn't lost.
|
|
121
|
+
var thread = { id: id, messages: [message] };
|
|
122
|
+
if (attrs.done === "1" || attrs.done === "true") {
|
|
123
|
+
thread.resolved = true;
|
|
124
|
+
}
|
|
125
|
+
threads.push(thread);
|
|
126
|
+
threadById.set(id, thread);
|
|
127
|
+
var ref = attrs.ref ? String(attrs.ref) : undefined;
|
|
128
|
+
if (ref && !threadIdByAddress.has(ref)) {
|
|
129
|
+
threadIdByAddress.set(ref, id);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
134
|
+
finally {
|
|
135
|
+
try {
|
|
136
|
+
if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);
|
|
137
|
+
}
|
|
138
|
+
finally { if (e_3) throw e_3.error; }
|
|
139
|
+
}
|
|
140
|
+
return { threads: threads, threadIdByAddress: threadIdByAddress };
|
|
141
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ErrorValue, ExtendedValue, NumberFormatType } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
export type ValueType = keyof ExtendedValue;
|
|
3
|
+
export declare const pattern_percent = "0%";
|
|
4
|
+
export declare const pattern_percent_decimal = "0.00%";
|
|
5
|
+
export declare const pattern_currency = "\"$\"#,##0";
|
|
6
|
+
export declare const pattern_currency_decimal = "\"$\"#,##0.00";
|
|
7
|
+
export declare const date_pattern = "mm/dd/yyyy";
|
|
8
|
+
export declare const time_pattern_base = "hh:mm:ss";
|
|
9
|
+
export declare const time_pattern = "hh:mm:ss AM/PM";
|
|
10
|
+
export declare const time_pattern_short = "h:mm AM/PM";
|
|
11
|
+
export interface DateParts {
|
|
12
|
+
year: number;
|
|
13
|
+
month: number;
|
|
14
|
+
day: number;
|
|
15
|
+
hour?: number;
|
|
16
|
+
minute?: number;
|
|
17
|
+
second?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface ValidDateResult {
|
|
20
|
+
format: string;
|
|
21
|
+
parts: DateParts;
|
|
22
|
+
}
|
|
23
|
+
export declare const isCurrency: (value: string | number | boolean | Date | undefined) => boolean;
|
|
24
|
+
export declare const isBoolean: (value: any) => boolean;
|
|
25
|
+
export declare const isPercentage: (value: string | number | boolean | Date | undefined) => boolean;
|
|
26
|
+
export declare const cleanNumberValue: (value: string | number | boolean | Date | undefined | null) => string;
|
|
27
|
+
export declare const convertToNumber: (text: string | number | boolean | Date | undefined) => number;
|
|
28
|
+
export declare const createNumberValue: (value: string | number | boolean | Date | undefined, numFormatType: NumberFormatType | undefined, locale: string | undefined) => number | undefined;
|
|
29
|
+
export declare const createDateValueFromNumber: (value: string | number | boolean | Date | undefined | ErrorValue) => string | boolean | Date | ErrorValue | undefined;
|
|
30
|
+
export declare const isNumber: (value: any) => value is number;
|
|
31
|
+
export declare const getDecimalPlaces: (value: string) => number;
|
|
32
|
+
export declare const detectDecimalPattern: (value: string | number | boolean | Date | undefined, defaultPattern?: string) => string;
|
|
33
|
+
export declare const changeDecimals: (pattern?: string | undefined, changeBy?: number, delta?: boolean) => string;
|
|
34
|
+
export declare const validateDate: (value: string | number | boolean | Date | undefined, locale: string | undefined) => ValidDateResult | undefined;
|
|
35
|
+
export declare const validateDateTime: (value: string | number | boolean | Date | undefined) => ValidDateResult | undefined;
|
|
36
|
+
export declare const detectDateFormatPattern: (value: string | number | boolean | Date | undefined, locale: string | undefined) => string | undefined;
|
|
37
|
+
export declare const detectDateTimeFormatPattern: (value: string | number | boolean | Date | undefined) => string | undefined;
|
|
38
|
+
export declare const detectNumberFormatType: (value: any, locale: string | undefined) => NumberFormatType | undefined;
|
|
39
|
+
export declare const detectNumberFormatPattern: (value: string | number | boolean | Date | undefined, numberValue: number | undefined, type: NumberFormatType | undefined, locale: string | undefined) => string | undefined;
|
|
40
|
+
export declare const detectValueType: (value: any, locale: string | undefined) => ValueType;
|
|
41
|
+
export declare const detectValueTypeAndPattern: (value: string | number | boolean | Date | undefined, locale: string | undefined) => [formatValue: keyof ExtendedValue, numFormatType?: NumberFormatType, numberValue?: number, pattern?: string];
|
|
42
|
+
export declare const isValidDate: (value: any, locale: string | undefined) => boolean;
|
|
43
|
+
export declare const isValidDateTime: (value: any) => boolean;
|
|
44
|
+
//# sourceMappingURL=value-type-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-type-detection.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/value-type-detection.ts"],"names":[],"mappings":"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"}
|