@chainsys/sab-react-grid 1.0.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.
Files changed (33) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +234 -0
  3. package/dist/cjs/SabReactTable.js +1192 -0
  4. package/dist/cjs/SabReactTable.js.map +1 -0
  5. package/dist/cjs/index.js +25 -0
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/utils/exportUtils.js +85 -0
  8. package/dist/cjs/utils/exportUtils.js.map +1 -0
  9. package/dist/cjs/utils/tableColumnResizeUtils.js +153 -0
  10. package/dist/cjs/utils/tableColumnResizeUtils.js.map +1 -0
  11. package/dist/cjs/utils/tableFormatters.js +239 -0
  12. package/dist/cjs/utils/tableFormatters.js.map +1 -0
  13. package/dist/esm/SabReactTable.d.ts +46 -0
  14. package/dist/esm/SabReactTable.d.ts.map +1 -0
  15. package/dist/esm/SabReactTable.js +1163 -0
  16. package/dist/esm/SabReactTable.js.map +1 -0
  17. package/dist/esm/index.d.ts +10 -0
  18. package/dist/esm/index.d.ts.map +1 -0
  19. package/dist/esm/index.js +9 -0
  20. package/dist/esm/index.js.map +1 -0
  21. package/dist/esm/utils/exportUtils.d.ts +17 -0
  22. package/dist/esm/utils/exportUtils.d.ts.map +1 -0
  23. package/dist/esm/utils/exportUtils.js +78 -0
  24. package/dist/esm/utils/exportUtils.js.map +1 -0
  25. package/dist/esm/utils/tableColumnResizeUtils.d.ts +21 -0
  26. package/dist/esm/utils/tableColumnResizeUtils.d.ts.map +1 -0
  27. package/dist/esm/utils/tableColumnResizeUtils.js +148 -0
  28. package/dist/esm/utils/tableColumnResizeUtils.js.map +1 -0
  29. package/dist/esm/utils/tableFormatters.d.ts +57 -0
  30. package/dist/esm/utils/tableFormatters.d.ts.map +1 -0
  31. package/dist/esm/utils/tableFormatters.js +231 -0
  32. package/dist/esm/utils/tableFormatters.js.map +1 -0
  33. package/package.json +50 -0
