@firecms/core 3.3.0-canary.040c21c → 3.3.0-canary.1e1cce9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/components/EntityCollectionTable/column_utils.d.ts +4 -3
  2. package/dist/components/EntityCollectionView/FiltersDialog.d.ts +2 -1
  3. package/dist/components/EntityPreview.d.ts +3 -1
  4. package/dist/index.es.js +408 -297
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/index.umd.js +408 -297
  7. package/dist/index.umd.js.map +1 -1
  8. package/dist/types/collections.d.ts +17 -0
  9. package/dist/types/translations.d.ts +11 -3
  10. package/dist/util/entities.d.ts +1 -0
  11. package/package.json +5 -5
  12. package/src/app/Scaffold.tsx +13 -1
  13. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +2 -1
  14. package/src/components/EntityCollectionTable/column_utils.tsx +11 -19
  15. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +1 -1
  16. package/src/components/EntityCollectionView/EntityCollectionView.tsx +5 -2
  17. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +4 -1
  18. package/src/components/EntityCollectionView/FiltersDialog.tsx +39 -28
  19. package/src/components/EntityPreview.tsx +41 -40
  20. package/src/components/HomePage/NavigationCardBinding.tsx +6 -3
  21. package/src/components/ReferenceWidget.tsx +1 -1
  22. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +2 -2
  23. package/src/components/common/useDataSourceTableController.tsx +41 -4
  24. package/src/core/DefaultDrawer.tsx +1 -1
  25. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +1 -1
  26. package/src/hooks/useBuildNavigationController.tsx +5 -1
  27. package/src/locales/de.ts +13 -5
  28. package/src/locales/en.ts +13 -5
  29. package/src/locales/es.ts +13 -5
  30. package/src/locales/fr.ts +13 -5
  31. package/src/locales/hi.ts +13 -5
  32. package/src/locales/it.ts +13 -5
  33. package/src/locales/pt.ts +13 -5
  34. package/src/types/collections.ts +18 -0
  35. package/src/types/translations.ts +11 -3
  36. package/src/util/entities.ts +11 -0
  37. package/src/util/resolutions.ts +3 -0
@@ -414,7 +414,11 @@ export function useBuildNavigationController<EC extends EntityCollection, USER e
414
414
  const baseCollection = getCollectionByPathOrId(removeInitialAndTrailingSlashes(idOrPath), collections);
415
415
 
416
416
  const userOverride = includeUserOverride ? userConfigPersistence?.getCollectionConfig(idOrPath) : undefined;
417
- const overriddenCollection = baseCollection ? mergeDeep(baseCollection, userOverride ?? {}) : undefined;
417
+ let overriddenCollection = baseCollection;
418
+ if (baseCollection && userOverride) {
419
+ const { properties, ...rest } = userOverride;
420
+ overriddenCollection = mergeDeep(baseCollection, rest);
421
+ }
418
422
 
419
423
  let result: Partial<EntityCollection> | undefined = overriddenCollection;
420
424
 
