__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
/**
 * @package   DPCalendar
 * @copyright Digital Peak GmbH. <https://www.digital-peak.com>
 * @license   https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL
 */
(function () {
	'use strict';
	function createMarker(map, data, dragCallback) {
		const latitude = data.latitude;
		const longitude = data.longitude;
		if (latitude == null || latitude == '') {
			return;
		}
		if (map.dpmap == null) {
			if (map.dpCachedMarkers == null) {
				map.dpCachedMarkers = [];
			}
			map.dpCachedMarkers.push({ data: data, dragCallback: dragCallback });
			return;
		}
		if (!data.color) {
			data.color = '000000';
		}
		const markerParams = { draggable: dragCallback != null };
		markerParams.icon = L.divIcon({
			className: 'dp-location-marker' + (data.id ? ' dp-location-marker-' + data.id : ''),
			html: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="#' + String(data.color).replace('#', '') + '" d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"/></svg>',
			iconSize: [25, 30],
			iconAnchor: [10, 35]
		});
		const marker = L.marker([latitude, longitude], markerParams);
		const desc = data.description ? data.description : data.title;
		if (desc) {
			const popup = marker.bindPopup(desc);
			marker.on('click', () => popup.openPopup());
		}
		if (dragCallback) {
			marker.on('dragend', (event) => dragCallback(event.target.getLatLng().lat, event.target.getLatLng().lng));
		}
		map.dpmap.dpMarkersCluster.addLayer(marker);
		map.dpmap.dpMarkers.push(marker);
		map.dpmap.dpBounds.extend(marker.getLatLng());
		map.dpmap.setView(map.dpmap.dpBounds.getCenter(), Math.min(map.dpmap.getBoundsZoom(map.dpmap.dpBounds), map.dpmap.getZoom()));
		return marker;
	}
	function clearMarkers(map) {
		if (map == null || map.dpmap == null || map.dpmap.dpMarkers == null) {
			return;
		}
		map.dpmap.dpMarkers.forEach((marker) => {
			map.dpmap.removeLayer(marker);
			map.dpmap.dpMarkersCluster.removeLayer(marker);
		});
		map.dpmap.dpMarkers = [];
		map.dpmap.dpCachedMarkers = [];
		map.dpmap.dpBounds = new L.latLngBounds();
		const options = map.dpmap.dpElement.dataset;
		map.dpmap.panTo([options.latitude ? options.latitude : 47, options.longitude ? options.longitude : 4]);
	}
	function moveMarker(map, marker, latitude, longitude) {
		if (!marker || map.dpmap == null) {
			return;
		}
		marker.setLatLng([latitude, longitude]);
		map.dpmap.dpBounds = new L.latLngBounds();
		map.dpmap.dpMarkers.forEach((m) => map.dpmap.dpBounds.extend(m.getLatLng()));
		map.dpmap.panTo(map.dpmap.dpBounds.getCenter());
	}
	function createMap(element) {
		if (typeof L === 'undefined') {
			return;
		}
		element.classList.add('dp-map_loading');
		const options = element.dataset;
		const map = L.map(element, {
			attributionControl: true,
			fullscreenControl: true,
			gestureHandling: true,
			gestureHandlingOptions: {
				duration: 2000,
				text: {
					touch: Joomla.Text._('COM_DPCALENDAR_LEAFLET_TEXT_TOUCH'),
					scroll: Joomla.Text._('COM_DPCALENDAR_LEAFLET_TEXT_SCROLL'),
					scrollMac: Joomla.Text._('COM_DPCALENDAR_LEAFLET_TEXT_SCROLLMAC')
				}
			}
		}).setView(
			[options.latitude ? options.latitude : 47, options.longitude ? options.longitude : 4],
			options.zoom ? options.zoom : 4
		);
		map.attributionControl.setPrefix('');
		map.attributionControl.addAttribution(Joomla.getOptions('DPCalendar.map.tiles.attribution'));
		if (Joomla.getOptions('DPCalendar.map.tiles.url') == 'google') {
			let type = google.maps.MapTypeId.ROADMAP;
			switch (options.type) {
				case 2:
					type = google.maps.MapTypeId.SATELLITE;
					break;
				case 3:
					type = google.maps.MapTypeId.HYBRID;
					break;
				case 4:
					type = google.maps.MapTypeId.TERRAIN;
					break;
			}
			const tiles = L.gridLayer.googleMutant({ type: type });
			tiles.addTo(map);
			tiles.addEventListener('spawned', (e) => {
				google.maps.event.addListenerOnce(e.mapObject, 'tilesloaded', () => {
					element.classList.remove('dp-map_loading');
					element.classList.add('dp-map_loaded');
				});
			});
		} else if (Joomla.getOptions('DPCalendar.map.tiles.url') == 'mapbox') {
			const gl = L.mapboxGL({
				accessToken: Joomla.getOptions('DPCalendar.map.mapbox.token'),
				style: 'mapbox://styles/mapbox/streets-v11'
			}).addTo(map);
			gl.getMapboxMap().on('load', () => {
				element.classList.remove('dp-map_loading');
				element.classList.add('dp-map_loaded');
			});
			map._layersMaxZoom = 19;
		} else {
			const tiles = L.tileLayer(Joomla.getOptions('DPCalendar.map.tiles.url'));
			tiles.on('load', () => {
				element.classList.remove('dp-map_loading');
				element.classList.add('dp-map_loaded');
			});
			tiles.addTo(map);
		}
		map.dpMarkersCluster = L.markerClusterGroup({ maxClusterRadius: options.radius ? options.radius : 30 });
		map.addLayer(map.dpMarkersCluster);
		map.dpBounds = new L.latLngBounds();
		map.dpMarkers = [];
		map.dpElement = element;
		element.dpmap = map;
		element.dispatchEvent(new CustomEvent('dp-map-loaded'));
		if (Array.isArray(element.dpCachedMarkers)) {
			element.dpCachedMarkers.forEach((m) => createMarker(element, m.data, m.dragCallback));
			element.dpCachedMarkers = null;
		}
		return map;
	}
	function create(mapElement) {
		const options = mapElement.dataset;
		if (options.width) {
			mapElement.style.width = options.width;
		}
		if (options.height) {
			mapElement.style.height = options.height;
		}
		if (!localStorage.getItem('DPCalendar.map.load') && mapElement.dataset.askConsent == 1) {
			ask(mapElement);
			return;
		}
		let assets = ['/com_dpcalendar/js/leaflet/leaflet.js', '/com_dpcalendar/css/leaflet/leaflet.css'];
		if (Joomla.getOptions('DPCalendar.map.provider') == 'google') {
			assets.push('https://maps.googleapis.com/maps/api/js?libraries=places&language=' + Joomla.getOptions('DPCalendar.map.google.lang') + '&key=' + Joomla.getOptions('DPCalendar.map.google.key'));
		}
		if (Joomla.getOptions('DPCalendar.map.provider') == 'mapbox') {
			assets.push('https://api.tiles.mapbox.com/mapbox-gl-js/v1.12.0/mapbox-gl.css');
			assets.push('https://api.tiles.mapbox.com/mapbox-gl-js/v1.12.0/mapbox-gl.js');
		}
		loadDPAssets(assets, () => {
			let assets = [];
			if (Joomla.getOptions('DPCalendar.map.provider') == 'google') {
				assets.push('/com_dpcalendar/js/leaflet/leaflet-google.js');
			}
			if (Joomla.getOptions('DPCalendar.map.provider') == 'mapbox') {
				assets.push('/com_dpcalendar/js/leaflet/leaflet-mapbox.js');
			}
			loadDPAssets(assets, () => {
				createMap(mapElement);
				let locationsContainer = mapElement.closest('.dp-location');
				if (locationsContainer == null) {
					locationsContainer = mapElement.closest('.dp-locations');
				}
				if (locationsContainer == null) {
					return;
				}
				[].slice.call(locationsContainer.querySelectorAll('.dp-location__details')).forEach((location) => {
					const data = Object.assign({}, location.dataset);
					const desc = location.parentElement.querySelector('.dp-location__description');
					if (!data.description && desc) {
						data.description = desc.innerHTML;
					}
					createMarker(mapElement, data);
				});
			});
		});
	}
	function ask(element) {
		element.classList.add('dp-map_consent');
		element.innerHTML = Joomla.Text._('COM_DPCALENDAR_FIELD_CONFIG_INTEGRATION_MAP_CONSENT_INFO_TEXT');
		element.addEventListener('click', () => {
			if (!element.classList.contains('dp-map_consent')) {
				return;
			}
			localStorage.setItem('DPCalendar.map.load', true);
			element.classList.remove('dp-map_consent');
			element.innerHTML = '';
			create(element);
		});
	}
	function drawCircle(map, location, radius, type) {
		if (map.dpmap == null) {
			return;
		}
		if (type == 'mile') {
			radius = radius * 1.60934;
		}
		map.dpmap.dpMarkers.push(L.circle([location.latitude, location.longitude], radius * 1000).addTo(map.dpmap));
		map.dpmap.dpMarkers.push(L.circleMarker([location.latitude, location.longitude], {
			radius: 10,
			color: '#000000',
			fillColor: '#000000',
			fillOpacity: 1
		}).addTo(map.dpmap));
		map.dpmap.panTo([location.latitude, location.longitude]);
	}
	const DPCalendar = window.DPCalendar || {};
	window.DPCalendar = DPCalendar;
	DPCalendar.Map = {};
	DPCalendar.Map.create = create;
	DPCalendar.Map.createMarker = createMarker;
	DPCalendar.Map.clearMarkers = clearMarkers;
	DPCalendar.Map.moveMarker = moveMarker;
	DPCalendar.Map.drawCircle = drawCircle;
})();

Filemanager

Name Type Size Permission Actions
fields Folder 0775
layouts Folder 0775
views Folder 0775
calendar.js File 32.09 KB 0664
calendar.min.js File 22.39 KB 0664
dpcalendar.js File 9.48 KB 0664
dpcalendar.min.js File 6.41 KB 0664
loader.js File 1.8 KB 0664
loader.min.js File 1.2 KB 0664
map.js File 8.38 KB 0664
map.min.js File 5.89 KB 0664
Filemanager