Files
gonoware-laravel-maps/resources/js/index.js
Emanuel Mutschlechner c7c7694ac4 'wip'
2018-08-30 01:21:38 +02:00

42 lines
980 B
JavaScript
Vendored

import google from './types/google';
import osm from './types/osm';
import bing from './types/bing';
import mapkit from './types/mapkit';
import parser from './utils/parser';
import {isDefined} from './utils/helper';
const createMap = (element, createMap, createMarker) => {
if (!isDefined(element)) {
return;
}
const mapData = parser.map(element);
const map = createMap(element, mapData);
mapData.markers.forEach(markerData => {
if (!isDefined(map)) {
return;
}
createMarker(map, markerData);
})
};
const createMapType = map => {
const createMapType = element => createMap(
element,
map.createMap,
map.createMarker,
);
const selector = `[data-map-type="${map.type}"]`;
const elements = document.querySelectorAll(selector) || [];
elements.forEach(createMapType);
};
window.onGoogleMapsReady = () => createMapType(google);
(() => createMapType(osm))();
(() => createMapType(bing))();
(() => createMapType(mapkit))();