UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

182 lines (181 loc) • 5.86 kB
/** * DevExtreme (esm/__internal/ui/map/provider.js) * Version: 25.2.3 * Build date: Fri Dec 12 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import { addNamespace } from "../../../common/core/events/utils/index"; import Class from "../../../core/class"; import { isNumeric, isPlainObject } from "../../../core/utils/type"; import { isDefined } from "../../core/utils/m_type"; class Provider { constructor(map, $container) { this._mapWidget = map; this._$container = $container } _defaultRouteWeight() { return 5 } _defaultRouteOpacity() { return .5 } _defaultRouteColor() { return "#0000FF" } render(markerOptions, routeOptions) { return this._renderImpl().then((() => Promise.all([this._applyFunctionIfNeeded("addMarkers", markerOptions), this._applyFunctionIfNeeded("addRoutes", routeOptions)]).then((() => true)))) } _renderImpl() { return Promise.resolve() } updateDimensions() { Class.abstract() } updateMapType() { Class.abstract() } updateDisabled() { Class.abstract() } updateBounds() { Class.abstract() } updateCenter() { Class.abstract() } updateZoom() { Class.abstract() } updateControls(markers, routes) { return Promise.resolve() } updateMarkers(markerOptionsToRemove, markerOptionsToAdd) { return new Promise((resolve => { this._applyFunctionIfNeeded("removeMarkers", markerOptionsToRemove).then((removeValue => { this._applyFunctionIfNeeded("addMarkers", markerOptionsToAdd).then((addValue => { resolve(addValue || removeValue) })) })) })) } addMarkers(options) { return Promise.resolve() } removeMarkers(options) { return Promise.resolve() } adjustViewport() { Class.abstract() } updateRoutes(routeOptionsToRemove, routeOptionsToAdd) { return new Promise((resolve => { this._applyFunctionIfNeeded("removeRoutes", routeOptionsToRemove).then((removeValue => { this._applyFunctionIfNeeded("addRoutes", routeOptionsToAdd).then((addValue => { resolve(addValue || removeValue) })) })) })) } addRoutes(options) { return Promise.resolve() } removeRoutes(options) { return Promise.resolve() } clean() { Class.abstract() } map() { return this._map } isEventsCanceled(e) { return false } _option(name, value) { if (void 0 === value) { const mapOptions = this._mapWidget.option(); return mapOptions[name] } this._mapWidget.setOptionSilent(name, value); return } _keyOption(providerName) { const key = this._option("apiKey") ?? ""; if ("string" === typeof key) { return key } if (isPlainObject(key)) { return key[providerName] ?? "" } return "" } _parseTooltipOptions(option) { const isStringOption = "string" === typeof option; return { text: isStringOption ? option : option.text ?? "", visible: isStringOption ? false : option.isShown ?? false } } _getLatLng(location) { if ("string" === typeof location) { const coords = location.split(",").map((item => item.trim())); const numericRegex = /^[-+]?[0-9]*\.?[0-9]*$/; if (2 === coords.length && numericRegex.exec(coords[0]) && numericRegex.exec(coords[1])) { return { lat: parseFloat(coords[0]), lng: parseFloat(coords[1]) } } } else if (Array.isArray(location) && 2 === location.length) { return { lat: location[0], lng: location[1] } } else if (isPlainObject(location) && isNumeric(location.lat) && isNumeric(location.lng)) { return location } return null } _areBoundsSet() { const bounds = this._option("bounds"); return isDefined(null === bounds || void 0 === bounds ? void 0 : bounds.northEast) && isDefined(null === bounds || void 0 === bounds ? void 0 : bounds.southWest) } _addEventNamespace(name) { return addNamespace(name, this._mapWidget.NAME) } _applyFunctionIfNeeded(fnName, array) { if (!array.length) { return Promise.resolve() } const isMarkersUpdate = "addMarkers" === fnName || "removeMarkers" === fnName; if (isMarkersUpdate) { return this[fnName](array) } return this[fnName](array) } _fireClickAction(actionArguments) { this._mapWidget._createActionByOption("onClick")(actionArguments) } _fireMarkerAddedAction(actionArguments) { this._mapWidget._createActionByOption("onMarkerAdded")(actionArguments) } _fireMarkerRemovedAction(actionArguments) { this._mapWidget._createActionByOption("onMarkerRemoved")(actionArguments) } _fireRouteAddedAction(actionArguments) { this._mapWidget._createActionByOption("onRouteAdded")(actionArguments) } _fireRouteRemovedAction(actionArguments) { this._mapWidget._createActionByOption("onRouteRemoved")(actionArguments) } } export default Provider;