@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
112 lines (111 loc) • 6.83 kB
JavaScript
import tippy from 'tippy.js';
import AboutComponent from './components/about/component';
import BasemapComponent from './components/basemap/component';
import CoordinateComponent from './components/coordinate/component';
import MapContextMenuComponent from './components/context-menu/component';
import MapDefaultContextMenuContentComponent from './components/context-menu/default-context-menu-content/component';
import MapCustomContextMenuContentComponent from './components/context-menu/custom-context-menu-content/component';
import CrossSectionSettingsComponent from './components/cross-section/cross-section-settings/component';
import CrossSectionViewComponent from './components/cross-section/cross-section-viewer/component';
import DrawingComponent from './components/drawing/component';
import EditComponent from './components/edit/component';
import HelpComponent from './components/help/component';
import InfoboxComponent from './components/infobox/component';
import InfoWindowComponent from './components/infowindow/component';
import LayoutComponent from './components/layout/component';
import LRPanelComponent from './components/lr-panel/component';
import MapComponent from './components/map/component';
import MenuButtonComponent from './components/menubutton/component';
import ModalsComponent from './components/modals/component';
import NavigationComponent from './components/navigation/component';
import OauthComponent from './components/auth/component';
import PrintComponent from './components/print/component';
import PrototypeBannerComponent from './components/prototypebanner/component';
import QueryBuilderComponent from './components/querybuilder/component';
import ScaleComponent from './components/scale/component';
import SearchComponent from './components/search/component';
import SelectionGridComponent from './components/selectiongrid/component';
import SelectionWindowComponent from './components/selectionwindow/component';
import ShareComponent from './components/share/component';
import ThemeComponent from './components/themes/component';
import TimeRestrictionComponent from './components/timerestriction/component';
import TimePickerComponent from './components/timerestriction/timepicker/component';
import TimeSliderComponent from './components/timerestriction/timeslider/component';
import TreeViewGroupComponent from './components/treeview/treeviewgroup/component';
import TreeViewItemComponent from './components/treeview/treeviewitem/component';
import TreeViewRootComponent from './components/treeview/treeviewroot/component';
import TreeViewThemeComponent from './components/treeview/treeviewtheme/component';
import UserPreferencesComponent from './components/userpreferences/component';
import VideoRecordComponent from './components/videorecord/component';
import { initialize } from './initialize';
// Redirect to mobile interface if we are on mobile
if (navigator.userAgent.includes('iPhone') || navigator.userAgent.includes('Android')) {
window.location.href = 'mobile.html';
}
document.addEventListener('DOMContentLoaded', function () {
// At this point, the config and translations have not been loaded yet
// Therefore, we hardcode this simple 'loading' text and use the browser configuration
const language = navigator.language.toLowerCase();
console.log(`Navigator language: ${language}`);
let loading = 'Loading...';
if (language.startsWith('fr')) {
loading = 'Chargement...';
}
else if (language.startsWith('de')) {
loading = 'Wird geladen...';
}
else if (language.startsWith('it')) {
loading = 'Caricamento...';
}
(document.getElementById('splash-screen')?.getElementsByTagName('span')[0]).innerHTML = loading;
});
// Common initialization
initialize().then(() => {
// Override default tooltip maxWidth:
tippy.setDefaultProps({ maxWidth: '' });
// Define components names
customElements.define('girafe-about', AboutComponent);
customElements.define('girafe-basemap', BasemapComponent);
customElements.define('girafe-coordinate', CoordinateComponent);
customElements.define('girafe-context-menu', MapContextMenuComponent);
customElements.define('girafe-default-context-menu-content', MapDefaultContextMenuContentComponent);
customElements.define('girafe-custom-context-menu-content', MapCustomContextMenuContentComponent);
customElements.define('girafe-layout', LayoutComponent);
customElements.define('girafe-help', HelpComponent);
customElements.define('girafe-infobox', InfoboxComponent);
customElements.define('girafe-info-window', InfoWindowComponent);
customElements.define('girafe-cross-section-settings', CrossSectionSettingsComponent);
customElements.define('girafe-cross-section-view', CrossSectionViewComponent);
customElements.define('girafe-lr-panel', LRPanelComponent);
customElements.define('girafe-map', MapComponent);
customElements.define('girafe-menu-button', MenuButtonComponent);
customElements.define('girafe-modals', ModalsComponent);
customElements.define('girafe-nav-history', NavigationComponent);
customElements.define('girafe-print', PrintComponent);
customElements.define('girafe-prototype-banner', PrototypeBannerComponent);
customElements.define('girafe-query-builder', QueryBuilderComponent);
customElements.define('girafe-oauth', OauthComponent);
customElements.define('girafe-drawing', DrawingComponent);
customElements.define('girafe-edit', EditComponent);
customElements.define('girafe-scale', ScaleComponent);
customElements.define('girafe-search', SearchComponent);
customElements.define('girafe-selection-grid', SelectionGridComponent);
customElements.define('girafe-selection-window', SelectionWindowComponent);
customElements.define('girafe-share', ShareComponent);
customElements.define('girafe-theme-select', ThemeComponent);
customElements.define('girafe-time-restriction', TimeRestrictionComponent);
customElements.define('girafe-time-picker', TimePickerComponent);
customElements.define('girafe-time-slider', TimeSliderComponent);
customElements.define('girafe-tree-view', TreeViewRootComponent);
customElements.define('girafe-tree-view-group', TreeViewGroupComponent);
customElements.define('girafe-tree-view-item', TreeViewItemComponent);
customElements.define('girafe-tree-view-theme', TreeViewThemeComponent);
customElements.define('girafe-user-preferences', UserPreferencesComponent);
customElements.define('girafe-video-record', VideoRecordComponent);
// Remove the splash-screen from the DOM
const splash = document.getElementById('splash-screen');
if (splash) {
splash.style.opacity = '0';
setTimeout(() => splash.remove(), 700);
}
});