@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,515 @@
|
|
|
1
|
+
import { __assign, __read, __spreadArray, __values } from "tslib";
|
|
2
|
+
import { addressToSelection, checkIfStringIsReference, cellToAddress, } from "@rowsncolumns/utils";
|
|
3
|
+
import { uuid } from "@rowsncolumns/utils";
|
|
4
|
+
import { get } from "lodash-es";
|
|
5
|
+
var formatSheetName = function (sheetName) {
|
|
6
|
+
if (!sheetName) {
|
|
7
|
+
return "";
|
|
8
|
+
}
|
|
9
|
+
return "'".concat(sheetName.replace(/'/g, "''"), "'");
|
|
10
|
+
};
|
|
11
|
+
var ensureSheetReference = function (reference, sheetName) {
|
|
12
|
+
if (!sheetName || reference.includes("!")) {
|
|
13
|
+
return reference;
|
|
14
|
+
}
|
|
15
|
+
var prefix = formatSheetName(sheetName);
|
|
16
|
+
return "".concat(prefix, "!").concat(reference);
|
|
17
|
+
};
|
|
18
|
+
var extractFormulaText = function (entry) {
|
|
19
|
+
if (entry === undefined || entry === null) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if (typeof entry === "string" || typeof entry === "number") {
|
|
23
|
+
return String(entry);
|
|
24
|
+
}
|
|
25
|
+
if (typeof entry === "object") {
|
|
26
|
+
if (typeof entry.t$ === "string") {
|
|
27
|
+
return entry.t$;
|
|
28
|
+
}
|
|
29
|
+
if (typeof entry._ === "string") {
|
|
30
|
+
return entry._;
|
|
31
|
+
}
|
|
32
|
+
if (typeof entry["#text"] === "string") {
|
|
33
|
+
return entry["#text"];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
};
|
|
38
|
+
var normalizeFormulaText = function (entry) {
|
|
39
|
+
var text = extractFormulaText(entry);
|
|
40
|
+
if (text === undefined) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
var trimmed = text.trim();
|
|
44
|
+
if (!trimmed)
|
|
45
|
+
return undefined;
|
|
46
|
+
return trimmed.startsWith("=") ? trimmed.slice(1) : trimmed;
|
|
47
|
+
};
|
|
48
|
+
var normalizeOperator = function (operator, hasSecondValue) { return operator || (hasSecondValue ? "between" : "equal"); };
|
|
49
|
+
var mapNumberOperatorToCondition = function (operator, hasSecondValue) {
|
|
50
|
+
var normalized = normalizeOperator(operator, hasSecondValue);
|
|
51
|
+
var operatorMap = {
|
|
52
|
+
between: "NUMBER_BETWEEN",
|
|
53
|
+
notBetween: "NUMBER_NOT_BETWEEN",
|
|
54
|
+
equal: "NUMBER_EQ",
|
|
55
|
+
notEqual: "NUMBER_NOT_EQ",
|
|
56
|
+
greaterThan: "NUMBER_GREATER",
|
|
57
|
+
greaterThanOrEqual: "NUMBER_GREATER_THAN_EQ",
|
|
58
|
+
lessThan: "NUMBER_LESS",
|
|
59
|
+
lessThanOrEqual: "NUMBER_LESS_THAN_EQ",
|
|
60
|
+
};
|
|
61
|
+
return operatorMap[normalized];
|
|
62
|
+
};
|
|
63
|
+
var mapDateOperatorToCondition = function (operator, hasSecondValue) {
|
|
64
|
+
var normalized = normalizeOperator(operator, hasSecondValue);
|
|
65
|
+
var operatorMap = {
|
|
66
|
+
between: "DATE_BETWEEN",
|
|
67
|
+
notBetween: "DATE_NOT_BETWEEN",
|
|
68
|
+
equal: "DATE_EQ",
|
|
69
|
+
notEqual: "DATE_NOT_EQ",
|
|
70
|
+
greaterThan: "DATE_AFTER",
|
|
71
|
+
greaterThanOrEqual: "DATE_ON_OR_AFTER",
|
|
72
|
+
lessThan: "DATE_BEFORE",
|
|
73
|
+
lessThanOrEqual: "DATE_ON_OR_BEFORE",
|
|
74
|
+
};
|
|
75
|
+
return operatorMap[normalized];
|
|
76
|
+
};
|
|
77
|
+
var buildTextLengthFormula = function (operator, baseCellRef, fromExpr, toExpr) {
|
|
78
|
+
var lenExpr = "LEN(".concat(baseCellRef, ")");
|
|
79
|
+
var normalized = normalizeOperator(operator, Boolean(toExpr));
|
|
80
|
+
if (!fromExpr && normalized !== "between" && normalized !== "notBetween") {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
switch (normalized) {
|
|
84
|
+
case "between":
|
|
85
|
+
if (!fromExpr || !toExpr)
|
|
86
|
+
return undefined;
|
|
87
|
+
return "AND(".concat(lenExpr, ">=").concat(fromExpr, ",").concat(lenExpr, "<=").concat(toExpr, ")");
|
|
88
|
+
case "notBetween":
|
|
89
|
+
if (!fromExpr || !toExpr)
|
|
90
|
+
return undefined;
|
|
91
|
+
return "OR(".concat(lenExpr, "<").concat(fromExpr, ",").concat(lenExpr, ">").concat(toExpr, ")");
|
|
92
|
+
case "equal":
|
|
93
|
+
return "".concat(lenExpr, "=").concat(fromExpr);
|
|
94
|
+
case "notEqual":
|
|
95
|
+
return "".concat(lenExpr, "<>").concat(fromExpr);
|
|
96
|
+
case "greaterThan":
|
|
97
|
+
return "".concat(lenExpr, ">").concat(fromExpr);
|
|
98
|
+
case "greaterThanOrEqual":
|
|
99
|
+
return "".concat(lenExpr, ">=").concat(fromExpr);
|
|
100
|
+
case "lessThan":
|
|
101
|
+
return "".concat(lenExpr, "<").concat(fromExpr);
|
|
102
|
+
case "lessThanOrEqual":
|
|
103
|
+
return "".concat(lenExpr, "<=").concat(fromExpr);
|
|
104
|
+
default:
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
var mapErrorStyle = function (style) {
|
|
109
|
+
if (!style)
|
|
110
|
+
return "stop";
|
|
111
|
+
if (style === "warning")
|
|
112
|
+
return "warning";
|
|
113
|
+
if (style === "information")
|
|
114
|
+
return "information";
|
|
115
|
+
return "stop";
|
|
116
|
+
};
|
|
117
|
+
var NUMBER_VALIDATION_TYPES = new Set(["whole", "decimal", "time"]);
|
|
118
|
+
var escapeRegExp = function (value) {
|
|
119
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
120
|
+
};
|
|
121
|
+
var parseListValues = function (raw) {
|
|
122
|
+
var trimmed = raw.trim();
|
|
123
|
+
if (!trimmed)
|
|
124
|
+
return [];
|
|
125
|
+
return [parseTextLiteral(trimmed)];
|
|
126
|
+
};
|
|
127
|
+
var parseTextLiteral = function (raw) {
|
|
128
|
+
var trimmed = raw.trim();
|
|
129
|
+
if (!trimmed)
|
|
130
|
+
return "";
|
|
131
|
+
if (trimmed.startsWith('"') && trimmed.endsWith('"')) {
|
|
132
|
+
return trimmed.slice(1, -1).replace(/""/g, '"');
|
|
133
|
+
}
|
|
134
|
+
return trimmed;
|
|
135
|
+
};
|
|
136
|
+
var parseCustomValidationFormula = function (rawFormula, baseCellRef) {
|
|
137
|
+
var formula = rawFormula.trim().startsWith("=")
|
|
138
|
+
? rawFormula.trim().slice(1)
|
|
139
|
+
: rawFormula.trim();
|
|
140
|
+
if (!formula)
|
|
141
|
+
return undefined;
|
|
142
|
+
var baseMatch = /^([A-Z]+)(\d+)$/i.exec(baseCellRef);
|
|
143
|
+
var baseRefPattern = baseMatch
|
|
144
|
+
? "\\$?".concat(baseMatch[1], "\\$?").concat(baseMatch[2])
|
|
145
|
+
: escapeRegExp(baseCellRef);
|
|
146
|
+
var basePattern = "(?:".concat(baseRefPattern, "|INDIRECT\\(\"RC\",FALSE\\))");
|
|
147
|
+
var textContains = new RegExp("^ISNUMBER\\(SEARCH\\((.+),\\s*".concat(basePattern, "\\)\\)$"), "i");
|
|
148
|
+
var textNotContains = new RegExp("^ISERROR\\(SEARCH\\((.+),\\s*".concat(basePattern, "\\)\\)$"), "i");
|
|
149
|
+
var textStartsWith = new RegExp("^LEFT\\(".concat(basePattern, ",LEN\\((.+)\\)\\)=(.+)$"), "i");
|
|
150
|
+
var textEndsWith = new RegExp("^RIGHT\\(".concat(basePattern, ",LEN\\((.+)\\)\\)=(.+)$"), "i");
|
|
151
|
+
var textIsEmail = new RegExp("^AND\\(ISNUMBER\\(SEARCH\\(\"@\",".concat(basePattern, "\\)\\),ISNUMBER\\(SEARCH\\(\"\\.\",").concat(basePattern, "\\)\\)\\)$"), "i");
|
|
152
|
+
var textIsUrl = new RegExp("^OR\\(LEFT\\(".concat(basePattern, ",7\\)=\"http://\",LEFT\\(").concat(basePattern, ",8\\)=\"https://\"\\)$"), "i");
|
|
153
|
+
var blank = new RegExp("^".concat(basePattern, "=\"\"$"), "i");
|
|
154
|
+
var notBlank = new RegExp("^".concat(basePattern, "<>\"\"$"), "i");
|
|
155
|
+
var boolean = new RegExp("^OR\\(".concat(basePattern, "=TRUE,").concat(basePattern, "=FALSE\\)$"), "i");
|
|
156
|
+
var dateIsValid = new RegExp("^ISNUMBER\\(".concat(basePattern, "\\)$"), "i");
|
|
157
|
+
var previousNumber = new RegExp("^IFERROR\\(".concat(basePattern, "\\s*(>=|<=|>|<)\\s*INDIRECT\\(\"R\\[-1\\]C\",FALSE\\),TRUE\\)$"), "i");
|
|
158
|
+
var oneOfRange = new RegExp("^COUNTIF\\((.+),\\s*".concat(basePattern, "\\)\\s*>\\s*0$"), "i");
|
|
159
|
+
var oneOfList = new RegExp("^OR\\((.+)\\)$", "i");
|
|
160
|
+
var match = formula.match(textContains);
|
|
161
|
+
if (match) {
|
|
162
|
+
var value = parseTextLiteral(match[1]);
|
|
163
|
+
return value
|
|
164
|
+
? { type: "TEXT_CONTAINS", values: [{ userEnteredValue: value }] }
|
|
165
|
+
: undefined;
|
|
166
|
+
}
|
|
167
|
+
match = formula.match(textNotContains);
|
|
168
|
+
if (match) {
|
|
169
|
+
var value = parseTextLiteral(match[1]);
|
|
170
|
+
return value
|
|
171
|
+
? { type: "TEXT_NOT_CONTAINS", values: [{ userEnteredValue: value }] }
|
|
172
|
+
: undefined;
|
|
173
|
+
}
|
|
174
|
+
match = formula.match(textStartsWith);
|
|
175
|
+
if (match) {
|
|
176
|
+
var value = parseTextLiteral(match[1]);
|
|
177
|
+
return value
|
|
178
|
+
? { type: "TEXT_STARTS_WITH", values: [{ userEnteredValue: value }] }
|
|
179
|
+
: undefined;
|
|
180
|
+
}
|
|
181
|
+
match = formula.match(textEndsWith);
|
|
182
|
+
if (match) {
|
|
183
|
+
var value = parseTextLiteral(match[1]);
|
|
184
|
+
return value
|
|
185
|
+
? { type: "TEXT_ENDS_WITH", values: [{ userEnteredValue: value }] }
|
|
186
|
+
: undefined;
|
|
187
|
+
}
|
|
188
|
+
if (textIsEmail.test(formula)) {
|
|
189
|
+
return { type: "TEXT_IS_EMAIL", values: [] };
|
|
190
|
+
}
|
|
191
|
+
if (textIsUrl.test(formula)) {
|
|
192
|
+
return { type: "TEXT_IS_URL", values: [] };
|
|
193
|
+
}
|
|
194
|
+
if (blank.test(formula)) {
|
|
195
|
+
return { type: "BLANK", values: [] };
|
|
196
|
+
}
|
|
197
|
+
if (notBlank.test(formula)) {
|
|
198
|
+
return { type: "NOT_BLANK", values: [] };
|
|
199
|
+
}
|
|
200
|
+
if (boolean.test(formula)) {
|
|
201
|
+
return { type: "BOOLEAN", values: [] };
|
|
202
|
+
}
|
|
203
|
+
if (dateIsValid.test(formula)) {
|
|
204
|
+
return { type: "DATE_IS_VALID", values: [] };
|
|
205
|
+
}
|
|
206
|
+
match = formula.match(previousNumber);
|
|
207
|
+
if (match) {
|
|
208
|
+
var op = match[1];
|
|
209
|
+
var opMap = {
|
|
210
|
+
">": "NUMBER_GREATER_THAN_PREVIOUS",
|
|
211
|
+
">=": "NUMBER_GREATER_THAN_EQ_PREVIOUS",
|
|
212
|
+
"<": "NUMBER_LESS_THAN_PREVIOUS",
|
|
213
|
+
"<=": "NUMBER_LESS_THAN_EQ_PREVIOUS",
|
|
214
|
+
};
|
|
215
|
+
var type = opMap[op];
|
|
216
|
+
return type ? { type: type, values: [] } : undefined;
|
|
217
|
+
}
|
|
218
|
+
match = formula.match(oneOfRange);
|
|
219
|
+
if (match) {
|
|
220
|
+
var rangeRef = match[1].trim();
|
|
221
|
+
return rangeRef
|
|
222
|
+
? { type: "ONE_OF_RANGE", values: [{ userEnteredValue: rangeRef }] }
|
|
223
|
+
: undefined;
|
|
224
|
+
}
|
|
225
|
+
match = formula.match(oneOfList);
|
|
226
|
+
if (match) {
|
|
227
|
+
var entries = [];
|
|
228
|
+
var entryRegex = new RegExp("".concat(basePattern, "\\s*=\\s*([^,\\)]+)"), "gi");
|
|
229
|
+
var entryMatch = void 0;
|
|
230
|
+
while ((entryMatch = entryRegex.exec(match[1]))) {
|
|
231
|
+
var value = parseTextLiteral(entryMatch[1]);
|
|
232
|
+
if (value) {
|
|
233
|
+
entries.push({ userEnteredValue: value });
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
if (entries.length) {
|
|
237
|
+
return { type: "ONE_OF_LIST", values: entries };
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return undefined;
|
|
241
|
+
};
|
|
242
|
+
export var getDataValidationsForSheet = function (workbook, sheetId, sheet_data, sheetName) {
|
|
243
|
+
var e_1, _a;
|
|
244
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
245
|
+
var dataValidations = [];
|
|
246
|
+
// Handle both with and without namespace prefix
|
|
247
|
+
var validation = get(sheet_data, "worksheet.dataValidations.dataValidation") ||
|
|
248
|
+
get(sheet_data, "x:worksheet.x:dataValidations.x:dataValidation") ||
|
|
249
|
+
[];
|
|
250
|
+
var validations = Array.isArray(validation) ? validation : [validation];
|
|
251
|
+
// x14 (worksheet-extLst) validations — what Excel writes when a list rule's
|
|
252
|
+
// source lives on ANOTHER sheet. Ranges arrive via the `<xm:sqref>` CHILD
|
|
253
|
+
// (not the classic `sqref` attribute) and formulas via
|
|
254
|
+
// `<x14:formula1>/<xm:f>`. Normalize each into the classic node shape so
|
|
255
|
+
// the mapping loop below handles both forms identically.
|
|
256
|
+
var extEntry = get(sheet_data, "worksheet.extLst.ext") ||
|
|
257
|
+
get(sheet_data, "x:worksheet.x:extLst.x:ext") ||
|
|
258
|
+
[];
|
|
259
|
+
var exts = Array.isArray(extEntry) ? extEntry : [extEntry];
|
|
260
|
+
var x14Rules = exts
|
|
261
|
+
.flatMap(function (ext) {
|
|
262
|
+
var block = get(ext, "x14:dataValidations.x14:dataValidation") ||
|
|
263
|
+
get(ext, "dataValidations.dataValidation");
|
|
264
|
+
return block ? (Array.isArray(block) ? block : [block]) : [];
|
|
265
|
+
})
|
|
266
|
+
.map(function (node) {
|
|
267
|
+
var _a, _b, _c, _d;
|
|
268
|
+
var sqrefEntry = (_a = node === null || node === void 0 ? void 0 : node["xm:sqref"]) !== null && _a !== void 0 ? _a : node === null || node === void 0 ? void 0 : node.sqref;
|
|
269
|
+
var sqref = (Array.isArray(sqrefEntry) ? sqrefEntry : [sqrefEntry])
|
|
270
|
+
.map(function (entry) { var _a; return (_a = extractFormulaText(entry)) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
271
|
+
.filter(Boolean)
|
|
272
|
+
.join(" ");
|
|
273
|
+
if (!sqref) {
|
|
274
|
+
return undefined;
|
|
275
|
+
}
|
|
276
|
+
var formulaText = function (formulaNode) {
|
|
277
|
+
var _a, _b;
|
|
278
|
+
if (formulaNode === undefined || formulaNode === null) {
|
|
279
|
+
return undefined;
|
|
280
|
+
}
|
|
281
|
+
return extractFormulaText((_b = (_a = formulaNode === null || formulaNode === void 0 ? void 0 : formulaNode["xm:f"]) !== null && _a !== void 0 ? _a : formulaNode === null || formulaNode === void 0 ? void 0 : formulaNode.f) !== null && _b !== void 0 ? _b : formulaNode);
|
|
282
|
+
};
|
|
283
|
+
return {
|
|
284
|
+
a$: __assign(__assign({}, ((_b = node === null || node === void 0 ? void 0 : node.a$) !== null && _b !== void 0 ? _b : {})), { sqref: sqref }),
|
|
285
|
+
formula1: formulaText((_c = node === null || node === void 0 ? void 0 : node["x14:formula1"]) !== null && _c !== void 0 ? _c : node === null || node === void 0 ? void 0 : node.formula1),
|
|
286
|
+
formula2: formulaText((_d = node === null || node === void 0 ? void 0 : node["x14:formula2"]) !== null && _d !== void 0 ? _d : node === null || node === void 0 ? void 0 : node.formula2),
|
|
287
|
+
};
|
|
288
|
+
})
|
|
289
|
+
.filter(Boolean);
|
|
290
|
+
var namedRanges = workbook.getNamedRanges();
|
|
291
|
+
var _loop_1 = function (rule) {
|
|
292
|
+
var e_2, _p;
|
|
293
|
+
if (!((_b = rule === null || rule === void 0 ? void 0 : rule.a$) === null || _b === void 0 ? void 0 : _b.sqref)) {
|
|
294
|
+
return "continue";
|
|
295
|
+
}
|
|
296
|
+
var sqref = rule.a$.sqref.split(" ");
|
|
297
|
+
var type = rule.a$.type;
|
|
298
|
+
var ranges = [];
|
|
299
|
+
try {
|
|
300
|
+
for (var sqref_1 = (e_2 = void 0, __values(sqref)), sqref_1_1 = sqref_1.next(); !sqref_1_1.done; sqref_1_1 = sqref_1.next()) {
|
|
301
|
+
var ref = sqref_1_1.value;
|
|
302
|
+
var range = (_c = addressToSelection(ref)) === null || _c === void 0 ? void 0 : _c.range;
|
|
303
|
+
if (range) {
|
|
304
|
+
ranges.push(__assign({ sheetId: sheetId }, range));
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
309
|
+
finally {
|
|
310
|
+
try {
|
|
311
|
+
if (sqref_1_1 && !sqref_1_1.done && (_p = sqref_1.return)) _p.call(sqref_1);
|
|
312
|
+
}
|
|
313
|
+
finally { if (e_2) throw e_2.error; }
|
|
314
|
+
}
|
|
315
|
+
if (!ranges.length) {
|
|
316
|
+
return "continue";
|
|
317
|
+
}
|
|
318
|
+
var baseCellRef = (_d = cellToAddress({
|
|
319
|
+
rowIndex: ranges[0].startRowIndex,
|
|
320
|
+
columnIndex: ranges[0].startColumnIndex,
|
|
321
|
+
})) !== null && _d !== void 0 ? _d : "A1";
|
|
322
|
+
var allowBlank = rule.a$.allowBlank === "1";
|
|
323
|
+
var showInputMessage = rule.a$.showInputMessage === "1";
|
|
324
|
+
var showErrorMessage = rule.a$.showErrorMessage === "1";
|
|
325
|
+
var inputMessage = showInputMessage && (rule.a$.prompt || rule.a$.promptTitle)
|
|
326
|
+
? {
|
|
327
|
+
title: (_e = rule.a$.promptTitle) !== null && _e !== void 0 ? _e : undefined,
|
|
328
|
+
message: (_f = rule.a$.prompt) !== null && _f !== void 0 ? _f : undefined,
|
|
329
|
+
}
|
|
330
|
+
: undefined;
|
|
331
|
+
// showErrorMessage alone (no custom title/text) still means "reject
|
|
332
|
+
// invalid input with Excel's default alert" — keep the alert with just
|
|
333
|
+
// its style so the Stop/Warning behavior survives import.
|
|
334
|
+
var alert_1 = showErrorMessage
|
|
335
|
+
? {
|
|
336
|
+
style: mapErrorStyle(rule.a$.errorStyle),
|
|
337
|
+
message: rule.a$.error || rule.a$.errorTitle
|
|
338
|
+
? {
|
|
339
|
+
title: (_g = rule.a$.errorTitle) !== null && _g !== void 0 ? _g : undefined,
|
|
340
|
+
message: (_h = rule.a$.error) !== null && _h !== void 0 ? _h : undefined,
|
|
341
|
+
}
|
|
342
|
+
: undefined,
|
|
343
|
+
}
|
|
344
|
+
: undefined;
|
|
345
|
+
// Prompt-only DV: Excel's "input message" feature attaches a tooltip
|
|
346
|
+
// (and/or an error alert) to a cell range without any validation
|
|
347
|
+
// constraint. These have no `type` attribute. Preserve them so the
|
|
348
|
+
// tooltip survives the round-trip.
|
|
349
|
+
if (!type) {
|
|
350
|
+
if (inputMessage || alert_1) {
|
|
351
|
+
dataValidations.push({
|
|
352
|
+
id: uuid(),
|
|
353
|
+
ranges: ranges,
|
|
354
|
+
allowBlank: allowBlank,
|
|
355
|
+
inputMessage: inputMessage,
|
|
356
|
+
alert: alert_1,
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
return "continue";
|
|
360
|
+
}
|
|
361
|
+
var formula1Node = (_j = rule.formula1) !== null && _j !== void 0 ? _j : rule["x:formula1"];
|
|
362
|
+
var formula2Node = (_k = rule.formula2) !== null && _k !== void 0 ? _k : rule["x:formula2"];
|
|
363
|
+
// Capture the source xlsx representation verbatim so the exporter can
|
|
364
|
+
// round-trip the original `type`/`operator`/formulas instead of
|
|
365
|
+
// re-synthesizing from the parsed `condition` (which loses fidelity:
|
|
366
|
+
// `whole` collapses to `decimal`, `textLength` collapses to `custom`,
|
|
367
|
+
// user formulas get `INDIRECT("RC",FALSE)` rewriting). The source
|
|
368
|
+
// formula text is kept with any leading `=` stripped (matches xlsx wire
|
|
369
|
+
// format — `<formula1>` carries the expression without `=`).
|
|
370
|
+
var formula1Verbatim = (function () {
|
|
371
|
+
var text = extractFormulaText(formula1Node);
|
|
372
|
+
if (text === undefined)
|
|
373
|
+
return undefined;
|
|
374
|
+
var trimmed = String(text).trim();
|
|
375
|
+
if (!trimmed)
|
|
376
|
+
return undefined;
|
|
377
|
+
return trimmed.startsWith("=") ? trimmed.slice(1) : trimmed;
|
|
378
|
+
})();
|
|
379
|
+
var formula2Verbatim = (function () {
|
|
380
|
+
var text = extractFormulaText(formula2Node);
|
|
381
|
+
if (text === undefined)
|
|
382
|
+
return undefined;
|
|
383
|
+
var trimmed = String(text).trim();
|
|
384
|
+
if (!trimmed)
|
|
385
|
+
return undefined;
|
|
386
|
+
return trimmed.startsWith("=") ? trimmed.slice(1) : trimmed;
|
|
387
|
+
})();
|
|
388
|
+
var xlsxSource = __assign(__assign(__assign({ type: type }, (rule.a$.operator ? { operator: rule.a$.operator } : {})), (formula1Verbatim !== undefined
|
|
389
|
+
? { formula1: formula1Verbatim }
|
|
390
|
+
: {})), (formula2Verbatim !== undefined
|
|
391
|
+
? { formula2: formula2Verbatim }
|
|
392
|
+
: {}));
|
|
393
|
+
if (type === "list") {
|
|
394
|
+
var rawFormula = (_l = extractFormulaText(formula1Node)) !== null && _l !== void 0 ? _l : "";
|
|
395
|
+
var trimmedFormula = String(rawFormula !== null && rawFormula !== void 0 ? rawFormula : "").trim();
|
|
396
|
+
var referenceCandidate_1 = trimmedFormula.startsWith("=")
|
|
397
|
+
? trimmedFormula.slice(1)
|
|
398
|
+
: trimmedFormula;
|
|
399
|
+
var isOffsetFormula = /^offset\(/i.test(referenceCandidate_1);
|
|
400
|
+
var isNamedRange = !!namedRanges.find(function (n) { return n.name === referenceCandidate_1; });
|
|
401
|
+
var listValues = parseListValues(trimmedFormula);
|
|
402
|
+
var isRef = checkIfStringIsReference(referenceCandidate_1) ||
|
|
403
|
+
isOffsetFormula ||
|
|
404
|
+
isNamedRange;
|
|
405
|
+
var normalizedReference = isRef && !isNamedRange
|
|
406
|
+
? ensureSheetReference(referenceCandidate_1, sheetName)
|
|
407
|
+
: referenceCandidate_1;
|
|
408
|
+
var values_1 = isRef
|
|
409
|
+
? [
|
|
410
|
+
{
|
|
411
|
+
userEnteredValue: normalizedReference.startsWith("=")
|
|
412
|
+
? normalizedReference
|
|
413
|
+
: "=".concat(normalizedReference),
|
|
414
|
+
},
|
|
415
|
+
]
|
|
416
|
+
: listValues.map(function (value) { return ({ userEnteredValue: value }); });
|
|
417
|
+
if (!values_1.length) {
|
|
418
|
+
values_1.push({ userEnteredValue: trimmedFormula });
|
|
419
|
+
}
|
|
420
|
+
dataValidations.push({
|
|
421
|
+
id: uuid(),
|
|
422
|
+
ranges: ranges,
|
|
423
|
+
condition: {
|
|
424
|
+
type: isRef ? "ONE_OF_RANGE" : "ONE_OF_LIST",
|
|
425
|
+
values: values_1,
|
|
426
|
+
},
|
|
427
|
+
allowBlank: allowBlank,
|
|
428
|
+
displayStyle: rule.a$.showDropDown === "1" ? "plain" : undefined,
|
|
429
|
+
inputMessage: inputMessage,
|
|
430
|
+
alert: alert_1,
|
|
431
|
+
xlsxSource: xlsxSource,
|
|
432
|
+
});
|
|
433
|
+
return "continue";
|
|
434
|
+
}
|
|
435
|
+
var formula1 = normalizeFormulaText(formula1Node);
|
|
436
|
+
var formula2 = normalizeFormulaText(formula2Node);
|
|
437
|
+
if (type === "custom") {
|
|
438
|
+
if (!formula1) {
|
|
439
|
+
return "continue";
|
|
440
|
+
}
|
|
441
|
+
var parsedCondition = parseCustomValidationFormula(formula1, baseCellRef);
|
|
442
|
+
dataValidations.push({
|
|
443
|
+
id: uuid(),
|
|
444
|
+
ranges: ranges,
|
|
445
|
+
condition: parsedCondition !== null && parsedCondition !== void 0 ? parsedCondition : {
|
|
446
|
+
type: "CUSTOM_FORMULA",
|
|
447
|
+
values: [{ userEnteredValue: formula1 }],
|
|
448
|
+
},
|
|
449
|
+
allowBlank: allowBlank,
|
|
450
|
+
inputMessage: inputMessage,
|
|
451
|
+
alert: alert_1,
|
|
452
|
+
xlsxSource: xlsxSource,
|
|
453
|
+
});
|
|
454
|
+
return "continue";
|
|
455
|
+
}
|
|
456
|
+
if (type === "textLength") {
|
|
457
|
+
var lengthFormula = buildTextLengthFormula(rule.a$.operator, baseCellRef, formula1, formula2);
|
|
458
|
+
if (!lengthFormula) {
|
|
459
|
+
return "continue";
|
|
460
|
+
}
|
|
461
|
+
dataValidations.push({
|
|
462
|
+
id: uuid(),
|
|
463
|
+
ranges: ranges,
|
|
464
|
+
condition: {
|
|
465
|
+
type: "CUSTOM_FORMULA",
|
|
466
|
+
values: [{ userEnteredValue: lengthFormula }],
|
|
467
|
+
},
|
|
468
|
+
allowBlank: allowBlank,
|
|
469
|
+
inputMessage: inputMessage,
|
|
470
|
+
alert: alert_1,
|
|
471
|
+
xlsxSource: xlsxSource,
|
|
472
|
+
});
|
|
473
|
+
return "continue";
|
|
474
|
+
}
|
|
475
|
+
var isDateType = type === "date";
|
|
476
|
+
if (!isDateType && !NUMBER_VALIDATION_TYPES.has(type)) {
|
|
477
|
+
return "continue";
|
|
478
|
+
}
|
|
479
|
+
var conditionType = isDateType
|
|
480
|
+
? mapDateOperatorToCondition(rule.a$.operator, Boolean(formula2))
|
|
481
|
+
: mapNumberOperatorToCondition(rule.a$.operator, Boolean(formula2));
|
|
482
|
+
if (!conditionType || !formula1) {
|
|
483
|
+
return "continue";
|
|
484
|
+
}
|
|
485
|
+
var values = __spreadArray([
|
|
486
|
+
{ userEnteredValue: formula1 }
|
|
487
|
+
], __read((formula2 ? [{ userEnteredValue: formula2 }] : [])), false);
|
|
488
|
+
dataValidations.push({
|
|
489
|
+
id: uuid(),
|
|
490
|
+
ranges: ranges,
|
|
491
|
+
condition: {
|
|
492
|
+
type: conditionType,
|
|
493
|
+
values: values,
|
|
494
|
+
},
|
|
495
|
+
allowBlank: allowBlank,
|
|
496
|
+
inputMessage: inputMessage,
|
|
497
|
+
alert: alert_1,
|
|
498
|
+
xlsxSource: xlsxSource,
|
|
499
|
+
});
|
|
500
|
+
};
|
|
501
|
+
try {
|
|
502
|
+
for (var _m = __values(__spreadArray(__spreadArray([], __read(validations), false), __read(x14Rules), false)), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
503
|
+
var rule = _o.value;
|
|
504
|
+
_loop_1(rule);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
508
|
+
finally {
|
|
509
|
+
try {
|
|
510
|
+
if (_o && !_o.done && (_a = _m.return)) _a.call(_m);
|
|
511
|
+
}
|
|
512
|
+
finally { if (e_1) throw e_1.error; }
|
|
513
|
+
}
|
|
514
|
+
return dataValidations;
|
|
515
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { EmbeddedObject, EmbedShapeSpec } from "@rowsncolumns/spreadsheet";
|
|
2
|
+
import { type XMLParser } from "fast-xml-parser";
|
|
3
|
+
import { type StreamingZipParser } from "../../zip-parser-streaming";
|
|
4
|
+
export type EmbeddedObjectWithPosition = EmbeddedObject & {
|
|
5
|
+
isInsideCell?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Process different types of image anchors
|
|
9
|
+
* @param anchors The anchor elements from the drawing
|
|
10
|
+
* @param anchorType The type of anchor
|
|
11
|
+
* @param drawingPath The path to the drawing file
|
|
12
|
+
* @param sheetName The name of the worksheet
|
|
13
|
+
* @param zipParser The zip parser instance
|
|
14
|
+
* @param xmlParser The XML parser instance
|
|
15
|
+
* @returns An array of image objects with their properties and binary data
|
|
16
|
+
*/
|
|
17
|
+
export declare function processAnchors(anchors: any, anchorType: string, drawingPath: string, sheetId: number, zipParser: StreamingZipParser, xmlParser: XMLParser): Promise<EmbeddedObjectWithPosition[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Whether an `<xdr:sp>` should import as a drawing shape (`EmbedShapeSpec`)
|
|
20
|
+
* rather than a textbox. Text boxes are excluded explicitly (`txBox="1"`), and
|
|
21
|
+
* a rect with no `<xdr:style>` block stays a textbox too — routing those to
|
|
22
|
+
* the shape renderer would repaint plain text notes with the default accent
|
|
23
|
+
* shape style.
|
|
24
|
+
*/
|
|
25
|
+
export declare function isDrawingShape(shape: any): boolean;
|
|
26
|
+
/** Parse an `<xdr:sp>` drawing shape into an {@link EmbedShapeSpec}. */
|
|
27
|
+
export declare function parseShapeSpec(shape: any): EmbedShapeSpec;
|
|
28
|
+
/**
|
|
29
|
+
* Determine if a oneCellAnchor image is inside a cell
|
|
30
|
+
* Using EMU values for accurate assessment
|
|
31
|
+
* @param fromColOff Column offset in EMUs
|
|
32
|
+
* @param fromRowOff Row offset in EMUs
|
|
33
|
+
* @param fLocksWithSheet Whether image locks with sheet
|
|
34
|
+
* @param cx Image width in EMUs
|
|
35
|
+
* @param cy Image height in EMUs
|
|
36
|
+
* @returns Boolean indicating if the image is inside a cell
|
|
37
|
+
*/
|
|
38
|
+
export declare function determineIfOneCellInsideCell(fromColOff: number, fromRowOff: number, fLocksWithSheet: string, cx: number, cy: number): boolean;
|
|
39
|
+
//# sourceMappingURL=drawing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawing.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/drawing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EAEd,cAAc,EAWf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAoDrE,MAAM,MAAM,0BAA0B,GAAG,cAAc,GAAG;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,kBAAkB,EAC7B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,0BAA0B,EAAE,CAAC,CA6dvC;AA6OD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CASlD;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,cAAc,CA8CzD;AA8MD;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAqBT"}
|