import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import './index.css';
import App from './App.tsx';
import { AuthProvider } from './useAuth';
import { L10n, registerLicense, setCulture } from '@syncfusion/ej2-base';
import '@syncfusion/ej2-base/styles/material3.css';
import '@syncfusion/ej2-navigations/styles/material3.css';
import '@syncfusion/ej2-buttons/styles/material3.css';
import '@syncfusion/ej2-inputs/styles/material3.css';
import '@syncfusion/ej2-dropdowns/styles/material3.css';
import '@syncfusion/ej2-popups/styles/material3.css';
import '@syncfusion/ej2-kanban/styles/material3.css';
// Additional components used across the app
import '@syncfusion/ej2-grids/styles/material3.css';
import '@syncfusion/ej2-react-schedule/styles/material3.css';
import '@syncfusion/ej2-react-filemanager/styles/material3.css';
import '@syncfusion/ej2-notifications/styles/material3.css';
import '@syncfusion/ej2-layouts/styles/material3.css';
import '@syncfusion/ej2-lists/styles/material3.css';
import '@syncfusion/ej2-calendars/styles/material3.css';
import '@syncfusion/ej2-splitbuttons/styles/material3.css';
import '@syncfusion/ej2-icons/styles/material3.css';
import './theme-overrides.css';

// Setze hier deinen Lizenzschlüssel ein
registerLicense(
  'ORg4AjUWIQA/Gnt3VVhhQlJDfV5AQmBIYVp/TGpJfl96cVxMZVVBJAtUQF1hTH5VdENiXX1dcHxUQWNVWkd2'
);

// Global Syncfusion locale bootstrap so all components (for example Grid in monitoring)
// can resolve German resources, independent of which route was opened first.
L10n.load({
  de: {
    grid: {
      EmptyRecord: 'Keine Datensätze vorhanden',
      GroupDropArea: 'Ziehen Sie eine Spaltenüberschrift hierher, um nach dieser Spalte zu gruppieren',
      UnGroup: 'Klicken Sie hier, um die Gruppierung aufzuheben',
      EmptyDataSourceError: 'DataSource darf nicht leer sein, wenn InitialLoad aktiviert ist',
      Item: 'Element',
      Items: 'Elemente',
      Search: 'Suchen',
      Columnchooser: 'Spalten',
      Matchs: 'Keine Treffer gefunden',
      FilterButton: 'Filter',
      ClearButton: 'Löschen',
      StartsWith: 'Beginnt mit',
      EndsWith: 'Endet mit',
      Contains: 'Enthält',
      Equal: 'Gleich',
      NotEqual: 'Ungleich',
      LessThan: 'Kleiner als',
      LessThanOrEqual: 'Kleiner oder gleich',
      GreaterThan: 'Größer als',
      GreaterThanOrEqual: 'Größer oder gleich',
    },
    pager: {
      currentPageInfo: '{0} von {1} Seiten',
      totalItemsInfo: '({0} Einträge)',
      firstPageTooltip: 'Erste Seite',
      lastPageTooltip: 'Letzte Seite',
      nextPageTooltip: 'Nächste Seite',
      previousPageTooltip: 'Vorherige Seite',
      nextPagerTooltip: 'Nächste Pager-Einträge',
      previousPagerTooltip: 'Vorherige Pager-Einträge',
    },
    dropdowns: {
      noRecordsTemplate: 'Keine Einträge gefunden',
      actionFailureTemplate: 'Daten konnten nicht geladen werden',
    },
  },
});

setCulture('de');

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <AuthProvider>
      <App />
    </AuthProvider>
  </StrictMode>
);
