Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions packages/devextreme-angular/src/ui/map/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import {
} from '@angular/core';


import type { ClickEvent, DisposingEvent, InitializedEvent, MarkerAddedEvent, MarkerRemovedEvent, OptionChangedEvent, ReadyEvent, RouteAddedEvent, RouteRemovedEvent, MapProvider, OsmTileServer, RouteMode, MapType } from 'devextreme/ui/map';
import type { ClickEvent, DisposingEvent, InitializedEvent, MarkerAddedEvent, MarkerRemovedEvent, OptionChangedEvent, ReadyEvent, RouteAddedEvent, RouteRemovedEvent, MapProvider, CalculateOsmRouteInfo, OsmTileServer, RouteMode, MapType } from 'devextreme/ui/map';

import DxMap from 'devextreme/ui/map';

Expand Down Expand Up @@ -302,10 +302,10 @@ export class DxMapComponent extends DxComponent implements OnDestroy, OnChanges,

*/
@Input()
get providerConfig(): { mapId?: string, tileServer?: OsmTileServer | undefined, useAdvancedMarkers?: boolean } {
get providerConfig(): { calculateLocation?: ((query: string) => any), calculateRoute?: ((params: CalculateOsmRouteInfo) => any), mapId?: string, tileServer?: OsmTileServer | undefined, useAdvancedMarkers?: boolean } {
return this._getOption('providerConfig');
}
set providerConfig(value: { mapId?: string, tileServer?: OsmTileServer | undefined, useAdvancedMarkers?: boolean }) {
set providerConfig(value: { calculateLocation?: ((query: string) => any), calculateRoute?: ((params: CalculateOsmRouteInfo) => any), mapId?: string, tileServer?: OsmTileServer | undefined, useAdvancedMarkers?: boolean }) {
this._setOption('providerConfig', value);
}

Expand Down Expand Up @@ -582,7 +582,7 @@ export class DxMapComponent extends DxComponent implements OnDestroy, OnChanges,
* This member supports the internal infrastructure and is not intended to be used directly from your code.

*/
@Output() providerConfigChange: EventEmitter<{ mapId?: string, tileServer?: OsmTileServer | undefined, useAdvancedMarkers?: boolean }>;
@Output() providerConfigChange: EventEmitter<{ calculateLocation?: ((query: string) => any), calculateRoute?: ((params: CalculateOsmRouteInfo) => any), mapId?: string, tileServer?: OsmTileServer | undefined, useAdvancedMarkers?: boolean }>;

/**

Expand Down
18 changes: 17 additions & 1 deletion packages/devextreme-angular/src/ui/map/nested/provider-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {



import type { OsmTileServer } from 'devextreme/ui/map';
import type { CalculateOsmRouteInfo, OsmTileServer } from 'devextreme/ui/map';

import {
DxIntegrationModule,
Expand All @@ -31,6 +31,22 @@ import { NestedOption } from 'devextreme-angular/core';
providers: [NestedOptionHost]
})
export class DxoMapProviderConfigComponent extends NestedOption implements OnDestroy, OnInit {
@Input()
get calculateLocation(): ((query: string) => any) {
return this._getOption('calculateLocation');
}
set calculateLocation(value: ((query: string) => any)) {
this._setOption('calculateLocation', value);
}

@Input()
get calculateRoute(): ((params: CalculateOsmRouteInfo) => any) {
return this._getOption('calculateRoute');
}
set calculateRoute(value: ((params: CalculateOsmRouteInfo) => any)) {
this._setOption('calculateRoute', value);
}

@Input()
get mapId(): string {
return this._getOption('mapId');
Expand Down
16 changes: 16 additions & 0 deletions packages/devextreme-angular/src/ui/nested/provider-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,22 @@ import { NestedOption } from 'devextreme-angular/core';
providers: [NestedOptionHost]
})
export class DxoProviderConfigComponent extends NestedOption implements OnDestroy, OnInit {
@Input()
get calculateLocation(): Function {
return this._getOption('calculateLocation');
}
set calculateLocation(value: Function) {
this._setOption('calculateLocation', value);
}

@Input()
get calculateRoute(): Function {
return this._getOption('calculateRoute');
}
set calculateRoute(value: Function) {
this._setOption('calculateRoute', value);
}

@Input()
get mapId(): string {
return this._getOption('mapId');
Expand Down
4 changes: 3 additions & 1 deletion packages/devextreme-react/src/map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import dxMap, {
import { Component as BaseComponent, IHtmlOptions, ComponentRef, NestedComponentMeta } from "./core/component";
import NestedOption from "./core/nested-option";

import type { ClickEvent, DisposingEvent, InitializedEvent, MarkerAddedEvent, MarkerRemovedEvent, ReadyEvent, RouteAddedEvent, RouteRemovedEvent, OsmTileServer, RouteMode } from "devextreme/ui/map";
import type { ClickEvent, DisposingEvent, InitializedEvent, MarkerAddedEvent, MarkerRemovedEvent, ReadyEvent, RouteAddedEvent, RouteRemovedEvent, CalculateOsmRouteInfo, OsmTileServer, RouteMode } from "devextreme/ui/map";

type ReplaceFieldTypes<TSource, TReplacement> = {
[P in keyof TSource]: P extends keyof TReplacement ? TReplacement[P] : TSource[P];
Expand Down Expand Up @@ -182,6 +182,8 @@ const Marker = Object.assign<typeof _componentMarker, NestedComponentMeta>(_comp
// owners:
// Map
type IProviderConfigProps = React.PropsWithChildren<{
calculateLocation?: ((query: string) => any);
calculateRoute?: ((params: CalculateOsmRouteInfo) => any);
mapId?: string;
tileServer?: OsmTileServer | undefined;
useAdvancedMarkers?: boolean;
Expand Down
5 changes: 5 additions & 0 deletions packages/devextreme-vue/src/map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {
RouteRemovedEvent,
MapProvider,
MapType,
CalculateOsmRouteInfo,
OsmTileServer,
OsmTileServerConfig,
RouteMode,
Expand Down Expand Up @@ -246,11 +247,15 @@ const DxProviderConfigConfig = {
emits: {
"update:isActive": null,
"update:hoveredElement": null,
"update:calculateLocation": null,
"update:calculateRoute": null,
"update:mapId": null,
"update:tileServer": null,
"update:useAdvancedMarkers": null,
},
props: {
calculateLocation: Function as PropType<((query: string) => any)>,
calculateRoute: Function as PropType<((params: CalculateOsmRouteInfo) => any)>,
mapId: String,
tileServer: [Object, Function, String] as PropType<OsmTileServer | (((type: MapType) => string | OsmTileServerConfig | undefined)) | OsmTileServerConfig | string>,
useAdvancedMarkers: Boolean
Expand Down
2 changes: 2 additions & 0 deletions packages/devextreme/js/__internal/ui/errors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,5 +163,7 @@ export default errorUtils(errors.ERROR_MESSAGES, {
W1028: 'Nested/banded columns do not support the following properties: {0}.',
W1029: '\'hiddenWeekDays\' must leave at least one weekday visible.',
W1030: '\'tileServer\' is not configured for the OSM map provider.',
W1031: '\'calculateLocation\' is not configured for the OSM map provider.',
W1032: '\'attribution\' is not configured for the OSM tile server.',
W1033: '\'calculateRoute\' is not configured for the OSM map provider.',
});
35 changes: 35 additions & 0 deletions packages/devextreme/js/ui/map.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,31 @@ export type RouteMode = 'driving' | 'walking';
/** @public */
export type MapType = 'hybrid' | 'roadmap' | 'satellite';

/**
* @docid
* @public
*/
export type CalculateOsmRouteInfo = {
locations: Array<MapLocation>;
mode: RouteMode | string;
};

/**
* @docid
* @public
*/
export type OsmGeoJsonLineString = {
type: 'LineString';
coordinates: Array<Array<number>>;
};

/**
* @docid
* @type Array<Array<number>>|OsmGeoJsonLineString
* @public
*/
export type OsmRouteResult = Array<[number, number]> | OsmGeoJsonLineString;

/**
* @docid
* @public
Expand Down Expand Up @@ -372,6 +397,16 @@ export interface dxMapOptions extends WidgetOptions<dxMap> {
* @default undefined
*/
tileServer?: OsmTileServer | undefined;
/**
* @docid
* @public
*/
calculateLocation?: (query: string) => PromiseLike<MapLocation | undefined>;
/**
* @docid
* @public
*/
calculateRoute?: (params: CalculateOsmRouteInfo) => PromiseLike<OsmRouteResult>;
};
/**
* @docid
Expand Down
3 changes: 3 additions & 0 deletions packages/devextreme/js/ui/map_types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ export {
MapProvider,
RouteMode,
MapType,
CalculateOsmRouteInfo,
OsmGeoJsonLineString,
OsmRouteResult,
OsmTileServerConfig,
OsmTileServer,
ClickEvent,
Expand Down
6 changes: 6 additions & 0 deletions packages/devextreme/js/ui/widget/ui.errors.js
Original file line number Diff line number Diff line change
Expand Up @@ -248,9 +248,15 @@
/**
* @name ErrorsUIWidgets.W1030
*/
/**
* @name ErrorsUIWidgets.W1031
*/
/**
* @name ErrorsUIWidgets.W1032
*/
/**
* @name ErrorsUIWidgets.W1033
*/
import errors from '../../__internal/ui/errors';

export default errors;
30 changes: 30 additions & 0 deletions packages/devextreme/ts/dx.all.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23337,6 +23337,13 @@ declare module DevExpress.ui {
): DevExpress.core.utils.DxPromise<void>;
}
module dxMap {
/**
* [descr:CalculateOsmRouteInfo]
*/
export type CalculateOsmRouteInfo = {
locations: Array<MapLocation>;
mode: RouteMode | string;
};
/**
* [descr:_ui_map_ClickEvent]
*/
Expand Down Expand Up @@ -23395,6 +23402,17 @@ declare module DevExpress.ui {
export type OptionChangedEvent =
DevExpress.common.core.events.EventInfo<dxMap> &
DevExpress.common.core.events.ChangedOptionInfo;
/**
* [descr:OsmGeoJsonLineString]
*/
export type OsmGeoJsonLineString = {
type: 'LineString';
coordinates: Array<Array<number>>;
};
/**
* [descr:OsmRouteResult]
*/
export type OsmRouteResult = Array<[number, number]> | OsmGeoJsonLineString;
/**
* [descr:OsmTileServer]
*/
Expand Down Expand Up @@ -23598,6 +23616,18 @@ declare module DevExpress.ui {
* [descr:dxMapOptions.providerConfig.tileServer]
*/
tileServer?: DevExpress.ui.dxMap.OsmTileServer | undefined;
/**
* [descr:dxMapOptions.providerConfig.calculateLocation]
*/
calculateLocation?: (
query: string
) => PromiseLike<MapLocation | undefined>;
/**
* [descr:dxMapOptions.providerConfig.calculateRoute]
*/
calculateRoute?: (
params: DevExpress.ui.dxMap.CalculateOsmRouteInfo
) => PromiseLike<DevExpress.ui.dxMap.OsmRouteResult>;
};
/**
* [descr:dxMapOptions.routes]
Expand Down
Loading