ooxml-excel-editor 1.1.0
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/CHANGELOG.md +95 -0
- package/LICENSE +21 -0
- package/README.md +516 -0
- package/dist/chunks/plugin-overlay-Cfnn9EOi.js +7144 -0
- package/dist/chunks/worker-client.stub-BQVZfaLd.js +7 -0
- package/dist/components/ActionToolbar.vue.d.ts +9 -0
- package/dist/components/ExcelViewer.vue.d.ts +283 -0
- package/dist/components/ExportDialog.vue.d.ts +14 -0
- package/dist/components/FilterPopup.vue.d.ts +21 -0
- package/dist/components/FindBar.vue.d.ts +27 -0
- package/dist/components/SheetTabs.vue.d.ts +11 -0
- package/dist/components/ToolbarMenu.vue.d.ts +10 -0
- package/dist/components/ViewerToolbar.vue.d.ts +21 -0
- package/dist/components/export-types.d.ts +14 -0
- package/dist/components/toolbar-icons.d.ts +7 -0
- package/dist/components/toolbar-types.d.ts +18 -0
- package/dist/composables/useExcelDocument.d.ts +17 -0
- package/dist/composables/worker-client.d.ts +3 -0
- package/dist/composables/worker-client.stub.d.ts +3 -0
- package/dist/core/edit/commands.d.ts +94 -0
- package/dist/core/edit/default-editor.d.ts +2 -0
- package/dist/core/edit/edit-controller.d.ts +137 -0
- package/dist/core/edit/editor-context.d.ts +40 -0
- package/dist/core/edit/editor-host.d.ts +22 -0
- package/dist/core/edit/permissions.d.ts +3 -0
- package/dist/core/edit/types.d.ts +23 -0
- package/dist/core/export/composite.d.ts +18 -0
- package/dist/core/export/data-export.d.ts +9 -0
- package/dist/core/export/exporter.d.ts +64 -0
- package/dist/core/export/index.d.ts +9 -0
- package/dist/core/export/paginate.d.ts +36 -0
- package/dist/core/export/pdf.d.ts +28 -0
- package/dist/core/export/print.d.ts +3 -0
- package/dist/core/export/raster.d.ts +13 -0
- package/dist/core/export/types.d.ts +92 -0
- package/dist/core/export/vector-pdf.d.ts +42 -0
- package/dist/core/export/xlsx-writer.d.ts +15 -0
- package/dist/core/finalize.d.ts +10 -0
- package/dist/core/format/builtin-formats.d.ts +7 -0
- package/dist/core/format/color.d.ts +11 -0
- package/dist/core/format/date-serial.d.ts +16 -0
- package/dist/core/format/number-format.d.ts +5 -0
- package/dist/core/formula/engine.d.ts +27 -0
- package/dist/core/formula/hyperformula-adapter.d.ts +3 -0
- package/dist/core/formula/recalc.d.ts +9 -0
- package/dist/core/formula/refs.d.ts +21 -0
- package/dist/core/index.d.ts +52 -0
- package/dist/core/layout/autofit.d.ts +2 -0
- package/dist/core/layout/freeze.d.ts +11 -0
- package/dist/core/layout/grid-metrics.d.ts +37 -0
- package/dist/core/layout/merges.d.ts +14 -0
- package/dist/core/layout/units.d.ts +20 -0
- package/dist/core/layout/viewport.d.ts +29 -0
- package/dist/core/loader.d.ts +5 -0
- package/dist/core/model/clone.d.ts +9 -0
- package/dist/core/model/data-access.d.ts +30 -0
- package/dist/core/model/mutations.d.ts +46 -0
- package/dist/core/model/snapshot.d.ts +14 -0
- package/dist/core/model/structure.d.ts +26 -0
- package/dist/core/model/types.d.ts +289 -0
- package/dist/core/overlay/anchor.d.ts +9 -0
- package/dist/core/overlay/chart-mapper.d.ts +3 -0
- package/dist/core/overlay/echarts-loader.d.ts +3 -0
- package/dist/core/parse.worker.d.ts +14 -0
- package/dist/core/parser/chart-parser.d.ts +3 -0
- package/dist/core/parser/drawing-parser.d.ts +3 -0
- package/dist/core/parser/exceljs-adapter.d.ts +8 -0
- package/dist/core/parser/index.d.ts +3 -0
- package/dist/core/parser/page-break-parser.d.ts +3 -0
- package/dist/core/parser/raw-xml.d.ts +15 -0
- package/dist/core/parser/sparkline-parser.d.ts +3 -0
- package/dist/core/parser/theme.d.ts +3 -0
- package/dist/core/plugin.d.ts +180 -0
- package/dist/core/progress.d.ts +7 -0
- package/dist/core/render/autofilter.d.ts +14 -0
- package/dist/core/render/borders.d.ts +13 -0
- package/dist/core/render/canvas-renderer.d.ts +225 -0
- package/dist/core/render/conditional.d.ts +25 -0
- package/dist/core/render/fills.d.ts +2 -0
- package/dist/core/render/text.d.ts +20 -0
- package/dist/core/render/theme.d.ts +19 -0
- package/dist/core/viewer/controller.d.ts +339 -0
- package/dist/core/viewer/overlay-manager.d.ts +27 -0
- package/dist/core/viewer/plugin-overlay.d.ts +8 -0
- package/dist/core.d.ts +2 -0
- package/dist/core.js +74 -0
- package/dist/demo-shared/demo-editor.d.ts +2 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +1493 -0
- package/dist/react/ExcelViewer.d.ts +153 -0
- package/dist/react/index.d.ts +11 -0
- package/dist/react/use-excel-document.d.ts +17 -0
- package/dist/react.d.ts +2 -0
- package/dist/react.js +838 -0
- package/dist/style.css +1 -0
- package/package.json +117 -0
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.rxl{display:flex;flex-direction:column;height:100%;width:100%;background:#fff;overflow:hidden}.rxl-toolbar{display:flex;align-items:center;gap:4px;flex:0 0 auto;height:34px;padding:0 8px;border-bottom:1px solid #e2e4e7;background:#fafafa}.rxl-toolbar button{height:24px;padding:0 10px;border:1px solid transparent;border-radius:4px;background:transparent;color:#333;font-size:13px;cursor:pointer}.rxl-toolbar button:hover:not(:disabled){background:#eceef0}.rxl-toolbar button.active{background:#d6e9d9;border-color:#21a366;color:#1b7a4d}.rxl-toolbar button:disabled{color:#bbb;cursor:default}.rxl-formula-bar{display:flex;align-items:center;height:28px;flex:0 0 auto;border-bottom:1px solid #e2e4e7;background:#fff;font-size:13px}.rxl-formula-bar .addr{width:72px;text-align:center;border-right:1px solid #e2e4e7;color:#444;font-weight:600;flex:0 0 auto}.rxl-formula-bar .fx{width:34px;text-align:center;color:#999;font-style:italic;flex:0 0 auto}.rxl-formula-bar .content{flex:1;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#222;font-family:Consolas,Courier New,monospace}.rxl-render-area{position:relative;flex:1 1 auto;overflow:hidden;min-height:0}.rxl-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.rxl-ov{position:absolute;z-index:2;overflow:hidden;pointer-events:none}.rxl-scroller{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow:auto;cursor:cell;outline:none}.rxl-spacer{pointer-events:none}.rxl-ov-slot{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;overflow:hidden;pointer-events:none}.rxl-ov-slot>div>*{pointer-events:auto}.rxl-editor-slot{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;overflow:hidden;pointer-events:none}.rxl-editor-slot>*{pointer-events:auto}.rxl-tooltip{position:absolute;z-index:6;max-width:380px;padding:5px 9px;background:#2b2f33;color:#fff;font-size:12px;line-height:1.4;border-radius:4px;box-shadow:0 2px 8px #00000040;pointer-events:none;white-space:pre-wrap;word-break:break-all}.rxl-tooltip.comment{background:#fdfcdc;color:#333;border:1px solid #d9d27e;max-width:300px}.rxl-findbar{position:absolute;top:8px;right:16px;z-index:7;display:flex;align-items:center;gap:6px;padding:6px 8px;background:#fff;border:1px solid #d0d3d6;border-radius:6px;box-shadow:0 2px 10px #00000026}.rxl-findbar input{height:24px;border:1px solid #d0d3d6;border-radius:4px;padding:0 6px;font-size:13px}.rxl-findbar .count{font-size:12px;color:#888;min-width:46px;text-align:center}.rxl-filterpop{position:absolute;z-index:8;width:220px;max-height:300px;display:flex;flex-direction:column;background:#fff;border:1px solid #c8ccd0;border-radius:6px;box-shadow:0 4px 16px #0000002e;font-size:13px}.rxl-filterpop .sort{display:flex;gap:6px;padding:8px 8px 0}.rxl-filterpop .sort button{flex:1;height:26px;border:1px solid #d0d3d6;border-radius:4px;background:#fff;cursor:pointer;font-size:12px}.rxl-filterpop .sort button.on{background:#d6e9d9;border-color:#21a366;color:#1b7a4d;font-weight:600}.rxl-filterpop .list{overflow:auto;padding:6px 8px}.rxl-filterpop label{display:flex;align-items:center;gap:6px;padding:2px 0}.rxl-filterpop .foot{display:flex;gap:8px;justify-content:flex-end;padding:6px 8px;border-top:1px solid #eceef0}.rxl-status-bar{display:flex;align-items:center;gap:16px;height:24px;flex:0 0 auto;padding:0 12px;border-top:1px solid #e2e4e7;background:#fbfbfb;font-size:12px;color:#555}.rxl-status-bar .grow{flex:1}.rxl-tabs{display:flex;align-items:center;gap:2px;height:30px;flex:0 0 auto;padding:0 8px;border-top:1px solid #e2e4e7;background:#f3f4f6;overflow-x:auto}.rxl-tabs button{height:24px;padding:0 12px;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;background:transparent;font-size:13px;cursor:pointer;white-space:nowrap}.rxl-tabs button.active{background:#fff;border-color:#d6d8da;font-weight:600}.rxl-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:5;background:#fff;color:#888;font-size:14px}.rxl-state.error{color:#c0392b}.toolbar[data-v-0495df21]{display:flex;align-items:center;gap:12px;height:36px;padding:0 12px;background:#fbfbfb;border-bottom:1px solid #e2e4e7;font-size:13px;color:#444;flex:0 0 auto}.file[data-v-0495df21]{font-weight:600;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta[data-v-0495df21]{color:#888}.spacer[data-v-0495df21]{flex:1}.export-wrap[data-v-0495df21]{position:relative}.export-btn[data-v-0495df21]{height:24px;padding:0 10px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;color:#444;display:flex;align-items:center;gap:4px}.export-btn[data-v-0495df21]:hover{background:#f0f2f4}.export-btn .caret[data-v-0495df21]{font-size:10px;color:#888}.menu[data-v-0495df21]{position:absolute;right:0;top:28px;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.menu button[data-v-0495df21]{text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.menu button[data-v-0495df21]:hover{background:#f0f4ff}.menu .sep[data-v-0495df21]{height:1px;background:#eef0f2;margin:4px 2px}.zoom[data-v-0495df21]{display:flex;align-items:center;gap:4px}.zoom button[data-v-0495df21]{width:24px;height:24px;border:1px solid #d0d3d6;background:#fff;border-radius:4px;cursor:pointer;font-size:15px;line-height:1}.zoom button[data-v-0495df21]:hover{background:#f0f2f4}.zoom select[data-v-0495df21]{height:24px;border:1px solid #d0d3d6;border-radius:4px;background:#fff}.sheet-tabs[data-v-431b6f9c]{display:flex;align-items:stretch;height:30px;background:#f3f4f6;border-top:1px solid #d8dadd;overflow-x:auto;flex:0 0 auto}.tab[data-v-431b6f9c]{border:none;background:transparent;border-right:1px solid #e0e2e5;padding:0 16px;font-size:12.5px;color:#555;cursor:pointer;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.tab[data-v-431b6f9c]:hover{background:#e9ebee}.tab.active[data-v-431b6f9c]{background:#fff;color:#166534;font-weight:600;box-shadow:inset 0 2px #21a366}.dlg-mask[data-v-544df24f]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:#00000052;display:flex;align-items:center;justify-content:center}.dlg[data-v-544df24f]{width:420px;max-width:92%;background:#fff;border-radius:10px;box-shadow:0 12px 40px #00000040;font-size:13px;color:#333;overflow:hidden}.dlg-head[data-v-544df24f]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-weight:600;border-bottom:1px solid #eef0f2}.dlg-head .x[data-v-544df24f]{border:none;background:none;font-size:20px;line-height:1;cursor:pointer;color:#999}.dlg-head .x[data-v-544df24f]:hover{color:#444}.dlg-body[data-v-544df24f]{padding:8px 16px 4px}.field[data-v-544df24f]{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid #f4f5f6}.field[data-v-544df24f]:last-child{border-bottom:none}.lbl[data-v-544df24f]{width:72px;flex:0 0 auto;color:#666;padding-top:3px}.opts[data-v-544df24f]{display:flex;flex-direction:column;gap:6px}.opts.inline[data-v-544df24f]{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}.opts label[data-v-544df24f]{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.opts label.disabled[data-v-544df24f]{color:#bbb;cursor:not-allowed}.hint[data-v-544df24f]{color:#99a;font-size:12px}select[data-v-544df24f]{height:26px;border:1px solid #d0d3d6;border-radius:4px;background:#fff;padding:0 6px}.dlg-foot[data-v-544df24f]{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid #eef0f2;background:#fafbfc}.dlg-foot .grow[data-v-544df24f]{flex:1}.dlg-foot button[data-v-544df24f]{height:30px;padding:0 14px;border:1px solid #d0d3d6;border-radius:5px;background:#fff;cursor:pointer;font-size:13px;color:#333}.dlg-foot button[data-v-544df24f]:hover{background:#f0f2f4}.dlg-foot button.ghost[data-v-544df24f]{border-color:transparent;color:#888}.dlg-foot button.primary[data-v-544df24f]{background:#21a366;border-color:#21a366;color:#fff}.dlg-foot button.primary[data-v-544df24f]:hover{background:#1c8f59}.find-bar[data-v-36abc020]{position:absolute;top:8px;right:16px;z-index:12;display:flex;align-items:center;gap:4px;padding:5px 7px;background:#fff;border:1px solid #d4d7da;border-radius:7px;box-shadow:0 3px 12px #00000029;font-size:13px}.q[data-v-36abc020]{width:160px;height:26px;border:1px solid #d0d3d6;border-radius:4px;padding:0 8px;outline:none}.q[data-v-36abc020]:focus{border-color:#1a73e8}.count[data-v-36abc020]{min-width:46px;text-align:center;color:#888;font-variant-numeric:tabular-nums}.count.none[data-v-36abc020]{color:#d23}.opt[data-v-36abc020],.nav[data-v-36abc020],.close[data-v-36abc020]{height:24px;min-width:24px;border:1px solid transparent;background:none;border-radius:4px;cursor:pointer;color:#555;font-size:13px;line-height:1}.opt.on[data-v-36abc020]{background:#e8f0fe;color:#1a73e8;border-color:#c5d9fb}.opt[data-v-36abc020]:hover,.nav[data-v-36abc020]:hover:not(:disabled),.close[data-v-36abc020]:hover{background:#f0f2f4}.nav[data-v-36abc020]:disabled{color:#ccc;cursor:default}.close[data-v-36abc020]{font-size:18px;color:#999}.filter-pop[data-v-4b0bc283]{position:absolute;z-index:14;width:220px;background:#fff;border:1px solid #cfd3d7;border-radius:7px;box-shadow:0 6px 22px #0003;padding:8px;font-size:13px;display:flex;flex-direction:column;gap:6px}.sort[data-v-4b0bc283]{display:flex;gap:6px}.sort button[data-v-4b0bc283]{flex:1;height:26px;border:1px solid #d0d3d6;border-radius:4px;background:#fff;cursor:pointer;font-size:12px;color:#444}.sort button[data-v-4b0bc283]:hover{background:#f0f2f4}.sort button.on[data-v-4b0bc283]{background:#d6e9d9;border-color:#21a366;color:#1b7a4d;font-weight:600}.search[data-v-4b0bc283]{height:26px;border:1px solid #d0d3d6;border-radius:4px;padding:0 8px;outline:none}.search[data-v-4b0bc283]:focus{border-color:#1a73e8}.all[data-v-4b0bc283]{display:flex;align-items:center;gap:6px;padding:2px;color:#444;font-weight:600;cursor:pointer}.list[data-v-4b0bc283]{max-height:220px;overflow:auto;border:1px solid #eceef0;border-radius:4px;padding:2px}.row[data-v-4b0bc283]{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:3px;cursor:pointer}.row[data-v-4b0bc283]:hover{background:#f3f6fb}.val[data-v-4b0bc283]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty[data-v-4b0bc283]{color:#aaa;text-align:center;padding:10px}.foot[data-v-4b0bc283]{display:flex;align-items:center;gap:6px}.foot .grow[data-v-4b0bc283]{flex:1}.foot button[data-v-4b0bc283]{height:27px;padding:0 12px;border:1px solid #d0d3d6;border-radius:5px;background:#fff;cursor:pointer;font-size:13px}.foot button[data-v-4b0bc283]:hover{background:#f0f2f4}.foot button.primary[data-v-4b0bc283]{background:#21a366;border-color:#21a366;color:#fff}.foot button.primary[data-v-4b0bc283]:hover{background:#1c8f59}.foot button.link[data-v-4b0bc283]{border-color:transparent;color:#1a73e8;padding:0 4px}.tb-menu[data-v-322e2c67]{position:absolute;top:30px;left:0;z-index:20;min-width:160px;background:#fff;border:1px solid #d8dbde;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:4px;display:flex;flex-direction:column}.mi[data-v-322e2c67]{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 10px;border:none;background:none;border-radius:4px;cursor:pointer;font-size:13px;color:#333;white-space:nowrap}.mi[data-v-322e2c67]:hover:not(:disabled){background:#f0f4ff}.mi[data-v-322e2c67]:disabled{color:#bbb;cursor:default}.mi.active[data-v-322e2c67]{color:#1a73e8}.mi .ic[data-v-322e2c67]{display:inline-flex;width:16px}.mi .ic-e[data-v-322e2c67]{width:16px;text-align:center}.sep[data-v-322e2c67]{height:1px;background:#eef0f2;margin:4px 2px}.action-toolbar[data-v-0a4aa655]{position:relative;display:flex;align-items:center;gap:4px;height:34px;flex:0 0 auto;padding:0 10px;background:#fff;border-bottom:1px solid #e2e4e7;overflow:visible}.measure[data-v-0a4aa655]{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;height:0;overflow:hidden;display:flex;gap:4px}.dd[data-v-0a4aa655]{position:relative;display:inline-flex}.tool[data-v-0a4aa655]{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:1px solid transparent;border-radius:5px;background:none;cursor:pointer;font-size:13px;color:#444;white-space:nowrap}.tool[data-v-0a4aa655]:hover:not(:disabled){background:#f0f2f4}.tool[data-v-0a4aa655]:disabled{color:#bbb;cursor:default}.tool.active[data-v-0a4aa655]{background:#e8f0fe;color:#1a73e8;border-color:#c5d9fb}.tool.open[data-v-0a4aa655]{background:#eef0f2}.tool .ic[data-v-0a4aa655]{display:inline-flex}.tool .ic-e[data-v-0a4aa655]{font-size:13px;line-height:1}.tool .caret[data-v-0a4aa655]{display:inline-flex;opacity:.6;margin-left:-2px}.tool .caret[data-v-0a4aa655] svg{width:12px;height:12px}.divider[data-v-0a4aa655]{width:1px;align-self:stretch;margin:6px 4px;background:#e2e4e7}.excel-viewer[data-v-3a1333cc]{display:flex;flex-direction:column;height:100%;width:100%;background:#fff;overflow:hidden}.render-area[data-v-3a1333cc]{position:relative;flex:1 1 auto;overflow:hidden;min-height:0}.grid-canvas[data-v-3a1333cc]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.ov[data-v-3a1333cc]{position:absolute;z-index:2;overflow:hidden;pointer-events:none}.ov-slot[data-v-3a1333cc]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;overflow:hidden;pointer-events:none}.ov-slot[data-v-3a1333cc] *{pointer-events:auto}.editor-slot[data-v-3a1333cc]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;overflow:hidden;pointer-events:none}.editor-slot[data-v-3a1333cc] *{pointer-events:auto}.scroller[data-v-3a1333cc]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow:auto;cursor:cell;outline:none}.spacer[data-v-3a1333cc]{pointer-events:none}.formula-bar[data-v-3a1333cc]{display:flex;align-items:center;height:28px;flex:0 0 auto;border-bottom:1px solid #e2e4e7;background:#fff;font-size:13px}.formula-bar .addr[data-v-3a1333cc]{width:72px;text-align:center;border-right:1px solid #e2e4e7;color:#444;font-weight:600;flex:0 0 auto}.formula-bar .fx[data-v-3a1333cc]{width:34px;text-align:center;color:#999;font-style:italic;flex:0 0 auto}.formula-bar .content[data-v-3a1333cc]{flex:1;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#222;font-family:Consolas,Courier New,monospace}.status-bar[data-v-3a1333cc]{display:flex;align-items:center;gap:16px;height:24px;flex:0 0 auto;padding:0 12px;border-top:1px solid #e2e4e7;background:#fbfbfb;font-size:12px;color:#555}.status-bar .grow[data-v-3a1333cc]{flex:1}.status-bar .sel[data-v-3a1333cc]{color:#888}.cell-tooltip[data-v-3a1333cc]{position:absolute;z-index:6;max-width:380px;padding:5px 9px;background:#2b2f33;color:#fff;font-size:12px;line-height:1.4;border-radius:4px;box-shadow:0 2px 8px #00000040;pointer-events:none;white-space:pre-wrap;word-break:break-all}.cell-tooltip.comment[data-v-3a1333cc]{background:#fdfcdc;color:#333;border:1px solid #d9d27e;box-shadow:0 2px 10px #0000002e;max-width:300px}.state[data-v-3a1333cc]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:5;background:#fff;color:#888;font-size:14px}.state.error[data-v-3a1333cc]{color:#c0392b}.state.hint[data-v-3a1333cc]{color:#aaa}.loader[data-v-3a1333cc]{width:260px;max-width:60%}.loader-label[data-v-3a1333cc]{font-size:13px;color:#555;margin-bottom:8px;text-align:center}.loader-track[data-v-3a1333cc]{height:6px;border-radius:3px;background:#eceef0;overflow:hidden}.loader-fill[data-v-3a1333cc]{height:100%;background:#21a366;border-radius:3px;transition:width .15s ease}.loader-fill.indeterminate[data-v-3a1333cc]{width:40%;transition:none;animation:loader-pulse-3a1333cc 1.1s ease-in-out infinite}@keyframes loader-pulse-3a1333cc{0%{margin-left:-40%}to{margin-left:100%}}
|
package/package.json
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ooxml-excel-editor",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "High-fidelity OOXML (.xlsx) preview & editor — canvas renderer, framework-agnostic core with Vue 3 and React shells. Read-only by default; opt-in editing with undo/redo, formula recalc, and export back to .xlsx/JSON/CSV.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"vue",
|
|
9
|
+
"vue3",
|
|
10
|
+
"react",
|
|
11
|
+
"excel",
|
|
12
|
+
"xlsx",
|
|
13
|
+
"ooxml",
|
|
14
|
+
"spreadsheet",
|
|
15
|
+
"preview",
|
|
16
|
+
"viewer",
|
|
17
|
+
"editor",
|
|
18
|
+
"edit",
|
|
19
|
+
"canvas",
|
|
20
|
+
"exceljs"
|
|
21
|
+
],
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=18"
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"CHANGELOG.md"
|
|
28
|
+
],
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"access": "public"
|
|
31
|
+
},
|
|
32
|
+
"main": "./dist/index.js",
|
|
33
|
+
"module": "./dist/index.js",
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"types": "./dist/index.d.ts",
|
|
38
|
+
"import": "./dist/index.js"
|
|
39
|
+
},
|
|
40
|
+
"./react": {
|
|
41
|
+
"types": "./dist/react.d.ts",
|
|
42
|
+
"import": "./dist/react.js"
|
|
43
|
+
},
|
|
44
|
+
"./core": {
|
|
45
|
+
"types": "./dist/core.d.ts",
|
|
46
|
+
"import": "./dist/core.js"
|
|
47
|
+
},
|
|
48
|
+
"./style.css": "./dist/style.css"
|
|
49
|
+
},
|
|
50
|
+
"sideEffects": [
|
|
51
|
+
"**/*.css"
|
|
52
|
+
],
|
|
53
|
+
"scripts": {
|
|
54
|
+
"dev": "vite",
|
|
55
|
+
"build": "vue-tsc --noEmit && vite build",
|
|
56
|
+
"build:demo": "vite build --mode demo",
|
|
57
|
+
"preview": "vite preview",
|
|
58
|
+
"test": "vitest run",
|
|
59
|
+
"test:watch": "vitest",
|
|
60
|
+
"test:e2e": "playwright test",
|
|
61
|
+
"typecheck": "vue-tsc --noEmit",
|
|
62
|
+
"prepublishOnly": "npm run build"
|
|
63
|
+
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"echarts": "^5.5.0",
|
|
66
|
+
"exceljs": "^4.4.0",
|
|
67
|
+
"hyperformula": "^3.0.0",
|
|
68
|
+
"jspdf": "^2.5.0 || ^3.0.0 || ^4.0.0",
|
|
69
|
+
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
70
|
+
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
71
|
+
"vue": "^3.4.0"
|
|
72
|
+
},
|
|
73
|
+
"peerDependenciesMeta": {
|
|
74
|
+
"echarts": {
|
|
75
|
+
"optional": true
|
|
76
|
+
},
|
|
77
|
+
"hyperformula": {
|
|
78
|
+
"optional": true
|
|
79
|
+
},
|
|
80
|
+
"jspdf": {
|
|
81
|
+
"optional": true
|
|
82
|
+
},
|
|
83
|
+
"vue": {
|
|
84
|
+
"optional": true
|
|
85
|
+
},
|
|
86
|
+
"react": {
|
|
87
|
+
"optional": true
|
|
88
|
+
},
|
|
89
|
+
"react-dom": {
|
|
90
|
+
"optional": true
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"dependencies": {
|
|
94
|
+
"fast-xml-parser": "^4.5.0",
|
|
95
|
+
"fflate": "^0.8.2"
|
|
96
|
+
},
|
|
97
|
+
"devDependencies": {
|
|
98
|
+
"@playwright/test": "1.58.0",
|
|
99
|
+
"@types/node": "^22.19.19",
|
|
100
|
+
"@types/react": "^18.3.30",
|
|
101
|
+
"@types/react-dom": "^18.3.7",
|
|
102
|
+
"@vitejs/plugin-react": "^4.7.0",
|
|
103
|
+
"@vitejs/plugin-vue": "^5.2.1",
|
|
104
|
+
"echarts": "^5.5.1",
|
|
105
|
+
"exceljs": "^4.4.0",
|
|
106
|
+
"hyperformula": "^3.3.0",
|
|
107
|
+
"jspdf": "^4.2.1",
|
|
108
|
+
"react": "^18.3.1",
|
|
109
|
+
"react-dom": "^18.3.1",
|
|
110
|
+
"typescript": "^5.7.2",
|
|
111
|
+
"vite": "^6.0.5",
|
|
112
|
+
"vite-plugin-dts": "^4.5.4",
|
|
113
|
+
"vitest": "^2.1.8",
|
|
114
|
+
"vue": "^3.5.13",
|
|
115
|
+
"vue-tsc": "^2.2.0"
|
|
116
|
+
}
|
|
117
|
+
}
|