UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

186 lines (184 loc) • 6.22 kB
/** * DevExtreme (cjs/__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/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _index = require("../../../common/core/events/utils/index"); var _class = _interopRequireDefault(require("../../../core/class")); var _type = require("../../../core/utils/type"); var _m_type = require("../../core/utils/m_type"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } 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.default.abstract() } updateMapType() { _class.default.abstract() } updateDisabled() { _class.default.abstract() } updateBounds() { _class.default.abstract() } updateCenter() { _class.default.abstract() } updateZoom() { _class.default.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.default.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.default.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 ((0, _type.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 ((0, _type.isPlainObject)(location) && (0, _type.isNumeric)(location.lat) && (0, _type.isNumeric)(location.lng)) { return location } return null } _areBoundsSet() { const bounds = this._option("bounds"); return (0, _m_type.isDefined)(null === bounds || void 0 === bounds ? void 0 : bounds.northEast) && (0, _m_type.isDefined)(null === bounds || void 0 === bounds ? void 0 : bounds.southWest) } _addEventNamespace(name) { return (0, _index.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) } } var _default = exports.default = Provider;