hazo_collab_forms 1.2.0 → 1.3.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.
Files changed (39) hide show
  1. package/dist/components/hazo_collab_form_base.d.ts +100 -0
  2. package/dist/components/hazo_collab_form_base.d.ts.map +1 -1
  3. package/dist/components/hazo_collab_form_base.js +232 -1
  4. package/dist/components/hazo_collab_form_base.js.map +1 -1
  5. package/dist/components/hazo_collab_form_checkbox.d.ts.map +1 -1
  6. package/dist/components/hazo_collab_form_checkbox.js +8 -4
  7. package/dist/components/hazo_collab_form_checkbox.js.map +1 -1
  8. package/dist/components/hazo_collab_form_combo.d.ts.map +1 -1
  9. package/dist/components/hazo_collab_form_combo.js +10 -6
  10. package/dist/components/hazo_collab_form_combo.js.map +1 -1
  11. package/dist/components/hazo_collab_form_data_table.d.ts +268 -0
  12. package/dist/components/hazo_collab_form_data_table.d.ts.map +1 -0
  13. package/dist/components/hazo_collab_form_data_table.js +502 -0
  14. package/dist/components/hazo_collab_form_data_table.js.map +1 -0
  15. package/dist/components/hazo_collab_form_date.d.ts.map +1 -1
  16. package/dist/components/hazo_collab_form_date.js +9 -5
  17. package/dist/components/hazo_collab_form_date.js.map +1 -1
  18. package/dist/components/hazo_collab_form_group.d.ts.map +1 -1
  19. package/dist/components/hazo_collab_form_group.js +9 -4
  20. package/dist/components/hazo_collab_form_group.js.map +1 -1
  21. package/dist/components/hazo_collab_form_inputbox.d.ts.map +1 -1
  22. package/dist/components/hazo_collab_form_inputbox.js +8 -4
  23. package/dist/components/hazo_collab_form_inputbox.js.map +1 -1
  24. package/dist/components/hazo_collab_form_radio.d.ts.map +1 -1
  25. package/dist/components/hazo_collab_form_radio.js +9 -5
  26. package/dist/components/hazo_collab_form_radio.js.map +1 -1
  27. package/dist/components/hazo_collab_form_set.d.ts +56 -0
  28. package/dist/components/hazo_collab_form_set.d.ts.map +1 -1
  29. package/dist/components/hazo_collab_form_set.js +62 -3
  30. package/dist/components/hazo_collab_form_set.js.map +1 -1
  31. package/dist/components/hazo_collab_form_textarea.d.ts.map +1 -1
  32. package/dist/components/hazo_collab_form_textarea.js +8 -4
  33. package/dist/components/hazo_collab_form_textarea.js.map +1 -1
  34. package/dist/components/index.d.ts +4 -1
  35. package/dist/components/index.d.ts.map +1 -1
  36. package/dist/components/index.js +2 -1
  37. package/dist/components/index.js.map +1 -1
  38. package/package.json +1 -1
  39. package/templates/hazo_collab_forms_config.ini +8 -0
