PageSourceSearch

https://rusaggression.gov.ua//zerum/leaflet/leaflet.draw/Control.Draw.js

js rusaggression.gov.ua collected 2026-10-03 00:47:00 UTC 2,973 bytes, 118 lines download raw bytes

vendor: 2,973 bytes, lines 1-118
1/**
2 * @class L.Control.Draw
3 * @aka L.Draw
4 */
5L.Control.Draw = L.Control.extend({
6
7	// Options
8	options: {
9		position: 'topleft',
10		draw: {},
11		edit: false
12	},
13
14	// @method initialize(): void
15	// Initializes draw control, toolbars from the options
16	initialize: function (options) {
17		if (L.version < '0.7') {
18			throw new Error('Leaflet.draw 0.2.3+ requires Leaflet 0.7.0+. Download latest from https://github.com/Leaflet/Leaflet/');
19		}
20
21		L.Control.prototype.initialize.call(this, options);
22
23		var toolbar;
24
25		this._toolbars = {};
26
27		// Initialize toolbars
28		if (L.DrawToolbar && this.options.draw) {
29			toolbar = new L.DrawToolbar(this.options.draw);
30
31			this._toolbars[L.DrawToolbar.TYPE] = toolbar;
32
33			// Listen for when toolbar is enabled
34			this._toolbars[L.DrawToolbar.TYPE].on('enable', this._toolbarEnabled, this);
35		}
36
37		if (L.EditToolbar && this.options.edit) {
38			toolbar = new L.EditToolbar(this.options.edit);
39
40			this._toolbars[L.EditToolbar.TYPE] = toolbar;
41
42			// Listen for when toolbar is enabled
43			this._toolbars[L.EditToolbar.TYPE].on('enable', this._toolbarEnabled, this);
44		}
45		L.toolbar = this; //set global var for editing the toolbar
46	},
47
48	// @method onAdd(): container
49	// Adds the toolbar container to the map
50	onAdd: function (map) {
51		var container = L.DomUtil.create('div', 'leaflet-draw'),
52			addedTopClass = false,
53			topClassName = 'leaflet-draw-toolbar-top',
54			toolbarContainer;
55
56		for (var toolbarId in this._toolbars) {
57			if (this._toolbars.hasOwnProperty(toolbarId)) {
58				toolbarContainer = this._toolbars[toolbarId].addToolbar(map);
59
60				if (toolbarContainer) {
61					// Add class to the first toolbar to remove the margin
62					if (!addedTopClass) {
63						if (!L.DomUtil.hasClass(toolbarContainer, topClassName)) {
64							L.DomUtil.addClass(toolbarContainer.childNodes[0], topClassName);
65						}
66						addedTopClass = true;
67					}
68
69					container.appendChild(toolbarContainer);
70				}
71			}
72		}
73
74		return container;
75	},
76
77	// @method onRemove(): void
78	// Removes the toolbars from the map toolbar container
79	onRemove: function () {
80		for (var toolbarId in this._toolbars) {
81			if (this._toolbars.hasOwnProperty(toolbarId)) {
82				this._toolbars[toolbarId].removeToolbar();
83			}
84		}
85	},
86
87	// @method setDrawingOptions(options): void
88	// Sets options to all toolbar instances
89	setDrawingOptions: function (options) {
90		for (var toolbarId in this._toolbars) {
91			if (this._toolbars[toolbarId] instanceof L.DrawToolbar) {
92				this._toolbars[toolbarId].setOptions(options);
93			}
94		}
95	},
96
97	_toolbarEnabled: function (e) {
98		var enabledToolbar = e.target;
99
100		for (var toolbarId in this._toolbars) {
101			if (this._toolbars[toolbarId] !== enabledToolbar) {
102				this._toolbars[toolbarId].disable();
103			}
104		}
105	}
106});
107
108L.Map.mergeOptions({
109	drawControlTooltips: true,
110	drawControl: false
111});
112
113L.Map.addInitHook(function () {
114	if (this.options.drawControl) {
115		this.drawControl = new L.Control.Draw();
116		this.addControl(this.drawControl);
117	}
118});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.