@nextgis/ngw-map 1.16.5 → 1.16.7
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.
- package/lib/index.d.ts +6 -7
- package/lib/ngw-map.cjs.js +7 -7
- package/lib/ngw-map.cjs.js.map +1 -1
- package/lib/ngw-map.cjs.prod.js.map +1 -1
- package/lib/ngw-map.esm-browser.js +55 -29
- package/lib/ngw-map.esm-browser.js.map +1 -1
- package/lib/ngw-map.esm-browser.prod.js +1 -1
- package/lib/ngw-map.esm-browser.prod.js.map +1 -1
- package/lib/ngw-map.esm-bundler.js +7 -7
- package/lib/ngw-map.esm-bundler.js.map +1 -1
- package/lib/ngw-map.esm-bundler.prod.js.map +1 -1
- package/lib/ngw-map.global.js +55 -29
- package/lib/ngw-map.global.js.map +1 -1
- package/lib/ngw-map.global.prod.js +1 -1
- package/lib/ngw-map.global.prod.js.map +1 -1
- package/package.json +9 -9
package/lib/index.d.ts
CHANGED
|
@@ -134,29 +134,29 @@ export declare class NgwMap<M = unknown, L = unknown, C extends object = any, O
|
|
|
134
134
|
* ```
|
|
135
135
|
*/
|
|
136
136
|
fitLayer(layerDef: LayerDef | number, options?: FitOptions): Promise<void>;
|
|
137
|
-
/** @deprecated use {@link
|
|
137
|
+
/** @deprecated use {@link fitLayer} instead */
|
|
138
138
|
zoomToLayer(layerDef: string | ResourceAdapter): Promise<void>;
|
|
139
139
|
onLoad(event?: keyof NgwMapEvents): Promise<this>;
|
|
140
140
|
removeLayer(layerDef: LayerDef): void;
|
|
141
141
|
enableSelection(): void;
|
|
142
142
|
disableSelection(): void;
|
|
143
143
|
/**
|
|
144
|
-
* @deprecated use {@link
|
|
144
|
+
* @deprecated use {@link fetchNgwLayerItem} instead
|
|
145
145
|
*/
|
|
146
146
|
getNgwLayerItem<G extends Geometry = Geometry, P extends FeatureProperties = FeatureProperties>(options: Omit<FetchNgwItemOptions<P>, 'connector'>): CancelablePromise<FeatureItem>;
|
|
147
147
|
/**
|
|
148
|
-
* @deprecated use {@link
|
|
148
|
+
* @deprecated use {@link fetchNgwLayerItems} instead
|
|
149
149
|
*/
|
|
150
150
|
getNgwLayerItems<F extends FeatureProperties = FeatureProperties, G extends Geometry = Geometry>(options: Omit<FetchNgwItemsOptions<F>, 'connector'>): CancelablePromise<FeatureItem<F, G>[]>;
|
|
151
151
|
/**
|
|
152
|
-
* @deprecated use {@link
|
|
152
|
+
* @deprecated use {@link fetchNgwLayerFeature} instead
|
|
153
153
|
*/
|
|
154
154
|
getNgwLayerFeature<G extends Geometry = Geometry, P extends FeatureProperties = FeatureProperties>(options: Omit<FetchNgwItemOptions<P>, 'connector'>): CancelablePromise<Feature<G, P>>;
|
|
155
155
|
/**
|
|
156
|
-
* @deprecated use {@link
|
|
156
|
+
* @deprecated use {@link fetchNgwLayerFeatures} instead
|
|
157
157
|
*/
|
|
158
158
|
getNgwLayerFeatures<G extends Geometry | null = Geometry, P extends JsonMap = JsonMap>(options: FetchNgwItemsOptions<P>): CancelablePromise<FeatureCollection<G, P>>;
|
|
159
|
-
/** @deprecated use {@link
|
|
159
|
+
/** @deprecated use {@link cancelPromises} instead */
|
|
160
160
|
cancelPromise(...args: PromiseGroup[]): void;
|
|
161
161
|
cancelPromises(...args: PromiseGroup[]): void;
|
|
162
162
|
selectFromNgwRaster(ev: MapClickEvent): Promise<NgwIdentifyEvent | undefined>;
|
|
@@ -259,7 +259,6 @@ export declare interface NgwMapOptions<M = any, C = any> extends MapOptions<M, C
|
|
|
259
259
|
companyLogoOptions?: CompanyLogoOptions;
|
|
260
260
|
pixelRadius?: number;
|
|
261
261
|
runtimeParams?: RuntimeParams[];
|
|
262
|
-
/** {@inheritDoc AdapterOptions.setViewDelay} */
|
|
263
262
|
setViewDelay?: number;
|
|
264
263
|
}
|
|
265
264
|
|
package/lib/ngw-map.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Bundle of @nextgis/ngw-map; version: 1.16.
|
|
1
|
+
/** Bundle of @nextgis/ngw-map; version: 1.16.7; author: NextGIS */
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
@@ -481,7 +481,7 @@ var NgwMap = /** @class */ (function (_super) {
|
|
|
481
481
|
});
|
|
482
482
|
});
|
|
483
483
|
};
|
|
484
|
-
/** @deprecated use {@link
|
|
484
|
+
/** @deprecated use {@link fitLayer} instead */
|
|
485
485
|
NgwMap.prototype.zoomToLayer = function (layerDef) {
|
|
486
486
|
return __awaiter(this, void 0, void 0, function () {
|
|
487
487
|
return __generator(this, function (_a) {
|
|
@@ -533,30 +533,30 @@ var NgwMap = /** @class */ (function (_super) {
|
|
|
533
533
|
}
|
|
534
534
|
};
|
|
535
535
|
/**
|
|
536
|
-
* @deprecated use {@link
|
|
536
|
+
* @deprecated use {@link fetchNgwLayerItem} instead
|
|
537
537
|
*/
|
|
538
538
|
NgwMap.prototype.getNgwLayerItem = function (options) {
|
|
539
539
|
return this.fetchNgwLayerItem(options);
|
|
540
540
|
};
|
|
541
541
|
/**
|
|
542
|
-
* @deprecated use {@link
|
|
542
|
+
* @deprecated use {@link fetchNgwLayerItems} instead
|
|
543
543
|
*/
|
|
544
544
|
NgwMap.prototype.getNgwLayerItems = function (options) {
|
|
545
545
|
return this.fetchNgwLayerItems(options);
|
|
546
546
|
};
|
|
547
547
|
/**
|
|
548
|
-
* @deprecated use {@link
|
|
548
|
+
* @deprecated use {@link fetchNgwLayerFeature} instead
|
|
549
549
|
*/
|
|
550
550
|
NgwMap.prototype.getNgwLayerFeature = function (options) {
|
|
551
551
|
return this.fetchNgwLayerFeature(options);
|
|
552
552
|
};
|
|
553
553
|
/**
|
|
554
|
-
* @deprecated use {@link
|
|
554
|
+
* @deprecated use {@link fetchNgwLayerFeatures} instead
|
|
555
555
|
*/
|
|
556
556
|
NgwMap.prototype.getNgwLayerFeatures = function (options) {
|
|
557
557
|
return this.fetchNgwLayerFeatures(options);
|
|
558
558
|
};
|
|
559
|
-
/** @deprecated use {@link
|
|
559
|
+
/** @deprecated use {@link cancelPromises} instead */
|
|
560
560
|
NgwMap.prototype.cancelPromise = function () {
|
|
561
561
|
var args = [];
|
|
562
562
|
for (var _i = 0; _i < arguments.length; _i++) {
|
package/lib/ngw-map.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngw-map.cjs.js","sources":["../src/utils/appendNgwResources.ts","../src/utils/prepareWebMapOptions.ts","../src/NgwMap.ts","../src/index.ts"],"sourcesContent":["import type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type { NgwResourceDefinition } from '../interfaces';\n\nexport function appendNgwResources(\n options: NgwLayerOptions[],\n resource?: NgwResourceDefinition,\n defOptions?: Partial<NgwLayerOptions>,\n overwriteOptions?: Partial<NgwLayerOptions>,\n): void {\n if (typeof resource === 'number' || typeof resource === 'string') {\n resource = Number(resource);\n options.push({\n ...defOptions,\n resource,\n });\n } else if (Array.isArray(resource)) {\n const [resourceId, id] = resource;\n options.push({\n ...defOptions,\n resource: resourceId,\n id,\n ...overwriteOptions,\n });\n } else if (typeof resource === 'object') {\n options.push({ ...defOptions, ...resource, ...overwriteOptions });\n }\n}\n","import { deepmerge } from '@nextgis/utils';\nimport { StarterKit, MapOptions } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\nimport { QmsKit } from '@nextgis/qms-kit';\nimport { NgwKit } from '@nextgis/ngw-kit';\n\nimport { NgwMapOptions } from '../interfaces';\n\nexport const OPTIONS: NgwMapOptions = {\n target: 'map',\n baseUrl: '',\n whitlabel: false,\n controls: ['ZOOM', 'ATTRIBUTION'],\n controlsOptions: {\n ZOOM: { position: 'top-left' },\n ATTRIBUTION: {\n position: 'bottom-right',\n customAttribution: [\n '<a href=\"https://nextgis.com\" target=\"_blank\">©NextGIS</a>',\n ],\n },\n },\n pixelRadius: 10,\n};\n\nexport function prepareWebMapOptions(options: NgwMapOptions): MapOptions {\n const kits: StarterKit[] = [new QmsKit()];\n if (options.starterKits) {\n options.starterKits.forEach((x) => {\n kits.push(x);\n });\n }\n\n if (!options.connector) {\n options.connector = new NgwConnector({\n baseUrl: options.baseUrl || '',\n auth: options.auth,\n });\n } else if (options.connector) {\n options.baseUrl = options.connector.options.baseUrl;\n }\n options = deepmerge(OPTIONS, options);\n\n if (!options.center && !options.bounds) {\n options.bounds = [-179, -90, 180, 90];\n // options.maxBounds = options.bounds;\n }\n\n if (options.connector) {\n kits.push(\n new NgwKit({\n connector: options.connector,\n auth: options.auth,\n }),\n );\n }\n options = {\n ...options,\n starterKits: kits,\n create: false,\n };\n return options;\n}\n","import StrictEventEmitter from 'strict-event-emitter-types';\nimport { EventEmitter } from 'events';\nimport CancelablePromise from '@nextgis/cancelable-promise';\nimport { defined, isObject, getIdentifyRadius } from '@nextgis/utils';\nimport { AdapterOptions, WebMap } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\n\nimport {\n fetchNgwLayerFeatureCollection,\n createNgwLayerAdapter,\n fetchNgwLayerFeature,\n fetchIdentifyGeoJson,\n sendIdentifyRequest,\n createIdentifyItem,\n fetchNgwLayerItems,\n fetchIdentifyItem,\n fetchNgwLayerItem,\n getIdentifyItems,\n getCompanyLogo,\n fetchNgwExtent,\n} from '@nextgis/ngw-kit';\nimport { deprecatedWarn } from '@nextgis/utils';\nimport { getIcon } from '@nextgis/icons';\n\nimport { appendNgwResources } from './utils/appendNgwResources';\nimport { prepareWebMapOptions } from './utils/prepareWebMapOptions';\n\nimport type { JsonMap, FeatureProperties } from '@nextgis/utils';\nimport type {\n FeatureItem,\n LayerFeature,\n ResourceItem,\n FeatureLayersIdentify,\n FeatureLayersIdentifyItems,\n} from '@nextgis/ngw-connector';\nimport type {\n OnLayerMouseOptions,\n ControlPosition,\n MapClickEvent,\n LayerAdapter,\n WebMapEvents,\n MapControls,\n FitOptions,\n LayerDef,\n} from '@nextgis/webmap';\nimport type {\n NgwIdentify,\n NgwWebmapItem,\n ResourceAdapter,\n FetchNgwItemsOptions,\n NgwFeatureItemResponse,\n NgwFeatureRequestOptions,\n} from '@nextgis/ngw-kit';\nimport type { Geometry, Feature, FeatureCollection } from 'geojson';\nimport type { QmsAdapterOptions } from '@nextgis/qms-kit';\nimport type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type {\n NgwIdentifyEvent,\n NgwMapOptions,\n NgwMapEvents,\n NgwLayers,\n} from './interfaces';\nimport type { FetchNgwItemOptions } from '@nextgis/ngw-kit';\n\ntype PromiseGroup = 'select' | 'identify';\n\n/**\n * Base class containing the logic of interaction WebMap with NextGIS services.\n *\n * @example\n * ```javascript\n * import { NgwMap } from '@nextgis/ngw-map';\n * import MapAdapter from '@nextgis/leaflet-map-adapter';\n * // styles are not included in the leaflet-map-adapter\n * import 'leaflet/dist/leaflet.css';\n *\n * const ngwMap = new NgwMap({\n * mapAdapter: new MapAdapter(),\n * target: 'map',\n * qmsId: 448,\n * baseUrl: 'https://demo.nextgis.com',\n * webmapId: 3985\n * });\n * ```\n */\nexport class NgwMap<\n M = unknown,\n L = unknown,\n C extends object = any,\n O extends NgwMapOptions<M, C> = NgwMapOptions<M, C>,\n> extends WebMap<M, L, C, NgwMapEvents, O> {\n static getIcon = getIcon;\n\n readonly emitter: StrictEventEmitter<EventEmitter, NgwMapEvents> =\n new EventEmitter();\n connector!: NgwConnector;\n\n protected _ngwLayers: NgwLayers = {};\n private $$selectFromNgwRaster?: (ev: MapClickEvent) => void;\n private $$selectFromNgwVector?: (ev: OnLayerMouseOptions) => void;\n private _promises: Record<PromiseGroup, CancelablePromise[]> = {\n select: [],\n identify: [],\n };\n\n constructor(options: O) {\n super(prepareWebMapOptions(options) as O);\n if (options.connector) {\n this.connector = options.connector;\n }\n this._createWebMap().then(() => {\n const container = this.getContainer();\n if (container) {\n container.classList.add('ngw-map-container');\n }\n if (this.options.whitlabel) {\n this._whiteLabel();\n }\n });\n }\n\n /**\n * Organized addition to the map design and controls elements,\n * calling `control.onAdd(this.webMap.mapAdapter)`\n * @param control - object with onAdd and onRemove methods\n * or a string value indicating the name of the control installed in the map adapter\n * @param position - position relative to the map angles\n * @param options - initialization parameters if the control is set as a string value\n *\n * @example\n * ```javascript\n * ngwMap.addControl(new CustomControl(), 'bottom-left');\n * ngwMap.addControl('ZOOM', 'top-right')\n * ```\n */\n async addControl<K extends keyof MapControls>(\n controlDef: K | C,\n position: ControlPosition,\n options?: MapControls[K],\n ): Promise<any> {\n await this.onLoad('controls:create');\n return super.addControl(controlDef, position, options);\n }\n\n /**\n * Add any (style, vector, webmap) NGW layer by resource definition.\n * @param options - set layer identification parameters and render method.\n *\n * @example\n * ```javascript\n * // Add raster layer resourceId is the style of 4004 layer\n * ngwMap.addNgwLayer({ resource: 4005 });\n * // Add vector data from layer GEOJSON source\n * ngwMap.addNgwLayer({\n * resource: 4038,\n * adapter: 'GEOJSON',\n * adapterOptions: { paint: { color: 'red' } }\n * });\n * ```\n */\n async addNgwLayer(\n options: NgwLayerOptions,\n ): Promise<ResourceAdapter | undefined> {\n await this.onMapLoad();\n // @ts-ignore for backward compatibility\n const { keyname, resourceId } = options;\n\n if (keyname || resourceId !== undefined) {\n deprecatedWarn(\n 'set `resource` options instead of `keyname` or `resourceId`',\n );\n }\n\n const resource = options.resource;\n if (!keyname && !resourceId && !resource) {\n throw new Error(\n 'resource, resourceId or keyname is required parameter to add NGW layer',\n );\n }\n if (defined(this.options.baseUrl)) {\n try {\n if (defined(this.options.setViewDelay)) {\n options.adapterOptions = options.adapterOptions || {};\n if (!defined(options.adapterOptions.setViewDelay)) {\n options.adapterOptions.setViewDelay = this.options.setViewDelay;\n }\n }\n const adapter = createNgwLayerAdapter(options, this, this.connector);\n const adapterOpts = {\n visibility: true,\n // TODO: do not merge options, use only `adapterOptions`\n ...options,\n ...options.adapterOptions,\n } as AdapterOptions;\n const layer = (await this.addLayer(\n adapter,\n adapterOpts,\n )) as ResourceAdapter<M, L, AdapterOptions>;\n const id = layer && this.getLayerId(layer);\n if (layer && id) {\n this._ngwLayers[id] = { layer, resourceId: layer.resourceId };\n layer.options.name =\n layer.options.name ||\n (layer.item && layer.item.resource.display_name);\n if (layer.options.baselayer) {\n const visibleLayerBaseLayer = this.getActiveBaseLayer();\n if (visibleLayerBaseLayer) {\n return layer;\n }\n }\n }\n return layer;\n } catch (er) {\n const resId =\n isObject(resource) && 'id' in resource\n ? resource.id\n : keyname || resourceId || resource;\n console.error(`Can't add NGW layer ${resId}.`, er);\n }\n }\n }\n\n /**\n * Pans and zooms the map to the initial position specified in the options\n */\n fit(): void {\n const { center, zoom, bounds } = this.options;\n if (center) {\n this.setCenter(center);\n if (zoom) {\n this.setZoom(zoom);\n }\n } else if (bounds) {\n this.fitBounds(bounds);\n }\n }\n\n fetchNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return fetchNgwLayerItem<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return fetchNgwLayerItems<G, F>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return fetchNgwLayerFeature<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemsOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return fetchNgwLayerFeatureCollection({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchIdentifyItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n identify: NgwIdentify,\n requestOptions?: NgwFeatureRequestOptions,\n // multiple = false\n ): CancelablePromise<NgwFeatureItemResponse<P, G> | undefined> {\n const promise = fetchIdentifyItem<G, P>({\n identify,\n connector: this.connector,\n requestOptions,\n // multiple,\n });\n\n this._addPromise('identify', promise);\n return promise;\n }\n\n fetchIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n const promise = fetchIdentifyGeoJson({\n identify,\n connector: this.connector,\n multiple,\n });\n if (promise && 'then' in promise) {\n this._addPromise('identify', promise);\n return promise;\n } else {\n return CancelablePromise.resolve(promise);\n }\n }\n\n /**\n * @deprecated use {@link fetchIdentifyGeoJson} instead\n */\n getIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n return this.fetchIdentifyGeoJson(identify, multiple);\n }\n\n async getNgwLayers(): Promise<NgwLayers> {\n await this.onLoad();\n return this._ngwLayers;\n }\n\n async getNgwLayerByResourceId(id: number): Promise<LayerAdapter | undefined> {\n for (const n in this._ngwLayers) {\n const mem = this._ngwLayers[n];\n if (mem.resourceId === id) {\n return mem && mem.layer;\n } else if (mem.layer.getIdentificationIds) {\n const ids = await mem.layer.getIdentificationIds();\n if (ids && ids.some((x) => x === id)) {\n return mem.layer;\n }\n }\n if (mem.layer.getDependLayers) {\n const dependLayers = mem.layer.getDependLayers() as NgwWebmapItem[];\n const dependFit = dependLayers.find((x) => {\n return x.item && x.item.parentId === id;\n });\n if (dependFit) {\n return dependFit.layer;\n }\n }\n }\n }\n\n /**\n * Move map to layer. If the layer is NGW resource, extent will be received from the server\n *\n * @example\n * ```javascript\n * const ngwLayer = ngwMap.addNgwLayer({ id: 'ngw_layer_name', resource: 4005 });\n * ngwMap.fitLayer(ngwLayer);\n * ngwMap.fitLayer('ngw_layer_name');\n * ```\n */\n async fitLayer(\n layerDef: LayerDef | number,\n options?: FitOptions,\n ): Promise<void> {\n let id: string | undefined;\n if (typeof layerDef === 'string' || typeof layerDef === 'number') {\n id = String(id);\n } else {\n id = layerDef.id;\n }\n const ngwLayer = id && this._ngwLayers[id];\n if (ngwLayer) {\n if (ngwLayer.layer.getBounds) {\n const bounds = await ngwLayer.layer.getBounds();\n if (bounds) {\n this.fitBounds(bounds, options);\n }\n } else {\n let item: ResourceItem | undefined;\n if (ngwLayer.layer.item) {\n item = ngwLayer.layer.item;\n } else {\n const resourceId = ngwLayer.resourceId;\n item = await this.connector.getResource(resourceId);\n }\n if (item) {\n fetchNgwExtent({\n resourceId: item.resource.id,\n connector: this.connector,\n }).then((extent) => {\n if (extent) {\n this.fitBounds(extent, options);\n }\n });\n }\n }\n } else {\n super.fitLayer(\n typeof layerDef === 'number' ? String(layerDef) : layerDef,\n options,\n );\n }\n }\n\n /** @deprecated use {@link NgwMap.fitLayer} instead */\n async zoomToLayer(layerDef: string | ResourceAdapter): Promise<void> {\n return this.fitLayer(layerDef);\n }\n\n onLoad(event: keyof NgwMapEvents = 'ngw-map:create'): Promise<this> {\n return super.onLoad(event as keyof WebMapEvents);\n }\n\n removeLayer(layerDef: LayerDef): void {\n const layer = this.getLayer(layerDef);\n if (layer) {\n const layerId = this.getLayerId(layer);\n if (layerId) {\n delete this._ngwLayers[layerId];\n }\n super.removeLayer(layer);\n }\n }\n\n enableSelection(): void {\n if (!this.$$selectFromNgwRaster) {\n this.$$selectFromNgwRaster = (ev: MapClickEvent) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this.selectFromNgwRaster(ev);\n }\n };\n this.$$selectFromNgwVector = (ev: OnLayerMouseOptions) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this._selectFromNgwVector(ev);\n }\n };\n this.emitter.on('click', this.$$selectFromNgwRaster);\n this.emitter.on('layer:click', this.$$selectFromNgwVector);\n }\n }\n\n disableSelection(): void {\n if (this.$$selectFromNgwRaster) {\n this.emitter.removeListener('click', this.$$selectFromNgwRaster);\n this.$$selectFromNgwRaster = undefined;\n }\n if (this.$$selectFromNgwVector) {\n this.emitter.removeListener('layer:click', this.$$selectFromNgwVector);\n\n this.$$selectFromNgwVector = undefined;\n }\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerItem} instead\n */\n getNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return this.fetchNgwLayerItem<G, P>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerItems} instead\n */\n getNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return this.fetchNgwLayerItems<F, G>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerFeature} instead\n */\n getNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return this.fetchNgwLayerFeature<G, P>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerFeatures} instead\n */\n getNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends JsonMap = JsonMap,\n >(\n options: FetchNgwItemsOptions<P>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return this.fetchNgwLayerFeatures(options);\n }\n\n /** @deprecated use {@link NgwMap.cancelPromises} instead */\n cancelPromise(...args: PromiseGroup[]): void {\n this.cancelPromises(...args);\n }\n\n cancelPromises(...args: PromiseGroup[]): void {\n if (!args.length) {\n args = Object.keys(this._promises) as PromiseGroup[];\n }\n args.forEach((name) => {\n const group = this._promises[name];\n if (group) {\n group.forEach((x) => x.cancel());\n this._promises[name] = [];\n }\n });\n }\n\n async selectFromNgwRaster(\n ev: MapClickEvent,\n ): Promise<NgwIdentifyEvent | undefined> {\n this._emitStatusEvent('ngw:preselect');\n\n const promises: Promise<number[] | undefined>[] = [];\n const layers = Object.values(this._ngwLayers);\n layers.sort((a, b) => {\n if (a.layer.order && b.layer.order) {\n return b.layer.order - a.layer.order;\n }\n return 1;\n });\n for (const l of layers) {\n const layer = l.layer;\n const identFunc =\n typeof layer.getIdentificationIds === 'function'\n ? layer.getIdentificationIds\n : false;\n if (identFunc && layer.options.selectable && this.isLayerVisible(layer)) {\n promises.push(identFunc.call(layer));\n }\n }\n const getIdsPromise = Promise.all(promises);\n const getIds = await getIdsPromise;\n const ids: number[] = [];\n for (const x of getIds) {\n if (x) {\n ids.push(...x);\n }\n }\n\n if (!ids.length) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n\n const pixelRadius = this.options.pixelRadius || 10;\n const center = this.getCenter();\n let zoom = this.getZoom();\n zoom = zoom !== undefined ? zoom : 20;\n if (!center || !zoom) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n const radius = getIdentifyRadius(center, zoom, pixelRadius);\n\n const selectPromise = sendIdentifyRequest(ev, {\n layers: ids,\n connector: this.connector,\n radius,\n }).then((resp) => {\n const identify: NgwIdentify = {\n ...resp,\n resources: ids,\n sourceType: 'raster',\n event: ev,\n };\n const identifyEvent: NgwIdentifyEvent = this._prepareToIdentify(identify);\n this._emitStatusEvent('ngw:select', identifyEvent);\n return identifyEvent;\n });\n this._addPromise('select', selectPromise);\n return selectPromise;\n }\n\n private _addPromise(groupName: PromiseGroup, promise: CancelablePromise) {\n const group = this._promises[groupName];\n if (group && group.indexOf(promise) === -1) {\n const removeFromGroup = () => {\n const index = group.indexOf(promise);\n if (index !== -1) {\n group.splice(index, 1);\n }\n };\n promise.then(removeFromGroup);\n promise.catch(removeFromGroup);\n group.push(promise);\n }\n }\n\n private _isFitFromResource() {\n const params = this._initMapState;\n if (params.zoom && params.center) {\n return false;\n }\n return true;\n }\n\n private async _createWebMap() {\n await this.create();\n if (this.options.qmsId) {\n this._addQmsBaseLayer();\n }\n if (this.options.osm) {\n this._addOsmBaseLayer();\n }\n\n const resources: NgwLayerOptions[] = [];\n const layerFitAllowed = this._isFitFromResource();\n if (this.options.webmapId) {\n appendNgwResources(resources, this.options.webmapId, {\n fit: layerFitAllowed,\n });\n }\n if (this.options.resources && Array.isArray(this.options.resources)) {\n for (const x of this.options.resources) {\n const overwriteOptions: Partial<NgwLayerOptions> = {};\n if (!layerFitAllowed) {\n overwriteOptions.fit = false;\n }\n appendNgwResources(resources, x, {}, overwriteOptions);\n }\n }\n for (const r of resources) {\n try {\n await this.addNgwLayer(r);\n } catch (er) {\n console.warn(er);\n }\n }\n this._emitStatusEvent('ngw-map:create', this);\n this.enableSelection();\n }\n\n private _addOsmBaseLayer() {\n this.addBaseLayer('OSM');\n }\n\n private _addQmsBaseLayer() {\n let qmsId: number;\n let qmsLayerName: string | undefined;\n if (Array.isArray(this.options.qmsId)) {\n qmsId = this.options.qmsId[0];\n qmsLayerName = this.options.qmsId[1];\n } else {\n qmsId = Number(this.options.qmsId);\n }\n const qmsLayerOptions: Partial<QmsAdapterOptions> = {\n qmsId,\n };\n if (qmsLayerName) {\n qmsLayerOptions.id = qmsLayerName;\n }\n\n this.addBaseLayer('QMS', qmsLayerOptions);\n }\n\n private _selectFromNgwVector(\n ev: OnLayerMouseOptions,\n ): FeatureLayersIdentify | undefined {\n const layer: ResourceAdapter = ev.layer as ResourceAdapter;\n const selectable = layer.options.selectable && this.isLayerVisible(layer);\n if (!selectable) {\n return undefined;\n }\n // Item property means layer is NgwResource\n const id = layer.item && layer.item.resource.id;\n const feature = ev.feature;\n\n if (id !== undefined && feature) {\n const featureId = feature.id;\n if (featureId) {\n const identifyFeature: LayerFeature = {\n id: Number(featureId),\n fields: feature.properties || {},\n label: `#${id}`,\n layerId: Number(id),\n parent: '',\n geom: feature.geometry,\n };\n const items: FeatureLayersIdentifyItems = {\n featureCount: 1,\n features: [identifyFeature],\n };\n const identify: FeatureLayersIdentify = {\n featureCount: 1,\n [id]: items,\n };\n this._emitStatusEvent(\n 'ngw:select',\n this._prepareToIdentify({\n ...identify,\n resources: [id],\n sourceType: 'vector',\n } as NgwIdentify),\n );\n return identify;\n }\n }\n }\n\n private _prepareToIdentify<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(identify: NgwIdentify): NgwIdentifyEvent {\n const getIdentifyItems_ = () => {\n return getIdentifyItems(identify, true).map((x) => {\n return createIdentifyItem<F, G>({\n feature: x.feature,\n connector: this.connector,\n });\n });\n };\n return {\n ...identify,\n getIdentifyItems: getIdentifyItems_,\n };\n }\n\n private _getSelectListenersCount() {\n return this.emitter.listenerCount('ngw:select');\n }\n\n private async _whiteLabel() {\n const container = this.getContainer();\n if (container) {\n const logo = await getCompanyLogo(\n this.connector,\n this.options.companyLogoOptions,\n );\n if (logo) {\n container.appendChild(logo);\n }\n }\n }\n}\n","/**\n * @module ngw-map\n */\n\nimport { NgwMap } from './NgwMap';\nimport type { NgwMapOptions } from './interfaces';\n\nexport * from '@nextgis/webmap';\n\nexport * from './interfaces';\n\nexport { NgwMap };\n\nexport async function createNgwMap(options: NgwMapOptions): Promise<NgwMap> {\n const ngwMap = new NgwMap(options);\n return ngwMap.onLoad();\n}\n"],"names":["QmsKit","NgwConnector","deepmerge","NgwKit","EventEmitter","deprecatedWarn","defined","createNgwLayerAdapter","isObject","fetchNgwLayerItem","fetchNgwLayerItems","fetchNgwLayerFeature","fetchNgwLayerFeatureCollection","fetchIdentifyItem","fetchIdentifyGeoJson","CancelablePromise","fetchNgwExtent","getIdentifyRadius","sendIdentifyRequest","getIdentifyItems","createIdentifyItem","getCompanyLogo","getIcon","WebMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngw-map.cjs.js","sources":["../src/utils/appendNgwResources.ts","../src/utils/prepareWebMapOptions.ts","../src/NgwMap.ts","../src/index.ts"],"sourcesContent":["import type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type { NgwResourceDefinition } from '../interfaces';\n\nexport function appendNgwResources(\n options: NgwLayerOptions[],\n resource?: NgwResourceDefinition,\n defOptions?: Partial<NgwLayerOptions>,\n overwriteOptions?: Partial<NgwLayerOptions>,\n): void {\n if (typeof resource === 'number' || typeof resource === 'string') {\n resource = Number(resource);\n options.push({\n ...defOptions,\n resource,\n });\n } else if (Array.isArray(resource)) {\n const [resourceId, id] = resource;\n options.push({\n ...defOptions,\n resource: resourceId,\n id,\n ...overwriteOptions,\n });\n } else if (typeof resource === 'object') {\n options.push({ ...defOptions, ...resource, ...overwriteOptions });\n }\n}\n","import { deepmerge } from '@nextgis/utils';\nimport { StarterKit, MapOptions } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\nimport { QmsKit } from '@nextgis/qms-kit';\nimport { NgwKit } from '@nextgis/ngw-kit';\n\nimport { NgwMapOptions } from '../interfaces';\n\nexport const OPTIONS: NgwMapOptions = {\n target: 'map',\n baseUrl: '',\n whitlabel: false,\n controls: ['ZOOM', 'ATTRIBUTION'],\n controlsOptions: {\n ZOOM: { position: 'top-left' },\n ATTRIBUTION: {\n position: 'bottom-right',\n customAttribution: [\n '<a href=\"https://nextgis.com\" target=\"_blank\">©NextGIS</a>',\n ],\n },\n },\n pixelRadius: 10,\n};\n\nexport function prepareWebMapOptions(options: NgwMapOptions): MapOptions {\n const kits: StarterKit[] = [new QmsKit()];\n if (options.starterKits) {\n options.starterKits.forEach((x) => {\n kits.push(x);\n });\n }\n\n if (!options.connector) {\n options.connector = new NgwConnector({\n baseUrl: options.baseUrl || '',\n auth: options.auth,\n });\n } else if (options.connector) {\n options.baseUrl = options.connector.options.baseUrl;\n }\n options = deepmerge(OPTIONS, options);\n\n if (!options.center && !options.bounds) {\n options.bounds = [-179, -90, 180, 90];\n // options.maxBounds = options.bounds;\n }\n\n if (options.connector) {\n kits.push(\n new NgwKit({\n connector: options.connector,\n auth: options.auth,\n }),\n );\n }\n options = {\n ...options,\n starterKits: kits,\n create: false,\n };\n return options;\n}\n","import StrictEventEmitter from 'strict-event-emitter-types';\nimport { EventEmitter } from 'events';\nimport CancelablePromise from '@nextgis/cancelable-promise';\nimport { defined, isObject, getIdentifyRadius } from '@nextgis/utils';\nimport { AdapterOptions, WebMap } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\n\nimport {\n fetchNgwLayerFeatureCollection,\n createNgwLayerAdapter,\n fetchNgwLayerFeature,\n fetchIdentifyGeoJson,\n sendIdentifyRequest,\n createIdentifyItem,\n fetchNgwLayerItems,\n fetchIdentifyItem,\n fetchNgwLayerItem,\n getIdentifyItems,\n getCompanyLogo,\n fetchNgwExtent,\n} from '@nextgis/ngw-kit';\nimport { deprecatedWarn } from '@nextgis/utils';\nimport { getIcon } from '@nextgis/icons';\n\nimport { appendNgwResources } from './utils/appendNgwResources';\nimport { prepareWebMapOptions } from './utils/prepareWebMapOptions';\n\nimport type { JsonMap, FeatureProperties } from '@nextgis/utils';\nimport type {\n FeatureItem,\n LayerFeature,\n ResourceItem,\n FeatureLayersIdentify,\n FeatureLayersIdentifyItems,\n} from '@nextgis/ngw-connector';\nimport type {\n OnLayerMouseOptions,\n ControlPosition,\n MapClickEvent,\n LayerAdapter,\n WebMapEvents,\n MapControls,\n FitOptions,\n LayerDef,\n} from '@nextgis/webmap';\nimport type {\n NgwIdentify,\n NgwWebmapItem,\n ResourceAdapter,\n FetchNgwItemsOptions,\n NgwFeatureItemResponse,\n NgwFeatureRequestOptions,\n} from '@nextgis/ngw-kit';\nimport type { Geometry, Feature, FeatureCollection } from 'geojson';\nimport type { QmsAdapterOptions } from '@nextgis/qms-kit';\nimport type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type {\n NgwIdentifyEvent,\n NgwMapOptions,\n NgwMapEvents,\n NgwLayers,\n} from './interfaces';\nimport type { FetchNgwItemOptions } from '@nextgis/ngw-kit';\n\ntype PromiseGroup = 'select' | 'identify';\n\n/**\n * Base class containing the logic of interaction WebMap with NextGIS services.\n *\n * @example\n * ```javascript\n * import { NgwMap } from '@nextgis/ngw-map';\n * import MapAdapter from '@nextgis/leaflet-map-adapter';\n * // styles are not included in the leaflet-map-adapter\n * import 'leaflet/dist/leaflet.css';\n *\n * const ngwMap = new NgwMap({\n * mapAdapter: new MapAdapter(),\n * target: 'map',\n * qmsId: 448,\n * baseUrl: 'https://demo.nextgis.com',\n * webmapId: 3985\n * });\n * ```\n */\nexport class NgwMap<\n M = unknown,\n L = unknown,\n C extends object = any,\n O extends NgwMapOptions<M, C> = NgwMapOptions<M, C>,\n> extends WebMap<M, L, C, NgwMapEvents, O> {\n static getIcon = getIcon;\n\n readonly emitter: StrictEventEmitter<EventEmitter, NgwMapEvents> =\n new EventEmitter();\n connector!: NgwConnector;\n\n protected _ngwLayers: NgwLayers = {};\n private $$selectFromNgwRaster?: (ev: MapClickEvent) => void;\n private $$selectFromNgwVector?: (ev: OnLayerMouseOptions) => void;\n private _promises: Record<PromiseGroup, CancelablePromise[]> = {\n select: [],\n identify: [],\n };\n\n constructor(options: O) {\n super(prepareWebMapOptions(options) as O);\n if (options.connector) {\n this.connector = options.connector;\n }\n this._createWebMap().then(() => {\n const container = this.getContainer();\n if (container) {\n container.classList.add('ngw-map-container');\n }\n if (this.options.whitlabel) {\n this._whiteLabel();\n }\n });\n }\n\n /**\n * Organized addition to the map design and controls elements,\n * calling `control.onAdd(this.webMap.mapAdapter)`\n * @param control - object with onAdd and onRemove methods\n * or a string value indicating the name of the control installed in the map adapter\n * @param position - position relative to the map angles\n * @param options - initialization parameters if the control is set as a string value\n *\n * @example\n * ```javascript\n * ngwMap.addControl(new CustomControl(), 'bottom-left');\n * ngwMap.addControl('ZOOM', 'top-right')\n * ```\n */\n async addControl<K extends keyof MapControls>(\n controlDef: K | C,\n position: ControlPosition,\n options?: MapControls[K],\n ): Promise<any> {\n await this.onLoad('controls:create');\n return super.addControl(controlDef, position, options);\n }\n\n /**\n * Add any (style, vector, webmap) NGW layer by resource definition.\n * @param options - set layer identification parameters and render method.\n *\n * @example\n * ```javascript\n * // Add raster layer resourceId is the style of 4004 layer\n * ngwMap.addNgwLayer({ resource: 4005 });\n * // Add vector data from layer GEOJSON source\n * ngwMap.addNgwLayer({\n * resource: 4038,\n * adapter: 'GEOJSON',\n * adapterOptions: { paint: { color: 'red' } }\n * });\n * ```\n */\n async addNgwLayer(\n options: NgwLayerOptions,\n ): Promise<ResourceAdapter | undefined> {\n await this.onMapLoad();\n // @ts-ignore for backward compatibility\n const { keyname, resourceId } = options;\n\n if (keyname || resourceId !== undefined) {\n deprecatedWarn(\n 'set `resource` options instead of `keyname` or `resourceId`',\n );\n }\n\n const resource = options.resource;\n if (!keyname && !resourceId && !resource) {\n throw new Error(\n 'resource, resourceId or keyname is required parameter to add NGW layer',\n );\n }\n if (defined(this.options.baseUrl)) {\n try {\n if (defined(this.options.setViewDelay)) {\n options.adapterOptions = options.adapterOptions || {};\n if (!defined(options.adapterOptions.setViewDelay)) {\n options.adapterOptions.setViewDelay = this.options.setViewDelay;\n }\n }\n const adapter = createNgwLayerAdapter(options, this, this.connector);\n const adapterOpts = {\n visibility: true,\n // TODO: do not merge options, use only `adapterOptions`\n ...options,\n ...options.adapterOptions,\n } as AdapterOptions;\n const layer = (await this.addLayer(\n adapter,\n adapterOpts,\n )) as ResourceAdapter<M, L, AdapterOptions>;\n const id = layer && this.getLayerId(layer);\n if (layer && id) {\n this._ngwLayers[id] = { layer, resourceId: layer.resourceId };\n layer.options.name =\n layer.options.name ||\n (layer.item && layer.item.resource.display_name);\n if (layer.options.baselayer) {\n const visibleLayerBaseLayer = this.getActiveBaseLayer();\n if (visibleLayerBaseLayer) {\n return layer;\n }\n }\n }\n return layer;\n } catch (er) {\n const resId =\n isObject(resource) && 'id' in resource\n ? resource.id\n : keyname || resourceId || resource;\n console.error(`Can't add NGW layer ${resId}.`, er);\n }\n }\n }\n\n /**\n * Pans and zooms the map to the initial position specified in the options\n */\n fit(): void {\n const { center, zoom, bounds } = this.options;\n if (center) {\n this.setCenter(center);\n if (zoom) {\n this.setZoom(zoom);\n }\n } else if (bounds) {\n this.fitBounds(bounds);\n }\n }\n\n fetchNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return fetchNgwLayerItem<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return fetchNgwLayerItems<G, F>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return fetchNgwLayerFeature<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemsOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return fetchNgwLayerFeatureCollection({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchIdentifyItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n identify: NgwIdentify,\n requestOptions?: NgwFeatureRequestOptions,\n // multiple = false\n ): CancelablePromise<NgwFeatureItemResponse<P, G> | undefined> {\n const promise = fetchIdentifyItem<G, P>({\n identify,\n connector: this.connector,\n requestOptions,\n // multiple,\n });\n\n this._addPromise('identify', promise);\n return promise;\n }\n\n fetchIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n const promise = fetchIdentifyGeoJson({\n identify,\n connector: this.connector,\n multiple,\n });\n if (promise && 'then' in promise) {\n this._addPromise('identify', promise);\n return promise;\n } else {\n return CancelablePromise.resolve(promise);\n }\n }\n\n /**\n * @deprecated use {@link fetchIdentifyGeoJson} instead\n */\n getIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n return this.fetchIdentifyGeoJson(identify, multiple);\n }\n\n async getNgwLayers(): Promise<NgwLayers> {\n await this.onLoad();\n return this._ngwLayers;\n }\n\n async getNgwLayerByResourceId(id: number): Promise<LayerAdapter | undefined> {\n for (const n in this._ngwLayers) {\n const mem = this._ngwLayers[n];\n if (mem.resourceId === id) {\n return mem && mem.layer;\n } else if (mem.layer.getIdentificationIds) {\n const ids = await mem.layer.getIdentificationIds();\n if (ids && ids.some((x) => x === id)) {\n return mem.layer;\n }\n }\n if (mem.layer.getDependLayers) {\n const dependLayers = mem.layer.getDependLayers() as NgwWebmapItem[];\n const dependFit = dependLayers.find((x) => {\n return x.item && x.item.parentId === id;\n });\n if (dependFit) {\n return dependFit.layer;\n }\n }\n }\n }\n\n /**\n * Move map to layer. If the layer is NGW resource, extent will be received from the server\n *\n * @example\n * ```javascript\n * const ngwLayer = ngwMap.addNgwLayer({ id: 'ngw_layer_name', resource: 4005 });\n * ngwMap.fitLayer(ngwLayer);\n * ngwMap.fitLayer('ngw_layer_name');\n * ```\n */\n async fitLayer(\n layerDef: LayerDef | number,\n options?: FitOptions,\n ): Promise<void> {\n let id: string | undefined;\n if (typeof layerDef === 'string' || typeof layerDef === 'number') {\n id = String(id);\n } else {\n id = layerDef.id;\n }\n const ngwLayer = id && this._ngwLayers[id];\n if (ngwLayer) {\n if (ngwLayer.layer.getBounds) {\n const bounds = await ngwLayer.layer.getBounds();\n if (bounds) {\n this.fitBounds(bounds, options);\n }\n } else {\n let item: ResourceItem | undefined;\n if (ngwLayer.layer.item) {\n item = ngwLayer.layer.item;\n } else {\n const resourceId = ngwLayer.resourceId;\n item = await this.connector.getResource(resourceId);\n }\n if (item) {\n fetchNgwExtent({\n resourceId: item.resource.id,\n connector: this.connector,\n }).then((extent) => {\n if (extent) {\n this.fitBounds(extent, options);\n }\n });\n }\n }\n } else {\n super.fitLayer(\n typeof layerDef === 'number' ? String(layerDef) : layerDef,\n options,\n );\n }\n }\n\n /** @deprecated use {@link fitLayer} instead */\n async zoomToLayer(layerDef: string | ResourceAdapter): Promise<void> {\n return this.fitLayer(layerDef);\n }\n\n onLoad(event: keyof NgwMapEvents = 'ngw-map:create'): Promise<this> {\n return super.onLoad(event as keyof WebMapEvents);\n }\n\n removeLayer(layerDef: LayerDef): void {\n const layer = this.getLayer(layerDef);\n if (layer) {\n const layerId = this.getLayerId(layer);\n if (layerId) {\n delete this._ngwLayers[layerId];\n }\n super.removeLayer(layer);\n }\n }\n\n enableSelection(): void {\n if (!this.$$selectFromNgwRaster) {\n this.$$selectFromNgwRaster = (ev: MapClickEvent) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this.selectFromNgwRaster(ev);\n }\n };\n this.$$selectFromNgwVector = (ev: OnLayerMouseOptions) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this._selectFromNgwVector(ev);\n }\n };\n this.emitter.on('click', this.$$selectFromNgwRaster);\n this.emitter.on('layer:click', this.$$selectFromNgwVector);\n }\n }\n\n disableSelection(): void {\n if (this.$$selectFromNgwRaster) {\n this.emitter.removeListener('click', this.$$selectFromNgwRaster);\n this.$$selectFromNgwRaster = undefined;\n }\n if (this.$$selectFromNgwVector) {\n this.emitter.removeListener('layer:click', this.$$selectFromNgwVector);\n\n this.$$selectFromNgwVector = undefined;\n }\n }\n\n /**\n * @deprecated use {@link fetchNgwLayerItem} instead\n */\n getNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return this.fetchNgwLayerItem<G, P>(options);\n }\n\n /**\n * @deprecated use {@link fetchNgwLayerItems} instead\n */\n getNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return this.fetchNgwLayerItems<F, G>(options);\n }\n\n /**\n * @deprecated use {@link fetchNgwLayerFeature} instead\n */\n getNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return this.fetchNgwLayerFeature<G, P>(options);\n }\n\n /**\n * @deprecated use {@link fetchNgwLayerFeatures} instead\n */\n getNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends JsonMap = JsonMap,\n >(\n options: FetchNgwItemsOptions<P>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return this.fetchNgwLayerFeatures(options);\n }\n\n /** @deprecated use {@link cancelPromises} instead */\n cancelPromise(...args: PromiseGroup[]): void {\n this.cancelPromises(...args);\n }\n\n cancelPromises(...args: PromiseGroup[]): void {\n if (!args.length) {\n args = Object.keys(this._promises) as PromiseGroup[];\n }\n args.forEach((name) => {\n const group = this._promises[name];\n if (group) {\n group.forEach((x) => x.cancel());\n this._promises[name] = [];\n }\n });\n }\n\n async selectFromNgwRaster(\n ev: MapClickEvent,\n ): Promise<NgwIdentifyEvent | undefined> {\n this._emitStatusEvent('ngw:preselect');\n\n const promises: Promise<number[] | undefined>[] = [];\n const layers = Object.values(this._ngwLayers);\n layers.sort((a, b) => {\n if (a.layer.order && b.layer.order) {\n return b.layer.order - a.layer.order;\n }\n return 1;\n });\n for (const l of layers) {\n const layer = l.layer;\n const identFunc =\n typeof layer.getIdentificationIds === 'function'\n ? layer.getIdentificationIds\n : false;\n if (identFunc && layer.options.selectable && this.isLayerVisible(layer)) {\n promises.push(identFunc.call(layer));\n }\n }\n const getIdsPromise = Promise.all(promises);\n const getIds = await getIdsPromise;\n const ids: number[] = [];\n for (const x of getIds) {\n if (x) {\n ids.push(...x);\n }\n }\n\n if (!ids.length) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n\n const pixelRadius = this.options.pixelRadius || 10;\n const center = this.getCenter();\n let zoom = this.getZoom();\n zoom = zoom !== undefined ? zoom : 20;\n if (!center || !zoom) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n const radius = getIdentifyRadius(center, zoom, pixelRadius);\n\n const selectPromise = sendIdentifyRequest(ev, {\n layers: ids,\n connector: this.connector,\n radius,\n }).then((resp) => {\n const identify: NgwIdentify = {\n ...resp,\n resources: ids,\n sourceType: 'raster',\n event: ev,\n };\n const identifyEvent: NgwIdentifyEvent = this._prepareToIdentify(identify);\n this._emitStatusEvent('ngw:select', identifyEvent);\n return identifyEvent;\n });\n this._addPromise('select', selectPromise);\n return selectPromise;\n }\n\n private _addPromise(groupName: PromiseGroup, promise: CancelablePromise) {\n const group = this._promises[groupName];\n if (group && group.indexOf(promise) === -1) {\n const removeFromGroup = () => {\n const index = group.indexOf(promise);\n if (index !== -1) {\n group.splice(index, 1);\n }\n };\n promise.then(removeFromGroup);\n promise.catch(removeFromGroup);\n group.push(promise);\n }\n }\n\n private _isFitFromResource() {\n const params = this._initMapState;\n if (params.zoom && params.center) {\n return false;\n }\n return true;\n }\n\n private async _createWebMap() {\n await this.create();\n if (this.options.qmsId) {\n this._addQmsBaseLayer();\n }\n if (this.options.osm) {\n this._addOsmBaseLayer();\n }\n\n const resources: NgwLayerOptions[] = [];\n const layerFitAllowed = this._isFitFromResource();\n if (this.options.webmapId) {\n appendNgwResources(resources, this.options.webmapId, {\n fit: layerFitAllowed,\n });\n }\n if (this.options.resources && Array.isArray(this.options.resources)) {\n for (const x of this.options.resources) {\n const overwriteOptions: Partial<NgwLayerOptions> = {};\n if (!layerFitAllowed) {\n overwriteOptions.fit = false;\n }\n appendNgwResources(resources, x, {}, overwriteOptions);\n }\n }\n for (const r of resources) {\n try {\n await this.addNgwLayer(r);\n } catch (er) {\n console.warn(er);\n }\n }\n this._emitStatusEvent('ngw-map:create', this);\n this.enableSelection();\n }\n\n private _addOsmBaseLayer() {\n this.addBaseLayer('OSM');\n }\n\n private _addQmsBaseLayer() {\n let qmsId: number;\n let qmsLayerName: string | undefined;\n if (Array.isArray(this.options.qmsId)) {\n qmsId = this.options.qmsId[0];\n qmsLayerName = this.options.qmsId[1];\n } else {\n qmsId = Number(this.options.qmsId);\n }\n const qmsLayerOptions: Partial<QmsAdapterOptions> = {\n qmsId,\n };\n if (qmsLayerName) {\n qmsLayerOptions.id = qmsLayerName;\n }\n\n this.addBaseLayer('QMS', qmsLayerOptions);\n }\n\n private _selectFromNgwVector(\n ev: OnLayerMouseOptions,\n ): FeatureLayersIdentify | undefined {\n const layer: ResourceAdapter = ev.layer as ResourceAdapter;\n const selectable = layer.options.selectable && this.isLayerVisible(layer);\n if (!selectable) {\n return undefined;\n }\n // Item property means layer is NgwResource\n const id = layer.item && layer.item.resource.id;\n const feature = ev.feature;\n\n if (id !== undefined && feature) {\n const featureId = feature.id;\n if (featureId) {\n const identifyFeature: LayerFeature = {\n id: Number(featureId),\n fields: feature.properties || {},\n label: `#${id}`,\n layerId: Number(id),\n parent: '',\n geom: feature.geometry,\n };\n const items: FeatureLayersIdentifyItems = {\n featureCount: 1,\n features: [identifyFeature],\n };\n const identify: FeatureLayersIdentify = {\n featureCount: 1,\n [id]: items,\n };\n this._emitStatusEvent(\n 'ngw:select',\n this._prepareToIdentify({\n ...identify,\n resources: [id],\n sourceType: 'vector',\n } as NgwIdentify),\n );\n return identify;\n }\n }\n }\n\n private _prepareToIdentify<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(identify: NgwIdentify): NgwIdentifyEvent {\n const getIdentifyItems_ = () => {\n return getIdentifyItems(identify, true).map((x) => {\n return createIdentifyItem<F, G>({\n feature: x.feature,\n connector: this.connector,\n });\n });\n };\n return {\n ...identify,\n getIdentifyItems: getIdentifyItems_,\n };\n }\n\n private _getSelectListenersCount() {\n return this.emitter.listenerCount('ngw:select');\n }\n\n private async _whiteLabel() {\n const container = this.getContainer();\n if (container) {\n const logo = await getCompanyLogo(\n this.connector,\n this.options.companyLogoOptions,\n );\n if (logo) {\n container.appendChild(logo);\n }\n }\n }\n}\n","/**\n * @module ngw-map\n */\n\nimport { NgwMap } from './NgwMap';\nimport type { NgwMapOptions } from './interfaces';\n\nexport * from '@nextgis/webmap';\n\nexport * from './interfaces';\n\nexport { NgwMap };\n\nexport async function createNgwMap(options: NgwMapOptions): Promise<NgwMap> {\n const ngwMap = new NgwMap(options);\n return ngwMap.onLoad();\n}\n"],"names":["QmsKit","NgwConnector","deepmerge","NgwKit","EventEmitter","deprecatedWarn","defined","createNgwLayerAdapter","isObject","fetchNgwLayerItem","fetchNgwLayerItems","fetchNgwLayerFeature","fetchNgwLayerFeatureCollection","fetchIdentifyItem","fetchIdentifyGeoJson","CancelablePromise","fetchNgwExtent","getIdentifyRadius","sendIdentifyRequest","getIdentifyItems","createIdentifyItem","getCompanyLogo","getIcon","WebMap"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngw-map.cjs.prod.js","sources":["../src/utils/appendNgwResources.ts","../src/utils/prepareWebMapOptions.ts","../src/NgwMap.ts","../src/index.ts"],"sourcesContent":["import type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type { NgwResourceDefinition } from '../interfaces';\n\nexport function appendNgwResources(\n options: NgwLayerOptions[],\n resource?: NgwResourceDefinition,\n defOptions?: Partial<NgwLayerOptions>,\n overwriteOptions?: Partial<NgwLayerOptions>,\n): void {\n if (typeof resource === 'number' || typeof resource === 'string') {\n resource = Number(resource);\n options.push({\n ...defOptions,\n resource,\n });\n } else if (Array.isArray(resource)) {\n const [resourceId, id] = resource;\n options.push({\n ...defOptions,\n resource: resourceId,\n id,\n ...overwriteOptions,\n });\n } else if (typeof resource === 'object') {\n options.push({ ...defOptions, ...resource, ...overwriteOptions });\n }\n}\n","import { deepmerge } from '@nextgis/utils';\nimport { StarterKit, MapOptions } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\nimport { QmsKit } from '@nextgis/qms-kit';\nimport { NgwKit } from '@nextgis/ngw-kit';\n\nimport { NgwMapOptions } from '../interfaces';\n\nexport const OPTIONS: NgwMapOptions = {\n target: 'map',\n baseUrl: '',\n whitlabel: false,\n controls: ['ZOOM', 'ATTRIBUTION'],\n controlsOptions: {\n ZOOM: { position: 'top-left' },\n ATTRIBUTION: {\n position: 'bottom-right',\n customAttribution: [\n '<a href=\"https://nextgis.com\" target=\"_blank\">©NextGIS</a>',\n ],\n },\n },\n pixelRadius: 10,\n};\n\nexport function prepareWebMapOptions(options: NgwMapOptions): MapOptions {\n const kits: StarterKit[] = [new QmsKit()];\n if (options.starterKits) {\n options.starterKits.forEach((x) => {\n kits.push(x);\n });\n }\n\n if (!options.connector) {\n options.connector = new NgwConnector({\n baseUrl: options.baseUrl || '',\n auth: options.auth,\n });\n } else if (options.connector) {\n options.baseUrl = options.connector.options.baseUrl;\n }\n options = deepmerge(OPTIONS, options);\n\n if (!options.center && !options.bounds) {\n options.bounds = [-179, -90, 180, 90];\n // options.maxBounds = options.bounds;\n }\n\n if (options.connector) {\n kits.push(\n new NgwKit({\n connector: options.connector,\n auth: options.auth,\n }),\n );\n }\n options = {\n ...options,\n starterKits: kits,\n create: false,\n };\n return options;\n}\n","import StrictEventEmitter from 'strict-event-emitter-types';\nimport { EventEmitter } from 'events';\nimport CancelablePromise from '@nextgis/cancelable-promise';\nimport { defined, isObject, getIdentifyRadius } from '@nextgis/utils';\nimport { AdapterOptions, WebMap } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\n\nimport {\n fetchNgwLayerFeatureCollection,\n createNgwLayerAdapter,\n fetchNgwLayerFeature,\n fetchIdentifyGeoJson,\n sendIdentifyRequest,\n createIdentifyItem,\n fetchNgwLayerItems,\n fetchIdentifyItem,\n fetchNgwLayerItem,\n getIdentifyItems,\n getCompanyLogo,\n fetchNgwExtent,\n} from '@nextgis/ngw-kit';\nimport { deprecatedWarn } from '@nextgis/utils';\nimport { getIcon } from '@nextgis/icons';\n\nimport { appendNgwResources } from './utils/appendNgwResources';\nimport { prepareWebMapOptions } from './utils/prepareWebMapOptions';\n\nimport type { JsonMap, FeatureProperties } from '@nextgis/utils';\nimport type {\n FeatureItem,\n LayerFeature,\n ResourceItem,\n FeatureLayersIdentify,\n FeatureLayersIdentifyItems,\n} from '@nextgis/ngw-connector';\nimport type {\n OnLayerMouseOptions,\n ControlPosition,\n MapClickEvent,\n LayerAdapter,\n WebMapEvents,\n MapControls,\n FitOptions,\n LayerDef,\n} from '@nextgis/webmap';\nimport type {\n NgwIdentify,\n NgwWebmapItem,\n ResourceAdapter,\n FetchNgwItemsOptions,\n NgwFeatureItemResponse,\n NgwFeatureRequestOptions,\n} from '@nextgis/ngw-kit';\nimport type { Geometry, Feature, FeatureCollection } from 'geojson';\nimport type { QmsAdapterOptions } from '@nextgis/qms-kit';\nimport type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type {\n NgwIdentifyEvent,\n NgwMapOptions,\n NgwMapEvents,\n NgwLayers,\n} from './interfaces';\nimport type { FetchNgwItemOptions } from '@nextgis/ngw-kit';\n\ntype PromiseGroup = 'select' | 'identify';\n\n/**\n * Base class containing the logic of interaction WebMap with NextGIS services.\n *\n * @example\n * ```javascript\n * import { NgwMap } from '@nextgis/ngw-map';\n * import MapAdapter from '@nextgis/leaflet-map-adapter';\n * // styles are not included in the leaflet-map-adapter\n * import 'leaflet/dist/leaflet.css';\n *\n * const ngwMap = new NgwMap({\n * mapAdapter: new MapAdapter(),\n * target: 'map',\n * qmsId: 448,\n * baseUrl: 'https://demo.nextgis.com',\n * webmapId: 3985\n * });\n * ```\n */\nexport class NgwMap<\n M = unknown,\n L = unknown,\n C extends object = any,\n O extends NgwMapOptions<M, C> = NgwMapOptions<M, C>,\n> extends WebMap<M, L, C, NgwMapEvents, O> {\n static getIcon = getIcon;\n\n readonly emitter: StrictEventEmitter<EventEmitter, NgwMapEvents> =\n new EventEmitter();\n connector!: NgwConnector;\n\n protected _ngwLayers: NgwLayers = {};\n private $$selectFromNgwRaster?: (ev: MapClickEvent) => void;\n private $$selectFromNgwVector?: (ev: OnLayerMouseOptions) => void;\n private _promises: Record<PromiseGroup, CancelablePromise[]> = {\n select: [],\n identify: [],\n };\n\n constructor(options: O) {\n super(prepareWebMapOptions(options) as O);\n if (options.connector) {\n this.connector = options.connector;\n }\n this._createWebMap().then(() => {\n const container = this.getContainer();\n if (container) {\n container.classList.add('ngw-map-container');\n }\n if (this.options.whitlabel) {\n this._whiteLabel();\n }\n });\n }\n\n /**\n * Organized addition to the map design and controls elements,\n * calling `control.onAdd(this.webMap.mapAdapter)`\n * @param control - object with onAdd and onRemove methods\n * or a string value indicating the name of the control installed in the map adapter\n * @param position - position relative to the map angles\n * @param options - initialization parameters if the control is set as a string value\n *\n * @example\n * ```javascript\n * ngwMap.addControl(new CustomControl(), 'bottom-left');\n * ngwMap.addControl('ZOOM', 'top-right')\n * ```\n */\n async addControl<K extends keyof MapControls>(\n controlDef: K | C,\n position: ControlPosition,\n options?: MapControls[K],\n ): Promise<any> {\n await this.onLoad('controls:create');\n return super.addControl(controlDef, position, options);\n }\n\n /**\n * Add any (style, vector, webmap) NGW layer by resource definition.\n * @param options - set layer identification parameters and render method.\n *\n * @example\n * ```javascript\n * // Add raster layer resourceId is the style of 4004 layer\n * ngwMap.addNgwLayer({ resource: 4005 });\n * // Add vector data from layer GEOJSON source\n * ngwMap.addNgwLayer({\n * resource: 4038,\n * adapter: 'GEOJSON',\n * adapterOptions: { paint: { color: 'red' } }\n * });\n * ```\n */\n async addNgwLayer(\n options: NgwLayerOptions,\n ): Promise<ResourceAdapter | undefined> {\n await this.onMapLoad();\n // @ts-ignore for backward compatibility\n const { keyname, resourceId } = options;\n\n if (keyname || resourceId !== undefined) {\n deprecatedWarn(\n 'set `resource` options instead of `keyname` or `resourceId`',\n );\n }\n\n const resource = options.resource;\n if (!keyname && !resourceId && !resource) {\n throw new Error(\n 'resource, resourceId or keyname is required parameter to add NGW layer',\n );\n }\n if (defined(this.options.baseUrl)) {\n try {\n if (defined(this.options.setViewDelay)) {\n options.adapterOptions = options.adapterOptions || {};\n if (!defined(options.adapterOptions.setViewDelay)) {\n options.adapterOptions.setViewDelay = this.options.setViewDelay;\n }\n }\n const adapter = createNgwLayerAdapter(options, this, this.connector);\n const adapterOpts = {\n visibility: true,\n // TODO: do not merge options, use only `adapterOptions`\n ...options,\n ...options.adapterOptions,\n } as AdapterOptions;\n const layer = (await this.addLayer(\n adapter,\n adapterOpts,\n )) as ResourceAdapter<M, L, AdapterOptions>;\n const id = layer && this.getLayerId(layer);\n if (layer && id) {\n this._ngwLayers[id] = { layer, resourceId: layer.resourceId };\n layer.options.name =\n layer.options.name ||\n (layer.item && layer.item.resource.display_name);\n if (layer.options.baselayer) {\n const visibleLayerBaseLayer = this.getActiveBaseLayer();\n if (visibleLayerBaseLayer) {\n return layer;\n }\n }\n }\n return layer;\n } catch (er) {\n const resId =\n isObject(resource) && 'id' in resource\n ? resource.id\n : keyname || resourceId || resource;\n console.error(`Can't add NGW layer ${resId}.`, er);\n }\n }\n }\n\n /**\n * Pans and zooms the map to the initial position specified in the options\n */\n fit(): void {\n const { center, zoom, bounds } = this.options;\n if (center) {\n this.setCenter(center);\n if (zoom) {\n this.setZoom(zoom);\n }\n } else if (bounds) {\n this.fitBounds(bounds);\n }\n }\n\n fetchNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return fetchNgwLayerItem<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return fetchNgwLayerItems<G, F>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return fetchNgwLayerFeature<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemsOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return fetchNgwLayerFeatureCollection({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchIdentifyItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n identify: NgwIdentify,\n requestOptions?: NgwFeatureRequestOptions,\n // multiple = false\n ): CancelablePromise<NgwFeatureItemResponse<P, G> | undefined> {\n const promise = fetchIdentifyItem<G, P>({\n identify,\n connector: this.connector,\n requestOptions,\n // multiple,\n });\n\n this._addPromise('identify', promise);\n return promise;\n }\n\n fetchIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n const promise = fetchIdentifyGeoJson({\n identify,\n connector: this.connector,\n multiple,\n });\n if (promise && 'then' in promise) {\n this._addPromise('identify', promise);\n return promise;\n } else {\n return CancelablePromise.resolve(promise);\n }\n }\n\n /**\n * @deprecated use {@link fetchIdentifyGeoJson} instead\n */\n getIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n return this.fetchIdentifyGeoJson(identify, multiple);\n }\n\n async getNgwLayers(): Promise<NgwLayers> {\n await this.onLoad();\n return this._ngwLayers;\n }\n\n async getNgwLayerByResourceId(id: number): Promise<LayerAdapter | undefined> {\n for (const n in this._ngwLayers) {\n const mem = this._ngwLayers[n];\n if (mem.resourceId === id) {\n return mem && mem.layer;\n } else if (mem.layer.getIdentificationIds) {\n const ids = await mem.layer.getIdentificationIds();\n if (ids && ids.some((x) => x === id)) {\n return mem.layer;\n }\n }\n if (mem.layer.getDependLayers) {\n const dependLayers = mem.layer.getDependLayers() as NgwWebmapItem[];\n const dependFit = dependLayers.find((x) => {\n return x.item && x.item.parentId === id;\n });\n if (dependFit) {\n return dependFit.layer;\n }\n }\n }\n }\n\n /**\n * Move map to layer. If the layer is NGW resource, extent will be received from the server\n *\n * @example\n * ```javascript\n * const ngwLayer = ngwMap.addNgwLayer({ id: 'ngw_layer_name', resource: 4005 });\n * ngwMap.fitLayer(ngwLayer);\n * ngwMap.fitLayer('ngw_layer_name');\n * ```\n */\n async fitLayer(\n layerDef: LayerDef | number,\n options?: FitOptions,\n ): Promise<void> {\n let id: string | undefined;\n if (typeof layerDef === 'string' || typeof layerDef === 'number') {\n id = String(id);\n } else {\n id = layerDef.id;\n }\n const ngwLayer = id && this._ngwLayers[id];\n if (ngwLayer) {\n if (ngwLayer.layer.getBounds) {\n const bounds = await ngwLayer.layer.getBounds();\n if (bounds) {\n this.fitBounds(bounds, options);\n }\n } else {\n let item: ResourceItem | undefined;\n if (ngwLayer.layer.item) {\n item = ngwLayer.layer.item;\n } else {\n const resourceId = ngwLayer.resourceId;\n item = await this.connector.getResource(resourceId);\n }\n if (item) {\n fetchNgwExtent({\n resourceId: item.resource.id,\n connector: this.connector,\n }).then((extent) => {\n if (extent) {\n this.fitBounds(extent, options);\n }\n });\n }\n }\n } else {\n super.fitLayer(\n typeof layerDef === 'number' ? String(layerDef) : layerDef,\n options,\n );\n }\n }\n\n /** @deprecated use {@link NgwMap.fitLayer} instead */\n async zoomToLayer(layerDef: string | ResourceAdapter): Promise<void> {\n return this.fitLayer(layerDef);\n }\n\n onLoad(event: keyof NgwMapEvents = 'ngw-map:create'): Promise<this> {\n return super.onLoad(event as keyof WebMapEvents);\n }\n\n removeLayer(layerDef: LayerDef): void {\n const layer = this.getLayer(layerDef);\n if (layer) {\n const layerId = this.getLayerId(layer);\n if (layerId) {\n delete this._ngwLayers[layerId];\n }\n super.removeLayer(layer);\n }\n }\n\n enableSelection(): void {\n if (!this.$$selectFromNgwRaster) {\n this.$$selectFromNgwRaster = (ev: MapClickEvent) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this.selectFromNgwRaster(ev);\n }\n };\n this.$$selectFromNgwVector = (ev: OnLayerMouseOptions) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this._selectFromNgwVector(ev);\n }\n };\n this.emitter.on('click', this.$$selectFromNgwRaster);\n this.emitter.on('layer:click', this.$$selectFromNgwVector);\n }\n }\n\n disableSelection(): void {\n if (this.$$selectFromNgwRaster) {\n this.emitter.removeListener('click', this.$$selectFromNgwRaster);\n this.$$selectFromNgwRaster = undefined;\n }\n if (this.$$selectFromNgwVector) {\n this.emitter.removeListener('layer:click', this.$$selectFromNgwVector);\n\n this.$$selectFromNgwVector = undefined;\n }\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerItem} instead\n */\n getNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return this.fetchNgwLayerItem<G, P>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerItems} instead\n */\n getNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return this.fetchNgwLayerItems<F, G>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerFeature} instead\n */\n getNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return this.fetchNgwLayerFeature<G, P>(options);\n }\n\n /**\n * @deprecated use {@link NgwMap.fetchNgwLayerFeatures} instead\n */\n getNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends JsonMap = JsonMap,\n >(\n options: FetchNgwItemsOptions<P>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return this.fetchNgwLayerFeatures(options);\n }\n\n /** @deprecated use {@link NgwMap.cancelPromises} instead */\n cancelPromise(...args: PromiseGroup[]): void {\n this.cancelPromises(...args);\n }\n\n cancelPromises(...args: PromiseGroup[]): void {\n if (!args.length) {\n args = Object.keys(this._promises) as PromiseGroup[];\n }\n args.forEach((name) => {\n const group = this._promises[name];\n if (group) {\n group.forEach((x) => x.cancel());\n this._promises[name] = [];\n }\n });\n }\n\n async selectFromNgwRaster(\n ev: MapClickEvent,\n ): Promise<NgwIdentifyEvent | undefined> {\n this._emitStatusEvent('ngw:preselect');\n\n const promises: Promise<number[] | undefined>[] = [];\n const layers = Object.values(this._ngwLayers);\n layers.sort((a, b) => {\n if (a.layer.order && b.layer.order) {\n return b.layer.order - a.layer.order;\n }\n return 1;\n });\n for (const l of layers) {\n const layer = l.layer;\n const identFunc =\n typeof layer.getIdentificationIds === 'function'\n ? layer.getIdentificationIds\n : false;\n if (identFunc && layer.options.selectable && this.isLayerVisible(layer)) {\n promises.push(identFunc.call(layer));\n }\n }\n const getIdsPromise = Promise.all(promises);\n const getIds = await getIdsPromise;\n const ids: number[] = [];\n for (const x of getIds) {\n if (x) {\n ids.push(...x);\n }\n }\n\n if (!ids.length) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n\n const pixelRadius = this.options.pixelRadius || 10;\n const center = this.getCenter();\n let zoom = this.getZoom();\n zoom = zoom !== undefined ? zoom : 20;\n if (!center || !zoom) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n const radius = getIdentifyRadius(center, zoom, pixelRadius);\n\n const selectPromise = sendIdentifyRequest(ev, {\n layers: ids,\n connector: this.connector,\n radius,\n }).then((resp) => {\n const identify: NgwIdentify = {\n ...resp,\n resources: ids,\n sourceType: 'raster',\n event: ev,\n };\n const identifyEvent: NgwIdentifyEvent = this._prepareToIdentify(identify);\n this._emitStatusEvent('ngw:select', identifyEvent);\n return identifyEvent;\n });\n this._addPromise('select', selectPromise);\n return selectPromise;\n }\n\n private _addPromise(groupName: PromiseGroup, promise: CancelablePromise) {\n const group = this._promises[groupName];\n if (group && group.indexOf(promise) === -1) {\n const removeFromGroup = () => {\n const index = group.indexOf(promise);\n if (index !== -1) {\n group.splice(index, 1);\n }\n };\n promise.then(removeFromGroup);\n promise.catch(removeFromGroup);\n group.push(promise);\n }\n }\n\n private _isFitFromResource() {\n const params = this._initMapState;\n if (params.zoom && params.center) {\n return false;\n }\n return true;\n }\n\n private async _createWebMap() {\n await this.create();\n if (this.options.qmsId) {\n this._addQmsBaseLayer();\n }\n if (this.options.osm) {\n this._addOsmBaseLayer();\n }\n\n const resources: NgwLayerOptions[] = [];\n const layerFitAllowed = this._isFitFromResource();\n if (this.options.webmapId) {\n appendNgwResources(resources, this.options.webmapId, {\n fit: layerFitAllowed,\n });\n }\n if (this.options.resources && Array.isArray(this.options.resources)) {\n for (const x of this.options.resources) {\n const overwriteOptions: Partial<NgwLayerOptions> = {};\n if (!layerFitAllowed) {\n overwriteOptions.fit = false;\n }\n appendNgwResources(resources, x, {}, overwriteOptions);\n }\n }\n for (const r of resources) {\n try {\n await this.addNgwLayer(r);\n } catch (er) {\n console.warn(er);\n }\n }\n this._emitStatusEvent('ngw-map:create', this);\n this.enableSelection();\n }\n\n private _addOsmBaseLayer() {\n this.addBaseLayer('OSM');\n }\n\n private _addQmsBaseLayer() {\n let qmsId: number;\n let qmsLayerName: string | undefined;\n if (Array.isArray(this.options.qmsId)) {\n qmsId = this.options.qmsId[0];\n qmsLayerName = this.options.qmsId[1];\n } else {\n qmsId = Number(this.options.qmsId);\n }\n const qmsLayerOptions: Partial<QmsAdapterOptions> = {\n qmsId,\n };\n if (qmsLayerName) {\n qmsLayerOptions.id = qmsLayerName;\n }\n\n this.addBaseLayer('QMS', qmsLayerOptions);\n }\n\n private _selectFromNgwVector(\n ev: OnLayerMouseOptions,\n ): FeatureLayersIdentify | undefined {\n const layer: ResourceAdapter = ev.layer as ResourceAdapter;\n const selectable = layer.options.selectable && this.isLayerVisible(layer);\n if (!selectable) {\n return undefined;\n }\n // Item property means layer is NgwResource\n const id = layer.item && layer.item.resource.id;\n const feature = ev.feature;\n\n if (id !== undefined && feature) {\n const featureId = feature.id;\n if (featureId) {\n const identifyFeature: LayerFeature = {\n id: Number(featureId),\n fields: feature.properties || {},\n label: `#${id}`,\n layerId: Number(id),\n parent: '',\n geom: feature.geometry,\n };\n const items: FeatureLayersIdentifyItems = {\n featureCount: 1,\n features: [identifyFeature],\n };\n const identify: FeatureLayersIdentify = {\n featureCount: 1,\n [id]: items,\n };\n this._emitStatusEvent(\n 'ngw:select',\n this._prepareToIdentify({\n ...identify,\n resources: [id],\n sourceType: 'vector',\n } as NgwIdentify),\n );\n return identify;\n }\n }\n }\n\n private _prepareToIdentify<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(identify: NgwIdentify): NgwIdentifyEvent {\n const getIdentifyItems_ = () => {\n return getIdentifyItems(identify, true).map((x) => {\n return createIdentifyItem<F, G>({\n feature: x.feature,\n connector: this.connector,\n });\n });\n };\n return {\n ...identify,\n getIdentifyItems: getIdentifyItems_,\n };\n }\n\n private _getSelectListenersCount() {\n return this.emitter.listenerCount('ngw:select');\n }\n\n private async _whiteLabel() {\n const container = this.getContainer();\n if (container) {\n const logo = await getCompanyLogo(\n this.connector,\n this.options.companyLogoOptions,\n );\n if (logo) {\n container.appendChild(logo);\n }\n }\n }\n}\n","/**\n * @module ngw-map\n */\n\nimport { NgwMap } from './NgwMap';\nimport type { NgwMapOptions } from './interfaces';\n\nexport * from '@nextgis/webmap';\n\nexport * from './interfaces';\n\nexport { NgwMap };\n\nexport async function createNgwMap(options: NgwMapOptions): Promise<NgwMap> {\n const ngwMap = new NgwMap(options);\n return ngwMap.onLoad();\n}\n"],"names":["appendNgwResources","options","resource","defOptions","overwriteOptions","Number","push","__assign","Array","isArray","resourceId","id","OPTIONS","target","baseUrl","whitlabel","controls","controlsOptions","ZOOM","position","ATTRIBUTION","customAttribution","pixelRadius","NgwMap","_super","_this","kits","QmsKit","starterKits","forEach","x","connector","NgwConnector","auth","deepmerge","center","bounds","NgwKit","create","prepareWebMapOptions","this","emitter","EventEmitter","_ngwLayers","_promises","select","identify","_createWebMap","then","container","getContainer","classList","add","_whiteLabel","__extends","prototype","addControl","controlDef","onLoad","_a","sent","call","addNgwLayer","onMapLoad","keyname","undefined","deprecatedWarn","Error","defined","setViewDelay","adapterOptions","adapter","createNgwLayerAdapter","adapterOpts","visibility","addLayer","layer","getLayerId","name","item","display_name","baselayer","getActiveBaseLayer","resId","isObject","console","error","concat","er_1","fit","zoom","setCenter","setZoom","fitBounds","fetchNgwLayerItem","fetchNgwLayerItems","fetchNgwLayerFeature","fetchNgwLayerFeatures","fetchNgwLayerFeatureCollection","fetchIdentifyItem","requestOptions","promise","_addPromise","fetchIdentifyGeoJson","multiple","CancelablePromise","resolve","getIdentifyGeoJson","getNgwLayers","getNgwLayerByResourceId","_b","mem","getIdentificationIds","ids","_c","some","getDependLayers","dependLayers","dependFit","find","parentId","fitLayer","layerDef","String","ngwLayer","getBounds","getResource","fetchNgwExtent","extent","zoomToLayer","event","removeLayer","getLayer","layerId","enableSelection","$$selectFromNgwRaster","ev","_getSelectListenersCount","selectFromNgwRaster","$$selectFromNgwVector","_selectFromNgwVector","on","disableSelection","removeListener","getNgwLayerItem","getNgwLayerItems","getNgwLayerFeature","getNgwLayerFeatures","cancelPromise","args","_i","arguments","length","cancelPromises","apply","Object","keys","group","cancel","_emitStatusEvent","promises","layers","values","sort","a","b","order","layers_1","identFunc","selectable","isLayerVisible","Promise","all","getIds","getIds_1","getCenter","getZoom","radius","getIdentifyRadius","selectPromise","sendIdentifyRequest","resp","resources","sourceType","identifyEvent","_prepareToIdentify","groupName","indexOf","removeFromGroup","index","splice","catch","_isFitFromResource","params","_initMapState","qmsId","_addQmsBaseLayer","osm","_addOsmBaseLayer","layerFitAllowed","webmapId","resources_1","r","warn","er_2","addBaseLayer","qmsLayerName","qmsLayerOptions","feature","featureId","identifyFeature","fields","properties","label","parent","geom","geometry","featureCount","features","getIdentifyItems","map","createIdentifyItem","listenerCount","getCompanyLogo","companyLogoOptions","logo","appendChild","getIcon","WebMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngw-map.cjs.prod.js","sources":["../src/utils/appendNgwResources.ts","../src/utils/prepareWebMapOptions.ts","../src/NgwMap.ts","../src/index.ts"],"sourcesContent":["import type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type { NgwResourceDefinition } from '../interfaces';\n\nexport function appendNgwResources(\n options: NgwLayerOptions[],\n resource?: NgwResourceDefinition,\n defOptions?: Partial<NgwLayerOptions>,\n overwriteOptions?: Partial<NgwLayerOptions>,\n): void {\n if (typeof resource === 'number' || typeof resource === 'string') {\n resource = Number(resource);\n options.push({\n ...defOptions,\n resource,\n });\n } else if (Array.isArray(resource)) {\n const [resourceId, id] = resource;\n options.push({\n ...defOptions,\n resource: resourceId,\n id,\n ...overwriteOptions,\n });\n } else if (typeof resource === 'object') {\n options.push({ ...defOptions, ...resource, ...overwriteOptions });\n }\n}\n","import { deepmerge } from '@nextgis/utils';\nimport { StarterKit, MapOptions } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\nimport { QmsKit } from '@nextgis/qms-kit';\nimport { NgwKit } from '@nextgis/ngw-kit';\n\nimport { NgwMapOptions } from '../interfaces';\n\nexport const OPTIONS: NgwMapOptions = {\n target: 'map',\n baseUrl: '',\n whitlabel: false,\n controls: ['ZOOM', 'ATTRIBUTION'],\n controlsOptions: {\n ZOOM: { position: 'top-left' },\n ATTRIBUTION: {\n position: 'bottom-right',\n customAttribution: [\n '<a href=\"https://nextgis.com\" target=\"_blank\">©NextGIS</a>',\n ],\n },\n },\n pixelRadius: 10,\n};\n\nexport function prepareWebMapOptions(options: NgwMapOptions): MapOptions {\n const kits: StarterKit[] = [new QmsKit()];\n if (options.starterKits) {\n options.starterKits.forEach((x) => {\n kits.push(x);\n });\n }\n\n if (!options.connector) {\n options.connector = new NgwConnector({\n baseUrl: options.baseUrl || '',\n auth: options.auth,\n });\n } else if (options.connector) {\n options.baseUrl = options.connector.options.baseUrl;\n }\n options = deepmerge(OPTIONS, options);\n\n if (!options.center && !options.bounds) {\n options.bounds = [-179, -90, 180, 90];\n // options.maxBounds = options.bounds;\n }\n\n if (options.connector) {\n kits.push(\n new NgwKit({\n connector: options.connector,\n auth: options.auth,\n }),\n );\n }\n options = {\n ...options,\n starterKits: kits,\n create: false,\n };\n return options;\n}\n","import StrictEventEmitter from 'strict-event-emitter-types';\nimport { EventEmitter } from 'events';\nimport CancelablePromise from '@nextgis/cancelable-promise';\nimport { defined, isObject, getIdentifyRadius } from '@nextgis/utils';\nimport { AdapterOptions, WebMap } from '@nextgis/webmap';\nimport NgwConnector from '@nextgis/ngw-connector';\n\nimport {\n fetchNgwLayerFeatureCollection,\n createNgwLayerAdapter,\n fetchNgwLayerFeature,\n fetchIdentifyGeoJson,\n sendIdentifyRequest,\n createIdentifyItem,\n fetchNgwLayerItems,\n fetchIdentifyItem,\n fetchNgwLayerItem,\n getIdentifyItems,\n getCompanyLogo,\n fetchNgwExtent,\n} from '@nextgis/ngw-kit';\nimport { deprecatedWarn } from '@nextgis/utils';\nimport { getIcon } from '@nextgis/icons';\n\nimport { appendNgwResources } from './utils/appendNgwResources';\nimport { prepareWebMapOptions } from './utils/prepareWebMapOptions';\n\nimport type { JsonMap, FeatureProperties } from '@nextgis/utils';\nimport type {\n FeatureItem,\n LayerFeature,\n ResourceItem,\n FeatureLayersIdentify,\n FeatureLayersIdentifyItems,\n} from '@nextgis/ngw-connector';\nimport type {\n OnLayerMouseOptions,\n ControlPosition,\n MapClickEvent,\n LayerAdapter,\n WebMapEvents,\n MapControls,\n FitOptions,\n LayerDef,\n} from '@nextgis/webmap';\nimport type {\n NgwIdentify,\n NgwWebmapItem,\n ResourceAdapter,\n FetchNgwItemsOptions,\n NgwFeatureItemResponse,\n NgwFeatureRequestOptions,\n} from '@nextgis/ngw-kit';\nimport type { Geometry, Feature, FeatureCollection } from 'geojson';\nimport type { QmsAdapterOptions } from '@nextgis/qms-kit';\nimport type { NgwLayerOptions } from '@nextgis/ngw-kit';\nimport type {\n NgwIdentifyEvent,\n NgwMapOptions,\n NgwMapEvents,\n NgwLayers,\n} from './interfaces';\nimport type { FetchNgwItemOptions } from '@nextgis/ngw-kit';\n\ntype PromiseGroup = 'select' | 'identify';\n\n/**\n * Base class containing the logic of interaction WebMap with NextGIS services.\n *\n * @example\n * ```javascript\n * import { NgwMap } from '@nextgis/ngw-map';\n * import MapAdapter from '@nextgis/leaflet-map-adapter';\n * // styles are not included in the leaflet-map-adapter\n * import 'leaflet/dist/leaflet.css';\n *\n * const ngwMap = new NgwMap({\n * mapAdapter: new MapAdapter(),\n * target: 'map',\n * qmsId: 448,\n * baseUrl: 'https://demo.nextgis.com',\n * webmapId: 3985\n * });\n * ```\n */\nexport class NgwMap<\n M = unknown,\n L = unknown,\n C extends object = any,\n O extends NgwMapOptions<M, C> = NgwMapOptions<M, C>,\n> extends WebMap<M, L, C, NgwMapEvents, O> {\n static getIcon = getIcon;\n\n readonly emitter: StrictEventEmitter<EventEmitter, NgwMapEvents> =\n new EventEmitter();\n connector!: NgwConnector;\n\n protected _ngwLayers: NgwLayers = {};\n private $$selectFromNgwRaster?: (ev: MapClickEvent) => void;\n private $$selectFromNgwVector?: (ev: OnLayerMouseOptions) => void;\n private _promises: Record<PromiseGroup, CancelablePromise[]> = {\n select: [],\n identify: [],\n };\n\n constructor(options: O) {\n super(prepareWebMapOptions(options) as O);\n if (options.connector) {\n this.connector = options.connector;\n }\n this._createWebMap().then(() => {\n const container = this.getContainer();\n if (container) {\n container.classList.add('ngw-map-container');\n }\n if (this.options.whitlabel) {\n this._whiteLabel();\n }\n });\n }\n\n /**\n * Organized addition to the map design and controls elements,\n * calling `control.onAdd(this.webMap.mapAdapter)`\n * @param control - object with onAdd and onRemove methods\n * or a string value indicating the name of the control installed in the map adapter\n * @param position - position relative to the map angles\n * @param options - initialization parameters if the control is set as a string value\n *\n * @example\n * ```javascript\n * ngwMap.addControl(new CustomControl(), 'bottom-left');\n * ngwMap.addControl('ZOOM', 'top-right')\n * ```\n */\n async addControl<K extends keyof MapControls>(\n controlDef: K | C,\n position: ControlPosition,\n options?: MapControls[K],\n ): Promise<any> {\n await this.onLoad('controls:create');\n return super.addControl(controlDef, position, options);\n }\n\n /**\n * Add any (style, vector, webmap) NGW layer by resource definition.\n * @param options - set layer identification parameters and render method.\n *\n * @example\n * ```javascript\n * // Add raster layer resourceId is the style of 4004 layer\n * ngwMap.addNgwLayer({ resource: 4005 });\n * // Add vector data from layer GEOJSON source\n * ngwMap.addNgwLayer({\n * resource: 4038,\n * adapter: 'GEOJSON',\n * adapterOptions: { paint: { color: 'red' } }\n * });\n * ```\n */\n async addNgwLayer(\n options: NgwLayerOptions,\n ): Promise<ResourceAdapter | undefined> {\n await this.onMapLoad();\n // @ts-ignore for backward compatibility\n const { keyname, resourceId } = options;\n\n if (keyname || resourceId !== undefined) {\n deprecatedWarn(\n 'set `resource` options instead of `keyname` or `resourceId`',\n );\n }\n\n const resource = options.resource;\n if (!keyname && !resourceId && !resource) {\n throw new Error(\n 'resource, resourceId or keyname is required parameter to add NGW layer',\n );\n }\n if (defined(this.options.baseUrl)) {\n try {\n if (defined(this.options.setViewDelay)) {\n options.adapterOptions = options.adapterOptions || {};\n if (!defined(options.adapterOptions.setViewDelay)) {\n options.adapterOptions.setViewDelay = this.options.setViewDelay;\n }\n }\n const adapter = createNgwLayerAdapter(options, this, this.connector);\n const adapterOpts = {\n visibility: true,\n // TODO: do not merge options, use only `adapterOptions`\n ...options,\n ...options.adapterOptions,\n } as AdapterOptions;\n const layer = (await this.addLayer(\n adapter,\n adapterOpts,\n )) as ResourceAdapter<M, L, AdapterOptions>;\n const id = layer && this.getLayerId(layer);\n if (layer && id) {\n this._ngwLayers[id] = { layer, resourceId: layer.resourceId };\n layer.options.name =\n layer.options.name ||\n (layer.item && layer.item.resource.display_name);\n if (layer.options.baselayer) {\n const visibleLayerBaseLayer = this.getActiveBaseLayer();\n if (visibleLayerBaseLayer) {\n return layer;\n }\n }\n }\n return layer;\n } catch (er) {\n const resId =\n isObject(resource) && 'id' in resource\n ? resource.id\n : keyname || resourceId || resource;\n console.error(`Can't add NGW layer ${resId}.`, er);\n }\n }\n }\n\n /**\n * Pans and zooms the map to the initial position specified in the options\n */\n fit(): void {\n const { center, zoom, bounds } = this.options;\n if (center) {\n this.setCenter(center);\n if (zoom) {\n this.setZoom(zoom);\n }\n } else if (bounds) {\n this.fitBounds(bounds);\n }\n }\n\n fetchNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return fetchNgwLayerItem<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return fetchNgwLayerItems<G, F>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return fetchNgwLayerFeature<G, P>({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemsOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return fetchNgwLayerFeatureCollection({\n connector: this.connector,\n ...options,\n });\n }\n\n fetchIdentifyItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n identify: NgwIdentify,\n requestOptions?: NgwFeatureRequestOptions,\n // multiple = false\n ): CancelablePromise<NgwFeatureItemResponse<P, G> | undefined> {\n const promise = fetchIdentifyItem<G, P>({\n identify,\n connector: this.connector,\n requestOptions,\n // multiple,\n });\n\n this._addPromise('identify', promise);\n return promise;\n }\n\n fetchIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n const promise = fetchIdentifyGeoJson({\n identify,\n connector: this.connector,\n multiple,\n });\n if (promise && 'then' in promise) {\n this._addPromise('identify', promise);\n return promise;\n } else {\n return CancelablePromise.resolve(promise);\n }\n }\n\n /**\n * @deprecated use {@link fetchIdentifyGeoJson} instead\n */\n getIdentifyGeoJson(\n identify: NgwIdentify,\n multiple = false,\n ): CancelablePromise<Feature | undefined> {\n return this.fetchIdentifyGeoJson(identify, multiple);\n }\n\n async getNgwLayers(): Promise<NgwLayers> {\n await this.onLoad();\n return this._ngwLayers;\n }\n\n async getNgwLayerByResourceId(id: number): Promise<LayerAdapter | undefined> {\n for (const n in this._ngwLayers) {\n const mem = this._ngwLayers[n];\n if (mem.resourceId === id) {\n return mem && mem.layer;\n } else if (mem.layer.getIdentificationIds) {\n const ids = await mem.layer.getIdentificationIds();\n if (ids && ids.some((x) => x === id)) {\n return mem.layer;\n }\n }\n if (mem.layer.getDependLayers) {\n const dependLayers = mem.layer.getDependLayers() as NgwWebmapItem[];\n const dependFit = dependLayers.find((x) => {\n return x.item && x.item.parentId === id;\n });\n if (dependFit) {\n return dependFit.layer;\n }\n }\n }\n }\n\n /**\n * Move map to layer. If the layer is NGW resource, extent will be received from the server\n *\n * @example\n * ```javascript\n * const ngwLayer = ngwMap.addNgwLayer({ id: 'ngw_layer_name', resource: 4005 });\n * ngwMap.fitLayer(ngwLayer);\n * ngwMap.fitLayer('ngw_layer_name');\n * ```\n */\n async fitLayer(\n layerDef: LayerDef | number,\n options?: FitOptions,\n ): Promise<void> {\n let id: string | undefined;\n if (typeof layerDef === 'string' || typeof layerDef === 'number') {\n id = String(id);\n } else {\n id = layerDef.id;\n }\n const ngwLayer = id && this._ngwLayers[id];\n if (ngwLayer) {\n if (ngwLayer.layer.getBounds) {\n const bounds = await ngwLayer.layer.getBounds();\n if (bounds) {\n this.fitBounds(bounds, options);\n }\n } else {\n let item: ResourceItem | undefined;\n if (ngwLayer.layer.item) {\n item = ngwLayer.layer.item;\n } else {\n const resourceId = ngwLayer.resourceId;\n item = await this.connector.getResource(resourceId);\n }\n if (item) {\n fetchNgwExtent({\n resourceId: item.resource.id,\n connector: this.connector,\n }).then((extent) => {\n if (extent) {\n this.fitBounds(extent, options);\n }\n });\n }\n }\n } else {\n super.fitLayer(\n typeof layerDef === 'number' ? String(layerDef) : layerDef,\n options,\n );\n }\n }\n\n /** @deprecated use {@link fitLayer} instead */\n async zoomToLayer(layerDef: string | ResourceAdapter): Promise<void> {\n return this.fitLayer(layerDef);\n }\n\n onLoad(event: keyof NgwMapEvents = 'ngw-map:create'): Promise<this> {\n return super.onLoad(event as keyof WebMapEvents);\n }\n\n removeLayer(layerDef: LayerDef): void {\n const layer = this.getLayer(layerDef);\n if (layer) {\n const layerId = this.getLayerId(layer);\n if (layerId) {\n delete this._ngwLayers[layerId];\n }\n super.removeLayer(layer);\n }\n }\n\n enableSelection(): void {\n if (!this.$$selectFromNgwRaster) {\n this.$$selectFromNgwRaster = (ev: MapClickEvent) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this.selectFromNgwRaster(ev);\n }\n };\n this.$$selectFromNgwVector = (ev: OnLayerMouseOptions) => {\n const count = this._getSelectListenersCount();\n if (count) {\n this._selectFromNgwVector(ev);\n }\n };\n this.emitter.on('click', this.$$selectFromNgwRaster);\n this.emitter.on('layer:click', this.$$selectFromNgwVector);\n }\n }\n\n disableSelection(): void {\n if (this.$$selectFromNgwRaster) {\n this.emitter.removeListener('click', this.$$selectFromNgwRaster);\n this.$$selectFromNgwRaster = undefined;\n }\n if (this.$$selectFromNgwVector) {\n this.emitter.removeListener('layer:click', this.$$selectFromNgwVector);\n\n this.$$selectFromNgwVector = undefined;\n }\n }\n\n /**\n * @deprecated use {@link fetchNgwLayerItem} instead\n */\n getNgwLayerItem<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<FeatureItem> {\n return this.fetchNgwLayerItem<G, P>(options);\n }\n\n /**\n * @deprecated use {@link fetchNgwLayerItems} instead\n */\n getNgwLayerItems<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(\n options: Omit<FetchNgwItemsOptions<F>, 'connector'>,\n ): CancelablePromise<FeatureItem<F, G>[]> {\n return this.fetchNgwLayerItems<F, G>(options);\n }\n\n /**\n * @deprecated use {@link fetchNgwLayerFeature} instead\n */\n getNgwLayerFeature<\n G extends Geometry = Geometry,\n P extends FeatureProperties = FeatureProperties,\n >(\n options: Omit<FetchNgwItemOptions<P>, 'connector'>,\n ): CancelablePromise<Feature<G, P>> {\n return this.fetchNgwLayerFeature<G, P>(options);\n }\n\n /**\n * @deprecated use {@link fetchNgwLayerFeatures} instead\n */\n getNgwLayerFeatures<\n G extends Geometry | null = Geometry,\n P extends JsonMap = JsonMap,\n >(\n options: FetchNgwItemsOptions<P>,\n ): CancelablePromise<FeatureCollection<G, P>> {\n return this.fetchNgwLayerFeatures(options);\n }\n\n /** @deprecated use {@link cancelPromises} instead */\n cancelPromise(...args: PromiseGroup[]): void {\n this.cancelPromises(...args);\n }\n\n cancelPromises(...args: PromiseGroup[]): void {\n if (!args.length) {\n args = Object.keys(this._promises) as PromiseGroup[];\n }\n args.forEach((name) => {\n const group = this._promises[name];\n if (group) {\n group.forEach((x) => x.cancel());\n this._promises[name] = [];\n }\n });\n }\n\n async selectFromNgwRaster(\n ev: MapClickEvent,\n ): Promise<NgwIdentifyEvent | undefined> {\n this._emitStatusEvent('ngw:preselect');\n\n const promises: Promise<number[] | undefined>[] = [];\n const layers = Object.values(this._ngwLayers);\n layers.sort((a, b) => {\n if (a.layer.order && b.layer.order) {\n return b.layer.order - a.layer.order;\n }\n return 1;\n });\n for (const l of layers) {\n const layer = l.layer;\n const identFunc =\n typeof layer.getIdentificationIds === 'function'\n ? layer.getIdentificationIds\n : false;\n if (identFunc && layer.options.selectable && this.isLayerVisible(layer)) {\n promises.push(identFunc.call(layer));\n }\n }\n const getIdsPromise = Promise.all(promises);\n const getIds = await getIdsPromise;\n const ids: number[] = [];\n for (const x of getIds) {\n if (x) {\n ids.push(...x);\n }\n }\n\n if (!ids.length) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n\n const pixelRadius = this.options.pixelRadius || 10;\n const center = this.getCenter();\n let zoom = this.getZoom();\n zoom = zoom !== undefined ? zoom : 20;\n if (!center || !zoom) {\n this._emitStatusEvent('ngw:select', null);\n return;\n }\n const radius = getIdentifyRadius(center, zoom, pixelRadius);\n\n const selectPromise = sendIdentifyRequest(ev, {\n layers: ids,\n connector: this.connector,\n radius,\n }).then((resp) => {\n const identify: NgwIdentify = {\n ...resp,\n resources: ids,\n sourceType: 'raster',\n event: ev,\n };\n const identifyEvent: NgwIdentifyEvent = this._prepareToIdentify(identify);\n this._emitStatusEvent('ngw:select', identifyEvent);\n return identifyEvent;\n });\n this._addPromise('select', selectPromise);\n return selectPromise;\n }\n\n private _addPromise(groupName: PromiseGroup, promise: CancelablePromise) {\n const group = this._promises[groupName];\n if (group && group.indexOf(promise) === -1) {\n const removeFromGroup = () => {\n const index = group.indexOf(promise);\n if (index !== -1) {\n group.splice(index, 1);\n }\n };\n promise.then(removeFromGroup);\n promise.catch(removeFromGroup);\n group.push(promise);\n }\n }\n\n private _isFitFromResource() {\n const params = this._initMapState;\n if (params.zoom && params.center) {\n return false;\n }\n return true;\n }\n\n private async _createWebMap() {\n await this.create();\n if (this.options.qmsId) {\n this._addQmsBaseLayer();\n }\n if (this.options.osm) {\n this._addOsmBaseLayer();\n }\n\n const resources: NgwLayerOptions[] = [];\n const layerFitAllowed = this._isFitFromResource();\n if (this.options.webmapId) {\n appendNgwResources(resources, this.options.webmapId, {\n fit: layerFitAllowed,\n });\n }\n if (this.options.resources && Array.isArray(this.options.resources)) {\n for (const x of this.options.resources) {\n const overwriteOptions: Partial<NgwLayerOptions> = {};\n if (!layerFitAllowed) {\n overwriteOptions.fit = false;\n }\n appendNgwResources(resources, x, {}, overwriteOptions);\n }\n }\n for (const r of resources) {\n try {\n await this.addNgwLayer(r);\n } catch (er) {\n console.warn(er);\n }\n }\n this._emitStatusEvent('ngw-map:create', this);\n this.enableSelection();\n }\n\n private _addOsmBaseLayer() {\n this.addBaseLayer('OSM');\n }\n\n private _addQmsBaseLayer() {\n let qmsId: number;\n let qmsLayerName: string | undefined;\n if (Array.isArray(this.options.qmsId)) {\n qmsId = this.options.qmsId[0];\n qmsLayerName = this.options.qmsId[1];\n } else {\n qmsId = Number(this.options.qmsId);\n }\n const qmsLayerOptions: Partial<QmsAdapterOptions> = {\n qmsId,\n };\n if (qmsLayerName) {\n qmsLayerOptions.id = qmsLayerName;\n }\n\n this.addBaseLayer('QMS', qmsLayerOptions);\n }\n\n private _selectFromNgwVector(\n ev: OnLayerMouseOptions,\n ): FeatureLayersIdentify | undefined {\n const layer: ResourceAdapter = ev.layer as ResourceAdapter;\n const selectable = layer.options.selectable && this.isLayerVisible(layer);\n if (!selectable) {\n return undefined;\n }\n // Item property means layer is NgwResource\n const id = layer.item && layer.item.resource.id;\n const feature = ev.feature;\n\n if (id !== undefined && feature) {\n const featureId = feature.id;\n if (featureId) {\n const identifyFeature: LayerFeature = {\n id: Number(featureId),\n fields: feature.properties || {},\n label: `#${id}`,\n layerId: Number(id),\n parent: '',\n geom: feature.geometry,\n };\n const items: FeatureLayersIdentifyItems = {\n featureCount: 1,\n features: [identifyFeature],\n };\n const identify: FeatureLayersIdentify = {\n featureCount: 1,\n [id]: items,\n };\n this._emitStatusEvent(\n 'ngw:select',\n this._prepareToIdentify({\n ...identify,\n resources: [id],\n sourceType: 'vector',\n } as NgwIdentify),\n );\n return identify;\n }\n }\n }\n\n private _prepareToIdentify<\n F extends FeatureProperties = FeatureProperties,\n G extends Geometry = Geometry,\n >(identify: NgwIdentify): NgwIdentifyEvent {\n const getIdentifyItems_ = () => {\n return getIdentifyItems(identify, true).map((x) => {\n return createIdentifyItem<F, G>({\n feature: x.feature,\n connector: this.connector,\n });\n });\n };\n return {\n ...identify,\n getIdentifyItems: getIdentifyItems_,\n };\n }\n\n private _getSelectListenersCount() {\n return this.emitter.listenerCount('ngw:select');\n }\n\n private async _whiteLabel() {\n const container = this.getContainer();\n if (container) {\n const logo = await getCompanyLogo(\n this.connector,\n this.options.companyLogoOptions,\n );\n if (logo) {\n container.appendChild(logo);\n }\n }\n }\n}\n","/**\n * @module ngw-map\n */\n\nimport { NgwMap } from './NgwMap';\nimport type { NgwMapOptions } from './interfaces';\n\nexport * from '@nextgis/webmap';\n\nexport * from './interfaces';\n\nexport { NgwMap };\n\nexport async function createNgwMap(options: NgwMapOptions): Promise<NgwMap> {\n const ngwMap = new NgwMap(options);\n return ngwMap.onLoad();\n}\n"],"names":["appendNgwResources","options","resource","defOptions","overwriteOptions","Number","push","__assign","Array","isArray","resourceId","id","OPTIONS","target","baseUrl","whitlabel","controls","controlsOptions","ZOOM","position","ATTRIBUTION","customAttribution","pixelRadius","NgwMap","_super","_this","kits","QmsKit","starterKits","forEach","x","connector","NgwConnector","auth","deepmerge","center","bounds","NgwKit","create","prepareWebMapOptions","this","emitter","EventEmitter","_ngwLayers","_promises","select","identify","_createWebMap","then","container","getContainer","classList","add","_whiteLabel","__extends","prototype","addControl","controlDef","onLoad","_a","sent","call","addNgwLayer","onMapLoad","keyname","undefined","deprecatedWarn","Error","defined","setViewDelay","adapterOptions","adapter","createNgwLayerAdapter","adapterOpts","visibility","addLayer","layer","getLayerId","name","item","display_name","baselayer","getActiveBaseLayer","resId","isObject","console","error","concat","er_1","fit","zoom","setCenter","setZoom","fitBounds","fetchNgwLayerItem","fetchNgwLayerItems","fetchNgwLayerFeature","fetchNgwLayerFeatures","fetchNgwLayerFeatureCollection","fetchIdentifyItem","requestOptions","promise","_addPromise","fetchIdentifyGeoJson","multiple","CancelablePromise","resolve","getIdentifyGeoJson","getNgwLayers","getNgwLayerByResourceId","_b","mem","getIdentificationIds","ids","_c","some","getDependLayers","dependLayers","dependFit","find","parentId","fitLayer","layerDef","String","ngwLayer","getBounds","getResource","fetchNgwExtent","extent","zoomToLayer","event","removeLayer","getLayer","layerId","enableSelection","$$selectFromNgwRaster","ev","_getSelectListenersCount","selectFromNgwRaster","$$selectFromNgwVector","_selectFromNgwVector","on","disableSelection","removeListener","getNgwLayerItem","getNgwLayerItems","getNgwLayerFeature","getNgwLayerFeatures","cancelPromise","args","_i","arguments","length","cancelPromises","apply","Object","keys","group","cancel","_emitStatusEvent","promises","layers","values","sort","a","b","order","layers_1","identFunc","selectable","isLayerVisible","Promise","all","getIds","getIds_1","getCenter","getZoom","radius","getIdentifyRadius","selectPromise","sendIdentifyRequest","resp","resources","sourceType","identifyEvent","_prepareToIdentify","groupName","indexOf","removeFromGroup","index","splice","catch","_isFitFromResource","params","_initMapState","qmsId","_addQmsBaseLayer","osm","_addOsmBaseLayer","layerFitAllowed","webmapId","resources_1","r","warn","er_2","addBaseLayer","qmsLayerName","qmsLayerOptions","feature","featureId","identifyFeature","fields","properties","label","parent","geom","geometry","featureCount","features","getIdentifyItems","map","createIdentifyItem","listenerCount","getCompanyLogo","companyLogoOptions","logo","appendChild","getIcon","WebMap"],"mappings":"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"}
|