@@ -0,0 +1,231 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { format as dateFnsFormat } from 'date-fns';
3
+ /** Built-in icon keys for actions; use these in action config (e.g. from JSON) or pass custom ReactNode */
4
+ export const ACTION_ICON_KEYS = ['View', 'Edit', 'Delete', 'Add', 'List'];
5
+ /** Detect if value looks like an ISO date/datetime string so we never show raw "YYYY-MM-DDTHH:mm:ss" in the grid */
6
+ export function isIsoDateLike(value) {
7
+ if (value === null || value === undefined)
8
+ return false;
9
+ const s = String(value).trim();
10
+ return /^\d{4}-\d{2}-\d{2}(T|\s)\d{2}:\d{2}(:\d{2})?(\.\d+)?(Z|[+-]\d{2}:?\d{2})?$/i.test(s) || /^\d{4}-\d{2}-\d{2}$/.test(s);
11
+ }
12
+ /** Parse value to Date; returns null if invalid */
13
+ function parseDate(value) {
14
+ if (value === null || value === undefined || value === '')
15
+ return null;
16
+ const d = new Date(value);
17
+ return isNaN(d.getTime()) ? null : d;
18
+ }
19
+ const DEFAULT_DATE_FORMAT = 'DD/MM/YYYY';
20
+ const DEFAULT_DATETIME_FORMAT = 'DD/MM/YYYY HH:mm';
21
+ const DEFAULT_TIME_FORMAT = 'HH:mm';
22
+ /** Convert user pattern (DD/MM/YYYY HH:mm) to date-fns pattern (dd/MM/yyyy HH:mm). date-fns uses dd=day of month, d=day; yyyy/yy=year; MM/M=month; HH/H=24h; mm/m=minute; ss/s=second. Order: longest first. */
23
+ function toDateFnsPattern(userPattern) {
24
+ return userPattern
25
+ .replace(/YYYY/g, 'yyyy')
26
+ .replace(/YY/g, 'yy')
27
+ .replace(/DD/g, 'dd')
28
+ .replace(/\bD\b/g, 'd');
29
+ }
30
+ /** Format a Date using a pattern string. Tokens: YYYY, YY, MM, M, DD, D, HH, H, mm, m, ss, s (fallback when date-fns not used or pattern invalid). */
31
+ function formatDateByPattern(date, pattern) {
32
+ const Y = date.getFullYear();
33
+ const M = date.getMonth() + 1;
34
+ const D = date.getDate();
35
+ const H = date.getHours();
36
+ const m = date.getMinutes();
37
+ const s = date.getSeconds();
38
+ const parts = [
39
+ ['YYYY', String(Y).padStart(4, '0')],
40
+ ['YY', String(Y).slice(-2)],
41
+ ['MM', String(M).padStart(2, '0')],
42
+ ['DD', String(D).padStart(2, '0')],
43
+ ['HH', String(H).padStart(2, '0')],
44
+ ['mm', String(m).padStart(2, '0')],
45
+ ['ss', String(s).padStart(2, '0')],
46
+ ['M', String(M)],
47
+ ['D', String(D)],
48
+ ['H', String(H)],
49
+ ['m', String(m)],
50
+ ['s', String(s)],
51
+ ];
52
+ let out = pattern;
53
+ for (const [token, value] of parts) {
54
+ out = out.split(token).join(value);
55
+ }
56
+ return out;
57
+ }
58
+ /** Format date/datetime/time for display. Uses date-fns with user format from column meta; falls back to built-in pattern. Never returns raw ISO (no T). */
59
+ export function formatDateValue(value, mode, options) {
60
+ const date = parseDate(value);
61
+ if (!date)
62
+ return null;
63
+ const userPattern = options
64
+ ? (mode === 'date'
65
+ ? (options.dateFormat ?? DEFAULT_DATE_FORMAT)
66
+ : mode === 'time'
67
+ ? (options.timeFormat ?? DEFAULT_TIME_FORMAT)
68
+ : (options.datetimeFormat ?? options.dateFormat ?? DEFAULT_DATETIME_FORMAT))
69
+ : (mode === 'date'
70
+ ? DEFAULT_DATE_FORMAT
71
+ : mode === 'time'
72
+ ? DEFAULT_TIME_FORMAT
73
+ : DEFAULT_DATETIME_FORMAT);
74
+ try {
75
+ const dateFnsPattern = toDateFnsPattern(userPattern);
76
+ return dateFnsFormat(date, dateFnsPattern);
77
+ }
78
+ catch {
79
+ return formatDateByPattern(date, userPattern);
80
+ }
81
+ }
82
+ const dateTimePillStyle = {
83
+ padding: '2px 8px',
84
+ borderRadius: '12px',
85
+ fontWeight: 600,
86
+ fontSize: '11px',
87
+ display: 'inline-block',
88
+ whiteSpace: 'nowrap'
89
+ };
90
+ /** Wrapper so date/datetime/time cells align right like number/currency */
91
+ const dateTimeWrapperStyle = {
92
+ width: '100%',
93
+ textAlign: 'right'
94
+ };
95
+ /** Render date/datetime/time cell from column meta (for use in table when column has dataType + formatOptions). Never shows raw ISO. */
96
+ export function renderDateCell(value, mode, formatOptions) {
97
+ const formatted = formatDateValue(value, mode, formatOptions);
98
+ if (formatted == null)
99
+ return renderers.text(value);
100
+ return (_jsx("div", { style: dateTimeWrapperStyle, children: _jsx("span", { className: "slick-date-pill", title: formatted, style: dateTimePillStyle, children: formatted }) }));
101
+ }
102
+ const renderers = {
103
+ text: (value) => {
104
+ if (value === null || value === undefined || value === '')
105
+ return _jsx("span", { style: { color: '#94a3b8', fontStyle: 'italic' }, children: "-" });
106
+ return _jsx("span", { title: String(value), style: { overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', display: 'inline-block', width: '100%' }, children: String(value) });
107
+ },
108
+ number: (value, decimals = 0) => {
109
+ const val = Number(value);
110
+ if (value === null || value === undefined || isNaN(val))
111
+ return _jsx("span", { style: { color: '#94a3b8' }, children: (0).toFixed(decimals) });
112
+ const formatted = val.toLocaleString(undefined, { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
113
+ return _jsx("span", { title: formatted, children: formatted });
114
+ },
115
+ currency: (value, symbol = '$', decimals = 2) => {
116
+ if (value === null || value === undefined || isNaN(Number(value)))
117
+ return _jsxs("span", { style: { color: '#94a3b8' }, children: [symbol, (0).toFixed(decimals)] });
118
+ const formatted = Number(value).toLocaleString(undefined, { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
119
+ return (_jsxs("span", { style: { fontWeight: 600, color: '#0f172a' }, title: `${symbol}${formatted}`, children: [_jsx("small", { style: { marginRight: '2px', color: '#64748b' }, children: symbol }), formatted] }));
120
+ },
121
+ boolean: (value, useIcon = false) => {
122
+ const isTrue = !!value;
123
+ if (useIcon) {
124
+ return (_jsx("div", { style: { display: 'flex', justifyContent: 'center' }, children: isTrue ? (_jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "#10b981", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) })) : (_jsxs("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "#e11d48", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] })) }));
125
+ }
126
+ return (_jsx("span", { style: {
127
+ padding: '2px 8px', borderRadius: '12px', fontSize: '11px', fontWeight: 700, textTransform: 'uppercase',
128
+ background: isTrue ? '#ecfdf5' : '#fff1f2', color: isTrue ? '#10b981' : '#e11d48', border: `1px solid ${isTrue ? '#d1fae5' : '#ffe4e6'}`, display: 'inline-block'
129
+ }, children: isTrue ? 'Yes' : 'No' }));
130
+ },
131
+ email: (value) => {
132
+ if (!value)
133
+ return renderers.text(null);
134
+ return _jsx("a", { href: `mailto:${value}`, className: "slick-email-link", onClick: (e) => e.stopPropagation(), style: { color: '#3b82f6', textDecoration: 'none', fontWeight: 500 }, children: String(value) });
135
+ },
136
+ date: (value, formatOpts) => {
137
+ const formatted = formatDateValue(value, 'date', formatOpts);
138
+ if (formatted == null)
139
+ return renderers.text(value);
140
+ return (_jsx("div", { style: dateTimeWrapperStyle, children: _jsx("span", { className: "slick-date-pill", title: formatted, style: dateTimePillStyle, children: formatted }) }));
141
+ },
142
+ datetime: (value, formatOpts) => {
143
+ const formatted = formatDateValue(value, 'datetime', formatOpts);
144
+ if (formatted == null)
145
+ return renderers.text(value);
146
+ return (_jsx("div", { style: dateTimeWrapperStyle, children: _jsx("span", { className: "slick-date-pill", title: formatted, style: dateTimePillStyle, children: formatted }) }));
147
+ },
148
+ time: (value, formatOpts) => {
149
+ const formatted = formatDateValue(value, 'time', formatOpts);
150
+ if (formatted == null)
151
+ return renderers.text(value);
152
+ return (_jsx("div", { style: dateTimeWrapperStyle, children: _jsx("span", { className: "slick-date-pill", title: formatted, style: dateTimePillStyle, children: formatted }) }));
153
+ }
154
+ };
155
+ /**
156
+ * Format cell value by dataType. Pass overrideMeta (e.g. from columnMetaById) as second arg so
157
+ * formatOptions from the original column meta are always applied.
158
+ */
159
+ export function DataFormatter(context, overrideMeta) {
160
+ const { column, getValue } = context;
161
+ const meta = (overrideMeta ?? column.columnDef.meta);
162
+ const dataType = meta?.dataType || 'text';
163
+ const opt = meta?.formatOptions || {};
164
+ const val = getValue();
165
+ const dateFormatOpts = {
166
+ dateFormat: opt.dateFormat,
167
+ datetimeFormat: opt.datetimeFormat,
168
+ timeFormat: opt.timeFormat,
169
+ };
170
+ switch (dataType) {
171
+ case 'number': return renderers.number(val, 0);
172
+ case 'decimal': return renderers.number(val, opt.decimals ?? 2);
173
+ case 'currency': return renderers.currency(val, opt.currencySymbol ?? '$', opt.decimals ?? 2);
174
+ case 'email': return renderers.email(val);
175
+ case 'boolean': return renderers.boolean(val, false);
176
+ case 'icon-boolean': return renderers.boolean(val, true);
177
+ case 'date': return renderers.date(val, dateFormatOpts);
178
+ case 'datetime': return renderers.datetime(val, dateFormatOpts);
179
+ case 'time': return renderers.time(val, dateFormatOpts);
180
+ case 'percentage': return _jsxs("span", { children: [Number(Number(val || 0) * 100).toLocaleString(undefined, { minimumFractionDigits: opt.decimals ?? 2, maximumFractionDigits: opt.decimals ?? 2 }), "%"] });
181
+ default:
182
+ // Fallback: if value looks like ISO date/datetime, format it so we don't show raw "2024-01-15T09:30:00"
183
+ if (isIsoDateLike(val))
184
+ return renderers.datetime(val, dateFormatOpts);
185
+ return renderers.text(val);
186
+ }
187
+ }
188
+ /** Normalise icon key from JSON (e.g. "view" -> "View") so action JSON can use lowercase keys. */
189
+ function toActionIconKey(s) {
190
+ const key = (s && s.length) ? (s[0].toUpperCase() + s.slice(1).toLowerCase()) : null;
191
+ return key && ACTION_ICON_KEYS.includes(key) ? key : null;
192
+ }
193
+ function resolveIcon(icon) {
194
+ if (icon === undefined)
195
+ return null;
196
+ if (typeof icon === 'string') {
197
+ const key = ActionIconsMap[icon] ? icon : toActionIconKey(icon);
198
+ if (key && ActionIconsMap[key])
199
+ return ActionIconsMap[key];
200
+ }
201
+ return icon;
202
+ }
203
+ export function ActionFormatter(context, onActionClick) {
204
+ const { column, row } = context;
205
+ const actions = column.columnDef.meta?.actions || [];
206
+ if (!actions.length)
207
+ return null;
208
+ return (_jsx("div", { className: "slick-actions-cell", children: actions.map((action, idx) => {
209
+ if (action.show && !action.show(row.original))
210
+ return null;
211
+ const actionId = action.id ?? action.label ?? String(idx);
212
+ const handleClick = (e) => {
213
+ e.stopPropagation();
214
+ if (onActionClick)
215
+ onActionClick(actionId, row.original, action);
216
+ else if (action.onClick)
217
+ action.onClick(row.original);
218
+ };
219
+ const btnTitle = action.label ?? action.id ?? 'Action';
220
+ return (_jsxs("button", { title: btnTitle, onClick: handleClick, className: `slick-row-action-btn ${action.className || ''}`, children: [resolveIcon(action.icon), (action.label != null && action.label !== '') && _jsx("span", { children: action.label })] }, idx));
221
+ }) }));
222
+ }
223
+ const ActionIconsMap = {
224
+ View: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] }),
225
+ Edit: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7" }), _jsx("path", { d: "M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z" })] }),
226
+ Delete: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("polyline", { points: "3 6 5 6 21 6" }), _jsx("path", { d: "M19 6v14a2 2 0 01-2 2H7a2 2 0 01-2-2V6m3 0V4a2 2 0 012-2h4a2 2 0 012 2v2" }), _jsx("line", { x1: "10", y1: "11", x2: "10", y2: "17" }), _jsx("line", { x1: "14", y1: "11", x2: "14", y2: "17" })] }),
227
+ Add: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("line", { x1: "12", y1: "5", x2: "12", y2: "19" }), _jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" })] }),
228
+ List: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("line", { x1: "8", y1: "6", x2: "21", y2: "6" }), _jsx("line", { x1: "8", y1: "12", x2: "21", y2: "12" }), _jsx("line", { x1: "8", y1: "18", x2: "21", y2: "18" }), _jsx("line", { x1: "3", y1: "6", x2: "3.01", y2: "6" }), _jsx("line", { x1: "3", y1: "12", x2: "3.01", y2: "12" }), _jsx("line", { x1: "3", y1: "18", x2: "3.01", y2: "18" })] })
229
+ };
230
+ export const ActionIcons = { ...ActionIconsMap };
231
+ //# sourceMappingURL=tableFormatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableFormatters.js","sourceRoot":"","sources":["../../../src/utils/tableFormatters.tsx"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@chainsys/sab-react-grid",
3
+ "version": "1.0.1",
4
+ "description": "Enterprise TanStack Table component for React: virtualized rows, sorting, filtering, grouping, column resize, Excel/CSV export, and layout modes.",
5
+ "author": "",
6
+ "license": "MIT",
7
+ "keywords": ["react", "tanstack", "table", "data-grid", "virtualized", "sorting", "filtering", "grouping", "export", "excel", "csv"],
8
+ "main": "dist/cjs/index.js",
9
+ "module": "dist/esm/index.js",
10
+ "types": "dist/esm/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/esm/index.js",
14
+ "require": "./dist/cjs/index.js",
15
+ "types": "./dist/esm/index.d.ts"
16
+ }
17
+ },
18
+ "files": ["dist"],
19
+ "scripts": {
20
+ "build": "npm run clean && npm run build:esm && npm run build:cjs",
21
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
22
+ "build:esm": "tsc -p tsconfig.esm.json",
23
+ "build:cjs": "tsc -p tsconfig.cjs.json",
24
+ "prepublishOnly": "npm run build"
25
+ },
26
+ "peerDependencies": {
27
+ "@tanstack/react-table": "^8.0.0",
28
+ "@tanstack/react-virtual": "^3.0.0",
29
+ "react": "^18.0.0 || ^19.0.0",
30
+ "react-dom": "^18.0.0 || ^19.0.0"
31
+ },
32
+ "dependencies": {
33
+ "date-fns": "^4.1.0",
34
+ "exceljs": "^4.4.0",
35
+ "flatpickr": "^4.6.13",
36
+ "react-flatpickr": "^4.0.11"
37
+ },
38
+ "devDependencies": {
39
+ "@types/react": "^18.2.0",
40
+ "@types/react-dom": "^18.2.0",
41
+ "react": "^18.2.0",
42
+ "react-dom": "^18.2.0",
43
+ "typescript": "~5.6.0"
44
+ },
45
+ "engines": { "node": ">=16" },
46
+ "sideEffects": false,
47
+ "overrides": {
48
+ "minimatch": ">=10.2.1"
49
+ }
50
+ }