@antv/l7-component 2.5.21 → 2.5.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es/control/layer.js
CHANGED
|
@@ -170,8 +170,6 @@ var Layers = function (_Control) {
|
|
|
170
170
|
_this4.addLayer(baseLayers[name], name, false);
|
|
171
171
|
});
|
|
172
172
|
Object.keys(overlayers).forEach(function (name, index) {
|
|
173
|
-
overlayers[name].once('inited', _this4.update);
|
|
174
|
-
|
|
175
173
|
_this4.addLayer(overlayers[name], name, true);
|
|
176
174
|
});
|
|
177
175
|
}
|
package/es/control/layer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/layer.ts"],"names":["PositionType","bindAll","DOM","Control","Layers","cfg","layerControlInputs","layers","lastZIndex","handlingClick","initLayers","collapsed","position","TOPRIGHT","autoZIndex","hideSingleBase","sortLayers","name","initLayout","update","mapsService","on","checkDisabledLayers","forEach","layerItem","layer","onLayerChange","container","addLayer","renderService","getViewportSize","height","addClass","form","style","acceptableHeight","offsetTop","clientHeight","removeClass","off","collapse","className","create","controlOption","setAttribute","addEventListener","expand","layersLink","link","title","baseLayersList","separator","overlaysList","appendChild","baseLayers","overlayers","Object","keys","index","once","empty","baseLayersPresent","overlaysPresent","i","obj","baseLayersCount","length","addItem","overlay","display","inputs","input","zoom","getZoom","layerService","getLayer","layerId","inited","minZoom","getMinZoom","maxZoom","getMaxZoom","disabled","push","sortFunction","sort","a","b","setZIndex","expandIfNotCollapsed","e","target","type","emit","checked","radioHtml","radioFragment","document","createElement","innerHTML","firstChild","label","id","isVisible","defaultChecked","createRadioElement","onInputClick","holder","addedLayers","removedLayers","l","hide","show"],"mappings":"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","sourcesContent":["import { IControlOption, PositionName, PositionType } from '@antv/l7-core';\nimport { bindAll, DOM, lnglatDistance } from '@antv/l7-utils';\nimport Control from './BaseControl';\nexport interface ILayerControlOption extends IControlOption {\n collapsed: boolean;\n autoZIndex: boolean;\n hideSingleBase: boolean;\n sortLayers: boolean;\n\n sortFunction: (...args: any[]) => any;\n}\ninterface IInputItem extends HTMLInputElement {\n layerId: string;\n}\nexport default class Layers extends Control {\n private layerControlInputs: any[];\n private layers: any[];\n private lastZIndex: number;\n private handlingClick: boolean;\n private layersLink: HTMLElement;\n private baseLayersList: HTMLElement;\n private separator: HTMLElement;\n private overlaysList: HTMLElement;\n private form: HTMLElement;\n\n constructor(cfg: Partial<ILayerControlOption>) {\n super(cfg);\n this.layerControlInputs = [];\n this.layers = [];\n this.lastZIndex = 0;\n this.handlingClick = false;\n this.initLayers();\n\n bindAll(\n [\n 'checkDisabledLayers',\n 'onLayerChange',\n 'collapse',\n 'extend',\n 'expand',\n 'onInputClick',\n ],\n this,\n );\n }\n\n public getDefault() {\n return {\n collapsed: true,\n position: PositionType.TOPRIGHT,\n autoZIndex: true,\n hideSingleBase: false,\n sortLayers: false,\n name: 'layers',\n };\n }\n public onAdd() {\n this.initLayout();\n this.update();\n this.mapsService.on('zoomend', this.checkDisabledLayers);\n this.layers.forEach((layerItem) => {\n layerItem.layer.on('remove', this.onLayerChange);\n layerItem.layer.on('add', this.onLayerChange);\n });\n return this.container;\n }\n\n public addVisualLayer(layer: any, name: string | number) {\n this.addLayer(layer, name, true);\n return this.mapsService ? this.update() : this;\n }\n public expand() {\n const { height } = this.renderService.getViewportSize();\n DOM.addClass(this.container, 'l7-control-layers-expanded');\n this.form.style.height = 'null';\n const acceptableHeight = height - (this.container.offsetTop + 50);\n if (acceptableHeight < this.form.clientHeight) {\n DOM.addClass(this.form, 'l7-control-layers-scrollbar');\n this.form.style.height = acceptableHeight + 'px';\n } else {\n DOM.removeClass(this.form, 'l7-control-layers-scrollbar');\n }\n this.checkDisabledLayers();\n return this;\n }\n\n public collapse() {\n DOM.removeClass(this.container, 'l7-control-layers-expanded');\n return this;\n }\n\n public onRemove() {\n if (!this.mapsService) {\n return;\n }\n this.mapsService.off('click', this.collapse);\n this.layers.forEach((layerItem) => {\n layerItem.layer.off('remove', this.onLayerChange);\n layerItem.layer.off('add', this.onLayerChange);\n });\n }\n private initLayout() {\n const className = 'l7-control-layers';\n const container = (this.container = DOM.create('div', className));\n const { collapsed } = this.controlOption;\n // makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\n container.setAttribute('aria-haspopup', 'true');\n const form = (this.form = DOM.create(\n 'form',\n className + '-list',\n ) as HTMLElement);\n\n if (collapsed) {\n this.mapsService.on('click', this.collapse);\n container.addEventListener('mouseenter', this.expand);\n container.addEventListener('mouseleave', this.collapse);\n }\n\n this.layersLink = DOM.create('a', className + '-toggle', container);\n const link = this.layersLink;\n // link.href = '#';\n link.title = 'Layers';\n if (!collapsed) {\n this.expand();\n }\n this.baseLayersList = DOM.create('div', className + '-base', form);\n this.separator = DOM.create('div', className + '-separator', form);\n this.overlaysList = DOM.create('div', className + '-overlays', form);\n container.appendChild(form);\n }\n private initLayers() {\n const { baseLayers = {}, overlayers = {} } = this.controlOption;\n Object.keys(baseLayers).forEach((name: string, index: number) => {\n // baseLayers[name].once('inited', this.update);\n this.addLayer(baseLayers[name], name, false);\n });\n Object.keys(overlayers).forEach((name: any, index: number) => {\n overlayers[name].once('inited', this.update);\n this.addLayer(overlayers[name], name, true);\n });\n }\n\n private update() {\n if (!this.container) {\n return this;\n }\n\n DOM.empty(this.baseLayersList);\n DOM.empty(this.overlaysList);\n\n this.layerControlInputs = [];\n let baseLayersPresent;\n let overlaysPresent;\n let i;\n let obj;\n let baseLayersCount = 0;\n\n for (i = 0; i < this.layers.length; i++) {\n obj = this.layers[i];\n this.addItem(obj);\n overlaysPresent = overlaysPresent || obj.overlay;\n baseLayersPresent = baseLayersPresent || !obj.overlay;\n baseLayersCount += !obj.overlay ? 1 : 0;\n }\n\n // Hide base layers section if there's only one layer.\n if (this.controlOption.hideSingleBase) {\n baseLayersPresent = baseLayersPresent && baseLayersCount > 1;\n this.baseLayersList.style.display = baseLayersPresent ? '' : 'none';\n }\n\n this.separator.style.display =\n overlaysPresent && baseLayersPresent ? '' : 'none';\n\n return this;\n }\n\n private checkDisabledLayers() {\n const inputs = this.layerControlInputs;\n let input: IInputItem;\n let layer;\n const zoom = this.mapsService.getZoom();\n\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n\n if (layer && layer.inited) {\n const minZoom = layer.getMinZoom();\n const maxZoom = layer.getMaxZoom();\n\n input.disabled = zoom < minZoom || zoom > maxZoom;\n }\n }\n }\n\n private addLayer(layer: any, name: string | number, overlay: boolean) {\n if (this.mapsService) {\n layer.on('add', this.onLayerChange);\n layer.on('remove', this.onLayerChange);\n }\n this.layers.push({\n layer,\n name,\n overlay,\n });\n const { sortLayers, sortFunction, autoZIndex } = this.controlOption;\n if (sortLayers) {\n this.layers.sort((a, b) => {\n return sortFunction(a.layer, b.layer, a.name, b.name);\n });\n }\n\n if (autoZIndex && layer.setZIndex) {\n this.lastZIndex++;\n layer.setZIndex(this.lastZIndex);\n }\n\n this.expandIfNotCollapsed();\n }\n\n private expandIfNotCollapsed() {\n if (this.mapsService && !this.controlOption.collapsed) {\n this.expand();\n }\n return this;\n }\n\n private onLayerChange(e: any) {\n if (!this.handlingClick) {\n this.update();\n }\n\n const obj = this.layerService.getLayer(e.target.layerId);\n\n // @ts-ignore\n const type = obj?.overlay\n ? e.type === 'add'\n ? 'overlayadd'\n : 'overlayremove'\n : e.type === 'add'\n ? 'baselayerchange'\n : null;\n\n if (type) {\n this.emit(type, obj);\n }\n }\n\n private createRadioElement(name: string, checked: boolean): ChildNode {\n const radioHtml =\n '<input type=\"radio\" class=\"l7-control-layers-selector\" name=\"' +\n name +\n '\"' +\n (checked ? ' checked=\"checked\"' : '') +\n '/>';\n\n const radioFragment = document.createElement('div');\n radioFragment.innerHTML = radioHtml;\n\n return radioFragment.firstChild as ChildNode;\n }\n\n private addItem(obj: any) {\n const label = document.createElement('label');\n const layer = this.layerService.getLayer(obj.layer.id);\n const checked = layer && layer.inited && obj.layer.isVisible();\n let input: IInputItem;\n if (obj.overlay) {\n input = document.createElement('input') as IInputItem;\n input.type = 'checkbox';\n input.className = 'l7-control-layers-selector';\n input.defaultChecked = checked;\n } else {\n input = this.createRadioElement('l7-base-layers', checked) as IInputItem;\n }\n this.layerControlInputs.push(input);\n input.layerId = obj.layer.id;\n input.addEventListener('click', this.onInputClick);\n\n const name = document.createElement('span');\n name.innerHTML = ' ' + obj.name;\n\n const holder = document.createElement('div');\n\n label.appendChild(holder);\n holder.appendChild(input);\n holder.appendChild(name);\n\n const container = obj.overlay ? this.overlaysList : this.baseLayersList;\n container.appendChild(label);\n\n this.checkDisabledLayers();\n return label;\n }\n\n private onInputClick() {\n const inputs = this.layerControlInputs;\n let input;\n let layer;\n const addedLayers = [];\n const removedLayers = [];\n this.handlingClick = true;\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n if (input.checked) {\n addedLayers.push(layer);\n } else if (!input.checked) {\n removedLayers.push(layer);\n }\n }\n removedLayers.forEach((l: any) => {\n l.hide();\n });\n addedLayers.forEach((l: any) => {\n l.show();\n });\n\n this.handlingClick = false;\n }\n}\n"],"file":"layer.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/control/layer.ts"],"names":["PositionType","bindAll","DOM","Control","Layers","cfg","layerControlInputs","layers","lastZIndex","handlingClick","initLayers","collapsed","position","TOPRIGHT","autoZIndex","hideSingleBase","sortLayers","name","initLayout","update","mapsService","on","checkDisabledLayers","forEach","layerItem","layer","onLayerChange","container","addLayer","renderService","getViewportSize","height","addClass","form","style","acceptableHeight","offsetTop","clientHeight","removeClass","off","collapse","className","create","controlOption","setAttribute","addEventListener","expand","layersLink","link","title","baseLayersList","separator","overlaysList","appendChild","baseLayers","overlayers","Object","keys","index","empty","baseLayersPresent","overlaysPresent","i","obj","baseLayersCount","length","addItem","overlay","display","inputs","input","zoom","getZoom","layerService","getLayer","layerId","inited","minZoom","getMinZoom","maxZoom","getMaxZoom","disabled","push","sortFunction","sort","a","b","setZIndex","expandIfNotCollapsed","e","target","type","emit","checked","radioHtml","radioFragment","document","createElement","innerHTML","firstChild","label","id","isVisible","defaultChecked","createRadioElement","onInputClick","holder","addedLayers","removedLayers","l","hide","show"],"mappings":"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","sourcesContent":["import { IControlOption, PositionName, PositionType } from '@antv/l7-core';\nimport { bindAll, DOM, lnglatDistance } from '@antv/l7-utils';\nimport Control from './BaseControl';\nexport interface ILayerControlOption extends IControlOption {\n collapsed: boolean;\n autoZIndex: boolean;\n hideSingleBase: boolean;\n sortLayers: boolean;\n\n sortFunction: (...args: any[]) => any;\n}\ninterface IInputItem extends HTMLInputElement {\n layerId: string;\n}\nexport default class Layers extends Control {\n private layerControlInputs: any[];\n private layers: any[];\n private lastZIndex: number;\n private handlingClick: boolean;\n private layersLink: HTMLElement;\n private baseLayersList: HTMLElement;\n private separator: HTMLElement;\n private overlaysList: HTMLElement;\n private form: HTMLElement;\n\n constructor(cfg: Partial<ILayerControlOption>) {\n super(cfg);\n this.layerControlInputs = [];\n this.layers = [];\n this.lastZIndex = 0;\n this.handlingClick = false;\n this.initLayers();\n\n bindAll(\n [\n 'checkDisabledLayers',\n 'onLayerChange',\n 'collapse',\n 'extend',\n 'expand',\n 'onInputClick',\n ],\n this,\n );\n }\n\n public getDefault() {\n return {\n collapsed: true,\n position: PositionType.TOPRIGHT,\n autoZIndex: true,\n hideSingleBase: false,\n sortLayers: false,\n name: 'layers',\n };\n }\n public onAdd() {\n this.initLayout();\n this.update();\n this.mapsService.on('zoomend', this.checkDisabledLayers);\n this.layers.forEach((layerItem) => {\n layerItem.layer.on('remove', this.onLayerChange);\n layerItem.layer.on('add', this.onLayerChange);\n });\n return this.container;\n }\n\n public addVisualLayer(layer: any, name: string | number) {\n this.addLayer(layer, name, true);\n return this.mapsService ? this.update() : this;\n }\n public expand() {\n const { height } = this.renderService.getViewportSize();\n DOM.addClass(this.container, 'l7-control-layers-expanded');\n this.form.style.height = 'null';\n const acceptableHeight = height - (this.container.offsetTop + 50);\n if (acceptableHeight < this.form.clientHeight) {\n DOM.addClass(this.form, 'l7-control-layers-scrollbar');\n this.form.style.height = acceptableHeight + 'px';\n } else {\n DOM.removeClass(this.form, 'l7-control-layers-scrollbar');\n }\n this.checkDisabledLayers();\n return this;\n }\n\n public collapse() {\n DOM.removeClass(this.container, 'l7-control-layers-expanded');\n return this;\n }\n\n public onRemove() {\n if (!this.mapsService) {\n return;\n }\n this.mapsService.off('click', this.collapse);\n this.layers.forEach((layerItem) => {\n layerItem.layer.off('remove', this.onLayerChange);\n layerItem.layer.off('add', this.onLayerChange);\n });\n }\n private initLayout() {\n const className = 'l7-control-layers';\n const container = (this.container = DOM.create('div', className));\n const { collapsed } = this.controlOption;\n // makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\n container.setAttribute('aria-haspopup', 'true');\n const form = (this.form = DOM.create(\n 'form',\n className + '-list',\n ) as HTMLElement);\n\n if (collapsed) {\n this.mapsService.on('click', this.collapse);\n container.addEventListener('mouseenter', this.expand);\n container.addEventListener('mouseleave', this.collapse);\n }\n\n this.layersLink = DOM.create('a', className + '-toggle', container);\n const link = this.layersLink;\n // link.href = '#';\n link.title = 'Layers';\n if (!collapsed) {\n this.expand();\n }\n this.baseLayersList = DOM.create('div', className + '-base', form);\n this.separator = DOM.create('div', className + '-separator', form);\n this.overlaysList = DOM.create('div', className + '-overlays', form);\n container.appendChild(form);\n }\n private initLayers() {\n const { baseLayers = {}, overlayers = {} } = this.controlOption;\n Object.keys(baseLayers).forEach((name: string, index: number) => {\n // baseLayers[name].once('inited', this.update);\n this.addLayer(baseLayers[name], name, false);\n });\n Object.keys(overlayers).forEach((name: any, index: number) => {\n // overlayers[name].once('inited', this.update);\n this.addLayer(overlayers[name], name, true);\n });\n }\n\n private update() {\n if (!this.container) {\n return this;\n }\n\n DOM.empty(this.baseLayersList);\n DOM.empty(this.overlaysList);\n\n this.layerControlInputs = [];\n let baseLayersPresent;\n let overlaysPresent;\n let i;\n let obj;\n let baseLayersCount = 0;\n\n for (i = 0; i < this.layers.length; i++) {\n obj = this.layers[i];\n this.addItem(obj);\n overlaysPresent = overlaysPresent || obj.overlay;\n baseLayersPresent = baseLayersPresent || !obj.overlay;\n baseLayersCount += !obj.overlay ? 1 : 0;\n }\n\n // Hide base layers section if there's only one layer.\n if (this.controlOption.hideSingleBase) {\n baseLayersPresent = baseLayersPresent && baseLayersCount > 1;\n this.baseLayersList.style.display = baseLayersPresent ? '' : 'none';\n }\n\n this.separator.style.display =\n overlaysPresent && baseLayersPresent ? '' : 'none';\n\n return this;\n }\n\n private checkDisabledLayers() {\n const inputs = this.layerControlInputs;\n let input: IInputItem;\n let layer;\n const zoom = this.mapsService.getZoom();\n\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n\n if (layer && layer.inited) {\n const minZoom = layer.getMinZoom();\n const maxZoom = layer.getMaxZoom();\n\n input.disabled = zoom < minZoom || zoom > maxZoom;\n }\n }\n }\n\n private addLayer(layer: any, name: string | number, overlay: boolean) {\n if (this.mapsService) {\n layer.on('add', this.onLayerChange);\n layer.on('remove', this.onLayerChange);\n }\n this.layers.push({\n layer,\n name,\n overlay,\n });\n const { sortLayers, sortFunction, autoZIndex } = this.controlOption;\n if (sortLayers) {\n this.layers.sort((a, b) => {\n return sortFunction(a.layer, b.layer, a.name, b.name);\n });\n }\n\n if (autoZIndex && layer.setZIndex) {\n this.lastZIndex++;\n layer.setZIndex(this.lastZIndex);\n }\n\n this.expandIfNotCollapsed();\n }\n\n private expandIfNotCollapsed() {\n if (this.mapsService && !this.controlOption.collapsed) {\n this.expand();\n }\n return this;\n }\n\n private onLayerChange(e: any) {\n if (!this.handlingClick) {\n this.update();\n }\n\n const obj = this.layerService.getLayer(e.target.layerId);\n\n // @ts-ignore\n const type = obj?.overlay\n ? e.type === 'add'\n ? 'overlayadd'\n : 'overlayremove'\n : e.type === 'add'\n ? 'baselayerchange'\n : null;\n\n if (type) {\n this.emit(type, obj);\n }\n }\n\n private createRadioElement(name: string, checked: boolean): ChildNode {\n const radioHtml =\n '<input type=\"radio\" class=\"l7-control-layers-selector\" name=\"' +\n name +\n '\"' +\n (checked ? ' checked=\"checked\"' : '') +\n '/>';\n\n const radioFragment = document.createElement('div');\n radioFragment.innerHTML = radioHtml;\n\n return radioFragment.firstChild as ChildNode;\n }\n\n private addItem(obj: any) {\n const label = document.createElement('label');\n const layer = this.layerService.getLayer(obj.layer.id);\n const checked = layer && layer.inited && obj.layer.isVisible();\n let input: IInputItem;\n if (obj.overlay) {\n input = document.createElement('input') as IInputItem;\n input.type = 'checkbox';\n input.className = 'l7-control-layers-selector';\n input.defaultChecked = checked;\n } else {\n input = this.createRadioElement('l7-base-layers', checked) as IInputItem;\n }\n this.layerControlInputs.push(input);\n input.layerId = obj.layer.id;\n input.addEventListener('click', this.onInputClick);\n\n const name = document.createElement('span');\n name.innerHTML = ' ' + obj.name;\n\n const holder = document.createElement('div');\n\n label.appendChild(holder);\n holder.appendChild(input);\n holder.appendChild(name);\n\n const container = obj.overlay ? this.overlaysList : this.baseLayersList;\n container.appendChild(label);\n\n this.checkDisabledLayers();\n return label;\n }\n\n private onInputClick() {\n const inputs = this.layerControlInputs;\n let input;\n let layer;\n const addedLayers = [];\n const removedLayers = [];\n this.handlingClick = true;\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n if (input.checked) {\n addedLayers.push(layer);\n } else if (!input.checked) {\n removedLayers.push(layer);\n }\n }\n removedLayers.forEach((l: any) => {\n l.hide();\n });\n addedLayers.forEach((l: any) => {\n l.show();\n });\n\n this.handlingClick = false;\n }\n}\n"],"file":"layer.js"}
|
package/lib/control/layer.js
CHANGED
|
@@ -182,8 +182,6 @@ var Layers = function (_Control) {
|
|
|
182
182
|
_this4.addLayer(baseLayers[name], name, false);
|
|
183
183
|
});
|
|
184
184
|
Object.keys(overlayers).forEach(function (name, index) {
|
|
185
|
-
overlayers[name].once('inited', _this4.update);
|
|
186
|
-
|
|
187
185
|
_this4.addLayer(overlayers[name], name, true);
|
|
188
186
|
});
|
|
189
187
|
}
|
package/lib/control/layer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/control/layer.ts"],"names":["Layers","cfg","layerControlInputs","layers","lastZIndex","handlingClick","initLayers","collapsed","position","PositionType","TOPRIGHT","autoZIndex","hideSingleBase","sortLayers","name","initLayout","update","mapsService","on","checkDisabledLayers","forEach","layerItem","layer","onLayerChange","container","addLayer","renderService","getViewportSize","height","DOM","addClass","form","style","acceptableHeight","offsetTop","clientHeight","removeClass","off","collapse","className","create","controlOption","setAttribute","addEventListener","expand","layersLink","link","title","baseLayersList","separator","overlaysList","appendChild","baseLayers","overlayers","Object","keys","index","once","empty","baseLayersPresent","overlaysPresent","i","obj","baseLayersCount","length","addItem","overlay","display","inputs","input","zoom","getZoom","layerService","getLayer","layerId","inited","minZoom","getMinZoom","maxZoom","getMaxZoom","disabled","push","sortFunction","sort","a","b","setZIndex","expandIfNotCollapsed","e","target","type","emit","checked","radioHtml","radioFragment","document","createElement","innerHTML","firstChild","label","id","isVisible","defaultChecked","createRadioElement","onInputClick","holder","addedLayers","removedLayers","l","hide","show","Control"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAYqBA,M;;;;;AAWnB,kBAAYC,GAAZ,EAA+C;AAAA;;AAAA;AAC7C,8BAAMA,GAAN;AAD6C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAE7C,UAAKC,kBAAL,GAA0B,EAA1B;AACA,UAAKC,MAAL,GAAc,EAAd;AACA,UAAKC,UAAL,GAAkB,CAAlB;AACA,UAAKC,aAAL,GAAqB,KAArB;;AACA,UAAKC,UAAL;;AAEA,0BACE,CACE,qBADF,EAEE,eAFF,EAGE,UAHF,EAIE,QAJF,EAKE,QALF,EAME,cANF,CADF;AAR6C;AAmB9C;;;;WAED,sBAAoB;AAClB,aAAO;AACLC,QAAAA,SAAS,EAAE,IADN;AAELC,QAAAA,QAAQ,EAAEC,qBAAaC,QAFlB;AAGLC,QAAAA,UAAU,EAAE,IAHP;AAILC,QAAAA,cAAc,EAAE,KAJX;AAKLC,QAAAA,UAAU,EAAE,KALP;AAMLC,QAAAA,IAAI,EAAE;AAND,OAAP;AAQD;;;WACD,iBAAe;AAAA;;AACb,WAAKC,UAAL;AACA,WAAKC,MAAL;AACA,WAAKC,WAAL,CAAiBC,EAAjB,CAAoB,SAApB,EAA+B,KAAKC,mBAApC;AACA,WAAKhB,MAAL,CAAYiB,OAAZ,CAAoB,UAACC,SAAD,EAAe;AACjCA,QAAAA,SAAS,CAACC,KAAV,CAAgBJ,EAAhB,CAAmB,QAAnB,EAA6B,MAAI,CAACK,aAAlC;AACAF,QAAAA,SAAS,CAACC,KAAV,CAAgBJ,EAAhB,CAAmB,KAAnB,EAA0B,MAAI,CAACK,aAA/B;AACD,OAHD;AAIA,aAAO,KAAKC,SAAZ;AACD;;;WAED,wBAAsBF,KAAtB,EAAkCR,IAAlC,EAAyD;AACvD,WAAKW,QAAL,CAAcH,KAAd,EAAqBR,IAArB,EAA2B,IAA3B;AACA,aAAO,KAAKG,WAAL,GAAmB,KAAKD,MAAL,EAAnB,GAAmC,IAA1C;AACD;;;WACD,kBAAgB;AACd,kCAAmB,KAAKU,aAAL,CAAmBC,eAAnB,EAAnB;AAAA,UAAQC,MAAR,yBAAQA,MAAR;;AACAC,mBAAIC,QAAJ,CAAa,KAAKN,SAAlB,EAA6B,4BAA7B;;AACA,WAAKO,IAAL,CAAUC,KAAV,CAAgBJ,MAAhB,GAAyB,MAAzB;AACA,UAAMK,gBAAgB,GAAGL,MAAM,IAAI,KAAKJ,SAAL,CAAeU,SAAf,GAA2B,EAA/B,CAA/B;;AACA,UAAID,gBAAgB,GAAG,KAAKF,IAAL,CAAUI,YAAjC,EAA+C;AAC7CN,qBAAIC,QAAJ,CAAa,KAAKC,IAAlB,EAAwB,6BAAxB;;AACA,aAAKA,IAAL,CAAUC,KAAV,CAAgBJ,MAAhB,GAAyBK,gBAAgB,GAAG,IAA5C;AACD,OAHD,MAGO;AACLJ,qBAAIO,WAAJ,CAAgB,KAAKL,IAArB,EAA2B,6BAA3B;AACD;;AACD,WAAKZ,mBAAL;AACA,aAAO,IAAP;AACD;;;WAED,oBAAkB;AAChBU,mBAAIO,WAAJ,CAAgB,KAAKZ,SAArB,EAAgC,4BAAhC;;AACA,aAAO,IAAP;AACD;;;WAED,oBAAkB;AAAA;;AAChB,UAAI,CAAC,KAAKP,WAAV,EAAuB;AACrB;AACD;;AACD,WAAKA,WAAL,CAAiBoB,GAAjB,CAAqB,OAArB,EAA8B,KAAKC,QAAnC;AACA,WAAKnC,MAAL,CAAYiB,OAAZ,CAAoB,UAACC,SAAD,EAAe;AACjCA,QAAAA,SAAS,CAACC,KAAV,CAAgBe,GAAhB,CAAoB,QAApB,EAA8B,MAAI,CAACd,aAAnC;AACAF,QAAAA,SAAS,CAACC,KAAV,CAAgBe,GAAhB,CAAoB,KAApB,EAA2B,MAAI,CAACd,aAAhC;AACD,OAHD;AAID;;;WACD,sBAAqB;AACnB,UAAMgB,SAAS,GAAG,mBAAlB;;AACA,UAAMf,SAAS,GAAI,KAAKA,SAAL,GAAiBK,aAAIW,MAAJ,CAAW,KAAX,EAAkBD,SAAlB,CAApC;;AACA,UAAQhC,SAAR,GAAsB,KAAKkC,aAA3B,CAAQlC,SAAR;AAEAiB,MAAAA,SAAS,CAACkB,YAAV,CAAuB,eAAvB,EAAwC,MAAxC;;AACA,UAAMX,IAAI,GAAI,KAAKA,IAAL,GAAYF,aAAIW,MAAJ,CACxB,MADwB,EAExBD,SAAS,GAAG,OAFY,CAA1B;;AAKA,UAAIhC,SAAJ,EAAe;AACb,aAAKU,WAAL,CAAiBC,EAAjB,CAAoB,OAApB,EAA6B,KAAKoB,QAAlC;AACAd,QAAAA,SAAS,CAACmB,gBAAV,CAA2B,YAA3B,EAAyC,KAAKC,MAA9C;AACApB,QAAAA,SAAS,CAACmB,gBAAV,CAA2B,YAA3B,EAAyC,KAAKL,QAA9C;AACD;;AAED,WAAKO,UAAL,GAAkBhB,aAAIW,MAAJ,CAAW,GAAX,EAAgBD,SAAS,GAAG,SAA5B,EAAuCf,SAAvC,CAAlB;AACA,UAAMsB,IAAI,GAAG,KAAKD,UAAlB;AAEAC,MAAAA,IAAI,CAACC,KAAL,GAAa,QAAb;;AACA,UAAI,CAACxC,SAAL,EAAgB;AACd,aAAKqC,MAAL;AACD;;AACD,WAAKI,cAAL,GAAsBnB,aAAIW,MAAJ,CAAW,KAAX,EAAkBD,SAAS,GAAG,OAA9B,EAAuCR,IAAvC,CAAtB;AACA,WAAKkB,SAAL,GAAiBpB,aAAIW,MAAJ,CAAW,KAAX,EAAkBD,SAAS,GAAG,YAA9B,EAA4CR,IAA5C,CAAjB;AACA,WAAKmB,YAAL,GAAoBrB,aAAIW,MAAJ,CAAW,KAAX,EAAkBD,SAAS,GAAG,WAA9B,EAA2CR,IAA3C,CAApB;AACAP,MAAAA,SAAS,CAAC2B,WAAV,CAAsBpB,IAAtB;AACD;;;WACD,sBAAqB;AAAA;;AACnB,gCAA6C,KAAKU,aAAlD;AAAA,sDAAQW,UAAR;AAAA,UAAQA,UAAR,sCAAqB,EAArB;AAAA,sDAAyBC,UAAzB;AAAA,UAAyBA,UAAzB,sCAAsC,EAAtC;AACAC,MAAAA,MAAM,CAACC,IAAP,CAAYH,UAAZ,EAAwBhC,OAAxB,CAAgC,UAACN,IAAD,EAAe0C,KAAf,EAAiC;AAE/D,QAAA,MAAI,CAAC/B,QAAL,CAAc2B,UAAU,CAACtC,IAAD,CAAxB,EAAgCA,IAAhC,EAAsC,KAAtC;AACD,OAHD;AAIAwC,MAAAA,MAAM,CAACC,IAAP,CAAYF,UAAZ,EAAwBjC,OAAxB,CAAgC,UAACN,IAAD,EAAY0C,KAAZ,EAA8B;AAC5DH,QAAAA,UAAU,CAACvC,IAAD,CAAV,CAAiB2C,IAAjB,CAAsB,QAAtB,EAAgC,MAAI,CAACzC,MAArC;;AACA,QAAA,MAAI,CAACS,QAAL,CAAc4B,UAAU,CAACvC,IAAD,CAAxB,EAAgCA,IAAhC,EAAsC,IAAtC;AACD,OAHD;AAID;;;WAED,kBAAiB;AACf,UAAI,CAAC,KAAKU,SAAV,EAAqB;AACnB,eAAO,IAAP;AACD;;AAEDK,mBAAI6B,KAAJ,CAAU,KAAKV,cAAf;;AACAnB,mBAAI6B,KAAJ,CAAU,KAAKR,YAAf;;AAEA,WAAKhD,kBAAL,GAA0B,EAA1B;AACA,UAAIyD,iBAAJ;AACA,UAAIC,eAAJ;AACA,UAAIC,CAAJ;AACA,UAAIC,GAAJ;AACA,UAAIC,eAAe,GAAG,CAAtB;;AAEA,WAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAK1D,MAAL,CAAY6D,MAA5B,EAAoCH,CAAC,EAArC,EAAyC;AACvCC,QAAAA,GAAG,GAAG,KAAK3D,MAAL,CAAY0D,CAAZ,CAAN;AACA,aAAKI,OAAL,CAAaH,GAAb;AACAF,QAAAA,eAAe,GAAGA,eAAe,IAAIE,GAAG,CAACI,OAAzC;AACAP,QAAAA,iBAAiB,GAAGA,iBAAiB,IAAI,CAACG,GAAG,CAACI,OAA9C;AACAH,QAAAA,eAAe,IAAI,CAACD,GAAG,CAACI,OAAL,GAAe,CAAf,GAAmB,CAAtC;AACD;;AAGD,UAAI,KAAKzB,aAAL,CAAmB7B,cAAvB,EAAuC;AACrC+C,QAAAA,iBAAiB,GAAGA,iBAAiB,IAAII,eAAe,GAAG,CAA3D;AACA,aAAKf,cAAL,CAAoBhB,KAApB,CAA0BmC,OAA1B,GAAoCR,iBAAiB,GAAG,EAAH,GAAQ,MAA7D;AACD;;AAED,WAAKV,SAAL,CAAejB,KAAf,CAAqBmC,OAArB,GACEP,eAAe,IAAID,iBAAnB,GAAuC,EAAvC,GAA4C,MAD9C;AAGA,aAAO,IAAP;AACD;;;WAED,+BAA8B;AAC5B,UAAMS,MAAM,GAAG,KAAKlE,kBAApB;AACA,UAAImE,KAAJ;AACA,UAAI/C,KAAJ;AACA,UAAMgD,IAAI,GAAG,KAAKrD,WAAL,CAAiBsD,OAAjB,EAAb;;AAEA,WAAK,IAAIV,CAAC,GAAGO,MAAM,CAACJ,MAAP,GAAgB,CAA7B,EAAgCH,CAAC,IAAI,CAArC,EAAwCA,CAAC,EAAzC,EAA6C;AAC3CQ,QAAAA,KAAK,GAAGD,MAAM,CAACP,CAAD,CAAd;AACAvC,QAAAA,KAAK,GAAG,KAAKkD,YAAL,CAAkBC,QAAlB,CAA2BJ,KAAK,CAACK,OAAjC,CAAR;;AAEA,YAAIpD,KAAK,IAAIA,KAAK,CAACqD,MAAnB,EAA2B;AACzB,cAAMC,OAAO,GAAGtD,KAAK,CAACuD,UAAN,EAAhB;AACA,cAAMC,OAAO,GAAGxD,KAAK,CAACyD,UAAN,EAAhB;AAEAV,UAAAA,KAAK,CAACW,QAAN,GAAiBV,IAAI,GAAGM,OAAP,IAAkBN,IAAI,GAAGQ,OAA1C;AACD;AACF;AACF;;;WAED,kBAAiBxD,KAAjB,EAA6BR,IAA7B,EAAoDoD,OAApD,EAAsE;AACpE,UAAI,KAAKjD,WAAT,EAAsB;AACpBK,QAAAA,KAAK,CAACJ,EAAN,CAAS,KAAT,EAAgB,KAAKK,aAArB;AACAD,QAAAA,KAAK,CAACJ,EAAN,CAAS,QAAT,EAAmB,KAAKK,aAAxB;AACD;;AACD,WAAKpB,MAAL,CAAY8E,IAAZ,CAAiB;AACf3D,QAAAA,KAAK,EAALA,KADe;AAEfR,QAAAA,IAAI,EAAJA,IAFe;AAGfoD,QAAAA,OAAO,EAAPA;AAHe,OAAjB;AAKA,iCAAiD,KAAKzB,aAAtD;AAAA,UAAQ5B,UAAR,wBAAQA,UAAR;AAAA,UAAoBqE,YAApB,wBAAoBA,YAApB;AAAA,UAAkCvE,UAAlC,wBAAkCA,UAAlC;;AACA,UAAIE,UAAJ,EAAgB;AACd,aAAKV,MAAL,CAAYgF,IAAZ,CAAiB,UAACC,CAAD,EAAIC,CAAJ,EAAU;AACzB,iBAAOH,YAAY,CAACE,CAAC,CAAC9D,KAAH,EAAU+D,CAAC,CAAC/D,KAAZ,EAAmB8D,CAAC,CAACtE,IAArB,EAA2BuE,CAAC,CAACvE,IAA7B,CAAnB;AACD,SAFD;AAGD;;AAED,UAAIH,UAAU,IAAIW,KAAK,CAACgE,SAAxB,EAAmC;AACjC,aAAKlF,UAAL;AACAkB,QAAAA,KAAK,CAACgE,SAAN,CAAgB,KAAKlF,UAArB;AACD;;AAED,WAAKmF,oBAAL;AACD;;;WAED,gCAA+B;AAC7B,UAAI,KAAKtE,WAAL,IAAoB,CAAC,KAAKwB,aAAL,CAAmBlC,SAA5C,EAAuD;AACrD,aAAKqC,MAAL;AACD;;AACD,aAAO,IAAP;AACD;;;WAED,uBAAsB4C,CAAtB,EAA8B;AAC5B,UAAI,CAAC,KAAKnF,aAAV,EAAyB;AACvB,aAAKW,MAAL;AACD;;AAED,UAAM8C,GAAG,GAAG,KAAKU,YAAL,CAAkBC,QAAlB,CAA2Be,CAAC,CAACC,MAAF,CAASf,OAApC,CAAZ;AAGA,UAAMgB,IAAI,GAAG5B,GAAG,SAAH,IAAAA,GAAG,WAAH,IAAAA,GAAG,CAAEI,OAAL,GACTsB,CAAC,CAACE,IAAF,KAAW,KAAX,GACE,YADF,GAEE,eAHO,GAITF,CAAC,CAACE,IAAF,KAAW,KAAX,GACA,iBADA,GAEA,IANJ;;AAQA,UAAIA,IAAJ,EAAU;AACR,aAAKC,IAAL,CAAUD,IAAV,EAAgB5B,GAAhB;AACD;AACF;;;WAED,4BAA2BhD,IAA3B,EAAyC8E,OAAzC,EAAsE;AACpE,UAAMC,SAAS,GACb,kEACA/E,IADA,GAEA,GAFA,IAGC8E,OAAO,GAAG,oBAAH,GAA0B,EAHlC,IAIA,IALF;AAOA,UAAME,aAAa,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAtB;AACAF,MAAAA,aAAa,CAACG,SAAd,GAA0BJ,SAA1B;AAEA,aAAOC,aAAa,CAACI,UAArB;AACD;;;WAED,iBAAgBpC,GAAhB,EAA0B;AACxB,UAAMqC,KAAK,GAAGJ,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAd;AACA,UAAM1E,KAAK,GAAG,KAAKkD,YAAL,CAAkBC,QAAlB,CAA2BX,GAAG,CAACxC,KAAJ,CAAU8E,EAArC,CAAd;AACA,UAAMR,OAAO,GAAGtE,KAAK,IAAIA,KAAK,CAACqD,MAAf,IAAyBb,GAAG,CAACxC,KAAJ,CAAU+E,SAAV,EAAzC;AACA,UAAIhC,KAAJ;;AACA,UAAIP,GAAG,CAACI,OAAR,EAAiB;AACfG,QAAAA,KAAK,GAAG0B,QAAQ,CAACC,aAAT,CAAuB,OAAvB,CAAR;AACA3B,QAAAA,KAAK,CAACqB,IAAN,GAAa,UAAb;AACArB,QAAAA,KAAK,CAAC9B,SAAN,GAAkB,4BAAlB;AACA8B,QAAAA,KAAK,CAACiC,cAAN,GAAuBV,OAAvB;AACD,OALD,MAKO;AACLvB,QAAAA,KAAK,GAAG,KAAKkC,kBAAL,CAAwB,gBAAxB,EAA0CX,OAA1C,CAAR;AACD;;AACD,WAAK1F,kBAAL,CAAwB+E,IAAxB,CAA6BZ,KAA7B;AACAA,MAAAA,KAAK,CAACK,OAAN,GAAgBZ,GAAG,CAACxC,KAAJ,CAAU8E,EAA1B;AACA/B,MAAAA,KAAK,CAAC1B,gBAAN,CAAuB,OAAvB,EAAgC,KAAK6D,YAArC;AAEA,UAAM1F,IAAI,GAAGiF,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAb;AACAlF,MAAAA,IAAI,CAACmF,SAAL,GAAiB,MAAMnC,GAAG,CAAChD,IAA3B;AAEA,UAAM2F,MAAM,GAAGV,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAf;AAEAG,MAAAA,KAAK,CAAChD,WAAN,CAAkBsD,MAAlB;AACAA,MAAAA,MAAM,CAACtD,WAAP,CAAmBkB,KAAnB;AACAoC,MAAAA,MAAM,CAACtD,WAAP,CAAmBrC,IAAnB;AAEA,UAAMU,SAAS,GAAGsC,GAAG,CAACI,OAAJ,GAAc,KAAKhB,YAAnB,GAAkC,KAAKF,cAAzD;AACAxB,MAAAA,SAAS,CAAC2B,WAAV,CAAsBgD,KAAtB;AAEA,WAAKhF,mBAAL;AACA,aAAOgF,KAAP;AACD;;;WAED,wBAAuB;AACrB,UAAM/B,MAAM,GAAG,KAAKlE,kBAApB;AACA,UAAImE,KAAJ;AACA,UAAI/C,KAAJ;AACA,UAAMoF,WAAW,GAAG,EAApB;AACA,UAAMC,aAAa,GAAG,EAAtB;AACA,WAAKtG,aAAL,GAAqB,IAArB;;AACA,WAAK,IAAIwD,CAAC,GAAGO,MAAM,CAACJ,MAAP,GAAgB,CAA7B,EAAgCH,CAAC,IAAI,CAArC,EAAwCA,CAAC,EAAzC,EAA6C;AAC3CQ,QAAAA,KAAK,GAAGD,MAAM,CAACP,CAAD,CAAd;AACAvC,QAAAA,KAAK,GAAG,KAAKkD,YAAL,CAAkBC,QAAlB,CAA2BJ,KAAK,CAACK,OAAjC,CAAR;;AACA,YAAIL,KAAK,CAACuB,OAAV,EAAmB;AACjBc,UAAAA,WAAW,CAACzB,IAAZ,CAAiB3D,KAAjB;AACD,SAFD,MAEO,IAAI,CAAC+C,KAAK,CAACuB,OAAX,EAAoB;AACzBe,UAAAA,aAAa,CAAC1B,IAAd,CAAmB3D,KAAnB;AACD;AACF;;AACDqF,MAAAA,aAAa,CAACvF,OAAd,CAAsB,UAACwF,CAAD,EAAY;AAChCA,QAAAA,CAAC,CAACC,IAAF;AACD,OAFD;AAGAH,MAAAA,WAAW,CAACtF,OAAZ,CAAoB,UAACwF,CAAD,EAAY;AAC9BA,QAAAA,CAAC,CAACE,IAAF;AACD,OAFD;AAIA,WAAKzG,aAAL,GAAqB,KAArB;AACD;;;EAlTiC0G,oB","sourcesContent":["import { IControlOption, PositionName, PositionType } from '@antv/l7-core';\nimport { bindAll, DOM, lnglatDistance } from '@antv/l7-utils';\nimport Control from './BaseControl';\nexport interface ILayerControlOption extends IControlOption {\n collapsed: boolean;\n autoZIndex: boolean;\n hideSingleBase: boolean;\n sortLayers: boolean;\n\n sortFunction: (...args: any[]) => any;\n}\ninterface IInputItem extends HTMLInputElement {\n layerId: string;\n}\nexport default class Layers extends Control {\n private layerControlInputs: any[];\n private layers: any[];\n private lastZIndex: number;\n private handlingClick: boolean;\n private layersLink: HTMLElement;\n private baseLayersList: HTMLElement;\n private separator: HTMLElement;\n private overlaysList: HTMLElement;\n private form: HTMLElement;\n\n constructor(cfg: Partial<ILayerControlOption>) {\n super(cfg);\n this.layerControlInputs = [];\n this.layers = [];\n this.lastZIndex = 0;\n this.handlingClick = false;\n this.initLayers();\n\n bindAll(\n [\n 'checkDisabledLayers',\n 'onLayerChange',\n 'collapse',\n 'extend',\n 'expand',\n 'onInputClick',\n ],\n this,\n );\n }\n\n public getDefault() {\n return {\n collapsed: true,\n position: PositionType.TOPRIGHT,\n autoZIndex: true,\n hideSingleBase: false,\n sortLayers: false,\n name: 'layers',\n };\n }\n public onAdd() {\n this.initLayout();\n this.update();\n this.mapsService.on('zoomend', this.checkDisabledLayers);\n this.layers.forEach((layerItem) => {\n layerItem.layer.on('remove', this.onLayerChange);\n layerItem.layer.on('add', this.onLayerChange);\n });\n return this.container;\n }\n\n public addVisualLayer(layer: any, name: string | number) {\n this.addLayer(layer, name, true);\n return this.mapsService ? this.update() : this;\n }\n public expand() {\n const { height } = this.renderService.getViewportSize();\n DOM.addClass(this.container, 'l7-control-layers-expanded');\n this.form.style.height = 'null';\n const acceptableHeight = height - (this.container.offsetTop + 50);\n if (acceptableHeight < this.form.clientHeight) {\n DOM.addClass(this.form, 'l7-control-layers-scrollbar');\n this.form.style.height = acceptableHeight + 'px';\n } else {\n DOM.removeClass(this.form, 'l7-control-layers-scrollbar');\n }\n this.checkDisabledLayers();\n return this;\n }\n\n public collapse() {\n DOM.removeClass(this.container, 'l7-control-layers-expanded');\n return this;\n }\n\n public onRemove() {\n if (!this.mapsService) {\n return;\n }\n this.mapsService.off('click', this.collapse);\n this.layers.forEach((layerItem) => {\n layerItem.layer.off('remove', this.onLayerChange);\n layerItem.layer.off('add', this.onLayerChange);\n });\n }\n private initLayout() {\n const className = 'l7-control-layers';\n const container = (this.container = DOM.create('div', className));\n const { collapsed } = this.controlOption;\n // makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\n container.setAttribute('aria-haspopup', 'true');\n const form = (this.form = DOM.create(\n 'form',\n className + '-list',\n ) as HTMLElement);\n\n if (collapsed) {\n this.mapsService.on('click', this.collapse);\n container.addEventListener('mouseenter', this.expand);\n container.addEventListener('mouseleave', this.collapse);\n }\n\n this.layersLink = DOM.create('a', className + '-toggle', container);\n const link = this.layersLink;\n // link.href = '#';\n link.title = 'Layers';\n if (!collapsed) {\n this.expand();\n }\n this.baseLayersList = DOM.create('div', className + '-base', form);\n this.separator = DOM.create('div', className + '-separator', form);\n this.overlaysList = DOM.create('div', className + '-overlays', form);\n container.appendChild(form);\n }\n private initLayers() {\n const { baseLayers = {}, overlayers = {} } = this.controlOption;\n Object.keys(baseLayers).forEach((name: string, index: number) => {\n // baseLayers[name].once('inited', this.update);\n this.addLayer(baseLayers[name], name, false);\n });\n Object.keys(overlayers).forEach((name: any, index: number) => {\n overlayers[name].once('inited', this.update);\n this.addLayer(overlayers[name], name, true);\n });\n }\n\n private update() {\n if (!this.container) {\n return this;\n }\n\n DOM.empty(this.baseLayersList);\n DOM.empty(this.overlaysList);\n\n this.layerControlInputs = [];\n let baseLayersPresent;\n let overlaysPresent;\n let i;\n let obj;\n let baseLayersCount = 0;\n\n for (i = 0; i < this.layers.length; i++) {\n obj = this.layers[i];\n this.addItem(obj);\n overlaysPresent = overlaysPresent || obj.overlay;\n baseLayersPresent = baseLayersPresent || !obj.overlay;\n baseLayersCount += !obj.overlay ? 1 : 0;\n }\n\n // Hide base layers section if there's only one layer.\n if (this.controlOption.hideSingleBase) {\n baseLayersPresent = baseLayersPresent && baseLayersCount > 1;\n this.baseLayersList.style.display = baseLayersPresent ? '' : 'none';\n }\n\n this.separator.style.display =\n overlaysPresent && baseLayersPresent ? '' : 'none';\n\n return this;\n }\n\n private checkDisabledLayers() {\n const inputs = this.layerControlInputs;\n let input: IInputItem;\n let layer;\n const zoom = this.mapsService.getZoom();\n\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n\n if (layer && layer.inited) {\n const minZoom = layer.getMinZoom();\n const maxZoom = layer.getMaxZoom();\n\n input.disabled = zoom < minZoom || zoom > maxZoom;\n }\n }\n }\n\n private addLayer(layer: any, name: string | number, overlay: boolean) {\n if (this.mapsService) {\n layer.on('add', this.onLayerChange);\n layer.on('remove', this.onLayerChange);\n }\n this.layers.push({\n layer,\n name,\n overlay,\n });\n const { sortLayers, sortFunction, autoZIndex } = this.controlOption;\n if (sortLayers) {\n this.layers.sort((a, b) => {\n return sortFunction(a.layer, b.layer, a.name, b.name);\n });\n }\n\n if (autoZIndex && layer.setZIndex) {\n this.lastZIndex++;\n layer.setZIndex(this.lastZIndex);\n }\n\n this.expandIfNotCollapsed();\n }\n\n private expandIfNotCollapsed() {\n if (this.mapsService && !this.controlOption.collapsed) {\n this.expand();\n }\n return this;\n }\n\n private onLayerChange(e: any) {\n if (!this.handlingClick) {\n this.update();\n }\n\n const obj = this.layerService.getLayer(e.target.layerId);\n\n // @ts-ignore\n const type = obj?.overlay\n ? e.type === 'add'\n ? 'overlayadd'\n : 'overlayremove'\n : e.type === 'add'\n ? 'baselayerchange'\n : null;\n\n if (type) {\n this.emit(type, obj);\n }\n }\n\n private createRadioElement(name: string, checked: boolean): ChildNode {\n const radioHtml =\n '<input type=\"radio\" class=\"l7-control-layers-selector\" name=\"' +\n name +\n '\"' +\n (checked ? ' checked=\"checked\"' : '') +\n '/>';\n\n const radioFragment = document.createElement('div');\n radioFragment.innerHTML = radioHtml;\n\n return radioFragment.firstChild as ChildNode;\n }\n\n private addItem(obj: any) {\n const label = document.createElement('label');\n const layer = this.layerService.getLayer(obj.layer.id);\n const checked = layer && layer.inited && obj.layer.isVisible();\n let input: IInputItem;\n if (obj.overlay) {\n input = document.createElement('input') as IInputItem;\n input.type = 'checkbox';\n input.className = 'l7-control-layers-selector';\n input.defaultChecked = checked;\n } else {\n input = this.createRadioElement('l7-base-layers', checked) as IInputItem;\n }\n this.layerControlInputs.push(input);\n input.layerId = obj.layer.id;\n input.addEventListener('click', this.onInputClick);\n\n const name = document.createElement('span');\n name.innerHTML = ' ' + obj.name;\n\n const holder = document.createElement('div');\n\n label.appendChild(holder);\n holder.appendChild(input);\n holder.appendChild(name);\n\n const container = obj.overlay ? this.overlaysList : this.baseLayersList;\n container.appendChild(label);\n\n this.checkDisabledLayers();\n return label;\n }\n\n private onInputClick() {\n const inputs = this.layerControlInputs;\n let input;\n let layer;\n const addedLayers = [];\n const removedLayers = [];\n this.handlingClick = true;\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n if (input.checked) {\n addedLayers.push(layer);\n } else if (!input.checked) {\n removedLayers.push(layer);\n }\n }\n removedLayers.forEach((l: any) => {\n l.hide();\n });\n addedLayers.forEach((l: any) => {\n l.show();\n });\n\n this.handlingClick = false;\n }\n}\n"],"file":"layer.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/control/layer.ts"],"names":["Layers","cfg","layerControlInputs","layers","lastZIndex","handlingClick","initLayers","collapsed","position","PositionType","TOPRIGHT","autoZIndex","hideSingleBase","sortLayers","name","initLayout","update","mapsService","on","checkDisabledLayers","forEach","layerItem","layer","onLayerChange","container","addLayer","renderService","getViewportSize","height","DOM","addClass","form","style","acceptableHeight","offsetTop","clientHeight","removeClass","off","collapse","className","create","controlOption","setAttribute","addEventListener","expand","layersLink","link","title","baseLayersList","separator","overlaysList","appendChild","baseLayers","overlayers","Object","keys","index","empty","baseLayersPresent","overlaysPresent","i","obj","baseLayersCount","length","addItem","overlay","display","inputs","input","zoom","getZoom","layerService","getLayer","layerId","inited","minZoom","getMinZoom","maxZoom","getMaxZoom","disabled","push","sortFunction","sort","a","b","setZIndex","expandIfNotCollapsed","e","target","type","emit","checked","radioHtml","radioFragment","document","createElement","innerHTML","firstChild","label","id","isVisible","defaultChecked","createRadioElement","onInputClick","holder","addedLayers","removedLayers","l","hide","show","Control"],"mappings":"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","sourcesContent":["import { IControlOption, PositionName, PositionType } from '@antv/l7-core';\nimport { bindAll, DOM, lnglatDistance } from '@antv/l7-utils';\nimport Control from './BaseControl';\nexport interface ILayerControlOption extends IControlOption {\n collapsed: boolean;\n autoZIndex: boolean;\n hideSingleBase: boolean;\n sortLayers: boolean;\n\n sortFunction: (...args: any[]) => any;\n}\ninterface IInputItem extends HTMLInputElement {\n layerId: string;\n}\nexport default class Layers extends Control {\n private layerControlInputs: any[];\n private layers: any[];\n private lastZIndex: number;\n private handlingClick: boolean;\n private layersLink: HTMLElement;\n private baseLayersList: HTMLElement;\n private separator: HTMLElement;\n private overlaysList: HTMLElement;\n private form: HTMLElement;\n\n constructor(cfg: Partial<ILayerControlOption>) {\n super(cfg);\n this.layerControlInputs = [];\n this.layers = [];\n this.lastZIndex = 0;\n this.handlingClick = false;\n this.initLayers();\n\n bindAll(\n [\n 'checkDisabledLayers',\n 'onLayerChange',\n 'collapse',\n 'extend',\n 'expand',\n 'onInputClick',\n ],\n this,\n );\n }\n\n public getDefault() {\n return {\n collapsed: true,\n position: PositionType.TOPRIGHT,\n autoZIndex: true,\n hideSingleBase: false,\n sortLayers: false,\n name: 'layers',\n };\n }\n public onAdd() {\n this.initLayout();\n this.update();\n this.mapsService.on('zoomend', this.checkDisabledLayers);\n this.layers.forEach((layerItem) => {\n layerItem.layer.on('remove', this.onLayerChange);\n layerItem.layer.on('add', this.onLayerChange);\n });\n return this.container;\n }\n\n public addVisualLayer(layer: any, name: string | number) {\n this.addLayer(layer, name, true);\n return this.mapsService ? this.update() : this;\n }\n public expand() {\n const { height } = this.renderService.getViewportSize();\n DOM.addClass(this.container, 'l7-control-layers-expanded');\n this.form.style.height = 'null';\n const acceptableHeight = height - (this.container.offsetTop + 50);\n if (acceptableHeight < this.form.clientHeight) {\n DOM.addClass(this.form, 'l7-control-layers-scrollbar');\n this.form.style.height = acceptableHeight + 'px';\n } else {\n DOM.removeClass(this.form, 'l7-control-layers-scrollbar');\n }\n this.checkDisabledLayers();\n return this;\n }\n\n public collapse() {\n DOM.removeClass(this.container, 'l7-control-layers-expanded');\n return this;\n }\n\n public onRemove() {\n if (!this.mapsService) {\n return;\n }\n this.mapsService.off('click', this.collapse);\n this.layers.forEach((layerItem) => {\n layerItem.layer.off('remove', this.onLayerChange);\n layerItem.layer.off('add', this.onLayerChange);\n });\n }\n private initLayout() {\n const className = 'l7-control-layers';\n const container = (this.container = DOM.create('div', className));\n const { collapsed } = this.controlOption;\n // makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\n container.setAttribute('aria-haspopup', 'true');\n const form = (this.form = DOM.create(\n 'form',\n className + '-list',\n ) as HTMLElement);\n\n if (collapsed) {\n this.mapsService.on('click', this.collapse);\n container.addEventListener('mouseenter', this.expand);\n container.addEventListener('mouseleave', this.collapse);\n }\n\n this.layersLink = DOM.create('a', className + '-toggle', container);\n const link = this.layersLink;\n // link.href = '#';\n link.title = 'Layers';\n if (!collapsed) {\n this.expand();\n }\n this.baseLayersList = DOM.create('div', className + '-base', form);\n this.separator = DOM.create('div', className + '-separator', form);\n this.overlaysList = DOM.create('div', className + '-overlays', form);\n container.appendChild(form);\n }\n private initLayers() {\n const { baseLayers = {}, overlayers = {} } = this.controlOption;\n Object.keys(baseLayers).forEach((name: string, index: number) => {\n // baseLayers[name].once('inited', this.update);\n this.addLayer(baseLayers[name], name, false);\n });\n Object.keys(overlayers).forEach((name: any, index: number) => {\n // overlayers[name].once('inited', this.update);\n this.addLayer(overlayers[name], name, true);\n });\n }\n\n private update() {\n if (!this.container) {\n return this;\n }\n\n DOM.empty(this.baseLayersList);\n DOM.empty(this.overlaysList);\n\n this.layerControlInputs = [];\n let baseLayersPresent;\n let overlaysPresent;\n let i;\n let obj;\n let baseLayersCount = 0;\n\n for (i = 0; i < this.layers.length; i++) {\n obj = this.layers[i];\n this.addItem(obj);\n overlaysPresent = overlaysPresent || obj.overlay;\n baseLayersPresent = baseLayersPresent || !obj.overlay;\n baseLayersCount += !obj.overlay ? 1 : 0;\n }\n\n // Hide base layers section if there's only one layer.\n if (this.controlOption.hideSingleBase) {\n baseLayersPresent = baseLayersPresent && baseLayersCount > 1;\n this.baseLayersList.style.display = baseLayersPresent ? '' : 'none';\n }\n\n this.separator.style.display =\n overlaysPresent && baseLayersPresent ? '' : 'none';\n\n return this;\n }\n\n private checkDisabledLayers() {\n const inputs = this.layerControlInputs;\n let input: IInputItem;\n let layer;\n const zoom = this.mapsService.getZoom();\n\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n\n if (layer && layer.inited) {\n const minZoom = layer.getMinZoom();\n const maxZoom = layer.getMaxZoom();\n\n input.disabled = zoom < minZoom || zoom > maxZoom;\n }\n }\n }\n\n private addLayer(layer: any, name: string | number, overlay: boolean) {\n if (this.mapsService) {\n layer.on('add', this.onLayerChange);\n layer.on('remove', this.onLayerChange);\n }\n this.layers.push({\n layer,\n name,\n overlay,\n });\n const { sortLayers, sortFunction, autoZIndex } = this.controlOption;\n if (sortLayers) {\n this.layers.sort((a, b) => {\n return sortFunction(a.layer, b.layer, a.name, b.name);\n });\n }\n\n if (autoZIndex && layer.setZIndex) {\n this.lastZIndex++;\n layer.setZIndex(this.lastZIndex);\n }\n\n this.expandIfNotCollapsed();\n }\n\n private expandIfNotCollapsed() {\n if (this.mapsService && !this.controlOption.collapsed) {\n this.expand();\n }\n return this;\n }\n\n private onLayerChange(e: any) {\n if (!this.handlingClick) {\n this.update();\n }\n\n const obj = this.layerService.getLayer(e.target.layerId);\n\n // @ts-ignore\n const type = obj?.overlay\n ? e.type === 'add'\n ? 'overlayadd'\n : 'overlayremove'\n : e.type === 'add'\n ? 'baselayerchange'\n : null;\n\n if (type) {\n this.emit(type, obj);\n }\n }\n\n private createRadioElement(name: string, checked: boolean): ChildNode {\n const radioHtml =\n '<input type=\"radio\" class=\"l7-control-layers-selector\" name=\"' +\n name +\n '\"' +\n (checked ? ' checked=\"checked\"' : '') +\n '/>';\n\n const radioFragment = document.createElement('div');\n radioFragment.innerHTML = radioHtml;\n\n return radioFragment.firstChild as ChildNode;\n }\n\n private addItem(obj: any) {\n const label = document.createElement('label');\n const layer = this.layerService.getLayer(obj.layer.id);\n const checked = layer && layer.inited && obj.layer.isVisible();\n let input: IInputItem;\n if (obj.overlay) {\n input = document.createElement('input') as IInputItem;\n input.type = 'checkbox';\n input.className = 'l7-control-layers-selector';\n input.defaultChecked = checked;\n } else {\n input = this.createRadioElement('l7-base-layers', checked) as IInputItem;\n }\n this.layerControlInputs.push(input);\n input.layerId = obj.layer.id;\n input.addEventListener('click', this.onInputClick);\n\n const name = document.createElement('span');\n name.innerHTML = ' ' + obj.name;\n\n const holder = document.createElement('div');\n\n label.appendChild(holder);\n holder.appendChild(input);\n holder.appendChild(name);\n\n const container = obj.overlay ? this.overlaysList : this.baseLayersList;\n container.appendChild(label);\n\n this.checkDisabledLayers();\n return label;\n }\n\n private onInputClick() {\n const inputs = this.layerControlInputs;\n let input;\n let layer;\n const addedLayers = [];\n const removedLayers = [];\n this.handlingClick = true;\n for (let i = inputs.length - 1; i >= 0; i--) {\n input = inputs[i];\n layer = this.layerService.getLayer(input.layerId);\n if (input.checked) {\n addedLayers.push(layer);\n } else if (!input.checked) {\n removedLayers.push(layer);\n }\n }\n removedLayers.forEach((l: any) => {\n l.hide();\n });\n addedLayers.forEach((l: any) => {\n l.show();\n });\n\n this.handlingClick = false;\n }\n}\n"],"file":"layer.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antv/l7-component",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.22",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"author": "lzxue",
|
|
26
26
|
"license": "ISC",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@antv/l7-core": "^2.5.
|
|
29
|
-
"@antv/l7-utils": "^2.5.
|
|
28
|
+
"@antv/l7-core": "^2.5.22",
|
|
29
|
+
"@antv/l7-utils": "^2.5.22",
|
|
30
30
|
"@babel/runtime": "^7.7.7",
|
|
31
31
|
"eventemitter3": "^4.0.0",
|
|
32
32
|
"inversify": "^5.0.1",
|
|
33
33
|
"reflect-metadata": "^0.1.13"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "0e9d92987c07bb1e61cf9087082ece0257396d23",
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
}
|