nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit 400232b800cb8f183d5524109bf9cafa643c8192
parent c28a1ef57a405645ed00fe37d2a30e79b0a71b35
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Fri,  5 Dec 2025 16:54:50 +0100

leaflet.control.layers.configure: refactor layers listsing

Introduce new function for listing builtin and custom layers

Diffstat:
Msrc/lib/leaflet.control.layers.configure/index.js | 14+++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/lib/leaflet.control.layers.configure/index.js b/src/lib/leaflet.control.layers.configure/index.js @@ -152,6 +152,10 @@ function enableConfig(control, {layers, customLayersOrder}) { return container; }, + allLayers: function() { + return [...this._builtinLayers, ...this._customLayers]; + }, + __injectConfigButton: function() { const configButton = L.DomUtil.create('div', 'button icon-settings'); configButton.title = 'Configure layers'; @@ -231,7 +235,7 @@ function enableConfig(control, {layers, customLayersOrder}) { layersSettingsByCode[it.code] = it; }); - for (let layer of [...this._builtinLayers, ...this._customLayers]) { + for (let layer of this.allLayers()) { const layerSettings = layersSettingsByCode[layer.layer.options.code] ?? {}; // if storage is empty enable only default layers // if new default layer appears it will be enabled @@ -283,12 +287,12 @@ function enableConfig(control, {layers, customLayersOrder}) { }, updateLayersListControl: function(addedLayers) { - const disabledLayers = [...this._builtinLayers, ...this._customLayers].filter((l) => !l.enabled); + const disabledLayers = this.allLayers().filter((l) => !l.enabled); disabledLayers.forEach((l) => this._map.removeLayer(l.layer)); [...this._layers].forEach((l) => this.removeLayer(l.layer)); let hasBaselayerOnMap = false; - const enabledLayers = [...this._builtinLayers, ...this._customLayers].filter((l) => l.enabled); + const enabledLayers = this.allLayers().filter((l) => l.enabled); enabledLayers.sort((l1, l2) => l1.order - l2.order); enabledLayers.forEach((l) => { l.layer._justAdded = addedLayers && addedLayers.includes(l); @@ -322,7 +326,7 @@ function enableConfig(control, {layers, customLayersOrder}) { saveSettings: function() { const layersSettings = []; - for (let layer of [...this._builtinLayers, ...this._customLayers]) { + for (let layer of this.allLayers()) { layersSettings.push({ code: layer.layer.options.code, isCustom: layer.isCustom, @@ -339,7 +343,7 @@ function enableConfig(control, {layers, customLayersOrder}) { let newCode = this.loadCustomLayerFromString(code); return newCode || code; }); - for (let layer of [...this._builtinLayers, ...this._customLayers]) { + for (let layer of this.allLayers()) { if (layer.layer.options && values.includes(layer.layer.options.code)) { layer.enabled = true; }