{"version":3,"sources":["jsdelivr-header.js","/npm/leaflet-layer-tree@1.0.0/src/L.LayerTreeControl.js"],"names":[],"mappings":"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","file":"/npm/leaflet-layer-tree@1.0.0/src/L.LayerTreeControl.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/leaflet-layer-tree@1.0.0/src/L.LayerTreeControl.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","L.Control.LayerTreeControl = L.Control.extend({\r\n  _map: null,\r\n  _layers: null,\r\n  options: {\r\n    position: \"topright\",\r\n  },\r\n  initialize: function (layers, options) {\r\n    L.Util.setOptions(this, options);\r\n\r\n    this._layers = layers;\r\n  },\r\n\r\n  onAdd: function (map) {\r\n    var container = L.DomUtil.create(\"div\", \"layer-tree-control\");\r\n    var treeContainer = L.DomUtil.create(\"div\", \"\", container);\r\n    var esriProvider = new EsriProvider(map);\r\n    var leafletProvider = new LeafletProvider(map);\r\n\r\n    this._map = map;\r\n    this._container = container;\r\n\r\n    L.DomEvent.on(container, \"wheel\", L.DomEvent.stopPropagation);\r\n\r\n    var providers = {\r\n      esri: esriProvider,\r\n      leaflet: leafletProvider,\r\n    };\r\n\r\n    var layerManager = new LayerManager(this._layers, providers, map);\r\n    var treeLeafUI = new TreeLeafUI(layerManager);\r\n\r\n    for (var i in this._layers) {\r\n      const layerObj = this._layers[i];\r\n      const layerId = L.stamp(layerObj);\r\n      const layerName = layerObj.name;\r\n\r\n      // esriDynamic type\r\n      if (layerObj.type === \"esriDynamic\") {\r\n        this._map.addLayer(layerObj.layer);\r\n        esriProvider\r\n          .getTree(layerId, layerName, layerObj.layer.options)\r\n          .then(function (layersTree) {\r\n            treeLeaf = treeLeafUI.render(layersTree, treeContainer);\r\n          });\r\n      }\r\n      // leaflet type\r\n      else if (this._layers[i].type === \"leaflet\") {\r\n        var opts = {};\r\n        if (layerObj.children || layerObj.legend) {\r\n          opts.children = layerObj.children;\r\n          opts.legend = layerObj.legend;\r\n        } else {\r\n          opts = layerObj.layer.options;\r\n          opts.layer = layerObj.layer;\r\n        }\r\n\r\n        leafletProvider\r\n          .getTree(layerId, layerName, opts)\r\n          .then(function (layersTree) {\r\n            treeLeaf = treeLeafUI.render(layersTree, treeContainer);\r\n          });\r\n      }\r\n      // esriFeature type\r\n      else if (layerObj.type === \"esriFeature\") {\r\n        this._map.addLayer(layerObj.layer);\r\n        esriProvider\r\n          .getTree(layerId, layerName, layerObj.layer.options)\r\n          .then(function (layersTree) {\r\n            treeLeaf = treeLeafUI.render(layersTree, treeContainer);\r\n          });\r\n      }\r\n    }\r\n\r\n    return this._container;\r\n  },\r\n});\r\n\r\n/**\r\n * Layer management\r\n */\r\nfunction LayerManager(layers, providers, map) {\r\n  var getLayerById = function (layerId) {\r\n    var layer;\r\n    for (var i in layers) {\r\n      layer = layers[i].layer;\r\n      if (L.stamp(layers[i]) === layerId) {\r\n        return layers[i];\r\n      }\r\n    }\r\n  };\r\n\r\n  var turnLayersMultiple = function (\r\n    layerId,\r\n    addSubLayersIds,\r\n    delSubLayersIds\r\n  ) {\r\n    var main = getLayerById(layerId);\r\n    updateActiveLayers(main, addSubLayersIds, delSubLayersIds);\r\n  };\r\n\r\n  var turnParentsOn = function (layerId, subNodeId) {\r\n    if (layerId === subNodeId) {\r\n      // no parents\r\n      return;\r\n    }\r\n    var layerNode = document.querySelectorAll('[data-id=\"' + layerId + '\"]')[0];\r\n    var layerChildNode = layerNode.nextElementSibling;\r\n    var subNode = layerChildNode.querySelectorAll(\r\n      '[data-id=\"' + subNodeId + '\"]'\r\n    )[0];\r\n\r\n    var parentId = subNode.getElementsByClassName(\"check-box\")[0].parentId;\r\n    var parentNode = layerChildNode.querySelectorAll(\r\n      '[data-id=\"' + parentId + '\"]'\r\n    )[0];\r\n\r\n    var parentCheckBox;\r\n    if (parentId !== layerId) {\r\n      parentCheckBox = parentNode.getElementsByClassName(\"check-box\")[0];\r\n    } else {\r\n      parentCheckBox = layerNode.getElementsByClassName(\"check-box\")[0];\r\n    }\r\n    parentCheckBox.checked = true;\r\n\r\n    if (parentId !== layerId) {\r\n      turnParentsOn(layerId, parentId);\r\n    }\r\n  };\r\n\r\n  var turnNodeOn = function (layerId, nodeId) {\r\n    var layerNode = document.querySelectorAll('[data-id=\"' + layerId + '\"]')[0]\r\n      .nextElementSibling;\r\n    var findInNode;\r\n\r\n    if (layerId !== nodeId) {\r\n      findInNode = layerNode.querySelectorAll('[data-id=\"' + nodeId + '\"]')[0]\r\n        .nextElementSibling;\r\n    } else findInNode = layerNode;\r\n\r\n    var allCheckboxes = findInNode.querySelectorAll(\".check-box\");\r\n\r\n    var checkState = { [nodeId]: true };\r\n    var layersOn = [];\r\n    var layersOff = [];\r\n    for (var i = 0; i < allCheckboxes.length; i++) {\r\n      var checkbox = allCheckboxes[i];\r\n      var isLeaf = L.DomUtil.hasClass(\r\n        checkbox.parentElement.parentElement,\r\n        \"leaf-header\"\r\n      )\r\n        ? true\r\n        : false;\r\n      if (isLeaf) {\r\n        if (checkState[checkbox.parentId]) {\r\n          if (checkbox.checked) {\r\n            layersOn.push(parseInt(checkbox.itemId));\r\n          }\r\n        } else {\r\n          layersOff.push(parseInt(checkbox.itemId));\r\n        }\r\n      } else {\r\n        checkState[checkbox.itemId] = checkbox.checked;\r\n      }\r\n    }\r\n\r\n    turnLayersMultiple(layerId, layersOn, layersOff);\r\n  };\r\n\r\n  var turnNodeOff = function (layerId, nodeId) {\r\n    var layerNode = document.querySelectorAll('[data-id=\"' + layerId + '\"]')[0]\r\n      .nextElementSibling;\r\n    var findInNode;\r\n\r\n    if (layerId !== nodeId) {\r\n      findInNode = layerNode.querySelectorAll('[data-id=\"' + nodeId + '\"]')[0]\r\n        .nextElementSibling;\r\n    } else findInNode = layerNode;\r\n\r\n    var allCheckboxes = findInNode.querySelectorAll(\".check-box\");\r\n    var layersOff = [];\r\n\r\n    for (var i = 0; i < allCheckboxes.length; i++) {\r\n      var checkbox = allCheckboxes[i];\r\n      var isLeaf = L.DomUtil.hasClass(\r\n        checkbox.parentElement.parentElement,\r\n        \"leaf-header\"\r\n      )\r\n        ? true\r\n        : false;\r\n      if (isLeaf && checkbox.checked) {\r\n        layersOff.push(parseInt(checkbox.itemId));\r\n      }\r\n    }\r\n    turnLayersMultiple(layerId, [], layersOff);\r\n  };\r\n\r\n  var updateActiveLayers = function (\r\n    layerObj,\r\n    addSubLayersIds,\r\n    delSubLayersIds\r\n  ) {\r\n    if (layerObj.type === \"esriDynamic\" || layerObj.type === \"esriFeature\") {\r\n      providers.esri.updateActiveLayers(\r\n        layerObj,\r\n        addSubLayersIds,\r\n        delSubLayersIds\r\n      );\r\n    } else if (layerObj.type === \"leaflet\") {\r\n      providers.leaflet.updateActiveLayers(\r\n        layerObj,\r\n        addSubLayersIds,\r\n        delSubLayersIds\r\n      );\r\n    }\r\n  };\r\n\r\n  return {\r\n    turnLayersOn: function (layerId, subLayerIds) {\r\n      turnLayersMultiple(layerId, subLayerIds, []);\r\n      turnParentsOn(layerId, subLayerIds[0]);\r\n    },\r\n    turnLayersOff: function (layerId, subLayerIds) {\r\n      turnLayersMultiple(layerId, [], subLayerIds);\r\n    },\r\n    turnNodeOn: function (layerId, nodeId) {\r\n      turnNodeOn(layerId, nodeId);\r\n      turnParentsOn(layerId, nodeId);\r\n    },\r\n    turnNodeOff: function (layerId, nodeId) {\r\n      turnNodeOff(layerId, nodeId);\r\n    },\r\n  };\r\n}\r\n\r\n/**\r\n * Render UI elements, require a normalized tree\r\n */\r\nfunction TreeLeafUI(layerManager) {\r\n  var addCheckBox = function (node, mainLayerId, container) {\r\n    var wrapper = L.DomUtil.create(\"label\", \"tree-check\", container);\r\n    var checkbox = L.DomUtil.create(\"input\", \"check-box\", wrapper);\r\n    var marker = L.DomUtil.create(\"span\", \"check-mark\", wrapper);\r\n\r\n    checkbox.type = \"checkbox\";\r\n    checkbox.itemId = node.id;\r\n    checkbox.parentId = node.parentId !== -1 ? node.parentId : mainLayerId;\r\n    checkbox.value = false;\r\n\r\n    L.DomEvent.on(\r\n      checkbox,\r\n      \"change\",\r\n      function (event) {\r\n        event.stopPropagation();\r\n        var checked = event.target.checked;\r\n        var subLayerIds = [node.id];\r\n\r\n        treeExpand(container.parentElement);\r\n\r\n        if (node.type === \"leaf\" && checked) {\r\n          layerManager.turnLayersOn(mainLayerId, subLayerIds);\r\n        } else if (node.type === \"leaf\") {\r\n          layerManager.turnLayersOff(mainLayerId, subLayerIds);\r\n        } else if (node.type === \"node\" && checked) {\r\n          layerManager.turnNodeOn(mainLayerId, node.id);\r\n        } else {\r\n          layerManager.turnNodeOff(mainLayerId, node.id);\r\n        }\r\n      },\r\n      this\r\n    );\r\n  };\r\n\r\n  var addLabel = function (title, container) {\r\n    var label = L.DomUtil.create(\"label\", \"tree-label\", container);\r\n    var labelText = L.DomUtil.create(\"span\", \"\", label);\r\n    labelText.innerHTML = title;\r\n  };\r\n\r\n  var addLegend = function (legendInfo, container, level) {\r\n    if (legendInfo === undefined) return;\r\n    // legends: Array<{label, data}>\r\n    function createLegend(legend, showLabel, dom, level) {\r\n      var content = L.DomUtil.create(\"div\", \"legend\", dom);\r\n      addLevelSpace(content, level);\r\n      var img = L.DomUtil.create(\"img\", \"legend-img\", content);\r\n      img.src = legend.imageData\r\n        ? \"data:image/jpeg;base64,\" + legend.imageData\r\n        : legend.imageUrl;\r\n      img.alt = \"legend\";\r\n\r\n      if (showLabel) {\r\n        var label = L.DomUtil.create(\"span\", \"legend-label\", content);\r\n        label.innerHTML = legend.label;\r\n      }\r\n    }\r\n    // display multiple legends in new row\r\n    var legends = legendInfo;\r\n    var isFromImage = legends.largeImageUrl !== undefined;\r\n    if (isFromImage) {\r\n\r\n      var childrenNode = container.getElementsByClassName(\"tree-children\")[0];\r\n\t\t\tvar content = L.DomUtil.create(\"div\", \"legend\", childrenNode);\r\n      addLevelSpace(content, level + 1);\r\n      var wrapper = L.DomUtil.create(\"div\", \"legend-image\", content);\r\n\r\n      var img = L.DomUtil.create(\"img\", \"image\", wrapper);\r\n      img.src = legends.largeImageUrl;\r\n    }\r\n    // multiple legend lines\r\n    else if (legends.length > 1) {\r\n      var childrenNode = container.getElementsByClassName(\"tree-children\")[0];\r\n      var wrapper = L.DomUtil.create(\"div\", \"legend-list\", childrenNode);\r\n      for (var i = 0; i < legends.length; i++) {\r\n        createLegend(legends[i], true, wrapper, level + 1);\r\n      }\r\n    }\r\n    // display single legend on same line\r\n    else {\r\n      var checkBoxNode = container.getElementsByClassName(\"check-box\")[0];\r\n      var legendSmNode = L.DomUtil.create(\"div\", \"tree-legend-sm\");\r\n      // append after\r\n      checkBoxNode.after(legendSmNode);\r\n      createLegend(legends[0], false, legendSmNode, 0);\r\n    }\r\n  };\r\n\r\n  var addTreeNode = function (container) {\r\n    var img = L.DomUtil.create(\"img\", \"tree-icon\", container);\r\n    img.src = \"images/plus.svg\";\r\n    img.alt = \"plus\";\r\n  };\r\n\r\n  var addChildrenContainer = function (container) {\r\n    var childContainer = L.DomUtil.create(\r\n      \"div\",\r\n      \"tree-children hidden\",\r\n      container\r\n    );\r\n    return childContainer;\r\n  };\r\n\r\n  var getChildrenContainer = function (nodeId, container) {\r\n    var headerNode = container.querySelectorAll(\r\n      '[data-id=\"' + nodeId + '\"]'\r\n    )[0];\r\n    var treeNode = headerNode.parentElement;\r\n    return treeNode.getElementsByClassName(\"tree-children\")[0];\r\n  };\r\n\r\n  var treeExpand = function (treeNode) {\r\n    var iconNode = treeNode.getElementsByClassName(\"tree-icon\")[0];\r\n    var childrenNode = treeNode.getElementsByClassName(\"tree-children\")[0];\r\n    if (iconNode) {\r\n      L.DomUtil.removeClass(childrenNode, \"hidden\");\r\n      iconNode.src = \"images/minus.svg\";\r\n    }\r\n  };\r\n\r\n  var treeCollapse = function (treeNode) {\r\n    var iconNode = treeNode.getElementsByClassName(\"tree-icon\")[0];\r\n    var childrenNode = treeNode.getElementsByClassName(\"tree-children\")[0];\r\n    L.DomUtil.addClass(childrenNode, \"hidden\");\r\n    iconNode.src = \"images/plus.svg\";\r\n  };\r\n\r\n  var navigateTree = function (mainLayerId, node, container, level = 1) {\r\n    if (node.type === \"leaf\") {\r\n      this.renderLeaf(node, mainLayerId, container, level);\r\n    }\r\n    //\r\n    else {\r\n      this.renderNode(node, mainLayerId, container, level);\r\n\r\n      for (var i = 0; i < node.children.length; i++) {\r\n        var childrenContainer = getChildrenContainer(node.id, container);\r\n        navigateTree.call(\r\n          this,\r\n          mainLayerId,\r\n          node.children[i],\r\n          childrenContainer,\r\n          level + 1\r\n        );\r\n      }\r\n    }\r\n  };\r\n\r\n  var addLevelSpace = function (container, total) {\r\n    for (var i = 1; i < total; i++) {\r\n      L.DomUtil.create(\"div\", \"space\", container);\r\n    }\r\n  };\r\n\r\n  return {\r\n    render(tree, container) {\r\n      var mainLayerId = tree.id;\r\n      navigateTree.call(this, mainLayerId, tree, container);\r\n    },\r\n\r\n    renderLeaf: function (node, mainLayerId, container, level) {\r\n      var leafNode = L.DomUtil.create(\"div\", \"tree-layer\", container);\r\n      var leafHeader = L.DomUtil.create(\"div\", \"leaf-header\", leafNode);\r\n      leafHeader.setAttribute(\"data-id\", node.id);\r\n      var legendInfo = node.legend;\r\n      var hasMultipleLegends =\r\n        legendInfo && (legendInfo.length > 1 || legendInfo.largeImageUrl);\r\n\r\n      addLevelSpace(leafHeader, level);\r\n      addCheckBox(node, mainLayerId, leafHeader);\r\n      if (hasMultipleLegends) {\r\n        this.renderLeafNode(node, leafHeader, leafNode);\r\n      }\r\n      addLegend(node.legend, leafNode, level);\r\n      addLabel(node.label, leafHeader);\r\n\r\n      L.DomEvent.on(leafHeader, \"click\", function (event) {\r\n        if (hasMultipleLegends === false) {\r\n          var checkBoxNode = leafHeader.getElementsByClassName(\"check-box\")[0];\r\n          var checked = checkBoxNode.checked;\r\n          checkBoxNode.checked = !checked;\r\n\r\n          var event = new Event(\"change\");\r\n          checkBoxNode.dispatchEvent(event);\r\n        }\r\n      });\r\n    },\r\n\r\n    renderLeafNode: function (node, leafHeader, leafNode) {\r\n      addTreeNode(leafHeader);\r\n      addChildrenContainer(leafNode);\r\n\r\n      L.DomEvent.on(\r\n        leafHeader,\r\n        \"click\",\r\n        function (event) {\r\n          if (event.target.classList.contains(\"check-mark\")) {\r\n            return;\r\n          }\r\n          event.stopPropagation();\r\n          var childrenNode =\r\n            leafNode.getElementsByClassName(\"tree-children\")[0];\r\n          var childrenIsHidden = L.DomUtil.hasClass(childrenNode, \"hidden\");\r\n          if (childrenIsHidden) treeExpand(leafNode);\r\n          else treeCollapse(leafNode);\r\n        },\r\n        this\r\n      );\r\n    },\r\n\r\n    renderNode: function (node, mainLayerId, container, level) {\r\n      var treeNode = L.DomUtil.create(\"div\", \"tree-node\", container);\r\n      var treeHeader = L.DomUtil.create(\"div\", \"node-header\", treeNode);\r\n      treeHeader.setAttribute(\"data-id\", node.id);\r\n\r\n      addLevelSpace(treeHeader, level);\r\n      addCheckBox(node, mainLayerId, treeHeader);\r\n      addTreeNode(treeHeader);\r\n      addLabel(node.label, treeHeader);\r\n      addChildrenContainer(treeNode);\r\n\r\n      L.DomEvent.on(\r\n        treeHeader,\r\n        \"click\",\r\n        function (event) {\r\n          if (event.target.classList.contains(\"check-mark\")) {\r\n            return;\r\n          }\r\n          var childrenNode =\r\n            treeNode.getElementsByClassName(\"tree-children\")[0];\r\n          var childrenIsHidden = L.DomUtil.hasClass(childrenNode, \"hidden\");\r\n          if (childrenIsHidden) treeExpand(treeNode);\r\n          else treeCollapse(treeNode);\r\n        },\r\n        this\r\n      );\r\n    },\r\n  };\r\n}\r\n\r\n/**\r\n * Parse esri services and return a normalized tree\r\n */\r\nfunction EsriProvider(map) {\r\n  var getService = function (url) {\r\n    return L.esri.service({\r\n      url: url,\r\n    });\r\n  };\r\n\r\n  var getLegend = function (service) {\r\n    return new Promise(function (resolve, reject) {\r\n      service.get(\"/legend\", {}, function response(err, res) {\r\n        if (err) reject(err);\r\n        else resolve(res);\r\n      });\r\n    });\r\n  };\r\n\r\n  var getInfo = function (service) {\r\n    return new Promise(function (resolve, reject) {\r\n      service.get(\"/\", {}, function response(err, res) {\r\n        if (err) reject(err);\r\n        else resolve(res);\r\n      });\r\n    });\r\n  };\r\n\r\n  var buildNode = function (layerNode) {\r\n    var node = {};\r\n    node.id = layerNode.id;\r\n    node.type = \"node\";\r\n    node.label = layerNode.name;\r\n    node.children = [];\r\n    node.parentId = layerNode.parentLayerId;\r\n\r\n    return node;\r\n  };\r\n\r\n  var buildLeaf = function (layer, legends) {\r\n    var leaf = {};\r\n    leaf.id = layer.id;\r\n    leaf.type = \"leaf\";\r\n    leaf.label = layer.name;\r\n    leaf.legend = legends[layer.id] ? legends[layer.id].legend : null;\r\n    leaf.parentId = layer.parentLayerId;\r\n\r\n    return leaf;\r\n  };\r\n\r\n  var getTree = function (subLayers, legends, current) {\r\n    if (current.subLayerIds) {\r\n      var i, child, subLayerId;\r\n      var node = buildNode(current);\r\n      var children = node.children;\r\n      for (i = 0; i < current.subLayerIds.length; i++) {\r\n        subLayerId = current.subLayerIds[i];\r\n        child = getTree(subLayers, legends, subLayers[subLayerId]);\r\n        children.push(child);\r\n      }\r\n      return node;\r\n    } else {\r\n      return buildLeaf(current, legends);\r\n    }\r\n  };\r\n\r\n  var buildMultiple = function (layerId, layerName, subLayers, legends) {\r\n    var i, tree, subTree, children;\r\n    tree = buildNode({ name: layerName });\r\n    tree.id = layerId;\r\n    children = tree.children;\r\n\r\n    for (i = 0; i < subLayers.length; i++) {\r\n      if (subLayers[i].parentLayerId === -1) {\r\n        subTree = getTree(subLayers, legends, subLayers[i]);\r\n        children.push(subTree);\r\n      }\r\n    }\r\n    return tree;\r\n  };\r\n\r\n  var buildSingle = function (layerId, layerName, legends) {\r\n    var layer = {};\r\n    layer.id = layerId;\r\n    layer.name = layerName;\r\n    var tree = buildLeaf(layer, legends);\r\n    return tree;\r\n  };\r\n\r\n  var getLayerInfo = function (serviceUrl) {\r\n    var service = getService(serviceUrl);\r\n    var legendsPromise = getLegend(service);\r\n    var infoPromise = getInfo(service);\r\n\r\n    // wait both promises\r\n    return Promise.all([legendsPromise, infoPromise]).then(function ([\r\n      legends,\r\n      info,\r\n    ]) {\r\n      var layerInfo = {};\r\n      layerInfo.legends = utils.convertToKeyValue(legends.layers, \"layerId\");\r\n      layerInfo.subLayers = info.layers;\r\n\r\n      return layerInfo;\r\n    });\r\n  };\r\n\r\n  var updateActiveLayersDynamic = function (\r\n    layerObj,\r\n    addSubLayersIds,\r\n    delSubLayersIds\r\n  ) {\r\n    var layer = layerObj.layer;\r\n    var nextLayerIds = layer.getLayers();\r\n\r\n    nextLayerIds = utils.addIfNotExists(nextLayerIds, addSubLayersIds);\r\n\r\n    for (var i in delSubLayersIds) {\r\n      nextLayerIds = nextLayerIds.filter(function (e) {\r\n        return e !== delSubLayersIds[i];\r\n      });\r\n    }\r\n\r\n    layer.setLayers(nextLayerIds);\r\n  };\r\n\r\n  var updateActiveLayersFeature = function (\r\n    layerObj,\r\n    addSubLayersIds,\r\n    delSubLayersIds\r\n  ) {\r\n    throw \"Not implemented\";\r\n  };\r\n\r\n  return {\r\n    getTree: function (layerId, layerName, options) {\r\n      var url = options.url;\r\n      return getLayerInfo(url).then(function (layerInfo) {\r\n        var subLayers = layerInfo.subLayers;\r\n        var legends = layerInfo.legends;\r\n        if (subLayers && subLayers.length > 1) {\r\n          return buildMultiple(layerId, layerName, subLayers, legends);\r\n        } else {\r\n          return buildSingle(layerId, layerName, legends);\r\n        }\r\n      });\r\n    },\r\n\r\n    updateActiveLayers: function (layerObj, addSubLayersIds, delSubLayersIds) {\r\n      if (layerObj.type === \"esriDynamic\") {\r\n        updateActiveLayersDynamic(layerObj, addSubLayersIds, delSubLayersIds);\r\n      } else {\r\n        updateActiveLayersFeature(layerObj, addSubLayersIds, delSubLayersIds);\r\n      }\r\n    },\r\n  };\r\n}\r\n\r\n/**\r\n * Parse default services and return a normalized tree\r\n */\r\nfunction LeafletProvider(map) {\r\n  var buildNode = function (layerNode) {\r\n    var node = {};\r\n    node.id = layerNode.id;\r\n    node.type = \"node\";\r\n    node.label = layerNode.name;\r\n    node.children = [];\r\n    node.parentId = layerNode.parentId;\r\n\r\n    return node;\r\n  };\r\n\r\n  var buildLeaf = function (layer, legend) {\r\n    var legendInfo;\r\n    if (legend !== undefined) {\r\n      if (Array.isArray(legend)) {\r\n        legendInfo = legend;\r\n      }\r\n      // large\r\n      else if (legend.largeImageUrl) {\r\n        legendInfo = legend;\r\n      }\r\n      // default\r\n      else {\r\n        var legendItem = {};\r\n        legendItem.imageUrl = legend;\r\n        legendInfo = [legendItem];\r\n      }\r\n    }\r\n\r\n    var leaf = {};\r\n    leaf.id = layer.id;\r\n    leaf.type = \"leaf\";\r\n    leaf.label = layer.name;\r\n    leaf.legend = legend;\r\n    leaf.parentId = layer.parentId;\r\n    leaf.legend = legendInfo;\r\n\r\n    return leaf;\r\n  };\r\n\r\n  var getTree = function (current) {\r\n    if (current.children) {\r\n      var i, child, nodeInfo;\r\n      var node = buildNode(current);\r\n      for (i = 0; i < current.children.length; i++) {\r\n        nodeInfo = current.children[i];\r\n        nodeInfo.parentId = current.id;\r\n        nodeInfo.id = createId(current.id, i);\r\n        child = getTree(nodeInfo);\r\n        node.children.push(child);\r\n      }\r\n      return node;\r\n    } else {\r\n      // check legend\r\n      var legend = current.legend;\r\n      if (legend === undefined) {\r\n        legend = getLegend(current.layer);\r\n      }\r\n      return buildLeaf(current, legend);\r\n    }\r\n  };\r\n\r\n  var getLegend = function (layer) {\r\n    if (layer._url !== undefined) {\r\n\t\t\tvar serviceLayers = \"\";\r\n\t\t\tif (layer.wmsParams) {\r\n\t\t\t\tserviceLayers = layer.wmsParams.layers\r\n\t\t\t}\r\n\t\t\t\r\n      var url = new URL(layer._url);\r\n\t\t\turl.searchParams.set(\"service\", \"WMS\");\r\n      url.searchParams.set(\"request\", \"GetLegendGraphic\");\r\n      url.searchParams.set(\"format\", \"image/png\");\r\n      url.searchParams.set(\"layer\", serviceLayers);\r\n\r\n      var legend = {};\r\n      legend.largeImageUrl = `${url.toString()}`;\r\n      return legend;\r\n    }\r\n    // default\r\n    return undefined;\r\n  };\r\n\r\n  var createId = function (mainId, id) {\r\n    return mainId * 1000 + id;\r\n  };\r\n\r\n  var getLayersFromTree = function (ids, tree) {\r\n    if (ids.indexOf(tree.id) !== -1) {\r\n      return [tree.layer];\r\n    }\r\n    var layers = [];\r\n    for (var i in tree.children) {\r\n      // prune predicate\r\n      if (layers.length !== ids.length) {\r\n        layers = layers.concat(getLayersFromTree(ids, tree.children[i]));\r\n      }\r\n    }\r\n    return layers;\r\n  };\r\n\r\n  var addLayers = function (layers) {\r\n    for (var i in layers) {\r\n      map.addLayer(layers[i]);\r\n    }\r\n  };\r\n\r\n  var removeLayers = function (layers) {\r\n    for (var i in layers) {\r\n      map.removeLayer(layers[i]);\r\n    }\r\n  };\r\n\r\n  return {\r\n    getTree: function (layerId, layerName, options) {\r\n      if (options.children) {\r\n        var i, tree, subTree, nodeInfo, children;\r\n\r\n        tree = buildNode({ name: layerName, id: layerId });\r\n        children = tree.children;\r\n\r\n        for (i = 0; i < options.children.length; i++) {\r\n          nodeInfo = options.children[i];\r\n          nodeInfo.parentId = layerId;\r\n          nodeInfo.id = createId(layerId, i);\r\n          subTree = getTree(nodeInfo, {});\r\n          children.push(subTree);\r\n        }\r\n        return new Promise(function (resolve) {\r\n          resolve(tree);\r\n        });\r\n      }\r\n\r\n      if (!options.legend) {\r\n        options.legend = getLegend(options.layer);\r\n      }\r\n      return new Promise(function (resolve) {\r\n        var layerInfo = {};\r\n        layerInfo.id = layerId;\r\n        layerInfo.name = layerName;\r\n\r\n        var leaf = buildLeaf(layerInfo, options.legend);\r\n        resolve(leaf);\r\n      });\r\n    },\r\n\r\n    updateActiveLayers: function (layerObj, addSubLayersIds, delSubLayersIds) {\r\n      if (layerObj.children) {\r\n        var add = getLayersFromTree(addSubLayersIds, layerObj);\r\n        var remove = getLayersFromTree(delSubLayersIds, layerObj);\r\n\r\n        removeLayers(remove);\r\n        addLayers(add);\r\n      }\r\n      // single layer\r\n      else {\r\n        if (addSubLayersIds.length !== 0) addLayers([layerObj.layer]);\r\n        else removeLayers([layerObj.layer]);\r\n      }\r\n    },\r\n  };\r\n}\r\n\r\nvar utils = {\r\n  convertToKeyValue: function (values, keyField) {\r\n    var i,\r\n      key,\r\n      obj = {};\r\n    for (i in values) {\r\n      key = values[i][keyField];\r\n      obj[key] = values[i];\r\n    }\r\n    return obj;\r\n  },\r\n\r\n  addIfNotExists: function (array, items) {\r\n    for (var i in items) {\r\n      array = array\r\n        .filter(function (e) {\r\n          return e !== items[i];\r\n        })\r\n        .concat([items[i]]);\r\n    }\r\n    return array;\r\n  },\r\n};\r\n\r\nL.control.layerTreeControl = function (layers, options) {\r\n  return new L.Control.LayerTreeControl(layers, options);\r\n};\r\n"]}