comins-table 0.2.0 → 0.2.1

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/dist/model.d.ts CHANGED
@@ -86,6 +86,18 @@ export type CominsCopiedCellRange = {
86
86
  text: string;
87
87
  };
88
88
  export type CominsExportFormat = "csv" | "json";
89
+ export type CominsCsvImportRow = {
90
+ cells: readonly string[];
91
+ headers: readonly string[] | null;
92
+ rowIndex: number;
93
+ };
94
+ export type CominsCsvImportOptions<TData> = {
95
+ text: string;
96
+ mapRow: (row: CominsCsvImportRow) => TData;
97
+ hasHeader?: boolean;
98
+ maxCharacters?: number;
99
+ maxCells?: number;
100
+ };
89
101
  export type CominsExportValueSource = "formatted" | "raw";
90
102
  export type CominsExportColumn<TData> = {
91
103
  format?: (row: TData, rowIndex: number) => unknown;
@@ -98,8 +110,26 @@ export type CominsExportRowsOptions<TData> = {
98
110
  columns: Array<CominsExportColumn<TData>>;
99
111
  headerOverrides?: Record<string, string>;
100
112
  rows: readonly TData[];
113
+ metadata?: CominsExportMetadata<TData>;
101
114
  valueSource?: CominsExportValueSource;
102
115
  };
116
+ /** Export-only management columns. These values are never assigned to application rows. */
117
+ export type CominsExportMetadata<TData> = {
118
+ __rowId?: (row: TData, rowIndex: number) => CominsRowId;
119
+ __parentId?: (row: TData, rowIndex: number) => CominsRowId | null;
120
+ __depth?: (row: TData, rowIndex: number) => number;
121
+ __groupId?: (row: TData, rowIndex: number) => CominsRowId | null;
122
+ };
123
+ export type CominsExportTreeOptions<TData> = Omit<CominsExportRowsOptions<TData>, "rows" | "metadata"> & {
124
+ nodes: readonly import("./tree").CominsTreeNode<TData>[];
125
+ getRowId: (row: TData, sourceIndex: number) => CominsRowId;
126
+ };
127
+ export type CominsExportGroupedOptions<TData, TGroup> = Omit<CominsExportRowsOptions<TData>, "metadata"> & {
128
+ groups: readonly TGroup[];
129
+ getGroupId: (group: TGroup) => CominsRowId;
130
+ getRowGroupId: (row: TData, sourceIndex: number) => CominsRowId;
131
+ getRowId: (row: TData, sourceIndex: number) => CominsRowId;
132
+ };
103
133
  export type CominsCellAddress = {
104
134
  columnId: string;
105
135
  rowId: CominsRowId;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,6 @@ export declare function notifyReactStateChanges<TData>(current: CominsTableState
38
38
  columnLayoutChanged?: boolean;
39
39
  }): void;
40
40
  /** Prop synchronization deliberately does not notify data or column layout. */
41
- export declare function notifyReactInputChanges<TData>(current: CominsTableState<TData>, next: CominsTableState<TData>, callbacks: ChangeCallbacks<TData>, isViewport: boolean): void;
41
+ export declare function notifyReactInputChanges<TData>(current: CominsTableState<TData>, next: CominsTableState<TData>, callbacks: ChangeCallbacks<TData>): void;
42
42
  export {};
43
43
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/react/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAsB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAK7F,KAAK,0BAA0B,CAAC,KAAK,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG;IACzG,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC;CAC/H,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;EAUpF;AAED,KAAK,eAAe,CAAC,KAAK,IAAI;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,QAOjM;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,QAKrK"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/react/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAsB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAK7F,KAAK,0BAA0B,CAAC,KAAK,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG;IACzG,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC;CAC/H,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;EAUpF;AAED,KAAK,eAAe,CAAC,KAAK,IAAI;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,QAOjM;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,QAKhJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "comins-table",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "keywords": [
5
5
  "react",
6
6
  "typescript",
package/styles.css CHANGED
@@ -325,6 +325,37 @@
325
325
  min-width: 0;
326
326
  }
327
327
 
