Files
ArchiTools/src/config/flags.ts
T
AI Assistant c297a2c5f7 feat: add Geoportal module with MapLibre GL JS + Martin vector tiles
Phase 1 of the geoportal implementation:

Infrastructure:
- Martin vector tile server in docker-compose (port 3010)
- PostGIS setup SQL for GisUat: native geom column, Esri→PostGIS
  trigger, GiST index, gis_uats view for Martin auto-discovery

Geoportal module (src/modules/geoportal/):
- map-viewer.tsx: MapLibre GL JS canvas with OSM base, Martin MVT
  sources (gis_uats, gis_terenuri, gis_cladiri), click-to-inspect,
  zoom-level-aware layer visibility, layer styling
- layer-panel.tsx: collapsible sidebar with layer toggles
- geoportal-module.tsx: standalone page wrapper
- Module registered in config/modules.ts, flags.ts, i18n

ParcelSync integration:
- 6th tab "Harta" with lazy-loaded MapViewer (ssr: false)
- Centered on selected UAT

Dependencies: maplibre-gl v5.21.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 14:21:37 +02:00

152 lines
3.7 KiB
TypeScript

import type { FeatureFlag } from "@/core/feature-flags/types";
export const DEFAULT_FLAGS: FeatureFlag[] = [
// Module flags
{
key: "module.registratura",
enabled: true,
label: "Registratură",
description: "Registru de corespondență multi-firmă",
category: "module",
overridable: true,
},
{
key: "module.email-signature",
enabled: true,
label: "Generator Semnătură Email",
description: "Configurator semnătură email",
category: "module",
overridable: true,
},
{
key: "module.word-xml",
enabled: true,
label: "Generator XML Word",
description: "Generator Custom XML Parts pentru Word",
category: "module",
overridable: true,
},
{
key: "module.prompt-generator",
enabled: true,
label: "Generator Prompturi",
description: "Constructor de prompturi structurate",
category: "module",
overridable: true,
},
{
key: "module.digital-signatures",
enabled: true,
label: "Semnături și Ștampile",
description: "Bibliotecă semnături digitale",
category: "module",
overridable: true,
},
{
key: "module.password-vault",
enabled: true,
label: "Parole Uzuale",
description: "Depozit intern de credențiale",
category: "module",
overridable: true,
},
{
key: "module.it-inventory",
enabled: true,
label: "Inventar IT",
description: "Evidența echipamentelor",
category: "module",
overridable: true,
},
{
key: "module.address-book",
enabled: true,
label: "Contacte",
description: "Clienți, furnizori, instituții",
category: "module",
overridable: true,
},
{
key: "module.word-templates",
enabled: true,
label: "Șabloane Word",
description: "Bibliotecă contracte și rapoarte",
category: "module",
overridable: true,
},
{
key: "module.tag-manager",
enabled: true,
label: "Manager Etichete",
description: "Administrare etichete",
category: "module",
overridable: true,
},
{
key: "module.mini-utilities",
enabled: true,
label: "Utilitare",
description: "Calculatoare și instrumente text",
category: "module",
overridable: true,
},
{
key: "module.ai-chat",
enabled: false,
label: "Chat AI",
description: "Interfață asistent AI",
category: "module",
overridable: true,
},
{
key: "module.visual-copilot",
enabled: true,
label: "Visual CoPilot",
description: "Canvas AI pentru vizualizare arhitecturală",
category: "module",
overridable: true,
},
{
key: "module.hot-desk",
enabled: true,
label: "Birouri Partajate",
description: "Rezervare birouri în camera partajată",
category: "module",
overridable: true,
},
{
key: "module.parcel-sync",
enabled: true,
label: "eTerra Parcele",
description: "Sincronizare parcele cadastrale din eTerra ANCPI",
category: "module",
overridable: true,
},
{
key: "module.geoportal",
enabled: true,
label: "Geoportal",
description: "Harta interactiva cu parcele, cladiri si limite UAT",
category: "module",
overridable: true,
},
// System flags
{
key: "system.dark-mode",
enabled: true,
label: "Mod întunecat",
description: "Activează tema întunecată",
category: "system",
overridable: true,
},
{
key: "system.external-links",
enabled: true,
label: "Linkuri externe",
description: "Afișează linkuri instrumente externe în navigare",
category: "system",
overridable: true,
},
];