From 2af4698bbc0b6c430288ed95071b0479641c4e54 Mon Sep 17 00:00:00 2001 From: AlisherAmonulloev Date: Mon, 26 Oct 2026 18:19:15 +0200 Subject: [PATCH 1/5] Map: add jQuery OpenStreetMap provider demo --- .../OpenStreetMapProvider/client-script.js | 26 ++++ .../Map/OpenStreetMapProvider/description.md | 1 - .../OpenStreetMapProvider/jQuery/index.html | 33 +++++ .../Map/OpenStreetMapProvider/jQuery/index.js | 115 ++++++++++++++++++ .../OpenStreetMapProvider/jQuery/styles.css | 44 +++++++ apps/demos/menuMeta.json | 3 +- apps/demos/testing/skipped-tests.js | 3 +- apps/demos/utils/server/csp-server.js | 7 ++ .../tests/server/osm-client-script.test.js | 99 +++++++++++++++ 9 files changed, 327 insertions(+), 4 deletions(-) create mode 100644 apps/demos/Demos/Map/OpenStreetMapProvider/client-script.js create mode 100644 apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.html create mode 100644 apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js create mode 100644 apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/styles.css create mode 100644 apps/demos/utils/tests/server/osm-client-script.test.js diff --git a/apps/demos/Demos/Map/OpenStreetMapProvider/client-script.js b/apps/demos/Demos/Map/OpenStreetMapProvider/client-script.js new file mode 100644 index 000000000000..34df58e14996 --- /dev/null +++ b/apps/demos/Demos/Map/OpenStreetMapProvider/client-script.js @@ -0,0 +1,26 @@ +// Loaded only by the demo test runners. Do not send CI requests to Stadia Maps. +(() => { + const tileImage = `data:image/svg+xml,${encodeURIComponent('')}`; + const imageSource = Object.getOwnPropertyDescriptor(window.HTMLImageElement.prototype, 'src'); + + Object.defineProperty(window.HTMLImageElement.prototype, 'src', { + ...imageSource, + set(value) { + const isDemoTile = /^https:\/\/tiles-eu\.stadiamaps\.com\/tiles\/alidade_bright\/\d+\/\d+\/\d+\.png(?:\?.*)?$/.test(String(value)); + imageSource.set.call(this, isDemoTile ? tileImage : value); + }, + }); + + const nativeFetch = window.fetch; + window.fetch = function fetch(input, options) { + const url = input instanceof window.Request ? input.url : String(input); + if (/^https:\/\/api-eu\.stadiamaps\.com\/route\/v1(?:\?.*)?$/.test(url)) { + // Polyline6 connecting the demo's four waypoints; not real routing service data. + const shape = 'gidxlA|`palCtas@jrf@nxBowH||mAddn@'; + return Promise.resolve(new window.Response(JSON.stringify({ trip: { legs: [{ shape }] } }), { + headers: { 'Content-Type': 'application/json' }, + })); + } + return nativeFetch.call(this, input, options); + }; +})(); diff --git a/apps/demos/Demos/Map/OpenStreetMapProvider/description.md b/apps/demos/Demos/Map/OpenStreetMapProvider/description.md index 23a024e7ba56..e69de29bb2d1 100644 --- a/apps/demos/Demos/Map/OpenStreetMapProvider/description.md +++ b/apps/demos/Demos/Map/OpenStreetMapProvider/description.md @@ -1 +0,0 @@ -We expect to add [OpenStreetMap](https://www.openstreetmap.org/) (OSM) support to the DevExtreme [Map](/Documentation/Guide/UI_Components/Map/Overview/) component. The new provider will allow you to connect the Map to OSM-compatible tile, geocoding, and routing services, including commercial providers and self-hosted infrastructure. diff --git a/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.html b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.html new file mode 100644 index 000000000000..27562512d160 --- /dev/null +++ b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.html @@ -0,0 +1,33 @@ + + + + DevExtreme Demo + + + + + + + + + + + + + +
+
+
+
Options
+
+ Set mode +
+
+
+ Route color +
+
+
+
+ + diff --git a/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js new file mode 100644 index 000000000000..bfcd89999a8b --- /dev/null +++ b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js @@ -0,0 +1,115 @@ +$(() => { + const routeCache = new Map(); + + async function calculateRoute({ locations, mode }) { + const body = JSON.stringify({ + locations: locations.map(({ lat, lng }) => ({ lat, lon: lng })), // eslint-disable-line spellcheck/spell-checker + costing: mode === 'walking' ? 'pedestrian' : 'auto', + directions_type: 'none', + }); + + if (routeCache.has(body)) { + return routeCache.get(body); + } + + const response = await fetch('https://api-eu.stadiamaps.com/route/v1', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body, + }); + if (!response.ok) { + throw new Error(`Stadia Maps routing failed: HTTP ${response.status}`); + } + + const { trip } = await response.json(); + if (!trip?.legs?.length) { + throw new Error('Stadia Maps returned no route.'); + } + const format = new ol.format.Polyline({ factor: 1e6 }); + const route = { + type: 'LineString', + coordinates: trip.legs.flatMap((leg) => format.readGeometry(leg.shape).getCoordinates()), + }; + routeCache.set(body, route); + return route; + } + + const map = $('#map').dxMap({ + provider: 'osm', + providerConfig: { + // Demo only: tiles are served under Developer Express Inc's Stadia Maps subscription via domain-based authentication. + // This configuration will not work on your domain. Configure your own tile provider here. + tileServer: { + url: 'https://tiles-eu.stadiamaps.com/tiles/alidade_bright/{z}/{x}/{y}.png', + attribution: '© Stadia Maps ' + + '© OpenMapTiles ' + + '© OpenStreetMap contributors', + maxZoom: 20, + }, + calculateRoute, + }, + zoom: 14, + height: 440, + width: '100%', + controls: true, + onReady({ originalMap }) { + const attribution = originalMap.getControls().getArray() + .find((control) => control instanceof ol.control.Attribution); + originalMap.removeControl(attribution); + originalMap.addControl(new ol.control.Attribution({ collapsible: false })); + }, + markers: [{ + location: '40.7825, -73.966111', + tooltip: { text: 'Central Park' }, + }, { + location: [40.755833, -73.986389], + iconSrc: '../../../../images/Maps/map-marker.png', + tooltip: { text: 'Times Square' }, + onClick({ tooltip }) { + tooltip.option({ + showTitle: true, + showCloseButton: true, + wrapperAttr: { + class: 'dx-map-marker-popover compact-marker-tooltip', + }, + }); + }, + }, { + location: { lat: 40.753889, lng: -73.981389 }, + tooltip: { text: 'Fifth Avenue' }, + }, { + location: [40.713474, -74.005536], + tooltip: { text: 'City Hall Park' }, + }], + routes: [{ + weight: 6, + color: 'blue', + opacity: 0.5, + mode: 'walking', + locations: [ + [40.7825, -73.966111], + [40.755833, -73.986389], + [40.753889, -73.981389], + [40.713474, -74.005536], + ], + }], + }).dxMap('instance'); + + $('#choose-mode').dxSelectBox({ + dataSource: ['driving', 'walking'], + inputAttr: { 'aria-label': 'Mode' }, + value: 'walking', + onValueChanged({ value }) { + map.option('routes', [{ ...map.option('routes')[0], mode: value }]); + }, + }); + + $('#choose-color').dxSelectBox({ + dataSource: ['blue', 'green', 'red'], + inputAttr: { 'aria-label': 'Route color' }, + value: 'blue', + onValueChanged({ value }) { + map.option('routes', [{ ...map.option('routes')[0], color: value }]); + }, + }); +}); diff --git a/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/styles.css b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/styles.css new file mode 100644 index 000000000000..24bd0cd00303 --- /dev/null +++ b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/styles.css @@ -0,0 +1,44 @@ +.options { + padding: 20px; + background-color: var(--dx-color-options-panel-bg); + margin-top: 20px; +} + +.caption { + font-size: 18px; + font-weight: 500; +} + +.option { + margin-top: 10px; + display: flex; + align-items: center; +} + +.option > span { + display: inline-block; + width: 90px; +} + +.option > .dx-selectbox { + width: 100%; + max-width: 350px; +} + +.compact-marker-tooltip .dx-popup-title { + padding: 4px 8px; +} + +.compact-marker-tooltip .dx-popup-title .dx-toolbar-items-container { + height: 24px; +} + +.compact-marker-tooltip .dx-popup-title .dx-closebutton { + width: 24px; + min-width: 24px; + height: 24px; +} + +.compact-marker-tooltip .dx-closebutton .dx-button-content { + padding: 1px; +} diff --git a/apps/demos/menuMeta.json b/apps/demos/menuMeta.json index 4ceaddfd4ddb..a2a05382e9e7 100644 --- a/apps/demos/menuMeta.json +++ b/apps/demos/menuMeta.json @@ -6565,8 +6565,7 @@ "Name": "OpenStreetMapProvider", "Widget": "Map", "DemoType": "Web", - "Badge": "Roadmap", - "RoadmapSurveyUrl": "https://www.devexpress.com/support/surveys/devextreme-wg-roadmap-openstreetmap-provider.xml" + "Badge": "New" }, { "Title": "Markers", diff --git a/apps/demos/testing/skipped-tests.js b/apps/demos/testing/skipped-tests.js index cdd9e5ce7dcf..c2e83ac23537 100644 --- a/apps/demos/testing/skipped-tests.js +++ b/apps/demos/testing/skipped-tests.js @@ -1,7 +1,8 @@ export const skippedTests = { jQuery: { // WebGL initialization error at the provider. There is no point in adding a mask - Map: ['ProvidersAndTypes', 'Markers', 'Routes'], + // OSM uses synthetic tiles in tests: keep accessibility/CSP checks, skip screenshots. + Map: ['ProvidersAndTypes', 'Markers', 'Routes', 'OpenStreetMapProvider'], }, Angular: { // WebGL initialization error at the provider. There is no point in adding a mask diff --git a/apps/demos/utils/server/csp-server.js b/apps/demos/utils/server/csp-server.js index f72873e246dc..f8c2899fa3b8 100644 --- a/apps/demos/utils/server/csp-server.js +++ b/apps/demos/utils/server/csp-server.js @@ -44,6 +44,10 @@ const CSP_DEMO_ALLOWLIST = { 'font-src': ['https://atlas.microsoft.com'], 'style-src-elem': ["'self'", "'unsafe-inline'"], }, + 'Map/OpenStreetMapProvider': { + 'img-src': ['https://tiles-eu.stadiamaps.com'], + 'connect-src': ['https://api-eu.stadiamaps.com'], + }, 'DataGrid/CollaborativeEditing': { 'connect-src': ['wss://js.devexpress.com'], }, @@ -196,6 +200,9 @@ const CSP_DEMO_ALLOWLIST = { // Framework-specific overrides (e.g. Font Awesome loaded only in React/Vue demos) const CSP_FRAMEWORK_ALLOWLIST = { jQuery: { + 'Map/OpenStreetMapProvider': { + 'style-src-elem': ['https://cdn.jsdelivr.net'], + }, FilterBuilder: { 'font-src': ['https://maxcdn.bootstrapcdn.com'] }, // globalize/message.js uses new Function() internally 'Localization/UsingGlobalize': { diff --git a/apps/demos/utils/tests/server/osm-client-script.test.js b/apps/demos/utils/tests/server/osm-client-script.test.js new file mode 100644 index 000000000000..2cfa6a5dea6b --- /dev/null +++ b/apps/demos/utils/tests/server/osm-client-script.test.js @@ -0,0 +1,99 @@ +const TILE_URL = 'https://tiles-eu.stadiamaps.com/tiles/alidade_bright/12/1206/1538.png'; +const ROUTE_URL = 'https://api-eu.stadiamaps.com/route/v1'; + +let nativeFetch; +let nativeImageSource; + +beforeEach(() => { + class TestImage { + get src() { return this.source; } + + set src(value) { this.source = String(value); } + } + + nativeFetch = jest.fn().mockResolvedValue('native response'); + nativeImageSource = Object.getOwnPropertyDescriptor(TestImage.prototype, 'src'); + global.window = { + HTMLImageElement: TestImage, + Request, + Response, + fetch: nativeFetch, + }; + jest.resetModules(); + jest.requireActual('../../../Demos/Map/OpenStreetMapProvider/client-script'); +}); + +afterEach(() => { + delete global.window; +}); + +test.each([TILE_URL, `${TILE_URL}?test=1`, new URL(TILE_URL)])('replaces demo tile %s with a synthetic image', (url) => { + const image = new window.HTMLImageElement(); + image.src = url; + + expect(image.src).toMatch(/^data:image\/svg\+xml,/); + expect(decodeURIComponent(image.src)).toContain('width="256" height="256"'); +}); + +test.each([ + '/images/Maps/map-marker.png', + 'data:image/png;base64,test', + 'https://other.example/tiles/alidade_bright/12/1206/1538.png', + `${TILE_URL}.html`, + 'https://tiles-eu.stadiamaps.com/other.png', + 'https://tiles-eu.stadiamaps.com.example/tiles/alidade_bright/12/1206/1538.png', +])('preserves unrelated image %s', (url) => { + const image = new window.HTMLImageElement(); + image.src = url; + + expect(image.src).toBe(url); +}); + +test('preserves the native image getter and property flags', () => { + const descriptor = Object.getOwnPropertyDescriptor(window.HTMLImageElement.prototype, 'src'); + + expect(descriptor.get).toBe(nativeImageSource.get); + expect(descriptor.configurable).toBe(nativeImageSource.configurable); + expect(descriptor.enumerable).toBe(nativeImageSource.enumerable); +}); + +test.each([ + ROUTE_URL, + `${ROUTE_URL}?test=1`, + new URL(ROUTE_URL), + new Request(ROUTE_URL, { method: 'POST', body: '{}' }), +])('returns a routing fixture for %s without a network request', async (input) => { + const response = await window.fetch(input, { method: 'POST' }); + + expect(response.ok).toBe(true); + expect(response.headers.get('Content-Type')).toBe('application/json'); + await expect(response.json()).resolves.toEqual({ + trip: { legs: [{ shape: 'gidxlA|`palCtas@jrf@nxBowH||mAddn@' }] }, + }); + expect(nativeFetch).not.toHaveBeenCalled(); +}); + +test('creates a fresh response for each route request', async () => { + const first = await window.fetch(ROUTE_URL); + const second = await window.fetch(ROUTE_URL); + + expect(first).not.toBe(second); + expect(await first.json()).toEqual(await second.json()); +}); + +test.each([ + '/local-data', + 'https://other.example/route/v1', + 'https://api-eu.stadiamaps.com/other', + 'https://api-eu.stadiamaps.com/route/v10', + 'https://api-eu.stadiamaps.com.example/route/v1', + new URL('https://other.example/route/v1'), + new Request('https://other.example/route/v1'), +])('forwards unrelated request %s with its options and receiver', async (input) => { + const options = { method: 'POST', body: 'original body' }; + + await expect(window.fetch(input, options)).resolves.toBe('native response'); + expect(nativeFetch).toHaveBeenCalledTimes(1); + expect(nativeFetch).toHaveBeenCalledWith(input, options); + expect(nativeFetch.mock.contexts[0]).toBe(window); +}); From d2dfe4d32ef56fa9a207153ad05bda2c7f939581 Mon Sep 17 00:00:00 2001 From: AlisherAmonulloev Date: Tue, 27 Oct 2026 13:14:46 +0200 Subject: [PATCH 2/5] Map demo: open attribution links in a new tab --- apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js index bfcd89999a8b..f7bf0a815d7b 100644 --- a/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js +++ b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js @@ -41,9 +41,9 @@ $(() => { // This configuration will not work on your domain. Configure your own tile provider here. tileServer: { url: 'https://tiles-eu.stadiamaps.com/tiles/alidade_bright/{z}/{x}/{y}.png', - attribution: '© Stadia Maps ' - + '© OpenMapTiles ' - + '© OpenStreetMap contributors', + attribution: '© Stadia Maps ' + + '© OpenMapTiles ' + + '© OpenStreetMap contributors', maxZoom: 20, }, calculateRoute, From f5b9b2671e270119996dbcb15af624cbf9744c09 Mon Sep 17 00:00:00 2001 From: AlisherAmonulloev Date: Tue, 27 Oct 2026 13:16:27 +0200 Subject: [PATCH 3/5] Map demo: enable OSM screenshot tests --- apps/demos/testing/skipped-tests.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/demos/testing/skipped-tests.js b/apps/demos/testing/skipped-tests.js index c2e83ac23537..cdd9e5ce7dcf 100644 --- a/apps/demos/testing/skipped-tests.js +++ b/apps/demos/testing/skipped-tests.js @@ -1,8 +1,7 @@ export const skippedTests = { jQuery: { // WebGL initialization error at the provider. There is no point in adding a mask - // OSM uses synthetic tiles in tests: keep accessibility/CSP checks, skip screenshots. - Map: ['ProvidersAndTypes', 'Markers', 'Routes', 'OpenStreetMapProvider'], + Map: ['ProvidersAndTypes', 'Markers', 'Routes'], }, Angular: { // WebGL initialization error at the provider. There is no point in adding a mask From 8dce11675a2226c31f4e765799726616d65e8307 Mon Sep 17 00:00:00 2001 From: AlisherAmonulloev Date: Tue, 27 Oct 2026 14:47:00 +0200 Subject: [PATCH 4/5] Map demo: add OSM screenshot baselines --- ...reetMapProvider (fluent-next.blue.light).png | Bin 0 -> 33411 bytes ...penStreetMapProvider (fluent.blue.light).png | Bin 0 -> 33389 bytes ...nStreetMapProvider (material.blue.light).png | Bin 0 -> 33240 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/demos/testing/etalons/Map-OpenStreetMapProvider (fluent-next.blue.light).png create mode 100644 apps/demos/testing/etalons/Map-OpenStreetMapProvider (fluent.blue.light).png create mode 100644 apps/demos/testing/etalons/Map-OpenStreetMapProvider (material.blue.light).png diff --git a/apps/demos/testing/etalons/Map-OpenStreetMapProvider (fluent-next.blue.light).png b/apps/demos/testing/etalons/Map-OpenStreetMapProvider (fluent-next.blue.light).png new file mode 100644 index 0000000000000000000000000000000000000000..13b18a23b4408ccc0898636bef310188146e637a GIT binary patch literal 33411 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 FzX7?W{Yn4; literal 0 HcmV?d00001 diff --git a/apps/demos/testing/etalons/Map-OpenStreetMapProvider (material.blue.light).png b/apps/demos/testing/etalons/Map-OpenStreetMapProvider (material.blue.light).png new file mode 100644 index 0000000000000000000000000000000000000000..37b34682d19db51abe01e1abbd1c0cd0fb51cd05 GIT binary patch literal 33240 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 OsXo+HE>Sf7>%RfQJp!Qs literal 0 HcmV?d00001 From 84edca20dc53fbca0027a1eb059ab7c6aa0bcb9a Mon Sep 17 00:00:00 2001 From: AlisherAmonulloev Date: Tue, 27 Oct 2026 15:42:39 +0200 Subject: [PATCH 5/5] Map demo: explain attribution visibility --- apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js index f7bf0a815d7b..4b3f7ab9c5e6 100644 --- a/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js +++ b/apps/demos/Demos/Map/OpenStreetMapProvider/jQuery/index.js @@ -53,6 +53,7 @@ $(() => { width: '100%', controls: true, onReady({ originalMap }) { + // Ensure attribution is visible to comply with the Stadia Maps Terms of Service. const attribution = originalMap.getControls().getArray() .find((control) => control instanceof ol.control.Attribution); originalMap.removeControl(attribution);