@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,407 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { parse } from "@rowsncolumns/date-parser";
|
|
3
|
+
import { isAFormula, isNil, toDate, toSerial } from "@rowsncolumns/utils";
|
|
4
|
+
export var pattern_percent = "0%";
|
|
5
|
+
export var pattern_percent_decimal = "0.00%";
|
|
6
|
+
export var pattern_currency = '"$"#,##0';
|
|
7
|
+
export var pattern_currency_decimal = '"$"#,##0.00';
|
|
8
|
+
export var date_pattern = "mm/dd/yyyy";
|
|
9
|
+
export var time_pattern_base = "hh:mm:ss";
|
|
10
|
+
export var time_pattern = "hh:mm:ss AM/PM";
|
|
11
|
+
export var time_pattern_short = "h:mm AM/PM";
|
|
12
|
+
var CURRENCY_PATTERN = /^[£$€¥₹]\d+(?:[.,]\d{1,2})?$|^\d+(?:[.,]\d{1,2})?[£$€¥₹]$/;
|
|
13
|
+
var CURRENCY_GROUPING_CHARS = /[,\s]/g;
|
|
14
|
+
var NUMBER_CLEANUP_PATTERN = /[$,%]/gi;
|
|
15
|
+
var NUMBER_CONVERSION_PATTERN = /[^0-9.-]+/g;
|
|
16
|
+
var TRUE_UPPER = "TRUE";
|
|
17
|
+
var FALSE_UPPER = "FALSE";
|
|
18
|
+
var PERCENT_CHAR = "%";
|
|
19
|
+
var PATTERN_SEPARATOR = ";";
|
|
20
|
+
var DECIMAL_CLEANUP_REGEX = /[^0-9.,]/g;
|
|
21
|
+
var DECIMAL_SPLIT_REGEX = /[.]/;
|
|
22
|
+
// const THOUSAND_REGEX = /(\,[#,0]{3})/gi;
|
|
23
|
+
// const THOUSAND_PATTERN = ",##0";
|
|
24
|
+
var ISO_DATE_REGEX = /^(\d{4})[-/.](\d{2})[-/.](\d{2})$/;
|
|
25
|
+
var TIME_REGEX = {
|
|
26
|
+
FULL_WITH_MERIDIAN: /^(\d{1,2}):(\d{1,2}):(\d{1,2})\s*(AM|PM|a|p)$/i,
|
|
27
|
+
FULL: /^(\d{1,2}):(\d{1,2}):(\d{1,2})$/,
|
|
28
|
+
SHORT_WITH_MERIDIAN: /^(\d{1,2}):(\d{1,2})\s*(AM|PM)$/i,
|
|
29
|
+
SHORT: /^(\d{1,2}):(\d{1,2})$/,
|
|
30
|
+
};
|
|
31
|
+
var TIME_FORMATS = {
|
|
32
|
+
FULL_WITH_MERIDIAN: "hh:mm:ss AM/PM",
|
|
33
|
+
FULL: "hh:mm:ss",
|
|
34
|
+
SHORT_WITH_MERIDIAN: "hh:mm AM/PM",
|
|
35
|
+
SHORT: "hh:mm",
|
|
36
|
+
};
|
|
37
|
+
var DECIMAL_REGEX = new RegExp("(?<prefix>[\\d#,]+)(?<decimal>\\.)?(?<suffix>\\d{1,})?", "i");
|
|
38
|
+
export var isCurrency = function (value) {
|
|
39
|
+
if (value === void 0)
|
|
40
|
+
return false;
|
|
41
|
+
var text = String(value).trim();
|
|
42
|
+
var normalized = text.replace(CURRENCY_GROUPING_CHARS, "");
|
|
43
|
+
return CURRENCY_PATTERN.test(normalized);
|
|
44
|
+
};
|
|
45
|
+
export var isBoolean = function (value) {
|
|
46
|
+
if (typeof value === "boolean")
|
|
47
|
+
return true;
|
|
48
|
+
if (typeof value !== "string" && typeof value !== "number")
|
|
49
|
+
return false;
|
|
50
|
+
var upperValue = String(value).toUpperCase();
|
|
51
|
+
return upperValue === TRUE_UPPER || upperValue === FALSE_UPPER;
|
|
52
|
+
};
|
|
53
|
+
export var isPercentage = function (value) {
|
|
54
|
+
if (isNil(value))
|
|
55
|
+
return false;
|
|
56
|
+
var strValue = String(value).trim();
|
|
57
|
+
return strValue.endsWith(PERCENT_CHAR) || strValue.startsWith(PERCENT_CHAR);
|
|
58
|
+
};
|
|
59
|
+
export var cleanNumberValue = function (value) {
|
|
60
|
+
if (typeof value === "number")
|
|
61
|
+
return String(value);
|
|
62
|
+
if (isNil(value)) {
|
|
63
|
+
return "";
|
|
64
|
+
}
|
|
65
|
+
var trimmedValue = String(value).trim();
|
|
66
|
+
if (trimmedValue === "") {
|
|
67
|
+
return "";
|
|
68
|
+
}
|
|
69
|
+
return trimmedValue.replace(NUMBER_CLEANUP_PATTERN, "");
|
|
70
|
+
};
|
|
71
|
+
export var convertToNumber = function (text) {
|
|
72
|
+
if (typeof text === "number") {
|
|
73
|
+
return text;
|
|
74
|
+
}
|
|
75
|
+
return Number(String(text).replace(NUMBER_CONVERSION_PATTERN, ""));
|
|
76
|
+
};
|
|
77
|
+
export var createNumberValue = function (value, numFormatType, locale) {
|
|
78
|
+
if (isNil(value)) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
var isDate = numFormatType === "DATE";
|
|
82
|
+
var isDateTime = numFormatType === "DATE_TIME";
|
|
83
|
+
if (typeof value !== "boolean" && (isDate || isDateTime)) {
|
|
84
|
+
if (typeof value === "number") {
|
|
85
|
+
var dateValue_1 = createDateValueFromNumber(value);
|
|
86
|
+
if (!isNil(dateValue_1) && dateValue_1 instanceof Date) {
|
|
87
|
+
return toSerial(dateValue_1);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
var dateValue = isDate
|
|
91
|
+
? validateDate(value, locale)
|
|
92
|
+
: validateDateTime(value);
|
|
93
|
+
if (dateValue) {
|
|
94
|
+
var _a = dateValue.parts, year = _a.year, month = _a.month, day = _a.day, hour = _a.hour, minute = _a.minute, second = _a.second;
|
|
95
|
+
return toSerial(new Date(year, month, day, hour, minute, second, 0));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return convertToNumber(value);
|
|
99
|
+
};
|
|
100
|
+
export var createDateValueFromNumber = function (value) {
|
|
101
|
+
if (typeof value === "number") {
|
|
102
|
+
return toDate(value);
|
|
103
|
+
}
|
|
104
|
+
return value;
|
|
105
|
+
};
|
|
106
|
+
export var isNumber = function (value) {
|
|
107
|
+
var sanitizedValue = cleanNumberValue(value);
|
|
108
|
+
if (sanitizedValue === "") {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
return !isNaN(Number(sanitizedValue));
|
|
112
|
+
};
|
|
113
|
+
var createZeros = function (len) {
|
|
114
|
+
return Array.from({ length: len })
|
|
115
|
+
.map(function () { return "0"; })
|
|
116
|
+
.join("");
|
|
117
|
+
};
|
|
118
|
+
export var getDecimalPlaces = function (value) {
|
|
119
|
+
var cleanedValue = value.replace(DECIMAL_CLEANUP_REGEX, "");
|
|
120
|
+
var parts = cleanedValue.split(DECIMAL_SPLIT_REGEX);
|
|
121
|
+
if (parts.length === 1) {
|
|
122
|
+
return 0;
|
|
123
|
+
}
|
|
124
|
+
var decimalPart = parts[parts.length - 1];
|
|
125
|
+
return decimalPart.length;
|
|
126
|
+
};
|
|
127
|
+
export var detectDecimalPattern = function (value, defaultPattern) {
|
|
128
|
+
if (defaultPattern === void 0) { defaultPattern = "#"; }
|
|
129
|
+
var str = String(value);
|
|
130
|
+
var hasThousands = str.indexOf(",") !== -1;
|
|
131
|
+
var decimalsLen = getDecimalPlaces(str);
|
|
132
|
+
var numValue = Number(str.replace(/[^0-9.-]/g, ""));
|
|
133
|
+
var needsLeadingZero = Math.abs(numValue) < 1;
|
|
134
|
+
var prefix = hasThousands ? "#,##0" : defaultPattern;
|
|
135
|
+
if (decimalsLen !== 0) {
|
|
136
|
+
if (needsLeadingZero && prefix === "#") {
|
|
137
|
+
prefix = "0";
|
|
138
|
+
}
|
|
139
|
+
return changeDecimals(prefix, decimalsLen, true);
|
|
140
|
+
}
|
|
141
|
+
return prefix;
|
|
142
|
+
};
|
|
143
|
+
export var changeDecimals = function (pattern, changeBy, delta) {
|
|
144
|
+
if (pattern === void 0) { pattern = ""; }
|
|
145
|
+
if (changeBy === void 0) { changeBy = 1; }
|
|
146
|
+
if (delta === void 0) { delta = true; }
|
|
147
|
+
var patterns = pattern.split(PATTERN_SEPARATOR);
|
|
148
|
+
return patterns
|
|
149
|
+
.map(function (p) {
|
|
150
|
+
var match = p.match(DECIMAL_REGEX);
|
|
151
|
+
if (match && match.groups) {
|
|
152
|
+
var _a = match.groups, decimal = _a.decimal, suffix = _a.suffix;
|
|
153
|
+
if (!decimal) {
|
|
154
|
+
var newDecimals = Math.max(changeBy, 0);
|
|
155
|
+
var zeros_1 = createZeros(newDecimals);
|
|
156
|
+
return p.replace(DECIMAL_REGEX, "$1$2".concat(zeros_1.length ? "." + zeros_1 : ""));
|
|
157
|
+
}
|
|
158
|
+
var newSuffix = 0;
|
|
159
|
+
if (suffix) {
|
|
160
|
+
newSuffix = Math.max(delta ? suffix.length + changeBy : changeBy, 0);
|
|
161
|
+
}
|
|
162
|
+
var zeros = createZeros(newSuffix);
|
|
163
|
+
return p.replace(DECIMAL_REGEX, "$1".concat(zeros.length ? "$2" + zeros : ""));
|
|
164
|
+
}
|
|
165
|
+
if (!p) {
|
|
166
|
+
var newDecimals = Math.max(changeBy, 0);
|
|
167
|
+
var zeros = createZeros(newDecimals);
|
|
168
|
+
return "0".concat(zeros.length ? "." + zeros : "");
|
|
169
|
+
}
|
|
170
|
+
return p;
|
|
171
|
+
})
|
|
172
|
+
.join(PATTERN_SEPARATOR);
|
|
173
|
+
};
|
|
174
|
+
export var validateDate = function (value, locale) {
|
|
175
|
+
if (typeof value === "number") {
|
|
176
|
+
var match = ISO_DATE_REGEX.exec(String(value));
|
|
177
|
+
if (match) {
|
|
178
|
+
var _a = __read(match, 4), yearStr = _a[1], monthStr = _a[2], dayStr = _a[3];
|
|
179
|
+
var year = Number(yearStr);
|
|
180
|
+
var month = Number(monthStr) - 1;
|
|
181
|
+
var day = Number(dayStr);
|
|
182
|
+
var dateValue_2 = new Date(year, month, day);
|
|
183
|
+
if (dateValue_2.getFullYear() === year &&
|
|
184
|
+
dateValue_2.getMonth() === month &&
|
|
185
|
+
dateValue_2.getDate() === Number(dayStr)) {
|
|
186
|
+
return {
|
|
187
|
+
format: "yyyy-mm-dd",
|
|
188
|
+
parts: {
|
|
189
|
+
year: year,
|
|
190
|
+
month: month,
|
|
191
|
+
day: day,
|
|
192
|
+
hour: 0,
|
|
193
|
+
minute: 0,
|
|
194
|
+
second: 0,
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (typeof value !== "string")
|
|
201
|
+
return undefined;
|
|
202
|
+
var result = parse(value, { locale: locale });
|
|
203
|
+
if (!result)
|
|
204
|
+
return undefined;
|
|
205
|
+
var dateValue = result.dateValue;
|
|
206
|
+
return {
|
|
207
|
+
format: result.pattern,
|
|
208
|
+
parts: {
|
|
209
|
+
year: dateValue.getFullYear(),
|
|
210
|
+
month: dateValue.getMonth(),
|
|
211
|
+
day: dateValue.getDate(),
|
|
212
|
+
hour: dateValue.getHours(),
|
|
213
|
+
minute: dateValue.getMinutes(),
|
|
214
|
+
second: dateValue.getSeconds(),
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
export var validateDateTime = function (value) {
|
|
219
|
+
if (typeof value !== "string")
|
|
220
|
+
return undefined;
|
|
221
|
+
var str = value.trim();
|
|
222
|
+
var match;
|
|
223
|
+
if ((match = TIME_REGEX.FULL_WITH_MERIDIAN.exec(str))) {
|
|
224
|
+
var hour = parseInt(match[1], 10);
|
|
225
|
+
var minute = parseInt(match[2], 10);
|
|
226
|
+
var second = parseInt(match[3], 10);
|
|
227
|
+
var meridian = match[4];
|
|
228
|
+
if (isValidTimeComponents(hour, minute, second, meridian)) {
|
|
229
|
+
return createTimeResult(TIME_FORMATS.FULL_WITH_MERIDIAN, adjustHour(hour, meridian), minute, second);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if ((match = TIME_REGEX.FULL.exec(str))) {
|
|
233
|
+
var hour = parseInt(match[1], 10);
|
|
234
|
+
var minute = parseInt(match[2], 10);
|
|
235
|
+
var second = parseInt(match[3], 10);
|
|
236
|
+
if (isValidTimeComponents(hour, minute, second)) {
|
|
237
|
+
return createTimeResult(TIME_FORMATS.FULL, hour, minute, second);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
if ((match = TIME_REGEX.SHORT_WITH_MERIDIAN.exec(str))) {
|
|
241
|
+
var hour = parseInt(match[1], 10);
|
|
242
|
+
var minute = parseInt(match[2], 10);
|
|
243
|
+
var meridian = match[3];
|
|
244
|
+
if (isValidTimeComponents(hour, minute, 0, meridian)) {
|
|
245
|
+
return createTimeResult(TIME_FORMATS.SHORT_WITH_MERIDIAN, adjustHour(hour, meridian), minute, 0);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if ((match = TIME_REGEX.SHORT.exec(str))) {
|
|
249
|
+
var hour = parseInt(match[1], 10);
|
|
250
|
+
var minute = parseInt(match[2], 10);
|
|
251
|
+
if (isValidTimeComponents(hour, minute, 0)) {
|
|
252
|
+
return createTimeResult(TIME_FORMATS.SHORT, hour, minute, 0);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return undefined;
|
|
256
|
+
};
|
|
257
|
+
var isValidTimeComponents = function (hour, minute, second, meridian) {
|
|
258
|
+
if (hour > 24 ||
|
|
259
|
+
minute > 59 ||
|
|
260
|
+
second > 59 ||
|
|
261
|
+
((meridian === null || meridian === void 0 ? void 0 : meridian.toUpperCase()) === "AM" && hour > 12)) {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
return true;
|
|
265
|
+
};
|
|
266
|
+
var adjustHour = function (hour, meridian) {
|
|
267
|
+
if ((meridian === null || meridian === void 0 ? void 0 : meridian.toLowerCase().charAt(0)) === "p" && hour < 12) {
|
|
268
|
+
return hour + 12;
|
|
269
|
+
}
|
|
270
|
+
return hour;
|
|
271
|
+
};
|
|
272
|
+
var createTimeResult = function (format, hour, minute, second) {
|
|
273
|
+
var now = new Date();
|
|
274
|
+
return {
|
|
275
|
+
format: format,
|
|
276
|
+
parts: {
|
|
277
|
+
year: now.getFullYear(),
|
|
278
|
+
month: now.getMonth(),
|
|
279
|
+
day: now.getDate(),
|
|
280
|
+
hour: hour,
|
|
281
|
+
minute: minute,
|
|
282
|
+
second: second,
|
|
283
|
+
},
|
|
284
|
+
};
|
|
285
|
+
};
|
|
286
|
+
export var detectDateFormatPattern = function (value, locale) {
|
|
287
|
+
var _a;
|
|
288
|
+
if (!value || (typeof value !== "string" && !(value instanceof Date))) {
|
|
289
|
+
return undefined;
|
|
290
|
+
}
|
|
291
|
+
return (_a = validateDate(value, locale)) === null || _a === void 0 ? void 0 : _a.format;
|
|
292
|
+
};
|
|
293
|
+
export var detectDateTimeFormatPattern = function (value) {
|
|
294
|
+
var _a, _b;
|
|
295
|
+
if (!value || typeof value !== "string") {
|
|
296
|
+
return undefined;
|
|
297
|
+
}
|
|
298
|
+
return (_b = (_a = validateDateTime(value)) === null || _a === void 0 ? void 0 : _a.format) !== null && _b !== void 0 ? _b : time_pattern;
|
|
299
|
+
};
|
|
300
|
+
export var detectNumberFormatType = function (value, locale) {
|
|
301
|
+
if (isCurrency(value)) {
|
|
302
|
+
return "CURRENCY";
|
|
303
|
+
}
|
|
304
|
+
if (isPercentage(value)) {
|
|
305
|
+
return "PERCENT";
|
|
306
|
+
}
|
|
307
|
+
if (isNumber(value)) {
|
|
308
|
+
return "NUMBER";
|
|
309
|
+
}
|
|
310
|
+
if (isValidDate(value, locale)) {
|
|
311
|
+
return "DATE";
|
|
312
|
+
}
|
|
313
|
+
if (isValidDateTime(value)) {
|
|
314
|
+
return "DATE_TIME";
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
export var detectNumberFormatPattern = function (value, numberValue, type, locale) {
|
|
318
|
+
var _a, _b;
|
|
319
|
+
if (type === "PERCENT") {
|
|
320
|
+
return detectDecimalPattern(value, pattern_percent);
|
|
321
|
+
}
|
|
322
|
+
if (type === "CURRENCY") {
|
|
323
|
+
return detectDecimalPattern(numberValue, pattern_currency);
|
|
324
|
+
}
|
|
325
|
+
if (type === "DATE") {
|
|
326
|
+
return (_a = detectDateFormatPattern(value, locale)) !== null && _a !== void 0 ? _a : date_pattern;
|
|
327
|
+
}
|
|
328
|
+
if (type === "DATE_TIME") {
|
|
329
|
+
return (_b = detectDateTimeFormatPattern(value)) !== null && _b !== void 0 ? _b : time_pattern;
|
|
330
|
+
}
|
|
331
|
+
if (type === "NUMBER") {
|
|
332
|
+
// An integer zero with no explicit format stays "General" — imported `0`,
|
|
333
|
+
// `00`, and signed zero values with a General number format shouldn't
|
|
334
|
+
// manufacture a `#` pattern that renders the value as blank.
|
|
335
|
+
// Explicit CURRENCY / PERCENT formats keep their own base pattern for
|
|
336
|
+
// zero (handled above), so `$0` stays `"$"#,##0`, not a bare `0`.
|
|
337
|
+
if (value === 0 ||
|
|
338
|
+
(typeof value === "string" && /^[-+]?0+$/.test(value.trim()))) {
|
|
339
|
+
return "General";
|
|
340
|
+
}
|
|
341
|
+
return detectDecimalPattern(value);
|
|
342
|
+
}
|
|
343
|
+
return undefined;
|
|
344
|
+
};
|
|
345
|
+
export var detectValueType = function (value, locale) {
|
|
346
|
+
if (isAFormula(value)) {
|
|
347
|
+
return "formulaValue";
|
|
348
|
+
}
|
|
349
|
+
if (isBoolean(value)) {
|
|
350
|
+
return "boolValue";
|
|
351
|
+
}
|
|
352
|
+
if (isNumber(value) || isValidDate(value, locale) || isValidDateTime(value)) {
|
|
353
|
+
return "numberValue";
|
|
354
|
+
}
|
|
355
|
+
return "stringValue";
|
|
356
|
+
};
|
|
357
|
+
export var detectValueTypeAndPattern = function (value, locale) {
|
|
358
|
+
if (isAFormula(value)) {
|
|
359
|
+
return ["formulaValue"];
|
|
360
|
+
}
|
|
361
|
+
if (isBoolean(value)) {
|
|
362
|
+
return ["boolValue"];
|
|
363
|
+
}
|
|
364
|
+
if (isNumber(value)) {
|
|
365
|
+
var numberValue = convertToNumber(value);
|
|
366
|
+
if (isCurrency(value)) {
|
|
367
|
+
var pattern = detectDecimalPattern(numberValue, pattern_currency);
|
|
368
|
+
return ["numberValue", "CURRENCY", numberValue, pattern];
|
|
369
|
+
}
|
|
370
|
+
if (isPercentage(value)) {
|
|
371
|
+
var pattern = detectDecimalPattern(numberValue, pattern_percent);
|
|
372
|
+
var percentValue = convertToNumber(value) / 100;
|
|
373
|
+
return ["numberValue", "PERCENT", percentValue, pattern];
|
|
374
|
+
}
|
|
375
|
+
return [
|
|
376
|
+
"numberValue",
|
|
377
|
+
"NUMBER",
|
|
378
|
+
convertToNumber(value),
|
|
379
|
+
detectNumberFormatPattern(value, numberValue, "NUMBER", locale),
|
|
380
|
+
];
|
|
381
|
+
}
|
|
382
|
+
var dateValue = validateDate(value, locale);
|
|
383
|
+
if (dateValue) {
|
|
384
|
+
var _a = dateValue.parts, year = _a.year, month = _a.month, day = _a.day, hour = _a.hour, minute = _a.minute, second = _a.second;
|
|
385
|
+
var numberValue = toSerial(new Date(year, month, day, hour, minute, second, 0));
|
|
386
|
+
return ["numberValue", "DATE", numberValue, dateValue.format];
|
|
387
|
+
}
|
|
388
|
+
var dateTimeValue = validateDateTime(value);
|
|
389
|
+
if (dateTimeValue) {
|
|
390
|
+
var _b = dateTimeValue.parts, year = _b.year, month = _b.month, day = _b.day, hour = _b.hour, minute = _b.minute, second = _b.second;
|
|
391
|
+
var numberValue = toSerial(new Date(year, month, day, hour, minute, second, 0));
|
|
392
|
+
return ["numberValue", "DATE_TIME", numberValue, dateTimeValue.format];
|
|
393
|
+
}
|
|
394
|
+
return ["stringValue"];
|
|
395
|
+
};
|
|
396
|
+
export var isValidDate = function (value, locale) {
|
|
397
|
+
if (!value || (typeof value !== "string" && !(value instanceof Date))) {
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
400
|
+
return !!validateDate(value, locale);
|
|
401
|
+
};
|
|
402
|
+
export var isValidDateTime = function (value) {
|
|
403
|
+
if (!value || typeof value !== "string") {
|
|
404
|
+
return false;
|
|
405
|
+
}
|
|
406
|
+
return !!validateDateTime(value);
|
|
407
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IWorkbookPlugin } from "./interface";
|
|
2
|
+
export type PluginFactory = () => IWorkbookPlugin;
|
|
3
|
+
export declare const PARSER_REGISTRY: Record<string, PluginFactory>;
|
|
4
|
+
export declare function getPluginForFile(file: File | string): IWorkbookPlugin;
|
|
5
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../excel-parser/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD,MAAM,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAKzD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,eAAe,CAWrE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OdsPlugin } from "./plugins/ods/index";
|
|
2
|
+
import { XlsbPlugin } from "./plugins/xlsb/index";
|
|
3
|
+
import { XlsmPlugin } from "./plugins/xlsm/index";
|
|
4
|
+
import { XlsxPlugin } from "./plugins/xlsx/index";
|
|
5
|
+
export var PARSER_REGISTRY = {
|
|
6
|
+
xlsx: function () { return new XlsxPlugin(); },
|
|
7
|
+
xlsm: function () { return new XlsmPlugin(); },
|
|
8
|
+
xlsb: function () { return new XlsbPlugin(); },
|
|
9
|
+
ods: function () { return new OdsPlugin(); },
|
|
10
|
+
};
|
|
11
|
+
export function getPluginForFile(file) {
|
|
12
|
+
var _a;
|
|
13
|
+
var fileName = typeof file === "string" ? file : file.name;
|
|
14
|
+
var extension = (_a = fileName.split(".").pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
15
|
+
if (extension && PARSER_REGISTRY[extension]) {
|
|
16
|
+
return PARSER_REGISTRY[extension]();
|
|
17
|
+
}
|
|
18
|
+
// Default to xlsx for now if unknown, or maybe throw error?
|
|
19
|
+
// Current behavior assumes everything is xlsx-like
|
|
20
|
+
return new XlsxPlugin();
|
|
21
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { CellFormat, TextFormat } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
/**
|
|
3
|
+
* Excel-like style registry that mirrors Excel's XF (eXtended Format) architecture
|
|
4
|
+
*/
|
|
5
|
+
export declare class StyleRegistry {
|
|
6
|
+
private cellXfs;
|
|
7
|
+
private styleXfs;
|
|
8
|
+
private numFmts;
|
|
9
|
+
private fonts;
|
|
10
|
+
private fills;
|
|
11
|
+
private borders;
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Register a font and return its index
|
|
15
|
+
*/
|
|
16
|
+
registerFont(font: TextFormat): number;
|
|
17
|
+
/**
|
|
18
|
+
* Register a fill and return its index
|
|
19
|
+
*/
|
|
20
|
+
registerFill(fill: any): number;
|
|
21
|
+
/**
|
|
22
|
+
* Register a border and return its index
|
|
23
|
+
*/
|
|
24
|
+
registerBorder(border: any): number;
|
|
25
|
+
/**
|
|
26
|
+
* Register a number format and return its index
|
|
27
|
+
*/
|
|
28
|
+
registerNumberFormat(format: string): number;
|
|
29
|
+
/**
|
|
30
|
+
* Register a cell XF (format) and return its index
|
|
31
|
+
*/
|
|
32
|
+
registerCellXf(format: CellFormat): number;
|
|
33
|
+
/**
|
|
34
|
+
* Get a cell XF by index
|
|
35
|
+
*/
|
|
36
|
+
getCellXf(index: number): CellFormat;
|
|
37
|
+
/**
|
|
38
|
+
* Export the style registry
|
|
39
|
+
*/
|
|
40
|
+
export(): {
|
|
41
|
+
cellXfs: CellFormat[];
|
|
42
|
+
styleXfs: CellFormat[];
|
|
43
|
+
numFmts: {
|
|
44
|
+
[k: string]: string;
|
|
45
|
+
};
|
|
46
|
+
fonts: TextFormat[];
|
|
47
|
+
fills: any[];
|
|
48
|
+
borders: any[];
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=style-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-registry.d.ts","sourceRoot":"","sources":["../../../excel-parser/style-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAExE;;GAEG;AACH,qBAAa,aAAa;IAExB,OAAO,CAAC,OAAO,CAAoB;IAGnC,OAAO,CAAC,QAAQ,CAAoB;IAGpC,OAAO,CAAC,OAAO,CAAkC;IAGjD,OAAO,CAAC,KAAK,CAAoB;IAGjC,OAAO,CAAC,KAAK,CAAa;IAG1B,OAAO,CAAC,OAAO,CAAa;;IAoB5B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IActC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAc/B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAcnC;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAc5C;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAsD1C;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAMpC;;OAEG;IACH,MAAM;;;;;;;;;;CAUP"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { __assign, __read, __values } from "tslib";
|
|
2
|
+
/**
|
|
3
|
+
* Excel-like style registry that mirrors Excel's XF (eXtended Format) architecture
|
|
4
|
+
*/
|
|
5
|
+
var StyleRegistry = /** @class */ (function () {
|
|
6
|
+
function StyleRegistry() {
|
|
7
|
+
// Store style XF records (cell formats used directly by cells)
|
|
8
|
+
this.cellXfs = [];
|
|
9
|
+
// Store style XF records (named styles that can be applied to cells)
|
|
10
|
+
this.styleXfs = [];
|
|
11
|
+
// Store number formats
|
|
12
|
+
this.numFmts = new Map();
|
|
13
|
+
// Store fonts
|
|
14
|
+
this.fonts = [];
|
|
15
|
+
// Store fills (background colors)
|
|
16
|
+
this.fills = [];
|
|
17
|
+
// Store borders
|
|
18
|
+
this.borders = [];
|
|
19
|
+
// Initialize with default formats
|
|
20
|
+
this.cellXfs.push({}); // Default empty format at index 0
|
|
21
|
+
this.styleXfs.push({}); // Default empty style at index 0
|
|
22
|
+
this.fonts.push({}); // Default font at index 0
|
|
23
|
+
this.fills.push({ patternType: "none" }); // Default fill (none) at index 0
|
|
24
|
+
this.fills.push({ patternType: "gray125" }); // Default fill (gray125) at index 1
|
|
25
|
+
this.borders.push({}); // Default border (none) at index 0
|
|
26
|
+
// Standard number formats (0-49 are built-in in Excel)
|
|
27
|
+
this.numFmts.set(0, "General");
|
|
28
|
+
this.numFmts.set(1, "0");
|
|
29
|
+
this.numFmts.set(2, "0.00");
|
|
30
|
+
this.numFmts.set(3, "#,##0");
|
|
31
|
+
this.numFmts.set(4, "#,##0.00");
|
|
32
|
+
// And so on...
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Register a font and return its index
|
|
36
|
+
*/
|
|
37
|
+
StyleRegistry.prototype.registerFont = function (font) {
|
|
38
|
+
// Check if font already exists
|
|
39
|
+
var fontStr = JSON.stringify(font);
|
|
40
|
+
for (var i = 0; i < this.fonts.length; i++) {
|
|
41
|
+
if (JSON.stringify(this.fonts[i]) === fontStr) {
|
|
42
|
+
return i;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Add new font
|
|
46
|
+
this.fonts.push(font);
|
|
47
|
+
return this.fonts.length - 1;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Register a fill and return its index
|
|
51
|
+
*/
|
|
52
|
+
StyleRegistry.prototype.registerFill = function (fill) {
|
|
53
|
+
// Check if fill already exists
|
|
54
|
+
var fillStr = JSON.stringify(fill);
|
|
55
|
+
for (var i = 0; i < this.fills.length; i++) {
|
|
56
|
+
if (JSON.stringify(this.fills[i]) === fillStr) {
|
|
57
|
+
return i;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Add new fill
|
|
61
|
+
this.fills.push(fill);
|
|
62
|
+
return this.fills.length - 1;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Register a border and return its index
|
|
66
|
+
*/
|
|
67
|
+
StyleRegistry.prototype.registerBorder = function (border) {
|
|
68
|
+
// Check if border already exists
|
|
69
|
+
var borderStr = JSON.stringify(border);
|
|
70
|
+
for (var i = 0; i < this.borders.length; i++) {
|
|
71
|
+
if (JSON.stringify(this.borders[i]) === borderStr) {
|
|
72
|
+
return i;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Add new border
|
|
76
|
+
this.borders.push(border);
|
|
77
|
+
return this.borders.length - 1;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Register a number format and return its index
|
|
81
|
+
*/
|
|
82
|
+
StyleRegistry.prototype.registerNumberFormat = function (format) {
|
|
83
|
+
var e_1, _a;
|
|
84
|
+
try {
|
|
85
|
+
// Check if format already exists in built-in formats
|
|
86
|
+
for (var _b = __values(this.numFmts.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
87
|
+
var _d = __read(_c.value, 2), id = _d[0], fmt = _d[1];
|
|
88
|
+
if (fmt === format) {
|
|
89
|
+
return id;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
94
|
+
finally {
|
|
95
|
+
try {
|
|
96
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
97
|
+
}
|
|
98
|
+
finally { if (e_1) throw e_1.error; }
|
|
99
|
+
}
|
|
100
|
+
// Assign a new ID (starting from 164 as Excel does for custom formats)
|
|
101
|
+
var newId = 164 + (this.numFmts.size - 50); // 50 is the number of built-in formats
|
|
102
|
+
this.numFmts.set(newId, format);
|
|
103
|
+
return newId;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Register a cell XF (format) and return its index
|
|
107
|
+
*/
|
|
108
|
+
StyleRegistry.prototype.registerCellXf = function (format) {
|
|
109
|
+
var _a;
|
|
110
|
+
// Extract components to register individually
|
|
111
|
+
var numFmtId = 0;
|
|
112
|
+
var fontId = 0;
|
|
113
|
+
var fillId = 0;
|
|
114
|
+
var borderId = 0;
|
|
115
|
+
// Register number format if present
|
|
116
|
+
if ((_a = format.numberFormat) === null || _a === void 0 ? void 0 : _a.pattern) {
|
|
117
|
+
numFmtId = this.registerNumberFormat(format.numberFormat.pattern);
|
|
118
|
+
}
|
|
119
|
+
// Register font if present
|
|
120
|
+
if (format.textFormat) {
|
|
121
|
+
fontId = this.registerFont(format.textFormat);
|
|
122
|
+
}
|
|
123
|
+
// Register fill if present
|
|
124
|
+
if (format.backgroundColor) {
|
|
125
|
+
fillId = this.registerFill({
|
|
126
|
+
patternType: "solid",
|
|
127
|
+
fgColor: format.backgroundColor,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
// Register border if present
|
|
131
|
+
if (format.borders) {
|
|
132
|
+
borderId = this.registerBorder(format.borders);
|
|
133
|
+
}
|
|
134
|
+
// Create an XF record with references
|
|
135
|
+
var xfRecord = __assign(__assign({}, format), { _refs: {
|
|
136
|
+
numFmtId: numFmtId,
|
|
137
|
+
fontId: fontId,
|
|
138
|
+
fillId: fillId,
|
|
139
|
+
borderId: borderId,
|
|
140
|
+
} });
|
|
141
|
+
// Check if XF already exists
|
|
142
|
+
var xfStr = JSON.stringify(xfRecord);
|
|
143
|
+
for (var i = 0; i < this.cellXfs.length; i++) {
|
|
144
|
+
if (JSON.stringify(this.cellXfs[i]) === xfStr) {
|
|
145
|
+
return i;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// Add new XF
|
|
149
|
+
this.cellXfs.push(xfRecord);
|
|
150
|
+
return this.cellXfs.length - 1;
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Get a cell XF by index
|
|
154
|
+
*/
|
|
155
|
+
StyleRegistry.prototype.getCellXf = function (index) {
|
|
156
|
+
return index >= 0 && index < this.cellXfs.length
|
|
157
|
+
? this.cellXfs[index]
|
|
158
|
+
: this.cellXfs[0];
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Export the style registry
|
|
162
|
+
*/
|
|
163
|
+
StyleRegistry.prototype.export = function () {
|
|
164
|
+
return {
|
|
165
|
+
cellXfs: this.cellXfs,
|
|
166
|
+
styleXfs: this.styleXfs,
|
|
167
|
+
numFmts: Object.fromEntries(this.numFmts),
|
|
168
|
+
fonts: this.fonts,
|
|
169
|
+
fills: this.fills,
|
|
170
|
+
borders: this.borders,
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
return StyleRegistry;
|
|
174
|
+
}());
|
|
175
|
+
export { StyleRegistry };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-default.d.ts","sourceRoot":"","sources":["../../../excel-parser/theme-default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,2BAA2B,CAAC;AAgB/E,eAAO,MAAM,uBAAuB,EAAE,gBAKrC,CAAC"}
|