328
+ .comins-tree-cell-content--slots {
329
+ box-sizing: border-box;
330
+ display: flex;
331
+ width: 100%;
332
+ }
333
+
334
+ .comins-tree-cell-content--slots > .comins-tree-cell-value {
335
+ flex: 1 1 auto;
336
+ overflow: hidden;
337
+ }
338
+
339
+ .comins-tree-slot {
340
+ align-items: center;
341
+ display: inline-flex;
342
+ min-width: 0;
343
+ }
344
+
345
+ .comins-tree-slot--leading,
346
+ .comins-tree-slot--trailing {
347
+ flex: 0 0 auto;
348
+ }
349
+
350
+ .comins-tree-slot--trailing {
351
+ margin-inline-start: auto;
352
+ }
353
+
354
+ .comins-tree-slot--content {
355
+ max-width: 100%;
356
+ overflow: hidden;
357
+ }
358
+
328
359
  .comins-table__group-row {
329
360
  background: var(--comins-table-group-row-background);
330
361
  color: var(--comins-table-group-row-color);
@@ -1,37 +0,0 @@
1
- //#region src/core/editing/export.ts
2
- function e({ columnOrder: e, columns: t }) {
3
- if (!e?.length) return t;
4
- let n = new Map(t.map((e) => [e.id, e]));
5
- return e.map((e) => n.get(e)).filter((e) => !!e);
6
- }
7
- function t(e) {
8
- return e == null ? "" : typeof e == "string" ? e : typeof e == "number" || typeof e == "boolean" || typeof e == "bigint" ? String(e) : JSON.stringify(e);
9
- }
10
- function n(e) {
11
- let n = t(e);
12
- return /[",\r\n]/u.test(n) ? `"${n.replaceAll("\"", "\"\"")}"` : n;
13
- }
14
- function r(e, t) {
15
- return e.id && t?.[e.id] !== void 0 ? t[e.id] : e.label ?? e.id ?? "";
16
- }
17
- function i(e, t, n, r) {
18
- return r === "formatted" && e.format ? e.format(t, n) : e.value(t, n);
19
- }
20
- function a({ columnOrder: t, columns: a, headerOverrides: o, rows: s, valueSource: c = "raw" }) {
21
- let l = e({
22
- columnOrder: t,
23
- columns: a
24
- });
25
- return [l.map((e) => n(r(e, o))).join(","), ...s.map((e, t) => l.map((r) => n(i(r, e, t, c))).join(","))].join("\n");
26
- }
27
- function o({ columnOrder: t, columns: n, headerOverrides: a, rows: o, valueSource: s = "raw" }) {
28
- let c = e({
29
- columnOrder: t,
30
- columns: n
31
- }), l = o.map((e, t) => Object.fromEntries(c.map((n) => [r(n, a), i(n, e, t, s)])));
32
- return JSON.stringify(l, null, 2);
33
- }
34
- //#endregion
35
- export { o as n, a as t };
36
-
37
- //# sourceMappingURL=export-Cfk5Jz4a.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export-Cfk5Jz4a.js","names":[],"sources":["../src/core/editing/export.ts"],"sourcesContent":["import type { CominsExportColumn, CominsExportRowsOptions, CominsExportValueSource } from \"../model\";\n\nfunction normalizeCominsExportColumns<TData>({\n columnOrder,\n columns,\n}: Pick<CominsExportRowsOptions<TData>, \"columnOrder\" | \"columns\">) {\n if (!columnOrder?.length) {\n return columns;\n }\n\n const columnsById = new Map(columns.map((column) => [column.id, column]));\n\n return columnOrder\n .map((id) => columnsById.get(id))\n .filter((column): column is CominsExportColumn<TData> => Boolean(column));\n}\n\nfunction stringifyCominsExportValue(value: unknown) {\n if (value === null || value === undefined) {\n return \"\";\n }\n if (typeof value === \"string\") {\n return value;\n }\n if (typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\") {\n return String(value);\n }\n\n return JSON.stringify(value);\n}\n\nfunction escapeCominsCsvCell(value: unknown) {\n const text = stringifyCominsExportValue(value);\n\n return /[\",\\r\\n]/u.test(text) ? `\"${text.replaceAll('\"', '\"\"')}\"` : text;\n}\n\nfunction getCominsExportHeader<TData>(column: CominsExportColumn<TData>, headerOverrides?: Record<string, string>) {\n if (column.id && headerOverrides?.[column.id] !== undefined) {\n return headerOverrides[column.id];\n }\n\n return column.label ?? column.id ?? \"\";\n}\n\nfunction getCominsExportValue<TData>(\n column: CominsExportColumn<TData>,\n row: TData,\n rowIndex: number,\n valueSource: CominsExportValueSource,\n) {\n if (valueSource === \"formatted\" && column.format) {\n return column.format(row, rowIndex);\n }\n\n return column.value(row, rowIndex);\n}\n\nexport function exportCominsRowsToCsv<TData>({\n columnOrder,\n columns,\n headerOverrides,\n rows,\n valueSource = \"raw\",\n}: CominsExportRowsOptions<TData>) {\n const exportColumns = normalizeCominsExportColumns({ columnOrder, columns });\n const lines = [\n exportColumns.map((column) => escapeCominsCsvCell(getCominsExportHeader(column, headerOverrides))).join(\",\"),\n ...rows.map((row, rowIndex) =>\n exportColumns.map((column) => escapeCominsCsvCell(getCominsExportValue(column, row, rowIndex, valueSource))).join(\",\"),\n ),\n ];\n\n return lines.join(\"\\n\");\n}\n\nexport function exportCominsRowsToJson<TData>({\n columnOrder,\n columns,\n headerOverrides,\n rows,\n valueSource = \"raw\",\n}: CominsExportRowsOptions<TData>) {\n const exportColumns = normalizeCominsExportColumns({ columnOrder, columns });\n const data = rows.map((row, rowIndex) =>\n Object.fromEntries(\n exportColumns.map((column) => [\n getCominsExportHeader(column, headerOverrides),\n getCominsExportValue(column, row, rowIndex, valueSource),\n ]),\n ),\n );\n\n return JSON.stringify(data, null, 2);\n}\n"],"mappings":";AAEA,SAAS,EAAoC,EAC3C,gBACA,cACkE;CAClE,IAAI,CAAC,GAAa,QAChB,OAAO;CAGT,IAAM,IAAc,IAAI,IAAI,EAAQ,KAAK,MAAW,CAAC,EAAO,IAAI,CAAM,CAAC,CAAC;CAExE,OAAO,EACJ,KAAK,MAAO,EAAY,IAAI,CAAE,CAAC,CAAC,CAChC,QAAQ,MAAgD,EAAQ,CAAO;AAC5E;AAEA,SAAS,EAA2B,GAAgB;CAWlD,OAVI,KAAU,OACL,KAEL,OAAO,KAAU,WACZ,IAEL,OAAO,KAAU,YAAY,OAAO,KAAU,aAAa,OAAO,KAAU,WACvE,OAAO,CAAK,IAGd,KAAK,UAAU,CAAK;AAC7B;AAEA,SAAS,EAAoB,GAAgB;CAC3C,IAAM,IAAO,EAA2B,CAAK;CAE7C,OAAO,YAAY,KAAK,CAAI,IAAI,IAAI,EAAK,WAAW,MAAK,MAAI,EAAE,KAAK;AACtE;AAEA,SAAS,EAA6B,GAAmC,GAA0C;CAKjH,OAJI,EAAO,MAAM,IAAkB,EAAO,QAAQ,KAAA,IACzC,EAAgB,EAAO,MAGzB,EAAO,SAAS,EAAO,MAAM;AACtC;AAEA,SAAS,EACP,GACA,GACA,GACA,GACA;CAKA,OAJI,MAAgB,eAAe,EAAO,SACjC,EAAO,OAAO,GAAK,CAAQ,IAG7B,EAAO,MAAM,GAAK,CAAQ;AACnC;AAEA,SAAgB,EAA6B,EAC3C,gBACA,YACA,oBACA,SACA,iBAAc,SACmB;CACjC,IAAM,IAAgB,EAA6B;EAAE;EAAa;CAAQ,CAAC;CAQ3E,OAAO,CANL,EAAc,KAAK,MAAW,EAAoB,EAAsB,GAAQ,CAAe,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAC3G,GAAG,EAAK,KAAK,GAAK,MAChB,EAAc,KAAK,MAAW,EAAoB,EAAqB,GAAQ,GAAK,GAAU,CAAW,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CACvH,CAGK,CAAA,CAAM,KAAK,IAAI;AACxB;AAEA,SAAgB,EAA8B,EAC5C,gBACA,YACA,oBACA,SACA,iBAAc,SACmB;CACjC,IAAM,IAAgB,EAA6B;EAAE;EAAa;CAAQ,CAAC,GACrE,IAAO,EAAK,KAAK,GAAK,MAC1B,OAAO,YACL,EAAc,KAAK,MAAW,CAC5B,EAAsB,GAAQ,CAAe,GAC7C,EAAqB,GAAQ,GAAK,GAAU,CAAW,CACzD,CAAC,CACH,CACF;CAEA,OAAO,KAAK,UAAU,GAAM,MAAM,CAAC;AACrC"}