cenitu-table 0.0.0-stage → 0.2.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/LICENSE +21 -0
- package/README.md +137 -3
- package/README.tr.md +126 -0
- package/dist/cenitu-table.cjs +1 -0
- package/dist/cenitu-table.js +52 -0
- package/dist/index-BJIaMXd1.cjs +164 -0
- package/dist/index-DG98ykBX.js +5230 -0
- package/dist/react.cjs +1 -0
- package/dist/react.js +70 -0
- package/dist/types/export/csv.d.ts +26 -0
- package/dist/types/export/download.d.ts +3 -0
- package/dist/types/export/index.d.ts +6 -0
- package/dist/types/export/numberFormat.d.ts +12 -0
- package/dist/types/export/styles.d.ts +14 -0
- package/dist/types/export/types.d.ts +48 -0
- package/dist/types/export/xlsx.d.ts +24 -0
- package/dist/types/export/xml.d.ts +5 -0
- package/dist/types/export/zip.d.ts +20 -0
- package/dist/types/formula/address.d.ts +25 -0
- package/dist/types/formula/array-functions.d.ts +1 -0
- package/dist/types/formula/arrays.d.ts +13 -0
- package/dist/types/formula/ast.d.ts +82 -0
- package/dist/types/formula/coerce.d.ts +12 -0
- package/dist/types/formula/criteria-functions.d.ts +1 -0
- package/dist/types/formula/date-functions.d.ts +1 -0
- package/dist/types/formula/dates.d.ts +23 -0
- package/dist/types/formula/engine.d.ts +225 -0
- package/dist/types/formula/environment.d.ts +9 -0
- package/dist/types/formula/functions.d.ts +63 -0
- package/dist/types/formula/index.d.ts +10 -0
- package/dist/types/formula/interpreter.d.ts +23 -0
- package/dist/types/formula/lexer.d.ts +46 -0
- package/dist/types/formula/logic-functions.d.ts +1 -0
- package/dist/types/formula/lookup-functions.d.ts +1 -0
- package/dist/types/formula/math-functions.d.ts +1 -0
- package/dist/types/formula/parser.d.ts +12 -0
- package/dist/types/formula/restructure.d.ts +98 -0
- package/dist/types/formula/stat-functions.d.ts +1 -0
- package/dist/types/formula/text-format.d.ts +14 -0
- package/dist/types/formula/text-functions.d.ts +2 -0
- package/dist/types/formula/values.d.ts +41 -0
- package/dist/types/grid/autofill.d.ts +11 -0
- package/dist/types/grid/axis.d.ts +21 -0
- package/dist/types/grid/binding.d.ts +35 -0
- package/dist/types/grid/cellTypes.d.ts +82 -0
- package/dist/types/grid/columnMenu.d.ts +17 -0
- package/dist/types/grid/contextMenu.d.ts +15 -0
- package/dist/types/grid/filters.d.ts +14 -0
- package/dist/types/grid/grid.d.ts +380 -0
- package/dist/types/grid/merges.d.ts +24 -0
- package/dist/types/grid/messages.d.ts +47 -0
- package/dist/types/grid/rowMapper.d.ts +44 -0
- package/dist/types/grid/styles.d.ts +1 -0
- package/dist/types/grid/tsv.d.ts +3 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/react/index.d.ts +19 -0
- package/package.json +76 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Cenitu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,137 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# CenituTable
|
|
2
|
+
|
|
3
|
+
[](https://github.com/cenitu/cenitu-table/actions/workflows/ci.yml)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
|
|
6
|
+
A spreadsheet-like data grid with a built-in, multi-sheet formula engine. Written in TypeScript with **zero runtime dependencies**; an optional React component is included.
|
|
7
|
+
|
|
8
|
+
**[Live demo](https://cenitu.github.io/cenitu-table/)** · [Türkçe](README.tr.md) · [Design notes](docs/SPEC.md)
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- **Grid:** virtual scrolling (only visible cells are in the DOM), keyboard navigation (Ctrl+arrows jump to data edges), spreadsheet-compatible copy/cut/paste (TSV), undo/redo, column and row resizing, row/column insert and delete, right-click context menu.
|
|
13
|
+
- **Sorting and filtering:** a column menu with condition and value filters. Only the view changes; data and formulas stay where they are.
|
|
14
|
+
- **Autofill:** drag the fill handle to continue number and text series and to copy formulas with relative references; double-click to fill down; Ctrl+D.
|
|
15
|
+
- **Cell types:** numeric (Intl formats: currency, percent), date, checkbox, dropdown; validators, read-only cells, custom renderers.
|
|
16
|
+
- **Formatting:** bold, italic, underline, strike-through, colors, alignment, wrapping (Ctrl+B / I / U), conditional formatting for cells or whole rows.
|
|
17
|
+
- **Layout:** frozen rows and columns, merged cells, hidden columns, column drag-and-drop.
|
|
18
|
+
- **Formula engine:** 100+ functions (SUM, IF, XLOOKUP, SUMIFS, TEXT, date functions…), dynamic arrays that spill (FILTER, SORT, UNIQUE, SEQUENCE), cross-sheet references (`'Other sheet'!A1`), named expressions, incremental recalculation, cycle detection.
|
|
19
|
+
- **Data binding:** rows as arrays or as objects bound to columns by property path; edits are written back to your objects.
|
|
20
|
+
- **Export:** CSV (with protection against formula injection) and XLSX (formulas, formats, styles, frozen panes, merges) without any library.
|
|
21
|
+
- **Accessibility:** ARIA grid roles and an announced active cell for screen readers.
|
|
22
|
+
- **React:** `<CenituTable />` from `cenitu-table/react`.
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install cenitu-table
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { CenituGrid } from 'cenitu-table';
|
|
34
|
+
|
|
35
|
+
const grid = new CenituGrid(document.getElementById('grid')!, {
|
|
36
|
+
data: [
|
|
37
|
+
['Product', 'Qty', 'Price', 'Total'],
|
|
38
|
+
['Screw', 10, 2.5, '=B2*C2'],
|
|
39
|
+
['Nut', 20, 1.25, '=B3*C3'],
|
|
40
|
+
],
|
|
41
|
+
fixedRowsTop: 1,
|
|
42
|
+
columnSorting: true,
|
|
43
|
+
filters: true,
|
|
44
|
+
contextMenu: true,
|
|
45
|
+
columns: [
|
|
46
|
+
{ type: 'dropdown', source: ['Screw', 'Nut', 'Washer'] },
|
|
47
|
+
{ type: 'numeric', validator: (v) => Number(v) > 0 || 'Must be positive' },
|
|
48
|
+
{ type: 'numeric', numericFormat: { style: 'currency', currency: 'EUR' } },
|
|
49
|
+
{ type: 'numeric', numericFormat: { style: 'currency', currency: 'EUR' }, readOnly: true },
|
|
50
|
+
],
|
|
51
|
+
height: 400,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
grid.addHook('afterChange', (changes, source) => console.log(changes, source));
|
|
55
|
+
grid.getDataAtCell(1, 3); // 25 (computed value)
|
|
56
|
+
grid.getSourceDataAtCell(1, 3); // "=B2*C2"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Objects instead of arrays
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
const orders = [{ product: 'Screw', qty: 10, customer: { name: 'Acme' } }];
|
|
63
|
+
|
|
64
|
+
new CenituGrid(el, {
|
|
65
|
+
data: orders,
|
|
66
|
+
columns: [{ data: 'product' }, { data: 'qty', type: 'numeric' }, { data: 'customer.name', title: 'Customer' }],
|
|
67
|
+
dataSchema: () => ({ product: '', qty: 0, customer: { name: '' } }),
|
|
68
|
+
});
|
|
69
|
+
// Edits are written back: orders[0].qty changes when the cell changes.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Formula cells write their computed value into the object and keep it current, so your properties stay plain values. Set `bindFormulas: 'text'` to store the formula text instead.
|
|
73
|
+
|
|
74
|
+
### Several sheets
|
|
75
|
+
|
|
76
|
+
Give one engine to several grids — one grid per sheet:
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
import { CenituGrid, FormulaEngine } from 'cenitu-table';
|
|
80
|
+
|
|
81
|
+
const engine = FormulaEngine.buildEmpty();
|
|
82
|
+
engine.addNamedExpression('VatRate', 0.2);
|
|
83
|
+
new CenituGrid(el1, { formulas: engine, sheetName: 'Orders', data: orders });
|
|
84
|
+
new CenituGrid(el2, { formulas: engine, sheetName: 'Summary', data: [['=SUM(Orders!F2:F100)*(1+VatRate)']] });
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Export
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
grid.downloadCSV('orders.csv'); // ";" fields and "," decimals for decimal-comma locales
|
|
91
|
+
await grid.downloadXLSX('book.xlsx', [summaryGrid]); // several sheets in one workbook
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### React
|
|
95
|
+
|
|
96
|
+
```tsx
|
|
97
|
+
import { CenituTable } from 'cenitu-table/react';
|
|
98
|
+
|
|
99
|
+
<CenituTable ref={gridRef} data={data} fixedRowsTop={1} onChange={(changes) => save(changes)} />;
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Formula engine on its own
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
import { FormulaEngine, registerFunction } from 'cenitu-table';
|
|
106
|
+
|
|
107
|
+
const engine = FormulaEngine.buildFromArray([[1, 2, '=A1+B1']]);
|
|
108
|
+
engine.setCellContents({ row: 0, col: 0 }, 10); // returns the changed cells
|
|
109
|
+
engine.getCellValue({ row: 0, col: 2 }); // 12
|
|
110
|
+
registerFunction('DOUBLE', { minArgs: 1, maxArgs: 1, impl: ([x]) => (x as number) * 2 });
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Localization
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
import { trTR } from 'cenitu-table';
|
|
117
|
+
|
|
118
|
+
new CenituGrid(el, { locale: 'tr-TR', language: trTR, data });
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`locale` drives number and date formatting; `language` holds the UI texts (English by default, Turkish included).
|
|
122
|
+
|
|
123
|
+
## Development
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
npm install
|
|
127
|
+
npm run dev # demo at http://localhost:5180
|
|
128
|
+
npm test # unit tests (vitest + jsdom)
|
|
129
|
+
npm run test:e2e # browser tests (Playwright: Chromium, Firefox, WebKit)
|
|
130
|
+
npm run build # type check, ESM/CJS bundles and .d.ts in dist/
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md). Notable changes are listed in [CHANGELOG.md](CHANGELOG.md).
|
|
134
|
+
|
|
135
|
+
## License
|
|
136
|
+
|
|
137
|
+
[MIT](LICENSE)
|
package/README.tr.md
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
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)
|
|
@@ -0,0 +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;
|
|
@@ -0,0 +1,52 @@
|
|
|
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";
|
|
2
|
+
export {
|
|
3
|
+
e as CSV_MIME,
|
|
4
|
+
r as CellError,
|
|
5
|
+
o as CenituGrid,
|
|
6
|
+
t as FormulaEngine,
|
|
7
|
+
n as FormulaSyntaxError,
|
|
8
|
+
i as MAX_COLS,
|
|
9
|
+
l as MAX_ROWS,
|
|
10
|
+
m as RangeValue,
|
|
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,
|
|
19
|
+
E as downloadBlob,
|
|
20
|
+
M as enUS,
|
|
21
|
+
X as formatDateCode,
|
|
22
|
+
x as formatSerialDate,
|
|
23
|
+
A as getRegisteredFunctionNames,
|
|
24
|
+
D as inverseMove,
|
|
25
|
+
R as isDateFormat,
|
|
26
|
+
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,
|
|
33
|
+
h as parseFormula,
|
|
34
|
+
y as pxToColWidth,
|
|
35
|
+
I as quoteSheetName,
|
|
36
|
+
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
|
|
52
|
+
};
|