@updog/data-editor-wc 0.1.30 → 0.1.32
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.md +10 -7
- package/index.js +7 -3
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CSV Importer & Spreadsheet Editor Web Component
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> `@updog/data-editor-wc`: client-side CSV importer and spreadsheet editor SDK, shipped as a Web Component for Vue, Angular, Svelte, and vanilla JS. Your users import files, match columns to your schema, fix errors, and submit clean data. Edits happen inline, in the browser, at 1M+ rows.
|
|
4
4
|
|
|
5
5
|
## What is @updog/data-editor-wc
|
|
6
6
|
|
|
@@ -169,13 +169,13 @@ In inline mode, `show()` / `hide()` and the `open` attribute don't apply. The `c
|
|
|
169
169
|
| `readonly` | `boolean` | No | `false` | Hide all editing UI. |
|
|
170
170
|
| `enableDeleteRow` | `"all"` \| `"new"` \| `false` | No | `false` | Row deletion policy. |
|
|
171
171
|
| `enableAddRow` | `boolean` | No | `true` | Show the "Add row" button. |
|
|
172
|
+
| `enableAddSource` | `boolean` | No | `true` | Show the "Add data source" button. |
|
|
172
173
|
| `enableCreateColumn` | `boolean` | No | `true` | Allow creating columns for unmatched CSV headers during import. |
|
|
173
|
-
| `importFormats` | `DataEditorFormat[]` | No | all | Allowed import formats. `[]` disables import. |
|
|
174
|
-
| `exportFormats` | `DataEditorFormat[]` | No | all | Allowed export formats. `[]` disables export. |
|
|
174
|
+
| `importFormats` | `DataEditorFormat[] \| false` | No | all | Allowed import formats. `false` or `[]` disables import. |
|
|
175
|
+
| `exportFormats` | `DataEditorFormat[] \| false` | No | all | Allowed export formats. `false` or `[]` disables export. |
|
|
175
176
|
| `remoteSources` | `RemoteSource[]` | No | — | Custom import buttons (Google Sheets, S3, etc.) rendered on the upload step. |
|
|
176
177
|
| `rowHeight` | `number` | No | `34` | Row height in pixels. |
|
|
177
178
|
| `headerHeight` | `number` | No | `36` | Header height in pixels. |
|
|
178
|
-
| `server` | `DataEditorServer` | No | — | Server-delegated mode: SDK renders, your backend handles queries and mutations. |
|
|
179
179
|
| `chat` | `DataEditorChat` | No | — | Bring-your-own AI chat panel. |
|
|
180
180
|
| `onColumnMatch` | `(headers, columns) => ...` | No | — | Override import column matching. |
|
|
181
181
|
| `onValueMatch` | `(valuesToMatch) => ...` | No | — | Override import value matching for `select` columns. |
|
|
@@ -236,6 +236,9 @@ editor.columns = [
|
|
|
236
236
|
// Sidebar filter control.
|
|
237
237
|
filter: { type: "select" },
|
|
238
238
|
|
|
239
|
+
// Allow pinning this column to the leading edge via the header menu. Default true.
|
|
240
|
+
pinnable: true,
|
|
241
|
+
|
|
239
242
|
// Lock cells in this column. `"default"` locks only default-source rows.
|
|
240
243
|
locked: "default",
|
|
241
244
|
},
|
|
@@ -248,7 +251,7 @@ editor.columns = [
|
|
|
248
251
|
|
|
249
252
|
## Built-in Validators
|
|
250
253
|
|
|
251
|
-
Validators are declarative objects passed in the `validators` array on each column.
|
|
254
|
+
Validators are declarative objects passed in the `validators` array on each column. They run on every edit, entirely in the browser.
|
|
252
255
|
|
|
253
256
|
| `type` | Fields | Behavior |
|
|
254
257
|
|---|---|---|
|
|
@@ -291,7 +294,7 @@ A `ValidationError` with `level: "error"` flags the cell in the grid but does **
|
|
|
291
294
|
|
|
292
295
|
### Custom validators
|
|
293
296
|
|
|
294
|
-
For cross-field checks or anything not covered by the built-ins, wrap a `(value, row) => ValidationError | null` function in `{ type: "function", fn }`.
|
|
297
|
+
For cross-field checks or anything not covered by the built-ins, wrap a `(value, row) => ValidationError | null` function in `{ type: "function", fn }`. Use `dependentFields` on the column to trigger re-validation when another column changes.
|
|
295
298
|
|
|
296
299
|
```js
|
|
297
300
|
const endAfterStart = (value, row) => {
|
package/index.js
CHANGED
|
@@ -52038,9 +52038,13 @@ function oV(e) {
|
|
|
52038
52038
|
primaryKey: e.primaryKey,
|
|
52039
52039
|
columns: e.columns
|
|
52040
52040
|
}), [f, p] = (0, _.useState)(e.variant === "uploader"), m = (0, _.useRef)(null), { value: h, setTrue: g, setFalse: v } = ul(!1), y = t === "modal" ? e.onClose : void 0, b = (0, _.useCallback)(() => {
|
|
52041
|
-
let
|
|
52042
|
-
|
|
52043
|
-
}, [
|
|
52041
|
+
let t = m.current?.getSnapshot();
|
|
52042
|
+
t && (t.dirtyRowCount > 0 || t.deletedRowCount > 0) && !e.readonly ? g() : y?.();
|
|
52043
|
+
}, [
|
|
52044
|
+
g,
|
|
52045
|
+
y,
|
|
52046
|
+
e.readonly
|
|
52047
|
+
]), x = (0, _.useCallback)(() => y?.(), [y]), S = n(f ? "dataEditor.modal.importTitle" : "dataEditor.modal.editTitle");
|
|
52044
52048
|
(0, _.useEffect)(() => {
|
|
52045
52049
|
t === "modal" && !o && p(e.variant === "uploader");
|
|
52046
52050
|
}, [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@updog/data-editor-wc",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.32",
|
|
4
4
|
"description": "Client-side CSV importer and spreadsheet editor SDK as a Web Component. Drop into Vue, Angular, Svelte, or vanilla JS. Import CSV, Excel, JSON; edit 1M+ rows entirely in the browser.",
|
|
5
5
|
"author": "Mikhail Kutateladze <admin@updog.tech>",
|
|
6
6
|
"homepage": "https://updog.tech",
|
|
@@ -32,8 +32,11 @@
|
|
|
32
32
|
"keywords": [
|
|
33
33
|
"csv-importer",
|
|
34
34
|
"csv-import",
|
|
35
|
+
"importer",
|
|
35
36
|
"data-import",
|
|
36
37
|
"data-import-sdk",
|
|
38
|
+
"column-mapping",
|
|
39
|
+
"spreadsheet",
|
|
37
40
|
"spreadsheet-editor",
|
|
38
41
|
"web-component",
|
|
39
42
|
"custom-element",
|
|
@@ -43,7 +46,11 @@
|
|
|
43
46
|
"client-side",
|
|
44
47
|
"data-editor",
|
|
45
48
|
"csv",
|
|
46
|
-
"xlsx"
|
|
49
|
+
"xlsx",
|
|
50
|
+
"excel",
|
|
51
|
+
"flatfile-alternative",
|
|
52
|
+
"dromo-alternative",
|
|
53
|
+
"usecsv-alternative"
|
|
47
54
|
],
|
|
48
55
|
"publishConfig": {
|
|
49
56
|
"access": "public",
|