hazo_collab_forms 1.1.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.
- package/README.md +114 -0
- package/dist/components/collab_form_file_upload.d.ts +65 -0
- package/dist/components/collab_form_file_upload.d.ts.map +1 -0
- package/dist/components/collab_form_file_upload.js +339 -0
- package/dist/components/collab_form_file_upload.js.map +1 -0
- package/dist/components/data_ok_checkbox.d.ts +36 -0
- package/dist/components/data_ok_checkbox.d.ts.map +1 -0
- package/dist/components/data_ok_checkbox.js +26 -0
- package/dist/components/data_ok_checkbox.js.map +1 -0
- package/dist/components/hazo_collab_form_base.d.ts +398 -0
- package/dist/components/hazo_collab_form_base.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_base.js +206 -0
- package/dist/components/hazo_collab_form_base.js.map +1 -0
- package/dist/components/hazo_collab_form_checkbox.d.ts +52 -0
- package/dist/components/hazo_collab_form_checkbox.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_checkbox.js +65 -0
- package/dist/components/hazo_collab_form_checkbox.js.map +1 -0
- package/dist/components/hazo_collab_form_combo.d.ts +91 -0
- package/dist/components/hazo_collab_form_combo.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_combo.js +192 -0
- package/dist/components/hazo_collab_form_combo.js.map +1 -0
- package/dist/components/hazo_collab_form_date.d.ts +71 -0
- package/dist/components/hazo_collab_form_date.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_date.js +251 -0
- package/dist/components/hazo_collab_form_date.js.map +1 -0
- package/dist/components/hazo_collab_form_group.d.ts +40 -0
- package/dist/components/hazo_collab_form_group.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_group.js +151 -0
- package/dist/components/hazo_collab_form_group.js.map +1 -0
- package/dist/components/hazo_collab_form_inputbox.d.ts +44 -0
- package/dist/components/hazo_collab_form_inputbox.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_inputbox.js +64 -0
- package/dist/components/hazo_collab_form_inputbox.js.map +1 -0
- package/dist/components/hazo_collab_form_radio.d.ts +73 -0
- package/dist/components/hazo_collab_form_radio.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_radio.js +65 -0
- package/dist/components/hazo_collab_form_radio.js.map +1 -0
- package/dist/components/hazo_collab_form_set.d.ts +181 -0
- package/dist/components/hazo_collab_form_set.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_set.js +425 -0
- package/dist/components/hazo_collab_form_set.js.map +1 -0
- package/dist/components/hazo_collab_form_textarea.d.ts +43 -0
- package/dist/components/hazo_collab_form_textarea.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_textarea.js +61 -0
- package/dist/components/hazo_collab_form_textarea.js.map +1 -0
- package/dist/components/index.d.ts +23 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +14 -0
- package/dist/components/index.js.map +1 -0
- package/dist/index.client.d.ts +7 -0
- package/dist/index.client.d.ts.map +1 -0
- package/dist/index.client.js +7 -0
- package/dist/index.client.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config.d.ts +15 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +62 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/index.d.ts +5 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +5 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/utils/cn.d.ts +12 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/cn.js +15 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/use_chat_messages_check.d.ts +40 -0
- package/dist/utils/use_chat_messages_check.d.ts.map +1 -0
- package/dist/utils/use_chat_messages_check.js +80 -0
- package/dist/utils/use_chat_messages_check.js.map +1 -0
- package/dist/utils/use_collab_chat.d.ts +21 -0
- package/dist/utils/use_collab_chat.d.ts.map +1 -0
- package/dist/utils/use_collab_chat.js +49 -0
- package/dist/utils/use_collab_chat.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collaboration form radio component
|
|
3
|
+
* Provides a reusable radio button group with labels, error message, data OK checkbox, and chat icon functionality
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { type CollabFormFieldBaseProps, type FileData } from './hazo_collab_form_base.js';
|
|
7
|
+
/**
|
|
8
|
+
* Radio option interface
|
|
9
|
+
*/
|
|
10
|
+
export interface RadioOption {
|
|
11
|
+
/**
|
|
12
|
+
* Value of the radio option
|
|
13
|
+
*/
|
|
14
|
+
value: string;
|
|
15
|
+
/**
|
|
16
|
+
* Label text for the radio option
|
|
17
|
+
*/
|
|
18
|
+
label: string;
|
|
19
|
+
/**
|
|
20
|
+
* Whether this option is disabled
|
|
21
|
+
*/
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Props for the HazoCollabFormRadio component
|
|
26
|
+
*/
|
|
27
|
+
export interface HazoCollabFormRadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'>, CollabFormFieldBaseProps {
|
|
28
|
+
/**
|
|
29
|
+
* Array of radio options
|
|
30
|
+
*/
|
|
31
|
+
options: RadioOption[];
|
|
32
|
+
/**
|
|
33
|
+
* Current selected value
|
|
34
|
+
*/
|
|
35
|
+
value: string;
|
|
36
|
+
/**
|
|
37
|
+
* Callback when selection changes
|
|
38
|
+
*/
|
|
39
|
+
onChange: (value: string) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Additional context data for chat functionality
|
|
42
|
+
*/
|
|
43
|
+
additional_context?: Record<string, unknown>;
|
|
44
|
+
/**
|
|
45
|
+
* Custom className for the radio wrapper
|
|
46
|
+
*/
|
|
47
|
+
radio_wrapper_class_name?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Custom className for individual radio option wrapper
|
|
50
|
+
*/
|
|
51
|
+
radio_option_wrapper_class_name?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Layout direction for radio options
|
|
54
|
+
* 'vertical' (default) or 'horizontal'
|
|
55
|
+
*/
|
|
56
|
+
layout?: 'vertical' | 'horizontal';
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Exposed methods for HazoCollabFormRadio
|
|
60
|
+
*/
|
|
61
|
+
export interface HazoCollabFormRadioRef {
|
|
62
|
+
/**
|
|
63
|
+
* Get the current files data
|
|
64
|
+
* Returns array of FileData objects
|
|
65
|
+
*/
|
|
66
|
+
get_file_data: () => FileData[];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Collaboration form radio component
|
|
70
|
+
* Displays a labeled radio button group with error message, data OK checkbox, and chat icon
|
|
71
|
+
*/
|
|
72
|
+
export declare const HazoCollabFormRadio: React.ForwardRefExoticComponent<HazoCollabFormRadioProps & React.RefAttributes<HTMLInputElement & HazoCollabFormRadioRef>>;
|
|
73
|
+
//# sourceMappingURL=hazo_collab_form_radio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hazo_collab_form_radio.d.ts","sourceRoot":"","sources":["../../src/components/hazo_collab_form_radio.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,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,EACtF,wBAAwB;IAC1B;;OAEG;IACH,OAAO,EAAE,WAAW,EAAE,CAAC;IAEvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7C;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAEzC;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,aAAa,EAAE,MAAM,QAAQ,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,4HAkQ9B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collaboration form radio component
|
|
3
|
+
* Provides a reusable radio button group with labels, error message, data OK checkbox, and chat icon functionality
|
|
4
|
+
*/
|
|
5
|
+
'use client';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { cn } from '../utils/cn.js';
|
|
9
|
+
import { use_collab_form_field, CollabFormFieldContainer, CollabFormFieldLabel, CollabFormChatIcon, CollabFormFieldError, CollabFormDataOkCheckbox, CollabFormFileUploadSection, } from './hazo_collab_form_base.js';
|
|
10
|
+
/**
|
|
11
|
+
* Collaboration form radio component
|
|
12
|
+
* Displays a labeled radio button group with error message, data OK checkbox, and chat icon
|
|
13
|
+
*/
|
|
14
|
+
export const HazoCollabFormRadio = React.forwardRef((props, ref) => {
|
|
15
|
+
// Create internal ref for component reference (for file_processor)
|
|
16
|
+
const component_ref = React.useRef(null);
|
|
17
|
+
const [internal_files, set_internal_files] = React.useState([]);
|
|
18
|
+
// Use controlled files if provided, otherwise use internal state
|
|
19
|
+
const current_files = props.files !== undefined ? props.files : internal_files;
|
|
20
|
+
// Expose get_file_data method and forward ref to input element
|
|
21
|
+
React.useImperativeHandle(ref, () => {
|
|
22
|
+
return {
|
|
23
|
+
...component_ref.current,
|
|
24
|
+
get_file_data: () => current_files,
|
|
25
|
+
};
|
|
26
|
+
}, [current_files]);
|
|
27
|
+
const { label, error, field_id, field_data_id, field_name, options, value, onChange, additional_context, on_chat_click, has_chat_messages, is_chat_active, chat_background_color = 'bg-muted', is_data_ok_default, container_class_name, label_class_name, radio_wrapper_class_name, radio_option_wrapper_class_name, error_class_name, required, layout = 'vertical', multi_state_radio, data_ok_checked, on_data_ok_change, data_ok_editable, disable_data_ok, disable_chat, accept_files, files_dir, max_size, min_files, max_files, file_accept, file_processor, files: controlled_files, on_files_change, className, id, disabled,
|
|
28
|
+
// HazoChat props
|
|
29
|
+
hazo_chat_receiver_user_id, recipient_user_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, ...radio_props } = props;
|
|
30
|
+
const { field_id_final, handle_chat_icon_click, chat_is_open, is_chat_disabled } = use_collab_form_field({
|
|
31
|
+
label,
|
|
32
|
+
field_id,
|
|
33
|
+
id,
|
|
34
|
+
field_data_id,
|
|
35
|
+
field_name,
|
|
36
|
+
on_chat_click,
|
|
37
|
+
hazo_chat_receiver_user_id,
|
|
38
|
+
recipient_user_id,
|
|
39
|
+
hazo_chat_on_open_change,
|
|
40
|
+
hazo_chat_is_open,
|
|
41
|
+
});
|
|
42
|
+
// Determine if field should be disabled when chat is active
|
|
43
|
+
// Use is_chat_active if provided, otherwise use chat_is_open
|
|
44
|
+
const is_chat_active_disabled = is_chat_active !== undefined ? is_chat_active : chat_is_open;
|
|
45
|
+
/**
|
|
46
|
+
* Handle radio change event
|
|
47
|
+
*/
|
|
48
|
+
const handle_change = (e) => {
|
|
49
|
+
onChange(e.target.value);
|
|
50
|
+
};
|
|
51
|
+
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_receiver_user_id: hazo_chat_receiver_user_id, recipient_user_id: recipient_user_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: hazo_chat_on_close, hazo_chat_on_open_change: hazo_chat_on_open_change, 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, files: current_files, children: [_jsxs("div", { className: "cls_collab_radio_label_actions_wrapper flex items-center justify-between gap-2", children: [_jsx(CollabFormFieldLabel, { field_id_final: field_id_final, label: label, label_class_name: label_class_name, required: required }), _jsxs("div", { className: "cls_collab_radio_actions flex items-center gap-2 flex-shrink-0", suppressHydrationWarning: true, 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 })), !disable_chat && (_jsx(CollabFormChatIcon, { label: label, error: error, on_click: handle_chat_icon_click, multi_state_radio: multi_state_radio, has_chat_messages: has_chat_messages, disabled: disable_chat, button_disabled: is_chat_disabled }))] })] }), _jsx("div", { className: cn('cls_collab_radio_wrapper', layout === 'horizontal' && 'flex flex-row items-center gap-4', layout === 'vertical' && 'flex flex-col gap-4', radio_wrapper_class_name), children: options.map((option, index) => {
|
|
52
|
+
const option_id = `${field_id_final}-${option.value}`;
|
|
53
|
+
const is_checked = value === option.value;
|
|
54
|
+
return (_jsxs("div", { className: cn('cls_collab_radio_option_wrapper flex items-center gap-2', radio_option_wrapper_class_name), children: [_jsx("input", { ref: index === 0 ? component_ref : undefined, id: option_id, type: "radio", name: field_id_final, value: option.value, checked: is_checked, onChange: handle_change, disabled: disabled || option.disabled || is_chat_active_disabled, className: cn('cls_collab_radio h-4 w-4 border border-input bg-transparent text-primary shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50', error && 'border-destructive focus-visible:ring-destructive', className), "aria-invalid": error ? 'true' : 'false', "aria-describedby": error ? `${field_id_final}-error` : undefined, ...radio_props }), _jsx("label", { htmlFor: option_id, className: cn('cls_collab_radio_label text-sm font-medium leading-none cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70', error && 'text-destructive'), children: option.label })] }, option.value));
|
|
55
|
+
}) }), _jsx(CollabFormFieldError, { field_id_final: field_id_final, error: error, error_class_name: error_class_name }), _jsx(CollabFormFileUploadSection, { field_id_final: field_id_final, accept_files: accept_files, files_dir: files_dir, max_size: max_size, min_files: min_files, max_files: max_files, file_accept: file_accept, file_processor: file_processor, files: current_files, on_files_change: (new_files) => {
|
|
56
|
+
if (controlled_files === undefined) {
|
|
57
|
+
set_internal_files(new_files);
|
|
58
|
+
}
|
|
59
|
+
if (on_files_change) {
|
|
60
|
+
on_files_change(new_files);
|
|
61
|
+
}
|
|
62
|
+
}, component_ref: component_ref })] }));
|
|
63
|
+
});
|
|
64
|
+
HazoCollabFormRadio.displayName = 'HazoCollabFormRadio';
|
|
65
|
+
//# sourceMappingURL=hazo_collab_form_radio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hazo_collab_form_radio.js","sourceRoot":"","sources":["../../src/components/hazo_collab_form_radio.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collaboration form set component
|
|
3
|
+
* Dynamically generates forms from JSON configuration
|
|
4
|
+
* Supports nested groups, field dependencies, and all HazoCollabForm component types
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
/**
|
|
8
|
+
* Input option for radio, checkbox, or combo components
|
|
9
|
+
*/
|
|
10
|
+
export interface InputOption {
|
|
11
|
+
/**
|
|
12
|
+
* Label text for the option
|
|
13
|
+
*/
|
|
14
|
+
label: string;
|
|
15
|
+
/**
|
|
16
|
+
* Value of the option
|
|
17
|
+
*/
|
|
18
|
+
value: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Input format configuration for validation
|
|
22
|
+
*/
|
|
23
|
+
export interface InputFormat {
|
|
24
|
+
/**
|
|
25
|
+
* Format guide text to display
|
|
26
|
+
*/
|
|
27
|
+
format_guide?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Minimum text length
|
|
30
|
+
*/
|
|
31
|
+
text_min_len?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Maximum text length
|
|
34
|
+
*/
|
|
35
|
+
text_max_len?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Minimum numeric value
|
|
38
|
+
*/
|
|
39
|
+
num_min?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Maximum numeric value
|
|
42
|
+
*/
|
|
43
|
+
num_max?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Regular expression pattern for validation
|
|
46
|
+
*/
|
|
47
|
+
regex?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Number of decimal places allowed
|
|
50
|
+
*/
|
|
51
|
+
num_decimals?: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Field configuration - can be a regular field or a group
|
|
55
|
+
*/
|
|
56
|
+
export interface FieldConfig {
|
|
57
|
+
/**
|
|
58
|
+
* Unique identifier for the field
|
|
59
|
+
*/
|
|
60
|
+
id: string;
|
|
61
|
+
/**
|
|
62
|
+
* Label text for the field
|
|
63
|
+
*/
|
|
64
|
+
label: string;
|
|
65
|
+
/**
|
|
66
|
+
* Field type: "field" for regular fields, "group" for groups
|
|
67
|
+
*/
|
|
68
|
+
field_type: 'field' | 'group';
|
|
69
|
+
/**
|
|
70
|
+
* Description text for the field
|
|
71
|
+
*/
|
|
72
|
+
description?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Component type (only for field_type: "field")
|
|
75
|
+
* One of: HazoCollabFormInputbox, HazoCollabFormRadio, HazoCollabFormCheckbox, HazoCollabFormCombo, HazoCollabFormTextArea
|
|
76
|
+
*/
|
|
77
|
+
component_type?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Current value of the field
|
|
80
|
+
*/
|
|
81
|
+
value: string | boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Input type for validation (mixed, numeric, email, alpha)
|
|
84
|
+
*/
|
|
85
|
+
input_type?: 'mixed' | 'numeric' | 'email' | 'alpha';
|
|
86
|
+
/**
|
|
87
|
+
* Whether to accept files
|
|
88
|
+
*/
|
|
89
|
+
accept_files?: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Input format configuration
|
|
92
|
+
*/
|
|
93
|
+
input_format?: InputFormat;
|
|
94
|
+
/**
|
|
95
|
+
* Input options for radio, checkbox, or combo components
|
|
96
|
+
*/
|
|
97
|
+
input_options?: InputOption[];
|
|
98
|
+
/**
|
|
99
|
+
* Sub-fields for group type fields
|
|
100
|
+
*/
|
|
101
|
+
sub_fields?: FieldConfig[];
|
|
102
|
+
/**
|
|
103
|
+
* Dependency condition (e.g., "field_id:value")
|
|
104
|
+
* Field will only be shown if the dependency field has the specified value
|
|
105
|
+
*/
|
|
106
|
+
dependency?: string;
|
|
107
|
+
/**
|
|
108
|
+
* Input width: "auto" for auto width, "full" for full width
|
|
109
|
+
*/
|
|
110
|
+
input_width?: 'auto' | 'full';
|
|
111
|
+
/**
|
|
112
|
+
* Whether this field is required
|
|
113
|
+
* When true, displays a red asterisk next to the label
|
|
114
|
+
*/
|
|
115
|
+
required?: boolean;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Fields set configuration - main structure for the form
|
|
119
|
+
*/
|
|
120
|
+
export interface FieldsSet {
|
|
121
|
+
/**
|
|
122
|
+
* Name of the form group
|
|
123
|
+
*/
|
|
124
|
+
group_name: string;
|
|
125
|
+
/**
|
|
126
|
+
* Whether to accept files at the group level
|
|
127
|
+
*/
|
|
128
|
+
accept_files: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* List of fields in the form
|
|
131
|
+
*/
|
|
132
|
+
field_list: FieldConfig[];
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Props for the HazoCollabFormSet component
|
|
136
|
+
*/
|
|
137
|
+
export interface HazoCollabFormSetProps {
|
|
138
|
+
/**
|
|
139
|
+
* Fields set configuration (JSON structure)
|
|
140
|
+
*/
|
|
141
|
+
fields_set: FieldsSet;
|
|
142
|
+
/**
|
|
143
|
+
* Recipient ID to pass to each field's hazo_chat
|
|
144
|
+
*/
|
|
145
|
+
recipient_id?: string;
|
|
146
|
+
/**
|
|
147
|
+
* Optional callback when a field value changes
|
|
148
|
+
*/
|
|
149
|
+
on_field_change?: (field_id: string, value: any) => void;
|
|
150
|
+
/**
|
|
151
|
+
* Optional callback when form data changes (all fields)
|
|
152
|
+
*/
|
|
153
|
+
on_form_data_change?: (form_data: Record<string, any>) => void;
|
|
154
|
+
/**
|
|
155
|
+
* Initial form data (optional, for controlled component)
|
|
156
|
+
*/
|
|
157
|
+
initial_data?: Record<string, any>;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Exposed methods for HazoCollabFormSet
|
|
161
|
+
*/
|
|
162
|
+
export interface HazoCollabFormSetRef {
|
|
163
|
+
/**
|
|
164
|
+
* Get all form data
|
|
165
|
+
*/
|
|
166
|
+
get_form_data: () => Record<string, any>;
|
|
167
|
+
/**
|
|
168
|
+
* Set form data
|
|
169
|
+
*/
|
|
170
|
+
set_form_data: (data: Record<string, any>) => void;
|
|
171
|
+
/**
|
|
172
|
+
* Reset form to initial values
|
|
173
|
+
*/
|
|
174
|
+
reset_form: () => void;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Collaboration form set component
|
|
178
|
+
* Dynamically generates forms from JSON configuration
|
|
179
|
+
*/
|
|
180
|
+
export declare const HazoCollabFormSet: React.ForwardRefExoticComponent<HazoCollabFormSetProps & React.RefAttributes<HazoCollabFormSetRef>>;
|
|
181
|
+
//# sourceMappingURL=hazo_collab_form_set.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hazo_collab_form_set.d.ts","sourceRoot":"","sources":["../../src/components/hazo_collab_form_set.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAE9B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IAErD;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAE9B;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAE3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,WAAW,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,UAAU,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAE/D;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzC;;OAEG;IACH,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAEnD;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAkED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,qGAyd5B,CAAC"}
|