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.
Files changed (82) hide show
  1. package/README.md +114 -0
  2. package/dist/components/collab_form_file_upload.d.ts +65 -0
  3. package/dist/components/collab_form_file_upload.d.ts.map +1 -0
  4. package/dist/components/collab_form_file_upload.js +339 -0
  5. package/dist/components/collab_form_file_upload.js.map +1 -0
  6. package/dist/components/data_ok_checkbox.d.ts +36 -0
  7. package/dist/components/data_ok_checkbox.d.ts.map +1 -0
  8. package/dist/components/data_ok_checkbox.js +26 -0
  9. package/dist/components/data_ok_checkbox.js.map +1 -0
  10. package/dist/components/hazo_collab_form_base.d.ts +398 -0
  11. package/dist/components/hazo_collab_form_base.d.ts.map +1 -0
  12. package/dist/components/hazo_collab_form_base.js +206 -0
  13. package/dist/components/hazo_collab_form_base.js.map +1 -0
  14. package/dist/components/hazo_collab_form_checkbox.d.ts +52 -0
  15. package/dist/components/hazo_collab_form_checkbox.d.ts.map +1 -0
  16. package/dist/components/hazo_collab_form_checkbox.js +65 -0
  17. package/dist/components/hazo_collab_form_checkbox.js.map +1 -0
  18. package/dist/components/hazo_collab_form_combo.d.ts +91 -0
  19. package/dist/components/hazo_collab_form_combo.d.ts.map +1 -0
  20. package/dist/components/hazo_collab_form_combo.js +192 -0
  21. package/dist/components/hazo_collab_form_combo.js.map +1 -0
  22. package/dist/components/hazo_collab_form_date.d.ts +71 -0
  23. package/dist/components/hazo_collab_form_date.d.ts.map +1 -0
  24. package/dist/components/hazo_collab_form_date.js +251 -0
  25. package/dist/components/hazo_collab_form_date.js.map +1 -0
  26. package/dist/components/hazo_collab_form_group.d.ts +40 -0
  27. package/dist/components/hazo_collab_form_group.d.ts.map +1 -0
  28. package/dist/components/hazo_collab_form_group.js +151 -0
  29. package/dist/components/hazo_collab_form_group.js.map +1 -0
  30. package/dist/components/hazo_collab_form_inputbox.d.ts +44 -0
  31. package/dist/components/hazo_collab_form_inputbox.d.ts.map +1 -0
  32. package/dist/components/hazo_collab_form_inputbox.js +64 -0
  33. package/dist/components/hazo_collab_form_inputbox.js.map +1 -0
  34. package/dist/components/hazo_collab_form_radio.d.ts +73 -0
  35. package/dist/components/hazo_collab_form_radio.d.ts.map +1 -0
  36. package/dist/components/hazo_collab_form_radio.js +65 -0
  37. package/dist/components/hazo_collab_form_radio.js.map +1 -0
  38. package/dist/components/hazo_collab_form_set.d.ts +181 -0
  39. package/dist/components/hazo_collab_form_set.d.ts.map +1 -0
  40. package/dist/components/hazo_collab_form_set.js +425 -0
  41. package/dist/components/hazo_collab_form_set.js.map +1 -0
  42. package/dist/components/hazo_collab_form_textarea.d.ts +43 -0
  43. package/dist/components/hazo_collab_form_textarea.d.ts.map +1 -0
  44. package/dist/components/hazo_collab_form_textarea.js +61 -0
  45. package/dist/components/hazo_collab_form_textarea.js.map +1 -0
  46. package/dist/components/index.d.ts +23 -0
  47. package/dist/components/index.d.ts.map +1 -0
  48. package/dist/components/index.js +14 -0
  49. package/dist/components/index.js.map +1 -0
  50. package/dist/index.client.d.ts +7 -0
  51. package/dist/index.client.d.ts.map +1 -0
  52. package/dist/index.client.js +7 -0
  53. package/dist/index.client.js.map +1 -0
  54. package/dist/index.d.ts +8 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +8 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/lib/config.d.ts +15 -0
  59. package/dist/lib/config.d.ts.map +1 -0
  60. package/dist/lib/config.js +62 -0
  61. package/dist/lib/config.js.map +1 -0
  62. package/dist/lib/index.d.ts +5 -0
  63. package/dist/lib/index.d.ts.map +1 -0
  64. package/dist/lib/index.js +5 -0
  65. package/dist/lib/index.js.map +1 -0
  66. package/dist/utils/cn.d.ts +12 -0
  67. package/dist/utils/cn.d.ts.map +1 -0
  68. package/dist/utils/cn.js +15 -0
  69. package/dist/utils/cn.js.map +1 -0
  70. package/dist/utils/index.d.ts +9 -0
  71. package/dist/utils/index.d.ts.map +1 -0
  72. package/dist/utils/index.js +7 -0
  73. package/dist/utils/index.js.map +1 -0
  74. package/dist/utils/use_chat_messages_check.d.ts +40 -0
  75. package/dist/utils/use_chat_messages_check.d.ts.map +1 -0
  76. package/dist/utils/use_chat_messages_check.js +80 -0
  77. package/dist/utils/use_chat_messages_check.js.map +1 -0
  78. package/dist/utils/use_collab_chat.d.ts +21 -0
  79. package/dist/utils/use_collab_chat.d.ts.map +1 -0
  80. package/dist/utils/use_collab_chat.js +49 -0
  81. package/dist/utils/use_collab_chat.js.map +1 -0
  82. 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"}