hazo_collab_forms 3.1.7 → 5.0.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/CHANGE_LOG.md +201 -0
- package/README.md +3 -0
- package/dist/components/clarification/clarification_item_body.d.ts +19 -1
- package/dist/components/clarification/clarification_item_body.d.ts.map +1 -1
- package/dist/components/clarification/clarification_item_body.js +114 -6
- package/dist/components/clarification/clarification_item_body.js.map +1 -1
- package/dist/components/clarification/clarification_thread.js +1 -1
- package/dist/components/clarification/clarification_thread.js.map +1 -1
- package/dist/components/clarification/index.d.ts +2 -0
- package/dist/components/clarification/index.d.ts.map +1 -1
- package/dist/components/clarification/index.js +1 -0
- package/dist/components/clarification/index.js.map +1 -1
- package/dist/components/clarification/resolution_status_strip.d.ts +18 -0
- package/dist/components/clarification/resolution_status_strip.d.ts.map +1 -0
- package/dist/components/clarification/resolution_status_strip.js +20 -0
- package/dist/components/clarification/resolution_status_strip.js.map +1 -0
- package/dist/components/hazo_fb_form/context.d.ts +1 -1
- package/dist/components/hazo_fb_form/context.d.ts.map +1 -1
- package/dist/components/hazo_fb_form/hazo_fb_form.d.ts.map +1 -1
- package/dist/components/hazo_fb_form/hazo_fb_form.js +330 -113
- package/dist/components/hazo_fb_form/hazo_fb_form.js.map +1 -1
- package/dist/components/hazo_fb_form/hooks/use_fb_form_state.d.ts +3 -3
- package/dist/components/hazo_fb_form/hooks/use_fb_form_state.d.ts.map +1 -1
- package/dist/components/hazo_fb_form/hooks/use_fb_form_state.js +339 -46
- package/dist/components/hazo_fb_form/hooks/use_fb_form_state.js.map +1 -1
- package/dist/components/hazo_fb_form/hooks/use_llm_run.d.ts +3 -1
- package/dist/components/hazo_fb_form/hooks/use_llm_run.d.ts.map +1 -1
- package/dist/components/hazo_fb_form/hooks/use_llm_run.js +89 -11
- package/dist/components/hazo_fb_form/hooks/use_llm_run.js.map +1 -1
- package/dist/components/hazo_fb_form/shared/agent_stepper.js +1 -1
- package/dist/components/hazo_fb_form/shared/agent_stepper.js.map +1 -1
- package/dist/components/hazo_fb_form/shared/file_status_accordion.d.ts +9 -0
- package/dist/components/hazo_fb_form/shared/file_status_accordion.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/shared/file_status_accordion.js +39 -0
- package/dist/components/hazo_fb_form/shared/file_status_accordion.js.map +1 -0
- package/dist/components/hazo_fb_form/shared/format.d.ts.map +1 -1
- package/dist/components/hazo_fb_form/shared/format.js +8 -3
- package/dist/components/hazo_fb_form/shared/format.js.map +1 -1
- package/dist/components/hazo_fb_form/shared/send_back_item_card.d.ts +7 -1
- package/dist/components/hazo_fb_form/shared/send_back_item_card.d.ts.map +1 -1
- package/dist/components/hazo_fb_form/shared/send_back_item_card.js +6 -3
- package/dist/components/hazo_fb_form/shared/send_back_item_card.js.map +1 -1
- package/dist/components/hazo_fb_form/types.d.ts +3 -1
- package/dist/components/hazo_fb_form/types.d.ts.map +1 -1
- package/dist/components/hazo_fb_form/views/back_office_view.js +1 -1
- package/dist/components/hazo_fb_form/views/back_office_view.js.map +1 -1
- package/dist/components/hazo_fb_form/views/clarifications_view.js +2 -2
- package/dist/components/hazo_fb_form/views/clarifications_view.js.map +1 -1
- package/dist/components/hazo_fb_form/views/front_office_view.d.ts.map +1 -1
- package/dist/components/hazo_fb_form/views/front_office_view.js +62 -41
- package/dist/components/hazo_fb_form/views/front_office_view.js.map +1 -1
- package/dist/components/hazo_fb_form/views/interim_view.js +3 -3
- package/dist/components/hazo_fb_form/views/interim_view.js.map +1 -1
- package/dist/components/hazo_fb_form/views/review_queue_view.d.ts.map +1 -1
- package/dist/components/hazo_fb_form/views/review_queue_view.js +22 -9
- package/dist/components/hazo_fb_form/views/review_queue_view.js.map +1 -1
- package/dist/components/hazo_validation_rule_editor/components/rule_editor.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/components/rule_editor.js +32 -3
- package/dist/components/hazo_validation_rule_editor/components/rule_editor.js.map +1 -1
- package/dist/components/hazo_validation_rule_editor/components/variable_chain_input.d.ts +20 -0
- package/dist/components/hazo_validation_rule_editor/components/variable_chain_input.d.ts.map +1 -0
- package/dist/components/hazo_validation_rule_editor/components/variable_chain_input.js +34 -0
- package/dist/components/hazo_validation_rule_editor/components/variable_chain_input.js.map +1 -0
- package/dist/components/hazo_validation_rule_editor/context.d.ts +3 -2
- package/dist/components/hazo_validation_rule_editor/context.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/context.js +15 -3
- package/dist/components/hazo_validation_rule_editor/context.js.map +1 -1
- package/dist/components/hazo_validation_rule_editor/types.d.ts +7 -1
- package/dist/components/hazo_validation_rule_editor/types.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/validation_rule_editor.d.ts +1 -1
- package/dist/components/hazo_validation_rule_editor/validation_rule_editor.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/validation_rule_editor.js +2 -2
- package/dist/components/hazo_validation_rule_editor/validation_rule_editor.js.map +1 -1
- package/dist/components/index.d.ts +2 -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/dist/components/shared/document_type_editor.d.ts +31 -0
- package/dist/components/shared/document_type_editor.d.ts.map +1 -0
- package/dist/components/shared/document_type_editor.js +60 -0
- package/dist/components/shared/document_type_editor.js.map +1 -0
- package/dist/components/shared/file_bar/file_bar.d.ts +7 -1
- package/dist/components/shared/file_bar/file_bar.d.ts.map +1 -1
- package/dist/components/shared/file_bar/file_bar.js +5 -3
- package/dist/components/shared/file_bar/file_bar.js.map +1 -1
- package/dist/components/shared/file_bar/file_bar_validation_dialog.js +4 -4
- package/dist/components/shared/file_bar/file_bar_validation_dialog.js.map +1 -1
- package/dist/components/shared/file_status_icon.d.ts +23 -0
- package/dist/components/shared/file_status_icon.d.ts.map +1 -0
- package/dist/components/shared/file_status_icon.js +38 -0
- package/dist/components/shared/file_status_icon.js.map +1 -0
- package/dist/components/shared/json_data_panel/json_data_panel.d.ts +1 -1
- package/dist/components/shared/json_data_panel/json_data_panel.d.ts.map +1 -1
- package/dist/components/shared/json_data_panel/json_data_panel.js +27 -2
- package/dist/components/shared/json_data_panel/json_data_panel.js.map +1 -1
- package/dist/components/shared/rule_result_card.d.ts.map +1 -1
- package/dist/components/shared/rule_result_card.js +5 -4
- package/dist/components/shared/rule_result_card.js.map +1 -1
- package/dist/components/thread_form/components/add_question_dialog.d.ts +12 -0
- package/dist/components/thread_form/components/add_question_dialog.d.ts.map +1 -0
- package/dist/components/thread_form/components/add_question_dialog.js +36 -0
- package/dist/components/thread_form/components/add_question_dialog.js.map +1 -0
- package/dist/components/thread_form/components/agent_compose_dialog.d.ts +30 -0
- package/dist/components/thread_form/components/agent_compose_dialog.d.ts.map +1 -0
- package/dist/components/thread_form/components/agent_compose_dialog.js +45 -0
- package/dist/components/thread_form/components/agent_compose_dialog.js.map +1 -0
- package/dist/components/thread_form/components/clarification.d.ts +14 -0
- package/dist/components/thread_form/components/clarification.d.ts.map +1 -0
- package/dist/components/thread_form/components/clarification.js +12 -0
- package/dist/components/thread_form/components/clarification.js.map +1 -0
- package/dist/components/thread_form/components/collected_data_view.d.ts +15 -0
- package/dist/components/thread_form/components/collected_data_view.d.ts.map +1 -0
- package/dist/components/thread_form/components/collected_data_view.js +121 -0
- package/dist/components/thread_form/components/collected_data_view.js.map +1 -0
- package/dist/components/thread_form/components/coverage_card.d.ts +11 -0
- package/dist/components/thread_form/components/coverage_card.d.ts.map +1 -0
- package/dist/components/thread_form/components/coverage_card.js +60 -0
- package/dist/components/thread_form/components/coverage_card.js.map +1 -0
- package/dist/components/thread_form/components/file_bar.d.ts +93 -0
- package/dist/components/thread_form/components/file_bar.d.ts.map +1 -0
- package/dist/components/thread_form/components/file_bar.js +251 -0
- package/dist/components/thread_form/components/file_bar.js.map +1 -0
- package/dist/components/thread_form/components/file_info_dialog.d.ts +15 -0
- package/dist/components/thread_form/components/file_info_dialog.d.ts.map +1 -0
- package/dist/components/thread_form/components/file_info_dialog.js +64 -0
- package/dist/components/thread_form/components/file_info_dialog.js.map +1 -0
- package/dist/components/thread_form/components/issue_group_tree.d.ts +20 -0
- package/dist/components/thread_form/components/issue_group_tree.d.ts.map +1 -0
- package/dist/components/thread_form/components/issue_group_tree.js +164 -0
- package/dist/components/thread_form/components/issue_group_tree.js.map +1 -0
- package/dist/components/thread_form/components/pdf_side_panel.d.ts +20 -0
- package/dist/components/thread_form/components/pdf_side_panel.d.ts.map +1 -0
- package/dist/components/thread_form/components/pdf_side_panel.js +63 -0
- package/dist/components/thread_form/components/pdf_side_panel.js.map +1 -0
- package/dist/components/thread_form/components/rule_decision_row.d.ts +31 -0
- package/dist/components/thread_form/components/rule_decision_row.d.ts.map +1 -0
- package/dist/components/thread_form/components/rule_decision_row.js +20 -0
- package/dist/components/thread_form/components/rule_decision_row.js.map +1 -0
- package/dist/components/thread_form/components/send_back_message.d.ts +32 -0
- package/dist/components/thread_form/components/send_back_message.d.ts.map +1 -0
- package/dist/components/thread_form/components/send_back_message.js +82 -0
- package/dist/components/thread_form/components/send_back_message.js.map +1 -0
- package/dist/components/thread_form/components/shared.d.ts +54 -0
- package/dist/components/thread_form/components/shared.d.ts.map +1 -0
- package/dist/components/thread_form/components/shared.js +136 -0
- package/dist/components/thread_form/components/shared.js.map +1 -0
- package/dist/components/thread_form/components/task_card.d.ts +90 -0
- package/dist/components/thread_form/components/task_card.d.ts.map +1 -0
- package/dist/components/thread_form/components/task_card.js +63 -0
- package/dist/components/thread_form/components/task_card.js.map +1 -0
- package/dist/components/thread_form/components/text_doc_check.d.ts +15 -0
- package/dist/components/thread_form/components/text_doc_check.d.ts.map +1 -0
- package/dist/components/thread_form/components/text_doc_check.js +16 -0
- package/dist/components/thread_form/components/text_doc_check.js.map +1 -0
- package/dist/components/thread_form/components/text_extraction.d.ts +14 -0
- package/dist/components/thread_form/components/text_extraction.d.ts.map +1 -0
- package/dist/components/thread_form/components/text_extraction.js +16 -0
- package/dist/components/thread_form/components/text_extraction.js.map +1 -0
- package/dist/components/thread_form/components/thread_composer.d.ts +15 -0
- package/dist/components/thread_form/components/thread_composer.d.ts.map +1 -0
- package/dist/components/thread_form/components/thread_composer.js +93 -0
- package/dist/components/thread_form/components/thread_composer.js.map +1 -0
- package/dist/components/thread_form/components/thread_timeline.d.ts +65 -0
- package/dist/components/thread_form/components/thread_timeline.d.ts.map +1 -0
- package/dist/components/thread_form/components/thread_timeline.js +225 -0
- package/dist/components/thread_form/components/thread_timeline.js.map +1 -0
- package/dist/components/thread_form/hooks/use_file_pipeline.d.ts +126 -0
- package/dist/components/thread_form/hooks/use_file_pipeline.d.ts.map +1 -0
- package/dist/components/thread_form/hooks/use_file_pipeline.js +760 -0
- package/dist/components/thread_form/hooks/use_file_pipeline.js.map +1 -0
- package/dist/components/thread_form/hooks/use_thread_form.d.ts +36 -0
- package/dist/components/thread_form/hooks/use_thread_form.d.ts.map +1 -0
- package/dist/components/thread_form/hooks/use_thread_form.js +126 -0
- package/dist/components/thread_form/hooks/use_thread_form.js.map +1 -0
- package/dist/components/thread_form/index.d.ts +33 -0
- package/dist/components/thread_form/index.d.ts.map +1 -0
- package/dist/components/thread_form/index.js +30 -0
- package/dist/components/thread_form/index.js.map +1 -0
- package/dist/components/thread_form/sample_data.d.ts +8 -0
- package/dist/components/thread_form/sample_data.d.ts.map +1 -0
- package/dist/components/thread_form/sample_data.js +658 -0
- package/dist/components/thread_form/sample_data.js.map +1 -0
- package/dist/components/thread_form/thread_form.d.ts +7 -0
- package/dist/components/thread_form/thread_form.d.ts.map +1 -0
- package/dist/components/thread_form/thread_form.js +1385 -0
- package/dist/components/thread_form/thread_form.js.map +1 -0
- package/dist/components/thread_form/types.d.ts +402 -0
- package/dist/components/thread_form/types.d.ts.map +1 -0
- package/dist/components/thread_form/types.js +23 -0
- package/dist/components/thread_form/types.js.map +1 -0
- package/dist/components/thread_form/utils/file_decision_state.d.ts +22 -0
- package/dist/components/thread_form/utils/file_decision_state.d.ts.map +1 -0
- package/dist/components/thread_form/utils/file_decision_state.js +37 -0
- package/dist/components/thread_form/utils/file_decision_state.js.map +1 -0
- package/dist/components/thread_form/utils/merge_send_back.d.ts +13 -0
- package/dist/components/thread_form/utils/merge_send_back.d.ts.map +1 -0
- package/dist/components/thread_form/utils/merge_send_back.js +23 -0
- package/dist/components/thread_form/utils/merge_send_back.js.map +1 -0
- package/dist/lib/autofill_handler.d.ts.map +1 -1
- package/dist/lib/autofill_handler.js +5 -44
- package/dist/lib/autofill_handler.js.map +1 -1
- package/dist/lib/classification_handler.d.ts +105 -0
- package/dist/lib/classification_handler.d.ts.map +1 -0
- package/dist/lib/classification_handler.js +342 -0
- package/dist/lib/classification_handler.js.map +1 -0
- package/dist/lib/content_gate_handler.d.ts +37 -0
- package/dist/lib/content_gate_handler.d.ts.map +1 -0
- package/dist/lib/content_gate_handler.js +126 -0
- package/dist/lib/content_gate_handler.js.map +1 -0
- package/dist/lib/index.d.ts +10 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +5 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/periodic_coverage_runner.d.ts +24 -0
- package/dist/lib/periodic_coverage_runner.d.ts.map +1 -0
- package/dist/lib/periodic_coverage_runner.js +121 -0
- package/dist/lib/periodic_coverage_runner.js.map +1 -0
- package/dist/lib/resolution_handler.d.ts +150 -0
- package/dist/lib/resolution_handler.d.ts.map +1 -0
- package/dist/lib/resolution_handler.js +597 -0
- package/dist/lib/resolution_handler.js.map +1 -0
- package/dist/lib/resolve_variable.d.ts +25 -0
- package/dist/lib/resolve_variable.d.ts.map +1 -0
- package/dist/lib/resolve_variable.js +77 -0
- package/dist/lib/resolve_variable.js.map +1 -0
- package/dist/lib/validation_handler.d.ts +27 -3
- package/dist/lib/validation_handler.d.ts.map +1 -1
- package/dist/lib/validation_handler.js +338 -288
- package/dist/lib/validation_handler.js.map +1 -1
- package/dist/types/clarification.d.ts +54 -0
- package/dist/types/clarification.d.ts.map +1 -1
- package/dist/types/fb_form_data.d.ts +273 -123
- package/dist/types/fb_form_data.d.ts.map +1 -1
- package/dist/types/fb_form_data.js +44 -58
- package/dist/types/fb_form_data.js.map +1 -1
- package/dist/types/fb_form_data_v1.d.ts +250 -0
- package/dist/types/fb_form_data_v1.d.ts.map +1 -0
- package/dist/types/fb_form_data_v1.js +117 -0
- package/dist/types/fb_form_data_v1.js.map +1 -0
- package/dist/types/fb_form_instance.d.ts +1 -1
- package/dist/types/fb_form_instance.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/validation.d.ts +134 -12
- package/dist/types/validation.d.ts.map +1 -1
- package/dist/utils/expectation_extractor.d.ts +31 -0
- package/dist/utils/expectation_extractor.d.ts.map +1 -0
- package/dist/utils/expectation_extractor.js +142 -0
- package/dist/utils/expectation_extractor.js.map +1 -0
- package/dist/utils/fb_data_adapter.d.ts +7 -2
- package/dist/utils/fb_data_adapter.d.ts.map +1 -1
- package/dist/utils/fb_data_adapter.js +58 -7
- package/dist/utils/fb_data_adapter.js.map +1 -1
- package/dist/utils/fb_data_adapter_v2.d.ts +17 -0
- package/dist/utils/fb_data_adapter_v2.d.ts.map +1 -0
- package/dist/utils/fb_data_adapter_v2.js +483 -0
- package/dist/utils/fb_data_adapter_v2.js.map +1 -0
- package/dist/utils/fb_data_helpers.d.ts +1 -1
- package/dist/utils/fb_data_helpers.d.ts.map +1 -1
- package/dist/utils/fb_data_mutations.d.ts +1 -1
- package/dist/utils/fb_data_mutations.d.ts.map +1 -1
- package/dist/utils/fb_data_mutations_v2.d.ts +46 -0
- package/dist/utils/fb_data_mutations_v2.d.ts.map +1 -0
- package/dist/utils/fb_data_mutations_v2.js +341 -0
- package/dist/utils/fb_data_mutations_v2.js.map +1 -0
- package/dist/utils/fb_data_queries.d.ts +81 -0
- package/dist/utils/fb_data_queries.d.ts.map +1 -0
- package/dist/utils/fb_data_queries.js +354 -0
- package/dist/utils/fb_data_queries.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/issue_bucketing.d.ts +36 -0
- package/dist/utils/issue_bucketing.d.ts.map +1 -0
- package/dist/utils/issue_bucketing.js +107 -0
- package/dist/utils/issue_bucketing.js.map +1 -0
- package/dist/utils/validation_result.d.ts +32 -0
- package/dist/utils/validation_result.d.ts.map +1 -0
- package/dist/utils/validation_result.js +55 -0
- package/dist/utils/validation_result.js.map +1 -0
- package/package.json +16 -4
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable mutation helpers for the v2 flattened FbDataEntry[] data model.
|
|
3
|
+
*
|
|
4
|
+
* All functions return NEW arrays — never mutate in place.
|
|
5
|
+
* Use with React state: update_form_data(prev => set_review_decision(prev, clr_id, 'accept'))
|
|
6
|
+
*/
|
|
7
|
+
import { next_thread_id } from '../types/fb_form_data.js';
|
|
8
|
+
// ========================================
|
|
9
|
+
// Clarification mutations
|
|
10
|
+
// ========================================
|
|
11
|
+
/** Update a clarification by ID — applies an updater function immutably */
|
|
12
|
+
export function update_clarification(data, clarification_id, updater) {
|
|
13
|
+
return data.map(entry => {
|
|
14
|
+
if (!entry.clarifications?.some(c => c.clarification_id === clarification_id))
|
|
15
|
+
return entry;
|
|
16
|
+
return {
|
|
17
|
+
...entry,
|
|
18
|
+
clarifications: entry.clarifications.map(c => c.clarification_id === clarification_id ? updater(c) : c),
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/** Set the review decision for a clarification */
|
|
23
|
+
export function set_review_decision(data, clarification_id, decision, feedback, user, user_name) {
|
|
24
|
+
const now = new Date().toISOString();
|
|
25
|
+
return update_clarification(data, clarification_id, clr => {
|
|
26
|
+
const review = {
|
|
27
|
+
decision,
|
|
28
|
+
// Link to the client response being reviewed (last client entry in thread)
|
|
29
|
+
thread_ref: (() => {
|
|
30
|
+
for (let i = clr.thread.length - 1; i >= 0; i--) {
|
|
31
|
+
if (clr.thread[i].role === 'client' && clr.thread[i].action === 'responded') {
|
|
32
|
+
return clr.thread[i].thread_id;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return '';
|
|
36
|
+
})(),
|
|
37
|
+
feedback,
|
|
38
|
+
user,
|
|
39
|
+
user_name,
|
|
40
|
+
time: now,
|
|
41
|
+
};
|
|
42
|
+
const new_status = decision === 'accept' ? 'accepted' : 'sent_back';
|
|
43
|
+
// Only add thread entry if the last agent review doesn't already match this decision
|
|
44
|
+
// (prevents duplicates when v1 data already has the rejection entry)
|
|
45
|
+
const last_agent = [...clr.thread].reverse().find(t => t.role === 'agent' && t.action === 'reviewed');
|
|
46
|
+
const already_has_review = last_agent && last_agent.decision === decision
|
|
47
|
+
&& last_agent.feedback === feedback
|
|
48
|
+
// Also check no client response came after this review
|
|
49
|
+
&& !clr.thread.some((t, i) => i > clr.thread.indexOf(last_agent) && t.role === 'client');
|
|
50
|
+
if (already_has_review) {
|
|
51
|
+
return { ...clr, review, status: new_status };
|
|
52
|
+
}
|
|
53
|
+
const thread_entry = {
|
|
54
|
+
thread_id: next_thread_id(clr.thread),
|
|
55
|
+
form_instance: get_latest_form_instance(clr),
|
|
56
|
+
role: 'agent',
|
|
57
|
+
action: 'reviewed',
|
|
58
|
+
decision,
|
|
59
|
+
feedback,
|
|
60
|
+
user,
|
|
61
|
+
user_name,
|
|
62
|
+
time: now,
|
|
63
|
+
};
|
|
64
|
+
return {
|
|
65
|
+
...clr,
|
|
66
|
+
review,
|
|
67
|
+
status: new_status,
|
|
68
|
+
thread: [...clr.thread, thread_entry],
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/** Set the agent feedback on a clarification (without changing the decision) */
|
|
73
|
+
export function set_agent_feedback(data, clarification_id, feedback) {
|
|
74
|
+
return update_clarification(data, clarification_id, clr => ({
|
|
75
|
+
...clr,
|
|
76
|
+
review: clr.review ? { ...clr.review, feedback } : null,
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
/** Set clarification status directly */
|
|
80
|
+
export function set_clarification_status(data, clarification_id, status) {
|
|
81
|
+
return update_clarification(data, clarification_id, clr => ({
|
|
82
|
+
...clr,
|
|
83
|
+
status,
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
/** Clear the review (e.g., when client responds to a send-back, needing fresh review) */
|
|
87
|
+
export function clear_review(data, clarification_id) {
|
|
88
|
+
return update_clarification(data, clarification_id, clr => ({
|
|
89
|
+
...clr,
|
|
90
|
+
review: null,
|
|
91
|
+
status: 'responded',
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
/** Update response options on a clarification */
|
|
95
|
+
export function set_response_options(data, clarification_id, options) {
|
|
96
|
+
return update_clarification(data, clarification_id, clr => ({
|
|
97
|
+
...clr,
|
|
98
|
+
response_options: options,
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
// ========================================
|
|
102
|
+
// Thread mutations
|
|
103
|
+
// ========================================
|
|
104
|
+
/** Add a thread entry to a clarification */
|
|
105
|
+
export function add_thread_entry(data, clarification_id, entry) {
|
|
106
|
+
return update_clarification(data, clarification_id, clr => {
|
|
107
|
+
const thread_entry = {
|
|
108
|
+
...entry,
|
|
109
|
+
thread_id: next_thread_id(clr.thread),
|
|
110
|
+
};
|
|
111
|
+
return {
|
|
112
|
+
...clr,
|
|
113
|
+
thread: [...clr.thread, thread_entry],
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/** Add a client response to the thread and update status */
|
|
118
|
+
export function add_client_response(data, clarification_id, form_instance, choice, comment, files) {
|
|
119
|
+
const now = new Date().toISOString();
|
|
120
|
+
return update_clarification(data, clarification_id, clr => {
|
|
121
|
+
const thread_id = next_thread_id(clr.thread);
|
|
122
|
+
const thread_entry = {
|
|
123
|
+
thread_id,
|
|
124
|
+
form_instance,
|
|
125
|
+
role: 'client',
|
|
126
|
+
action: 'responded',
|
|
127
|
+
choice,
|
|
128
|
+
comment,
|
|
129
|
+
files,
|
|
130
|
+
time: now,
|
|
131
|
+
};
|
|
132
|
+
// Build response_data from the client's response
|
|
133
|
+
const response_pds = [];
|
|
134
|
+
let rpd_counter = clr.response_data.length;
|
|
135
|
+
if (files?.length) {
|
|
136
|
+
for (const f of files) {
|
|
137
|
+
rpd_counter++;
|
|
138
|
+
response_pds.push({
|
|
139
|
+
processed_data_id: `rpd_${rpd_counter}`,
|
|
140
|
+
processed_data_type: 'file',
|
|
141
|
+
processed_data_files: f,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else if (comment) {
|
|
146
|
+
rpd_counter++;
|
|
147
|
+
response_pds.push({
|
|
148
|
+
processed_data_id: `rpd_${rpd_counter}`,
|
|
149
|
+
processed_data_type: 'text',
|
|
150
|
+
processed_data_text: comment,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
const new_thread_index = clr.thread.length; // index of the new entry
|
|
154
|
+
const new_response_data = response_pds.length > 0 ? [{
|
|
155
|
+
thread_ref: thread_id,
|
|
156
|
+
thread_index: new_thread_index,
|
|
157
|
+
form_instance,
|
|
158
|
+
processed_data: response_pds,
|
|
159
|
+
}] : [];
|
|
160
|
+
return {
|
|
161
|
+
...clr,
|
|
162
|
+
status: 'responded',
|
|
163
|
+
review: null, // Clear review — needs fresh agent review
|
|
164
|
+
thread: [...clr.thread, thread_entry],
|
|
165
|
+
response_data: [...clr.response_data, ...new_response_data],
|
|
166
|
+
};
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
// ========================================
|
|
170
|
+
// Response data mutations
|
|
171
|
+
// ========================================
|
|
172
|
+
/** Add response data (processed files/text from a client response) */
|
|
173
|
+
export function add_response_data(data, clarification_id, response_data) {
|
|
174
|
+
return update_clarification(data, clarification_id, clr => ({
|
|
175
|
+
...clr,
|
|
176
|
+
response_data: [...clr.response_data, response_data],
|
|
177
|
+
}));
|
|
178
|
+
}
|
|
179
|
+
// ========================================
|
|
180
|
+
// Validation mutations
|
|
181
|
+
// ========================================
|
|
182
|
+
/** Add a validation to an entry */
|
|
183
|
+
export function add_validation(data, entry_index, validation) {
|
|
184
|
+
return data.map((entry, i) => {
|
|
185
|
+
if (i !== entry_index)
|
|
186
|
+
return entry;
|
|
187
|
+
return {
|
|
188
|
+
...entry,
|
|
189
|
+
validations: [...(entry.validations ?? []), validation],
|
|
190
|
+
};
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
/** Update a validation's status */
|
|
194
|
+
export function update_validation_status(data, validation_id, status) {
|
|
195
|
+
return data.map(entry => {
|
|
196
|
+
if (!entry.validations?.some(v => v.validation_id === validation_id))
|
|
197
|
+
return entry;
|
|
198
|
+
return {
|
|
199
|
+
...entry,
|
|
200
|
+
validations: entry.validations.map(v => v.validation_id === validation_id ? { ...v, status } : v),
|
|
201
|
+
};
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
// ========================================
|
|
205
|
+
// Clarification creation
|
|
206
|
+
// ========================================
|
|
207
|
+
/** Add a new clarification to the entry that owns a processed_data item */
|
|
208
|
+
export function add_clarification(data, clarification) {
|
|
209
|
+
// Find the entry that owns this processed_data
|
|
210
|
+
const target_idx = data.findIndex(entry => {
|
|
211
|
+
if (!entry.client_data)
|
|
212
|
+
return false;
|
|
213
|
+
for (const cd of entry.client_data) {
|
|
214
|
+
const inputs = Array.isArray(cd.client_input) ? cd.client_input : [cd.client_input];
|
|
215
|
+
for (const inp of inputs) {
|
|
216
|
+
if (inp.processed_data?.some(pd => pd.processed_data_id === clarification.processed_data_ref)) {
|
|
217
|
+
return true;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return false;
|
|
222
|
+
});
|
|
223
|
+
if (target_idx >= 0) {
|
|
224
|
+
return data.map((entry, i) => {
|
|
225
|
+
if (i !== target_idx)
|
|
226
|
+
return entry;
|
|
227
|
+
return {
|
|
228
|
+
...entry,
|
|
229
|
+
clarifications: [...(entry.clarifications ?? []), clarification],
|
|
230
|
+
};
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
// No matching entry — add as new top-level entry
|
|
234
|
+
return [...data, {
|
|
235
|
+
question: {
|
|
236
|
+
source_id: null,
|
|
237
|
+
question_field_id: clarification.clarification_id,
|
|
238
|
+
question_type: 'clarification',
|
|
239
|
+
form_instance: get_latest_form_instance(clarification),
|
|
240
|
+
component_type: 'HazoCollabFormRFIbox',
|
|
241
|
+
description: clarification.issue,
|
|
242
|
+
},
|
|
243
|
+
clarifications: [clarification],
|
|
244
|
+
}];
|
|
245
|
+
}
|
|
246
|
+
// ========================================
|
|
247
|
+
// Entry mutations
|
|
248
|
+
// ========================================
|
|
249
|
+
/** Append a new data entry */
|
|
250
|
+
export function add_data_entry(data, entry) {
|
|
251
|
+
return [...data, entry];
|
|
252
|
+
}
|
|
253
|
+
// ========================================
|
|
254
|
+
// Autofill run mutations
|
|
255
|
+
// ========================================
|
|
256
|
+
/** Record an autofill run result on the entry that contains the file */
|
|
257
|
+
export function add_autofill_run(data, run) {
|
|
258
|
+
// Find the entry whose client_data contains this file_id
|
|
259
|
+
const target_idx = data.findIndex(entry => entry.client_data?.some(cd => {
|
|
260
|
+
const inputs = Array.isArray(cd.client_input) ? cd.client_input : [cd.client_input];
|
|
261
|
+
return inputs.some(inp => inp?.processed_data?.some((pd) => pd.processed_data_files?.file_id === run.file_id));
|
|
262
|
+
}));
|
|
263
|
+
if (target_idx >= 0) {
|
|
264
|
+
const entry = data[target_idx];
|
|
265
|
+
const existing = entry.autofill_runs ?? [];
|
|
266
|
+
// Replace existing run for same file+group, or append
|
|
267
|
+
const dup_idx = existing.findIndex(r => r.file_id === run.file_id && r.group_id === run.group_id);
|
|
268
|
+
const updated_runs = dup_idx >= 0
|
|
269
|
+
? existing.map((r, i) => i === dup_idx ? run : r)
|
|
270
|
+
: [...existing, run];
|
|
271
|
+
return data.map((e, i) => i === target_idx ? { ...e, autofill_runs: updated_runs } : e);
|
|
272
|
+
}
|
|
273
|
+
// File not found in any entry — create a standalone entry
|
|
274
|
+
return [...data, {
|
|
275
|
+
question: {
|
|
276
|
+
source_id: null,
|
|
277
|
+
question_field_id: `autofill_${run.group_id}_${run.file_id}`,
|
|
278
|
+
question_type: 'data_request',
|
|
279
|
+
form_instance: run.form_instance,
|
|
280
|
+
component_type: 'autofill',
|
|
281
|
+
description: `Autofill: ${run.file_name} → ${run.group_id}`,
|
|
282
|
+
},
|
|
283
|
+
autofill_runs: [run],
|
|
284
|
+
}];
|
|
285
|
+
}
|
|
286
|
+
// ========================================
|
|
287
|
+
// Resolution mutations (sum_match resolver)
|
|
288
|
+
// ========================================
|
|
289
|
+
/**
|
|
290
|
+
* Attach extracted fields (total/date/vendor) to a response file's
|
|
291
|
+
* FbResponseProcessedData. Searches across all clarifications.
|
|
292
|
+
*/
|
|
293
|
+
export function set_extracted_fields(data, file_id, fields) {
|
|
294
|
+
return data.map(entry => {
|
|
295
|
+
if (!entry.clarifications?.length)
|
|
296
|
+
return entry;
|
|
297
|
+
let entry_changed = false;
|
|
298
|
+
const next_clarifications = entry.clarifications.map(clr => {
|
|
299
|
+
let clr_changed = false;
|
|
300
|
+
const next_response_data = clr.response_data.map(rd => {
|
|
301
|
+
let rd_changed = false;
|
|
302
|
+
const next_pds = rd.processed_data.map(pd => {
|
|
303
|
+
if (pd.processed_data_type !== 'file' || pd.processed_data_files?.file_id !== file_id)
|
|
304
|
+
return pd;
|
|
305
|
+
rd_changed = true;
|
|
306
|
+
const merged = { ...(pd.extracted_fields ?? {}), ...fields };
|
|
307
|
+
return { ...pd, extracted_fields: merged };
|
|
308
|
+
});
|
|
309
|
+
if (!rd_changed)
|
|
310
|
+
return rd;
|
|
311
|
+
clr_changed = true;
|
|
312
|
+
return { ...rd, processed_data: next_pds };
|
|
313
|
+
});
|
|
314
|
+
if (!clr_changed)
|
|
315
|
+
return clr;
|
|
316
|
+
entry_changed = true;
|
|
317
|
+
return { ...clr, response_data: next_response_data };
|
|
318
|
+
});
|
|
319
|
+
return entry_changed ? { ...entry, clarifications: next_clarifications } : entry;
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Attach a resolution_check to a specific thread entry on a clarification.
|
|
324
|
+
* The thread entry is identified by clarification_id + thread_id.
|
|
325
|
+
*/
|
|
326
|
+
export function set_resolution_check(data, clarification_id, thread_id, check) {
|
|
327
|
+
return update_clarification(data, clarification_id, clr => ({
|
|
328
|
+
...clr,
|
|
329
|
+
thread: clr.thread.map(t => t.thread_id === thread_id ? { ...t, resolution_check: check } : t),
|
|
330
|
+
}));
|
|
331
|
+
}
|
|
332
|
+
// ========================================
|
|
333
|
+
// Helpers
|
|
334
|
+
// ========================================
|
|
335
|
+
/** Get the latest form_instance number from a clarification's thread */
|
|
336
|
+
function get_latest_form_instance(clr) {
|
|
337
|
+
if (clr.thread.length === 0)
|
|
338
|
+
return 1;
|
|
339
|
+
return Math.max(...clr.thread.map(t => t.form_instance));
|
|
340
|
+
}
|
|
341
|
+
//# sourceMappingURL=fb_data_mutations_v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fb_data_mutations_v2.js","sourceRoot":"","sources":["../../src/utils/fb_data_mutations_v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query functions for the v2 flattened FbDataEntry[] data model.
|
|
3
|
+
*
|
|
4
|
+
* All functions are pure reads — no mutations. They extract views
|
|
5
|
+
* from the data[] array for UI components.
|
|
6
|
+
*/
|
|
7
|
+
import type { FbDataEntry, FbEntryClarification, FbClarificationStatus, FbClarificationReview, FbEntryValidation, FbThreadEntry, FbProcessedData, FbResponseData, FbAutofillRun, ExtractedResponseFields, ResolutionCheck } from '../types/fb_form_data.js';
|
|
8
|
+
/** Get all clarifications across all entries */
|
|
9
|
+
export declare function get_all_clarifications(data: FbDataEntry[]): FbEntryClarification[];
|
|
10
|
+
/** Find a specific clarification by ID */
|
|
11
|
+
export declare function find_clarification(data: FbDataEntry[], clarification_id: string): FbEntryClarification | null;
|
|
12
|
+
/** Find the entry that owns a clarification */
|
|
13
|
+
export declare function find_entry_for_clarification(data: FbDataEntry[], clarification_id: string): FbDataEntry | null;
|
|
14
|
+
/** Get clarifications filtered by status */
|
|
15
|
+
export declare function get_clarifications_by_status(data: FbDataEntry[], status: FbClarificationStatus): FbEntryClarification[];
|
|
16
|
+
/** Get clarifications needing agent review (client has responded) */
|
|
17
|
+
export declare function get_clarifications_needing_review(data: FbDataEntry[]): FbEntryClarification[];
|
|
18
|
+
/** Get clarifications that have been sent back to client */
|
|
19
|
+
export declare function get_clarifications_sent_back(data: FbDataEntry[]): FbEntryClarification[];
|
|
20
|
+
/** Get clarifications that are pending client response */
|
|
21
|
+
export declare function get_clarifications_pending(data: FbDataEntry[]): FbEntryClarification[];
|
|
22
|
+
/** Get the review decision for a specific clarification */
|
|
23
|
+
export declare function get_review_decision(data: FbDataEntry[], clarification_id: string): 'accept' | 'send_back' | null;
|
|
24
|
+
/** Get the agent feedback for a specific clarification */
|
|
25
|
+
export declare function get_agent_feedback(data: FbDataEntry[], clarification_id: string): string | null;
|
|
26
|
+
/** Get the full review snapshot for a clarification */
|
|
27
|
+
export declare function get_review(data: FbDataEntry[], clarification_id: string): FbClarificationReview | null;
|
|
28
|
+
/** Get the thread for a specific clarification */
|
|
29
|
+
export declare function get_thread(data: FbDataEntry[], clarification_id: string): FbThreadEntry[];
|
|
30
|
+
/** Get the latest client response from a clarification's thread */
|
|
31
|
+
export declare function get_latest_client_response(data: FbDataEntry[], clarification_id: string): FbThreadEntry | null;
|
|
32
|
+
/** Get all validations across all entries */
|
|
33
|
+
export declare function get_all_validations(data: FbDataEntry[]): (FbEntryValidation & {
|
|
34
|
+
entry_index: number;
|
|
35
|
+
})[];
|
|
36
|
+
/** Get all failed validations */
|
|
37
|
+
export declare function get_failed_validations(data: FbDataEntry[]): FbEntryValidation[];
|
|
38
|
+
/** Get validations for a specific processed_data item */
|
|
39
|
+
export declare function get_validations_for_pd(data: FbDataEntry[], pd_id: string): FbEntryValidation[];
|
|
40
|
+
/** File status derived from clarifications */
|
|
41
|
+
export type FileStatus = 'accepted' | 'sent_back' | 'sent_back_to_client' | 'pending' | 'no_issues';
|
|
42
|
+
/** Get the status of a file based on its validations and clarifications */
|
|
43
|
+
export declare function get_file_status(data: FbDataEntry[], file_id: string): FileStatus;
|
|
44
|
+
/** Get all processed_data items across all entries, including files from clarification responses */
|
|
45
|
+
export declare function get_all_processed_data(data: FbDataEntry[]): FbProcessedData[];
|
|
46
|
+
/** Find a processed_data item by ID */
|
|
47
|
+
export declare function find_processed_data(data: FbDataEntry[], pd_id: string): FbProcessedData | null;
|
|
48
|
+
/** Find the entry that owns a processed_data item */
|
|
49
|
+
export declare function find_entry_for_pd(data: FbDataEntry[], pd_id: string): FbDataEntry | null;
|
|
50
|
+
/** Get all response data for a clarification */
|
|
51
|
+
export declare function get_response_data(data: FbDataEntry[], clarification_id: string): FbResponseData[];
|
|
52
|
+
/** Count clarifications by status */
|
|
53
|
+
export declare function count_clarifications_by_status(data: FbDataEntry[]): Record<FbClarificationStatus, number>;
|
|
54
|
+
/** Get all file entries with their classification data */
|
|
55
|
+
export declare function get_file_entries(data: FbDataEntry[]): Array<{
|
|
56
|
+
pd_id: string;
|
|
57
|
+
file_id: string;
|
|
58
|
+
file_name: string;
|
|
59
|
+
tags: string[];
|
|
60
|
+
category: string[];
|
|
61
|
+
/** Total number of failed validations (issues) */
|
|
62
|
+
issue_count: number;
|
|
63
|
+
/** Number of issues that have been resolved (accepted clarifications) */
|
|
64
|
+
resolved_count: number;
|
|
65
|
+
status: FileStatus;
|
|
66
|
+
}>;
|
|
67
|
+
/** Get all autofill runs for a specific file across all entries */
|
|
68
|
+
export declare function get_autofill_runs_for_file(data: FbDataEntry[], file_id: string): FbAutofillRun[];
|
|
69
|
+
/** Check if a file+group combination has already been successfully autofilled */
|
|
70
|
+
export declare function is_file_autofilled(data: FbDataEntry[], file_id: string, group_id: string): boolean;
|
|
71
|
+
/** Get a set of file_id:group_id keys that have been successfully autofilled */
|
|
72
|
+
export declare function get_autofilled_file_groups(data: FbDataEntry[]): Set<string>;
|
|
73
|
+
/** Get extracted_fields for a file across any clarification's response_data. */
|
|
74
|
+
export declare function get_extracted_fields(data: FbDataEntry[], file_id: string): ExtractedResponseFields | null;
|
|
75
|
+
/**
|
|
76
|
+
* Get the latest resolution_check for a clarification, optionally limited to a
|
|
77
|
+
* specific form instance. Walks the thread in reverse to find the most recent
|
|
78
|
+
* client response carrying a check.
|
|
79
|
+
*/
|
|
80
|
+
export declare function get_latest_resolution_check(data: FbDataEntry[], clarification_id: string, form_instance?: number): ResolutionCheck | null;
|
|
81
|
+
//# sourceMappingURL=fb_data_queries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fb_data_queries.d.ts","sourceRoot":"","sources":["../../src/utils/fb_data_queries.ts"],"names":[],"mappings":"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"}
|