@updog/data-editor-wc 0.1.11 → 0.1.13
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 +2 -2
- package/README.md +25 -3
- package/index.d.ts +3 -3
- package/index.js +9 -9
- package/package.json +11 -3
package/LICENSE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright (c) 2026
|
|
1
|
+
Copyright (c) 2026 Updog Software Solutions FZCO. All rights reserved.
|
|
2
2
|
|
|
3
3
|
================================================================================
|
|
4
4
|
UPDOG SDK — COMMERCIAL LICENSE
|
|
@@ -9,7 +9,7 @@ Copyright (c) 2026 Mikhail Kutateladze. All rights reserved.
|
|
|
9
9
|
1. DEFINITIONS
|
|
10
10
|
--------------------------------------------------------------------------------
|
|
11
11
|
|
|
12
|
-
"Licensor"
|
|
12
|
+
"Licensor" Updog Software Solutions FZCO, the copyright holder of the Software.
|
|
13
13
|
|
|
14
14
|
"Software" The Updog SDK, including all source code, compiled artifacts,
|
|
15
15
|
documentation, and associated files distributed as an npm
|
package/README.md
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
# @updog/data-editor-wc
|
|
2
2
|
|
|
3
|
-
Client-side
|
|
3
|
+
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
|
|
|
7
|
-
|
|
7
|
+
@updog/data-editor-wc is a commercial Web Component that embeds a complete data import wizard and spreadsheet editor into any frontend stack. Same engine as the React SDK; framework-agnostic packaging.
|
|
8
|
+
|
|
9
|
+
- **Import** CSV, Excel (XLSX), TSV, JSON, and XML — column auto-matching, value mapping, multi-source merging, validation
|
|
10
|
+
- **Edit** 1M+ rows with undo/redo, find & replace, copy/paste, fill handle, sorting, filtering, and bulk transforms
|
|
11
|
+
- **Submit** clean data through a single `onComplete` callback, classified into insert / update / delete
|
|
12
|
+
|
|
13
|
+
Everything runs client-side. Files are parsed, validated, and edited in the user's browser — no upload server, no data residency, no DPA required.
|
|
14
|
+
|
|
15
|
+
> **Using React?** The same SDK ships as a first-class React component — [`@updog/data-editor`](https://www.npmjs.com/package/@updog/data-editor) — with typed props, hooks-friendly integration, and a smaller bundle (shares your app's React).
|
|
8
16
|
|
|
9
17
|
## Requirements
|
|
10
18
|
|
|
@@ -467,6 +475,20 @@ npm install @updog/data-editor
|
|
|
467
475
|
|
|
468
476
|
See [@updog/data-editor](https://www.npmjs.com/package/@updog/data-editor).
|
|
469
477
|
|
|
478
|
+
## FAQ
|
|
479
|
+
|
|
480
|
+
**Does my user's data leave the browser?** No. Parsing, validation, mapping, and editing all run client-side. Your code controls when (and whether) data is submitted to your own backend.
|
|
481
|
+
|
|
482
|
+
**Which frameworks does the Web Component support?** Vue, Angular, Svelte, vanilla JS, and any other framework that renders HTML. For React, install `@updog/data-editor` instead.
|
|
483
|
+
|
|
484
|
+
**Is there a row limit?** No hard cap. The grid is engineered for 1M+ rows using canvas rendering and virtual scrolling.
|
|
485
|
+
|
|
486
|
+
**Are there per-import or per-row fees?** No. Pricing is flat per production domain. See [updog.tech/#pricing](https://updog.tech/#pricing).
|
|
487
|
+
|
|
488
|
+
**Can I white-label?** Yes, on every plan including the free tier. Strip all Updog branding via CSS theming.
|
|
489
|
+
|
|
490
|
+
**Which file formats are supported?** CSV, Excel (XLSX), TSV, JSON, and XML on both import and export.
|
|
491
|
+
|
|
470
492
|
## License
|
|
471
493
|
|
|
472
494
|
Commercial — see [LICENSE](./LICENSE) for the full terms of the Updog SDK Commercial License v1.0. Contact `admin@updog.tech` for enterprise licensing. Third-party dependencies bundled with this package are listed in `THIRD_PARTY_NOTICES.txt`.
|
package/index.d.ts
CHANGED
|
@@ -1301,10 +1301,10 @@ type DataEditorCommonProps<TRow extends DataEditorRow = DataEditorRow> = DataEdi
|
|
|
1301
1301
|
/** Your Updog license key. Validated on each open. */
|
|
1302
1302
|
apiKey: string;
|
|
1303
1303
|
/**
|
|
1304
|
-
*
|
|
1305
|
-
*
|
|
1304
|
+
* @internal
|
|
1305
|
+
* Reserved for future server-delegated mode. Not part of the public API.
|
|
1306
1306
|
*/
|
|
1307
|
-
|
|
1307
|
+
__server?: ScaleServerConfig;
|
|
1308
1308
|
/**
|
|
1309
1309
|
* Controls what the editor stores in `localStorage`. Set to `false` to
|
|
1310
1310
|
* disable all local storage usage.
|
package/index.js
CHANGED
|
@@ -16137,12 +16137,12 @@ var Ul = "backend", Wl = "manual", Gl = class {
|
|
|
16137
16137
|
_finalize(e, t, n, r) {
|
|
16138
16138
|
let i = this._host;
|
|
16139
16139
|
this._validateFields(e, 0, () => {
|
|
16140
|
-
i.setBulkMode(!1)
|
|
16140
|
+
i.setBulkMode(!1);
|
|
16141
16141
|
for (let t of e) if (t.newValues.size === 0 && t.oldValues.size > 0) for (let e of t.oldValues.keys()) {
|
|
16142
16142
|
let n = i.getRowById(e);
|
|
16143
16143
|
n && t.newValues.set(e, n[t.field]);
|
|
16144
16144
|
}
|
|
16145
|
-
if (e.length === 0) {
|
|
16145
|
+
if (i.flushBulkMode(e), i.skipNotify(!1), e.length === 0) {
|
|
16146
16146
|
i.setPhase("idle"), i.notify(), this._activeDeltas = null;
|
|
16147
16147
|
return;
|
|
16148
16148
|
}
|
|
@@ -25233,7 +25233,7 @@ async function Mv(e) {
|
|
|
25233
25233
|
//#endregion
|
|
25234
25234
|
//#region src/components/DataEditor/ConfirmCompleteDialog/index.tsx
|
|
25235
25235
|
var Nv = ({ open: e, onClose: t, onConfirm: n }) => {
|
|
25236
|
-
let { store: r } = Bd(), { t: i } = k(), { newRowCount: a,
|
|
25236
|
+
let { store: r } = Bd(), { t: i } = k(), { newRowCount: a, dirtyRowCount: o, deletedRowCount: s, errorCount: c } = nl(r), l = o - a, u = c > 0;
|
|
25237
25237
|
return /* @__PURE__ */ (0, E.jsxs)(fs, {
|
|
25238
25238
|
open: e,
|
|
25239
25239
|
onOpenChange: t,
|
|
@@ -25250,9 +25250,9 @@ var Nv = ({ open: e, onClose: t, onConfirm: n }) => {
|
|
|
25250
25250
|
as: "li",
|
|
25251
25251
|
children: i("dataEditor.confirmSubmit.createRows", { count: a })
|
|
25252
25252
|
}),
|
|
25253
|
-
|
|
25253
|
+
l > 0 && /* @__PURE__ */ (0, E.jsx)(W, {
|
|
25254
25254
|
as: "li",
|
|
25255
|
-
children: i("dataEditor.confirmSubmit.updateRows", { count:
|
|
25255
|
+
children: i("dataEditor.confirmSubmit.updateRows", { count: l })
|
|
25256
25256
|
}),
|
|
25257
25257
|
s > 0 && /* @__PURE__ */ (0, E.jsx)(W, {
|
|
25258
25258
|
as: "li",
|
|
@@ -25260,7 +25260,7 @@ var Nv = ({ open: e, onClose: t, onConfirm: n }) => {
|
|
|
25260
25260
|
})
|
|
25261
25261
|
]
|
|
25262
25262
|
}),
|
|
25263
|
-
|
|
25263
|
+
u && /* @__PURE__ */ (0, E.jsx)(Ke, {
|
|
25264
25264
|
color: "yellow",
|
|
25265
25265
|
text: i("dataEditor.confirmSubmit.bannerTitle", { count: c })
|
|
25266
25266
|
})
|
|
@@ -51675,9 +51675,9 @@ function GB(e) {
|
|
|
51675
51675
|
});
|
|
51676
51676
|
}
|
|
51677
51677
|
function KB(e) {
|
|
51678
|
-
let t = e.mode ?? "modal", { t: n, rtl: r } = k(), i = r ? "rtl" : "ltr", a = WB(e.localStorage), o = t === "modal" ? e.open : !0, { isValidating: s, isValid: c, errorCode: l } = jB(e.apiKey, t === "modal" ? o : !0, a.licenseGrant), u = e.
|
|
51678
|
+
let t = e.mode ?? "modal", { t: n, rtl: r } = k(), i = r ? "rtl" : "ltr", a = WB(e.localStorage), o = t === "modal" ? e.open : !0, { isValidating: s, isValid: c, errorCode: l } = jB(e.apiKey, t === "modal" ? o : !0, a.licenseGrant), u = e.__server != null, d = VB({
|
|
51679
51679
|
enabled: !s && c && u,
|
|
51680
|
-
url: e.
|
|
51680
|
+
url: e.__server?.url ?? "",
|
|
51681
51681
|
apiKey: e.apiKey,
|
|
51682
51682
|
primaryKey: e.primaryKey,
|
|
51683
51683
|
columns: e.columns
|
|
@@ -51825,7 +51825,7 @@ var JB = {
|
|
|
51825
51825
|
}));
|
|
51826
51826
|
}
|
|
51827
51827
|
};
|
|
51828
|
-
for (let e of /* @__PURE__ */ "columns.primaryKey.apiKey.className.localStorage.loadData.
|
|
51828
|
+
for (let e of /* @__PURE__ */ "columns.primaryKey.apiKey.className.localStorage.loadData.__server.onComplete.translations.importFormats.exportFormats.remoteSources.enableDeleteRow.enableAddRow.enableCreateColumn.onColumnMatch.onValueMatch.synonyms.sampleData.rowHeight.headerHeight.locale.variant.rtl.readonly.mode.chat".split(".")) Object.defineProperty(YB.prototype, e, {
|
|
51829
51829
|
get() {
|
|
51830
51830
|
return this._props[e];
|
|
51831
51831
|
},
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@updog/data-editor-wc",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Web Component
|
|
3
|
+
"version": "0.1.13",
|
|
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",
|
|
7
7
|
"bugs": {
|
|
@@ -30,9 +30,17 @@
|
|
|
30
30
|
"THIRD_PARTY_NOTICES.txt"
|
|
31
31
|
],
|
|
32
32
|
"keywords": [
|
|
33
|
+
"csv-importer",
|
|
34
|
+
"csv-import",
|
|
35
|
+
"data-import",
|
|
36
|
+
"data-import-sdk",
|
|
37
|
+
"spreadsheet-editor",
|
|
33
38
|
"web-component",
|
|
34
39
|
"custom-element",
|
|
35
|
-
"
|
|
40
|
+
"vue-csv-importer",
|
|
41
|
+
"angular-csv-importer",
|
|
42
|
+
"svelte-csv-importer",
|
|
43
|
+
"client-side",
|
|
36
44
|
"data-editor",
|
|
37
45
|
"csv",
|
|
38
46
|
"xlsx"
|