hazo_collab_forms 1.9.1 → 1.9.2
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 +25 -0
- package/README.md +153 -40
- package/dist/components/_internal_form_set.d.ts +13 -16
- package/dist/components/_internal_form_set.d.ts.map +1 -1
- package/dist/components/_internal_form_set.js +18 -2
- package/dist/components/_internal_form_set.js.map +1 -1
- package/dist/components/collab_form_file_upload.d.ts +38 -71
- package/dist/components/collab_form_file_upload.d.ts.map +1 -1
- package/dist/components/collab_form_file_upload.js +185 -280
- package/dist/components/collab_form_file_upload.js.map +1 -1
- package/dist/components/hazo_collab_form_base.d.ts +16 -6
- package/dist/components/hazo_collab_form_base.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_base.js +19 -10
- package/dist/components/hazo_collab_form_base.js.map +1 -1
- package/dist/components/hazo_collab_form_doc.d.ts +8 -11
- package/dist/components/hazo_collab_form_doc.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_doc.js +7 -5
- package/dist/components/hazo_collab_form_doc.js.map +1 -1
- package/dist/components/hazo_collab_form_group.d.ts +4 -3
- package/dist/components/hazo_collab_form_group.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_group.js +3 -3
- package/dist/components/hazo_collab_form_group.js.map +1 -1
- package/dist/components/hazo_collab_form_view/context.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/context.js +4 -0
- package/dist/components/hazo_collab_form_view/context.js.map +1 -1
- package/dist/components/hazo_collab_form_view/hooks/use_view_callbacks.d.ts +3 -3
- package/dist/components/hazo_collab_form_view/hooks/use_view_callbacks.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/hooks/use_view_callbacks.js.map +1 -1
- package/dist/components/hazo_collab_form_view/index.d.ts +1 -1
- package/dist/components/hazo_collab_form_view/index.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/index.js.map +1 -1
- package/dist/components/hazo_collab_form_view/types.d.ts +14 -9
- package/dist/components/hazo_collab_form_view/types.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/views/edit_view.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/views/edit_view.js +3 -1
- package/dist/components/hazo_collab_form_view/views/edit_view.js.map +1 -1
- package/dist/components/hazo_collab_form_view/views/summary_view.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/views/summary_view.js +13 -13
- package/dist/components/hazo_collab_form_view/views/summary_view.js.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/dist/components/shared/summary_files/summary_files.d.ts +10 -5
- package/dist/components/shared/summary_files/summary_files.d.ts.map +1 -1
- package/dist/components/shared/summary_files/summary_files.js +35 -14
- package/dist/components/shared/summary_files/summary_files.js.map +1 -1
- package/dist/components/shared/summary_utils/file_helpers.d.ts +7 -2
- package/dist/components/shared/summary_utils/file_helpers.d.ts.map +1 -1
- package/dist/components/shared/summary_utils/file_helpers.js +12 -2
- package/dist/components/shared/summary_utils/file_helpers.js.map +1 -1
- package/dist/components/shared/summary_utils/index.d.ts +1 -1
- package/dist/components/shared/summary_utils/index.d.ts.map +1 -1
- package/dist/components/shared/summary_utils/index.js +1 -1
- package/dist/components/shared/summary_utils/index.js.map +1 -1
- package/dist/components/shared/use_base_form_field.d.ts +13 -10
- package/dist/components/shared/use_base_form_field.d.ts.map +1 -1
- package/dist/components/shared/use_base_form_field.js +2 -1
- package/dist/components/shared/use_base_form_field.js.map +1 -1
- package/dist/types/file_attachment.d.ts +55 -0
- package/dist/types/file_attachment.d.ts.map +1 -0
- package/dist/types/file_attachment.js +54 -0
- package/dist/types/file_attachment.js.map +1 -0
- package/dist/types/file_manager.d.ts +60 -0
- package/dist/types/file_manager.d.ts.map +1 -0
- package/dist/types/file_manager.js +8 -0
- package/dist/types/file_manager.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/use_file_status.d.ts +29 -0
- package/dist/utils/use_file_status.d.ts.map +1 -0
- package/dist/utils/use_file_status.js +68 -0
- package/dist/utils/use_file_status.js.map +1 -0
- package/package.json +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_base_form_field.d.ts","sourceRoot":"","sources":["../../../src/components/shared/use_base_form_field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,wBAAwB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,
|
|
1
|
+
{"version":3,"file":"use_base_form_field.d.ts","sourceRoot":"","sources":["../../../src/components/shared/use_base_form_field.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export function use_base_form_field(props, ref) {
|
|
|
34
34
|
};
|
|
35
35
|
}, [current_files]);
|
|
36
36
|
// Destructure commonly-used props with defaults
|
|
37
|
-
const { label, tooltip, error, field_id, field_data_id, field_name, on_chat_click, chat_status, is_chat_active, chat_background_color = DEFAULTS.chat_background_color, is_data_ok_default, container_class_name, label_class_name, label_actions, error_class_name, field_width_class_name, required, data_ok_checked, on_data_ok_change, data_ok_mode, data_ok_value, on_data_ok_value_change, data_ok_hidden_states, data_ok_editable, disable_data_ok, disable_chat, accept_files_public, accept_files_private, files_dir, max_size, min_files, max_files, file_accept, file_processor, file_validator, files: controlled_files_prop, on_files_change, enable_notes, disable_notes, notes, on_notes_change, notes_panel_style, notes_background_color, notes_save_mode, current_user, className, id, disabled,
|
|
37
|
+
const { label, tooltip, error, field_id, field_data_id, field_name, on_chat_click, chat_status, is_chat_active, chat_background_color = DEFAULTS.chat_background_color, is_data_ok_default, container_class_name, label_class_name, label_actions, error_class_name, field_width_class_name, required, data_ok_checked, on_data_ok_change, data_ok_mode, data_ok_value, on_data_ok_value_change, data_ok_hidden_states, data_ok_editable, disable_data_ok, disable_chat, accept_files_public, accept_files_private, files_dir, max_size, min_files, max_files, file_accept, file_processor, file_validator, file_manager, files: controlled_files_prop, on_files_change, enable_notes, disable_notes, notes, on_notes_change, notes_panel_style, notes_background_color, notes_save_mode, current_user, className, id, disabled,
|
|
38
38
|
// HazoChat props
|
|
39
39
|
hazo_chat_group_id, hazo_chat_reference_id, hazo_chat_reference_type, hazo_chat_api_base_url, hazo_chat_timezone, hazo_chat_title, hazo_chat_subtitle, hazo_chat_realtime_mode, hazo_chat_polling_interval, hazo_chat_messages_per_page, hazo_chat_class_name, hazo_chat_on_close, hazo_chat_is_open, hazo_chat_on_open_change, hazo_chat_show_sidebar_toggle, hazo_chat_show_delete_button, hazo_chat_bubble_radius, hazo_chat_read_only,
|
|
40
40
|
// Reference tag props
|
|
@@ -203,6 +203,7 @@ export function use_base_form_field(props, ref) {
|
|
|
203
203
|
file_accept,
|
|
204
204
|
file_processor,
|
|
205
205
|
file_validator,
|
|
206
|
+
file_manager,
|
|
206
207
|
files: current_files,
|
|
207
208
|
on_files_change: handle_files_change,
|
|
208
209
|
component_ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_base_form_field.js","sourceRoot":"","sources":["../../../src/components/shared/use_base_form_field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,CAAC;AAEb,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"use_base_form_field.js","sourceRoot":"","sources":["../../../src/components/shared/use_base_form_field.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FormFileAttachment - File attachment type for hazo_files integration.
|
|
3
|
+
*
|
|
4
|
+
* Replaces the legacy FileData interface with a reference-tracking model.
|
|
5
|
+
* Each attachment stores a file_id (the hazo_files record) and a ref_id
|
|
6
|
+
* (the unique reference from an entity to that file), enabling multiple
|
|
7
|
+
* fields to reference the same physical file without duplication.
|
|
8
|
+
*/
|
|
9
|
+
import type { FileData } from '../components/hazo_collab_form_base.js';
|
|
10
|
+
/** Status of a tracked file in hazo_files */
|
|
11
|
+
export type FileStatus = 'active' | 'orphaned' | 'soft_deleted' | 'missing';
|
|
12
|
+
/**
|
|
13
|
+
* A file attachment stored in form_data at __files_ / __private_files_ keys.
|
|
14
|
+
*
|
|
15
|
+
* Contains cached display fields (file_name, file_size, mime_type) so the UI
|
|
16
|
+
* can render without additional API calls.
|
|
17
|
+
*/
|
|
18
|
+
export interface FormFileAttachment {
|
|
19
|
+
/** hazo_files record ID */
|
|
20
|
+
file_id: string;
|
|
21
|
+
/** Unique reference ID (matches file_refs[].ref_id in hazo_files) */
|
|
22
|
+
ref_id: string;
|
|
23
|
+
/** Cached original filename for display */
|
|
24
|
+
file_name: string;
|
|
25
|
+
/** Cached file size in bytes */
|
|
26
|
+
file_size: number;
|
|
27
|
+
/** Cached MIME type (e.g. 'application/pdf') */
|
|
28
|
+
mime_type: string;
|
|
29
|
+
/** Visibility level */
|
|
30
|
+
visibility: 'public' | 'private';
|
|
31
|
+
/** ISO timestamp when this attachment was created */
|
|
32
|
+
attached_at: string;
|
|
33
|
+
/** User ID who attached the file */
|
|
34
|
+
attached_by?: string;
|
|
35
|
+
/** File status from hazo_files (only populated when show_file_status is true) */
|
|
36
|
+
status?: FileStatus;
|
|
37
|
+
/** Server file path (for download fallback when get_download_url is unavailable) */
|
|
38
|
+
file_path?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Type guard: checks whether an object is a FormFileAttachment (vs legacy FileData).
|
|
42
|
+
* FormFileAttachment has ref_id + mime_type; FileData has file_type + uploaded_at.
|
|
43
|
+
*/
|
|
44
|
+
export declare function is_form_file_attachment(item: unknown): item is FormFileAttachment;
|
|
45
|
+
/**
|
|
46
|
+
* Convert a FormFileAttachment back to the legacy FileData shape.
|
|
47
|
+
* Useful for consumers that still depend on FileData during migration.
|
|
48
|
+
*/
|
|
49
|
+
export declare function attachment_to_file_data(attachment: FormFileAttachment): FileData;
|
|
50
|
+
/**
|
|
51
|
+
* Convert a legacy FileData to a FormFileAttachment.
|
|
52
|
+
* A ref_id is required; if not provided, one will be generated.
|
|
53
|
+
*/
|
|
54
|
+
export declare function file_data_to_attachment(file_data: FileData, ref_id?: string): FormFileAttachment;
|
|
55
|
+
//# sourceMappingURL=file_attachment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file_attachment.d.ts","sourceRoot":"","sources":["../../src/types/file_attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAEvE,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,kBAAkB,CAIjF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,GAAG,QAAQ,CAUhF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,kBAAkB,CAepB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FormFileAttachment - File attachment type for hazo_files integration.
|
|
3
|
+
*
|
|
4
|
+
* Replaces the legacy FileData interface with a reference-tracking model.
|
|
5
|
+
* Each attachment stores a file_id (the hazo_files record) and a ref_id
|
|
6
|
+
* (the unique reference from an entity to that file), enabling multiple
|
|
7
|
+
* fields to reference the same physical file without duplication.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Type guard: checks whether an object is a FormFileAttachment (vs legacy FileData).
|
|
11
|
+
* FormFileAttachment has ref_id + mime_type; FileData has file_type + uploaded_at.
|
|
12
|
+
*/
|
|
13
|
+
export function is_form_file_attachment(item) {
|
|
14
|
+
if (!item || typeof item !== 'object')
|
|
15
|
+
return false;
|
|
16
|
+
const obj = item;
|
|
17
|
+
return typeof obj.ref_id === 'string' && typeof obj.mime_type === 'string';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Convert a FormFileAttachment back to the legacy FileData shape.
|
|
21
|
+
* Useful for consumers that still depend on FileData during migration.
|
|
22
|
+
*/
|
|
23
|
+
export function attachment_to_file_data(attachment) {
|
|
24
|
+
return {
|
|
25
|
+
file_id: attachment.file_id,
|
|
26
|
+
file_name: attachment.file_name,
|
|
27
|
+
file_size: attachment.file_size,
|
|
28
|
+
file_type: attachment.mime_type,
|
|
29
|
+
file_path: attachment.file_path ?? '',
|
|
30
|
+
uploaded_at: new Date(attachment.attached_at),
|
|
31
|
+
visibility: attachment.visibility,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Convert a legacy FileData to a FormFileAttachment.
|
|
36
|
+
* A ref_id is required; if not provided, one will be generated.
|
|
37
|
+
*/
|
|
38
|
+
export function file_data_to_attachment(file_data, ref_id) {
|
|
39
|
+
return {
|
|
40
|
+
file_id: file_data.file_id,
|
|
41
|
+
ref_id: ref_id ?? `migrated_${file_data.file_id}_${Date.now()}`,
|
|
42
|
+
file_name: file_data.file_name,
|
|
43
|
+
file_size: file_data.file_size,
|
|
44
|
+
mime_type: file_data.file_type,
|
|
45
|
+
visibility: file_data.visibility ?? 'public',
|
|
46
|
+
attached_at: file_data.uploaded_at instanceof Date
|
|
47
|
+
? file_data.uploaded_at.toISOString()
|
|
48
|
+
: typeof file_data.uploaded_at === 'string'
|
|
49
|
+
? file_data.uploaded_at
|
|
50
|
+
: new Date().toISOString(),
|
|
51
|
+
file_path: file_data.file_path,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=file_attachment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file_attachment.js","sourceRoot":"","sources":["../../src/types/file_attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoCH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAa;IACnD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,OAAO,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA8B;IACpE,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,EAAE;QACrC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAC7C,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAmB,EACnB,MAAe;IAEf,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,MAAM,EAAE,MAAM,IAAI,YAAY,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QAC/D,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,QAAQ;QAC5C,WAAW,EAAE,SAAS,CAAC,WAAW,YAAY,IAAI;YAChD,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE;YACrC,CAAC,CAAC,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ;gBACzC,CAAC,CAAC,SAAS,CAAC,WAAW;gBACvB,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FileManagerCallbacks - Callback interface for hazo_files integration.
|
|
3
|
+
*
|
|
4
|
+
* Consuming apps implement these callbacks (typically via API routes) to
|
|
5
|
+
* bridge client-side React components with server-side hazo_files logic.
|
|
6
|
+
*/
|
|
7
|
+
import type { FormFileAttachment, FileStatus } from './file_attachment.js';
|
|
8
|
+
/**
|
|
9
|
+
* Options passed to the upload callback.
|
|
10
|
+
*/
|
|
11
|
+
export interface FileUploadOptions {
|
|
12
|
+
/** Entity type for the file reference (default: 'form_field') */
|
|
13
|
+
entity_type?: string;
|
|
14
|
+
/** Entity ID — typically the field_id the file is attached to */
|
|
15
|
+
entity_id: string;
|
|
16
|
+
/** Visibility level for this upload */
|
|
17
|
+
visibility?: 'public' | 'private';
|
|
18
|
+
/** Scope ID for organizational grouping (e.g. workspace, tenant) */
|
|
19
|
+
scope_id?: string;
|
|
20
|
+
/** User ID performing the upload */
|
|
21
|
+
uploaded_by?: string;
|
|
22
|
+
/** Optional label for the file reference */
|
|
23
|
+
label?: string;
|
|
24
|
+
/** Optional metadata to attach to the file reference */
|
|
25
|
+
metadata?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Callback interface that consuming apps implement to connect
|
|
29
|
+
* hazo_collab_forms file uploads with hazo_files on the server.
|
|
30
|
+
*/
|
|
31
|
+
export interface FileManagerCallbacks {
|
|
32
|
+
/** Upload a file and create a tracked reference. Returns the attachment. */
|
|
33
|
+
upload: (file: File, options: FileUploadOptions) => Promise<FormFileAttachment>;
|
|
34
|
+
/** Remove a file reference (not the physical file — that's handled by orphan detection). */
|
|
35
|
+
remove: (file_id: string, ref_id: string) => Promise<void>;
|
|
36
|
+
/** Get a download URL for a file. */
|
|
37
|
+
get_download_url: (file_id: string, visibility?: 'public' | 'private') => string;
|
|
38
|
+
/** Check status of files. Optional — if absent, status checking is disabled. */
|
|
39
|
+
get_status?: (file_ids: string[]) => Promise<Record<string, FileStatus>>;
|
|
40
|
+
/** Re-upload to replace a missing file. Optional — if absent, re-upload is disabled. */
|
|
41
|
+
reupload?: (file: File, original_file_id: string, options: FileUploadOptions) => Promise<FormFileAttachment>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Configuration object passed to form components to enable hazo_files integration.
|
|
45
|
+
*/
|
|
46
|
+
export interface FileManagerConfig {
|
|
47
|
+
/** Callback implementations (required) */
|
|
48
|
+
callbacks: FileManagerCallbacks;
|
|
49
|
+
/** Show missing/deleted/orphaned badges on files (default: false) */
|
|
50
|
+
show_file_status?: boolean;
|
|
51
|
+
/** Allow re-uploading missing files (default: false) */
|
|
52
|
+
allow_reupload?: boolean;
|
|
53
|
+
/** Default entity_type for file references (default: 'form_field') */
|
|
54
|
+
default_entity_type?: string;
|
|
55
|
+
/** Scope ID passed to all upload calls */
|
|
56
|
+
scope_id?: string;
|
|
57
|
+
/** User ID passed to all upload calls */
|
|
58
|
+
uploaded_by?: string;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=file_manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file_manager.d.ts","sourceRoot":"","sources":["../../src/types/file_manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhF,4FAA4F;IAC5F,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D,qCAAqC;IACrC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,KAAK,MAAM,CAAC;IAEjF,gFAAgF;IAChF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzE,wFAAwF;IACxF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC9G;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,SAAS,EAAE,oBAAoB,CAAC;IAChC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FileManagerCallbacks - Callback interface for hazo_files integration.
|
|
3
|
+
*
|
|
4
|
+
* Consuming apps implement these callbacks (typically via API routes) to
|
|
5
|
+
* bridge client-side React components with server-side hazo_files logic.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=file_manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file_manager.js","sourceRoot":"","sources":["../../src/types/file_manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,4 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export type { ControlName, RoleControlBehaviour, RoleBehaviour, IconsBehaviour, GlobalSettings, } from './icons_behaviour.js';
|
|
5
5
|
export { DEFAULT_ICON_ORDER, DEFAULT_ROLE_CONTROL_BEHAVIOUR, get_default_icons_behaviour, } from './icons_behaviour.js';
|
|
6
|
+
export type { FormFileAttachment, FileStatus, } from './file_attachment.js';
|
|
7
|
+
export { is_form_file_attachment, attachment_to_file_data, file_data_to_attachment, } from './file_attachment.js';
|
|
8
|
+
export type { FileUploadOptions, FileManagerCallbacks, FileManagerConfig, } from './file_manager.js';
|
|
6
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,kBAAkB,EAClB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
|
package/dist/types/index.js
CHANGED
|
@@ -2,4 +2,5 @@
|
|
|
2
2
|
* Type definitions for hazo_collab_forms
|
|
3
3
|
*/
|
|
4
4
|
export { DEFAULT_ICON_ORDER, DEFAULT_ROLE_CONTROL_BEHAVIOUR, get_default_icons_behaviour, } from './icons_behaviour.js';
|
|
5
|
+
export { is_form_file_attachment, attachment_to_file_data, file_data_to_attachment, } from './file_attachment.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -14,4 +14,6 @@ export type { DateFormat } from './date_format.js';
|
|
|
14
14
|
export { new_field_definition_to_config, insert_field_after_in_sections, remove_field_from_sections, update_field_in_sections, } from './field_definition_to_config.js';
|
|
15
15
|
export { deprecation_warning } from './deprecation_warning.js';
|
|
16
16
|
export { filter_dom_props, get_dom_safe_props, } from './filter_dom_props.js';
|
|
17
|
+
export { use_file_status } from './use_file_status.js';
|
|
18
|
+
export type { UseFileStatusOptions, UseFileStatusResult } from './use_file_status.js';
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -10,4 +10,5 @@ export { format_date, format_date_range, DEFAULT_DATE_FORMAT, } from './date_for
|
|
|
10
10
|
export { new_field_definition_to_config, insert_field_after_in_sections, remove_field_from_sections, update_field_in_sections, } from './field_definition_to_config.js';
|
|
11
11
|
export { deprecation_warning } from './deprecation_warning.js';
|
|
12
12
|
export { filter_dom_props, get_dom_safe_props, } from './filter_dom_props.js';
|
|
13
|
+
export { use_file_status } from './use_file_status.js';
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* use_file_status - Hook for polling file statuses from hazo_files.
|
|
3
|
+
*
|
|
4
|
+
* Collects all file_ids from __files_ / __private_files_ keys in form_data,
|
|
5
|
+
* then periodically calls file_manager.callbacks.get_status() to check
|
|
6
|
+
* whether any files are missing, orphaned, or soft-deleted.
|
|
7
|
+
*/
|
|
8
|
+
import type { FileStatus } from '../types/file_attachment.js';
|
|
9
|
+
import type { FileManagerCallbacks } from '../types/file_manager.js';
|
|
10
|
+
export interface UseFileStatusOptions {
|
|
11
|
+
/** Form data containing __files_ and __private_files_ keys */
|
|
12
|
+
form_data: Record<string, unknown>;
|
|
13
|
+
/** File manager callbacks (must include get_status) */
|
|
14
|
+
callbacks?: FileManagerCallbacks;
|
|
15
|
+
/** Whether status checking is enabled */
|
|
16
|
+
enabled?: boolean;
|
|
17
|
+
/** Polling interval in ms (default: 60000 = 1 minute, 0 = no polling) */
|
|
18
|
+
poll_interval?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface UseFileStatusResult {
|
|
21
|
+
/** Map of file_id -> FileStatus */
|
|
22
|
+
statuses: Record<string, FileStatus>;
|
|
23
|
+
/** Whether a status check is in progress */
|
|
24
|
+
loading: boolean;
|
|
25
|
+
/** Manually trigger a status refresh */
|
|
26
|
+
refresh: () => void;
|
|
27
|
+
}
|
|
28
|
+
export declare function use_file_status({ form_data, callbacks, enabled, poll_interval, }: UseFileStatusOptions): UseFileStatusResult;
|
|
29
|
+
//# sourceMappingURL=use_file_status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use_file_status.d.ts","sourceRoot":"","sources":["../../src/utils/use_file_status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,uDAAuD;IACvD,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,yCAAyC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAsBD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,SAAS,EACT,OAAe,EACf,aAAqB,GACtB,EAAE,oBAAoB,GAAG,mBAAmB,CAyC5C"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* use_file_status - Hook for polling file statuses from hazo_files.
|
|
3
|
+
*
|
|
4
|
+
* Collects all file_ids from __files_ / __private_files_ keys in form_data,
|
|
5
|
+
* then periodically calls file_manager.callbacks.get_status() to check
|
|
6
|
+
* whether any files are missing, orphaned, or soft-deleted.
|
|
7
|
+
*/
|
|
8
|
+
'use client';
|
|
9
|
+
import { useState, useEffect, useRef, useCallback } from 'react';
|
|
10
|
+
/**
|
|
11
|
+
* Extract all file_ids from form_data's __files_ and __private_files_ entries.
|
|
12
|
+
*/
|
|
13
|
+
function collect_file_ids(form_data) {
|
|
14
|
+
const ids = new Set();
|
|
15
|
+
for (const key of Object.keys(form_data)) {
|
|
16
|
+
if (key.startsWith('__files_') || key.startsWith('__private_files_')) {
|
|
17
|
+
const arr = form_data[key];
|
|
18
|
+
if (Array.isArray(arr)) {
|
|
19
|
+
for (const item of arr) {
|
|
20
|
+
if (item && typeof item === 'object' && typeof item.file_id === 'string') {
|
|
21
|
+
ids.add(item.file_id);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return Array.from(ids);
|
|
28
|
+
}
|
|
29
|
+
export function use_file_status({ form_data, callbacks, enabled = false, poll_interval = 60000, }) {
|
|
30
|
+
const [statuses, set_statuses] = useState({});
|
|
31
|
+
const [loading, set_loading] = useState(false);
|
|
32
|
+
const interval_ref = useRef(null);
|
|
33
|
+
const fetch_statuses = useCallback(async () => {
|
|
34
|
+
if (!callbacks?.get_status)
|
|
35
|
+
return;
|
|
36
|
+
const file_ids = collect_file_ids(form_data);
|
|
37
|
+
if (file_ids.length === 0)
|
|
38
|
+
return;
|
|
39
|
+
set_loading(true);
|
|
40
|
+
try {
|
|
41
|
+
const result = await callbacks.get_status(file_ids);
|
|
42
|
+
set_statuses(result);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Silently fail — status checking is non-critical
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
set_loading(false);
|
|
49
|
+
}
|
|
50
|
+
}, [form_data, callbacks]);
|
|
51
|
+
// Initial fetch + polling
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (!enabled || !callbacks?.get_status)
|
|
54
|
+
return;
|
|
55
|
+
fetch_statuses();
|
|
56
|
+
if (poll_interval > 0) {
|
|
57
|
+
interval_ref.current = setInterval(fetch_statuses, poll_interval);
|
|
58
|
+
}
|
|
59
|
+
return () => {
|
|
60
|
+
if (interval_ref.current) {
|
|
61
|
+
clearInterval(interval_ref.current);
|
|
62
|
+
interval_ref.current = null;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}, [enabled, poll_interval, fetch_statuses]);
|
|
66
|
+
return { statuses, loading, refresh: fetch_statuses };
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=use_file_status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use_file_status.js","sourceRoot":"","sources":["../../src/utils/use_file_status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAwBjE;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAAkC;IAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;oBACvB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAQ,IAAgC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;wBACtG,GAAG,CAAC,GAAG,CAAE,IAAgC,CAAC,OAAiB,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,SAAS,EACT,SAAS,EACT,OAAO,GAAG,KAAK,EACf,aAAa,GAAG,KAAK,GACA;IACrB,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA6B,EAAE,CAAC,CAAC;IAC1E,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAwC,IAAI,CAAC,CAAC;IAEzE,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI,CAAC,SAAS,EAAE,UAAU;YAAE,OAAO;QAEnC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACpD,YAAY,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAE3B,0BAA0B;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,UAAU;YAAE,OAAO;QAE/C,cAAc,EAAE,CAAC;QAEjB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzB,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACpC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAE7C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;AACxD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_collab_forms",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.2",
|
|
4
4
|
"description": "Collaboration form elements",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -70,6 +70,8 @@
|
|
|
70
70
|
"@types/node": "^20.11.0",
|
|
71
71
|
"@types/react": "^18.2.48",
|
|
72
72
|
"@types/react-dom": "^18.2.18",
|
|
73
|
+
"hazo_chat": "^5.2.1",
|
|
74
|
+
"hazo_logs": "^1.0.10",
|
|
73
75
|
"patch-package": "^8.0.0",
|
|
74
76
|
"typescript": "^5.3.3"
|
|
75
77
|
},
|
|
@@ -80,6 +82,7 @@
|
|
|
80
82
|
"clsx": "^2.1.0",
|
|
81
83
|
"hazo_auth": "^5.1.24",
|
|
82
84
|
"hazo_config": "^1.4.2",
|
|
85
|
+
"hazo_files": "^1.4.2",
|
|
83
86
|
"hazo_notes": "^1.1.5",
|
|
84
87
|
"hazo_ui": "^2.2.1",
|
|
85
88
|
"react-resizable-panels": "^4.3.3",
|