@omegagrid/plugin-xlsx 0.6.28 → 0.6.29

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.
@@ -1 +1,27 @@
1
- import{Plugin}from"@omegagrid/core";import{createModel}from"./import";import{createWorkbook,exportXLSX}from"./export";import{SheetjsLoader}from"./loader";export class XlsxEditorPlugin extends Plugin{init(e){SheetjsLoader.get(),e.commands.register({section:"plugin",name:"export xlsx",fn:async()=>{const r=e.getGridContainer().model.models,o=await createWorkbook(Array.from(r,(e=>e[1])));exportXLSX(o,"export.xlsx")}}),e.addEventListener("drop",(async r=>{if(r.preventDefault(),r.dataTransfer.files.length){const o=r.dataTransfer.files[0];e.setSourceData(await createModel(o))}}))}}XlsxEditorPlugin.pluginName="xlsx";
1
+ import { Plugin } from '@omegagrid/core';
2
+ import { createModel } from './import';
3
+ import { createWorkbook, exportXLSX } from './export';
4
+ import { SheetjsLoader } from './loader';
5
+ export class XlsxEditorPlugin extends Plugin {
6
+ init(editor) {
7
+ SheetjsLoader.get();
8
+ editor.commands.register({
9
+ section: 'plugin',
10
+ name: 'export xlsx',
11
+ fn: async () => {
12
+ const models = editor.getGridContainer().model.models;
13
+ const wb = await createWorkbook(Array.from(models, item => item[1]));
14
+ exportXLSX(wb, 'export.xlsx');
15
+ }
16
+ });
17
+ editor.addEventListener('drop', async (e) => {
18
+ e.preventDefault();
19
+ if (e.dataTransfer.files.length) {
20
+ const file = e.dataTransfer.files[0];
21
+ editor.setSourceData(await createModel(file));
22
+ }
23
+ });
24
+ }
25
+ }
26
+ XlsxEditorPlugin.pluginName = 'xlsx';
27
+ //# sourceMappingURL=editorPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AACA,OAAO,EACQ,SAAS,EACvB,KAAK,IAAI,OAAO,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,EAA8B,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGnH,OAAO,KAAK,MAAM,MAAM,MAAM,CAAC;AAC/B,OAAO,KAAK,EACX,UAAU,EAAE,OAAO,EAAiB,KAAK,EAAE,OAAO,EAClD,QAAQ,EAAE,SAAS,EACnB,MAAM,MAAM,CAAC;AAsCd,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,GAAI,OAAO,EAAE,CAO9F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,GAAI,OAAO,EAAE,CAW3F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,GAAI,KAAK,EAAE,CA0B3F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,GAAI,UAAU,EAAE,EAAE,CAyBvG;AAsBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CA0BlD;AAgBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,aAAa,GAAI,UAAU,EAAE,EAAE,CAsFlG;AAYD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,SAAS,GAAI,iBAAiB,EAAE,CAiBrF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,SAAS,GAAI,OAAO,GAAG,OAAO,CAO9E;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,SAAS,GAAI,MAAM,GAAG,OAAO,CAOhF;AAQD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,aAAa,GAAI,SAAS,CA2B3F;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,aAAa,CAAC,EAAE,aAAa,4BAyBhG;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAE,MAAa,gBAMrE"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAGA,OAAO,EACQ,SAAS,EACvB,KAAK,IAAI,OAAO,EAEhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,EAA8B,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGnH,OAAO,KAAK,MAAM,MAAM,MAAM,CAAC;AAC/B,OAAO,KAAK,EACX,UAAU,EAAE,OAAO,EAAiB,KAAK,EAAE,OAAO,EAClD,QAAQ,EAAE,SAAS,EACnB,MAAM,MAAM,CAAC;AAsCd,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,GAAI,OAAO,EAAE,CAO9F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,GAAI,OAAO,EAAE,CAW3F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,GAAI,KAAK,EAAE,CA0B3F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,GAAI,UAAU,EAAE,EAAE,CAyBvG;AAuBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CA0BlD;AAgBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,aAAa,GAAI,UAAU,EAAE,EAAE,CA4ElG;AAYD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,SAAS,GAAI,iBAAiB,EAAE,CAiBrF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,SAAS,GAAI,OAAO,GAAG,OAAO,CAO9E;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,SAAS,GAAI,MAAM,GAAG,OAAO,CAOhF;AA+BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,aAAa,GAAI,SAAS,CA8B3F;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,aAAa,CAAC,EAAE,aAAa,4BAoChG;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAE,MAAa,gBAMrE"}
package/dist/export.js CHANGED
@@ -1 +1,392 @@
1
- import{utils}from"@omegagrid/core";import{encodeColumn,CalculationModel,isLogicalOperator,CellRange}from"@omegagrid/grid";import{SheetjsLoader}from"./loader";const DEFAULT_BORDER_COLOR="aaaaaa",DEFAULT_BORDER_STYLE={bottom:{style:"thin",color:"aaaaaa"},top:{style:"thin",color:"aaaaaa"},right:{style:"thin",color:"aaaaaa"},left:{style:"thin",color:"aaaaaa"}},DEFAULT_EXPORT_OPTIONS={exportHiddenRows:!0,exportHiddenColumns:!0,gridLines:!0,defaultBorders:!1,dropdownCells:"value"},headerCellStyle={alignment:{vertical:"center",horizontal:"center"},bold:!0},cellTypeMap={g:"n",b:"b",t:"s",n:"n",d:"d",dt:"d",s:"s",m:"s",tm:"s",h:"s",a:"z"};export function getWorksheetColumns(e,t){return(t.exportHiddenColumns?e.columns:e.visibleColumns).map((t=>({level:t.level,wpx:t.width,hidden:null==t.visibleIndex||e.visibleColumns[t.visibleIndex]!=t})))}export function getWorksheetRows(e,t){const o=t.exportHiddenRows?e.rows:e.visibleRows,r=e.headerCount,n=new Array(o.length+r);return[...Array(r).keys()].map((e=>n[e]={level:0})),o.map(((t,o)=>n[o+r]={level:t.level,hpt:.75*t.height,hidden:null==t.visibleIndex||e.visibleRows[t.visibleIndex]!=t})),n}export function getWorksheetMerges(e,t){const o=e.headerCount,r=t.exportHiddenColumns?e=>e.c:t=>e.columns[t.c].visibleIndex,n=e.hiddenCells,l=[];return e.mergedCells.forEach((e=>{n.get(e.r)?.get(e.c)||l.push({s:{c:r(e),r:e.r+o},e:{c:r(e)+e.cs-1,r:e.r+o+e.rs-1}})})),e.mergedHeaders.forEach((e=>{e.h?.hidden||l.push({s:{c:r(e),r:e.r},e:{c:r(e)+e.cs-1,r:e.r+e.rs-1}})})),l}export function getWorksheetHeaderCells(e,t){const o=e.headerCount,r=t.exportHiddenColumns?e.columns:e.visibleColumns,n=getDefaultBorderStyle(t);return[...Array(o).keys()].map((t=>r.map((o=>{const r=o.header[t],l={t:r?"s":"z",s:headerCellStyle};return r&&(r.html?l.h=`<span>${r.label}</span>`:null!=r.label?l.v=r.label:l.t="z"),n&&(l.s||(l.s={}),l.s=Object.assign({},n,l.s)),null!=r._style&&(l.s=Object.assign({},l.s,convertStyle(e.styles.get(r._style)))),l}))))}function convertStyleColor(e){return{rgb:e}}function convertStyleBorder(e){return{style:e.style,color:convertStyleColor(e.color)}}function convertStyleCellBorder(e){const t={};return e.bottom&&(t.bottom=convertStyleBorder(e.bottom)),e.top&&(t.top=convertStyleBorder(e.top)),e.right&&(t.right=convertStyleBorder(e.right)),e.left&&(t.left=convertStyleBorder(e.left)),t}export function convertStyle(e){const t={};return e.color&&(t.color=convertStyleColor(e.color)),e.bgColor&&(t.bgColor=convertStyleColor(e.bgColor)),e.fgColor&&(t.fgColor=convertStyleColor(e.fgColor)),e.patternType&&(t.patternType=e.patternType),e.alignment&&(t.alignment=e.alignment),null!=e.bold&&(t.bold=e.bold),e.sz&&(t.sz=e.sz),e.bottom&&(t.bottom=convertStyleBorder(e.bottom)),e.top&&(t.top=convertStyleBorder(e.top)),e.right&&(t.right=convertStyleBorder(e.right)),e.left&&(t.left=convertStyleBorder(e.left)),null!=e.angle&&(t.angle=e.angle),e.stops&&(t.stops=e.stops.map((e=>({v:e.v,rgb:e.rgb})))),t}function updateIndent(e,t){const o=e.calculatedIndent;o>0&&(t.s||(t.s={}),t.s.alignment||(t.s.alignment={}),t.s.alignment.indent=o)}function getDefaultBorderStyle(e){const t=!0===e.defaultBorders?DEFAULT_BORDER_STYLE:e.defaultBorders;return t?convertStyleCellBorder(t):null}export function getWorksheetCells(e,t){t=getExportOptions(t);const o=e.headerCount,r=new CalculationModel(e),n=new Array(o+e.rows.length),l=new Map,s=getDefaultBorderStyle(t),i=e.options.dateFormat||"yyyy-MM-dd",a="displayValue"==t.dropdownCells;getWorksheetHeaderCells(e,t).forEach(((e,t)=>n[t]=e));const c=t.exportHiddenRows?e.rows:e.visibleRows,d=t.exportHiddenColumns?e.columns:e.visibleColumns;return c.forEach(((e,t)=>n[t+o]=d.map((t=>{const n=e.cell(t.index),c=cellTypeMap[n.type],d={t:n.hasValue?c:"z"};n.hasFormula?d.f=o>0?r.getFormula(n).clone().shift({index:0,offset:o,direction:"down"}).toExcelString():r?r.getFormula(n).toExcelString():n.formula:n.hasValue&&!n.isSpilled&&("s"==d.t?d.v=a?n.formattedValue.toString():n.value.toString():"z"!=d.t&&(d.v=n.value),"g"==n.type?utils.isString(d.v)?d.t="s":d.t="n":"d"==n.type&&utils.isNumber(d.v)&&(d.t="n",d.z=i));const u=n.composedStyle;if(u&&(l.has(u.id)||l.set(u.id,convertStyle(u)),d.s={...l.get(u.id)}),updateIndent(n,d),n.hasComment){const e=n.model.comments.get(n.address);d.c=e.filter((e=>(e.text??"").length>0)).map((e=>({a:e.author?e.author.name??e.author.id:"",t:e.text}))),d.c.hidden=!0}return null==d.z&&("n"==d.t?d.z=n.format??"General":"d"==d.t&&(d.z=n.format??i)),"n"!=d.t&&"d"!=d.t||null!=d.z||(d.z=n.format??("d"==d.t?i:"General")),s&&(d.s||(d.s={}),d.s=Object.assign({},s,d.s)),d})))),n}function convertConditionalFormatBoundry(e,t){return e||t?{t:(e=Object.assign({},t,e)).t,v:e.v,color:convertStyleColor(e.color)}:null}export function getWorksheetConditionalFormats(e){const t=e.headerCount;return e.conditionalFormats.getSourceData().map((e=>({ref:CellRange.fromA1s(e.ranges).map((e=>e.shiftDown(0,t,null,!0).A1)).join(" "),t:e.type,f:e.condition&&isLogicalOperator(e.condition[0])?"A1"+e.condition:e.condition??null,s:e.style?convertStyle(e.style):null,stop:e.stop,cmin:convertConditionalFormatBoundry(e.cmin,"bar"==e.type?{t:"min",color:e.color}:null),cmid:e.cmid?convertConditionalFormatBoundry(e.cmid,{v:50,t:"percentile"}):null,cmax:convertConditionalFormatBoundry(e.cmax,"bar"==e.type?{t:"max",color:e.color}:null),color:convertStyleColor(e.color),v:e.v,thresh:e.thresh})))}export function detectOutlineRowDirection(e){return null==e.options.rowTree.reversed?e.rows.length<2?"above":e.rows[0].level>e.rows[1].level?"below":"above":e.options.rowTree.reversed?"below":"above"}export function detectOutlineColumnDirection(e){return null==e.options.columnTree.reversed?e.columns.length<2?"left":e.columns[0].level>e.columns[1].level?"right":"left":e.options.columnTree.reversed?"right":"left"}const getExportOptions=e=>{const t=Object.assign({},DEFAULT_EXPORT_OPTIONS,e);return t.defaultBorders&&(t.defaultBorders=DEFAULT_BORDER_STYLE),t};export function createWorksheet(e,t){t=getExportOptions(t);const o={};return o["!cols"]=getWorksheetColumns(e,t),o["!rows"]=getWorksheetRows(e,t),o["!merges"]=getWorksheetMerges(e,t),o["!condfmt"]=getWorksheetConditionalFormats(e),o["!outline"]={above:"above"==detectOutlineRowDirection(e),left:"left"==detectOutlineColumnDirection(e)},e.options.freezeLeft||e.options.freezeTop?o["!freeze"]=`${encodeColumn(e.options.freezeLeft)}${e.headerCount+e.options.freezeTop+1}`:e.headerCount>0&&(o["!freeze"]=`A${e.headerCount+1}`),o["!gridlines"]=t.gridLines,o["!print"]={},o}export async function createWorkbook(e,t){const o=SheetjsLoader.get(),r=o instanceof Promise?await o:o;t=getExportOptions(t);const n=r.utils.book_new();return e.forEach(((e,o)=>{e.calculations.evaluateAll();const l={...t,...e.exportOptions},s=r.utils.sheet_add_aoa(createWorksheet(e,l),getWorksheetCells(e,l));let i=e.name||`Sheet${o+1}`;i.length>31&&(i=i.substring(0,31)),r.utils.book_append_sheet(n,s,i)})),n.Workbook=n.Workbook||{},n}export async function exportXLSX(e,t=null){const o=SheetjsLoader.get(),r=o instanceof Promise?await o:o;return t?r.writeFile(e,t,{cellStyles:!0,bookSST:!0}):r.writeXLSX(e,{cellStyles:!0,bookSST:!0,type:"buffer"})}
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { utils } from '@omegagrid/core';
3
+ import { encodeColumn, CalculationModel, isLogicalOperator, CellRange } from '@omegagrid/grid';
4
+ import { SheetjsLoader } from './loader';
5
+ const DEFAULT_BORDER_COLOR = 'aaaaaa';
6
+ const DEFAULT_BORDER_STYLE = {
7
+ bottom: { style: 'thin', color: DEFAULT_BORDER_COLOR },
8
+ top: { style: 'thin', color: DEFAULT_BORDER_COLOR },
9
+ right: { style: 'thin', color: DEFAULT_BORDER_COLOR },
10
+ left: { style: 'thin', color: DEFAULT_BORDER_COLOR }
11
+ };
12
+ const DEFAULT_EXPORT_OPTIONS = {
13
+ exportHiddenRows: true,
14
+ exportHiddenColumns: true,
15
+ gridLines: true,
16
+ defaultBorders: false,
17
+ dropdownCells: 'value'
18
+ };
19
+ const headerCellStyle = {
20
+ alignment: { vertical: 'center', horizontal: 'center' },
21
+ bold: true
22
+ };
23
+ const cellTypeMap = {
24
+ 'g': 'n',
25
+ 'b': 'b',
26
+ 't': 's',
27
+ 'n': 'n',
28
+ 'd': 'd',
29
+ 'dt': 'd',
30
+ 's': 's',
31
+ 'm': 's',
32
+ 'tm': 's',
33
+ 'h': 's',
34
+ 'a': 'z',
35
+ };
36
+ export function getWorksheetColumns(model, exportOptions) {
37
+ const sourceColumns = exportOptions.exportHiddenColumns ? model.columns : model.visibleColumns;
38
+ return sourceColumns.map(column => ({
39
+ level: column.level,
40
+ wpx: column.width,
41
+ hidden: column.visibleIndex == null || model.visibleColumns[column.visibleIndex] != column
42
+ }));
43
+ }
44
+ export function getWorksheetRows(model, exportOptions) {
45
+ const sourceRows = exportOptions.exportHiddenRows ? model.rows : model.visibleRows;
46
+ const offset = model.headerCount;
47
+ const rows = new Array(sourceRows.length + offset);
48
+ [...Array(offset).keys()].map(r => rows[r] = { level: 0 });
49
+ sourceRows.map((row, r) => rows[r + offset] = {
50
+ level: row.level,
51
+ hpt: row.height * 0.75,
52
+ hidden: row.visibleIndex == null || model.visibleRows[row.visibleIndex] != row
53
+ });
54
+ return rows;
55
+ }
56
+ export function getWorksheetMerges(model, exportOptions) {
57
+ const offset = model.headerCount;
58
+ // TODO - add same logic for rows
59
+ const colIndex = exportOptions.exportHiddenColumns
60
+ ? (cell) => cell.c
61
+ : (cell) => model.columns[cell.c].visibleIndex;
62
+ const hiddenCells = model.hiddenCells;
63
+ const mergedCells = [];
64
+ model.mergedCells.forEach(cell => {
65
+ if (hiddenCells.get(cell.r)?.get(cell.c))
66
+ return;
67
+ mergedCells.push({
68
+ s: { c: colIndex(cell), r: cell.r + offset },
69
+ e: { c: colIndex(cell) + cell.cs - 1, r: cell.r + offset + cell.rs - 1 }
70
+ });
71
+ });
72
+ model.mergedHeaders.forEach(cell => {
73
+ if (cell.h?.hidden)
74
+ return;
75
+ mergedCells.push({
76
+ s: { c: colIndex(cell), r: cell.r },
77
+ e: { c: colIndex(cell) + cell.cs - 1, r: cell.r + cell.rs - 1 }
78
+ });
79
+ });
80
+ return mergedCells;
81
+ }
82
+ export function getWorksheetHeaderCells(model, exportOptions) {
83
+ const count = model.headerCount;
84
+ const sourceColumns = exportOptions.exportHiddenColumns ? model.columns : model.visibleColumns;
85
+ const defaultBorder = getDefaultBorderStyle(exportOptions);
86
+ return [...Array(count).keys()].map(r => sourceColumns.map((column) => {
87
+ const header = column.header[r];
88
+ const cell = { t: header ? 's' : 'z', s: headerCellStyle };
89
+ if (header) {
90
+ if (header.html)
91
+ cell.h = `<span>${header.label}</span>`;
92
+ else if (header.label != null)
93
+ cell.v = header.label;
94
+ else
95
+ cell.t = 'z';
96
+ }
97
+ if (defaultBorder) {
98
+ if (!cell.s)
99
+ cell.s = {};
100
+ cell.s = Object.assign({}, defaultBorder, cell.s);
101
+ }
102
+ if (header._style != null) {
103
+ cell.s = Object.assign({}, cell.s, convertStyle(model.styles.get(header._style)));
104
+ }
105
+ return cell;
106
+ }));
107
+ }
108
+ function convertStyleColor(color) {
109
+ return { rgb: color };
110
+ }
111
+ function convertStyleBorder(border) {
112
+ if (border.style == 'none')
113
+ return null;
114
+ return {
115
+ style: border.style,
116
+ color: convertStyleColor(border.color)
117
+ };
118
+ }
119
+ function convertStyleCellBorder(border) {
120
+ const s = {};
121
+ if (border.bottom)
122
+ s.bottom = convertStyleBorder(border.bottom);
123
+ if (border.top)
124
+ s.top = convertStyleBorder(border.top);
125
+ if (border.right)
126
+ s.right = convertStyleBorder(border.right);
127
+ if (border.left)
128
+ s.left = convertStyleBorder(border.left);
129
+ return s;
130
+ }
131
+ export function convertStyle(style) {
132
+ const s = {};
133
+ if (style.color)
134
+ s.color = convertStyleColor(style.color);
135
+ if (style.bgColor)
136
+ s.bgColor = convertStyleColor(style.bgColor);
137
+ if (style.fgColor)
138
+ s.fgColor = convertStyleColor(style.fgColor);
139
+ if (style.patternType)
140
+ s.patternType = style.patternType;
141
+ if (style.alignment)
142
+ s.alignment = style.alignment;
143
+ if (style.bold != null)
144
+ s.bold = style.bold;
145
+ if (style.sz)
146
+ s.sz = style.sz;
147
+ if (style.bottom)
148
+ s.bottom = convertStyleBorder(style.bottom);
149
+ if (style.top)
150
+ s.top = convertStyleBorder(style.top);
151
+ if (style.right)
152
+ s.right = convertStyleBorder(style.right);
153
+ if (style.left)
154
+ s.left = convertStyleBorder(style.left);
155
+ if (style.angle != null)
156
+ s.angle = style.angle;
157
+ if (style.stops)
158
+ s.stops = style.stops.map(stop => ({
159
+ v: stop.v,
160
+ rgb: stop.rgb
161
+ }));
162
+ return s;
163
+ }
164
+ function updateIndent(cellModel, cell) {
165
+ const indent = cellModel.calculatedIndent;
166
+ if (indent > 0) {
167
+ if (!cell.s)
168
+ cell.s = {};
169
+ if (!cell.s.alignment)
170
+ cell.s.alignment = {};
171
+ cell.s.alignment.indent = indent;
172
+ }
173
+ }
174
+ function getDefaultBorderStyle(exportOptions) {
175
+ const defaultBorder = exportOptions.defaultBorders === true ? DEFAULT_BORDER_STYLE : exportOptions.defaultBorders;
176
+ return defaultBorder ? convertStyleCellBorder(defaultBorder) : null;
177
+ }
178
+ export function getWorksheetCells(model, exportOptions) {
179
+ exportOptions = getExportOptions(exportOptions);
180
+ const hOffset = model.headerCount;
181
+ const calculations = new CalculationModel(model);
182
+ const data = new Array(hOffset + model.rows.length);
183
+ const styles = new Map();
184
+ const defaultBorder = getDefaultBorderStyle(exportOptions);
185
+ const defaultDateFormat = model.options.dateFormat || 'yyyy-MM-dd';
186
+ const dropdowDisplayValue = exportOptions.dropdownCells == 'displayValue';
187
+ getWorksheetHeaderCells(model, exportOptions).forEach((row, r) => data[r] = row);
188
+ const sourceRows = exportOptions.exportHiddenRows ? model.rows : model.visibleRows;
189
+ const sourceColumns = exportOptions.exportHiddenColumns ? model.columns : model.visibleColumns;
190
+ sourceRows.forEach((row, r) => data[r + hOffset] = sourceColumns.map((column) => {
191
+ const cellModel = row.cell(column.index);
192
+ const t = cellTypeMap[cellModel.type];
193
+ const cellObj = { t: cellModel.hasValue ? t : 'z' };
194
+ if (cellModel.hasFormula) {
195
+ if (hOffset > 0) {
196
+ // TODO - shift connected models
197
+ cellObj.f = calculations.getFormula(cellModel).clone().shift({ index: 0, offset: hOffset, direction: 'down' }).toExcelString();
198
+ }
199
+ else {
200
+ cellObj.f = (calculations
201
+ ? calculations.getFormula(cellModel).toExcelString()
202
+ : cellModel.formula);
203
+ }
204
+ if (cellModel.type == 'd') {
205
+ cellObj.t = 'n';
206
+ cellObj.z = cellModel.format ?? defaultDateFormat;
207
+ }
208
+ }
209
+ else if (cellModel.hasValue && !cellModel.isSpilled) {
210
+ if (cellObj.t == 's') {
211
+ cellObj.v = dropdowDisplayValue ? cellModel.formattedValue.toString() : cellModel.value.toString();
212
+ }
213
+ else if (cellObj.t != 'z') {
214
+ cellObj.v = cellModel.value;
215
+ }
216
+ if (cellModel.type == 'g') {
217
+ cellObj.t = utils.isString(cellObj.v) ? 's' : 'n';
218
+ }
219
+ else if (cellModel.type == 'd') {
220
+ if (utils.isNumber(cellObj.v))
221
+ cellObj.t = 'n';
222
+ }
223
+ // html: cell.h = `<span>${cellModel.value}</span>`;
224
+ }
225
+ const style = cellModel.composedStyle;
226
+ if (style) {
227
+ if (!styles.has(style.id))
228
+ styles.set(style.id, convertStyle(style));
229
+ cellObj.s = { ...styles.get(style.id) };
230
+ }
231
+ updateIndent(cellModel, cellObj);
232
+ if (cellModel.hasComment) {
233
+ const comments = cellModel.model.comments.get(cellModel.address);
234
+ cellObj.c = comments.filter(comment => (comment.text ?? "").length > 0).map(comment => ({
235
+ a: comment.author ? (comment.author.name ?? comment.author.id) : '',
236
+ t: comment.text
237
+ }));
238
+ cellObj.c.hidden = true;
239
+ } // else if (cellModel.hasTooltip) {}
240
+ if ((cellObj.t == 'n' || cellObj.t == 'd') && cellObj.z == null) {
241
+ cellObj.z = cellModel.format ?? (cellObj.t == 'd' ? defaultDateFormat : 'General');
242
+ }
243
+ if (defaultBorder) {
244
+ if (!cellObj.s)
245
+ cellObj.s = {};
246
+ cellObj.s = Object.assign({}, defaultBorder, cellObj.s);
247
+ }
248
+ return cellObj;
249
+ }));
250
+ return data;
251
+ }
252
+ function convertConditionalFormatBoundry(cb, def) {
253
+ if (!cb && !def)
254
+ return null;
255
+ cb = Object.assign({}, def, cb);
256
+ return {
257
+ t: cb.t,
258
+ v: cb.v,
259
+ color: convertStyleColor(cb.color)
260
+ };
261
+ }
262
+ export function getWorksheetConditionalFormats(model) {
263
+ const hOffset = model.headerCount;
264
+ return model.conditionalFormats.getSourceData().map((item) => {
265
+ return {
266
+ ref: CellRange.fromA1s(item.ranges).map(range => range.shiftDown(0, hOffset, null, true).A1).join(' '),
267
+ t: item.type,
268
+ f: item.condition && isLogicalOperator(item.condition[0]) ? ('A1' + item.condition) : (item.condition ?? null),
269
+ s: item.style ? convertStyle(item.style) : null,
270
+ stop: item.stop,
271
+ cmin: convertConditionalFormatBoundry(item.cmin, (item.type == 'bar' ? { t: 'min', color: item.color } : null)),
272
+ cmid: item.cmid ? convertConditionalFormatBoundry(item.cmid, { v: 50, t: 'percentile' }) : null,
273
+ cmax: convertConditionalFormatBoundry(item.cmax, (item.type == 'bar' ? { t: 'max', color: item.color } : null)),
274
+ color: convertStyleColor(item.color),
275
+ v: item.v,
276
+ thresh: item.thresh
277
+ };
278
+ });
279
+ }
280
+ export function detectOutlineRowDirection(model) {
281
+ if (model.options.rowTree.reversed == null) {
282
+ if (model.rows.length < 2)
283
+ return 'above';
284
+ return model.rows[0].level > model.rows[1].level ? 'below' : 'above';
285
+ }
286
+ else {
287
+ return model.options.rowTree.reversed ? 'below' : 'above';
288
+ }
289
+ }
290
+ export function detectOutlineColumnDirection(model) {
291
+ if (model.options.columnTree.reversed == null) {
292
+ if (model.columns.length < 2)
293
+ return 'left';
294
+ return model.columns[0].level > model.columns[1].level ? 'right' : 'left';
295
+ }
296
+ else {
297
+ return model.options.columnTree.reversed ? 'right' : 'left';
298
+ }
299
+ }
300
+ const getExportOptions = (exportOptions) => {
301
+ const options = Object.assign({}, DEFAULT_EXPORT_OPTIONS, exportOptions);
302
+ if (options.defaultBorders)
303
+ options.defaultBorders = DEFAULT_BORDER_STYLE;
304
+ return options;
305
+ };
306
+ function createPrintOptions(model, exportOptions) {
307
+ const options = model.options.print ?? {};
308
+ const printOptions = { props: {} };
309
+ if (options.scale)
310
+ printOptions.props.scale = options.scale;
311
+ if (options.margins)
312
+ printOptions.margins = options.margins;
313
+ // printOptions.props.fit = {width: 1, height: 0}; // does not work!!!
314
+ /*
315
+ "Fit Sheet on One page" { width: 1, height: 1 }
316
+ "Fit All Columns on One Page" { width: 1, height: 0 }
317
+ "Fit All Rows on One Page" { width: 0, height: 1 }
318
+ */
319
+ const rowBreaks = options.rowBreaks;
320
+ if (rowBreaks?.length > 0) {
321
+ printOptions.rowBreaks = rowBreaks.map((row) => ({
322
+ R: exportOptions.exportHiddenRows ? row : model.rows[row].visibleIndex,
323
+ }));
324
+ }
325
+ return printOptions;
326
+ }
327
+ export function createWorksheet(model, exportOptions) {
328
+ exportOptions = getExportOptions(exportOptions);
329
+ const ws = {};
330
+ ws['!cols'] = getWorksheetColumns(model, exportOptions);
331
+ ws['!rows'] = getWorksheetRows(model, exportOptions);
332
+ ws['!merges'] = getWorksheetMerges(model, exportOptions);
333
+ ws['!condfmt'] = getWorksheetConditionalFormats(model);
334
+ ws['!outline'] = {
335
+ 'above': detectOutlineRowDirection(model) == 'above',
336
+ 'left': detectOutlineColumnDirection(model) == 'left'
337
+ };
338
+ if (model.options.freezeLeft || model.options.freezeTop) {
339
+ ws['!freeze'] = `${encodeColumn(model.options.freezeLeft)}${model.headerCount + model.options.freezeTop + 1}`;
340
+ }
341
+ else if (model.headerCount > 0) {
342
+ ws['!freeze'] = `A${model.headerCount + 1}`;
343
+ }
344
+ ws['!gridlines'] = exportOptions.gridLines;
345
+ ws['!print'] = createPrintOptions(model, exportOptions);
346
+ console.log(ws);
347
+ // if (model.tab?.color) ws['!tabcolor'] = convertStyleColor(model.tab.color); // does not work?
348
+ // if (autoFilterStart) {
349
+ // ws['!autofilter'] = {ref: autoFilterStart + ":" + autoFilterEnd};
350
+ // }
351
+ return ws;
352
+ }
353
+ export async function createWorkbook(models, exportOptions) {
354
+ const sheetjsPromise = SheetjsLoader.get();
355
+ const XLSX = sheetjsPromise instanceof Promise ? await sheetjsPromise : sheetjsPromise;
356
+ exportOptions = getExportOptions(exportOptions);
357
+ const wb = XLSX.utils.book_new();
358
+ models.forEach((m, i) => {
359
+ m.calculations.evaluateAll();
360
+ const modelExportOptions = { ...exportOptions, ...m.exportOptions };
361
+ const ws = XLSX.utils.sheet_add_aoa(createWorksheet(m, modelExportOptions), getWorksheetCells(m, modelExportOptions));
362
+ // ws["!protect"] = {};
363
+ let name = m.name || `Sheet${i + 1}`;
364
+ m.name = name;
365
+ if (name.length > 31)
366
+ name = name.substring(0, 31);
367
+ XLSX.utils.book_append_sheet(wb, ws, name);
368
+ });
369
+ wb.Workbook = wb.Workbook || {};
370
+ // wb.Workbook.Protection = { lockStructure: true };
371
+ // worksheet properties within workbook
372
+ models.forEach(m => {
373
+ const index = wb.SheetNames.indexOf(m.name);
374
+ if (index < 0)
375
+ return;
376
+ if (!wb.Workbook.Sheets)
377
+ wb.Workbook.Sheets = [];
378
+ if (!wb.Workbook.Sheets[index])
379
+ wb.Workbook.Sheets[index] = {};
380
+ if (m.tab?.hidden)
381
+ wb.Workbook.Sheets[index].Hidden = 1;
382
+ });
383
+ return wb;
384
+ }
385
+ export async function exportXLSX(wb, filename = null) {
386
+ const sheetjsPromise = SheetjsLoader.get();
387
+ const XLSX = sheetjsPromise instanceof Promise ? await sheetjsPromise : sheetjsPromise;
388
+ return filename
389
+ ? XLSX.writeFile(wb, filename, { cellStyles: true, bookSST: true })
390
+ : XLSX.writeXLSX(wb, { cellStyles: true, bookSST: true, type: 'buffer' });
391
+ }
392
+ //# sourceMappingURL=export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
package/dist/import.js CHANGED
@@ -1 +1,182 @@
1
- import{numbers}from"@omegagrid/core";import{SheetjsLoader}from"./loader";import{CellRange,stripFormulaPrefix}from"@omegagrid/grid";const cellTypeMap={b:"b",s:"t",n:"n",d:"d",z:"g",e:"t"};function convertStyleColor(e){return e.rgb}function convertStyleBorder(e){return{color:convertStyleColor(e.color),style:e.style}}function convertStyle(e){const r={};return e.color&&(r.color=convertStyleColor(e.color)),e.bgColor&&(r.bgColor=convertStyleColor(e.bgColor)),e.fgColor&&(r.fgColor=convertStyleColor(e.fgColor)),r.fgColor||"000000"!=r.color||(r.color=null),e.alignment&&(r.alignment=e.alignment),e.bold&&(r.bold=e.bold),e.sz&&(r.sz=e.sz),e.top&&(r.top=convertStyleBorder(e.top)),e.bottom&&(r.bottom=convertStyleBorder(e.bottom)),e.left&&(r.left=convertStyleBorder(e.left)),e.right&&(r.right=convertStyleBorder(e.right)),r}function getGridCells(e){const r=[],o=new Map;(e["!merges"]??[]).forEach((e=>{const r=new CellRange(e.s.c,e.s.r);o.set(r.A1,{c:e.s.c,cs:e.e.c-e.s.c+1,r:e.s.r,rs:e.e.r-e.s.r+1})}));for(const t in e){if("!"==t[0])continue;const l=e[t],n=CellRange.fromA1(t),c={r:n.r1,c:n.c1,t:cellTypeMap[l.t]},s=o.get(t);s&&(c.cs=s.cs,c.rs=s.rs),l.s&&(c.s=convertStyle(l.s)),l.f?c.f=stripFormulaPrefix(l.f):c.v=l.v,["n","d"].includes(l.t)&&null!=l.z&&"General"!=l.z&&(c.z=numbers.fixNumberFormat(l.z,"d")),r.push(c)}return r}function getGridRows(e,r){const o=e["!rows"]??[],t=new Array(r);let l;for(let e=0;e<r;e++)l=o[e],t[e]={l:(l?l.level:0)||0,h:l?l.hpx:null};return t}function getGridColumns(e,r){const o=e["!cols"]??[],t=new Array(r);let l;for(let e=0;e<r;e++)l=o[e],t[e]={l:(l?l.level:0)||0,w:l?l.wpx:null};return t}function getConditionalStyles(e){return e["!condfmt"]?.filter((e=>["formula","scale","bar"].includes(e.t))).map((e=>{const r={type:e.t,ranges:e.ref.toString().replace(/\s/g,";")};return r.style=e.s?convertStyle(e.s):null,r.cmin=e.cmin?{t:e.cmin.t,color:e.cmin.color?convertStyleColor(e.cmin.color):null}:null,r.cmid=e.cmid?{t:e.cmid.t,color:e.cmid.color?convertStyleColor(e.cmid.color):null}:null,r.cmax=e.cmax?{t:e.cmax.t,color:e.cmax.color?convertStyleColor(e.cmax.color):null}:null,r.color=e.color?convertStyleColor(e.color):null,r.condition=e.f,r.stop=!0,r}))}function createGridModel(e,r){const o=e["!ref"]?CellRange.fromA1(e["!ref"]):CellRange.fromA1("A1:T100"),t={},l={};if(e["!freeze"]){const r=CellRange.fromA1(e["!freeze"]);l.freezeLeft=r.c1,l.freezeTop=r.r1}return t.options=l,t.rows=getGridRows(e,o.r2+1),t.columns=getGridColumns(e,o.c2+1),t.cells=getGridCells(e),t.names=r,t.rules=getConditionalStyles(e),t}export function getWorkbookNames(e){const r=new Map;return e.Workbook.Names.forEach((({Name:e,Ref:o})=>{const[t,l]=o.split("!");if(!l)return;let n=r.get(t);n||r.set(t,n=[]);const c=CellRange.fromA1(l);c.c1Anchor&&!c.r1Anchor?(c.r1=0,c.r2=1/0):!c.c1Anchor&&c.r1Anchor&&(c.c1=0,c.c2=1/0),c.removeAnchors(),n.push({name:e,ref:c.A1})})),r}export async function createModel(e,r){return performance.mark("start_import"),createModelFromArrayBuffer(await e.arrayBuffer(),r)}export function createModelFromWorkbook(e){const r=getWorkbookNames(e);performance.mark("sheets_start");const o={models:[],layout:{items:[{tabs:[]}]}};for(const t in e.Sheets)performance.mark(`sheet_start_${t}`),o.layout.items[0].tabs.push({id:t}),o.models.push({...createGridModel(e.Sheets[t],r.get(t)),name:t}),performance.mark(`sheet_end_${t}`);return performance.mark("sheets_end"),o}export async function createModelFromArrayBuffer(e,r){performance.mark("array_buffer");const o=e instanceof ArrayBuffer?new Uint8Array(e):e,t=(await SheetjsLoader.get()).read(o,Object.assign({cellNF:!0,cellText:!1,cellStyles:!0,type:"buffer"},r||{}));return performance.mark("wb_read"),createModelFromWorkbook(t)}
1
+ import { numbers } from '@omegagrid/core';
2
+ import { SheetjsLoader } from './loader';
3
+ import { CellRange, stripFormulaPrefix } from '@omegagrid/grid';
4
+ const cellTypeMap = {
5
+ 'b': 'b',
6
+ 's': 't',
7
+ 'n': 'n',
8
+ 'd': 'd',
9
+ 'z': 'g',
10
+ 'e': 't'
11
+ };
12
+ function convertStyleColor(color) {
13
+ return color.rgb;
14
+ }
15
+ function convertStyleBorder(border) {
16
+ return {
17
+ color: convertStyleColor(border.color),
18
+ style: border.style
19
+ };
20
+ }
21
+ function convertStyle(style) {
22
+ const s = {};
23
+ if (style.color)
24
+ s.color = convertStyleColor(style.color);
25
+ if (style.bgColor)
26
+ s.bgColor = convertStyleColor(style.bgColor);
27
+ if (style.fgColor)
28
+ s.fgColor = convertStyleColor(style.fgColor);
29
+ if (!s.fgColor && s.color == '000000')
30
+ s.color = null;
31
+ if (style.alignment)
32
+ s.alignment = style.alignment;
33
+ if (style.bold)
34
+ s.bold = style.bold;
35
+ if (style.sz)
36
+ s.sz = style.sz;
37
+ if (style.top)
38
+ s.top = convertStyleBorder(style.top);
39
+ if (style.bottom)
40
+ s.bottom = convertStyleBorder(style.bottom);
41
+ if (style.left)
42
+ s.left = convertStyleBorder(style.left);
43
+ if (style.right)
44
+ s.right = convertStyleBorder(style.right);
45
+ return s;
46
+ }
47
+ function getGridCells(ws) {
48
+ const cells = [];
49
+ const merges = new Map();
50
+ (ws['!merges'] ?? []).forEach(m => {
51
+ const range = new CellRange(m.s.c, m.s.r);
52
+ merges.set(range.A1, { c: m.s.c, cs: m.e.c - m.s.c + 1, r: m.s.r, rs: m.e.r - m.s.r + 1 });
53
+ });
54
+ for (const address in ws) {
55
+ if (address[0] == '!')
56
+ continue;
57
+ const cellObj = ws[address];
58
+ const range = CellRange.fromA1(address);
59
+ const cell = { r: range.r1, c: range.c1, t: cellTypeMap[cellObj.t] };
60
+ const merge = merges.get(address);
61
+ if (merge) {
62
+ cell.cs = merge.cs;
63
+ cell.rs = merge.rs;
64
+ }
65
+ if (cellObj.s)
66
+ cell.s = convertStyle(cellObj.s);
67
+ if (cellObj.f)
68
+ cell.f = stripFormulaPrefix(cellObj.f);
69
+ else
70
+ cell.v = cellObj.v;
71
+ if (['n', 'd'].includes(cellObj.t) && cellObj.z != null && cellObj.z != 'General') {
72
+ cell.z = numbers.fixNumberFormat(cellObj.z, 'd');
73
+ }
74
+ cells.push(cell);
75
+ }
76
+ return cells;
77
+ }
78
+ function getGridRows(ws, count) {
79
+ const srcRows = ws['!rows'] ?? [];
80
+ const rows = new Array(count);
81
+ let row;
82
+ for (let r = 0; r < count; r++) {
83
+ row = srcRows[r];
84
+ rows[r] = { l: (row ? row.level : 0) || 0, h: row ? row.hpx : null };
85
+ }
86
+ return rows;
87
+ }
88
+ function getGridColumns(ws, count) {
89
+ const srcCols = ws['!cols'] ?? [];
90
+ const columns = new Array(count);
91
+ let col;
92
+ for (let c = 0; c < count; c++) {
93
+ col = srcCols[c];
94
+ columns[c] = { l: (col ? col.level : 0) || 0, w: col ? col.wpx : null };
95
+ }
96
+ return columns;
97
+ }
98
+ function getConditionalStyles(ws) {
99
+ return ws['!condfmt']?.filter((item) => ['formula', 'scale', 'bar'].includes(item.t)).map((item) => {
100
+ const rule = {
101
+ type: item.t,
102
+ ranges: item.ref.toString().replace(/\s/g, ';')
103
+ };
104
+ rule.style = item.s ? convertStyle(item.s) : null;
105
+ rule.cmin = item.cmin ? { t: item.cmin.t, color: item.cmin.color ? convertStyleColor(item.cmin.color) : null } : null;
106
+ rule.cmid = item.cmid ? { t: item.cmid.t, color: item.cmid.color ? convertStyleColor(item.cmid.color) : null } : null;
107
+ rule.cmax = item.cmax ? { t: item.cmax.t, color: item.cmax.color ? convertStyleColor(item.cmax.color) : null } : null;
108
+ rule.color = item.color ? convertStyleColor(item.color) : null;
109
+ rule.condition = item.f;
110
+ rule.stop = true;
111
+ return rule;
112
+ });
113
+ }
114
+ function createGridModel(ws, names) {
115
+ const range = ws['!ref'] ? CellRange.fromA1(ws['!ref']) : CellRange.fromA1('A1:T100');
116
+ const source = {};
117
+ const options = {};
118
+ if (ws['!freeze']) {
119
+ const freezeRange = CellRange.fromA1(ws['!freeze']);
120
+ options.freezeLeft = freezeRange.c1;
121
+ options.freezeTop = freezeRange.r1;
122
+ }
123
+ source.options = options;
124
+ source.rows = getGridRows(ws, range.r2 + 1);
125
+ source.columns = getGridColumns(ws, range.c2 + 1);
126
+ source.cells = getGridCells(ws);
127
+ source.names = names;
128
+ source.rules = getConditionalStyles(ws);
129
+ return source;
130
+ }
131
+ export function getWorkbookNames(wb) {
132
+ const names = new Map();
133
+ wb.Workbook.Names.forEach(({ Name, Ref }) => {
134
+ const [sheet, address] = Ref.split('!');
135
+ if (!address)
136
+ return;
137
+ let map = names.get(sheet);
138
+ if (!map)
139
+ names.set(sheet, map = []);
140
+ const range = CellRange.fromA1(address);
141
+ if (range.c1Anchor && !range.r1Anchor) {
142
+ range.r1 = 0;
143
+ range.r2 = Infinity;
144
+ }
145
+ else if (!range.c1Anchor && range.r1Anchor) {
146
+ range.c1 = 0;
147
+ range.c2 = Infinity;
148
+ }
149
+ range.removeAnchors();
150
+ map.push({ name: Name, ref: range.A1 });
151
+ });
152
+ return names;
153
+ }
154
+ export async function createModel(file, options) {
155
+ performance.mark('start_import');
156
+ return createModelFromArrayBuffer(await file.arrayBuffer(), options);
157
+ }
158
+ export function createModelFromWorkbook(wb) {
159
+ const names = getWorkbookNames(wb);
160
+ performance.mark('sheets_start');
161
+ const modelSource = { models: [], layout: { items: [{ tabs: [] }] } };
162
+ for (const sheetName in wb.Sheets) {
163
+ performance.mark(`sheet_start_${sheetName}`);
164
+ modelSource.layout.items[0].tabs.push({ id: sheetName });
165
+ modelSource.models.push({
166
+ ...createGridModel(wb.Sheets[sheetName], names.get(sheetName)),
167
+ name: sheetName
168
+ });
169
+ performance.mark(`sheet_end_${sheetName}`);
170
+ }
171
+ performance.mark('sheets_end');
172
+ return modelSource;
173
+ }
174
+ export async function createModelFromArrayBuffer(data, options) {
175
+ performance.mark('array_buffer');
176
+ const bytes = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
177
+ const XLSX = await SheetjsLoader.get();
178
+ const wb = XLSX.read(bytes, Object.assign({ cellNF: true, cellText: false, cellStyles: true, type: 'buffer' }, options || {}));
179
+ performance.mark('wb_read');
180
+ return createModelFromWorkbook(wb);
181
+ }
182
+ //# sourceMappingURL=import.js.map
package/dist/index.js CHANGED
@@ -1 +1,8 @@
1
- export*from"./types";export*from"./export";export*from"./import";export*from"./editorPlugin";export*from"./loader";import{SheetjsLoader}from"./loader";export{SheetjsLoader as loader};
1
+ export * from './types';
2
+ export * from './export';
3
+ export * from './import';
4
+ export * from './editorPlugin';
5
+ export * from './loader';
6
+ import { SheetjsLoader } from './loader';
7
+ export { SheetjsLoader as loader };
8
+ //# sourceMappingURL=index.js.map
package/dist/loader.d.ts CHANGED
@@ -2,6 +2,7 @@ import type XLSXNS from 'xlsx';
2
2
  declare global {
3
3
  interface Window {
4
4
  XLSX: typeof XLSXNS;
5
+ define: unknown;
5
6
  }
6
7
  }
