neshan-map
Version:
### Developed by [Neshan Maps Platform team](https://platform.neshan.org). ### For Farsi/Persian document, [click here](https://developers.neshan.org/react-component/).
98 lines (90 loc) • 2.9 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var React = require('react');
var React__default = _interopDefault(React);
function _extends() {
_extends = Object.assign ? Object.assign.bind() : function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
var BASE_URL = 'https://static.neshan.org';
var DEFAULT_URL_SCRIPT = BASE_URL + "/sdk/leaflet/1.4.0/leaflet.js";
var DEFAULT_URL_STYLE = BASE_URL + "/sdk/leaflet/1.4.0/leaflet.css";
var neshan_map_loader = (function (props) {
var createScriptStyle = function createScriptStyle() {
var onError = props.onError,
onLoad = props.onLoad; //-----import style
if (!document.head.querySelector("link[href=\"" + DEFAULT_URL_STYLE + "\"]")) {
var style = document.createElement('link');
style.href = DEFAULT_URL_STYLE;
style.rel = 'stylesheet';
document.head.appendChild(style);
} //------import script
if (window.L) {
if (onLoad) onLoad();
return;
}
var script = document.body.querySelector("script[src=\"" + DEFAULT_URL_SCRIPT + "\"]") || document.createElement('script');
script.addEventListener('load', function () {
if (onLoad) onLoad();
return;
});
script.addEventListener('error', function () {
if (onError) onError();
return;
});
if (!script.src) {
script.src = DEFAULT_URL_SCRIPT;
document.body.appendChild(script);
}
};
return createScriptStyle();
});
var NeshanMap = function NeshanMap(props) {
var style = props.style,
options = props.options,
onInit = props.onInit;
var mapEl = React.useRef(null);
var defaultStyle = {
width: '600px',
height: '450px',
margin: 0,
padding: 0,
background: '#eee'
};
var defaultOptions = {
key: 'YOUR_API_KEY',
maptype: 'dreamy',
poi: true,
traffic: false,
center: [35.699739, 51.338097],
zoom: 14
};
React.useEffect(function () {
neshan_map_loader({
onLoad: function onLoad() {
var map = new window.L.Map(mapEl.current, _extends({}, defaultOptions, options));
if (onInit) onInit(window.L, map);
},
onError: function onError() {
console.error("Neshan Maps Error: This page didn't load Neshan Maps correctly");
}
});
}, []);
return /*#__PURE__*/React__default.createElement('div', {
ref: mapEl,
style: _extends({}, defaultStyle, style)
});
};
exports.default = NeshanMap;
//# sourceMappingURL=neshan-map.cjs.development.js.map