import {Icon} from './Icon'; import * as DomUtil from '../../dom/DomUtil'; /* * @miniclass Icon.Default (Icon) * @aka L.Icon.Default * @section * * A trivial subclass of `Icon`, represents the icon to use in `Marker`s when * no icon is specified. Points to the blue marker image distributed with Leaflet * releases. * * In order to customize the default icon, just change the properties of `L.Icon.Default.prototype.options` * (which is a set of `Icon options`). * * If you want to _completely_ replace the default icon, override the * `L.Marker.prototype.options.icon` with your own icon instead. */ export var IconDefault = Icon.extend({ options: { iconUrl: 'marker-icon.png', iconRetinaUrl: 'marker-icon-2x.png', shadowUrl: 'marker-shadow.png', iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -34], tooltipAnchor: [16, -28], shadowSize: [41, 41] }, _getIconUrl: function (name) { if (!IconDefault.imagePath) { // Deprecated, backwards-compatibility only IconDefault.imagePath = this._detectIconPath(); } // @option imagePath: String // `Icon.Default` will try to auto-detect the location of the // blue icon images. If you are placing these images in a non-standard // way, set this option to point to the right path. return (this.options.imagePath || IconDefault.imagePath) + Icon.prototype._getIconUrl.call(this, name); }, _detectIconPath: function () { var el = DomUtil.create('div', 'leaflet-default-icon-path', document.body); var path = DomUtil.getStyle(el, 'background-image') || DomUtil.getStyle(el, 'backgroundImage'); // IE8 document.body.removeChild(el); if (path === null || path.indexOf('url') !== 0) { path = ''; } else { path = path.replace(/^url\(["']?/, '').replace(/marker-icon\.png["']?\)$/, ''); } return path; } });