L.Draw = L.Draw || {}; /** * @class L.Draw.Tooltip * @aka Tooltip * * The tooltip class — it is used to display the tooltip while drawing * This will be depreciated * * @example * * ```js * var tooltip = L.Draw.Tooltip(); * ``` * */ L.Draw.Tooltip = L.Class.extend({ // @section Methods for modifying draw state // @method initialize(map): void // Tooltip constructor initialize: function (map) { this._map = map; this._popupPane = map._panes.popupPane; this._visible = false; this._container = map.options.drawControlTooltips ? L.DomUtil.create('div', 'leaflet-draw-tooltip', this._popupPane) : null; this._singleLineLabel = false; this._map.on('mouseout', this._onMouseOut, this); }, // @method dispose(): void // Remove Tooltip DOM and unbind events dispose: function () { this._map.off('mouseout', this._onMouseOut, this); if (this._container) { this._popupPane.removeChild(this._container); this._container = null; } }, // @method updateContent(labelText): this // Changes the tooltip text to string in function call updateContent: function (labelText) { if (!this._container) { return this; } labelText.subtext = labelText.subtext || ''; // update the vertical position (only if changed) if (labelText.subtext.length === 0 && !this._singleLineLabel) { L.DomUtil.addClass(this._container, 'leaflet-draw-tooltip-single'); this._singleLineLabel = true; } else if (labelText.subtext.length > 0 && this._singleLineLabel) { L.DomUtil.removeClass(this._container, 'leaflet-draw-tooltip-single'); this._singleLineLabel = false; } this._container.innerHTML = (labelText.subtext.length > 0 ? '' + labelText.subtext + '' + '
' : '') + '' + labelText.text + ''; if (!labelText.text && !labelText.subtext) { this._visible = false; this._container.style.visibility = 'hidden'; } else { this._visible = true; this._container.style.visibility = 'inherit'; } return this; }, // @method updatePosition(latlng): this // Changes the location of the tooltip updatePosition: function (latlng) { var pos = this._map.latLngToLayerPoint(latlng), tooltipContainer = this._container; if (this._container) { if (this._visible) { tooltipContainer.style.visibility = 'inherit'; } L.DomUtil.setPosition(tooltipContainer, pos); } return this; }, // @method showAsError(): this // Applies error class to tooltip showAsError: function () { if (this._container) { L.DomUtil.addClass(this._container, 'leaflet-error-draw-tooltip'); } return this; }, // @method removeError(): this // Removes the error class from the tooltip removeError: function () { if (this._container) { L.DomUtil.removeClass(this._container, 'leaflet-error-draw-tooltip'); } return this; }, _onMouseOut: function () { if (this._container) { this._container.style.visibility = 'hidden'; } } });