@firecms/collection_editor 3.3.0 → 3.4.0-canary.1faa2a9

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.
@@ -0,0 +1,126 @@
1
+ const collectionEditorTranslationsIt = {
2
+ file_upload_config: "Configurazione caricamento file",
3
+ file_type_images: "Immagini",
4
+ file_type_videos: "Video",
5
+ file_type_audio: "File audio",
6
+ file_type_applications: "File (pdf, zip, csv, excel...)",
7
+ file_type_text: "File di testo",
8
+ only: "Solo",
9
+ all_file_types_allowed: "Tutti i tipi di file consentiti",
10
+ allowed_file_types: "Tipi di file consentiti",
11
+ file_name_label: "Nome del file",
12
+ storage_path_label: "Percorso di archiviazione",
13
+ storage_placeholders_description: "Puoi utilizzare i seguenti segnaposto nei valori del nome file e del percorso di archiviazione:",
14
+ storage_placeholder_file: "{file} - Nome completo del file caricato",
15
+ storage_placeholder_file_name: "{file.name} - Nome del file caricato senza estensione",
16
+ storage_placeholder_file_ext: "{file.ext} - Estensione del file caricato",
17
+ storage_placeholder_entity_id: "{entityId} - ID dell'entità",
18
+ storage_placeholder_property_key: "{propertyKey} - ID di questo campo",
19
+ storage_placeholder_path: "{path} - Percorso di questa entità",
20
+ storage_placeholder_rand: "{rand} - Valore casuale per evitare conflitti di nomi",
21
+ include_bucket_url: "Includi URL del bucket (gs://...) nel valore salvato",
22
+ include_bucket_url_description: "Attiva questa impostazione se desideri salvare un URL di archiviazione completo (es. gs://mio-bucket/percorso/al/file) invece del solo percorso di archiviazione. La modifica influisce solo sui nuovi caricamenti: i valori già salvati mantengono il loro formato attuale.",
23
+ save_url_instead_of_path: "Salva URL invece del percorso di archiviazione",
24
+ save_url_description: "Attiva questa impostazione se preferisci salvare l'URL di download del file caricato invece del percorso di archiviazione. La modifica influisce solo sui nuovi caricamenti: i valori già salvati mantengono il loro formato attuale.",
25
+ max_size_bytes: "Dimensione massima (in byte)",
26
+ image_resize_configuration: "Configurazione ridimensionamento immagine",
27
+ image_resize_description: "Ridimensiona e ottimizza automaticamente le immagini prima del caricamento (solo JPEG, PNG, WebP)",
28
+ max_width_px: "Larghezza max (px)",
29
+ max_height_px: "Altezza max (px)",
30
+ resize_mode: "Modalità ridimensionamento",
31
+ resize_contain: "Contenere",
32
+ resize_contain_description: "Contenere (adatta ai limiti)",
33
+ resize_cover: "Coprire",
34
+ resize_cover_description: "Coprire (riempi i limiti, può ritagliare)",
35
+ output_format: "Formato di output",
36
+ format_original: "Originale",
37
+ format_original_description: "Originale (mantieni lo stesso formato)",
38
+ format_webp_description: "WebP (migliore compressione)",
39
+ quality_label: "Qualità (0–100)",
40
+ quality_hint: "Qualità superiore = file più grande. Consigliato: 80–90 per foto, 90–100 per grafica",
41
+ preview_type: "Tipo anteprima",
42
+ preview_image: "Immagine",
43
+ preview_video: "Video",
44
+ preview_audio: "Audio",
45
+ display_url: "Mostra URL",
46
+ default_value_not_set: "Valore predefinito non impostato",
47
+ default_value_is: "Il valore predefinito è {{value}}",
48
+ default_value_was_cleared: "Il valore predefinito è stato rimosso",
49
+ enum_missing_values: "Questa proprietà enum è incompleta",
50
+ mode_label: "Modalità",
51
+ date_time_mode: "Data/Ora",
52
+ date_mode: "Data",
53
+ automatic_value: "Valore automatico",
54
+ auto_on_create: "Alla creazione",
55
+ auto_on_update: "Ad ogni aggiornamento",
56
+ auto_none: "Nessuno",
57
+ auto_value_description: "Aggiorna questo campo automaticamente alla creazione o aggiornamento dell'entità",
58
+ timezone_label: "Fuso orario",
59
+ local_timezone: "Fuso orario locale",
60
+ timezone_description: "Fuso orario per la visualizzazione e l'inserimento delle date. I valori sono sempre memorizzati in UTC.",
61
+ target_collection: "Collezione di destinazione",
62
+ views_group: "Viste",
63
+ add_property_to: "Aggiungi proprietà a {{name}}",
64
+ add_first_property_to_group: "Aggiungi la prima proprietà a questo gruppo",
65
+ spread_children_as_columns: "Espandi figli come colonne",
66
+ spread_children_description: "Attiva questa opzione se desideri visualizzare i figli di questo gruppo come colonne individuali. Funziona solo per i gruppi di primo livello.",
67
+ paste_behavior: "Comportamento incolla",
68
+ strip_html_on_paste: "Rimuovi HTML all'incolla",
69
+ strip_html_description: "Rimuovi tag HTML e stili inline quando incolli contenuti da fonti esterne",
70
+ convert_pasted_to_markdown: "Converti testo incollato in markdown",
71
+ convert_pasted_description: "Converti testo formattato (da Google Docs, Word, ecc.) in formato markdown pulito",
72
+ markdown_url_note: "Quando si utilizza Markdown, gli URL dei file caricati vengono sempre salvati nel valore testo (non il percorso).",
73
+ hide_from_collection: "Nascondi dalla collezione",
74
+ hide_from_collection_tooltip: "Nascondi questo campo dalla vista collezione. Sarà comunque visibile nella vista modulo",
75
+ read_only: "Sola lettura",
76
+ read_only_tooltip: "Questo è un campo di sola lettura. Visualizza solo come anteprima",
77
+ nullable: "Nullable",
78
+ nullable_tooltip: "Consenti di impostare esplicitamente questo campo su null. All'utente verrà mostrato un pulsante di cancellazione",
79
+ tab_general: "Generale",
80
+ tab_display: "Visualizzazione",
81
+ tab_properties: "Proprietà",
82
+ tab_extend: "Estendi",
83
+ unsaved_changes_in_collection: "Ci sono modifiche non salvate in questa collezione",
84
+ error_persisting_collection: "Errore nel salvataggio della collezione: {{error}}",
85
+ details_in_console: "Dettagli nella console",
86
+ error_inferring_collection: "Errore nell'inferenza della collezione: {{error}}",
87
+ collection_deleted: "Collezione eliminata",
88
+ data_imported_successfully_msg: "Dati importati con successo",
89
+ must_specify_path: "Devi specificare un percorso nel database per questa collezione",
90
+ collection_path_already_exists: "Esiste già una collezione con il percorso specificato. Se desideri avere più collezioni con lo stesso percorso, assicurati che abbiano ID diversi",
91
+ collection_path_odd_segments: "I percorsi delle collezioni devono avere un numero dispari di segmenti: {{path}}",
92
+ collection_uses_path_as_id: "Esiste già una collezione che utilizza questo valore come percorso",
93
+ collection_uses_this_id: "Esiste già una collezione che utilizza questo ID",
94
+ delete_stored_config: "Eliminare la configurazione salvata?",
95
+ delete_stored_config_body: "Questo non eliminerà alcun dato, solo la configurazione salvata, e ripristinerà lo stato del codice.",
96
+ order_label: "Ordine",
97
+ // Collection Properties Editor
98
+ select_property_to_edit: "Seleziona una proprietà per modificarla",
99
+ add_first_property: "Ora puoi aggiungere la tua prima proprietà",
100
+ add_new_property: "Aggiungi nuova proprietà",
101
+ no_permission_add_properties: "Non hai i permessi per aggiungere nuove proprietà",
102
+ get_code_for_collection: "Ottieni il codice di questa collezione",
103
+ add_properties_from_data: "Aggiungi nuove proprietà basate sui dati",
104
+ collection_name_placeholder: "Nome della collezione",
105
+ created_by: "Creato da {{name}}",
106
+ property_defined_as_builder: "Questa proprietà è definita come property builder nel codice",
107
+ // Extend Settings
108
+ extend_title: "Estendi",
109
+ extend_description: "Aggiungi sotto-collezioni, viste personalizzate e azioni entità a questa collezione.",
110
+ collection_defined_in_code: "Questa collezione è definita nel codice. Le modifiche effettuate in questo editor sovrascriveranno le proprietà definite nel codice. Puoi eliminare i valori sovrascritti per tornare allo stato definito nel codice.",
111
+ reset_to_code: "Ripristina al codice",
112
+ widget_group_text: "Testo",
113
+ widget_group_boolean: "Booleano",
114
+ widget_group_users: "Utenti",
115
+ widget_group_select: "Selezione",
116
+ widget_group_number: "Numero",
117
+ widget_group_file: "File",
118
+ widget_group_reference: "Riferimento",
119
+ widget_group_date: "Data",
120
+ widget_group_group: "Gruppo",
121
+ widget_group_array: "Lista"
122
+ };
123
+ export {
124
+ collectionEditorTranslationsIt
125
+ };
126
+ //# sourceMappingURL=it-B8DeGSZc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"it-B8DeGSZc.js","sources":["../src/locales/it.ts"],"sourcesContent":["export const collectionEditorTranslationsIt = {\n file_upload_config: \"Configurazione caricamento file\",\n file_type_images: \"Immagini\",\n file_type_videos: \"Video\",\n file_type_audio: \"File audio\",\n file_type_applications: \"File (pdf, zip, csv, excel...)\",\n file_type_text: \"File di testo\",\n only: \"Solo\",\n all_file_types_allowed: \"Tutti i tipi di file consentiti\",\n allowed_file_types: \"Tipi di file consentiti\",\n file_name_label: \"Nome del file\",\n storage_path_label: \"Percorso di archiviazione\",\n storage_placeholders_description: \"Puoi utilizzare i seguenti segnaposto nei valori del nome file e del percorso di archiviazione:\",\n storage_placeholder_file: \"{file} - Nome completo del file caricato\",\n storage_placeholder_file_name: \"{file.name} - Nome del file caricato senza estensione\",\n storage_placeholder_file_ext: \"{file.ext} - Estensione del file caricato\",\n storage_placeholder_entity_id: \"{entityId} - ID dell'entità\",\n storage_placeholder_property_key: \"{propertyKey} - ID di questo campo\",\n storage_placeholder_path: \"{path} - Percorso di questa entità\",\n storage_placeholder_rand: \"{rand} - Valore casuale per evitare conflitti di nomi\",\n include_bucket_url: \"Includi URL del bucket (gs://...) nel valore salvato\",\n include_bucket_url_description: \"Attiva questa impostazione se desideri salvare un URL di archiviazione completo (es. gs://mio-bucket/percorso/al/file) invece del solo percorso di archiviazione. La modifica influisce solo sui nuovi caricamenti: i valori già salvati mantengono il loro formato attuale.\",\n save_url_instead_of_path: \"Salva URL invece del percorso di archiviazione\",\n save_url_description: \"Attiva questa impostazione se preferisci salvare l'URL di download del file caricato invece del percorso di archiviazione. La modifica influisce solo sui nuovi caricamenti: i valori già salvati mantengono il loro formato attuale.\",\n max_size_bytes: \"Dimensione massima (in byte)\",\n image_resize_configuration: \"Configurazione ridimensionamento immagine\",\n image_resize_description: \"Ridimensiona e ottimizza automaticamente le immagini prima del caricamento (solo JPEG, PNG, WebP)\",\n max_width_px: \"Larghezza max (px)\",\n max_height_px: \"Altezza max (px)\",\n resize_mode: \"Modalità ridimensionamento\",\n resize_contain: \"Contenere\",\n resize_contain_description: \"Contenere (adatta ai limiti)\",\n resize_cover: \"Coprire\",\n resize_cover_description: \"Coprire (riempi i limiti, può ritagliare)\",\n output_format: \"Formato di output\",\n format_original: \"Originale\",\n format_original_description: \"Originale (mantieni lo stesso formato)\",\n format_webp_description: \"WebP (migliore compressione)\",\n quality_label: \"Qualità (0–100)\",\n quality_hint: \"Qualità superiore = file più grande. Consigliato: 80–90 per foto, 90–100 per grafica\",\n preview_type: \"Tipo anteprima\",\n preview_image: \"Immagine\",\n preview_video: \"Video\",\n preview_audio: \"Audio\",\n display_url: \"Mostra URL\",\n default_value_not_set: \"Valore predefinito non impostato\",\n default_value_is: \"Il valore predefinito è {{value}}\",\n default_value_was_cleared: \"Il valore predefinito è stato rimosso\",\n enum_missing_values: \"Questa proprietà enum è incompleta\",\n mode_label: \"Modalità\",\n date_time_mode: \"Data/Ora\",\n date_mode: \"Data\",\n automatic_value: \"Valore automatico\",\n auto_on_create: \"Alla creazione\",\n auto_on_update: \"Ad ogni aggiornamento\",\n auto_none: \"Nessuno\",\n auto_value_description: \"Aggiorna questo campo automaticamente alla creazione o aggiornamento dell'entità\",\n timezone_label: \"Fuso orario\",\n local_timezone: \"Fuso orario locale\",\n timezone_description: \"Fuso orario per la visualizzazione e l'inserimento delle date. I valori sono sempre memorizzati in UTC.\",\n target_collection: \"Collezione di destinazione\",\n views_group: \"Viste\",\n add_property_to: \"Aggiungi proprietà a {{name}}\",\n add_first_property_to_group: \"Aggiungi la prima proprietà a questo gruppo\",\n spread_children_as_columns: \"Espandi figli come colonne\",\n spread_children_description: \"Attiva questa opzione se desideri visualizzare i figli di questo gruppo come colonne individuali. Funziona solo per i gruppi di primo livello.\",\n paste_behavior: \"Comportamento incolla\",\n strip_html_on_paste: \"Rimuovi HTML all'incolla\",\n strip_html_description: \"Rimuovi tag HTML e stili inline quando incolli contenuti da fonti esterne\",\n convert_pasted_to_markdown: \"Converti testo incollato in markdown\",\n convert_pasted_description: \"Converti testo formattato (da Google Docs, Word, ecc.) in formato markdown pulito\",\n markdown_url_note: \"Quando si utilizza Markdown, gli URL dei file caricati vengono sempre salvati nel valore testo (non il percorso).\",\n hide_from_collection: \"Nascondi dalla collezione\",\n hide_from_collection_tooltip: \"Nascondi questo campo dalla vista collezione. Sarà comunque visibile nella vista modulo\",\n read_only: \"Sola lettura\",\n read_only_tooltip: \"Questo è un campo di sola lettura. Visualizza solo come anteprima\",\n nullable: \"Nullable\",\n nullable_tooltip: \"Consenti di impostare esplicitamente questo campo su null. All'utente verrà mostrato un pulsante di cancellazione\",\n tab_general: \"Generale\",\n tab_display: \"Visualizzazione\",\n tab_properties: \"Proprietà\",\n tab_extend: \"Estendi\",\n unsaved_changes_in_collection: \"Ci sono modifiche non salvate in questa collezione\",\n error_persisting_collection: \"Errore nel salvataggio della collezione: {{error}}\",\n details_in_console: \"Dettagli nella console\",\n error_inferring_collection: \"Errore nell'inferenza della collezione: {{error}}\",\n collection_deleted: \"Collezione eliminata\",\n data_imported_successfully_msg: \"Dati importati con successo\",\n must_specify_path: \"Devi specificare un percorso nel database per questa collezione\",\n collection_path_already_exists: \"Esiste già una collezione con il percorso specificato. Se desideri avere più collezioni con lo stesso percorso, assicurati che abbiano ID diversi\",\n collection_path_odd_segments: \"I percorsi delle collezioni devono avere un numero dispari di segmenti: {{path}}\",\n collection_uses_path_as_id: \"Esiste già una collezione che utilizza questo valore come percorso\",\n collection_uses_this_id: \"Esiste già una collezione che utilizza questo ID\",\n delete_stored_config: \"Eliminare la configurazione salvata?\",\n delete_stored_config_body: \"Questo non eliminerà alcun dato, solo la configurazione salvata, e ripristinerà lo stato del codice.\",\n order_label: \"Ordine\",\n\n // Collection Properties Editor\n select_property_to_edit: \"Seleziona una proprietà per modificarla\",\n add_first_property: \"Ora puoi aggiungere la tua prima proprietà\",\n add_new_property: \"Aggiungi nuova proprietà\",\n no_permission_add_properties: \"Non hai i permessi per aggiungere nuove proprietà\",\n get_code_for_collection: \"Ottieni il codice di questa collezione\",\n add_properties_from_data: \"Aggiungi nuove proprietà basate sui dati\",\n collection_name_placeholder: \"Nome della collezione\",\n created_by: \"Creato da {{name}}\",\n property_defined_as_builder: \"Questa proprietà è definita come property builder nel codice\",\n\n // Extend Settings\n extend_title: \"Estendi\",\n extend_description: \"Aggiungi sotto-collezioni, viste personalizzate e azioni entità a questa collezione.\",\n collection_defined_in_code: \"Questa collezione è definita nel codice. Le modifiche effettuate in questo editor sovrascriveranno le proprietà definite nel codice. Puoi eliminare i valori sovrascritti per tornare allo stato definito nel codice.\",\n reset_to_code: \"Ripristina al codice\",\n\n widget_group_text: \"Testo\",\n widget_group_boolean: \"Booleano\",\n widget_group_users: \"Utenti\",\n widget_group_select: \"Selezione\",\n widget_group_number: \"Numero\",\n widget_group_file: \"File\",\n widget_group_reference: \"Riferimento\",\n widget_group_date: \"Data\",\n widget_group_group: \"Gruppo\",\n widget_group_array: \"Lista\"\n};\n"],"names":["collectionEditorTranslationsIt","file_upload_config","file_type_images","file_type_videos","file_type_audio","file_type_applications","file_type_text","only","all_file_types_allowed","allowed_file_types","file_name_label","storage_path_label","storage_placeholders_description","storage_placeholder_file","storage_placeholder_file_name","storage_placeholder_file_ext","storage_placeholder_entity_id","storage_placeholder_property_key","storage_placeholder_path","storage_placeholder_rand","include_bucket_url","include_bucket_url_description","save_url_instead_of_path","save_url_description","max_size_bytes","image_resize_configuration","image_resize_description","max_width_px","max_height_px","resize_mode","resize_contain","resize_contain_description","resize_cover","resize_cover_description","output_format","format_original","format_original_description","format_webp_description","quality_label","quality_hint","preview_type","preview_image","preview_video","preview_audio","display_url","default_value_not_set","default_value_is","default_value_was_cleared","enum_missing_values","mode_label","date_time_mode","date_mode","automatic_value","auto_on_create","auto_on_update","auto_none","auto_value_description","timezone_label","local_timezone","timezone_description","target_collection","views_group","add_property_to","add_first_property_to_group","spread_children_as_columns","spread_children_description","paste_behavior","strip_html_on_paste","strip_html_description","convert_pasted_to_markdown","convert_pasted_description","markdown_url_note","hide_from_collection","hide_from_collection_tooltip","read_only","read_only_tooltip","nullable","nullable_tooltip","tab_general","tab_display","tab_properties","tab_extend","unsaved_changes_in_collection","error_persisting_collection","details_in_console","error_inferring_collection","collection_deleted","data_imported_successfully_msg","must_specify_path","collection_path_already_exists","collection_path_odd_segments","collection_uses_path_as_id","collection_uses_this_id","delete_stored_config","delete_stored_config_body","order_label","select_property_to_edit","add_first_property","add_new_property","no_permission_add_properties","get_code_for_collection","add_properties_from_data","collection_name_placeholder","created_by","property_defined_as_builder","extend_title","extend_description","collection_defined_in_code","reset_to_code","widget_group_text","widget_group_boolean","widget_group_users","widget_group_select","widget_group_number","widget_group_file","widget_group_reference","widget_group_date","widget_group_group","widget_group_array"],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ const collectionEditorTranslationsPt = {
2
+ file_upload_config: "Configuração de upload de arquivo",
3
+ file_type_images: "Imagens",
4
+ file_type_videos: "Vídeos",
5
+ file_type_audio: "Arquivos de áudio",
6
+ file_type_applications: "Arquivos (pdf, zip, csv, excel...)",
7
+ file_type_text: "Arquivos de texto",
8
+ only: "Apenas",
9
+ all_file_types_allowed: "Todos os tipos de arquivo permitidos",
10
+ allowed_file_types: "Tipos de arquivo permitidos",
11
+ file_name_label: "Nome do arquivo",
12
+ storage_path_label: "Caminho de armazenamento",
13
+ storage_placeholders_description: "Você pode usar os seguintes marcadores nos valores do nome do arquivo e do caminho de armazenamento:",
14
+ storage_placeholder_file: "{file} - Nome completo do arquivo enviado",
15
+ storage_placeholder_file_name: "{file.name} - Nome do arquivo enviado sem extensão",
16
+ storage_placeholder_file_ext: "{file.ext} - Extensão do arquivo enviado",
17
+ storage_placeholder_entity_id: "{entityId} - ID da entidade",
18
+ storage_placeholder_property_key: "{propertyKey} - ID deste campo",
19
+ storage_placeholder_path: "{path} - Caminho desta entidade",
20
+ storage_placeholder_rand: "{rand} - Valor aleatório para evitar colisões de nomes",
21
+ include_bucket_url: "Incluir URL do bucket (gs://...) no valor salvo",
22
+ include_bucket_url_description: "Ative esta configuração se deseja salvar uma URL de armazenamento completa (ex. gs://meu-bucket/caminho/para/arquivo) em vez de apenas o caminho de armazenamento. Alterá-la afeta apenas os novos envios: os valores já salvos mantêm o formato atual.",
23
+ save_url_instead_of_path: "Salvar URL em vez do caminho de armazenamento",
24
+ save_url_description: "Ative esta configuração se preferir salvar a URL de download do arquivo enviado em vez do caminho de armazenamento. Alterá-la afeta apenas os novos envios: os valores já salvos mantêm o formato atual.",
25
+ max_size_bytes: "Tamanho máximo (em bytes)",
26
+ image_resize_configuration: "Configuração de redimensionamento de imagem",
27
+ image_resize_description: "Redimensionar e otimizar imagens automaticamente antes do upload (apenas JPEG, PNG, WebP)",
28
+ max_width_px: "Largura máx (px)",
29
+ max_height_px: "Altura máx (px)",
30
+ resize_mode: "Modo de redimensionamento",
31
+ resize_contain: "Conter",
32
+ resize_contain_description: "Conter (ajustar dentro dos limites)",
33
+ resize_cover: "Cobrir",
34
+ resize_cover_description: "Cobrir (preencher limites, pode cortar)",
35
+ output_format: "Formato de saída",
36
+ format_original: "Original",
37
+ format_original_description: "Original (manter mesmo formato)",
38
+ format_webp_description: "WebP (melhor compressão)",
39
+ quality_label: "Qualidade (0–100)",
40
+ quality_hint: "Maior qualidade = arquivo maior. Recomendado: 80–90 para fotos, 90–100 para gráficos",
41
+ preview_type: "Tipo de pré-visualização",
42
+ preview_image: "Imagem",
43
+ preview_video: "Vídeo",
44
+ preview_audio: "Áudio",
45
+ display_url: "Exibir URL",
46
+ default_value_not_set: "Valor padrão não definido",
47
+ default_value_is: "O valor padrão é {{value}}",
48
+ default_value_was_cleared: "O valor padrão foi removido",
49
+ enum_missing_values: "Esta propriedade enum está com valores faltando",
50
+ mode_label: "Modo",
51
+ date_time_mode: "Data/Hora",
52
+ date_mode: "Data",
53
+ automatic_value: "Valor automático",
54
+ auto_on_create: "Na criação",
55
+ auto_on_update: "Em qualquer atualização",
56
+ auto_none: "Nenhum",
57
+ auto_value_description: "Atualizar este campo automaticamente ao criar ou atualizar a entidade",
58
+ timezone_label: "Fuso horário",
59
+ local_timezone: "Fuso horário local",
60
+ timezone_description: "Fuso horário para exibir e inserir datas. Os valores são sempre armazenados em UTC.",
61
+ target_collection: "Coleção alvo",
62
+ views_group: "Visualizações",
63
+ add_property_to: "Adicionar propriedade a {{name}}",
64
+ add_first_property_to_group: "Adicione a primeira propriedade a este grupo",
65
+ spread_children_as_columns: "Expandir filhos como colunas",
66
+ spread_children_description: "Ative esta opção se deseja exibir os filhos deste grupo como colunas individuais. Isso só funciona para grupos de nível superior.",
67
+ paste_behavior: "Comportamento ao colar",
68
+ strip_html_on_paste: "Remover HTML ao colar",
69
+ strip_html_description: "Remover tags HTML e estilos inline ao colar conteúdo de fontes externas",
70
+ convert_pasted_to_markdown: "Converter texto colado em markdown",
71
+ convert_pasted_description: "Converter texto rico (do Google Docs, Word, etc.) em formato markdown limpo",
72
+ markdown_url_note: "Ao usar Markdown, as URLs dos arquivos enviados são sempre salvas no valor de texto (não o caminho).",
73
+ hide_from_collection: "Ocultar da coleção",
74
+ hide_from_collection_tooltip: "Ocultar este campo da visualização da coleção. Ele ainda estará visível na visualização do formulário",
75
+ read_only: "Somente leitura",
76
+ read_only_tooltip: "Este é um campo somente leitura. Exibir apenas como pré-visualização",
77
+ nullable: "Nullable",
78
+ nullable_tooltip: "Permitir que este campo seja explicitamente definido como null. Um botão de limpar será exibido ao usuário",
79
+ tab_general: "Geral",
80
+ tab_display: "Exibição",
81
+ tab_properties: "Propriedades",
82
+ tab_extend: "Estender",
83
+ unsaved_changes_in_collection: "Existem alterações não salvas nesta coleção",
84
+ error_persisting_collection: "Erro ao salvar a coleção: {{error}}",
85
+ details_in_console: "Detalhes no console",
86
+ error_inferring_collection: "Erro ao inferir a coleção: {{error}}",
87
+ collection_deleted: "Coleção excluída",
88
+ data_imported_successfully_msg: "Dados importados com sucesso",
89
+ must_specify_path: "Você deve especificar um caminho no banco de dados para esta coleção",
90
+ collection_path_already_exists: "Já existe uma coleção com o caminho especificado. Se deseja ter múltiplas coleções com o mesmo caminho de banco de dados, certifique-se de que tenham IDs diferentes",
91
+ collection_path_odd_segments: "Os caminhos de coleção devem ter um número ímpar de segmentos: {{path}}",
92
+ collection_uses_path_as_id: "Já existe uma coleção que usa este valor como caminho",
93
+ collection_uses_this_id: "Já existe uma coleção que usa este ID",
94
+ delete_stored_config: "Excluir a configuração salva?",
95
+ delete_stored_config_body: "Isso não excluirá nenhum dado, apenas a configuração salva, e restaurará ao estado do código.",
96
+ order_label: "Ordem",
97
+ // Collection Properties Editor
98
+ select_property_to_edit: "Selecione uma propriedade para editá-la",
99
+ add_first_property: "Agora você pode adicionar sua primeira propriedade",
100
+ add_new_property: "Adicionar nova propriedade",
101
+ no_permission_add_properties: "Você não tem permissão para adicionar novas propriedades",
102
+ get_code_for_collection: "Obter o código desta coleção",
103
+ add_properties_from_data: "Adicionar novas propriedades com base nos dados",
104
+ collection_name_placeholder: "Nome da coleção",
105
+ created_by: "Criado por {{name}}",
106
+ property_defined_as_builder: "Esta propriedade está definida como um property builder no código",
107
+ // Extend Settings
108
+ extend_title: "Estender",
109
+ extend_description: "Adicione subcoleções, visualizações personalizadas e ações de entidade a esta coleção.",
110
+ collection_defined_in_code: "Esta coleção está definida no código. As alterações feitas neste editor substituirão as propriedades definidas no código. Você pode excluir os valores substituídos para voltar ao estado definido no código.",
111
+ reset_to_code: "Restaurar ao código",
112
+ widget_group_text: "Texto",
113
+ widget_group_boolean: "Booleano",
114
+ widget_group_users: "Usuários",
115
+ widget_group_select: "Seleção",
116
+ widget_group_number: "Número",
117
+ widget_group_file: "Arquivo",
118
+ widget_group_reference: "Referência",
119
+ widget_group_date: "Data",
120
+ widget_group_group: "Grupo",
121
+ widget_group_array: "Lista"
122
+ };
123
+ export {
124
+ collectionEditorTranslationsPt
125
+ };
126
+ //# sourceMappingURL=pt-BDUhigIy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pt-BDUhigIy.js","sources":["../src/locales/pt.ts"],"sourcesContent":["export const collectionEditorTranslationsPt = {\n file_upload_config: \"Configuração de upload de arquivo\",\n file_type_images: \"Imagens\",\n file_type_videos: \"Vídeos\",\n file_type_audio: \"Arquivos de áudio\",\n file_type_applications: \"Arquivos (pdf, zip, csv, excel...)\",\n file_type_text: \"Arquivos de texto\",\n only: \"Apenas\",\n all_file_types_allowed: \"Todos os tipos de arquivo permitidos\",\n allowed_file_types: \"Tipos de arquivo permitidos\",\n file_name_label: \"Nome do arquivo\",\n storage_path_label: \"Caminho de armazenamento\",\n storage_placeholders_description: \"Você pode usar os seguintes marcadores nos valores do nome do arquivo e do caminho de armazenamento:\",\n storage_placeholder_file: \"{file} - Nome completo do arquivo enviado\",\n storage_placeholder_file_name: \"{file.name} - Nome do arquivo enviado sem extensão\",\n storage_placeholder_file_ext: \"{file.ext} - Extensão do arquivo enviado\",\n storage_placeholder_entity_id: \"{entityId} - ID da entidade\",\n storage_placeholder_property_key: \"{propertyKey} - ID deste campo\",\n storage_placeholder_path: \"{path} - Caminho desta entidade\",\n storage_placeholder_rand: \"{rand} - Valor aleatório para evitar colisões de nomes\",\n include_bucket_url: \"Incluir URL do bucket (gs://...) no valor salvo\",\n include_bucket_url_description: \"Ative esta configuração se deseja salvar uma URL de armazenamento completa (ex. gs://meu-bucket/caminho/para/arquivo) em vez de apenas o caminho de armazenamento. Alterá-la afeta apenas os novos envios: os valores já salvos mantêm o formato atual.\",\n save_url_instead_of_path: \"Salvar URL em vez do caminho de armazenamento\",\n save_url_description: \"Ative esta configuração se preferir salvar a URL de download do arquivo enviado em vez do caminho de armazenamento. Alterá-la afeta apenas os novos envios: os valores já salvos mantêm o formato atual.\",\n max_size_bytes: \"Tamanho máximo (em bytes)\",\n image_resize_configuration: \"Configuração de redimensionamento de imagem\",\n image_resize_description: \"Redimensionar e otimizar imagens automaticamente antes do upload (apenas JPEG, PNG, WebP)\",\n max_width_px: \"Largura máx (px)\",\n max_height_px: \"Altura máx (px)\",\n resize_mode: \"Modo de redimensionamento\",\n resize_contain: \"Conter\",\n resize_contain_description: \"Conter (ajustar dentro dos limites)\",\n resize_cover: \"Cobrir\",\n resize_cover_description: \"Cobrir (preencher limites, pode cortar)\",\n output_format: \"Formato de saída\",\n format_original: \"Original\",\n format_original_description: \"Original (manter mesmo formato)\",\n format_webp_description: \"WebP (melhor compressão)\",\n quality_label: \"Qualidade (0–100)\",\n quality_hint: \"Maior qualidade = arquivo maior. Recomendado: 80–90 para fotos, 90–100 para gráficos\",\n preview_type: \"Tipo de pré-visualização\",\n preview_image: \"Imagem\",\n preview_video: \"Vídeo\",\n preview_audio: \"Áudio\",\n display_url: \"Exibir URL\",\n default_value_not_set: \"Valor padrão não definido\",\n default_value_is: \"O valor padrão é {{value}}\",\n default_value_was_cleared: \"O valor padrão foi removido\",\n enum_missing_values: \"Esta propriedade enum está com valores faltando\",\n mode_label: \"Modo\",\n date_time_mode: \"Data/Hora\",\n date_mode: \"Data\",\n automatic_value: \"Valor automático\",\n auto_on_create: \"Na criação\",\n auto_on_update: \"Em qualquer atualização\",\n auto_none: \"Nenhum\",\n auto_value_description: \"Atualizar este campo automaticamente ao criar ou atualizar a entidade\",\n timezone_label: \"Fuso horário\",\n local_timezone: \"Fuso horário local\",\n timezone_description: \"Fuso horário para exibir e inserir datas. Os valores são sempre armazenados em UTC.\",\n target_collection: \"Coleção alvo\",\n views_group: \"Visualizações\",\n add_property_to: \"Adicionar propriedade a {{name}}\",\n add_first_property_to_group: \"Adicione a primeira propriedade a este grupo\",\n spread_children_as_columns: \"Expandir filhos como colunas\",\n spread_children_description: \"Ative esta opção se deseja exibir os filhos deste grupo como colunas individuais. Isso só funciona para grupos de nível superior.\",\n paste_behavior: \"Comportamento ao colar\",\n strip_html_on_paste: \"Remover HTML ao colar\",\n strip_html_description: \"Remover tags HTML e estilos inline ao colar conteúdo de fontes externas\",\n convert_pasted_to_markdown: \"Converter texto colado em markdown\",\n convert_pasted_description: \"Converter texto rico (do Google Docs, Word, etc.) em formato markdown limpo\",\n markdown_url_note: \"Ao usar Markdown, as URLs dos arquivos enviados são sempre salvas no valor de texto (não o caminho).\",\n hide_from_collection: \"Ocultar da coleção\",\n hide_from_collection_tooltip: \"Ocultar este campo da visualização da coleção. Ele ainda estará visível na visualização do formulário\",\n read_only: \"Somente leitura\",\n read_only_tooltip: \"Este é um campo somente leitura. Exibir apenas como pré-visualização\",\n nullable: \"Nullable\",\n nullable_tooltip: \"Permitir que este campo seja explicitamente definido como null. Um botão de limpar será exibido ao usuário\",\n tab_general: \"Geral\",\n tab_display: \"Exibição\",\n tab_properties: \"Propriedades\",\n tab_extend: \"Estender\",\n unsaved_changes_in_collection: \"Existem alterações não salvas nesta coleção\",\n error_persisting_collection: \"Erro ao salvar a coleção: {{error}}\",\n details_in_console: \"Detalhes no console\",\n error_inferring_collection: \"Erro ao inferir a coleção: {{error}}\",\n collection_deleted: \"Coleção excluída\",\n data_imported_successfully_msg: \"Dados importados com sucesso\",\n must_specify_path: \"Você deve especificar um caminho no banco de dados para esta coleção\",\n collection_path_already_exists: \"Já existe uma coleção com o caminho especificado. Se deseja ter múltiplas coleções com o mesmo caminho de banco de dados, certifique-se de que tenham IDs diferentes\",\n collection_path_odd_segments: \"Os caminhos de coleção devem ter um número ímpar de segmentos: {{path}}\",\n collection_uses_path_as_id: \"Já existe uma coleção que usa este valor como caminho\",\n collection_uses_this_id: \"Já existe uma coleção que usa este ID\",\n delete_stored_config: \"Excluir a configuração salva?\",\n delete_stored_config_body: \"Isso não excluirá nenhum dado, apenas a configuração salva, e restaurará ao estado do código.\",\n order_label: \"Ordem\",\n\n // Collection Properties Editor\n select_property_to_edit: \"Selecione uma propriedade para editá-la\",\n add_first_property: \"Agora você pode adicionar sua primeira propriedade\",\n add_new_property: \"Adicionar nova propriedade\",\n no_permission_add_properties: \"Você não tem permissão para adicionar novas propriedades\",\n get_code_for_collection: \"Obter o código desta coleção\",\n add_properties_from_data: \"Adicionar novas propriedades com base nos dados\",\n collection_name_placeholder: \"Nome da coleção\",\n created_by: \"Criado por {{name}}\",\n property_defined_as_builder: \"Esta propriedade está definida como um property builder no código\",\n\n // Extend Settings\n extend_title: \"Estender\",\n extend_description: \"Adicione subcoleções, visualizações personalizadas e ações de entidade a esta coleção.\",\n collection_defined_in_code: \"Esta coleção está definida no código. As alterações feitas neste editor substituirão as propriedades definidas no código. Você pode excluir os valores substituídos para voltar ao estado definido no código.\",\n reset_to_code: \"Restaurar ao código\",\n\n widget_group_text: \"Texto\",\n widget_group_boolean: \"Booleano\",\n widget_group_users: \"Usuários\",\n widget_group_select: \"Seleção\",\n widget_group_number: \"Número\",\n widget_group_file: \"Arquivo\",\n widget_group_reference: \"Referência\",\n widget_group_date: \"Data\",\n widget_group_group: \"Grupo\",\n widget_group_array: \"Lista\"\n};\n"],"names":["collectionEditorTranslationsPt","file_upload_config","file_type_images","file_type_videos","file_type_audio","file_type_applications","file_type_text","only","all_file_types_allowed","allowed_file_types","file_name_label","storage_path_label","storage_placeholders_description","storage_placeholder_file","storage_placeholder_file_name","storage_placeholder_file_ext","storage_placeholder_entity_id","storage_placeholder_property_key","storage_placeholder_path","storage_placeholder_rand","include_bucket_url","include_bucket_url_description","save_url_instead_of_path","save_url_description","max_size_bytes","image_resize_configuration","image_resize_description","max_width_px","max_height_px","resize_mode","resize_contain","resize_contain_description","resize_cover","resize_cover_description","output_format","format_original","format_original_description","format_webp_description","quality_label","quality_hint","preview_type","preview_image","preview_video","preview_audio","display_url","default_value_not_set","default_value_is","default_value_was_cleared","enum_missing_values","mode_label","date_time_mode","date_mode","automatic_value","auto_on_create","auto_on_update","auto_none","auto_value_description","timezone_label","local_timezone","timezone_description","target_collection","views_group","add_property_to","add_first_property_to_group","spread_children_as_columns","spread_children_description","paste_behavior","strip_html_on_paste","strip_html_description","convert_pasted_to_markdown","convert_pasted_description","markdown_url_note","hide_from_collection","hide_from_collection_tooltip","read_only","read_only_tooltip","nullable","nullable_tooltip","tab_general","tab_display","tab_properties","tab_extend","unsaved_changes_in_collection","error_persisting_collection","details_in_console","error_inferring_collection","collection_deleted","data_imported_successfully_msg","must_specify_path","collection_path_already_exists","collection_path_odd_segments","collection_uses_path_as_id","collection_uses_this_id","delete_stored_config","delete_stored_config_body","order_label","select_property_to_edit","add_first_property","add_new_property","no_permission_add_properties","get_code_for_collection","add_properties_from_data","collection_name_placeholder","created_by","property_defined_as_builder","extend_title","extend_description","collection_defined_in_code","reset_to_code","widget_group_text","widget_group_boolean","widget_group_users","widget_group_select","widget_group_number","widget_group_file","widget_group_reference","widget_group_date","widget_group_group","widget_group_array"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
- export declare function StoragePropertyField({ multiple, existing, disabled }: {
2
+ export declare function StoragePropertyField({ multiple, disabled }: {
3
3
  multiple: boolean;
4
- existing: boolean;
5
4
  disabled: boolean;
6
5
  }): React.JSX.Element;
package/package.json CHANGED
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "name": "@firecms/collection_editor",
3
3
  "type": "module",
4
- "version": "3.3.0",
4
+ "version": "3.4.0-canary.1faa2a9",
5
5
  "main": "./dist/index.umd.js",
6
6
  "module": "./dist/index.es.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "source": "src/index.ts",
9
9
  "dependencies": {
10
- "@firecms/data_export": "^3.3.0",
11
- "@firecms/data_import": "^3.3.0",
12
- "@firecms/data_import_export": "^3.3.0",
13
- "@firecms/formex": "^3.3.0",
14
- "@firecms/schema_inference": "^3.3.0",
15
- "@firecms/ui": "^3.3.0",
10
+ "@firecms/core": "3.4.0-canary.1faa2a9",
11
+ "@firecms/data_export": "3.4.0-canary.1faa2a9",
12
+ "@firecms/data_import": "3.4.0-canary.1faa2a9",
13
+ "@firecms/data_import_export": "3.4.0-canary.1faa2a9",
14
+ "@firecms/formex": "3.4.0-canary.1faa2a9",
15
+ "@firecms/schema_inference": "3.4.0-canary.1faa2a9",
16
+ "@firecms/ui": "3.4.0-canary.1faa2a9",
16
17
  "json5": "^2.2.3",
17
18
  "prism-react-renderer": "^2.4.1"
18
19
  },
package/src/locales/de.ts CHANGED
@@ -19,9 +19,9 @@ export const collectionEditorTranslationsDe = {
19
19
  storage_placeholder_path: "{path} - Pfad dieser Entität",
20
20
  storage_placeholder_rand: "{rand} - Zufallswert zur Vermeidung von Namenskollisionen",
21
21
  include_bucket_url: "Bucket-URL (gs://...) im gespeicherten Wert einschließen",
22
- include_bucket_url_description: "Aktivieren Sie diese Einstellung, wenn Sie eine vollqualifizierte Speicher-URL (z. B. gs://mein-bucket/pfad/zur/datei) statt nur des Speicherpfads speichern möchten. Diese Einstellung kann nur bei der Erstellung geändert werden.",
22
+ include_bucket_url_description: "Aktivieren Sie diese Einstellung, wenn Sie eine vollqualifizierte Speicher-URL (z. B. gs://mein-bucket/pfad/zur/datei) statt nur des Speicherpfads speichern möchten. Eine Änderung wirkt sich nur auf neue Uploads aus: Bereits gespeicherte Werte behalten ihr aktuelles Format.",
23
23
  save_url_instead_of_path: "URL statt Speicherpfad speichern",
24
- save_url_description: "Aktivieren Sie diese Einstellung, wenn Sie bevorzugen, die Download-URL der hochgeladenen Datei statt des Speicherpfads zu speichern. Diese Einstellung kann nur bei der Erstellung geändert werden.",
24
+ save_url_description: "Aktivieren Sie diese Einstellung, wenn Sie bevorzugen, die Download-URL der hochgeladenen Datei statt des Speicherpfads zu speichern. Eine Änderung wirkt sich nur auf neue Uploads aus: Bereits gespeicherte Werte behalten ihr aktuelles Format.",
25
25
  max_size_bytes: "Maximale Größe (in Bytes)",
26
26
  image_resize_configuration: "Bildgrößenanpassungs-Konfiguration",
27
27
  image_resize_description: "Bilder vor dem Hochladen automatisch anpassen und optimieren (nur JPEG, PNG, WebP)",
package/src/locales/en.ts CHANGED
@@ -20,9 +20,9 @@ export const collectionEditorTranslationsEn = {
20
20
  storage_placeholder_path: "{path} - Path of this entity",
21
21
  storage_placeholder_rand: "{rand} - Random value used to avoid name collisions",
22
22
  include_bucket_url: "Include bucket URL (gs://...) in saved value",
23
- include_bucket_url_description: "Turn this setting on if you want to save a fully-qualified storage URL (e.g. gs://my-bucket/path/to/file) instead of just the storage path. You can only change this prop upon creation.",
23
+ include_bucket_url_description: "Turn this setting on if you want to save a fully-qualified storage URL (e.g. gs://my-bucket/path/to/file) instead of just the storage path. Changing it only affects new uploads: values already saved keep their current format.",
24
24
  save_url_instead_of_path: "Save URL instead of storage path",
25
- save_url_description: "Turn this setting on, if you prefer to save the download URL of the uploaded file instead of the storage path. You can only change this prop upon creation.",
25
+ save_url_description: "Turn this setting on, if you prefer to save the download URL of the uploaded file instead of the storage path. Changing it only affects new uploads: values already saved keep their current format.",
26
26
  max_size_bytes: "Max size (in bytes)",
27
27
  image_resize_configuration: "Image Resize Configuration",
28
28
  image_resize_description: "Automatically resize and optimize images before upload (JPEG, PNG, WebP only)",
package/src/locales/es.ts CHANGED
@@ -19,9 +19,9 @@ export const collectionEditorTranslationsEs = {
19
19
  storage_placeholder_path: "{path} - Ruta de esta entidad",
20
20
  storage_placeholder_rand: "{rand} - Valor aleatorio para evitar colisiones de nombres",
21
21
  include_bucket_url: "Incluir URL del bucket (gs://...) en el valor guardado",
22
- include_bucket_url_description: "Activa esta opción si deseas guardar una URL de almacenamiento completa (ej. gs://mi-bucket/ruta/al/archivo) en lugar de solo la ruta de almacenamiento. Solo puedes cambiar esta opción al crear.",
22
+ include_bucket_url_description: "Activa esta opción si deseas guardar una URL de almacenamiento completa (ej. gs://mi-bucket/ruta/al/archivo) en lugar de solo la ruta de almacenamiento. Cambiarla solo afecta a las nuevas subidas: los valores ya guardados mantienen su formato actual.",
23
23
  save_url_instead_of_path: "Guardar URL en lugar de ruta de almacenamiento",
24
- save_url_description: "Activa esta opción si prefieres guardar la URL de descarga del archivo subido en lugar de la ruta de almacenamiento. Solo puedes cambiar esta opción al crear.",
24
+ save_url_description: "Activa esta opción si prefieres guardar la URL de descarga del archivo subido en lugar de la ruta de almacenamiento. Cambiarla solo afecta a las nuevas subidas: los valores ya guardados mantienen su formato actual.",
25
25
  max_size_bytes: "Tamaño máximo (en bytes)",
26
26
  image_resize_configuration: "Configuración de redimensionamiento de imagen",
27
27
  image_resize_description: "Redimensionar y optimizar imágenes automáticamente antes de subirlas (solo JPEG, PNG, WebP)",
package/src/locales/fr.ts CHANGED
@@ -19,9 +19,9 @@ export const collectionEditorTranslationsFr = {
19
19
  storage_placeholder_path: "{path} - Chemin de cette entité",
20
20
  storage_placeholder_rand: "{rand} - Valeur aléatoire pour éviter les conflits de noms",
21
21
  include_bucket_url: "Inclure l'URL du bucket (gs://...) dans la valeur enregistrée",
22
- include_bucket_url_description: "Activez ce paramètre si vous souhaitez enregistrer une URL de stockage complète (ex. gs://mon-bucket/chemin/vers/fichier) au lieu du simple chemin de stockage. Vous ne pouvez modifier ce paramètre qu'à la création.",
22
+ include_bucket_url_description: "Activez ce paramètre si vous souhaitez enregistrer une URL de stockage complète (ex. gs://mon-bucket/chemin/vers/fichier) au lieu du simple chemin de stockage. Sa modification n'affecte que les nouveaux envois : les valeurs déjà enregistrées conservent leur format actuel.",
23
23
  save_url_instead_of_path: "Enregistrer l'URL au lieu du chemin de stockage",
24
- save_url_description: "Activez ce paramètre si vous préférez enregistrer l'URL de téléchargement du fichier plutôt que le chemin de stockage. Vous ne pouvez modifier ce paramètre qu'à la création.",
24
+ save_url_description: "Activez ce paramètre si vous préférez enregistrer l'URL de téléchargement du fichier plutôt que le chemin de stockage. Sa modification n'affecte que les nouveaux envois : les valeurs déjà enregistrées conservent leur format actuel.",
25
25
  max_size_bytes: "Taille maximale (en octets)",
26
26
  image_resize_configuration: "Configuration du redimensionnement d'image",
27
27
  image_resize_description: "Redimensionner et optimiser automatiquement les images avant le téléchargement (JPEG, PNG, WebP uniquement)",
package/src/locales/hi.ts CHANGED
@@ -19,9 +19,9 @@ export const collectionEditorTranslationsHi = {
19
19
  storage_placeholder_path: "{path} - इस इकाई का पथ",
20
20
  storage_placeholder_rand: "{rand} - नाम टकराव से बचने के लिए यादृच्छिक मूल्य",
21
21
  include_bucket_url: "सहेजे गए मान में बकेट URL (gs://...) शामिल करें",
22
- include_bucket_url_description: "यदि आप केवल स्टोरेज पथ के बजाय पूरी तरह से योग्य स्टोरेज URL (जैसे gs://my-bucket/path/to/file) सहेजना चाहते हैं तो इस सेटिंग को चालू करें। आप इसे केवल निर्माण के समय बदल सकते हैं।",
22
+ include_bucket_url_description: "यदि आप केवल स्टोरेज पथ के बजाय पूरी तरह से योग्य स्टोरेज URL (जैसे gs://my-bucket/path/to/file) सहेजना चाहते हैं तो इस सेटिंग को चालू करें। इसे बदलने का असर केवल नए अपलोड पर होता है: पहले से सहेजे गए मान अपने मौजूदा प्रारूप में बने रहते हैं।",
23
23
  save_url_instead_of_path: "स्टोरेज पथ के बजाय URL सहेजें",
24
- save_url_description: "यदि आप स्टोरेज पथ के बजाय अपलोड की गई फ़ाइल का डाउनलोड URL सहेजना पसंद करते हैं तो इस सेटिंग को चालू करें। आप इसे केवल निर्माण के समय बदल सकते हैं।",
24
+ save_url_description: "यदि आप स्टोरेज पथ के बजाय अपलोड की गई फ़ाइल का डाउनलोड URL सहेजना पसंद करते हैं तो इस सेटिंग को चालू करें। इसे बदलने का असर केवल नए अपलोड पर होता है: पहले से सहेजे गए मान अपने मौजूदा प्रारूप में बने रहते हैं।",
25
25
  max_size_bytes: "अधिकतम आकार (बाइट में)",
26
26
  image_resize_configuration: "छवि आकार बदलने का कॉन्फ़िगरेशन",
27
27
  image_resize_description: "अपलोड से पहले स्वचालित रूप से छवियों का आकार बदलें और अनुकूलित करें (केवल JPEG, PNG, WebP)",
package/src/locales/it.ts CHANGED
@@ -19,9 +19,9 @@ export const collectionEditorTranslationsIt = {
19
19
  storage_placeholder_path: "{path} - Percorso di questa entità",
20
20
  storage_placeholder_rand: "{rand} - Valore casuale per evitare conflitti di nomi",
21
21
  include_bucket_url: "Includi URL del bucket (gs://...) nel valore salvato",
22
- include_bucket_url_description: "Attiva questa impostazione se desideri salvare un URL di archiviazione completo (es. gs://mio-bucket/percorso/al/file) invece del solo percorso di archiviazione. Puoi modificare questa impostazione solo alla creazione.",
22
+ include_bucket_url_description: "Attiva questa impostazione se desideri salvare un URL di archiviazione completo (es. gs://mio-bucket/percorso/al/file) invece del solo percorso di archiviazione. La modifica influisce solo sui nuovi caricamenti: i valori già salvati mantengono il loro formato attuale.",
23
23
  save_url_instead_of_path: "Salva URL invece del percorso di archiviazione",
24
- save_url_description: "Attiva questa impostazione se preferisci salvare l'URL di download del file caricato invece del percorso di archiviazione. Puoi modificare questa impostazione solo alla creazione.",
24
+ save_url_description: "Attiva questa impostazione se preferisci salvare l'URL di download del file caricato invece del percorso di archiviazione. La modifica influisce solo sui nuovi caricamenti: i valori già salvati mantengono il loro formato attuale.",
25
25
  max_size_bytes: "Dimensione massima (in byte)",
26
26
  image_resize_configuration: "Configurazione ridimensionamento immagine",
27
27
  image_resize_description: "Ridimensiona e ottimizza automaticamente le immagini prima del caricamento (solo JPEG, PNG, WebP)",
package/src/locales/pt.ts CHANGED
@@ -19,9 +19,9 @@ export const collectionEditorTranslationsPt = {
19
19
  storage_placeholder_path: "{path} - Caminho desta entidade",
20
20
  storage_placeholder_rand: "{rand} - Valor aleatório para evitar colisões de nomes",
21
21
  include_bucket_url: "Incluir URL do bucket (gs://...) no valor salvo",
22
- include_bucket_url_description: "Ative esta configuração se deseja salvar uma URL de armazenamento completa (ex. gs://meu-bucket/caminho/para/arquivo) em vez de apenas o caminho de armazenamento. Você pode alterar esta configuração na criação.",
22
+ include_bucket_url_description: "Ative esta configuração se deseja salvar uma URL de armazenamento completa (ex. gs://meu-bucket/caminho/para/arquivo) em vez de apenas o caminho de armazenamento. Alterá-la afeta apenas os novos envios: os valores já salvos mantêm o formato atual.",
23
23
  save_url_instead_of_path: "Salvar URL em vez do caminho de armazenamento",
24
- save_url_description: "Ative esta configuração se preferir salvar a URL de download do arquivo enviado em vez do caminho de armazenamento. Você pode alterar esta configuração na criação.",
24
+ save_url_description: "Ative esta configuração se preferir salvar a URL de download do arquivo enviado em vez do caminho de armazenamento. Alterá-la afeta apenas os novos envios: os valores já salvos mantêm o formato atual.",
25
25
  max_size_bytes: "Tamanho máximo (em bytes)",
26
26
  image_resize_configuration: "Configuração de redimensionamento de imagem",
27
27
  image_resize_description: "Redimensionar e otimizar imagens automaticamente antes do upload (apenas JPEG, PNG, WebP)",
@@ -503,7 +503,7 @@ export function CollectionPropertiesEditorForm({
503
503
  !isPropertyBuilder(selectedProperty) &&
504
504
  <PropertyForm
505
505
  inArray={false}
506
- key={`edit_view_${selectedPropertyIndex}_${generationCounter}`}
506
+ key={`edit_view_${selectedPropertyFullId}_${generationCounter}`}
507
507
  existingProperty={!isNewCollection}
508
508
  autoUpdateId={false}
509
509
  allowDataInference={!isNewCollection}
@@ -547,7 +547,7 @@ export function CollectionPropertiesEditorForm({
547
547
  {asDialog && <PropertyFormDialog
548
548
  inArray={false}
549
549
  open={selectedPropertyIndex !== undefined}
550
- key={`edit_view_${selectedPropertyIndex}_${generationCounter}`}
550
+ key={`edit_view_${selectedPropertyFullId}_${generationCounter}`}
551
551
  autoUpdateId={!selectedProperty}
552
552
  allowDataInference={!isNewCollection}
553
553
  existingProperty={true}
@@ -72,6 +72,34 @@ export function DisplaySettingsForm({
72
72
  return result;
73
73
  }, [resolvedCollection.properties]);
74
74
 
75
+ // Get image properties (for imageProperty), used as the thumbnail in Cards/Kanban views
76
+ const imageProperties = useMemo(() => {
77
+ const result: { key: string; label: string; property: Property; }[] = [];
78
+ if (!resolvedCollection.properties) return result;
79
+
80
+ const isImageProperty = (prop: any): boolean => {
81
+ if (!prop || !("dataType" in prop)) return false;
82
+ if (prop.dataType === "string") {
83
+ return Boolean(prop.storage?.acceptedFiles?.includes("image/*")) || prop.url === "image";
84
+ }
85
+ if (prop.dataType === "array" && prop.of) {
86
+ return isImageProperty(prop.of);
87
+ }
88
+ return false;
89
+ };
90
+
91
+ Object.entries(resolvedCollection.properties).forEach(([key, prop]) => {
92
+ if (isImageProperty(prop)) {
93
+ result.push({
94
+ key,
95
+ label: (prop as Property).name || key,
96
+ property: prop as Property
97
+ });
98
+ }
99
+ });
100
+ return result;
101
+ }, [resolvedCollection.properties]);
102
+
75
103
  const showErrors = submitCount > 0;
76
104
 
77
105
  // Document ID generation value
@@ -246,6 +274,83 @@ export function DisplaySettingsForm({
246
274
  })()}
247
275
  </div>
248
276
 
277
+ {/* Image Property (used as thumbnail in Cards/Kanban views) */}
278
+ <div className={"col-span-12 mt-4"}>
279
+ {(() => {
280
+ const imagePropertyMissing = Boolean(values.imageProperty) &&
281
+ !imageProperties.some(p => p.key === values.imageProperty);
282
+
283
+ return (
284
+ <>
285
+ <Typography variant={"label"} color={"secondary"} className={"ml-3.5"}>{t("image_property")}</Typography>
286
+ <Select
287
+ key={`image-select-${imageProperties.length}`}
288
+ name="imageProperty"
289
+ size={"large"}
290
+ fullWidth={true}
291
+ position={"item-aligned"}
292
+ disabled={imageProperties.length === 0}
293
+ error={imagePropertyMissing}
294
+ value={(values.imageProperty as string) ?? ""}
295
+ onValueChange={(v) => {
296
+ setFieldValue("imageProperty", v || undefined);
297
+ }}
298
+ renderValue={(value) => {
299
+ if (imagePropertyMissing) {
300
+ return <span className="text-red-500">{value} ({t("not_found_suffix")})</span>;
301
+ }
302
+ const prop = imageProperties.find(p => p.key === value);
303
+ if (!prop) return t("select_a_property");
304
+ const fieldConfig = getFieldConfig(prop.property, customizationController.propertyConfigs);
305
+ return (
306
+ <div className="flex items-center gap-2">
307
+ <PropertyConfigBadge propertyConfig={fieldConfig} />
308
+ <span>{prop.label}</span>
309
+ </div>
310
+ );
311
+ }}
312
+ endAdornment={values.imageProperty ? (
313
+ <IconButton
314
+ size="small"
315
+ onClick={(e) => {
316
+ e.stopPropagation();
317
+ setFieldValue("imageProperty", undefined);
318
+ }}
319
+ >
320
+ <CloseIcon size="small" />
321
+ </IconButton>
322
+ ) : undefined}
323
+ >
324
+ {imageProperties.map((prop) => {
325
+ const fieldConfig = getFieldConfig(prop.property, customizationController.propertyConfigs);
326
+ return (
327
+ <SelectItem key={prop.key} value={prop.key}>
328
+ <div className="flex items-center gap-3">
329
+ <PropertyConfigBadge propertyConfig={fieldConfig} />
330
+ <div>
331
+ <div>{prop.label}</div>
332
+ <Typography variant="caption" color="secondary">
333
+ {fieldConfig?.name || prop.label}
334
+ </Typography>
335
+ </div>
336
+ </div>
337
+ </SelectItem>
338
+ );
339
+ })}
340
+ </Select>
341
+ <FieldCaption error={imagePropertyMissing}>
342
+ {imagePropertyMissing
343
+ ? t("image_property_not_found", { property: values.imageProperty as string ?? "" })
344
+ : imageProperties.length === 0
345
+ ? t("no_image_properties")
346
+ : t("image_property_description")
347
+ }
348
+ </FieldCaption>
349
+ </>
350
+ );
351
+ })()}
352
+ </div>
353
+
249
354
  {/* Default row size */}
250
355
  <div className={"col-span-12"}>
251
356
  <Select