hazo_collab_forms 2.0.3 → 2.0.5
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/CHANGE_LOG.md +14 -0
- package/README.md +127 -3
- package/dist/components/_internal_form_set.d.ts +1 -1
- package/dist/components/_internal_form_set.d.ts.map +1 -1
- package/dist/components/_internal_form_set.js +2 -2
- package/dist/components/_internal_form_set.js.map +1 -1
- package/dist/components/hazo_collab_form_view/types.d.ts +6 -2
- package/dist/components/hazo_collab_form_view/types.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/views/summary_view.js +2 -2
- package/dist/components/hazo_collab_form_view/views/summary_view.js.map +1 -1
- package/dist/components/hazo_data_form/field_renderers/table_field.d.ts.map +1 -1
- package/dist/components/hazo_data_form/field_renderers/table_field.js +3 -2
- package/dist/components/hazo_data_form/field_renderers/table_field.js.map +1 -1
- package/dist/components/hazo_data_form/field_renderers/table_reference_accordion.d.ts +14 -0
- package/dist/components/hazo_data_form/field_renderers/table_reference_accordion.d.ts.map +1 -0
- package/dist/components/hazo_data_form/field_renderers/table_reference_accordion.js +84 -0
- package/dist/components/hazo_data_form/field_renderers/table_reference_accordion.js.map +1 -0
- package/dist/components/hazo_data_form/ghost_form_panel.d.ts +27 -0
- package/dist/components/hazo_data_form/ghost_form_panel.d.ts.map +1 -0
- package/dist/components/hazo_data_form/ghost_form_panel.js +92 -0
- package/dist/components/hazo_data_form/ghost_form_panel.js.map +1 -0
- package/dist/components/hazo_data_form/group_renderer.d.ts +4 -1
- package/dist/components/hazo_data_form/group_renderer.d.ts.map +1 -1
- package/dist/components/hazo_data_form/group_renderer.js +61 -37
- package/dist/components/hazo_data_form/group_renderer.js.map +1 -1
- package/dist/components/hazo_data_form/hazo_data_form.d.ts +4 -1
- package/dist/components/hazo_data_form/hazo_data_form.d.ts.map +1 -1
- package/dist/components/hazo_data_form/hazo_data_form.js +154 -7
- package/dist/components/hazo_data_form/hazo_data_form.js.map +1 -1
- package/dist/components/hazo_data_form/index.d.ts +4 -0
- package/dist/components/hazo_data_form/index.d.ts.map +1 -1
- package/dist/components/hazo_data_form/index.js +4 -0
- package/dist/components/hazo_data_form/index.js.map +1 -1
- package/dist/components/hazo_data_form/pdf_panel.d.ts +24 -0
- package/dist/components/hazo_data_form/pdf_panel.d.ts.map +1 -0
- package/dist/components/hazo_data_form/pdf_panel.js +29 -0
- package/dist/components/hazo_data_form/pdf_panel.js.map +1 -0
- package/dist/components/hazo_data_form/section_renderer.d.ts +4 -1
- package/dist/components/hazo_data_form/section_renderer.d.ts.map +1 -1
- package/dist/components/hazo_data_form/section_renderer.js +2 -2
- package/dist/components/hazo_data_form/section_renderer.js.map +1 -1
- package/dist/components/hazo_data_form/shared/data_form_field_layout.d.ts.map +1 -1
- package/dist/components/hazo_data_form/shared/data_form_field_layout.js +2 -2
- package/dist/components/hazo_data_form/shared/data_form_field_layout.js.map +1 -1
- package/dist/components/hazo_data_form/types.d.ts +26 -0
- package/dist/components/hazo_data_form/types.d.ts.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '../../utils/cn.js';
|
|
3
|
+
import { DataFormLabel } from './shared/data_form_label.js';
|
|
4
|
+
import { DataFormBadge } from './shared/data_form_badge.js';
|
|
5
|
+
/**
|
|
6
|
+
* Check if a field tree (recursively) contains a given field ID
|
|
7
|
+
*/
|
|
8
|
+
function tree_contains(fields, field_id) {
|
|
9
|
+
if (!fields)
|
|
10
|
+
return false;
|
|
11
|
+
for (const f of fields) {
|
|
12
|
+
if (f.id === field_id)
|
|
13
|
+
return true;
|
|
14
|
+
if (f.fields && tree_contains(f.fields, field_id))
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
function GhostField({ field, config, upload_enabled, badge_column_width, value_column_width, force_layout, is_active, children, }) {
|
|
20
|
+
// Active field in a vertical group — render PdfPanel here
|
|
21
|
+
if (is_active) {
|
|
22
|
+
return (_jsx("div", { "data-ghost-field-id": field.id, style: { visibility: 'visible' }, children: _jsx("div", { style: { position: 'sticky', top: 0, height: 'calc(100vh - 40px)' }, children: children }) }));
|
|
23
|
+
}
|
|
24
|
+
const layout = force_layout || field.label_position || 'inline';
|
|
25
|
+
const is_inline = layout === 'inline';
|
|
26
|
+
const has_badge = Boolean(field.badge || field.formula_label);
|
|
27
|
+
const show_file_area = upload_enabled;
|
|
28
|
+
const value_width = field.value_width || value_column_width || '200px';
|
|
29
|
+
if (is_inline) {
|
|
30
|
+
return (_jsxs("div", { className: "cls_data_form_field_row flex items-center gap-2 py-1", "data-ghost-field-id": field.id, children: [_jsx("div", { className: "cls_data_form_label_col flex-1 min-w-0", children: _jsx(DataFormLabel, { field: field, config: config }) }), has_badge && (_jsx(DataFormBadge, { badge: field.badge, formula_label: field.formula_label, config: config, column_width: badge_column_width })), _jsx("div", { className: "cls_data_form_value_col shrink-0", style: { width: value_width, height: 36 } }), show_file_area && (_jsx("div", { className: "shrink-0 ml-1", style: { width: 26 } }))] }));
|
|
31
|
+
}
|
|
32
|
+
// Stacked layout (used in horizontal groups)
|
|
33
|
+
return (_jsxs("div", { className: "cls_data_form_field_stacked flex flex-col gap-1 py-1", "data-ghost-field-id": field.id, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(DataFormLabel, { field: field, config: config }), has_badge && (_jsx(DataFormBadge, { badge: field.badge, formula_label: field.formula_label, config: config }))] }), _jsxs("div", { className: "flex items-start gap-1", children: [_jsx("div", { className: "flex-1 min-w-0", style: { height: 36 } }), show_file_area && (_jsx("div", { className: "shrink-0 ml-1", style: { width: 26 } }))] })] }));
|
|
34
|
+
}
|
|
35
|
+
function GhostGroup({ group, config, upload_enabled, active_field_id, collapsible = false, is_collapsed = false, children, }) {
|
|
36
|
+
const fields = group.fields || [];
|
|
37
|
+
const orientation = group.orientation || 'vertical';
|
|
38
|
+
const is_horizontal = orientation === 'horizontal';
|
|
39
|
+
const has_header = Boolean(group.label);
|
|
40
|
+
const is_collapsible = collapsible && has_header;
|
|
41
|
+
// For horizontal groups, check if the active field is inside this group.
|
|
42
|
+
// If so, render the PdfPanel at full width after the flex row instead of
|
|
43
|
+
// inside a flex:1 item (which would constrain the panel width).
|
|
44
|
+
const horizontal_has_active = is_horizontal && tree_contains(fields, active_field_id);
|
|
45
|
+
const variant_style = group.style_variant && config.style_resolver.has_style(group.style_variant)
|
|
46
|
+
? config.style_resolver.to_style(group.style_variant)
|
|
47
|
+
: undefined;
|
|
48
|
+
const column_headers = group.column_headers;
|
|
49
|
+
return (_jsxs("div", { className: cn('cls_data_form_group', 'mb-2'), children: [has_header && (_jsxs("div", { className: cn('cls_data_form_group_header', 'flex items-center gap-2 py-1.5 px-2 mb-1', is_collapsible && 'cursor-pointer select-none'), style: {
|
|
50
|
+
...variant_style,
|
|
51
|
+
...(!variant_style && !group.item_code ? { borderBottom: '1px solid #e5e7eb' } : {}),
|
|
52
|
+
}, children: [is_collapsible && (_jsx("svg", { className: cn('w-3.5 h-3.5 shrink-0 transition-transform', is_collapsed && '-rotate-90'), fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })), group.item_code ? (_jsx(DataFormLabel, { field: group, config: config })) : (_jsx("span", { className: "font-semibold text-sm text-gray-900", children: group.label })), (group.badge || group.formula_label) && (_jsx(DataFormBadge, { badge: group.badge, formula_label: group.formula_label, config: config }))] })), !(is_collapsible && is_collapsed) && (_jsxs(_Fragment, { children: [column_headers && column_headers.length > 0 && (_jsxs("div", { className: "cls_data_form_column_headers flex items-center gap-2 px-2 py-1 border-b border-gray-200 mb-1", children: [_jsx("div", { className: "flex-1" }), group.badge_column_width && (_jsx("div", { style: { width: group.badge_column_width }, className: "shrink-0" })), column_headers.map((header, idx) => (_jsx("div", { className: "shrink-0 text-xs font-medium text-gray-500 text-center", style: { width: header.width || group.value_column_width || '200px' }, children: header.label }, idx)))] })), _jsx("div", { className: cn('cls_data_form_group_fields', is_horizontal ? 'flex flex-wrap gap-4' : 'flex flex-col'), children: fields.map((field) => {
|
|
53
|
+
if (field.visibility === 'hidden')
|
|
54
|
+
return null;
|
|
55
|
+
// Nested group (recursive)
|
|
56
|
+
if (field.field_type === 'group') {
|
|
57
|
+
const group_el = (_jsx(GhostGroup, { group: field, config: config, upload_enabled: upload_enabled, active_field_id: active_field_id, children: children }, field.id));
|
|
58
|
+
if (is_horizontal) {
|
|
59
|
+
return (_jsx("div", { style: { flex: 1, minWidth: 0 }, children: group_el }, field.id));
|
|
60
|
+
}
|
|
61
|
+
return group_el;
|
|
62
|
+
}
|
|
63
|
+
// In a horizontal group with the active field, render all fields
|
|
64
|
+
// as non-active ghost placeholders (PdfPanel is placed after the row)
|
|
65
|
+
const field_is_active = horizontal_has_active ? false : (field.id === active_field_id);
|
|
66
|
+
const field_el = (_jsx(GhostField, { field: field, config: config, upload_enabled: upload_enabled, badge_column_width: group.badge_column_width, value_column_width: group.value_column_width, force_layout: is_horizontal ? 'stacked' : undefined, is_active: field_is_active, children: children }, field.id));
|
|
67
|
+
if (is_horizontal) {
|
|
68
|
+
return (_jsx("div", { style: { flex: 1, minWidth: 0 }, children: field_el }, field.id));
|
|
69
|
+
}
|
|
70
|
+
return field_el;
|
|
71
|
+
}) }), horizontal_has_active && (_jsx("div", { style: { visibility: 'visible' }, children: _jsx("div", { style: { position: 'sticky', top: 0, height: 'calc(100vh - 40px)' }, children: children }) }))] }))] }));
|
|
72
|
+
}
|
|
73
|
+
function GhostSection({ section, config, upload_enabled, active_field_id, show_header, collapsible, is_collapsed, collapsible_groups, collapsed_groups_set, children, }) {
|
|
74
|
+
const groups = section.groups || [];
|
|
75
|
+
const section_name = section.section_name || '';
|
|
76
|
+
const variant_style = section.style_variant && config.style_resolver.has_style(section.style_variant)
|
|
77
|
+
? config.style_resolver.to_style(section.style_variant)
|
|
78
|
+
: undefined;
|
|
79
|
+
return (_jsxs("div", { className: cn('cls_data_form_section', 'mb-4'), children: [show_header && section_name && (_jsxs("div", { className: cn('cls_data_form_section_header', 'flex items-center gap-2 py-2 px-3 rounded-t', collapsible && 'cursor-pointer select-none', !variant_style && 'bg-gray-100 border-b border-gray-200'), style: variant_style, children: [collapsible && (_jsx("svg", { className: cn('w-4 h-4 shrink-0 transition-transform', is_collapsed && '-rotate-90'), fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })), _jsx("span", { className: "font-semibold text-sm", children: section_name })] })), !is_collapsed && (_jsxs("div", { className: cn('cls_data_form_section_content', 'px-1 pt-1'), children: [groups.map((group) => {
|
|
80
|
+
if (group.visibility === 'hidden')
|
|
81
|
+
return null;
|
|
82
|
+
return (_jsx(GhostGroup, { group: group, config: config, upload_enabled: upload_enabled, active_field_id: active_field_id, collapsible: group.collapsible ?? collapsible_groups, is_collapsed: collapsed_groups_set?.has(group.id) ?? false, children: children }, group.id));
|
|
83
|
+
}), groups.length === 0 && (_jsx("div", { className: "text-sm text-gray-400 py-4 text-center italic", children: "No fields in this section" }))] }))] }));
|
|
84
|
+
}
|
|
85
|
+
// ─── Ghost Form Panel (top-level) ────────────────────────────
|
|
86
|
+
export function GhostFormPanel({ sections, config, active_field_id, collapsed_set, show_section_headers, upload_enabled, collapsible_sections, collapsible_groups, collapsed_groups_set, children, }) {
|
|
87
|
+
return (_jsxs("div", { className: "cls_data_form_ghost w-full", style: { visibility: 'hidden' }, children: [sections.map((section, index) => {
|
|
88
|
+
const section_name = section.section_name || `section_${index}`;
|
|
89
|
+
return (_jsx(GhostSection, { section: section, section_index: index, config: config, upload_enabled: upload_enabled, active_field_id: active_field_id, show_header: show_section_headers, collapsible: collapsible_sections, is_collapsed: collapsed_set.has(section_name), collapsible_groups: collapsible_groups, collapsed_groups_set: collapsed_groups_set, children: children }, section_name));
|
|
90
|
+
}), _jsx("div", { style: { height: 'calc(100vh - 80px)' } })] }));
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=ghost_form_panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghost_form_panel.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/ghost_form_panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,9 @@ export interface GroupRendererProps {
|
|
|
15
15
|
on_upload_click?: (field_id: string) => void;
|
|
16
16
|
upload_enabled?: boolean;
|
|
17
17
|
reference_data?: ReferenceData;
|
|
18
|
+
collapsible?: boolean;
|
|
19
|
+
initial_collapsed?: boolean;
|
|
20
|
+
on_collapse_toggle?: (group_id: string, collapsed: boolean) => void;
|
|
18
21
|
}
|
|
19
|
-
export declare function GroupRenderer({ group, mode, form_data, config, on_field_change, on_doc_link_click, file_uploads, on_upload_click, upload_enabled, reference_data, }: GroupRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function GroupRenderer({ group, mode, form_data, config, on_field_change, on_doc_link_click, file_uploads, on_upload_click, upload_enabled, reference_data, collapsible, initial_collapsed, on_collapse_toggle, }: GroupRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
20
23
|
//# sourceMappingURL=group_renderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group_renderer.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_data_form/group_renderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAsB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"group_renderer.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_data_form/group_renderer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAsB,MAAM,YAAY,CAAC;AAwBtI,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACrE;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,IAAI,EACJ,SAAS,EACT,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAmB,EACnB,iBAAyB,EACzB,kBAAkB,GACnB,EAAE,kBAAkB,2CA6MpB"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Group renderer for HazoDataForm
|
|
4
|
+
* Renders a group (ViewFieldConfig with fields) with optional sub-section header,
|
|
5
|
+
* badge, item_code, style_variant, orientation, and column alignment
|
|
6
|
+
*/
|
|
7
|
+
import { useState, useCallback } from 'react';
|
|
2
8
|
import { cn } from '../../utils/cn.js';
|
|
3
9
|
import { get_field_uploads } from '../../utils/data_form_uploads.js';
|
|
4
10
|
import { DataFormFieldRenderer } from './field_renderers/index.js';
|
|
@@ -9,6 +15,9 @@ import { format_currency } from '../../utils/financial_format.js';
|
|
|
9
15
|
* Format a ReferenceValueData into a display annotation string
|
|
10
16
|
*/
|
|
11
17
|
function format_reference_annotation(ref) {
|
|
18
|
+
// Array values are handled by TableReferenceAccordion, not inline text
|
|
19
|
+
if (Array.isArray(ref.value))
|
|
20
|
+
return undefined;
|
|
12
21
|
let formatted;
|
|
13
22
|
if (typeof ref.value === 'boolean') {
|
|
14
23
|
formatted = ref.value ? 'Yes' : 'No';
|
|
@@ -21,54 +30,69 @@ function format_reference_annotation(ref) {
|
|
|
21
30
|
}
|
|
22
31
|
return ref.label ? `${ref.label}: ${formatted}` : `Ref: ${formatted}`;
|
|
23
32
|
}
|
|
24
|
-
export function GroupRenderer({ group, mode, form_data, config, on_field_change, on_doc_link_click, file_uploads, on_upload_click, upload_enabled, reference_data, }) {
|
|
33
|
+
export function GroupRenderer({ group, mode, form_data, config, on_field_change, on_doc_link_click, file_uploads, on_upload_click, upload_enabled, reference_data, collapsible = false, initial_collapsed = false, on_collapse_toggle, }) {
|
|
25
34
|
const fields = group.fields || [];
|
|
26
35
|
const orientation = group.orientation || 'vertical';
|
|
27
36
|
const is_horizontal = orientation === 'horizontal';
|
|
28
37
|
const has_header = Boolean(group.label);
|
|
38
|
+
// Collapse state — only meaningful when has_header && collapsible
|
|
39
|
+
const is_collapsible = collapsible && has_header;
|
|
40
|
+
const [is_collapsed, set_is_collapsed] = useState(initial_collapsed);
|
|
41
|
+
const handle_toggle = useCallback(() => {
|
|
42
|
+
const new_state = !is_collapsed;
|
|
43
|
+
set_is_collapsed(new_state);
|
|
44
|
+
on_collapse_toggle?.(group.id, new_state);
|
|
45
|
+
}, [is_collapsed, group.id, on_collapse_toggle]);
|
|
29
46
|
// Style for group header
|
|
30
47
|
const variant_style = group.style_variant && config.style_resolver.has_style(group.style_variant)
|
|
31
48
|
? config.style_resolver.to_style(group.style_variant)
|
|
32
49
|
: undefined;
|
|
33
50
|
// Column headers for paired layouts
|
|
34
51
|
const column_headers = group.column_headers;
|
|
35
|
-
return (_jsxs("div", { className: cn('cls_data_form_group', 'mb-2'), children: [has_header && (_jsxs("div", { className: cn('cls_data_form_group_header', 'flex items-center gap-2 py-1.5 px-2 mb-1'), style: {
|
|
52
|
+
return (_jsxs("div", { className: cn('cls_data_form_group', 'mb-2'), children: [has_header && (_jsxs("div", { className: cn('cls_data_form_group_header', 'flex items-center gap-2 py-1.5 px-2 mb-1', is_collapsible && 'cursor-pointer select-none'), style: {
|
|
36
53
|
...variant_style,
|
|
37
54
|
...(!variant_style && !group.item_code ? { borderBottom: '1px solid #e5e7eb' } : {}),
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
// Handle nested groups (recursive)
|
|
43
|
-
if (field.field_type === 'group') {
|
|
44
|
-
const group_el = (_jsx(GroupRenderer, { group: field, mode: mode, form_data: form_data, config: config, on_field_change: on_field_change, on_doc_link_click: on_doc_link_click, file_uploads: file_uploads, on_upload_click: on_upload_click, upload_enabled: upload_enabled, reference_data: reference_data }, field.id));
|
|
45
|
-
// Wrap nested groups in flex:1 for even distribution in horizontal layout
|
|
46
|
-
if (is_horizontal) {
|
|
47
|
-
return (_jsx("div", { style: { flex: 1, minWidth: 0 }, children: group_el }, field.id));
|
|
48
|
-
}
|
|
49
|
-
return group_el;
|
|
50
|
-
}
|
|
51
|
-
const field_value = form_data[field.id];
|
|
52
|
-
const paired_value = field.paired_field ? form_data[field.paired_field.id] : undefined;
|
|
53
|
-
// Resolve accept_files: field-level overrides form-level default
|
|
54
|
-
const field_accepts_files = field.accept_files ?? config.default_accept_files;
|
|
55
|
-
const is_upload_enabled = field_accepts_files && upload_enabled;
|
|
56
|
-
// Get field uploads from explicit prop or from form_data convention
|
|
57
|
-
const resolved_uploads = file_uploads?.[field.id] ?? get_field_uploads(form_data, field.id);
|
|
58
|
-
// Resolve reference annotation
|
|
59
|
-
const ref = reference_data?.[field.id];
|
|
60
|
-
const ref_annotation = ref ? format_reference_annotation(ref) : undefined;
|
|
61
|
-
const ref_bg_color = ref?.background_color;
|
|
62
|
-
const field_el = (_jsx(DataFormFieldRenderer, { field: field, mode: mode, value: field_value, config: config, on_change: (val) => on_field_change(field.id, val), on_doc_link_click: on_doc_link_click && field.doc_links?.length
|
|
63
|
-
? () => on_doc_link_click({ field_id: field.id, doc_links: field.doc_links })
|
|
64
|
-
: undefined, badge_column_width: group.badge_column_width, value_column_width: group.value_column_width, paired_value: paired_value, paired_on_change: field.paired_field
|
|
65
|
-
? (val) => on_field_change(field.paired_field.id, val)
|
|
66
|
-
: undefined, field_uploads: resolved_uploads, on_upload_click: on_upload_click ? () => on_upload_click(field.id) : undefined, upload_enabled: is_upload_enabled, reserve_file_column: upload_enabled, force_layout: is_horizontal ? 'stacked' : undefined, reference_annotation: ref_annotation, reference_background_color: ref_bg_color, form_data: field.field_type === 'table' ? form_data : undefined, on_field_change: field.field_type === 'table' ? on_field_change : undefined }, field.id));
|
|
67
|
-
// Wrap fields in flex:1 for even distribution in horizontal layout
|
|
68
|
-
if (is_horizontal) {
|
|
69
|
-
return (_jsx("div", { style: { flex: 1, minWidth: 0 }, children: field_el }, field.id));
|
|
55
|
+
}, onClick: is_collapsible ? handle_toggle : undefined, role: is_collapsible ? 'button' : undefined, tabIndex: is_collapsible ? 0 : undefined, onKeyDown: is_collapsible ? (e) => {
|
|
56
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
handle_toggle();
|
|
70
59
|
}
|
|
71
|
-
|
|
72
|
-
|
|
60
|
+
} : undefined, children: [is_collapsible && (_jsx("svg", { className: cn('w-3.5 h-3.5 shrink-0 transition-transform', is_collapsed && '-rotate-90'), fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })), group.item_code && (_jsx(DataFormLabel, { field: group, config: config })), !group.item_code && (_jsx("span", { className: "font-semibold text-sm text-gray-900", children: group.label })), (group.badge || group.formula_label) && (_jsx(DataFormBadge, { badge: group.badge, formula_label: group.formula_label, config: config }))] })), !(is_collapsible && is_collapsed) && (_jsxs(_Fragment, { children: [column_headers && column_headers.length > 0 && (_jsxs("div", { className: "cls_data_form_column_headers flex items-center gap-2 px-2 py-1 border-b border-gray-200 mb-1", children: [_jsx("div", { className: "flex-1" }), group.badge_column_width && (_jsx("div", { style: { width: group.badge_column_width }, className: "shrink-0" })), column_headers.map((header, idx) => (_jsx("div", { className: "shrink-0 text-xs font-medium text-gray-500 text-center", style: { width: header.width || group.value_column_width || '200px' }, children: header.label }, idx)))] })), _jsx("div", { className: cn('cls_data_form_group_fields', is_horizontal ? 'flex flex-wrap gap-4' : 'flex flex-col'), children: fields.map((field) => {
|
|
61
|
+
// Skip hidden fields
|
|
62
|
+
if (field.visibility === 'hidden')
|
|
63
|
+
return null;
|
|
64
|
+
// Handle nested groups (recursive)
|
|
65
|
+
if (field.field_type === 'group') {
|
|
66
|
+
const group_el = (_jsx(GroupRenderer, { group: field, mode: mode, form_data: form_data, config: config, on_field_change: on_field_change, on_doc_link_click: on_doc_link_click, file_uploads: file_uploads, on_upload_click: on_upload_click, upload_enabled: upload_enabled, reference_data: reference_data, collapsible: field.collapsible ?? collapsible, initial_collapsed: field.initial_collapsed ?? false, on_collapse_toggle: on_collapse_toggle }, field.id));
|
|
67
|
+
// Wrap nested groups in flex:1 for even distribution in horizontal layout
|
|
68
|
+
if (is_horizontal) {
|
|
69
|
+
return (_jsx("div", { style: { flex: 1, minWidth: 0 }, children: group_el }, field.id));
|
|
70
|
+
}
|
|
71
|
+
return group_el;
|
|
72
|
+
}
|
|
73
|
+
const field_value = form_data[field.id];
|
|
74
|
+
const paired_value = field.paired_field ? form_data[field.paired_field.id] : undefined;
|
|
75
|
+
// Resolve accept_files: field-level overrides form-level default
|
|
76
|
+
const field_accepts_files = field.accept_files ?? config.default_accept_files;
|
|
77
|
+
const is_upload_enabled = field_accepts_files && upload_enabled;
|
|
78
|
+
// Get field uploads from explicit prop or from form_data convention
|
|
79
|
+
const resolved_uploads = file_uploads?.[field.id] ?? get_field_uploads(form_data, field.id);
|
|
80
|
+
// Resolve reference annotation
|
|
81
|
+
const ref = reference_data?.[field.id];
|
|
82
|
+
const ref_annotation = ref ? format_reference_annotation(ref) : undefined;
|
|
83
|
+
const ref_bg_color = ref?.background_color;
|
|
84
|
+
// For table fields, pass the full reference data object (accordion rendering)
|
|
85
|
+
const ref_value_data = field.field_type === 'table' && ref && Array.isArray(ref.value) ? ref : undefined;
|
|
86
|
+
const field_el = (_jsx(DataFormFieldRenderer, { field: field, mode: mode, value: field_value, config: config, on_change: (val) => on_field_change(field.id, val), on_doc_link_click: on_doc_link_click && field.doc_links?.length
|
|
87
|
+
? () => on_doc_link_click({ field_id: field.id, doc_links: field.doc_links })
|
|
88
|
+
: undefined, badge_column_width: group.badge_column_width, value_column_width: group.value_column_width, paired_value: paired_value, paired_on_change: field.paired_field
|
|
89
|
+
? (val) => on_field_change(field.paired_field.id, val)
|
|
90
|
+
: undefined, field_uploads: resolved_uploads, on_upload_click: on_upload_click ? () => on_upload_click(field.id) : undefined, upload_enabled: is_upload_enabled, reserve_file_column: upload_enabled, force_layout: is_horizontal ? 'stacked' : undefined, reference_annotation: ref_annotation, reference_background_color: ref_bg_color, reference_value_data: ref_value_data, form_data: field.field_type === 'table' ? form_data : undefined, on_field_change: field.field_type === 'table' ? on_field_change : undefined }, field.id));
|
|
91
|
+
// Wrap fields in flex:1 for even distribution in horizontal layout
|
|
92
|
+
if (is_horizontal) {
|
|
93
|
+
return (_jsx("div", { style: { flex: 1, minWidth: 0 }, children: field_el }, field.id));
|
|
94
|
+
}
|
|
95
|
+
return field_el;
|
|
96
|
+
}) })] }))] }));
|
|
73
97
|
}
|
|
74
98
|
//# sourceMappingURL=group_renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group_renderer.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/group_renderer.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"group_renderer.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/group_renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
* Renders form sections/groups/fields using ViewSection/ViewFieldConfig types.
|
|
5
5
|
* Uses form_data + on_field_change pattern (no react-hook-form).
|
|
6
6
|
* Supports computed fields, financial formatting, masked inputs, and tables.
|
|
7
|
+
*
|
|
8
|
+
* When file_panel_display_mode='sidebar', wraps content in a resizable panel
|
|
9
|
+
* with an embedded PdfViewer on the right side.
|
|
7
10
|
*/
|
|
8
11
|
import type { HazoDataFormProps } from './types.js';
|
|
9
|
-
export declare function HazoDataForm({ sections, mode, form_data, on_field_change, on_form_data_change, styles_config, field_types_config, default_currency_symbol, default_decimal_places, percentage_suffix, on_doc_link_click, enable_file_upload, default_accept_files, on_upload_click, file_uploads, show_section_headers, collapsible_sections, collapsed_sections, on_section_toggle, reference_data, on_submit, class_name, }: HazoDataFormProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare function HazoDataForm({ sections, mode, form_data, on_field_change, on_form_data_change, styles_config, field_types_config, default_currency_symbol, default_decimal_places, percentage_suffix, on_doc_link_click, enable_file_upload, default_accept_files, on_upload_click, file_panel_display_mode, pdf_panel_default_size, pdf_panel_min_size, pdf_viewer_props, on_panel_open, on_panel_close, on_panel_pop_out, file_access_provider, on_panel_upload, on_panel_file_delete, file_uploads, show_section_headers, collapsible_sections, collapsed_sections, on_section_toggle, collapsible_groups, collapsed_groups, on_group_toggle, reference_data, on_submit, class_name, }: HazoDataFormProps): import("react/jsx-runtime").JSX.Element;
|
|
10
13
|
//# sourceMappingURL=hazo_data_form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_data_form.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_data_form/hazo_data_form.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hazo_data_form.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_data_form/hazo_data_form.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,OAAO,KAAK,EAAE,iBAAiB,EAAmC,MAAM,YAAY,CAAC;AA8ErF,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAa,EACb,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,uBAA6B,EAC7B,sBAA0B,EAC1B,iBAAuB,EACvB,iBAAiB,EACjB,kBAA0B,EAC1B,oBAA4B,EAC5B,eAAe,EACf,uBAAuB,EACvB,sBAA2B,EAC3B,kBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,oBAA2B,EAC3B,oBAA4B,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,kBAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,SAAS,EACT,UAAU,GACX,EAAE,iBAAiB,2CAyRnB"}
|
|
@@ -1,18 +1,24 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* HazoDataForm - Data entry form for working papers
|
|
4
4
|
*
|
|
5
5
|
* Renders form sections/groups/fields using ViewSection/ViewFieldConfig types.
|
|
6
6
|
* Uses form_data + on_field_change pattern (no react-hook-form).
|
|
7
7
|
* Supports computed fields, financial formatting, masked inputs, and tables.
|
|
8
|
+
*
|
|
9
|
+
* When file_panel_display_mode='sidebar', wraps content in a resizable panel
|
|
10
|
+
* with an embedded PdfViewer on the right side.
|
|
8
11
|
*/
|
|
9
|
-
import { useMemo, useCallback, useRef } from 'react';
|
|
12
|
+
import { useMemo, useCallback, useRef, useState, useEffect } from 'react';
|
|
10
13
|
import { cn } from '../../utils/cn.js';
|
|
11
14
|
import { create_style_resolver } from '../../utils/style_resolver.js';
|
|
12
15
|
import { use_computed_fields } from '../../utils/use_computed_fields.js';
|
|
13
16
|
import { DEFAULT_STYLES_CONFIG } from '../../types/style_variant.js';
|
|
14
17
|
import { DEFAULT_FIELD_TYPES_CONFIG } from '../../types/field_type_definition.js';
|
|
18
|
+
import { get_field_uploads } from '../../utils/data_form_uploads.js';
|
|
15
19
|
import { SectionRenderer } from './section_renderer.js';
|
|
20
|
+
import { PdfPanel } from './pdf_panel.js';
|
|
21
|
+
import { GhostFormPanel } from './ghost_form_panel.js';
|
|
16
22
|
/**
|
|
17
23
|
* Collect computed field definitions from all sections
|
|
18
24
|
*/
|
|
@@ -41,9 +47,124 @@ function collect_computed_fields(sections) {
|
|
|
41
47
|
}
|
|
42
48
|
return result;
|
|
43
49
|
}
|
|
44
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Find a field label by ID, searching nested groups recursively
|
|
52
|
+
*/
|
|
53
|
+
function find_field_label(sections, field_id) {
|
|
54
|
+
function search(fields) {
|
|
55
|
+
if (!fields)
|
|
56
|
+
return null;
|
|
57
|
+
for (const field of fields) {
|
|
58
|
+
if (field.id === field_id)
|
|
59
|
+
return field.label || field_id;
|
|
60
|
+
if (field.fields) {
|
|
61
|
+
const found = search(field.fields);
|
|
62
|
+
if (found)
|
|
63
|
+
return found;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
for (const section of sections) {
|
|
69
|
+
const found = search(section.groups);
|
|
70
|
+
if (found)
|
|
71
|
+
return found;
|
|
72
|
+
}
|
|
73
|
+
return field_id;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Convert UploadedFile[] to hazo_pdf FileItem[] format
|
|
77
|
+
*/
|
|
78
|
+
function uploads_to_file_items(uploads) {
|
|
79
|
+
return uploads.map((u) => ({
|
|
80
|
+
id: u.file_id,
|
|
81
|
+
name: u.filename,
|
|
82
|
+
url: u.url,
|
|
83
|
+
type: u.mime_type === 'application/pdf' ? 'pdf'
|
|
84
|
+
: u.mime_type.startsWith('image/') ? 'image'
|
|
85
|
+
: 'other',
|
|
86
|
+
mime_type: u.mime_type,
|
|
87
|
+
file_path: u.url,
|
|
88
|
+
size: u.size,
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
export function HazoDataForm({ sections, mode = 'edit', form_data, on_field_change, on_form_data_change, styles_config, field_types_config, default_currency_symbol = '$', default_decimal_places = 2, percentage_suffix = '%', on_doc_link_click, enable_file_upload = false, default_accept_files = false, on_upload_click, file_panel_display_mode, pdf_panel_default_size = 50, pdf_panel_min_size = 25, pdf_viewer_props, on_panel_open, on_panel_close, on_panel_pop_out, file_access_provider, on_panel_upload, on_panel_file_delete, file_uploads, show_section_headers = true, collapsible_sections = false, collapsed_sections, on_section_toggle, collapsible_groups = false, collapsed_groups, on_group_toggle, reference_data, on_submit, class_name, }) {
|
|
45
92
|
const form_data_ref = useRef(form_data);
|
|
46
93
|
form_data_ref.current = form_data;
|
|
94
|
+
const is_sidebar_mode = file_panel_display_mode === 'sidebar';
|
|
95
|
+
// ─── Sidebar panel state ────────────────────────────────────
|
|
96
|
+
const [panel_open, set_panel_open] = useState(false);
|
|
97
|
+
const [active_field_id, set_active_field_id] = useState(null);
|
|
98
|
+
const [active_field_label, set_active_field_label] = useState('');
|
|
99
|
+
const [is_popped_out, set_is_popped_out] = useState(false);
|
|
100
|
+
// Dynamic import of PdfViewerDialog for pop-out mode
|
|
101
|
+
const [PdfDialogComponent, set_pdf_dialog] = useState(null);
|
|
102
|
+
useEffect(() => {
|
|
103
|
+
if (!is_sidebar_mode)
|
|
104
|
+
return;
|
|
105
|
+
import('hazo_pdf')
|
|
106
|
+
.then((mod) => {
|
|
107
|
+
if (mod.PdfViewerDialog)
|
|
108
|
+
set_pdf_dialog(() => mod.PdfViewerDialog);
|
|
109
|
+
})
|
|
110
|
+
.catch(() => { });
|
|
111
|
+
}, [is_sidebar_mode]);
|
|
112
|
+
// Derive file items for the active field
|
|
113
|
+
const active_file_items = useMemo(() => {
|
|
114
|
+
if (!active_field_id)
|
|
115
|
+
return [];
|
|
116
|
+
const uploads = file_uploads?.[active_field_id] ?? get_field_uploads(form_data, active_field_id);
|
|
117
|
+
return uploads_to_file_items(uploads);
|
|
118
|
+
}, [form_data, active_field_id, file_uploads]);
|
|
119
|
+
// ─── Sidebar handlers ────────────────────────────────────────
|
|
120
|
+
const handle_sidebar_upload_click = useCallback((field_id) => {
|
|
121
|
+
const label = find_field_label(sections, field_id);
|
|
122
|
+
set_active_field_id(field_id);
|
|
123
|
+
set_active_field_label(label);
|
|
124
|
+
set_panel_open(true);
|
|
125
|
+
set_is_popped_out(false);
|
|
126
|
+
on_panel_open?.(field_id);
|
|
127
|
+
}, [sections, on_panel_open]);
|
|
128
|
+
const handle_panel_close = useCallback(() => {
|
|
129
|
+
set_panel_open(false);
|
|
130
|
+
set_active_field_id(null);
|
|
131
|
+
set_active_field_label('');
|
|
132
|
+
set_is_popped_out(false);
|
|
133
|
+
on_panel_close?.();
|
|
134
|
+
}, [on_panel_close]);
|
|
135
|
+
const handle_pop_out = useCallback(() => {
|
|
136
|
+
if (on_panel_pop_out && active_field_id) {
|
|
137
|
+
on_panel_pop_out(active_field_id, active_file_items);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// Use built-in PdfViewerDialog
|
|
141
|
+
set_is_popped_out(true);
|
|
142
|
+
}
|
|
143
|
+
}, [on_panel_pop_out, active_field_id, active_file_items]);
|
|
144
|
+
const handle_pop_out_close = useCallback(() => {
|
|
145
|
+
set_is_popped_out(false);
|
|
146
|
+
}, []);
|
|
147
|
+
// Wrap upload/delete callbacks to inject active_field_id for PdfPanel
|
|
148
|
+
const wrapped_panel_upload = useMemo(() => {
|
|
149
|
+
if (!on_panel_upload)
|
|
150
|
+
return undefined;
|
|
151
|
+
return (file, converted_pdf) => {
|
|
152
|
+
if (!active_field_id)
|
|
153
|
+
return Promise.resolve(undefined);
|
|
154
|
+
return on_panel_upload(active_field_id, file, converted_pdf);
|
|
155
|
+
};
|
|
156
|
+
}, [on_panel_upload, active_field_id]);
|
|
157
|
+
const wrapped_panel_delete = useMemo(() => {
|
|
158
|
+
if (!on_panel_file_delete)
|
|
159
|
+
return undefined;
|
|
160
|
+
return (file_id) => {
|
|
161
|
+
if (!active_field_id)
|
|
162
|
+
return;
|
|
163
|
+
on_panel_file_delete(active_field_id, file_id);
|
|
164
|
+
};
|
|
165
|
+
}, [on_panel_file_delete, active_field_id]);
|
|
166
|
+
// Resolve which upload click handler to use
|
|
167
|
+
const resolved_upload_click = is_sidebar_mode ? handle_sidebar_upload_click : on_upload_click;
|
|
47
168
|
// Create style resolver (memoized)
|
|
48
169
|
const resolved_styles_config = styles_config || DEFAULT_STYLES_CONFIG;
|
|
49
170
|
const resolved_field_types_config = field_types_config || DEFAULT_FIELD_TYPES_CONFIG;
|
|
@@ -87,14 +208,40 @@ export function HazoDataForm({ sections, mode = 'edit', form_data, on_field_chan
|
|
|
87
208
|
on_submit?.(form_data_ref.current);
|
|
88
209
|
}, [on_submit]);
|
|
89
210
|
const collapsed_set = useMemo(() => new Set(collapsed_sections || []), [collapsed_sections]);
|
|
90
|
-
const
|
|
211
|
+
const collapsed_groups_set = useMemo(() => new Set(collapsed_groups || []), [collapsed_groups]);
|
|
212
|
+
// ─── Form content (shared between both modes) ────────────────
|
|
213
|
+
const form_content = (_jsx("div", { className: cn('cls_data_form', 'w-full', class_name), children: sections.map((section, index) => {
|
|
91
214
|
const section_name = section.section_name || `section_${index}`;
|
|
92
|
-
return (_jsx(SectionRenderer, { section: section, section_index: index, mode: mode, form_data: form_data, config: config, on_field_change: handle_field_change, on_doc_link_click: on_doc_link_click, file_uploads: file_uploads, on_upload_click:
|
|
215
|
+
return (_jsx(SectionRenderer, { section: section, section_index: index, mode: mode, form_data: form_data, config: config, on_field_change: handle_field_change, on_doc_link_click: on_doc_link_click, file_uploads: file_uploads, on_upload_click: resolved_upload_click, upload_enabled: enable_file_upload, reference_data: reference_data, show_header: show_section_headers, collapsible: collapsible_sections, initial_collapsed: collapsed_set.has(section_name), on_collapse_toggle: on_section_toggle, collapsible_groups: collapsible_groups, collapsed_groups_set: collapsed_groups_set, on_group_toggle: on_group_toggle }, section_name));
|
|
93
216
|
}) }));
|
|
217
|
+
// ─── Sidebar layout ──────────────────────────────────────────
|
|
218
|
+
const show_sidebar = is_sidebar_mode && panel_open && active_field_id;
|
|
219
|
+
const render_content = () => {
|
|
220
|
+
if (show_sidebar) {
|
|
221
|
+
return (_jsxs("div", { className: "cls_data_form_sidebar_layout flex w-full", style: { position: 'relative' }, children: [_jsx("div", { style: {
|
|
222
|
+
width: `${100 - pdf_panel_default_size}%`,
|
|
223
|
+
borderRight: '1px solid #e5e7eb',
|
|
224
|
+
paddingBottom: 'calc(100vh - 80px)',
|
|
225
|
+
}, children: form_content }), _jsx("div", { className: "cls_data_form_ghost_column", style: {
|
|
226
|
+
position: 'absolute',
|
|
227
|
+
top: 0,
|
|
228
|
+
right: 0,
|
|
229
|
+
width: `${pdf_panel_default_size}%`,
|
|
230
|
+
}, children: _jsx(GhostFormPanel, { sections: sections, config: config, active_field_id: active_field_id, collapsed_set: collapsed_set, show_section_headers: show_section_headers, upload_enabled: enable_file_upload, collapsible_sections: collapsible_sections, collapsible_groups: collapsible_groups, collapsed_groups_set: collapsed_groups_set, children: _jsx(PdfPanel, { field_label: active_field_label ? `Files — ${active_field_label}` : 'Files', file_items: active_file_items, file_access_provider: file_access_provider, on_upload: wrapped_panel_upload, on_file_delete: wrapped_panel_delete, on_close: handle_panel_close, on_pop_out: handle_pop_out, viewer_props: pdf_viewer_props }) }) })] }));
|
|
231
|
+
}
|
|
232
|
+
return form_content;
|
|
233
|
+
};
|
|
234
|
+
// ─── Pop-out dialog (built-in PdfViewerDialog) ───────────────
|
|
235
|
+
const render_pop_out_dialog = () => {
|
|
236
|
+
if (!is_popped_out || !PdfDialogComponent || !active_field_id)
|
|
237
|
+
return null;
|
|
238
|
+
return (_jsx(PdfDialogComponent, { open: true, on_open_change: (open) => { if (!open)
|
|
239
|
+
handle_pop_out_close(); }, files: active_file_items, file_manager: file_access_provider, on_upload: wrapped_panel_upload, on_file_delete: wrapped_panel_delete, toolbar_enabled: true, show_save_button: false, on_close: handle_pop_out_close, direct_upload: true, viewer_title: active_field_label ? `Files — ${active_field_label}` : 'Files', dialog_width: "90vw", dialog_height: "85vh", ...(pdf_viewer_props || {}) }));
|
|
240
|
+
};
|
|
94
241
|
// Wrap in form tag if on_submit is provided
|
|
95
242
|
if (on_submit) {
|
|
96
|
-
return (
|
|
243
|
+
return (_jsxs("form", { onSubmit: handle_submit, className: "cls_data_form_wrapper", children: [render_content(), render_pop_out_dialog()] }));
|
|
97
244
|
}
|
|
98
|
-
return
|
|
245
|
+
return (_jsxs(_Fragment, { children: [render_content(), render_pop_out_dialog()] }));
|
|
99
246
|
}
|
|
100
247
|
//# sourceMappingURL=hazo_data_form.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_data_form.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/hazo_data_form.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"hazo_data_form.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/hazo_data_form.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,10 @@ export type { SectionRendererProps } from './section_renderer.js';
|
|
|
10
10
|
export { GroupRenderer } from './group_renderer.js';
|
|
11
11
|
export type { GroupRendererProps } from './group_renderer.js';
|
|
12
12
|
export { DataFormFieldRenderer, resolve_field_renderer } from './field_renderers/index.js';
|
|
13
|
+
export { TableReferenceAccordion } from './field_renderers/table_reference_accordion.js';
|
|
14
|
+
export type { TableReferenceAccordionProps } from './field_renderers/table_reference_accordion.js';
|
|
13
15
|
export { FileManagerButton } from './file_manager_button.js';
|
|
14
16
|
export type { FileManagerButtonProps } from './file_manager_button.js';
|
|
17
|
+
export { PdfPanel } from './pdf_panel.js';
|
|
18
|
+
export type { PdfPanelProps } from './pdf_panel.js';
|
|
15
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_data_form/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAGhG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_data_form/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAGhG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AACzF,YAAY,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAGnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGvE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -9,6 +9,10 @@ export { SectionRenderer } from './section_renderer.js';
|
|
|
9
9
|
export { GroupRenderer } from './group_renderer.js';
|
|
10
10
|
// Field renderers
|
|
11
11
|
export { DataFormFieldRenderer, resolve_field_renderer } from './field_renderers/index.js';
|
|
12
|
+
// Table reference accordion
|
|
13
|
+
export { TableReferenceAccordion } from './field_renderers/table_reference_accordion.js';
|
|
12
14
|
// File manager button
|
|
13
15
|
export { FileManagerButton } from './file_manager_button.js';
|
|
16
|
+
// PDF panel (sidebar)
|
|
17
|
+
export { PdfPanel } from './pdf_panel.js';
|
|
14
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,2BAA2B;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,8BAA8B;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,kBAAkB;AAClB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,2BAA2B;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,8BAA8B;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,kBAAkB;AAClB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,4BAA4B;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAGzF,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,sBAAsB;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|