@nextgis/leaflet-control-container 4.0.0-rc.0 → 4.0.0-rc.2

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.
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/leaflet-control-container; version: 4.0.0-rc.0; author: NextGIS */
1
+ /** Bundle of @nextgis/leaflet-control-container; version: 4.0.0-rc.2; author: NextGIS */
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"leaflet-control-container.cjs.js","sources":["../src/createControl.ts","../src/createButtonControl.ts","../src/createToggleControl.ts","../src/LeafletControlContainer.ts"],"sourcesContent":["import {\n createControlElement,\n resolveControlOptions,\n setControlOptions,\n} from '@nextgis/control-container';\nimport { Control } from 'leaflet';\n\nimport type {\n CreateControlOptions,\n MapControl,\n} from '@nextgis/control-container';\nimport type { Map as LeafletMap } from 'leaflet';\n\nexport function createControl<M = LeafletMap>(\n control: MapControl<M | LeafletMap>,\n options: CreateControlOptions = {},\n map?: M,\n): Control {\n const resolvedOptions = resolveControlOptions(options);\n const C = Control.extend({\n onAdd(leafletMap: LeafletMap) {\n const addClass = [\n 'leaflet-control',\n resolvedOptions.bar ? 'leaflet-bar' : '',\n resolvedOptions.addClass,\n ]\n .filter(Boolean)\n .join(' ');\n const element = createControlElement(\n control,\n { ...resolvedOptions, addClass },\n map ?? leafletMap,\n );\n if (!resolvedOptions.margin) {\n element.style.margin = '0px';\n }\n\n return element;\n },\n onRemove(leafletMap: LeafletMap) {\n control.onRemove(map ?? leafletMap);\n },\n });\n const instance = new C();\n setControlOptions(instance, resolvedOptions);\n return instance;\n}\n","import { createButtonControlContent } from '@nextgis/control-container';\n\nimport { createControl } from './createControl';\n\nimport type { ButtonControlOptions } from '@nextgis/control-container';\nimport type { Control, Map as LeafletMap } from 'leaflet';\n\nexport function createButtonControl<M = LeafletMap>(\n options: ButtonControlOptions,\n map?: M,\n): Control {\n return createControl<M>(\n createButtonControlContent(options),\n { bar: true, margin: options.margin },\n map,\n );\n}\n","import { createToggleControlContent } from '@nextgis/control-container';\n\nimport { createControl } from './createControl';\n\nimport type {\n ToggleControl,\n ToggleControlOptions,\n} from '@nextgis/control-container';\nimport type { Control, Map as LeafletMap } from 'leaflet';\n\nexport function createToggleControl<M = LeafletMap>(\n options: ToggleControlOptions,\n map?: M,\n): Control & ToggleControl {\n const toggleContent = createToggleControlContent(options);\n const control = createControl<M>(\n toggleContent,\n { bar: true, margin: options.margin },\n map,\n ) as Control & ToggleControl;\n control.onClick = toggleContent.onClick;\n control.changeStatus = toggleContent.changeStatus;\n control.getStatus = toggleContent.getStatus;\n control.switch = toggleContent.switch;\n Object.defineProperty(control, 'disableOnSecondClick', {\n configurable: true,\n get: () => toggleContent.disableOnSecondClick,\n set: (value) => {\n toggleContent.disableOnSecondClick = value;\n },\n });\n control.onStatusChange = toggleContent.onStatusChange;\n return control;\n}\n","import ControlContainer from '@nextgis/control-container';\n\nimport type {\n AddControlOptions,\n ControlContainerOptions,\n ControlTargetPosition,\n} from '@nextgis/control-container';\nimport type {\n Control as LeafletControl,\n ControlPosition,\n Map as LeafletMap,\n} from 'leaflet';\n\nexport type LeafletControlContainerOptions = Omit<\n ControlContainerOptions<LeafletMap>,\n 'container' | 'positionContainers' | 'map'\n>;\n\nexport class LeafletControlContainer {\n private readonly map: LeafletMap;\n private readonly controlContainer: ControlContainer;\n private readonly targets = new WeakMap<LeafletControl, HTMLElement>();\n private readonly ids = new WeakMap<LeafletControl, string>();\n\n constructor(map: LeafletMap, options: LeafletControlContainerOptions = {}) {\n this.map = map;\n this.controlContainer = this.createControlContainer(options);\n this.controlContainer.addTo(map.getContainer());\n }\n\n addControl(\n control: LeafletControl,\n position: ControlTargetPosition,\n options: AddControlOptions = {},\n ): LeafletControl {\n const targetPosition = typeof position === 'string' ? position : 'top-left';\n control.options.position = targetPosition.replace(\n '-',\n '',\n ) as ControlPosition;\n this.map.addControl(control);\n\n const container = control.getContainer();\n if (container) {\n this.controlContainer.append(container, position, options.order, control);\n this.targets.set(control, container);\n if (options.id) {\n this.controlContainer.registerIDContainer(\n options.id,\n container,\n control,\n );\n this.ids.set(control, options.id);\n }\n }\n\n return control;\n }\n\n removeControl(control: LeafletControl): void {\n this.map.removeControl(control);\n\n const id = this.ids.get(control);\n if (id) {\n this.controlContainer.unregisterIDContainer(id);\n this.ids.delete(control);\n }\n\n const target = this.targets.get(control);\n if (target) {\n this.controlContainer.removeTarget(target);\n this.targets.delete(control);\n }\n }\n\n append(\n element: HTMLElement | string,\n position: ControlTargetPosition,\n order = 0,\n ): void {\n this.controlContainer.append(element, position, order);\n }\n\n registerIDContainer(\n id: string,\n controlRoot: HTMLElement,\n control?: LeafletControl,\n ): void {\n this.controlContainer.registerIDContainer(id, controlRoot, control);\n }\n\n unregisterIDContainer(id: string): void {\n this.controlContainer.unregisterIDContainer(id);\n }\n\n detach(): void {\n this.controlContainer.detach();\n }\n\n getContainer(): HTMLElement {\n return this.controlContainer.getContainer();\n }\n\n getControlContainer(): ControlContainer {\n return this.controlContainer;\n }\n\n private createControlContainer(\n options: LeafletControlContainerOptions,\n ): ControlContainer {\n const mapAny = this.map as any;\n const controlCorners = mapAny._controlCorners || {};\n const getCorner = (key: string, selector: string) =>\n (controlCorners[key] as HTMLElement | undefined) ||\n (this.map.getContainer().querySelector(selector) as HTMLElement | null) ||\n undefined;\n\n return new ControlContainer({\n ...options,\n map: this.map,\n container: mapAny._controlContainer as HTMLElement | undefined,\n positionContainers: {\n 'top-left': getCorner('topleft', '.leaflet-top.leaflet-left'),\n 'top-right': getCorner('topright', '.leaflet-top.leaflet-right'),\n 'bottom-left': getCorner('bottomleft', '.leaflet-bottom.leaflet-left'),\n 'bottom-right': getCorner(\n 'bottomright',\n '.leaflet-bottom.leaflet-right',\n ),\n },\n });\n }\n}\n"],"names":["resolveControlOptions","Control","createControlElement","setControlOptions","createButtonControlContent","createToggleControlContent"],"mappings":"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"}
1
+ {"version":3,"file":"leaflet-control-container.cjs.js","sources":["../src/createControl.ts","../src/createButtonControl.ts","../src/createToggleControl.ts","../src/LeafletControlContainer.ts"],"sourcesContent":["import {\n createControlElement,\n resolveControlOptions,\n setControlOptions,\n} from '@nextgis/control-container';\nimport { Control } from 'leaflet';\n\nimport type {\n CreateControlOptions,\n MapControl,\n} from '@nextgis/control-container';\nimport type { Map as LeafletMap } from 'leaflet';\n\nexport function createControl<M = LeafletMap>(\n control: MapControl<M | LeafletMap>,\n options: CreateControlOptions = {},\n map?: M,\n): Control {\n const resolvedOptions = resolveControlOptions(options);\n const C = Control.extend({\n onAdd(leafletMap: LeafletMap) {\n const addClass = [\n 'leaflet-control',\n resolvedOptions.bar ? 'leaflet-bar' : '',\n resolvedOptions.addClass,\n ]\n .filter(Boolean)\n .join(' ');\n const element = createControlElement(\n control,\n { ...resolvedOptions, addClass },\n map ?? leafletMap,\n );\n if (!resolvedOptions.margin) {\n element.style.margin = '0px';\n }\n\n return element;\n },\n onRemove(leafletMap: LeafletMap) {\n control.onRemove(map ?? leafletMap);\n },\n });\n const instance = new C();\n setControlOptions(instance, resolvedOptions);\n return instance;\n}\n","import { createButtonControlContent } from '@nextgis/control-container';\n\nimport { createControl } from './createControl';\n\nimport type { ButtonControlOptions } from '@nextgis/control-container';\nimport type { Control, Map as LeafletMap } from 'leaflet';\n\nexport function createButtonControl<M = LeafletMap>(\n options: ButtonControlOptions,\n map?: M,\n): Control {\n return createControl<M>(\n createButtonControlContent(options),\n { bar: true, margin: options.margin },\n map,\n );\n}\n","import { createToggleControlContent } from '@nextgis/control-container';\n\nimport { createControl } from './createControl';\n\nimport type {\n ToggleControl,\n ToggleControlOptions,\n} from '@nextgis/control-container';\nimport type { Control, Map as LeafletMap } from 'leaflet';\n\nexport function createToggleControl<M = LeafletMap>(\n options: ToggleControlOptions,\n map?: M,\n): Control & ToggleControl {\n const toggleContent = createToggleControlContent(options);\n const control = createControl<M>(\n toggleContent,\n { bar: true, margin: options.margin },\n map,\n ) as Control & ToggleControl;\n control.onClick = toggleContent.onClick;\n control.changeStatus = toggleContent.changeStatus;\n control.getStatus = toggleContent.getStatus;\n control.switch = toggleContent.switch;\n Object.defineProperty(control, 'disableOnSecondClick', {\n configurable: true,\n get: () => toggleContent.disableOnSecondClick,\n set: (value) => {\n toggleContent.disableOnSecondClick = value;\n },\n });\n control.onStatusChange = toggleContent.onStatusChange;\n return control;\n}\n","import ControlContainer from '@nextgis/control-container';\n\nimport type {\n AddControlOptions,\n ControlContainerOptions,\n ControlTargetPosition,\n} from '@nextgis/control-container';\nimport type {\n Control as LeafletControl,\n ControlPosition,\n Map as LeafletMap,\n} from 'leaflet';\n\nimport './LeafletControlContainer.css';\n\nexport type LeafletControlContainerOptions = Omit<\n ControlContainerOptions<LeafletMap>,\n 'container' | 'positionContainers' | 'map'\n>;\n\nexport class LeafletControlContainer {\n private readonly map: LeafletMap;\n private readonly controlContainer: ControlContainer;\n private readonly targets = new WeakMap<LeafletControl, HTMLElement>();\n private readonly ids = new WeakMap<LeafletControl, string>();\n\n constructor(map: LeafletMap, options: LeafletControlContainerOptions = {}) {\n this.map = map;\n this.controlContainer = this.createControlContainer(options);\n this.controlContainer.addTo(map.getContainer());\n }\n\n addControl(\n control: LeafletControl,\n position: ControlTargetPosition,\n options: AddControlOptions = {},\n ): LeafletControl {\n const targetPosition = typeof position === 'string' ? position : 'top-left';\n control.options.position = targetPosition.replace(\n '-',\n '',\n ) as ControlPosition;\n this.map.addControl(control);\n\n const container = control.getContainer();\n if (container) {\n this.controlContainer.append(container, position, options.order, control);\n this.targets.set(control, container);\n if (options.id) {\n this.controlContainer.registerIDContainer(\n options.id,\n container,\n control,\n );\n this.ids.set(control, options.id);\n }\n }\n\n return control;\n }\n\n removeControl(control: LeafletControl): void {\n this.map.removeControl(control);\n\n const id = this.ids.get(control);\n if (id) {\n this.controlContainer.unregisterIDContainer(id);\n this.ids.delete(control);\n }\n\n const target = this.targets.get(control);\n if (target) {\n this.controlContainer.removeTarget(target);\n this.targets.delete(control);\n }\n }\n\n append(\n element: HTMLElement | string,\n position: ControlTargetPosition,\n order = 0,\n ): void {\n this.controlContainer.append(element, position, order);\n }\n\n registerIDContainer(\n id: string,\n controlRoot: HTMLElement,\n control?: LeafletControl,\n ): void {\n this.controlContainer.registerIDContainer(id, controlRoot, control);\n }\n\n unregisterIDContainer(id: string): void {\n this.controlContainer.unregisterIDContainer(id);\n }\n\n detach(): void {\n this.controlContainer.detach();\n }\n\n getContainer(): HTMLElement {\n return this.controlContainer.getContainer();\n }\n\n getControlContainer(): ControlContainer {\n return this.controlContainer;\n }\n\n private createControlContainer(\n options: LeafletControlContainerOptions,\n ): ControlContainer {\n const mapAny = this.map as any;\n const controlCorners = mapAny._controlCorners || {};\n const getCorner = (key: string, selector: string) =>\n (controlCorners[key] as HTMLElement | undefined) ||\n (this.map.getContainer().querySelector(selector) as HTMLElement | null) ||\n undefined;\n\n return new ControlContainer({\n ...options,\n map: this.map,\n container: mapAny._controlContainer as HTMLElement | undefined,\n positionContainers: {\n 'top-left': getCorner('topleft', '.leaflet-top.leaflet-left'),\n 'top-right': getCorner('topright', '.leaflet-top.leaflet-right'),\n 'bottom-left': getCorner('bottomleft', '.leaflet-bottom.leaflet-left'),\n 'bottom-right': getCorner(\n 'bottomright',\n '.leaflet-bottom.leaflet-right',\n ),\n },\n });\n }\n}\n"],"names":["resolveControlOptions","Control","createControlElement","setControlOptions","createButtonControlContent","createToggleControlContent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"leaflet-control-container.cjs.prod.js","sources":["../src/createControl.ts","../src/LeafletControlContainer.ts","../src/createButtonControl.ts","../src/createToggleControl.ts"],"sourcesContent":["import {\n createControlElement,\n resolveControlOptions,\n setControlOptions,\n} from '@nextgis/control-container';\nimport { Control } from 'leaflet';\n\nimport type {\n CreateControlOptions,\n MapControl,\n} from '@nextgis/control-container';\nimport type { Map as LeafletMap } from 'leaflet';\n\nexport function createControl<M = LeafletMap>(\n control: MapControl<M | LeafletMap>,\n options: CreateControlOptions = {},\n map?: M,\n): Control {\n const resolvedOptions = resolveControlOptions(options);\n const C = Control.extend({\n onAdd(leafletMap: LeafletMap) {\n const addClass = [\n 'leaflet-control',\n resolvedOptions.bar ? 'leaflet-bar' : '',\n resolvedOptions.addClass,\n ]\n .filter(Boolean)\n .join(' ');\n const element = createControlElement(\n control,\n { ...resolvedOptions, addClass },\n map ?? leafletMap,\n );\n if (!resolvedOptions.margin) {\n element.style.margin = '0px';\n }\n\n return element;\n },\n onRemove(leafletMap: LeafletMap) {\n control.onRemove(map ?? leafletMap);\n },\n });\n const instance = new C();\n setControlOptions(instance, resolvedOptions);\n return instance;\n}\n","import ControlContainer from '@nextgis/control-container';\n\nimport type {\n AddControlOptions,\n ControlContainerOptions,\n ControlTargetPosition,\n} from '@nextgis/control-container';\nimport type {\n Control as LeafletControl,\n ControlPosition,\n Map as LeafletMap,\n} from 'leaflet';\n\nexport type LeafletControlContainerOptions = Omit<\n ControlContainerOptions<LeafletMap>,\n 'container' | 'positionContainers' | 'map'\n>;\n\nexport class LeafletControlContainer {\n private readonly map: LeafletMap;\n private readonly controlContainer: ControlContainer;\n private readonly targets = new WeakMap<LeafletControl, HTMLElement>();\n private readonly ids = new WeakMap<LeafletControl, string>();\n\n constructor(map: LeafletMap, options: LeafletControlContainerOptions = {}) {\n this.map = map;\n this.controlContainer = this.createControlContainer(options);\n this.controlContainer.addTo(map.getContainer());\n }\n\n addControl(\n control: LeafletControl,\n position: ControlTargetPosition,\n options: AddControlOptions = {},\n ): LeafletControl {\n const targetPosition = typeof position === 'string' ? position : 'top-left';\n control.options.position = targetPosition.replace(\n '-',\n '',\n ) as ControlPosition;\n this.map.addControl(control);\n\n const container = control.getContainer();\n if (container) {\n this.controlContainer.append(container, position, options.order, control);\n this.targets.set(control, container);\n if (options.id) {\n this.controlContainer.registerIDContainer(\n options.id,\n container,\n control,\n );\n this.ids.set(control, options.id);\n }\n }\n\n return control;\n }\n\n removeControl(control: LeafletControl): void {\n this.map.removeControl(control);\n\n const id = this.ids.get(control);\n if (id) {\n this.controlContainer.unregisterIDContainer(id);\n this.ids.delete(control);\n }\n\n const target = this.targets.get(control);\n if (target) {\n this.controlContainer.removeTarget(target);\n this.targets.delete(control);\n }\n }\n\n append(\n element: HTMLElement | string,\n position: ControlTargetPosition,\n order = 0,\n ): void {\n this.controlContainer.append(element, position, order);\n }\n\n registerIDContainer(\n id: string,\n controlRoot: HTMLElement,\n control?: LeafletControl,\n ): void {\n this.controlContainer.registerIDContainer(id, controlRoot, control);\n }\n\n unregisterIDContainer(id: string): void {\n this.controlContainer.unregisterIDContainer(id);\n }\n\n detach(): void {\n this.controlContainer.detach();\n }\n\n getContainer(): HTMLElement {\n return this.controlContainer.getContainer();\n }\n\n getControlContainer(): ControlContainer {\n return this.controlContainer;\n }\n\n private createControlContainer(\n options: LeafletControlContainerOptions,\n ): ControlContainer {\n const mapAny = this.map as any;\n const controlCorners = mapAny._controlCorners || {};\n const getCorner = (key: string, selector: string) =>\n (controlCorners[key] as HTMLElement | undefined) ||\n (this.map.getContainer().querySelector(selector) as HTMLElement | null) ||\n undefined;\n\n return new ControlContainer({\n ...options,\n map: this.map,\n container: mapAny._controlContainer as HTMLElement | undefined,\n positionContainers: {\n 'top-left': getCorner('topleft', '.leaflet-top.leaflet-left'),\n 'top-right': getCorner('topright', '.leaflet-top.leaflet-right'),\n 'bottom-left': getCorner('bottomleft', '.leaflet-bottom.leaflet-left'),\n 'bottom-right': getCorner(\n 'bottomright',\n '.leaflet-bottom.leaflet-right',\n ),\n },\n });\n }\n}\n","import { createButtonControlContent } from '@nextgis/control-container';\n\nimport { createControl } from './createControl';\n\nimport type { ButtonControlOptions } from '@nextgis/control-container';\nimport type { Control, Map as LeafletMap } from 'leaflet';\n\nexport function createButtonControl<M = LeafletMap>(\n options: ButtonControlOptions,\n map?: M,\n): Control {\n return createControl<M>(\n createButtonControlContent(options),\n { bar: true, margin: options.margin },\n map,\n );\n}\n","import { createToggleControlContent } from '@nextgis/control-container';\n\nimport { createControl } from './createControl';\n\nimport type {\n ToggleControl,\n ToggleControlOptions,\n} from '@nextgis/control-container';\nimport type { Control, Map as LeafletMap } from 'leaflet';\n\nexport function createToggleControl<M = LeafletMap>(\n options: ToggleControlOptions,\n map?: M,\n): Control & ToggleControl {\n const toggleContent = createToggleControlContent(options);\n const control = createControl<M>(\n toggleContent,\n { bar: true, margin: options.margin },\n map,\n ) as Control & ToggleControl;\n control.onClick = toggleContent.onClick;\n control.changeStatus = toggleContent.changeStatus;\n control.getStatus = toggleContent.getStatus;\n control.switch = toggleContent.switch;\n Object.defineProperty(control, 'disableOnSecondClick', {\n configurable: true,\n get: () => toggleContent.disableOnSecondClick,\n set: (value) => {\n toggleContent.disableOnSecondClick = value;\n },\n });\n control.onStatusChange = toggleContent.onStatusChange;\n return control;\n}\n"],"names":["createControl","control","options","map","resolvedOptions","resolveControlOptions","instance","Control","extend","onAdd","leafletMap","addClass","bar","filter","Boolean","join","element","createControlElement","margin","style","onRemove","setControlOptions","constructor","__publicField","this","WeakMap","controlContainer","createControlContainer","addTo","getContainer","addControl","position","replace","container","append","order","targets","set","id","registerIDContainer","ids","removeControl","get","unregisterIDContainer","delete","target","removeTarget","controlRoot","detach","getControlContainer","mapAny","controlCorners","_controlCorners","getCorner","key","selector","querySelector","ControlContainer","_controlContainer","positionContainers","createButtonControlContent","toggleContent","createToggleControlContent","onClick","changeStatus","getStatus","switch","Object","defineProperty","configurable","disableOnSecondClick","value","onStatusChange"],"mappings":"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"}
1
+ {"version":3,"file":"leaflet-control-container.cjs.prod.js","sources":["../src/createControl.ts","../src/LeafletControlContainer.ts","../src/createButtonControl.ts","../src/createToggleControl.ts"],"sourcesContent":["import {\n createControlElement,\n resolveControlOptions,\n setControlOptions,\n} from '@nextgis/control-container';\nimport { Control } from 'leaflet';\n\nimport type {\n CreateControlOptions,\n MapControl,\n} from '@nextgis/control-container';\nimport type { Map as LeafletMap } from 'leaflet';\n\nexport function createControl<M = LeafletMap>(\n control: MapControl<M | LeafletMap>,\n options: CreateControlOptions = {},\n map?: M,\n): Control {\n const resolvedOptions = resolveControlOptions(options);\n const C = Control.extend({\n onAdd(leafletMap: LeafletMap) {\n const addClass = [\n 'leaflet-control',\n resolvedOptions.bar ? 'leaflet-bar' : '',\n resolvedOptions.addClass,\n ]\n .filter(Boolean)\n .join(' ');\n const element = createControlElement(\n control,\n { ...resolvedOptions, addClass },\n map ?? leafletMap,\n );\n if (!resolvedOptions.margin) {\n element.style.margin = '0px';\n }\n\n return element;\n },\n onRemove(leafletMap: LeafletMap) {\n control.onRemove(map ?? leafletMap);\n },\n });\n const instance = new C();\n setControlOptions(instance, resolvedOptions);\n return instance;\n}\n","import ControlContainer from '@nextgis/control-container';\n\nimport type {\n AddControlOptions,\n ControlContainerOptions,\n ControlTargetPosition,\n} from '@nextgis/control-container';\nimport type {\n Control as LeafletControl,\n ControlPosition,\n Map as LeafletMap,\n} from 'leaflet';\n\nimport './LeafletControlContainer.css';\n\nexport type LeafletControlContainerOptions = Omit<\n ControlContainerOptions<LeafletMap>,\n 'container' | 'positionContainers' | 'map'\n>;\n\nexport class LeafletControlContainer {\n private readonly map: LeafletMap;\n private readonly controlContainer: ControlContainer;\n private readonly targets = new WeakMap<LeafletControl, HTMLElement>();\n private readonly ids = new WeakMap<LeafletControl, string>();\n\n constructor(map: LeafletMap, options: LeafletControlContainerOptions = {}) {\n this.map = map;\n this.controlContainer = this.createControlContainer(options);\n this.controlContainer.addTo(map.getContainer());\n }\n\n addControl(\n control: LeafletControl,\n position: ControlTargetPosition,\n options: AddControlOptions = {},\n ): LeafletControl {\n const targetPosition = typeof position === 'string' ? position : 'top-left';\n control.options.position = targetPosition.replace(\n '-',\n '',\n ) as ControlPosition;\n this.map.addControl(control);\n\n const container = control.getContainer();\n if (container) {\n this.controlContainer.append(container, position, options.order, control);\n this.targets.set(control, container);\n if (options.id) {\n this.controlContainer.registerIDContainer(\n options.id,\n container,\n control,\n );\n this.ids.set(control, options.id);\n }\n }\n\n return control;\n }\n\n removeControl(control: LeafletControl): void {\n this.map.removeControl(control);\n\n const id = this.ids.get(control);\n if (id) {\n this.controlContainer.unregisterIDContainer(id);\n this.ids.delete(control);\n }\n\n const target = this.targets.get(control);\n if (target) {\n this.controlContainer.removeTarget(target);\n this.targets.delete(control);\n }\n }\n\n append(\n element: HTMLElement | string,\n position: ControlTargetPosition,\n order = 0,\n ): void {\n this.controlContainer.append(element, position, order);\n }\n\n registerIDContainer(\n id: string,\n controlRoot: HTMLElement,\n control?: LeafletControl,\n ): void {\n this.controlContainer.registerIDContainer(id, controlRoot, control);\n }\n\n unregisterIDContainer(id: string): void {\n this.controlContainer.unregisterIDContainer(id);\n }\n\n detach(): void {\n this.controlContainer.detach();\n }\n\n getContainer(): HTMLElement {\n return this.controlContainer.getContainer();\n }\n\n getControlContainer(): ControlContainer {\n return this.controlContainer;\n }\n\n private createControlContainer(\n options: LeafletControlContainerOptions,\n ): ControlContainer {\n const mapAny = this.map as any;\n const controlCorners = mapAny._controlCorners || {};\n const getCorner = (key: string, selector: string) =>\n (controlCorners[key] as HTMLElement | undefined) ||\n (this.map.getContainer().querySelector(selector) as HTMLElement | null) ||\n undefined;\n\n return new ControlContainer({\n ...options,\n map: this.map,\n container: mapAny._controlContainer as HTMLElement | undefined,\n positionContainers: {\n 'top-left': getCorner('topleft', '.leaflet-top.leaflet-left'),\n 'top-right': getCorner('topright', '.leaflet-top.leaflet-right'),\n 'bottom-left': getCorner('bottomleft', '.leaflet-bottom.leaflet-left'),\n 'bottom-right': getCorner(\n 'bottomright',\n '.leaflet-bottom.leaflet-right',\n ),\n },\n });\n }\n}\n","import { createButtonControlContent } from '@nextgis/control-container';\n\nimport { createControl } from './createControl';\n\nimport type { ButtonControlOptions } from '@nextgis/control-container';\nimport type { Control, Map as LeafletMap } from 'leaflet';\n\nexport function createButtonControl<M = LeafletMap>(\n options: ButtonControlOptions,\n map?: M,\n): Control {\n return createControl<M>(\n createButtonControlContent(options),\n { bar: true, margin: options.margin },\n map,\n );\n}\n","import { createToggleControlContent } from '@nextgis/control-container';\n\nimport { createControl } from './createControl';\n\nimport type {\n ToggleControl,\n ToggleControlOptions,\n} from '@nextgis/control-container';\nimport type { Control, Map as LeafletMap } from 'leaflet';\n\nexport function createToggleControl<M = LeafletMap>(\n options: ToggleControlOptions,\n map?: M,\n): Control & ToggleControl {\n const toggleContent = createToggleControlContent(options);\n const control = createControl<M>(\n toggleContent,\n { bar: true, margin: options.margin },\n map,\n ) as Control & ToggleControl;\n control.onClick = toggleContent.onClick;\n control.changeStatus = toggleContent.changeStatus;\n control.getStatus = toggleContent.getStatus;\n control.switch = toggleContent.switch;\n Object.defineProperty(control, 'disableOnSecondClick', {\n configurable: true,\n get: () => toggleContent.disableOnSecondClick,\n set: (value) => {\n toggleContent.disableOnSecondClick = value;\n },\n });\n control.onStatusChange = toggleContent.onStatusChange;\n return control;\n}\n"],"names":["createControl","control","options","map","resolvedOptions","resolveControlOptions","instance","Control","extend","onAdd","leafletMap","addClass","bar","filter","Boolean","join","element","createControlElement","margin","style","onRemove","setControlOptions","constructor","__publicField","this","WeakMap","controlContainer","createControlContainer","addTo","getContainer","addControl","position","replace","container","append","order","targets","set","id","registerIDContainer","ids","removeControl","get","unregisterIDContainer","delete","target","removeTarget","controlRoot","detach","getControlContainer","mapAny","controlCorners","_controlCorners","getCorner","key","selector","querySelector","ControlContainer","_controlContainer","positionContainers","createButtonControlContent","toggleContent","createToggleControlContent","onClick","changeStatus","getStatus","switch","Object","defineProperty","configurable","disableOnSecondClick","value","onStatusChange"],"mappings":"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"}
@@ -1 +1,2 @@
1
- .webmap-ctrl-bottom-left,.webmap-ctrl-bottom-right,.webmap-ctrl-left,.webmap-ctrl-right,.webmap-ctrl-top-left,.webmap-ctrl-top-right{position:absolute;pointer-events:none;z-index:9999}.webmap-ctrl-left,.webmap-ctrl-right{height:100%}.webmap-ctrl-left{padding-right:0}.webmap-ctrl-right{padding-left:0}.webmap-ctrl-top-left{top:0;left:0}.webmap-ctrl-top-right{top:0;right:0}.webmap-ctrl-bottom-left{bottom:0;left:0}.webmap-ctrl-bottom-right{right:0;bottom:0}.webmap-ctrl,.webmap-ctrl-wrapper{clear:both;pointer-events:auto;transform:translate(0)}.webmap-ctrl-top-left>.webmap-ctrl,.webmap-ctrl-top-left>.webmap-ctrl-wrapper{float:left}.webmap-ctrl-top-right>.webmap-ctrl,.webmap-ctrl-top-right>.webmap-ctrl-wrapper{float:right}.webmap-ctrl-bottom-left>.webmap-ctrl,.webmap-ctrl-bottom-left>.webmap-ctrl-wrapper{float:left}.webmap-ctrl-bottom-right>.webmap-ctrl,.webmap-ctrl-bottom-right>.webmap-ctrl-wrapper{float:right}.webmap-ctrl-top-left>.webmap-ctrl-margin{margin:10px 0 0 10px}.webmap-ctrl-top-right>.webmap-ctrl-margin{margin:10px 10px 0 0}.webmap-ctrl-bottom-left>.webmap-ctrl-margin{margin:0 0 10px 10px}.webmap-ctrl-bottom-right>.webmap-ctrl-margin{margin:0 10px 10px 0}.webmap-ctrl-group{border-radius:4px;background:#fff}.webmap-ctrl .webmap-ctrl-wrapper{clear:none;float:none;margin:0}.webmap-ctrl .webmap-ctrl-wrapper>.webmap-ctrl,.webmap-ctrl>.webmap-ctrl{clear:none;float:none;margin:0!important}.webmap-ctrl-horizontal,.webmap-ctrl-vertical{display:flex}.webmap-ctrl-vertical{flex-direction:column;align-items:var(--webmap-ctrl-align,flex-start)}.webmap-ctrl-horizontal{flex-direction:row;align-items:var(--webmap-ctrl-align,stretch)}.webmap-ctrl:not(.webmap-ctrl-group).webmap-ctrl-horizontal,.webmap-ctrl:not(.webmap-ctrl-group).webmap-ctrl-vertical{gap:var(--webmap-ctrl-gap,0)}.webmap-ctrl-gapless:not(.webmap-ctrl-group){border:2px solid rgba(0,0,0,.1);border-radius:4px;box-sizing:border-box;background:#fff;overflow:hidden}.webmap-ctrl-gapless:not(.webmap-ctrl-group):not(:empty){box-shadow:none}.webmap-ctrl-gapless>.webmap-ctrl-group,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.webmap-ctrl-group{border-radius:0;border:0!important;box-shadow:none!important}.webmap-ctrl-gapless>.leaflet-bar,.webmap-ctrl-gapless>.maplibregl-ctrl-group,.webmap-ctrl-gapless>.ol-control,.webmap-ctrl-gapless>.webmap-ctrl,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.leaflet-bar,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.maplibregl-ctrl-group,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.ol-control,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.webmap-ctrl{border:0!important;box-shadow:none!important}.webmap-ctrl-gapless.webmap-ctrl-horizontal>.webmap-ctrl-group:first-child,.webmap-ctrl-gapless.webmap-ctrl-horizontal>.webmap-ctrl-wrapper:first-child>.webmap-ctrl-group{border-radius:4px 0 0 4px}.webmap-ctrl-gapless.webmap-ctrl-horizontal>.webmap-ctrl-group:last-child,.webmap-ctrl-gapless.webmap-ctrl-horizontal>.webmap-ctrl-wrapper:last-child>.webmap-ctrl-group{border-radius:0 4px 4px 0}.webmap-ctrl-gapless.webmap-ctrl-vertical>.webmap-ctrl-group:first-child,.webmap-ctrl-gapless.webmap-ctrl-vertical>.webmap-ctrl-wrapper:first-child>.webmap-ctrl-group{border-radius:4px 4px 0 0}.webmap-ctrl-gapless.webmap-ctrl-vertical>.webmap-ctrl-group:last-child,.webmap-ctrl-gapless.webmap-ctrl-vertical>.webmap-ctrl-wrapper:last-child>.webmap-ctrl-group{border-radius:0 0 4px 4px}.webmap-ctrl-gapless>.webmap-ctrl-group:only-child,.webmap-ctrl-gapless>.webmap-ctrl-wrapper:only-child>.webmap-ctrl-group{border-radius:4px}.webmap-ctrl-horizontal>.webmap-ctrl-wrapper,.webmap-ctrl-vertical>.webmap-ctrl-wrapper{display:flex}.webmap-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.webmap-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}.webmap-ctrl-gapless:not(.webmap-ctrl-group){border-color:ButtonText}}.webmap-ctrl-gapless>.webmap-ctrl-group:not(:empty),.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.webmap-ctrl-group:not(:empty){border:0!important;box-shadow:none!important}.webmap-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer}.webmap-ctrl-button{line-height:inherit!important;font-weight:400!important}.webmap-ctrl-group button+button{border-top:1px solid #ddd}.webmap-ctrl-group.webmap-ctrl-horizontal>button+button{border-top:0;border-left:1px solid #ddd}.webmap-ctrl-gapless .webmap-ctrl-group button+button,.webmap-ctrl-group.webmap-ctrl-gapless button+button{border-top:0!important;border-left:0!important}.webmap-ctrl-gapless .webmap-ctrl-group button{border:0!important;border-radius:0!important;box-shadow:none!important}.webmap-ctrl button .webmap-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (-ms-high-contrast:active){.webmap-ctrl-icon{background-color:transparent}.webmap-ctrl-group button+button{border-top:1px solid ButtonText}}.webmap-ctrl button::-moz-focus-inner{border:0;padding:0}.webmap-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.webmap-ctrl button:disabled{cursor:not-allowed}.webmap-ctrl button:disabled .webmap-ctrl-icon{opacity:.25}.webmap-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.webmap-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.webmap-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.webmap-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.webmap-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.webmap-ctrl-group button:focus:only-child{border-radius:inherit}.webmap-ctrl button.webmap-ctrl-zoom-out .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M10%2013c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h9c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013z%22%2F%3E%3C%2Fsvg%3E")}.webmap-ctrl button.webmap-ctrl-zoom-in .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M14.5%208.5c-.75%200-1.5.75-1.5%201.5v3h-3c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h3v3c0%20.75.75%201.5%201.5%201.5S16%2019.75%2016%2019v-3h3c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013h-3v-3c0-.75-.75-1.5-1.5-1.5%22%2F%3E%3C%2Fsvg%3E")}@media (-ms-high-contrast:active){.webmap-ctrl button.webmap-ctrl-zoom-out .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M10%2013c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h9c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013z%22%2F%3E%3C%2Fsvg%3E")}.webmap-ctrl button.webmap-ctrl-zoom-in .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M14.5%208.5c-.75%200-1.5.75-1.5%201.5v3h-3c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h3v3c0%20.75.75%201.5%201.5%201.5S16%2019.75%2016%2019v-3h3c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013h-3v-3c0-.75-.75-1.5-1.5-1.5%22%2F%3E%3C%2Fsvg%3E")}}@media (-ms-high-contrast:black-on-white){.webmap-ctrl button.webmap-ctrl-zoom-out .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M10%2013c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h9c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013z%22%2F%3E%3C%2Fsvg%3E")}.webmap-ctrl button.webmap-ctrl-zoom-in .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M14.5%208.5c-.75%200-1.5.75-1.5%201.5v3h-3c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h3v3c0%20.75.75%201.5%201.5%201.5S16%2019.75%2016%2019v-3h3c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013h-3v-3c0-.75-.75-1.5-1.5-1.5%22%2F%3E%3C%2Fsvg%3E")}}
1
+ .webmap-ctrl-bottom-left,.webmap-ctrl-bottom-right,.webmap-ctrl-left,.webmap-ctrl-right,.webmap-ctrl-top-left,.webmap-ctrl-top-right{position:absolute;pointer-events:none;z-index:9999}.webmap-ctrl-left,.webmap-ctrl-right{height:100%}.webmap-ctrl-left{padding-right:0}.webmap-ctrl-right{padding-left:0}.webmap-ctrl-top-left{top:0;left:0}.webmap-ctrl-top-right{top:0;right:0}.webmap-ctrl-bottom-left{bottom:0;left:0}.webmap-ctrl-bottom-right{right:0;bottom:0}.webmap-ctrl,.webmap-ctrl-wrapper{clear:both;pointer-events:auto;transform:translate(0)}.webmap-ctrl-top-left>.webmap-ctrl,.webmap-ctrl-top-left>.webmap-ctrl-wrapper{float:left}.webmap-ctrl-top-right>.webmap-ctrl,.webmap-ctrl-top-right>.webmap-ctrl-wrapper{float:right}.webmap-ctrl-bottom-left>.webmap-ctrl,.webmap-ctrl-bottom-left>.webmap-ctrl-wrapper{float:left}.webmap-ctrl-bottom-right>.webmap-ctrl,.webmap-ctrl-bottom-right>.webmap-ctrl-wrapper{float:right}.webmap-ctrl-top-left>.webmap-ctrl-margin{margin:10px 0 0 10px}.webmap-ctrl-top-right>.webmap-ctrl-margin{margin:10px 10px 0 0}.webmap-ctrl-bottom-left>.webmap-ctrl-margin{margin:0 0 10px 10px}.webmap-ctrl-bottom-right>.webmap-ctrl-margin{margin:0 10px 10px 0}.webmap-ctrl-group{border-radius:4px;background:#fff}.webmap-ctrl .webmap-ctrl-wrapper{clear:none;float:none;margin:0}.webmap-ctrl .webmap-ctrl-wrapper>.webmap-ctrl,.webmap-ctrl>.webmap-ctrl{clear:none;float:none;margin:0!important}.webmap-ctrl-horizontal,.webmap-ctrl-vertical{display:flex}.webmap-ctrl-vertical{flex-direction:column;align-items:var(--webmap-ctrl-align,flex-start)}.webmap-ctrl-horizontal{flex-direction:row;align-items:var(--webmap-ctrl-align,stretch)}.webmap-ctrl:not(.webmap-ctrl-group).webmap-ctrl-horizontal,.webmap-ctrl:not(.webmap-ctrl-group).webmap-ctrl-vertical{gap:var(--webmap-ctrl-gap,0)}.webmap-ctrl-gapless:not(.webmap-ctrl-group){border:2px solid rgba(0,0,0,.1);border-radius:4px;box-sizing:border-box;background:#fff;overflow:hidden}.webmap-ctrl-gapless:not(.webmap-ctrl-group):not(:empty){box-shadow:none}.webmap-ctrl-gapless>.webmap-ctrl-group,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.webmap-ctrl-group{border-radius:0;border:0!important;box-shadow:none!important}.webmap-ctrl-gapless>.leaflet-bar,.webmap-ctrl-gapless>.maplibregl-ctrl-group,.webmap-ctrl-gapless>.ol-control,.webmap-ctrl-gapless>.webmap-ctrl,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.leaflet-bar,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.maplibregl-ctrl-group,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.ol-control,.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.webmap-ctrl{border:0!important;box-shadow:none!important}.webmap-ctrl-gapless.webmap-ctrl-horizontal>.webmap-ctrl-group:first-child,.webmap-ctrl-gapless.webmap-ctrl-horizontal>.webmap-ctrl-wrapper:first-child>.webmap-ctrl-group{border-radius:4px 0 0 4px}.webmap-ctrl-gapless.webmap-ctrl-horizontal>.webmap-ctrl-group:last-child,.webmap-ctrl-gapless.webmap-ctrl-horizontal>.webmap-ctrl-wrapper:last-child>.webmap-ctrl-group{border-radius:0 4px 4px 0}.webmap-ctrl-gapless.webmap-ctrl-vertical>.webmap-ctrl-group:first-child,.webmap-ctrl-gapless.webmap-ctrl-vertical>.webmap-ctrl-wrapper:first-child>.webmap-ctrl-group{border-radius:4px 4px 0 0}.webmap-ctrl-gapless.webmap-ctrl-vertical>.webmap-ctrl-group:last-child,.webmap-ctrl-gapless.webmap-ctrl-vertical>.webmap-ctrl-wrapper:last-child>.webmap-ctrl-group{border-radius:0 0 4px 4px}.webmap-ctrl-gapless>.webmap-ctrl-group:only-child,.webmap-ctrl-gapless>.webmap-ctrl-wrapper:only-child>.webmap-ctrl-group{border-radius:4px}.webmap-ctrl-horizontal>.webmap-ctrl-wrapper,.webmap-ctrl-vertical>.webmap-ctrl-wrapper{display:flex}.webmap-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.webmap-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}.webmap-ctrl-gapless:not(.webmap-ctrl-group){border-color:ButtonText}}.webmap-ctrl-gapless>.webmap-ctrl-group:not(:empty),.webmap-ctrl-gapless>.webmap-ctrl-wrapper>.webmap-ctrl-group:not(:empty){border:0!important;box-shadow:none!important}.webmap-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer}.webmap-ctrl-button{line-height:inherit!important;font-weight:400!important}.webmap-ctrl-group button+button{border-top:1px solid #ddd}.webmap-ctrl-group.webmap-ctrl-horizontal>button+button{border-top:0;border-left:1px solid #ddd}.webmap-ctrl-gapless .webmap-ctrl-group button+button,.webmap-ctrl-group.webmap-ctrl-gapless button+button{border-top:0!important;border-left:0!important}.webmap-ctrl-gapless .webmap-ctrl-group button{border:0!important;border-radius:0!important;box-shadow:none!important}.webmap-ctrl button .webmap-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (-ms-high-contrast:active){.webmap-ctrl-icon{background-color:transparent}.webmap-ctrl-group button+button{border-top:1px solid ButtonText}}.webmap-ctrl button::-moz-focus-inner{border:0;padding:0}.webmap-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.webmap-ctrl button:disabled{cursor:not-allowed}.webmap-ctrl button:disabled .webmap-ctrl-icon{opacity:.25}.webmap-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.webmap-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.webmap-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.webmap-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.webmap-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.webmap-ctrl-group button:focus:only-child{border-radius:inherit}.webmap-ctrl button.webmap-ctrl-zoom-out .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M10%2013c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h9c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013z%22%2F%3E%3C%2Fsvg%3E")}.webmap-ctrl button.webmap-ctrl-zoom-in .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M14.5%208.5c-.75%200-1.5.75-1.5%201.5v3h-3c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h3v3c0%20.75.75%201.5%201.5%201.5S16%2019.75%2016%2019v-3h3c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013h-3v-3c0-.75-.75-1.5-1.5-1.5%22%2F%3E%3C%2Fsvg%3E")}@media (-ms-high-contrast:active){.webmap-ctrl button.webmap-ctrl-zoom-out .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M10%2013c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h9c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013z%22%2F%3E%3C%2Fsvg%3E")}.webmap-ctrl button.webmap-ctrl-zoom-in .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M14.5%208.5c-.75%200-1.5.75-1.5%201.5v3h-3c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h3v3c0%20.75.75%201.5%201.5%201.5S16%2019.75%2016%2019v-3h3c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013h-3v-3c0-.75-.75-1.5-1.5-1.5%22%2F%3E%3C%2Fsvg%3E")}}@media (-ms-high-contrast:black-on-white){.webmap-ctrl button.webmap-ctrl-zoom-out .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M10%2013c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h9c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013z%22%2F%3E%3C%2Fsvg%3E")}.webmap-ctrl button.webmap-ctrl-zoom-in .webmap-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2229%22%20height%3D%2229%22%20viewBox%3D%220%200%2029%2029%22%3E%3Cpath%20d%3D%22M14.5%208.5c-.75%200-1.5.75-1.5%201.5v3h-3c-.75%200-1.5.75-1.5%201.5S9.25%2016%2010%2016h3v3c0%20.75.75%201.5%201.5%201.5S16%2019.75%2016%2019v-3h3c.75%200%201.5-.75%201.5-1.5S19.75%2013%2019%2013h-3v-3c0-.75-.75-1.5-1.5-1.5%22%2F%3E%3C%2Fsvg%3E")}}
2
+ .leaflet-bar.webmap-ctrl-group:not(:empty){box-shadow:0 0 2px rgba(0,0,0,.1)}
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/leaflet-control-container; version: 4.0.0-rc.0; author: NextGIS */
1
+ /** Bundle of @nextgis/leaflet-control-container; version: 4.0.0-rc.2; author: NextGIS */
2
2
  function getElement(el) {
3
3
  if (typeof el === "string") {
4
4
  let el_ = document.getElementById(el);