cenitu-table 0.2.0 → 0.4.0-beta.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/README.tr.md CHANGED
@@ -1,126 +1,224 @@
1
- # CenituTable
2
-
3
- Spreadsheet benzeri bir data grid ve ona bağlı, çok sayfalı bir formül motoru. TypeScript ile yazıldı, **çalışma zamanı bağımlılığı yok**. İsteğe bağlı bir React bileşeni de içeriyor.
4
-
5
- **[Canlı demo](https://cenitu.github.io/cenitu-table/)** · [English](README.md) · [Tasarım notları](docs/SPEC.md)
6
-
7
- ## Özellikler
8
-
9
- - **Grid:** sanal kaydırma (yalnızca görünen hücreler DOM'da), klavye gezinmesi (Ctrl+ok ile veri bloğu sonuna atlama), Excel uyumlu kopyala/kes/yapıştır, geri al/yinele, sütun ve satır boyutlandırma, satır/sütun ekleme-silme, sağ tık menüsü.
10
- - **Sıralama ve filtre:** koşula ve değer listesine göre filtreleyen sütun menüsü. Yalnızca görünüm değişir; veri ve formüller yerinde kalır.
11
- - **Doldurma tutamacı:** sayı ve metin serileri, göreli kayan formüller, çift tıklamayla otomatik doldurma, Ctrl+D.
12
- - **Hücre tipleri:** sayı (para, yüzde gibi Intl biçimleri), tarih, onay kutusu, açılır liste; doğrulayıcılar, salt-okunur hücreler, özel çiziciler.
13
- - **Biçimlendirme:** kalın, italik, altı çizili, üstü çizili, renkler, hizalama, metin kaydırma (Ctrl+B / I / U); hücre ya da tüm satır için koşullu biçimlendirme.
14
- - **Yerleşim:** sabit satır ve sütunlar, birleştirilmiş hücreler, gizli sütunlar, sürükleyerek sütun taşıma.
15
- - **Formül motoru:** 100'den fazla fonksiyon (SUM, IF, XLOOKUP, SUMIFS, TEXT, tarih fonksiyonları…), taşan dinamik diziler (FILTER, SORT, UNIQUE, SEQUENCE), sayfalar arası referanslar (`'Diğer Sayfa'!A1`), isimli ifadeler, artımlı yeniden hesaplama, döngü tespiti.
16
- - **Veri bağlama:** satırlar dizi ya da nesne olarak verilebilir. Nesnelerde sütunlar alan yoluna bağlanır ve düzenlemeler nesnelerinize geri yazılır.
17
- - **Dışa aktarma:** CSV (formül enjeksiyonuna karşı korumalı) ve XLSX (formüller, biçimler, stiller, sabit bölmeler, birleştirmeler); hiçbir kütüphane kullanmadan.
18
- - **Erişilebilirlik:** ARIA grid rolleri, ekran okuyucuya duyurulan aktif hücre.
19
- - **React:** `cenitu-table/react` içinden `<CenituTable />`.
20
-
21
- ## Kurulum
22
-
23
- ```bash
24
- npm install cenitu-table
25
- ```
26
-
27
- ## Kullanım
28
-
29
- ```ts
30
- import { CenituGrid, trTR } from 'cenitu-table';
31
-
32
- const grid = new CenituGrid(document.getElementById('grid')!, {
33
- data: [
34
- ['Ürün', 'Adet', 'Fiyat', 'Tutar'],
35
- ['Vida', 10, 2.5, '=B2*C2'],
36
- ['Somun', 20, 1.25, '=B3*C3'],
37
- ],
38
- fixedRowsTop: 1,
39
- columnSorting: true,
40
- filters: true,
41
- contextMenu: true,
42
- locale: 'tr-TR',
43
- language: trTR,
44
- columns: [
45
- { type: 'dropdown', source: ['Vida', 'Somun', 'Pul'] },
46
- { type: 'numeric', validator: (v) => Number(v) > 0 || 'Pozitif olmalı' },
47
- { type: 'numeric', numericFormat: { style: 'currency', currency: 'TRY' } },
48
- { type: 'numeric', numericFormat: { style: 'currency', currency: 'TRY' }, readOnly: true },
49
- ],
50
- height: 400,
51
- });
52
-
53
- grid.addHook('afterChange', (changes, source) => console.log(changes, source));
54
- grid.getDataAtCell(1, 3); // 25 (hesaplanmış değer)
55
- grid.getSourceDataAtCell(1, 3); // "=B2*C2"
56
- ```
57
-
58
- ### Dizi yerine nesneler
59
-
60
- ```ts
61
- const siparisler = [{ urun: 'Vida', adet: 10, musteri: { ad: 'Acme' } }];
62
-
63
- new CenituGrid(el, {
64
- data: siparisler,
65
- columns: [{ data: 'urun' }, { data: 'adet', type: 'numeric' }, { data: 'musteri.ad', title: 'Müşteri' }],
66
- dataSchema: () => ({ urun: '', adet: 0, musteri: { ad: '' } }),
67
- });
68
- // Düzenlemeler geri yazılır: hücre değişince siparisler[0].adet de değişir.
69
- ```
70
-
71
- Formül hücreleri nesneye hesaplanmış değeri yazar ve güncel tutar; böylece alanlarınız düz değer olarak kalır. Formül metnini saklamak için `bindFormulas: 'text'` kullanın.
72
-
73
- ### Birden fazla sayfa
74
-
75
- Tek bir motoru birden fazla grid'e verin (her grid bir sayfa):
76
-
77
- ```ts
78
- import { CenituGrid, FormulaEngine } from 'cenitu-table';
79
-
80
- const engine = FormulaEngine.buildEmpty();
81
- engine.addNamedExpression('KdvOrani', 0.2);
82
- new CenituGrid(el1, { formulas: engine, sheetName: 'Siparişler', data: siparisler });
83
- new CenituGrid(el2, { formulas: engine, sheetName: 'Özet', data: [['=SUM(Siparişler!F2:F100)*(1+KdvOrani)']] });
84
- ```
85
-
86
- ### Dışa aktarma
87
-
88
- ```ts
89
- grid.downloadCSV('siparisler.csv'); // tr-TR'de ";" ayraç ve "," ondalık
90
- await grid.downloadXLSX('kitap.xlsx', [ozetGrid]); // birden fazla sayfa tek dosyada
91
- ```
92
-
93
- ### React
94
-
95
- ```tsx
96
- import { CenituTable } from 'cenitu-table/react';
97
-
98
- <CenituTable ref={gridRef} data={data} fixedRowsTop={1} onChange={(changes) => kaydet(changes)} />;
99
- ```
100
-
101
- ### Yalnızca formül motoru
102
-
103
- ```ts
104
- import { FormulaEngine, registerFunction } from 'cenitu-table';
105
-
106
- const engine = FormulaEngine.buildFromArray([[1, 2, '=A1+B1']]);
107
- engine.setCellContents({ row: 0, col: 0 }, 10); // değişen hücreleri döndürür
108
- engine.getCellValue({ row: 0, col: 2 }); // 12
109
- registerFunction('DOUBLE', { minArgs: 1, maxArgs: 1, impl: ([x]) => (x as number) * 2 });
110
- ```
111
-
112
- ## Geliştirme
113
-
114
- ```bash
115
- npm install
116
- npm run dev # demo: http://localhost:5180
117
- npm test # birim testleri (vitest + jsdom)
118
- npm run test:e2e # tarayıcı testleri (Playwright: Chromium, Firefox, WebKit)
119
- npm run build # tip denetimi, ESM/CJS paketleri ve dist/ altında .d.ts
120
- ```
121
-
122
- Bkz. [CONTRIBUTING.md](CONTRIBUTING.md). Önemli değişiklikler [CHANGELOG.md](CHANGELOG.md)'de.
123
-
124
- ## Lisans
125
-
126
- [MIT](LICENSE)
1
+ # CenituTable
2
+
3
+ Spreadsheet benzeri bir data grid ve ona bağlı, çok sayfalı bir formül motoru. TypeScript ile yazıldı, **çalışma zamanı bağımlılığı yok**. İsteğe bağlı bir React bileşeni de içeriyor.
4
+
5
+ **[Canlı demo](https://cenitu.github.io/cenitu-table/)** · [English](README.md) · [Tasarım notları](docs/SPEC.md)
6
+
7
+ ## Özellikler
8
+
9
+ - **Grid:** sanal kaydırma (yalnızca görünen hücreler DOM'da), klavye gezinmesi (Ctrl+ok ile veri bloğu sonuna atlama), Excel uyumlu, biçimli kopyala/kes/yapıştır, geri al/yinele, sütun ve satır boyutlandırma, satır/sütun ekleme-silme, sağ tık menüsü.
10
+ - **Sıralama ve filtre:** birden fazla sütuna göre sıralama, sütun menüsünden koşula ya da değere göre filtre. Yalnızca görünüm değişir; veri ve formüller yerinde kalır.
11
+ - **Bul ve değiştir:** Ctrl+F / Ctrl+H; ekran dışındaki satırlarda da çalışır, görünen değerlerde ya da formüllerde arar.
12
+ - **Formül çubuğu:** aktif hücrenin adresi ve içeriği grid'in üstünde gösterilir, buradan düzenlenebilir.
13
+ - **Doldurma tutamacı:** sayı ve metin serileri, göreli kayan formüller, çift tıklamayla otomatik doldurma, Ctrl+D.
14
+ - **Hücre tipleri:** sayı (para, yüzde gibi Intl biçimleri), tarih, onay kutusu, açılır liste; doğrulayıcılar, salt-okunur hücreler, özel çiziciler.
15
+ - **Biçimlendirme:** kalın, italik, altı çizili, üstü çizili, renkler, hizalama, metin kaydırma (Ctrl+B / I / U); hücre ya da tüm satır için koşullu biçimlendirme.
16
+ - **Yerleşim:** sabit satır ve sütunlar, birleştirilmiş hücreler, gizli sütunlar, sürükleyerek sütun taşıma.
17
+ - **Formül motoru:** 100'den fazla fonksiyon (SUM, IF, XLOOKUP, SUMIFS, TEXT, tarih fonksiyonları…), taşan dinamik diziler (FILTER, SORT, UNIQUE, SEQUENCE), sayfalar arası referanslar (`'Diğer Sayfa'!A1`), isimli ifadeler, artımlı yeniden hesaplama, döngü tespiti.
18
+ - **Sunucu modu:** sayfalama, sıralama ve süzme arka uçta; sayfa çubuğu ile metin, liste, tarih ve evet/hayır süzgeçleri.
19
+ - **Veri bağlama:** satırlar dizi ya da nesne olarak verilebilir. Nesnelerde sütunlar alan yoluna bağlanır ve düzenlemeler nesnelerinize geri yazılır.
20
+ - **İçe ve dışa aktarma:** XLSX okuma ve yazma (formüller, biçimler, stiller, sabit bölmeler, birleştirmeler), formül enjeksiyonuna karşı korumalı CSV; hiçbir kütüphane kullanmadan.
21
+ - **Erişilebilirlik:** ARIA grid rolleri, ekran okuyucuya duyurulan aktif hücre.
22
+ - **React:** `cenitu-table/react` içinden `<CenituTable />`.
23
+
24
+ ## Kurulum
25
+
26
+ ```bash
27
+ npm install cenitu-table
28
+ ```
29
+
30
+ ## Kullanım
31
+
32
+ ```ts
33
+ import { CenituGrid, trTR } from 'cenitu-table';
34
+
35
+ const grid = new CenituGrid(document.getElementById('grid')!, {
36
+ data: [
37
+ ['Ürün', 'Adet', 'Fiyat', 'Tutar'],
38
+ ['Vida', 10, 2.5, '=B2*C2'],
39
+ ['Somun', 20, 1.25, '=B3*C3'],
40
+ ],
41
+ fixedRowsTop: 1,
42
+ columnSorting: true,
43
+ filters: true,
44
+ contextMenu: true,
45
+ locale: 'tr-TR',
46
+ language: trTR,
47
+ columns: [
48
+ { type: 'dropdown', source: ['Vida', 'Somun', 'Pul'] },
49
+ { type: 'numeric', validator: (v) => Number(v) > 0 || 'Pozitif olmalı' },
50
+ { type: 'numeric', numericFormat: { style: 'currency', currency: 'TRY' } },
51
+ { type: 'numeric', numericFormat: { style: 'currency', currency: 'TRY' }, readOnly: true },
52
+ ],
53
+ height: 400,
54
+ });
55
+
56
+ grid.addHook('afterChange', (changes, source) => console.log(changes, source));
57
+ grid.getDataAtCell(1, 3); // 25 (hesaplanmış değer)
58
+ grid.getSourceDataAtCell(1, 3); // "=B2*C2"
59
+ ```
60
+
61
+ ### Dizi yerine nesneler
62
+
63
+ ```ts
64
+ const siparisler = [{ urun: 'Vida', adet: 10, musteri: { ad: 'Acme' } }];
65
+
66
+ new CenituGrid(el, {
67
+ data: siparisler,
68
+ columns: [{ data: 'urun' }, { data: 'adet', type: 'numeric' }, { data: 'musteri.ad', title: 'Müşteri' }],
69
+ dataSchema: () => ({ urun: '', adet: 0, musteri: { ad: '' } }),
70
+ });
71
+ // Düzenlemeler geri yazılır: hücre değişince siparisler[0].adet de değişir.
72
+ ```
73
+
74
+ Formül hücreleri nesneye hesaplanmış değeri yazar ve güncel tutar; böylece alanlarınız düz değer olarak kalır. Formül metnini saklamak için `bindFormulas: 'text'` kullanın.
75
+
76
+ ### Birden fazla sayfa
77
+
78
+ Tek bir motoru birden fazla grid'e verin (her grid bir sayfa):
79
+
80
+ ```ts
81
+ import { CenituGrid, FormulaEngine } from 'cenitu-table';
82
+
83
+ const engine = FormulaEngine.buildEmpty();
84
+ engine.addNamedExpression('KdvOrani', 0.2);
85
+ new CenituGrid(el1, { formulas: engine, sheetName: 'Siparişler', data: siparisler });
86
+ new CenituGrid(el2, { formulas: engine, sheetName: 'Özet', data: [['=SUM(Siparişler!F2:F100)*(1+KdvOrani)']] });
87
+ ```
88
+
89
+ ### Dışa aktarma
90
+
91
+ ```ts
92
+ grid.downloadCSV('siparisler.csv'); // tr-TR'de ";" ayraç ve "," ondalık
93
+ await grid.downloadXLSX('kitap.xlsx', [ozetGrid]); // birden fazla sayfa tek dosyada
94
+ ```
95
+
96
+ ### İçe aktarma
97
+
98
+ ```ts
99
+ await grid.importXLSX(dosya, { sheet: 'Siparişler' }); // File, Blob ya da bayt dizisi; varsayılan ilk sayfa
100
+ ```
101
+
102
+ Bütün çalışma kitabını yüklemek için tüm grid'lere tek motor verin; böylece formüller diğer sayfalara ulaşır:
103
+
104
+ ```ts
105
+ import { CenituGrid, readXLSX, workbookEngine } from 'cenitu-table';
106
+
107
+ const kitap = await readXLSX(dosya);
108
+ const engine = workbookEngine(kitap);
109
+ kitap.sheets.forEach((sayfa, i) => {
110
+ new CenituGrid(alanlar[i], { formulas: engine, sheetName: sayfa.name }).loadSheet(sayfa);
111
+ });
112
+ ```
113
+
114
+ Okunanlar: değerler, formüller, sayı biçimleri, yazı tipleri, dolgular, hizalama, sütun genişlikleri, satır yükseklikleri, gizli sütunlar, sabit bölmeler, birleştirmeler ve tanımlı adlar. Okunmayanlar: grafikler, resimler, yorumlar, koşullu biçimler, veri doğrulama ve gizli satırlar (görünür hale gelir). Dosyada motorun bilmediği fonksiyonlar varsa `formulas: 'values'` ile formüller yerine dosyadaki sonuçları alabilirsiniz.
115
+
116
+ ### Sunucu modu
117
+
118
+ Tarayıcıya sığmayacak listelerde grid hangi satırlara ihtiyacı olduğunu bildirir, veriyi uygulamanız getirir. Grid kendi başına sıralama ya da süzme yapmaz.
119
+
120
+ ```tsx
121
+ <CenituTable
122
+ dataMode="server"
123
+ rowKey="id"
124
+ data={sayfa.items}
125
+ totalCount={sayfa.totalCount}
126
+ loading={yukleniyor}
127
+ loadError={hataVar}
128
+ query={sorgu}
129
+ onQueryChange={setSorgu}
130
+ columns={[
131
+ { id: 'orderDate', data: 'orderDate', sortable: true, serverFilter: { kind: 'date' } },
132
+ { id: 'status', data: 'status', serverFilter: { kind: 'list', options: durumlar } },
133
+ { id: 'partner', data: 'partner.name' },
134
+ ]}
135
+ />
136
+ ```
137
+
138
+ `query` içinde `page`, `pageSize`, `sort: [{ field, desc }]`, `filters` ve `search` bulunur. Alanlar her zaman kolon kimliğidir, bu yüzden kolon gizlemek ya da taşımak sorguyu bozmaz. Süzgeç türleri `text`, `list`, `date` (`from`, `to`) ve `boolean`'dır. React olmadan `afterQueryChange` olayını dinleyip satırları `grid.setPageRows(satirlar, toplam)` ile verin.
139
+
140
+ Bilmeniz gerekenler:
141
+
142
+ - Yalnızca `sortable` ya da `serverFilter` tanımlı kolonlarda menü çıkar.
143
+ - Sıralama, süzgeç ve sayfa boyutu değişince 1. sayfaya dönülür.
144
+ - Yeni satırlar gelince sıralama işaretleri, süzgeçler, kolon düzeni, kaydırma konumu ve `rowKey` ile seçim korunur.
145
+ - İstekleri uygulama yaptığı için eski yanıtları yok saymak da uygulamanın işidir.
146
+ - Değişiklik olayları `rowKey` ve `columnId` taşır; düzenlemeleri sayfa değişmeden önce de dahil kaydetmek uygulamaya aittir.
147
+ - Geri alma geçmişi her yeni sayfada sıfırlanır.
148
+ - `formulas` verilmedikçe formüller kapalıdır; açılırsa yalnızca yüklü sayfayı görür.
149
+ - Tümünü seçme, bul ve değiştir, CSV/XLSX dışa aktarma yalnızca yüklü sayfayı kapsar.
150
+ - Satırlar yerelde eklenip silinemez. Sığmayan yapıştırma kesilir ve `afterPasteClipped` ile bildirilir.
151
+
152
+ ### Satır olayları ve kolon düzeni
153
+
154
+ ```tsx
155
+ <CenituTable
156
+ rowKey="id"
157
+ columnLayout={kayitli}
158
+ onColumnLayoutChange={(duzen) => localStorage.setItem('siparisler', JSON.stringify(duzen))}
159
+ onRowDoubleClick={({ rowKey }) => {
160
+ siparisiAc(rowKey);
161
+ return false; // hücre editörünü kapalı tutar
162
+ }}
163
+ />
164
+ ```
165
+
166
+ Kolon düzeni için kolon kimliği gerekir (`columns[i].id` ya da `data`). Geri yüklerken kaldırılmış kolonlar atlanır, yeni kolonlar kayıtlı olanların sonrasında kalır. Tarayıcıdaki gibi çift tıklama iki satır tıklaması da üretir. `setColumnLayout` kolon taşırsa geri alma geçmişini temizler.
167
+
168
+ ### Bul, formül çubuğu, çok sütunlu sıralama
169
+
170
+ ```ts
171
+ new CenituGrid(el, { data, search: true, formulaBar: true, columnSorting: true });
172
+
173
+ grid.openSearch(true); // ya da `search: true` ile Ctrl+F / Ctrl+H
174
+ grid.findNext('vida', { matchCase: false });
175
+ grid.replaceAll('A1', 'B1', { lookIn: 'formulas' }); // tek geri alma adımı; değişen hücre sayısını döndürür
176
+ grid.sortBy([{ col: 2, order: 'desc' }, { col: 0, order: 'asc' }]);
177
+ ```
178
+
179
+ `lookIn: 'formulas'` olmadan değiştirme işlemi formül hücrelerine dokunmaz. `formulaBar`, grid'in `height` değerine ek olarak üstte bir satır kaplar. Bir sütun sıralıyken diğer sütunların menüsünde "Sonra sırala" seçenekleri çıkar.
180
+
181
+ ### React
182
+
183
+ ```tsx
184
+ import { CenituTable } from 'cenitu-table/react';
185
+
186
+ <CenituTable ref={gridRef} data={data} fixedRowsTop={1} onChange={(changes) => kaydet(changes)} />;
187
+ ```
188
+
189
+ ### Yalnızca formül motoru
190
+
191
+ ```ts
192
+ import { FormulaEngine, registerFunction } from 'cenitu-table';
193
+
194
+ const engine = FormulaEngine.buildFromArray([[1, 2, '=A1+B1']]);
195
+ engine.setCellContents({ row: 0, col: 0 }, 10); // değişen hücreleri döndürür
196
+ engine.getCellValue({ row: 0, col: 2 }); // 12
197
+ registerFunction('DOUBLE', { minArgs: 1, maxArgs: 1, impl: ([x]) => (x as number) * 2 });
198
+ ```
199
+
200
+ ### Yerelleştirme
201
+
202
+ ```ts
203
+ import { trTR } from 'cenitu-table';
204
+
205
+ new CenituGrid(el, { locale: 'tr-TR', language: trTR, data });
206
+ ```
207
+
208
+ `locale` sayı ve tarih biçimini belirler; `language` arayüz metinlerini taşır (varsayılan İngilizce, Türkçe dahil).
209
+
210
+ ## Geliştirme
211
+
212
+ ```bash
213
+ npm install
214
+ npm run dev # demo: http://localhost:5180
215
+ npm test # birim testleri (vitest + jsdom)
216
+ npm run test:e2e # tarayıcı testleri (Playwright: Chromium, Firefox, WebKit)
217
+ npm run build # tip denetimi, ESM/CJS paketleri ve dist/ altında .d.ts
218
+ ```
219
+
220
+ Bkz. [CONTRIBUTING.md](CONTRIBUTING.md). Önemli değişiklikler [CHANGELOG.md](CHANGELOG.md)'de.
221
+
222
+ ## Lisans
223
+
224
+ [MIT](LICENSE)
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-BJIaMXd1.cjs");exports.CSV_MIME=e.CSV_MIME;exports.CellError=e.CellError;exports.CenituGrid=e.CenituGrid;exports.FormulaEngine=e.FormulaEngine;exports.FormulaSyntaxError=e.FormulaSyntaxError;exports.MAX_COLS=e.MAX_COLS;exports.MAX_ROWS=e.MAX_ROWS;exports.RangeValue=e.RangeValue;exports.SHEET_SPAN=e.SHEET_SPAN;exports.XLSX_MIME=e.XLSX_MIME;exports.cellKey=e.cellKey;exports.columnIndex=e.columnIndex;exports.columnLabel=e.columnLabel;exports.crc32=e.crc32;exports.dateCodeFromPattern=e.dateCodeFromPattern;exports.dateToSerial=e.dateToSerial;exports.downloadBlob=e.downloadBlob;exports.enUS=e.enUS;exports.formatDateCode=e.formatDateCode;exports.formatSerialDate=e.formatSerialDate;exports.getRegisteredFunctionNames=e.getRegisteredFunctionNames;exports.inverseMove=e.inverseMove;exports.isDateFormat=e.isDateFormat;exports.isError=e.isError;exports.isFormula=e.isFormula;exports.keyToAddress=e.keyToAddress;exports.normalizeRange=e.normalizeRange;exports.numberFormatFromMeta=e.numberFormatFromMeta;exports.parseA1=e.parseA1;exports.parseDateString=e.parseDateString;exports.parseFormula=e.parseFormula;exports.pxToColWidth=e.pxToColWidth;exports.quoteSheetName=e.quoteSheetName;exports.rangeContains=e.rangeContains;exports.registerFunction=e.registerFunction;exports.sanitizeSheetNames=e.sanitizeSheetNames;exports.serialToDate=e.serialToDate;exports.setClock=e.setClock;exports.setRandom=e.setRandom;exports.toA1=e.toA1;exports.toCSV=e.toCSV;exports.toXLSX=e.toXLSX;exports.toXLSXCompressed=e.toXLSXCompressed;exports.trTR=e.trTR;exports.unparse=e.unparse;exports.unregisterFunction=e.unregisterFunction;exports.xlsxParts=e.xlsxParts;exports.zipDeflate=e.zipDeflate;exports.zipStore=e.zipStore;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-Bidvqh7P.cjs");exports.CSV_MIME=e.CSV_MIME;exports.CellError=e.CellError;exports.CenituGrid=e.CenituGrid;exports.FormulaEngine=e.FormulaEngine;exports.FormulaSyntaxError=e.FormulaSyntaxError;exports.MAX_COLS=e.MAX_COLS;exports.MAX_ROWS=e.MAX_ROWS;exports.RangeValue=e.RangeValue;exports.SHEET_SPAN=e.SHEET_SPAN;exports.XLSX_MIME=e.XLSX_MIME;exports.ZipReader=e.ZipReader;exports.cellKey=e.cellKey;exports.columnIndex=e.columnIndex;exports.columnLabel=e.columnLabel;exports.crc32=e.crc32;exports.dateCodeFromPattern=e.dateCodeFromPattern;exports.dateToSerial=e.dateToSerial;exports.downloadBlob=e.downloadBlob;exports.enUS=e.enUS;exports.formatDateCode=e.formatDateCode;exports.formatSerialDate=e.formatSerialDate;exports.getRegisteredFunctionNames=e.getRegisteredFunctionNames;exports.inverseMove=e.inverseMove;exports.isDateFormat=e.isDateFormat;exports.isError=e.isError;exports.isFormula=e.isFormula;exports.keyToAddress=e.keyToAddress;exports.normalizeRange=e.normalizeRange;exports.numberFormatFromMeta=e.numberFormatFromMeta;exports.parseA1=e.parseA1;exports.parseDateString=e.parseDateString;exports.parseFormula=e.parseFormula;exports.pxToColWidth=e.pxToColWidth;exports.quoteSheetName=e.quoteSheetName;exports.rangeContains=e.rangeContains;exports.readXLSX=e.readXLSX;exports.registerFunction=e.registerFunction;exports.sanitizeSheetNames=e.sanitizeSheetNames;exports.serialToDate=e.serialToDate;exports.setClock=e.setClock;exports.setRandom=e.setRandom;exports.toA1=e.toA1;exports.toCSV=e.toCSV;exports.toXLSX=e.toXLSX;exports.toXLSXCompressed=e.toXLSXCompressed;exports.trTR=e.trTR;exports.unparse=e.unparse;exports.unregisterFunction=e.unregisterFunction;exports.workbookEngine=e.workbookEngine;exports.xlsxParts=e.xlsxParts;exports.zipDeflate=e.zipDeflate;exports.zipStore=e.zipStore;
@@ -1,4 +1,4 @@
1
- import { a as e, b as r, C as o, F as t, c as n, M as i, d as l, R as m, S, X as u, e as d, f as C, g as F, h as c, j as g, k as p, l as E, m as M, n as X, o as x, p as A, q as D, r as R, s as T, t as L, u as f, v as z, w as N, x as _, y as b, z as h, A as y, B as I, D as P, E as V, G as k, H as v, I as W, J as q, K as w, L as B, N as G, P as H, Q as K, T as O, U, V as j, W as J, Y as Q } from "./index-DG98ykBX.js";
1
+ import { a as e, b as r, C as o, F as t, c as n, M as i, d as l, R as m, S, X as d, Z as u, e as C, f as F, g, h as p, j as X, k as c, l as E, m as M, n as R, o as x, p as A, q as D, r as L, s as T, t as _, u as b, v as f, w as k, x as z, y as N, z as h, A as y, B as I, D as P, E as V, G as v, H as w, I as W, J as q, K as B, L as G, N as H, P as K, Q as O, T as U, U as Z, V as j, W as J, Y as Q, _ as Y, $ } from "./index-BIH30fQ2.js";
2
2
  export {
3
3
  e as CSV_MIME,
4
4
  r as CellError,
@@ -9,44 +9,47 @@ export {
9
9
  l as MAX_ROWS,
10
10
  m as RangeValue,
11
11
  S as SHEET_SPAN,
12
- u as XLSX_MIME,
13
- d as cellKey,
14
- C as columnIndex,
15
- F as columnLabel,
16
- c as crc32,
17
- g as dateCodeFromPattern,
18
- p as dateToSerial,
12
+ d as XLSX_MIME,
13
+ u as ZipReader,
14
+ C as cellKey,
15
+ F as columnIndex,
16
+ g as columnLabel,
17
+ p as crc32,
18
+ X as dateCodeFromPattern,
19
+ c as dateToSerial,
19
20
  E as downloadBlob,
20
21
  M as enUS,
21
- X as formatDateCode,
22
+ R as formatDateCode,
22
23
  x as formatSerialDate,
23
24
  A as getRegisteredFunctionNames,
24
25
  D as inverseMove,
25
- R as isDateFormat,
26
+ L as isDateFormat,
26
27
  T as isError,
27
- L as isFormula,
28
- f as keyToAddress,
29
- z as normalizeRange,
30
- N as numberFormatFromMeta,
31
- _ as parseA1,
32
- b as parseDateString,
28
+ _ as isFormula,
29
+ b as keyToAddress,
30
+ f as normalizeRange,
31
+ k as numberFormatFromMeta,
32
+ z as parseA1,
33
+ N as parseDateString,
33
34
  h as parseFormula,
34
35
  y as pxToColWidth,
35
36
  I as quoteSheetName,
36
37
  P as rangeContains,
37
- V as registerFunction,
38
- k as sanitizeSheetNames,
39
- v as serialToDate,
40
- W as setClock,
41
- q as setRandom,
42
- w as toA1,
43
- B as toCSV,
44
- G as toXLSX,
45
- H as toXLSXCompressed,
46
- K as trTR,
47
- O as unparse,
48
- U as unregisterFunction,
49
- j as xlsxParts,
50
- J as zipDeflate,
51
- Q as zipStore
38
+ V as readXLSX,
39
+ v as registerFunction,
40
+ w as sanitizeSheetNames,
41
+ W as serialToDate,
42
+ q as setClock,
43
+ B as setRandom,
44
+ G as toA1,
45
+ H as toCSV,
46
+ K as toXLSX,
47
+ O as toXLSXCompressed,
48
+ U as trTR,
49
+ Z as unparse,
50
+ j as unregisterFunction,
51
+ J as workbookEngine,
52
+ Q as xlsxParts,
53
+ Y as zipDeflate,
54
+ $ as zipStore
52
55
  };