7
8
  export declare class SheetjsLoader {
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,MAAM,CAAC;AAE/B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QAClB,IAAI,EAAE,OAAO,MAAM,CAAC;KACjB;CACJ;AAED,qBAAa,aAAa;IAEzB,MAAM,CAAC,IAAI,EAAE,OAAO,MAAM,CAAC;IAC3B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;WAIX,GAAG;IAKhB,MAAM,CAAC,OAAO;IAId,MAAM,CAAC,IAAI;CAgBX"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,MAAM,CAAC;AAE/B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QAClB,IAAI,EAAE,OAAO,MAAM,CAAC;QACpB,MAAM,EAAE,OAAO,CAAA;KACZ;CACJ;AAED,qBAAa,aAAa;IAEzB,MAAM,CAAC,IAAI,EAAE,OAAO,MAAM,CAAC;IAC3B,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;WAIX,GAAG;IAKhB,MAAM,CAAC,OAAO;IAId,MAAM,CAAC,IAAI;CAMX"}
package/dist/loader.js CHANGED
@@ -1 +1,21 @@
1
- import{AMD}from"@omegagrid/core";export class SheetjsLoader{static init(t){this.path=t}static async get(){return this.xlsx||(this.xlsx=await this.load()),this.xlsx}static getSync(){return this.xlsx}static load(){if(!AMD.require)throw new Error("AMDLoader is not initialized");return AMD.require.config({paths:{sheetjs:this.path}}),new Promise((t=>{AMD.require(["sheetjs/xlsx.full.min"],(()=>{t(self.XLSX)}))}))}}
1
+ import { AMD } from '@omegagrid/core';
2
+ export class SheetjsLoader {
3
+ static init(path) {
4
+ this.path = path;
5
+ }
6
+ static async get() {
7
+ if (!this.xlsx)
8
+ this.xlsx = await this.load();
9
+ return this.xlsx;
10
+ }
11
+ static getSync() {
12
+ return this.xlsx;
13
+ }
14
+ static load() {
15
+ if (!AMD.require)
16
+ throw new Error('AMDLoader is not initialized');
17
+ AMD.require.config({ paths: { 'xlsx': this.path + '/xlsx.full.min' } });
18
+ return new Promise(resolve => AMD.require(['xlsx'], () => resolve(self.XLSX)));
19
+ }
20
+ }
21
+ //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAStC,MAAM,OAAO,aAAa;IAKzB,MAAM,CAAC,IAAI,CAAC,IAAY;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG;QACf,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,OAAO;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,IAAI;QACV,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;QAED,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YAClB,KAAK,EAAE,EAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAC;SAC7B,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;YAC7C,GAAG,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE;gBAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;CAED"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAUtC,MAAM,OAAO,aAAa;IAKzB,MAAM,CAAC,IAAI,CAAC,IAAY;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG;QACf,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,OAAO;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,IAAI;QACV,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,GAAG,gBAAgB,EAAC,EAAC,CAAC,CAAC;QACpE,OAAO,IAAI,OAAO,CAAgB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;CAED"}
package/dist/types.js CHANGED
@@ -1 +1,3 @@
1
- export{};
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/plugin-xlsx",
3
- "version": "0.6.28",
3
+ "version": "0.6.29",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Xlsx import/export plugin",
6
6
  "main": "./dist/index.js",
@@ -27,9 +27,9 @@
27
27
  "_prepublish": "yarn test && yarn lint"
28
28
  },
29
29
  "dependencies": {
30
- "@omegagrid/core": "^0.6.28",
31
- "@omegagrid/editor": "^0.6.28",
32
- "@omegagrid/grid": "^0.6.28",
30
+ "@omegagrid/core": "^0.6.29",
31
+ "@omegagrid/editor": "^0.6.29",
32
+ "@omegagrid/grid": "^0.6.29",
33
33
  "lit": "^3.1.1",
34
34
  "lit-html": "^3.1.1",
35
35
  "ts-debounce": "^4.0.0"