@@ -0,0 +1,502 @@
1
+ /**
2
+ * Collaboration form data table component
3
+ * Provides a dynamic data table with inline editing, configurable columns,
4
+ * validation, file uploads, and aggregation support
5
+ */
6
+ 'use client';
7
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
+ import React from 'react';
9
+ import { HiPlus, HiTrash, HiQuestionMarkCircle, HiX } from 'react-icons/hi';
10
+ import { IoDocumentAttachOutline } from 'react-icons/io5';
11
+ import { cn } from '../utils/cn.js';
12
+ import { use_collab_form_field, CollabFormFieldContainer, CollabFormFieldLabel, CollabFormChatIcon, CollabFormFieldError, CollabFormFieldReferenceTag, CollabFormDataOkCheckbox, CollabFormNotesIcon, } from './hazo_collab_form_base.js';
13
+ // =========================================
14
+ // UTILITY FUNCTIONS
15
+ // =========================================
16
+ /**
17
+ * Generate a unique row ID
18
+ */
19
+ function generate_row_id() {
20
+ return `row_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
21
+ }
22
+ /**
23
+ * Calculate aggregation value for a column
24
+ */
25
+ function calculate_aggregation(column, rows) {
26
+ if (!column.aggregation || column.aggregation.type === 'none') {
27
+ return null;
28
+ }
29
+ const values = rows
30
+ .map((row) => {
31
+ const val = row[column.id];
32
+ if (typeof val === 'number')
33
+ return val;
34
+ if (typeof val === 'string') {
35
+ const parsed = parseFloat(val);
36
+ return isNaN(parsed) ? null : parsed;
37
+ }
38
+ return null;
39
+ })
40
+ .filter((val) => val !== null);
41
+ switch (column.aggregation.type) {
42
+ case 'sum':
43
+ return values.reduce((acc, val) => acc + val, 0);
44
+ case 'average':
45
+ return values.length > 0
46
+ ? values.reduce((acc, val) => acc + val, 0) / values.length
47
+ : 0;
48
+ case 'count':
49
+ return values.length;
50
+ default:
51
+ return null;
52
+ }
53
+ }
54
+ /**
55
+ * Format number for display with optional decimals
56
+ */
57
+ function format_number(value, decimals) {
58
+ if (decimals !== undefined) {
59
+ return value.toFixed(decimals);
60
+ }
61
+ return value.toLocaleString();
62
+ }
63
+ /**
64
+ * Validate a cell value against column constraints
65
+ */
66
+ function validate_cell(value, column) {
67
+ const constraints = column.constraints;
68
+ if (!constraints)
69
+ return undefined;
70
+ // Required check
71
+ if (constraints.required && (value === undefined || value === null || value === '')) {
72
+ return 'Required';
73
+ }
74
+ // Skip further validation if empty and not required
75
+ if (value === undefined || value === null || value === '') {
76
+ return undefined;
77
+ }
78
+ // Numeric validations
79
+ if (column.field_type === 'numeric') {
80
+ const num_value = typeof value === 'number' ? value : parseFloat(value);
81
+ if (isNaN(num_value)) {
82
+ return 'Invalid number';
83
+ }
84
+ if (constraints.min !== undefined && num_value < constraints.min) {
85
+ return `Minimum: ${constraints.min}`;
86
+ }
87
+ if (constraints.max !== undefined && num_value > constraints.max) {
88
+ return `Maximum: ${constraints.max}`;
89
+ }
90
+ }
91
+ // Text validations
92
+ if (column.field_type === 'text') {
93
+ const str_value = String(value);
94
+ if (constraints.length !== undefined && str_value.length > constraints.length) {
95
+ return `Maximum ${constraints.length} characters`;
96
+ }
97
+ if (constraints.regex) {
98
+ const regex = new RegExp(constraints.regex);
99
+ if (!regex.test(str_value)) {
100
+ return 'Invalid format';
101
+ }
102
+ }
103
+ }
104
+ return undefined;
105
+ }
106
+ // =========================================
107
+ // CELL RENDERER COMPONENTS
108
+ // =========================================
109
+ /**
110
+ * Text cell renderer
111
+ */
112
+ function TextCell({ column, value, onChange, disabled, error, }) {
113
+ const is_editable = column.editable !== false && !disabled;
114
+ // Render as plain text label when not editable
115
+ if (!is_editable) {
116
+ return (_jsx("span", { className: cn('cls_data_table_text_cell_readonly flex items-center h-8 px-2 text-sm font-medium', column.background_color), title: value || '', children: value || '' }));
117
+ }
118
+ return (_jsx("input", { type: "text", value: value || '', onChange: (e) => onChange(e.target.value), maxLength: column.constraints?.length, className: cn('cls_data_table_text_cell w-full h-8 px-2 text-sm border rounded-md', 'bg-transparent focus:outline-none focus:ring-1 focus:ring-ring', error && 'border-destructive', column.background_color), title: error }));
119
+ }
120
+ /**
121
+ * Numeric cell renderer
122
+ */
123
+ function NumericCell({ column, value, onChange, disabled, error, }) {
124
+ const is_editable = column.editable !== false && !disabled;
125
+ const str_value = value === undefined || value === null ? '' : String(value);
126
+ const handle_change = (e) => {
127
+ const input_value = e.target.value;
128
+ // Allow empty, numbers, decimals, and negative sign
129
+ if (input_value === '' || /^-?\d*\.?\d*$/.test(input_value)) {
130
+ onChange(input_value);
131
+ }
132
+ };
133
+ // Render as plain text label when not editable
134
+ if (!is_editable) {
135
+ return (_jsx("span", { className: cn('cls_data_table_numeric_cell_readonly flex items-center justify-end h-8 px-2 text-sm font-medium', column.background_color), title: str_value, children: str_value }));
136
+ }
137
+ return (_jsx("input", { type: "text", inputMode: "decimal", value: str_value, onChange: handle_change, className: cn('cls_data_table_numeric_cell w-full h-8 px-2 text-sm text-right border rounded-md', 'bg-transparent focus:outline-none focus:ring-1 focus:ring-ring', error && 'border-destructive', column.background_color), title: error }));
138
+ }
139
+ /**
140
+ * Dropdown cell renderer
141
+ */
142
+ function DropdownCell({ column, value, onChange, disabled, error, }) {
143
+ const is_editable = column.editable !== false && !disabled;
144
+ const options = column.options || [];
145
+ return (_jsxs("select", { value: value || '', onChange: (e) => onChange(e.target.value), disabled: !is_editable, className: cn('cls_data_table_dropdown_cell w-full h-8 px-2 text-sm border rounded-md', 'bg-transparent focus:outline-none focus:ring-1 focus:ring-ring', !is_editable && 'cursor-not-allowed opacity-70 bg-muted', error && 'border-destructive', column.background_color), title: error, children: [_jsx("option", { value: "", children: "Select..." }), options.map((opt) => (_jsx("option", { value: opt.value, children: opt.label }, opt.value)))] }));
146
+ }
147
+ /**
148
+ * Checkbox cell renderer
149
+ */
150
+ function CheckboxCell({ column, value, onChange, disabled, }) {
151
+ const is_editable = column.editable !== false && !disabled;
152
+ const checked = value === true || value === 'true';
153
+ return (_jsx("div", { className: "flex items-center justify-center h-8", children: _jsx("input", { type: "checkbox", checked: checked, onChange: (e) => onChange(e.target.checked), disabled: !is_editable, className: cn('cls_data_table_checkbox_cell h-4 w-4 rounded border-input', !is_editable && 'cursor-not-allowed opacity-70') }) }));
154
+ }
155
+ /**
156
+ * Radio button cell renderer
157
+ */
158
+ function RadioCell({ column, value, onChange, disabled, row_id, }) {
159
+ const is_editable = column.editable !== false && !disabled;
160
+ const options = column.options || [];
161
+ const radio_name = `${row_id}_${column.id}`;
162
+ return (_jsx("div", { className: "flex items-center gap-2 h-8 px-1", children: options.map((opt) => (_jsxs("label", { className: cn('flex items-center gap-1 text-xs cursor-pointer', !is_editable && 'cursor-not-allowed opacity-70'), children: [_jsx("input", { type: "radio", name: radio_name, value: opt.value, checked: value === opt.value, onChange: () => onChange(opt.value), disabled: !is_editable, className: "h-3 w-3" }), _jsx("span", { children: opt.label })] }, opt.value))) }));
163
+ }
164
+ /**
165
+ * Files cell renderer (compact badge + modal)
166
+ */
167
+ /**
168
+ * Helper function to truncate filename with ellipsis
169
+ * Keeps extension visible: "verylongfilename.pdf" -> "verylong...pdf"
170
+ */
171
+ function truncate_filename(filename, max_length = 12) {
172
+ if (filename.length <= max_length)
173
+ return filename;
174
+ const last_dot = filename.lastIndexOf('.');
175
+ if (last_dot === -1) {
176
+ // No extension
177
+ return filename.slice(0, max_length - 3) + '...';
178
+ }
179
+ const extension = filename.slice(last_dot);
180
+ const name = filename.slice(0, last_dot);
181
+ const available_for_name = max_length - extension.length - 3; // 3 for "..."
182
+ if (available_for_name <= 0) {
183
+ return filename.slice(0, max_length - 3) + '...';
184
+ }
185
+ return name.slice(0, available_for_name) + '...' + extension;
186
+ }
187
+ function FilesCell({ column, files, onFilesChange, disabled, row_id, }) {
188
+ const is_editable = column.editable !== false && !disabled;
189
+ const file_count = files?.length || 0;
190
+ const max_files = column.files_config?.max_files || 10;
191
+ const can_add_more = file_count < max_files;
192
+ /**
193
+ * Remove a file by index
194
+ */
195
+ const remove_file = (idx) => {
196
+ if (!is_editable)
197
+ return;
198
+ const new_files = files.filter((_, i) => i !== idx);
199
+ onFilesChange(new_files);
200
+ };
201
+ /**
202
+ * Handle file input change
203
+ */
204
+ const handle_file_input = (e) => {
205
+ const input_files = e.target.files;
206
+ if (!input_files)
207
+ return;
208
+ const new_files = Array.from(input_files).map((f) => ({
209
+ file_path: column.files_config?.target_path || '/uploads',
210
+ file_name: f.name,
211
+ file_size: f.size,
212
+ file_type: f.type,
213
+ file_id: `file_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`,
214
+ uploaded_at: new Date(),
215
+ }));
216
+ const combined = [...(files || []), ...new_files].slice(0, max_files);
217
+ onFilesChange(combined);
218
+ e.target.value = '';
219
+ };
220
+ /**
221
+ * Handle file click - open in new tab or download
222
+ */
223
+ const handle_file_click = (file) => {
224
+ if (file.file_path) {
225
+ // Open file in new tab
226
+ window.open(file.file_path, '_blank', 'noopener,noreferrer');
227
+ }
228
+ };
229
+ return (_jsxs("div", { className: "flex items-center gap-1 flex-wrap min-h-[32px] py-1 px-1", children: [files && files.length > 0 && files.map((file, idx) => (_jsxs("span", { className: cn('cls_data_table_file_tag inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs', 'bg-primary/10 text-primary border border-primary/20', 'max-w-[120px]'), title: file.file_name, children: [_jsx("button", { type: "button", onClick: () => handle_file_click(file), className: "truncate hover:underline cursor-pointer", title: `Open ${file.file_name}`, children: truncate_filename(file.file_name, 10) }), is_editable && (_jsx("button", { type: "button", onClick: (e) => {
230
+ e.stopPropagation();
231
+ remove_file(idx);
232
+ }, className: "text-primary/60 hover:text-destructive flex-shrink-0", title: "Remove file", children: _jsx(HiX, { className: "h-3 w-3" }) }))] }, file.file_id || idx))), is_editable && can_add_more && (_jsxs(_Fragment, { children: [_jsx("input", { type: "file", multiple: true, accept: column.files_config?.file_accept, onChange: handle_file_input, className: "hidden", id: `file-input-${row_id}-${column.id}` }), _jsx("label", { htmlFor: `file-input-${row_id}-${column.id}`, className: cn('cls_data_table_add_file inline-flex items-center justify-center px-1.5 py-0.5 rounded text-xs cursor-pointer', 'border border-dashed border-input text-muted-foreground hover:border-primary hover:text-primary', 'transition-colors'), title: "Add files", children: _jsx(IoDocumentAttachOutline, { className: "h-4 w-4" }) })] })), file_count === 0 && !is_editable && (_jsx("span", { className: "text-xs text-muted-foreground", children: "No files" }))] }));
233
+ }
234
+ // =========================================
235
+ // TOOLTIP COMPONENT
236
+ // =========================================
237
+ /**
238
+ * Column header tooltip using HoverCard
239
+ */
240
+ function ColumnTooltip({ tooltip, }) {
241
+ const [HoverCardComponents, setHoverCardComponents] = React.useState(null);
242
+ React.useEffect(() => {
243
+ const loadComponents = async () => {
244
+ try {
245
+ // @ts-expect-error - These modules are provided by the consuming application
246
+ const hoverCardModule = await import('@/components/ui/hover-card').catch(() => null);
247
+ if (hoverCardModule) {
248
+ setHoverCardComponents({
249
+ HoverCard: hoverCardModule.HoverCard,
250
+ HoverCardTrigger: hoverCardModule.HoverCardTrigger,
251
+ HoverCardContent: hoverCardModule.HoverCardContent,
252
+ });
253
+ }
254
+ }
255
+ catch (error) {
256
+ console.warn('[ColumnTooltip] Error loading HoverCard:', error);
257
+ }
258
+ };
259
+ loadComponents();
260
+ }, []);
261
+ if (!HoverCardComponents) {
262
+ return (_jsx("span", { title: tooltip.content, children: _jsx(HiQuestionMarkCircle, { className: "h-4 w-4 text-muted-foreground" }) }));
263
+ }
264
+ const { HoverCard, HoverCardTrigger, HoverCardContent } = HoverCardComponents;
265
+ return (_jsxs(HoverCard, { children: [_jsx(HoverCardTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "inline-flex", children: _jsx(HiQuestionMarkCircle, { className: "h-4 w-4 text-muted-foreground hover:text-foreground" }) }) }), _jsxs(HoverCardContent, { className: "w-64", children: [tooltip.title && (_jsx("h4", { className: "font-medium text-sm mb-1", children: tooltip.title })), _jsx("p", { className: "text-sm text-muted-foreground", children: tooltip.content })] })] }));
266
+ }
267
+ // =========================================
268
+ // MAIN COMPONENT
269
+ // =========================================
270
+ /**
271
+ * Collaboration form data table component
272
+ */
273
+ export const HazoCollabFormDataTable = React.forwardRef((props, ref) => {
274
+ const { label, error, field_id, field_data_id, field_name, table_config, value, onChange, table_class_name, header_class_name, row_class_name, cell_class_name, disabled, on_chat_click, has_chat_messages, is_chat_active, chat_background_color = 'bg-muted', is_data_ok_default, container_class_name, label_class_name, error_class_name, required, data_ok_checked, on_data_ok_change, data_ok_editable, disable_data_ok, disable_chat, enable_notes, disable_notes, notes, on_notes_change, has_notes, current_user, id, hazo_chat_group_id, hazo_chat_reference_id, hazo_chat_reference_type, hazo_chat_api_base_url, hazo_chat_timezone, hazo_chat_title, hazo_chat_subtitle, hazo_chat_realtime_mode, hazo_chat_polling_interval, hazo_chat_messages_per_page, hazo_chat_class_name, hazo_chat_on_close, hazo_chat_is_open, hazo_chat_on_open_change, hazo_chat_show_sidebar_toggle, hazo_chat_show_delete_button, hazo_chat_bubble_radius, reference_value, reference_label, reference_tag_background_color, on_row_chat_click, on_row_notes_change, } = props;
275
+ // Initialize rows with empty array if undefined
276
+ const rows = value || [];
277
+ // Cell validation errors state
278
+ const [cell_errors, set_cell_errors] = React.useState({});
279
+ // Row-level chat state - tracks which row's chat is currently open
280
+ const [active_row_chat, set_active_row_chat] = React.useState(null);
281
+ // Dynamic import for HazoChat component
282
+ const [HazoChatComponent, setHazoChatComponent] = React.useState(null);
283
+ // Use the common collab form field hook
284
+ const { field_id_final, handle_chat_icon_click, handle_chat_close, chat_is_open, is_chat_disabled } = use_collab_form_field({
285
+ label,
286
+ field_id,
287
+ id,
288
+ field_data_id,
289
+ field_name,
290
+ on_chat_click,
291
+ hazo_chat_group_id,
292
+ hazo_chat_on_open_change,
293
+ hazo_chat_is_open,
294
+ hazo_chat_on_close,
295
+ });
296
+ // Config defaults
297
+ const columns = table_config.columns || [];
298
+ const allow_add_row = table_config.allow_add_row !== false;
299
+ const allow_delete_row = table_config.allow_delete_row !== false;
300
+ const show_row_numbers = table_config.show_row_numbers === true;
301
+ const enable_row_collab = table_config.enable_row_collab !== false;
302
+ const max_rows = table_config.max_rows;
303
+ const empty_message = table_config.empty_message || 'No data. Click "Add Row" to begin.';
304
+ // Check if any row action is actually enabled
305
+ const has_row_data_ok = enable_row_collab && !disable_data_ok;
306
+ const has_row_notes = enable_row_collab && enable_notes && !disable_notes;
307
+ const has_row_chat = enable_row_collab && !disable_chat;
308
+ const show_actions_column = has_row_data_ok || has_row_notes || has_row_chat || allow_delete_row;
309
+ // Load HazoChat dynamically when row chat is enabled
310
+ React.useEffect(() => {
311
+ if (has_row_chat && hazo_chat_group_id && !HazoChatComponent) {
312
+ const loadHazoChat = async () => {
313
+ try {
314
+ const module = await import('hazo_chat');
315
+ if (module.HazoChat) {
316
+ setHazoChatComponent(() => module.HazoChat);
317
+ }
318
+ }
319
+ catch (error) {
320
+ console.warn('[HazoCollabFormDataTable] HazoChat not available:', error);
321
+ }
322
+ };
323
+ loadHazoChat();
324
+ }
325
+ }, [has_row_chat, hazo_chat_group_id, HazoChatComponent]);
326
+ // Check if any column has aggregation
327
+ const has_aggregations = columns.some((col) => col.aggregation && col.aggregation.type !== 'none');
328
+ const show_subtotal_row = table_config.show_subtotal_row !== false && has_aggregations;
329
+ /**
330
+ * Add a new row
331
+ */
332
+ const add_row = React.useCallback(() => {
333
+ if (max_rows && rows.length >= max_rows) {
334
+ return;
335
+ }
336
+ const new_row = {
337
+ _row_id: generate_row_id(),
338
+ };
339
+ // Initialize default values for each column
340
+ columns.forEach((col) => {
341
+ if (col.field_type === 'checkbox') {
342
+ new_row[col.id] = false;
343
+ }
344
+ else if (col.field_type === 'files') {
345
+ // Files are stored in _files
346
+ }
347
+ else {
348
+ new_row[col.id] = '';
349
+ }
350
+ });
351
+ onChange([...rows, new_row]);
352
+ }, [rows, columns, max_rows, onChange]);
353
+ /**
354
+ * Delete a row
355
+ */
356
+ const delete_row = React.useCallback((row_id) => {
357
+ onChange(rows.filter((row) => row._row_id !== row_id));
358
+ // Clean up errors for deleted row
359
+ set_cell_errors((prev) => {
360
+ const updated = { ...prev };
361
+ delete updated[row_id];
362
+ return updated;
363
+ });
364
+ }, [rows, onChange]);
365
+ /**
366
+ * Update a cell value
367
+ */
368
+ const update_cell = React.useCallback((row_id, column_id, value) => {
369
+ const updated_rows = rows.map((row) => {
370
+ if (row._row_id === row_id) {
371
+ return { ...row, [column_id]: value };
372
+ }
373
+ return row;
374
+ });
375
+ onChange(updated_rows);
376
+ // Validate the cell
377
+ const column = columns.find((c) => c.id === column_id);
378
+ if (column) {
379
+ const error = validate_cell(value, column);
380
+ set_cell_errors((prev) => {
381
+ const row_errors = { ...prev[row_id] };
382
+ if (error) {
383
+ row_errors[column_id] = error;
384
+ }
385
+ else {
386
+ delete row_errors[column_id];
387
+ }
388
+ return { ...prev, [row_id]: row_errors };
389
+ });
390
+ }
391
+ }, [rows, columns, onChange]);
392
+ /**
393
+ * Update files for a cell
394
+ */
395
+ const update_files = React.useCallback((row_id, column_id, files) => {
396
+ const updated_rows = rows.map((row) => {
397
+ if (row._row_id === row_id) {
398
+ return {
399
+ ...row,
400
+ _files: {
401
+ ...(row._files || {}),
402
+ [column_id]: files,
403
+ },
404
+ };
405
+ }
406
+ return row;
407
+ });
408
+ onChange(updated_rows);
409
+ }, [rows, onChange]);
410
+ /**
411
+ * Get all file data from the table
412
+ */
413
+ const get_file_data = React.useCallback(() => {
414
+ const all_files = [];
415
+ rows.forEach((row) => {
416
+ if (row._files) {
417
+ Object.values(row._files).forEach((files) => {
418
+ all_files.push(...files);
419
+ });
420
+ }
421
+ });
422
+ return all_files;
423
+ }, [rows]);
424
+ /**
425
+ * Get computed aggregation values
426
+ */
427
+ const get_aggregations = React.useCallback(() => {
428
+ const aggregations = {};
429
+ columns.forEach((col) => {
430
+ const result = calculate_aggregation(col, rows);
431
+ if (result !== null) {
432
+ aggregations[col.id] = result;
433
+ }
434
+ });
435
+ return aggregations;
436
+ }, [columns, rows]);
437
+ // Expose ref methods
438
+ React.useImperativeHandle(ref, () => ({
439
+ get_file_data,
440
+ add_row,
441
+ delete_row,
442
+ get_aggregations,
443
+ }), [get_file_data, add_row, delete_row, get_aggregations]);
444
+ /**
445
+ * Render a cell based on field type
446
+ */
447
+ const render_cell = (row, column) => {
448
+ const cell_error = cell_errors[row._row_id]?.[column.id];
449
+ switch (column.field_type) {
450
+ case 'text':
451
+ return (_jsx(TextCell, { column: column, value: row[column.id] || '', onChange: (val) => update_cell(row._row_id, column.id, val), disabled: disabled, error: cell_error }));
452
+ case 'numeric':
453
+ return (_jsx(NumericCell, { column: column, value: row[column.id], onChange: (val) => update_cell(row._row_id, column.id, val), disabled: disabled, error: cell_error }));
454
+ case 'dropdown':
455
+ return (_jsx(DropdownCell, { column: column, value: row[column.id] || '', onChange: (val) => update_cell(row._row_id, column.id, val), disabled: disabled, error: cell_error }));
456
+ case 'checkbox':
457
+ return (_jsx(CheckboxCell, { column: column, value: row[column.id], onChange: (val) => update_cell(row._row_id, column.id, val), disabled: disabled }));
458
+ case 'radiobutton':
459
+ return (_jsx(RadioCell, { column: column, value: row[column.id] || '', onChange: (val) => update_cell(row._row_id, column.id, val), disabled: disabled, row_id: row._row_id }));
460
+ case 'files':
461
+ return (_jsx(FilesCell, { column: column, files: row._files?.[column.id] || [], onFilesChange: (files) => update_files(row._row_id, column.id, files), disabled: disabled, row_id: row._row_id }));
462
+ default:
463
+ return _jsx("span", { className: "text-sm text-muted-foreground", children: "Unsupported" });
464
+ }
465
+ };
466
+ /**
467
+ * Render column header with optional tooltip
468
+ */
469
+ const render_header = (column) => {
470
+ const styling = column.header_styling || {};
471
+ return (_jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { className: cn('text-sm', styling.bold && 'font-bold', styling.italic && 'italic', styling.size, styling.color), children: column.label }), column.tooltip?.enabled && _jsx(ColumnTooltip, { tooltip: column.tooltip })] }));
472
+ };
473
+ return (_jsxs(CollabFormFieldContainer, { has_chat_messages: has_chat_messages, is_chat_active: is_chat_active, chat_background_color: chat_background_color, is_data_ok_default: is_data_ok_default, container_class_name: container_class_name, hazo_chat_is_open: chat_is_open, hazo_chat_group_id: hazo_chat_group_id, hazo_chat_reference_id: hazo_chat_reference_id, hazo_chat_reference_type: hazo_chat_reference_type, hazo_chat_api_base_url: hazo_chat_api_base_url, hazo_chat_timezone: hazo_chat_timezone, hazo_chat_title: hazo_chat_title, hazo_chat_subtitle: hazo_chat_subtitle, hazo_chat_realtime_mode: hazo_chat_realtime_mode, hazo_chat_polling_interval: hazo_chat_polling_interval, hazo_chat_messages_per_page: hazo_chat_messages_per_page, hazo_chat_class_name: hazo_chat_class_name, hazo_chat_on_close: handle_chat_close, hazo_chat_show_sidebar_toggle: hazo_chat_show_sidebar_toggle, hazo_chat_show_delete_button: hazo_chat_show_delete_button, hazo_chat_bubble_radius: hazo_chat_bubble_radius, field_data_id: field_data_id, field_name: field_name, label: label, children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx(CollabFormFieldLabel, { field_id_final: field_id_final, label: label, label_class_name: label_class_name, required: required }), _jsxs("div", { className: "flex items-center gap-2", children: [!disable_data_ok && (_jsx(CollabFormDataOkCheckbox, { label: label, data_ok_checked: data_ok_checked, on_data_ok_change: on_data_ok_change, editable: data_ok_editable })), enable_notes && !disable_notes && (_jsx(CollabFormNotesIcon, { label: label, error: error, has_notes: has_notes, notes: notes, on_notes_change: on_notes_change, current_user: current_user, disabled: disable_notes })), !disable_chat && (_jsx(CollabFormChatIcon, { label: label, error: error, on_click: handle_chat_icon_click, has_chat_messages: has_chat_messages, disabled: disable_chat, button_disabled: is_chat_disabled }))] })] }), _jsx(CollabFormFieldReferenceTag, { reference_value: reference_value, reference_label: reference_label, reference_tag_background_color: reference_tag_background_color }), _jsx("div", { className: "cls_data_table_wrapper overflow-x-auto border rounded-md", children: _jsxs("table", { className: cn('cls_data_table w-full border-collapse', table_class_name), children: [_jsx("thead", { children: _jsxs("tr", { className: cn('cls_data_table_header bg-muted/50', header_class_name), children: [show_row_numbers && (_jsx("th", { className: "cls_data_table_row_num_header w-10 px-2 py-2 text-left text-xs font-medium text-muted-foreground border-b", children: "#" })), columns.map((column) => (_jsx("th", { className: cn('cls_data_table_col_header px-2 py-2 text-left border-b', column.width, column.background_color), children: render_header(column) }, column.id))), show_actions_column && (_jsx("th", { className: "cls_data_table_actions_header w-24 px-2 py-2 text-center text-xs font-medium text-muted-foreground border-b", children: "Actions" }))] }) }), _jsxs("tbody", { children: [rows.length === 0 ? (_jsx("tr", { children: _jsx("td", { colSpan: columns.length +
474
+ (show_row_numbers ? 1 : 0) +
475
+ (enable_row_collab || allow_delete_row ? 1 : 0), className: "px-4 py-8 text-center text-sm text-muted-foreground", children: empty_message }) })) : (rows.map((row, row_index) => (_jsxs("tr", { className: cn('cls_data_table_row border-b last:border-b-0 hover:bg-muted/30', row._has_chat_messages && 'bg-destructive/10 hover:bg-destructive/15', row_class_name), children: [show_row_numbers && (_jsx("td", { className: "cls_data_table_row_num w-10 px-2 py-1 text-xs text-muted-foreground", children: row_index + 1 })), columns.map((column) => (_jsx("td", { className: cn('cls_data_table_cell px-1 py-1', column.width, cell_class_name), children: render_cell(row, column) }, column.id))), show_actions_column && (_jsx("td", { className: "cls_data_table_row_actions px-1 py-1", children: _jsxs("div", { className: "flex items-center justify-center gap-1", children: [has_row_data_ok && (_jsx(CollabFormDataOkCheckbox, { label: `Row ${row_index + 1}`, data_ok_checked: row._data_ok, on_data_ok_change: (checked) => {
476
+ const updated_rows = rows.map((r) => r._row_id === row._row_id
477
+ ? { ...r, _data_ok: checked }
478
+ : r);
479
+ onChange(updated_rows);
480
+ }, editable: data_ok_editable })), has_row_notes && (_jsx(CollabFormNotesIcon, { label: `Row ${row_index + 1}`, has_notes: row._has_notes, notes: row._notes, on_notes_change: (notes_entries) => {
481
+ // Update row notes and has_notes flag
482
+ const updated_rows = rows.map((r) => r._row_id === row._row_id
483
+ ? { ...r, _notes: notes_entries, _has_notes: notes_entries.length > 0 }
484
+ : r);
485
+ onChange(updated_rows);
486
+ // Also call the external callback if provided
487
+ on_row_notes_change?.(row._row_id, notes_entries);
488
+ }, current_user: current_user })), has_row_chat && (_jsx(CollabFormChatIcon, { label: `Row ${row_index + 1}`, error: error, has_chat_messages: row._has_chat_messages, on_click: () => {
489
+ // Open row-level chat if hazo_chat_group_id is configured
490
+ if (hazo_chat_group_id) {
491
+ set_active_row_chat({ row_id: row._row_id, row_index });
492
+ }
493
+ // Also call the external callback if provided
494
+ on_row_chat_click?.(row._row_id, row_index);
495
+ } })), allow_delete_row && (_jsx("button", { type: "button", onClick: () => delete_row(row._row_id), disabled: disabled, className: cn('cls_data_table_delete_btn flex items-center justify-center h-8 w-8 rounded-md', 'text-muted-foreground hover:text-destructive hover:bg-destructive/10', 'focus:outline-none focus:ring-1 focus:ring-ring', disabled && 'cursor-not-allowed opacity-50'), title: "Delete row", children: _jsx(HiTrash, { className: "h-4 w-4" }) }))] }) }))] }, row._row_id)))), show_subtotal_row && rows.length > 0 && (_jsxs("tr", { className: "cls_data_table_subtotal_row bg-muted/50 font-medium", children: [show_row_numbers && _jsx("td", { className: "px-2 py-2" }), columns.map((column, idx) => {
496
+ const agg_value = calculate_aggregation(column, rows);
497
+ const agg_label = column.aggregation?.label || 'Total';
498
+ return (_jsxs("td", { className: cn('cls_data_table_subtotal_cell px-2 py-2 text-sm', column.field_type === 'numeric' && 'text-right'), children: [idx === 0 && agg_value === null && (_jsx("span", { className: "text-muted-foreground", children: agg_label })), agg_value !== null && (_jsxs("span", { children: [idx === 0 && `${agg_label}: `, format_number(agg_value, column.constraints?.num_decimals)] }))] }, column.id));
499
+ }), show_actions_column && _jsx("td", { className: "px-2 py-2" })] }))] })] }) }), allow_add_row && (_jsxs("div", { className: "cls_data_table_add_row_wrapper mt-2", children: [_jsxs("button", { type: "button", onClick: add_row, disabled: disabled || (max_rows !== undefined && rows.length >= max_rows), className: cn('cls_data_table_add_row_btn flex items-center gap-1 px-3 py-1.5 rounded-md text-sm', 'border border-input bg-transparent hover:bg-accent', 'focus:outline-none focus:ring-1 focus:ring-ring', 'disabled:cursor-not-allowed disabled:opacity-50'), children: [_jsx(HiPlus, { className: "h-4 w-4" }), "Add Row"] }), max_rows !== undefined && (_jsxs("span", { className: "text-xs text-muted-foreground ml-2", children: [rows.length, "/", max_rows, " rows"] }))] })), _jsx(CollabFormFieldError, { field_id_final: field_id_final, error: error, error_class_name: error_class_name }), active_row_chat && hazo_chat_group_id && HazoChatComponent && (_jsxs("div", { className: cn('cls_data_table_row_chat mt-4 border rounded-lg overflow-hidden', chat_background_color), children: [_jsxs("div", { className: "cls_data_table_row_chat_header flex items-center justify-between px-4 py-2 border-b bg-background", children: [_jsxs("span", { className: "text-sm font-medium", children: ["Chat - Row ", active_row_chat.row_index + 1] }), _jsx("button", { type: "button", onClick: () => set_active_row_chat(null), className: "text-muted-foreground hover:text-foreground", title: "Close chat", children: _jsx(HiX, { className: "h-4 w-4" }) })] }), _jsx("div", { className: "cls_data_table_row_chat_content h-[400px]", children: _jsx(HazoChatComponent, { chat_group_id: hazo_chat_group_id, reference_id: `${hazo_chat_reference_id || field_id_final}_row_${active_row_chat.row_id}`, reference_type: hazo_chat_reference_type || 'table_row', api_base_url: hazo_chat_api_base_url, timezone: hazo_chat_timezone, title: `${hazo_chat_title || label} - Row ${active_row_chat.row_index + 1}`, subtitle: hazo_chat_subtitle, realtime_mode: hazo_chat_realtime_mode, polling_interval: hazo_chat_polling_interval, messages_per_page: hazo_chat_messages_per_page, show_sidebar_toggle: hazo_chat_show_sidebar_toggle, show_delete_button: hazo_chat_show_delete_button, bubble_radius: hazo_chat_bubble_radius, className: cn('h-full w-full', hazo_chat_class_name) }) })] }))] }));
500
+ });
501
+ HazoCollabFormDataTable.displayName = 'HazoCollabFormDataTable';
502
+ //# sourceMappingURL=hazo_collab_form_data_table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hazo_collab_form_data_table.js","sourceRoot":"","sources":["../../src/components/hazo_collab_form_data_table.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hazo_collab_form_date.d.ts","sourceRoot":"","sources":["../../src/components/hazo_collab_form_date.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAQL,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACd,MAAM,4BAA4B,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAE3C;;;;OAIG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,EAAE,MAAM,QAAQ,EAAE,CAAC;CACjC;AAgCD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2HA2f7B,CAAC"}
1
+ {"version":3,"file":"hazo_collab_form_date.d.ts","sourceRoot":"","sources":["../../src/components/hazo_collab_form_date.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAUL,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACd,MAAM,4BAA4B,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAE3C;;;;OAIG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,EAAE,MAAM,QAAQ,EAAE,CAAC;CACjC;AAgCD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2HAgiB7B,CAAC"}