package/src/locales/de.ts CHANGED
@@ -146,8 +146,8 @@ export const de: FireCMSTranslations = {
146
146
  // ─── Error states ─────────────────────────────────────────────
147
147
  error: "Fehler",
148
148
  error_uploading_file: "Fehler beim Hochladen der Datei",
149
- error_deleting: "Fehler beim Löschen",
150
- error_before_delete: "Fehler vor dem Löschen",
149
+ error_deleting: "Fehler beim Löschen: {{message}}",
150
+ error_before_delete: "Fehler vor dem Löschen: {{message}}",
151
151
  error_updating_asset: "Fehler beim Aktualisieren des Assets",
152
152
  error_deleting_asset: "Fehler beim Löschen des Assets",
153
153
  error_firestore_index: "Für diese Abfrage ist ein Firestore-Index erforderlich.",
@@ -437,8 +437,8 @@ export const de: FireCMSTranslations = {
437
437
  cms_users: "CMS-Benutzer",
438
438
  roles_menu: "Rollen",
439
439
  project_settings: "Projekteinstellungen",
440
- firestore_explorer: "Firestore-Explorer",
441
- explore_your_firestore_data: "Deine Firestore-Daten durchsuchen",
440
+ firestore_manager: "Firestore-Manager",
441
+ manage_your_firestore_data: "Deine Firestore-Daten verwalten",
442
442
 
443
443
  // ─── FireCMS Cloud Login ──────────────────────────────────────
444
444
  build_admin_panel_in_minutes: "Erstellen Sie Ihr Firebase Admin Panel in wenigen Minuten",
@@ -514,10 +514,18 @@ export const de: FireCMSTranslations = {
514
514
  auto_setup_collections_button: "Sammlungen automatisch einrichten",
515
515
  auto_setup_collections_title: "Sammlungen automatisch einrichten?",
516
516
  auto_setup_collections_desc: "Dadurch werden automatisch Sammlungskonfigurationen für Sammlungen erstellt, die noch <b>NICHT</b> zugeordnet sind.",
517
- this_can_take_a_minute: "Dies kann ein bis zwei Minuten dauern",
517
+ setting_up_collections: "Sammlungen werden eingerichtet",
518
+ setting_up_collection: "{{name}} wird eingerichtet",
518
519
  no_collections_found_to_setup: "Keine einzurichtenden Sammlungen gefunden",
519
520
  collections_have_been_setup: "Sammlungen wurden automatisch eingerichtet",
520
521
  error_setting_up_collections: "Fehler beim automatischen Einrichten der Sammlungen",
522
+ setup_collections_title: "Set up collections",
523
+ setup_collections_select_desc: "Select which collections to automatically set up:",
524
+ select_all: "Select all",
525
+ deselect_all: "Deselect all",
526
+ setup_collections_confirm: "Set up ({{count}})",
527
+ collection_setup_success: "{{name}} has been set up",
528
+ go_to_collection: "Go to collection",
521
529
  add_your: "Fügen Sie Ihre",
522
530
  database_collections: "Datenbanksammlungen",
523
531
  to_firecms: "zu FireCMS hinzu",
package/src/locales/en.ts CHANGED
@@ -154,8 +154,8 @@ export const en: FireCMSTranslations = {
154
154
  // ─── Error states ─────────────────────────────────────────────
155
155
  error: "Error",
156
156
  error_uploading_file: "Error uploading file",
157
- error_deleting: "Error deleting",
158
- error_before_delete: "Error before delete",
157
+ error_deleting: "Error deleting: {{message}}",
158
+ error_before_delete: "Error before delete: {{message}}",
159
159
  error_updating_asset: "Error updating asset",
160
160
  error_deleting_asset: "Error deleting asset",
161
161
  error_firestore_index: "A Firestore index is required for this query.",
@@ -445,8 +445,8 @@ export const en: FireCMSTranslations = {
445
445
  cms_users: "CMS Users",
446
446
  roles_menu: "Roles",
447
447
  project_settings: "Project settings",
448
- firestore_explorer: "Firestore Explorer",
449
- explore_your_firestore_data: "Explore your Firestore data",
448
+ firestore_manager: "Firestore Manager",
449
+ manage_your_firestore_data: "Manage your Firestore data",
450
450
 
451
451
  // ─── FireCMS Cloud Login ──────────────────────────────────────
452
452
  build_admin_panel_in_minutes: "Build Your Firebase Admin Panel in Minutes",
@@ -522,10 +522,18 @@ export const en: FireCMSTranslations = {
522
522
  auto_setup_collections_button: "Automatically set up collections",
523
523
  auto_setup_collections_title: "Automatically set up collections?",
524
524
  auto_setup_collections_desc: "This will automatically create collection configs for collections that are <b>NOT</b> already mapped",
525
- this_can_take_a_minute: "This can take a minute or two",
525
+ setting_up_collections: "Setting up collections",
526
+ setting_up_collection: "Setting up {{name}}",
526
527
  no_collections_found_to_setup: "No collections found to setup.",
527
528
  collections_have_been_setup: "Collections have been automatically setup.",
528
529
  error_setting_up_collections: "Error automatically setting up collections",
530
+ setup_collections_title: "Set up collections",
531
+ setup_collections_select_desc: "Select which collections to automatically set up:",
532
+ select_all: "Select all",
533
+ deselect_all: "Deselect all",
534
+ setup_collections_confirm: "Set up ({{count}})",
535
+ collection_setup_success: "{{name}} has been set up",
536
+ go_to_collection: "Go to collection",
529
537
 
530
538
  // --- Home Suggestions ---
531
539
  add_your: "Add your",
package/src/locales/es.ts CHANGED
@@ -152,8 +152,8 @@ export const es: FireCMSTranslations = {
152
152
  // ─── Error states ─────────────────────────────────────────────
153
153
  error: "Error",
154
154
  error_uploading_file: "Error al subir archivo",
155
- error_deleting: "Error al eliminar",
156
- error_before_delete: "Error antes de eliminar",
155
+ error_deleting: "Error al eliminar: {{message}}",
156
+ error_before_delete: "Error antes de eliminar: {{message}}",
157
157
  error_updating_asset: "Error al actualizar recurso",
158
158
  error_deleting_asset: "Error al eliminar recurso",
159
159
  error_firestore_index: "Se requiere un índice de Firestore para esta consulta.",
@@ -445,8 +445,8 @@ export const es: FireCMSTranslations = {
445
445
  cms_users: "Usuarios del CMS",
446
446
  roles_menu: "Roles",
447
447
  project_settings: "Ajustes del proyecto",
448
- firestore_explorer: "Explorador de Firestore",
449
- explore_your_firestore_data: "Explora tus datos de Firestore",
448
+ firestore_manager: "Gestor de Firestore",
449
+ manage_your_firestore_data: "Gestiona tus datos de Firestore",
450
450
 
451
451
  // ─── FireCMS Cloud Login ──────────────────────────────────────
452
452
  build_admin_panel_in_minutes: "Crea tu panel de administración de Firebase en minutos",
@@ -522,10 +522,18 @@ export const es: FireCMSTranslations = {
522
522
  auto_setup_collections_button: "Configurar colecciones automáticamente",
523
523
  auto_setup_collections_title: "¿Configurar colecciones automáticamente?",
524
524
  auto_setup_collections_desc: "Esto creará automáticamente la configuración de las colecciones que <b>NO</b> estén mapeadas",
525
- this_can_take_a_minute: "Esto puede tardar un minuto o dos",
525
+ setting_up_collections: "Configurando colecciones",
526
+ setting_up_collection: "Configurando {{name}}",
526
527
  no_collections_found_to_setup: "No se encontraron colecciones para configurar",
527
528
  collections_have_been_setup: "¡Tus colecciones han sido configuradas!",
528
529
  error_setting_up_collections: "Error al configurar colecciones",
530
+ setup_collections_title: "Set up collections",
531
+ setup_collections_select_desc: "Select which collections to automatically set up:",
532
+ select_all: "Select all",
533
+ deselect_all: "Deselect all",
534
+ setup_collections_confirm: "Set up ({{count}})",
535
+ collection_setup_success: "{{name}} has been set up",
536
+ go_to_collection: "Go to collection",
529
537
 
530
538
  // --- Home Suggestions ---
531
539
  add_your: "Añade tus",
package/src/locales/fr.ts CHANGED
@@ -146,8 +146,8 @@ export const fr: FireCMSTranslations = {
146
146
  // ─── Error states ─────────────────────────────────────────────
147
147
  error: "Erreur",
148
148
  error_uploading_file: "Erreur lors du téléchargement du fichier",
149
- error_deleting: "Erreur lors de la suppression",
150
- error_before_delete: "Erreur avant la suppression",
149
+ error_deleting: "Erreur lors de la suppression: {{message}}",
150
+ error_before_delete: "Erreur avant la suppression: {{message}}",
151
151
  error_updating_asset: "Erreur lors de la mise à jour de l'actif",
152
152
  error_deleting_asset: "Erreur lors de la suppression de l'actif",
153
153
  error_firestore_index: "Un index Firestore est requis pour cette requête.",
@@ -437,8 +437,8 @@ export const fr: FireCMSTranslations = {
437
437
  cms_users: "Utilisateurs du CMS",
438
438
  roles_menu: "Rôles",
439
439
  project_settings: "Paramètres du projet",
440
- firestore_explorer: "Explorateur Firestore",
441
- explore_your_firestore_data: "Explorez vos données Firestore",
440
+ firestore_manager: "Gestionnaire Firestore",
441
+ manage_your_firestore_data: "Gérez vos données Firestore",
442
442
 
443
443
  // ─── FireCMS Cloud Login ──────────────────────────────────────
444
444
  build_admin_panel_in_minutes: "Créez votre panneau d'administration Firebase en quelques minutes",
@@ -514,10 +514,18 @@ export const fr: FireCMSTranslations = {
514
514
  auto_setup_collections_button: "Configurer les collections automatiquement",
515
515
  auto_setup_collections_title: "Configurer les collections automatiquement ?",
516
516
  auto_setup_collections_desc: "Cela créera automatiquement des configurations de collection pour les collections qui ne sont <b>PAS</b> déjà mappées",
517
- this_can_take_a_minute: "Cela peut prendre une minute",
517
+ setting_up_collections: "Configuration des collections",
518
+ setting_up_collection: "Configuration de {{name}}",
518
519
  no_collections_found_to_setup: "Aucune collection à configurer trouvée",
519
520
  collections_have_been_setup: "Les collections ont été configurées",
520
521
  error_setting_up_collections: "Erreur lors de la configuration des collections",
522
+ setup_collections_title: "Set up collections",
523
+ setup_collections_select_desc: "Select which collections to automatically set up:",
524
+ select_all: "Select all",
525
+ deselect_all: "Deselect all",
526
+ setup_collections_confirm: "Set up ({{count}})",
527
+ collection_setup_success: "{{name}} has been set up",
528
+ go_to_collection: "Go to collection",
521
529
  add_your: "Ajoutez vos",
522
530
  database_collections: "collections de base de données",
523
531
  to_firecms: "à FireCMS",
package/src/locales/hi.ts CHANGED
@@ -146,8 +146,8 @@ export const hi: FireCMSTranslations = {
146
146
  // ─── Error states ─────────────────────────────────────────────
147
147
  error: "त्रुटि",
148
148
  error_uploading_file: "फ़ाइल अपलोड करने में त्रुटि",
149
- error_deleting: "हटाने में त्रुटि",
150
- error_before_delete: "हटाने से पहले त्रुटि",
149
+ error_deleting: "हटाने में त्रुटि: {{message}}",
150
+ error_before_delete: "हटाने से पहले त्रुटि: {{message}}",
151
151
  error_updating_asset: "एसेट अपडेट करने में त्रुटि",
152
152
  error_deleting_asset: "एसेट हटाने में त्रुटि",
153
153
  error_firestore_index: "इस क्वेरी के लिए Firestore इंडेक्स आवश्यक है।",
@@ -437,8 +437,8 @@ export const hi: FireCMSTranslations = {
437
437
  cms_users: "CMS उपयोगकर्ता",
438
438
  roles_menu: "भूमिकाएँ",
439
439
  project_settings: "परियोजना सेटिंग",
440
- firestore_explorer: "Firestore एक्सप्लोरर",
441
- explore_your_firestore_data: "अपने Firestore डेटा का अन्वेषण करें",
440
+ firestore_manager: "Firestore मैनेजर",
441
+ manage_your_firestore_data: "अपने Firestore डेटा का प्रबंधन करें",
442
442
 
443
443
  // ─── FireCMS Cloud Login ──────────────────────────────────────
444
444
  build_admin_panel_in_minutes: "मिनटों में अपना Firebase एडमिन पैनल बनाएं",
@@ -514,10 +514,18 @@ export const hi: FireCMSTranslations = {
514
514
  auto_setup_collections_button: "संग्रहों को स्वचालित रूप से सेट करें",
515
515
  auto_setup_collections_title: "संग्रहों की स्वचालित सेटअप",
516
516
  auto_setup_collections_desc: "अपने मौजूदा Firestore डेटा के आधार पर संग्रहों को स्वचालित रूप से सेट करें। FireCMS को आपके लिए परफेक्ट CMS कॉन्फ़िगर करने दें।",
517
- this_can_take_a_minute: "इसमें एक मिनट लग सकता है",
517
+ setting_up_collections: "संग्रह सेट किए जा रहे हैं",
518
+ setting_up_collection: "{{name}} सेट किया जा रहा है",
518
519
  no_collections_found_to_setup: "सेट करने के लिए कोई संग्रह नहीं मिला",
519
520
  collections_have_been_setup: "संग्रहों को सेट कर दिया गया है",
520
521
  error_setting_up_collections: "संग्रह सेट करने में त्रुटि",
522
+ setup_collections_title: "Set up collections",
523
+ setup_collections_select_desc: "Select which collections to automatically set up:",
524
+ select_all: "Select all",
525
+ deselect_all: "Deselect all",
526
+ setup_collections_confirm: "Set up ({{count}})",
527
+ collection_setup_success: "{{name}} has been set up",
528
+ go_to_collection: "Go to collection",
521
529
  add_your: "अपने",
522
530
  database_collections: "डेटाबेस संग्रह",
523
531
  to_firecms: "को FireCMS में जोड़ें",
package/src/locales/it.ts CHANGED
@@ -146,8 +146,8 @@ export const it: FireCMSTranslations = {
146
146
  // ─── Error states ─────────────────────────────────────────────
147
147
  error: "Errore",
148
148
  error_uploading_file: "Errore durante il caricamento del file",
149
- error_deleting: "Errore durante l'eliminazione",
150
- error_before_delete: "Errore prima dell'eliminazione",
149
+ error_deleting: "Errore durante l'eliminazione: {{message}}",
150
+ error_before_delete: "Errore prima dell'eliminazione: {{message}}",
151
151
  error_updating_asset: "Errore durante l'aggiornamento dell'asset",
152
152
  error_deleting_asset: "Errore durante l'eliminazione dell'asset",
153
153
  error_firestore_index: "Per questa query è richiesto un indice Firestore.",
@@ -437,8 +437,8 @@ export const it: FireCMSTranslations = {
437
437
  cms_users: "Utenti CMS",
438
438
  roles_menu: "Ruoli",
439
439
  project_settings: "Impostazioni del progetto",
440
- firestore_explorer: "Esplora Firestore",
441
- explore_your_firestore_data: "Esplora i tuoi dati Firestore",
440
+ firestore_manager: "Gestore Firestore",
441
+ manage_your_firestore_data: "Gestisci i tuoi dati Firestore",
442
442
 
443
443
  // ─── FireCMS Cloud Login ──────────────────────────────────────
444
444
  build_admin_panel_in_minutes: "Crea il tuo pannello di amministrazione Firebase in pochi minuti",
@@ -514,10 +514,18 @@ export const it: FireCMSTranslations = {
514
514
  auto_setup_collections_button: "Configura le collezioni automaticamente",
515
515
  auto_setup_collections_title: "Configurazione automatica delle collezioni",
516
516
  auto_setup_collections_desc: "Configura le collezioni automaticamente in base ai dati Firestore esistenti. Lascia che FireCMS configuri il CMS perfetto per te.",
517
- this_can_take_a_minute: "Potrebbe richiedere qualche minuto",
517
+ setting_up_collections: "Configurazione delle collezioni",
518
+ setting_up_collection: "Configurazione di {{name}}",
518
519
  no_collections_found_to_setup: "Nessuna collezione trovata da configurare",
519
520
  collections_have_been_setup: "Le collezioni sono state configurate",
520
521
  error_setting_up_collections: "Errore durante la configurazione delle collezioni",
522
+ setup_collections_title: "Set up collections",
523
+ setup_collections_select_desc: "Select which collections to automatically set up:",
524
+ select_all: "Select all",
525
+ deselect_all: "Deselect all",
526
+ setup_collections_confirm: "Set up ({{count}})",
527
+ collection_setup_success: "{{name}} has been set up",
528
+ go_to_collection: "Go to collection",
521
529
  add_your: "Aggiungi le tue",
522
530
  database_collections: "collezioni del database",
523
531
  to_firecms: "a FireCMS",
package/src/locales/pt.ts CHANGED
@@ -151,8 +151,8 @@ export const pt: FireCMSTranslations = {
151
151
  // ─── Error states ─────────────────────────────────────────────
152
152
  error: "Erro",
153
153
  error_uploading_file: "Erro ao carregar ficheiro",
154
- error_deleting: "Erro ao eliminar",
155
- error_before_delete: "Erro antes de eliminar",
154
+ error_deleting: "Erro ao eliminar: {{message}}",
155
+ error_before_delete: "Erro antes de eliminar: {{message}}",
156
156
  error_updating_asset: "Erro ao atualizar recurso",
157
157
  error_deleting_asset: "Erro ao eliminar recurso",
158
158
  error_firestore_index: "É necessário um índice Firestore para esta consulta.",
@@ -442,8 +442,8 @@ export const pt: FireCMSTranslations = {
442
442
  cms_users: "Utilizadores do CMS",
443
443
  roles_menu: "Funções",
444
444
  project_settings: "Definições do projeto",
445
- firestore_explorer: "Explorador do Firestore",
446
- explore_your_firestore_data: "Explore os seus dados do Firestore",
445
+ firestore_manager: "Gerenciador do Firestore",
446
+ manage_your_firestore_data: "Gerencie os seus dados do Firestore",
447
447
 
448
448
  // ─── FireCMS Cloud Login ──────────────────────────────────────
449
449
  build_admin_panel_in_minutes: "Construa o Seu Painel de Administração Firebase em Minutos",
@@ -519,10 +519,18 @@ export const pt: FireCMSTranslations = {
519
519
  auto_setup_collections_button: "Configurar coleções automaticamente",
520
520
  auto_setup_collections_title: "Configurar coleções automaticamente?",
521
521
  auto_setup_collections_desc: "Isto criará automaticamente configurações de coleção para coleções que <b>NÃO</b> estão já mapeadas",
522
- this_can_take_a_minute: "Isto pode demorar um ou dois minutos",
522
+ setting_up_collections: "Configurando coleções",
523
+ setting_up_collection: "Configurando {{name}}",
523
524
  no_collections_found_to_setup: "Nenhuma coleção encontrada para configurar.",
524
525
  collections_have_been_setup: "As coleções foram configuradas automaticamente.",
525
526
  error_setting_up_collections: "Erro ao configurar coleções automaticamente",
527
+ setup_collections_title: "Set up collections",
528
+ setup_collections_select_desc: "Select which collections to automatically set up:",
529
+ select_all: "Select all",
530
+ deselect_all: "Deselect all",
531
+ setup_collections_confirm: "Set up ({{count}})",
532
+ collection_setup_success: "{{name}} has been set up",
533
+ go_to_collection: "Go to collection",
526
534
 
527
535
  // --- Home Suggestions ---
528
536
  add_your: "Adicione as suas",
@@ -261,6 +261,22 @@ export interface EntityCollection<M extends Record<string, any> = any, USER exte
261
261
  */
262
262
  initialFilter?: FilterValues<Extract<keyof M, string>>; // setting FilterValues<M> can break defining collections by code
263
263
 
264
+ /**
265
+ * Array of property keys that are allowed for filtering. Allowed filters will be displayed in the collection view, table row headers
266
+ * and will be used to filter data.
267
+ *
268
+ * If not specified, all properties that are filterable will be allowed.
269
+ *
270
+ * If you specify this prop, the filters will be displayed in the collection view if they are filterable.
271
+ *
272
+ * If you set it as an empty array, no filters will be displayed.
273
+ *
274
+ * e.g. `allowedFilters: ["name", "category"]`
275
+ *
276
+ * e.g. `allowedFilters: []`
277
+ */
278
+ allowedFilters?: (keyof M)[];
279
+
264
280
  /**
265
281
  * Default sort applied to this collection.
266
282
  * When setting this prop, entities will have a default order
@@ -725,6 +741,8 @@ export type EntityTableController<M extends Record<string, any> = any> = {
725
741
  dataLoadingError?: Error;
726
742
  filterValues?: FilterValues<Extract<keyof M, string>>;
727
743
  setFilterValues?: (filterValues: FilterValues<Extract<keyof M, string>>) => void;
744
+ allowedFilters?: (keyof M)[];
745
+ forcedFilters?: (keyof M)[];
728
746
  sortBy?: [Extract<keyof M, string>, "asc" | "desc"];
729
747
  setSortBy?: (sortBy?: [Extract<keyof M, string>, "asc" | "desc"]) => void;
730
748
  searchString?: string;
@@ -467,8 +467,8 @@ export interface FireCMSTranslations {
467
467
  cms_users: string;
468
468
  roles_menu: string;
469
469
  project_settings: string;
470
- firestore_explorer: string;
471
- explore_your_firestore_data: string;
470
+ firestore_manager: string;
471
+ manage_your_firestore_data: string;
472
472
 
473
473
  // ─── FireCMS Cloud Login ──────────────────────────────────────
474
474
  build_admin_panel_in_minutes: string;
@@ -544,10 +544,18 @@ export interface FireCMSTranslations {
544
544
  auto_setup_collections_button: string;
545
545
  auto_setup_collections_title: string;
546
546
  auto_setup_collections_desc: string;
547
- this_can_take_a_minute: string;
547
+ setting_up_collections: string;
548
+ setting_up_collection: string;
548
549
  no_collections_found_to_setup: string;
549
550
  collections_have_been_setup: string;
550
551
  error_setting_up_collections: string;
552
+ setup_collections_title: string;
553
+ setup_collections_select_desc: string;
554
+ select_all: string;
555
+ deselect_all: string;
556
+ setup_collections_confirm: string;
557
+ collection_setup_success: string;
558
+ go_to_collection: string;
551
559
 
552
560
  // --- Home Suggestions ---
553
561
  add_your: string;
@@ -137,6 +137,9 @@ export function sanitizeData<M extends Record<string, any>>
137
137
  }
138
138
 
139
139
  export function getReferenceFrom<M extends Record<string, any>>(entity: Entity<M>): EntityReference {
140
+ if (!entity) {
141
+ throw new Error("getReferenceFrom: entity is null or undefined");
142
+ }
140
143
  return new EntityReference(entity.id, entity.path, entity.databaseId);
141
144
  }
142
145
 
@@ -196,3 +199,11 @@ export function traverseValueProperty(inputValue: any,
196
199
 
197
200
  return value;
198
201
  }
202
+
203
+ export function isDataTypeFilterable(dataType: DataType, isPartOfArray = false) {
204
+ if (isPartOfArray) {
205
+ return ["string", "number", "date", "reference"].includes(dataType);
206
+ }
207
+
208
+ return ["string", "number", "boolean", "date", "reference", "array"].includes(dataType);
209
+ }
@@ -90,8 +90,11 @@ export const resolveCollection = <M extends Record<string, any>,>
90
90
  .map(([id, property]) => ({ [id]: property }))
91
91
  .reduce((a, b) => ({ ...a, ...b }), {});
92
92
 
93
+ const { properties: overrideProps, ...restOverrides } = collectionOverride ?? {};
94
+
93
95
  return {
94
96
  ...collection,
97
+ ...restOverrides,
95
98
  properties: cleanedProperties,
96
99
  originalCollection: collection
97
100
  } as ResolvedEntityCollection<M>;