@artstesh/maps 7.2.0 → 8.1.0
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/dist/fesm2022/maps-components-src-map.mjs +83 -83
- package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2022/maps-components.mjs +83 -83
- package/dist/fesm2022/maps-components.mjs.map +1 -1
- package/dist/map/common/destructible.component.d.ts +1 -1
- package/dist/src/map/common/destructible.component.d.ts +1 -1
- package/package.json +21 -21
- package/dist/esm2022/map/common/destructible.component.mjs +0 -18
- package/dist/esm2022/map/common/id.generator.mjs +0 -14
- package/dist/esm2022/map/helpers/index.mjs +0 -5
- package/dist/esm2022/map/helpers/marker-style.helper.mjs +0 -55
- package/dist/esm2022/map/helpers/polygon-style.helper.mjs +0 -54
- package/dist/esm2022/map/helpers/stringify-feature.helper.mjs +0 -61
- package/dist/esm2022/map/helpers/text-style.helper.mjs +0 -33
- package/dist/esm2022/map/map-plate/controls/index.mjs +0 -3
- package/dist/esm2022/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +0 -69
- package/dist/esm2022/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +0 -13
- package/dist/esm2022/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +0 -116
- package/dist/esm2022/map/map-plate/features/index.mjs +0 -3
- package/dist/esm2022/map/map-plate/features/markers/markers.component.mjs +0 -52
- package/dist/esm2022/map/map-plate/features/polygons/polygons.component.mjs +0 -56
- package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +0 -59
- package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +0 -60
- package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +0 -38
- package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +0 -145
- package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -52
- package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +0 -28
- package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +0 -139
- package/dist/esm2022/map/map-plate/layers/image-layer/image-layer-factory.mjs +0 -26
- package/dist/esm2022/map/map-plate/layers/image-layer/image-layer.component.mjs +0 -52
- package/dist/esm2022/map/map-plate/layers/image-layer/image-layer.settings.mjs +0 -134
- package/dist/esm2022/map/map-plate/layers/index.mjs +0 -12
- package/dist/esm2022/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -67
- package/dist/esm2022/map/map-plate/layers/raster-tile/raster-tile-layer.component.mjs +0 -52
- package/dist/esm2022/map/map-plate/layers/raster-tile/raster-tile-layer.factory.mjs +0 -74
- package/dist/esm2022/map/map-plate/layers/raster-tile/raster-tile-layer.settings.mjs +0 -165
- package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -52
- package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -68
- package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -139
- package/dist/esm2022/map/map-plate/map-plate.component.mjs +0 -120
- package/dist/esm2022/map/map-plate/map-plate.factory.service.mjs +0 -29
- package/dist/esm2022/map/map-plate/tooltips/index.mjs +0 -3
- package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.component.mjs +0 -82
- package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +0 -31
- package/dist/esm2022/map/messages/commands/add-control.command.mjs +0 -18
- package/dist/esm2022/map/messages/commands/add-image-layer.command.mjs +0 -10
- package/dist/esm2022/map/messages/commands/add-layer.command.mjs +0 -10
- package/dist/esm2022/map/messages/commands/add-raster-tile-command.mjs +0 -10
- package/dist/esm2022/map/messages/commands/add-tile.command.mjs +0 -10
- package/dist/esm2022/map/messages/commands/cancel-drawing.command.mjs +0 -8
- package/dist/esm2022/map/messages/commands/cancel-feature-modification.command.mjs +0 -8
- package/dist/esm2022/map/messages/commands/close-tooltip.command.mjs +0 -18
- package/dist/esm2022/map/messages/commands/draw-selection-area.command.mjs +0 -26
- package/dist/esm2022/map/messages/commands/fit-to-features.command.mjs +0 -12
- package/dist/esm2022/map/messages/commands/fit-to-polygons.command.mjs +0 -22
- package/dist/esm2022/map/messages/commands/modify-feature.command.mjs +0 -31
- package/dist/esm2022/map/messages/commands/place-layer-features.command.mjs +0 -12
- package/dist/esm2022/map/messages/commands/remove-control.command.mjs +0 -23
- package/dist/esm2022/map/messages/commands/remove-image-layer.command.mjs +0 -10
- package/dist/esm2022/map/messages/commands/remove-layer.command.mjs +0 -10
- package/dist/esm2022/map/messages/commands/remove-raster-tile.command.mjs +0 -10
- package/dist/esm2022/map/messages/commands/remove-tile.command.mjs +0 -10
- package/dist/esm2022/map/messages/commands/set-map-center.command.mjs +0 -23
- package/dist/esm2022/map/messages/commands/start-drawing.command.mjs +0 -25
- package/dist/esm2022/map/messages/events/drawing-finished.event.mjs +0 -5
- package/dist/esm2022/map/messages/events/map-click.event.mjs +0 -27
- package/dist/esm2022/map/messages/events/map-feature-hovered.event.mjs +0 -23
- package/dist/esm2022/map/messages/events/map-move-end.event.mjs +0 -16
- package/dist/esm2022/map/messages/events/map-pointer-move.event.mjs +0 -21
- package/dist/esm2022/map/messages/events/map-rendered.event.mjs +0 -18
- package/dist/esm2022/map/messages/executors/calculate-area.executor.mjs +0 -17
- package/dist/esm2022/map/messages/executors/filter-features-in-area.executor.mjs +0 -20
- package/dist/esm2022/map/messages/executors/filter-features-in-point.executor.mjs +0 -28
- package/dist/esm2022/map/messages/executors/generate-draw.executor.mjs +0 -14
- package/dist/esm2022/map/messages/executors/generate-zoom-control.executor.mjs +0 -10
- package/dist/esm2022/map/messages/executors/get-geometry-length.executor.mjs +0 -18
- package/dist/esm2022/map/messages/executors/get-map-position.executor.mjs +0 -13
- package/dist/esm2022/map/messages/executors/polygon-self-intersection.executor.mjs +0 -10
- package/dist/esm2022/map/messages/index.mjs +0 -25
- package/dist/esm2022/map/messages/queries/get-features-in-area.query.mjs +0 -22
- package/dist/esm2022/map/messages/queries/get-features-in-point.query.mjs +0 -25
- package/dist/esm2022/map/messages/queries/get-layer.query.mjs +0 -10
- package/dist/esm2022/map/models/drawing-type.enum.mjs +0 -22
- package/dist/esm2022/map/models/feature-format.enum.mjs +0 -15
- package/dist/esm2022/map/models/i-identified.mjs +0 -2
- package/dist/esm2022/map/models/index.mjs +0 -10
- package/dist/esm2022/map/models/map-control.mjs +0 -15
- package/dist/esm2022/map/models/map-lyrs.enum.mjs +0 -19
- package/dist/esm2022/map/models/map-position.model.mjs +0 -2
- package/dist/esm2022/map/models/map-settings.mjs +0 -124
- package/dist/esm2022/map/models/map.constants.mjs +0 -6
- package/dist/esm2022/map/models/marker-model.mjs +0 -29
- package/dist/esm2022/map/models/polygon.model.mjs +0 -40
- package/dist/esm2022/map/ol-proxy.mjs +0 -6
- package/dist/esm2022/map/public-api.mjs +0 -16
- package/dist/esm2022/map/services/controls/controls.service.mjs +0 -37
- package/dist/esm2022/map/services/drawing/drawing-generation.service.mjs +0 -25
- package/dist/esm2022/map/services/drawing/drawing.service.mjs +0 -99
- package/dist/esm2022/map/services/drawing/feature-modification.service.mjs +0 -105
- package/dist/esm2022/map/services/feature.service.mjs +0 -77
- package/dist/esm2022/map/services/map-click.service.mjs +0 -55
- package/dist/esm2022/map/services/map-feature.service.mjs +0 -75
- package/dist/esm2022/map/services/map-management.service.mjs +0 -143
- package/dist/esm2022/map/services/map-postboy.service.mjs +0 -14
- package/dist/esm2022/map/services/map-state.service.mjs +0 -48
- package/dist/esm2022/map/services/message-registrator.service.mjs +0 -105
- package/dist/esm2022/maps-components.mjs +0 -5
- package/dist/esm2022/public-api.mjs +0 -5
- package/dist/esm2022/src/map/common/destructible.component.mjs +0 -18
- package/dist/esm2022/src/map/common/id.generator.mjs +0 -14
- package/dist/esm2022/src/map/helpers/index.mjs +0 -5
- package/dist/esm2022/src/map/helpers/marker-style.helper.mjs +0 -55
- package/dist/esm2022/src/map/helpers/polygon-style.helper.mjs +0 -54
- package/dist/esm2022/src/map/helpers/stringify-feature.helper.mjs +0 -61
- package/dist/esm2022/src/map/helpers/text-style.helper.mjs +0 -33
- package/dist/esm2022/src/map/map-plate/controls/index.mjs +0 -3
- package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +0 -69
- package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +0 -13
- package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +0 -116
- package/dist/esm2022/src/map/map-plate/features/index.mjs +0 -3
- package/dist/esm2022/src/map/map-plate/features/markers/markers.component.mjs +0 -52
- package/dist/esm2022/src/map/map-plate/features/polygons/polygons.component.mjs +0 -56
- package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +0 -59
- package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +0 -60
- package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +0 -38
- package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +0 -145
- package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -52
- package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +0 -28
- package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +0 -139
- package/dist/esm2022/src/map/map-plate/layers/image-layer/image-layer-factory.mjs +0 -26
- package/dist/esm2022/src/map/map-plate/layers/image-layer/image-layer.component.mjs +0 -52
- package/dist/esm2022/src/map/map-plate/layers/image-layer/image-layer.settings.mjs +0 -134
- package/dist/esm2022/src/map/map-plate/layers/index.mjs +0 -12
- package/dist/esm2022/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -67
- package/dist/esm2022/src/map/map-plate/layers/raster-tile/raster-tile-layer.component.mjs +0 -52
- package/dist/esm2022/src/map/map-plate/layers/raster-tile/raster-tile-layer.factory.mjs +0 -74
- package/dist/esm2022/src/map/map-plate/layers/raster-tile/raster-tile-layer.settings.mjs +0 -165
- package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -52
- package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -68
- package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -139
- package/dist/esm2022/src/map/map-plate/map-plate.component.mjs +0 -120
- package/dist/esm2022/src/map/map-plate/map-plate.factory.service.mjs +0 -29
- package/dist/esm2022/src/map/map-plate/tooltips/index.mjs +0 -3
- package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.component.mjs +0 -82
- package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +0 -31
- package/dist/esm2022/src/map/maps-components-src-map.mjs +0 -5
- package/dist/esm2022/src/map/messages/commands/add-control.command.mjs +0 -18
- package/dist/esm2022/src/map/messages/commands/add-image-layer.command.mjs +0 -10
- package/dist/esm2022/src/map/messages/commands/add-layer.command.mjs +0 -10
- package/dist/esm2022/src/map/messages/commands/add-raster-tile-command.mjs +0 -10
- package/dist/esm2022/src/map/messages/commands/add-tile.command.mjs +0 -10
- package/dist/esm2022/src/map/messages/commands/cancel-drawing.command.mjs +0 -8
- package/dist/esm2022/src/map/messages/commands/cancel-feature-modification.command.mjs +0 -8
- package/dist/esm2022/src/map/messages/commands/close-tooltip.command.mjs +0 -18
- package/dist/esm2022/src/map/messages/commands/draw-selection-area.command.mjs +0 -26
- package/dist/esm2022/src/map/messages/commands/fit-to-features.command.mjs +0 -12
- package/dist/esm2022/src/map/messages/commands/fit-to-polygons.command.mjs +0 -22
- package/dist/esm2022/src/map/messages/commands/modify-feature.command.mjs +0 -31
- package/dist/esm2022/src/map/messages/commands/place-layer-features.command.mjs +0 -12
- package/dist/esm2022/src/map/messages/commands/remove-control.command.mjs +0 -23
- package/dist/esm2022/src/map/messages/commands/remove-image-layer.command.mjs +0 -10
- package/dist/esm2022/src/map/messages/commands/remove-layer.command.mjs +0 -10
- package/dist/esm2022/src/map/messages/commands/remove-raster-tile.command.mjs +0 -10
- package/dist/esm2022/src/map/messages/commands/remove-tile.command.mjs +0 -10
- package/dist/esm2022/src/map/messages/commands/set-map-center.command.mjs +0 -23
- package/dist/esm2022/src/map/messages/commands/start-drawing.command.mjs +0 -25
- package/dist/esm2022/src/map/messages/events/drawing-finished.event.mjs +0 -5
- package/dist/esm2022/src/map/messages/events/map-click.event.mjs +0 -27
- package/dist/esm2022/src/map/messages/events/map-feature-hovered.event.mjs +0 -23
- package/dist/esm2022/src/map/messages/events/map-move-end.event.mjs +0 -16
- package/dist/esm2022/src/map/messages/events/map-pointer-move.event.mjs +0 -21
- package/dist/esm2022/src/map/messages/events/map-rendered.event.mjs +0 -18
- package/dist/esm2022/src/map/messages/executors/calculate-area.executor.mjs +0 -17
- package/dist/esm2022/src/map/messages/executors/filter-features-in-area.executor.mjs +0 -20
- package/dist/esm2022/src/map/messages/executors/filter-features-in-point.executor.mjs +0 -28
- package/dist/esm2022/src/map/messages/executors/generate-draw.executor.mjs +0 -14
- package/dist/esm2022/src/map/messages/executors/generate-zoom-control.executor.mjs +0 -10
- package/dist/esm2022/src/map/messages/executors/get-geometry-length.executor.mjs +0 -18
- package/dist/esm2022/src/map/messages/executors/get-map-position.executor.mjs +0 -13
- package/dist/esm2022/src/map/messages/executors/polygon-self-intersection.executor.mjs +0 -10
- package/dist/esm2022/src/map/messages/index.mjs +0 -25
- package/dist/esm2022/src/map/messages/queries/get-features-in-area.query.mjs +0 -22
- package/dist/esm2022/src/map/messages/queries/get-features-in-point.query.mjs +0 -25
- package/dist/esm2022/src/map/messages/queries/get-layer.query.mjs +0 -10
- package/dist/esm2022/src/map/models/drawing-type.enum.mjs +0 -22
- package/dist/esm2022/src/map/models/feature-format.enum.mjs +0 -15
- package/dist/esm2022/src/map/models/i-identified.mjs +0 -2
- package/dist/esm2022/src/map/models/index.mjs +0 -10
- package/dist/esm2022/src/map/models/map-control.mjs +0 -15
- package/dist/esm2022/src/map/models/map-lyrs.enum.mjs +0 -19
- package/dist/esm2022/src/map/models/map-position.model.mjs +0 -2
- package/dist/esm2022/src/map/models/map-settings.mjs +0 -124
- package/dist/esm2022/src/map/models/map.constants.mjs +0 -6
- package/dist/esm2022/src/map/models/marker-model.mjs +0 -29
- package/dist/esm2022/src/map/models/polygon.model.mjs +0 -40
- package/dist/esm2022/src/map/ol-proxy.mjs +0 -6
- package/dist/esm2022/src/map/public-api.mjs +0 -16
- package/dist/esm2022/src/map/services/controls/controls.service.mjs +0 -37
- package/dist/esm2022/src/map/services/drawing/drawing-generation.service.mjs +0 -25
- package/dist/esm2022/src/map/services/drawing/drawing.service.mjs +0 -99
- package/dist/esm2022/src/map/services/drawing/feature-modification.service.mjs +0 -105
- package/dist/esm2022/src/map/services/feature.service.mjs +0 -77
- package/dist/esm2022/src/map/services/map-click.service.mjs +0 -55
- package/dist/esm2022/src/map/services/map-feature.service.mjs +0 -75
- package/dist/esm2022/src/map/services/map-management.service.mjs +0 -143
- package/dist/esm2022/src/map/services/map-postboy.service.mjs +0 -14
- package/dist/esm2022/src/map/services/map-state.service.mjs +0 -48
- package/dist/esm2022/src/map/services/message-registrator.service.mjs +0 -105
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { DestructibleComponent } from '../../../common/destructible.component';
|
|
3
|
-
import { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';
|
|
4
|
-
import { MapRenderedEvent } from '../../../messages';
|
|
5
|
-
import { filter, first } from 'rxjs/operators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../../services/map-postboy.service";
|
|
8
|
-
/**
|
|
9
|
-
* MarkersComponent is a component that displays markers on a map.
|
|
10
|
-
* It listens for changes in the `markers` input property and
|
|
11
|
-
* automatically puts the markers on the map using the MapPostboyService.
|
|
12
|
-
*/
|
|
13
|
-
export class MarkersComponent extends DestructibleComponent {
|
|
14
|
-
postboy;
|
|
15
|
-
layerName = '';
|
|
16
|
-
constructor(postboy) {
|
|
17
|
-
super();
|
|
18
|
-
this.postboy = postboy;
|
|
19
|
-
}
|
|
20
|
-
_markers = [];
|
|
21
|
-
/**
|
|
22
|
-
* Sets the markers property.
|
|
23
|
-
*
|
|
24
|
-
* @param {MarkerModel[]} value - The array of MarkerModel objects to set as markers.
|
|
25
|
-
*/
|
|
26
|
-
set markers(value) {
|
|
27
|
-
this._markers = value ?? [];
|
|
28
|
-
this.putMarkers();
|
|
29
|
-
}
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
this.postboy
|
|
32
|
-
.sub(MapRenderedEvent)
|
|
33
|
-
.pipe(filter((m) => !!m), first())
|
|
34
|
-
.subscribe(() => this.putMarkers());
|
|
35
|
-
}
|
|
36
|
-
putMarkers() {
|
|
37
|
-
if (!this._markers)
|
|
38
|
-
return;
|
|
39
|
-
this.postboy.fire(new PlaceLayerFeaturesCommand(this.layerName, this._markers.map((m) => m.feature)));
|
|
40
|
-
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarkersComponent, deps: [{ token: i1.MapPostboyService }], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MarkersComponent, isStandalone: true, selector: "art-markers", inputs: { layerName: "layerName", markers: "markers" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
43
|
-
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MarkersComponent, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{ selector: 'art-markers', standalone: true, template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
47
|
-
}], ctorParameters: () => [{ type: i1.MapPostboyService }], propDecorators: { layerName: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], markers: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Vycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvZmVhdHVyZXMvbWFya2Vycy9tYXJrZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUcvRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFL0M7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxxQkFBcUI7SUFHckM7SUFGWCxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBRXhCLFlBQW9CLE9BQTBCO1FBQzVDLEtBQUssRUFBRSxDQUFDO1FBRFUsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFFOUMsQ0FBQztJQUVELFFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBRTdCOzs7O09BSUc7SUFDSCxJQUFhLE9BQU8sQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU87YUFDVCxHQUFHLENBQUMsZ0JBQWdCLENBQUM7YUFDckIsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNsQixLQUFLLEVBQUUsQ0FDUjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLElBQUkseUJBQXlCLENBQzNCLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FDcEMsQ0FDRixDQUFDO0lBQ0osQ0FBQzt3R0FyQ1UsZ0JBQWdCOzRGQUFoQixnQkFBZ0Isc0pBSmpCLEVBQUU7OzRGQUlELGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxZQUNOLEVBQUUsbUJBRUssdUJBQXVCLENBQUMsTUFBTTtzRkFHdEMsU0FBUztzQkFBakIsS0FBSztnQkFhTyxPQUFPO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJ1Y3RpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Rlc3RydWN0aWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFwUG9zdGJveVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcmtlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21hcmtlci1tb2RlbCc7XG5pbXBvcnQgeyBQbGFjZUxheWVyRmVhdHVyZXNDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMvY29tbWFuZHMvcGxhY2UtbGF5ZXItZmVhdHVyZXMuY29tbWFuZCc7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBNYXJrZXJzQ29tcG9uZW50IGlzIGEgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgbWFya2VycyBvbiBhIG1hcC5cbiAqIEl0IGxpc3RlbnMgZm9yIGNoYW5nZXMgaW4gdGhlIGBtYXJrZXJzYCBpbnB1dCBwcm9wZXJ0eSBhbmRcbiAqIGF1dG9tYXRpY2FsbHkgcHV0cyB0aGUgbWFya2VycyBvbiB0aGUgbWFwIHVzaW5nIHRoZSBNYXBQb3N0Ym95U2VydmljZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJ0LW1hcmtlcnMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNYXJrZXJzQ29tcG9uZW50IGV4dGVuZHMgRGVzdHJ1Y3RpYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbGF5ZXJOYW1lID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBfbWFya2VyczogTWFya2VyTW9kZWxbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXJrZXJzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAcGFyYW0ge01hcmtlck1vZGVsW119IHZhbHVlIC0gVGhlIGFycmF5IG9mIE1hcmtlck1vZGVsIG9iamVjdHMgdG8gc2V0IGFzIG1hcmtlcnMuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgbWFya2Vycyh2YWx1ZTogTWFya2VyTW9kZWxbXSkge1xuICAgIHRoaXMuX21hcmtlcnMgPSB2YWx1ZSA/PyBbXTtcbiAgICB0aGlzLnB1dE1hcmtlcnMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucG9zdGJveVxuICAgICAgLnN1YihNYXBSZW5kZXJlZEV2ZW50KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigobSkgPT4gISFtKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5wdXRNYXJrZXJzKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwdXRNYXJrZXJzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fbWFya2VycykgcmV0dXJuO1xuICAgIHRoaXMucG9zdGJveS5maXJlKFxuICAgICAgbmV3IFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQoXG4gICAgICAgIHRoaXMubGF5ZXJOYW1lLFxuICAgICAgICB0aGlzLl9tYXJrZXJzLm1hcCgobSkgPT4gbS5mZWF0dXJlKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { DestructibleComponent } from '../../../common/destructible.component';
|
|
3
|
-
import { MapRenderedEvent } from '../../../messages';
|
|
4
|
-
import { filter, first } from 'rxjs/operators';
|
|
5
|
-
import { PlaceLayerFeaturesCommand } from '../../../messages/commands/place-layer-features.command';
|
|
6
|
-
import { MapConstants } from '../../../models';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../../services/map-postboy.service";
|
|
9
|
-
/**
|
|
10
|
-
* Component for rendering polygons on a map.
|
|
11
|
-
* It listens for changes in the `polygons` input property and
|
|
12
|
-
* automatically puts the polygons on the map using the MapPostboyService.
|
|
13
|
-
*/
|
|
14
|
-
export class PolygonsComponent extends DestructibleComponent {
|
|
15
|
-
postboy;
|
|
16
|
-
layerName = '';
|
|
17
|
-
constructor(postboy) {
|
|
18
|
-
super();
|
|
19
|
-
this.postboy = postboy;
|
|
20
|
-
}
|
|
21
|
-
_polygons = [];
|
|
22
|
-
/**
|
|
23
|
-
* Sets the value of polygons.
|
|
24
|
-
*
|
|
25
|
-
* @param {PolygonModel[]} value - The new value for polygons.
|
|
26
|
-
*/
|
|
27
|
-
set polygons(value) {
|
|
28
|
-
this._polygons = value ?? [];
|
|
29
|
-
this.putPolygons();
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
this.postboy
|
|
33
|
-
.sub(MapRenderedEvent)
|
|
34
|
-
.pipe(filter((m) => !!m), first())
|
|
35
|
-
.subscribe(() => this.putPolygons());
|
|
36
|
-
}
|
|
37
|
-
putPolygons() {
|
|
38
|
-
if (!this._polygons)
|
|
39
|
-
return;
|
|
40
|
-
this.postboy.fire(new PlaceLayerFeaturesCommand(this.layerName, this._polygons.map((m) => {
|
|
41
|
-
m.feature.set(MapConstants.FeatureLayerName, this.layerName);
|
|
42
|
-
return m.feature;
|
|
43
|
-
})));
|
|
44
|
-
}
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PolygonsComponent, deps: [{ token: i1.MapPostboyService }], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PolygonsComponent, isStandalone: true, selector: "art-polygons", inputs: { layerName: "layerName", polygons: "polygons" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PolygonsComponent, decorators: [{
|
|
49
|
-
type: Component,
|
|
50
|
-
args: [{ selector: 'art-polygons', standalone: true, template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
51
|
-
}], ctorParameters: () => [{ type: i1.MapPostboyService }], propDecorators: { layerName: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], polygons: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2ZlYXR1cmVzL3BvbHlnb25zL3BvbHlnb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRXBHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRS9DOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEscUJBQXFCO0lBR3RDO0lBRlgsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV4QixZQUFvQixPQUEwQjtRQUM1QyxLQUFLLEVBQUUsQ0FBQztRQURVLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBRTlDLENBQUM7SUFFRCxTQUFTLEdBQW1CLEVBQUUsQ0FBQztJQUUvQjs7OztPQUlHO0lBQ0gsSUFBYSxRQUFRLENBQUMsS0FBcUI7UUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPO2FBQ1QsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2FBQ3JCLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEIsS0FBSyxFQUFFLENBQ1I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDZixJQUFJLHlCQUF5QixDQUMzQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3RCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzt3R0F4Q1UsaUJBQWlCOzRGQUFqQixpQkFBaUIseUpBSmxCLEVBQUU7OzRGQUlELGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxZQUNOLEVBQUUsbUJBRUssdUJBQXVCLENBQUMsTUFBTTtzRkFHdEMsU0FBUztzQkFBakIsS0FBSztnQkFhTyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJ1Y3RpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Rlc3RydWN0aWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFwUG9zdGJveVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFJlbmRlcmVkRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL3BsYWNlLWxheWVyLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgUG9seWdvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3BvbHlnb24ubW9kZWwnO1xuaW1wb3J0IHsgTWFwQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIHJlbmRlcmluZyBwb2x5Z29ucyBvbiBhIG1hcC5cbiAqIEl0IGxpc3RlbnMgZm9yIGNoYW5nZXMgaW4gdGhlIGBwb2x5Z29uc2AgaW5wdXQgcHJvcGVydHkgYW5kXG4gKiBhdXRvbWF0aWNhbGx5IHB1dHMgdGhlIHBvbHlnb25zIG9uIHRoZSBtYXAgdXNpbmcgdGhlIE1hcFBvc3Rib3lTZXJ2aWNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcnQtcG9seWdvbnMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQb2x5Z29uc0NvbXBvbmVudCBleHRlbmRzIERlc3RydWN0aWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxheWVyTmFtZSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9zdGJveTogTWFwUG9zdGJveVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgX3BvbHlnb25zOiBQb2x5Z29uTW9kZWxbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiBwb2x5Z29ucy5cbiAgICpcbiAgICogQHBhcmFtIHtQb2x5Z29uTW9kZWxbXX0gdmFsdWUgLSBUaGUgbmV3IHZhbHVlIGZvciBwb2x5Z29ucy5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBwb2x5Z29ucyh2YWx1ZTogUG9seWdvbk1vZGVsW10pIHtcbiAgICB0aGlzLl9wb2x5Z29ucyA9IHZhbHVlID8/IFtdO1xuICAgIHRoaXMucHV0UG9seWdvbnMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucG9zdGJveVxuICAgICAgLnN1YihNYXBSZW5kZXJlZEV2ZW50KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigobSkgPT4gISFtKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5wdXRQb2x5Z29ucygpKTtcbiAgfVxuXG4gIHByaXZhdGUgcHV0UG9seWdvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9wb2x5Z29ucykgcmV0dXJuO1xuICAgIHRoaXMucG9zdGJveS5maXJlKFxuICAgICAgbmV3IFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQoXG4gICAgICAgIHRoaXMubGF5ZXJOYW1lLFxuICAgICAgICB0aGlzLl9wb2x5Z29ucy5tYXAoKG0pID0+IHtcbiAgICAgICAgICBtLmZlYXR1cmUuc2V0KE1hcENvbnN0YW50cy5GZWF0dXJlTGF5ZXJOYW1lLCB0aGlzLmxheWVyTmFtZSk7XG4gICAgICAgICAgcmV0dXJuIG0uZmVhdHVyZTtcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Vector as Source } from 'ol/source';
|
|
3
|
-
import { Vector as Layer } from 'ol/layer';
|
|
4
|
-
import { bbox } from 'ol/loadingstrategy';
|
|
5
|
-
import { fromExtent } from 'ol/geom/Polygon';
|
|
6
|
-
import Cluster from 'ol/source/Cluster';
|
|
7
|
-
import { ClusterLayerManager } from './cluster-layer.manager';
|
|
8
|
-
import { MapConstants } from '../../../models/map.constants';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class ClusterLayerFactory {
|
|
11
|
-
build(settings, postboy) {
|
|
12
|
-
const source = new Source({
|
|
13
|
-
strategy: settings.bbox ? bbox : undefined,
|
|
14
|
-
});
|
|
15
|
-
const cluster = new Cluster({
|
|
16
|
-
distance: settings.distance,
|
|
17
|
-
source: source,
|
|
18
|
-
geometryFunction: (feature) => {
|
|
19
|
-
const geom = feature.getGeometry();
|
|
20
|
-
if (geom?.getType() == 'Point') {
|
|
21
|
-
return geom;
|
|
22
|
-
}
|
|
23
|
-
else if (geom?.getType() == 'Polygon') {
|
|
24
|
-
return geom?.getInteriorPoint();
|
|
25
|
-
}
|
|
26
|
-
else if (geom?.getType() == 'MultiPolygon') {
|
|
27
|
-
return fromExtent(geom.getExtent())?.getInteriorPoint();
|
|
28
|
-
}
|
|
29
|
-
return undefined;
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
const layer = new Layer({
|
|
33
|
-
source: cluster,
|
|
34
|
-
maxZoom: settings.maxZoom || undefined,
|
|
35
|
-
minZoom: settings.minZoom || undefined,
|
|
36
|
-
zIndex: settings.zIndex || 0,
|
|
37
|
-
});
|
|
38
|
-
layer.setStyle(this.styleFunc(settings));
|
|
39
|
-
layer.set('name', settings.name);
|
|
40
|
-
return new ClusterLayerManager(settings, layer, postboy);
|
|
41
|
-
}
|
|
42
|
-
styleFunc(settings) {
|
|
43
|
-
return (feature) => {
|
|
44
|
-
const features = feature.get('features');
|
|
45
|
-
if (!settings.style)
|
|
46
|
-
return undefined;
|
|
47
|
-
return settings.style(features.map((f) => ({ id: f.getId(), ...f.get(MapConstants.FeatureInfo) })));
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClusterLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
51
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClusterLayerFactory, providedIn: 'root' });
|
|
52
|
-
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClusterLayerFactory, decorators: [{
|
|
54
|
-
type: Injectable,
|
|
55
|
-
args: [{
|
|
56
|
-
providedIn: 'root',
|
|
57
|
-
}]
|
|
58
|
-
}] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci1sYXllci1mYWN0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvbGF5ZXJzL2NsdXN0ZXItbGF5ZXIvY2x1c3Rlci1sYXllci1mYWN0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxJQUFJLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBSzdELE1BQU0sT0FBTyxtQkFBbUI7SUFDdkIsS0FBSyxDQUFDLFFBQThCLEVBQUUsT0FBMEI7UUFDckUsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUM7WUFDeEIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztTQUMzQyxDQUFDLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQztZQUMxQixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7WUFDM0IsTUFBTSxFQUFFLE1BQU07WUFDZCxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUM1QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ25DLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUMvQixPQUFPLElBQWEsQ0FBQztnQkFDdkIsQ0FBQztxQkFBTSxJQUFJLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDeEMsT0FBUSxJQUFnQixFQUFFLGdCQUFnQixFQUFFLENBQUM7Z0JBQy9DLENBQUM7cUJBQU0sSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksY0FBYyxFQUFFLENBQUM7b0JBQzdDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUM7Z0JBQzFELENBQUM7Z0JBQ0QsT0FBTyxTQUFnQixDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQztZQUN0QixNQUFNLEVBQUUsT0FBTztZQUNmLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxJQUFJLFNBQVM7WUFDdEMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLElBQUksU0FBUztZQUN0QyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDO1NBQzdCLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxPQUFPLElBQUksbUJBQW1CLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsU0FBUyxDQUFDLFFBQThCO1FBQ3RDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBd0IsQ0FBQztZQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDdEMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RyxDQUFDLENBQUM7SUFDSixDQUFDO3dHQXJDVSxtQkFBbUI7NEdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2x1c3RlckxheWVyU2V0dGluZ3MgfSBmcm9tICcuL2NsdXN0ZXItbGF5ZXIuc2V0dGluZ3MnO1xuaW1wb3J0IHsgVmVjdG9yIGFzIFNvdXJjZSB9IGZyb20gJ29sL3NvdXJjZSc7XG5pbXBvcnQgeyBWZWN0b3IgYXMgTGF5ZXIgfSBmcm9tICdvbC9sYXllcic7XG5pbXBvcnQgeyBiYm94IH0gZnJvbSAnb2wvbG9hZGluZ3N0cmF0ZWd5JztcbmltcG9ydCBQb2x5Z29uLCB7IGZyb21FeHRlbnQgfSBmcm9tICdvbC9nZW9tL1BvbHlnb24nO1xuaW1wb3J0IENsdXN0ZXIgZnJvbSAnb2wvc291cmNlL0NsdXN0ZXInO1xuaW1wb3J0IHsgR2VvbWV0cnksIFBvaW50IH0gZnJvbSAnb2wvZ2VvbSc7XG5pbXBvcnQgeyBDbHVzdGVyTGF5ZXJNYW5hZ2VyIH0gZnJvbSAnLi9jbHVzdGVyLWxheWVyLm1hbmFnZXInO1xuaW1wb3J0IHsgTWFwUG9zdGJveVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IFN0eWxlRnVuY3Rpb24gfSBmcm9tICdvbC9zdHlsZS9TdHlsZSc7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnb2wnO1xuaW1wb3J0IHsgTWFwQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21hcC5jb25zdGFudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2x1c3RlckxheWVyRmFjdG9yeSB7XG4gIHB1YmxpYyBidWlsZChzZXR0aW5nczogQ2x1c3RlckxheWVyU2V0dGluZ3MsIHBvc3Rib3k6IE1hcFBvc3Rib3lTZXJ2aWNlKTogQ2x1c3RlckxheWVyTWFuYWdlciB7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFNvdXJjZSh7XG4gICAgICBzdHJhdGVneTogc2V0dGluZ3MuYmJveCA/IGJib3ggOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gICAgY29uc3QgY2x1c3RlciA9IG5ldyBDbHVzdGVyKHtcbiAgICAgIGRpc3RhbmNlOiBzZXR0aW5ncy5kaXN0YW5jZSxcbiAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgZ2VvbWV0cnlGdW5jdGlvbjogKGZlYXR1cmUpID0+IHtcbiAgICAgICAgY29uc3QgZ2VvbSA9IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKTtcbiAgICAgICAgaWYgKGdlb20/LmdldFR5cGUoKSA9PSAnUG9pbnQnKSB7XG4gICAgICAgICAgcmV0dXJuIGdlb20gYXMgUG9pbnQ7XG4gICAgICAgIH0gZWxzZSBpZiAoZ2VvbT8uZ2V0VHlwZSgpID09ICdQb2x5Z29uJykge1xuICAgICAgICAgIHJldHVybiAoZ2VvbSBhcyBQb2x5Z29uKT8uZ2V0SW50ZXJpb3JQb2ludCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGdlb20/LmdldFR5cGUoKSA9PSAnTXVsdGlQb2x5Z29uJykge1xuICAgICAgICAgIHJldHVybiBmcm9tRXh0ZW50KGdlb20uZ2V0RXh0ZW50KCkpPy5nZXRJbnRlcmlvclBvaW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBhbnk7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGxheWVyID0gbmV3IExheWVyKHtcbiAgICAgIHNvdXJjZTogY2x1c3RlcixcbiAgICAgIG1heFpvb206IHNldHRpbmdzLm1heFpvb20gfHwgdW5kZWZpbmVkLFxuICAgICAgbWluWm9vbTogc2V0dGluZ3MubWluWm9vbSB8fCB1bmRlZmluZWQsXG4gICAgICB6SW5kZXg6IHNldHRpbmdzLnpJbmRleCB8fCAwLFxuICAgIH0pO1xuICAgIGxheWVyLnNldFN0eWxlKHRoaXMuc3R5bGVGdW5jKHNldHRpbmdzKSk7XG4gICAgbGF5ZXIuc2V0KCduYW1lJywgc2V0dGluZ3MubmFtZSk7XG4gICAgcmV0dXJuIG5ldyBDbHVzdGVyTGF5ZXJNYW5hZ2VyKHNldHRpbmdzLCBsYXllciwgcG9zdGJveSk7XG4gIH1cblxuICBzdHlsZUZ1bmMoc2V0dGluZ3M6IENsdXN0ZXJMYXllclNldHRpbmdzKTogU3R5bGVGdW5jdGlvbiB7XG4gICAgcmV0dXJuIChmZWF0dXJlKSA9PiB7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGZlYXR1cmUuZ2V0KCdmZWF0dXJlcycpIGFzIEZlYXR1cmU8R2VvbWV0cnk+W107XG4gICAgICBpZiAoIXNldHRpbmdzLnN0eWxlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIHNldHRpbmdzLnN0eWxlKGZlYXR1cmVzLm1hcCgoZikgPT4gKHsgaWQ6IGYuZ2V0SWQoKSEsIC4uLmYuZ2V0KE1hcENvbnN0YW50cy5GZWF0dXJlSW5mbykgfSkpKTtcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { DestructibleComponent } from '../../../common/destructible.component';
|
|
3
|
-
import { MapRenderedEvent } from '../../../messages';
|
|
4
|
-
import { filter, first } from 'rxjs/operators';
|
|
5
|
-
import { AddLayerCommand } from '../../../messages/commands/add-layer.command';
|
|
6
|
-
import { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';
|
|
7
|
-
import { ClusterLayerSettings } from './cluster-layer.settings';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../../../services/map-postboy.service";
|
|
10
|
-
import * as i2 from "./cluster-layer-factory.service";
|
|
11
|
-
/**
|
|
12
|
-
* Represents a cluster layer component.
|
|
13
|
-
*/
|
|
14
|
-
export class ClusterLayerComponent extends DestructibleComponent {
|
|
15
|
-
postboy;
|
|
16
|
-
factory;
|
|
17
|
-
manager = null;
|
|
18
|
-
constructor(postboy, factory) {
|
|
19
|
-
super();
|
|
20
|
-
this.postboy = postboy;
|
|
21
|
-
this.factory = factory;
|
|
22
|
-
}
|
|
23
|
-
_settings = new ClusterLayerSettings();
|
|
24
|
-
/**
|
|
25
|
-
* Sets the settings for the cluster layer.
|
|
26
|
-
*
|
|
27
|
-
* @param {ClusterLayerSettings | undefined} value - The settings for the cluster layer.
|
|
28
|
-
*/
|
|
29
|
-
set settings(value) {
|
|
30
|
-
if (!value || this._settings.isSame(value))
|
|
31
|
-
return;
|
|
32
|
-
this._settings = value;
|
|
33
|
-
this.initLayer();
|
|
34
|
-
}
|
|
35
|
-
ngOnInit() {
|
|
36
|
-
this.postboy
|
|
37
|
-
.sub(MapRenderedEvent)
|
|
38
|
-
.pipe(filter((m) => !!m), first())
|
|
39
|
-
.subscribe((m) => this.initLayer());
|
|
40
|
-
}
|
|
41
|
-
onDestroy = () => this.removeLayer();
|
|
42
|
-
initLayer() {
|
|
43
|
-
this.removeLayer();
|
|
44
|
-
this.manager = this.factory.build(this._settings, this.postboy);
|
|
45
|
-
this.postboy.fire(new AddLayerCommand(this.manager.layer));
|
|
46
|
-
}
|
|
47
|
-
removeLayer() {
|
|
48
|
-
if (this.manager?.layer)
|
|
49
|
-
this.postboy.fire(new RemoveLayerCommand(this.manager.layer));
|
|
50
|
-
}
|
|
51
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClusterLayerComponent, deps: [{ token: i1.MapPostboyService }, { token: i2.ClusterLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ClusterLayerComponent, isStandalone: true, selector: "art-cluster-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
|
-
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ClusterLayerComponent, decorators: [{
|
|
55
|
-
type: Component,
|
|
56
|
-
args: [{ selector: 'art-cluster-layer', standalone: true, template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
57
|
-
}], ctorParameters: () => [{ type: i1.MapPostboyService }, { type: i2.ClusterLayerFactory }], propDecorators: { settings: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci1sYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvbGF5ZXJzL2NsdXN0ZXItbGF5ZXIvY2x1c3Rlci1sYXllci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFHaEU7O0dBRUc7QUFRSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEscUJBQXFCO0lBRzFDO0lBQW9DO0lBRmpELE9BQU8sR0FBK0IsSUFBSSxDQUFDO0lBRWxELFlBQW9CLE9BQTBCLEVBQVUsT0FBNEI7UUFDbEYsS0FBSyxFQUFFLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXFCO0lBRXBGLENBQUM7SUFFRCxTQUFTLEdBQXlCLElBQUksb0JBQW9CLEVBQUUsQ0FBQztJQUU3RDs7OztPQUlHO0lBQ0gsSUFBYSxRQUFRLENBQUMsS0FBdUM7UUFDM0QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPO2FBQ1QsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2FBQ3JCLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEIsS0FBSyxFQUFFLENBQ1I7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTdCLFNBQVM7UUFDZixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUs7WUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO3dHQXhDVSxxQkFBcUI7NEZBQXJCLHFCQUFxQixzSUFKdEIsRUFBRTs7NEZBSUQscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFlBQ04sRUFBRSxtQkFFSyx1QkFBdUIsQ0FBQyxNQUFNO3dIQWdCbEMsUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3RydWN0aWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kZXN0cnVjdGlibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFkZExheWVyQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZUxheWVyQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL3JlbW92ZS1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IENsdXN0ZXJMYXllck1hbmFnZXIgfSBmcm9tICcuL2NsdXN0ZXItbGF5ZXIubWFuYWdlcic7XG5pbXBvcnQgeyBDbHVzdGVyTGF5ZXJTZXR0aW5ncyB9IGZyb20gJy4vY2x1c3Rlci1sYXllci5zZXR0aW5ncyc7XG5pbXBvcnQgeyBDbHVzdGVyTGF5ZXJGYWN0b3J5IH0gZnJvbSAnLi9jbHVzdGVyLWxheWVyLWZhY3Rvcnkuc2VydmljZSc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNsdXN0ZXIgbGF5ZXIgY29tcG9uZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcnQtY2x1c3Rlci1sYXllcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENsdXN0ZXJMYXllckNvbXBvbmVudCBleHRlbmRzIERlc3RydWN0aWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBtYW5hZ2VyOiBDbHVzdGVyTGF5ZXJNYW5hZ2VyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSwgcHJpdmF0ZSBmYWN0b3J5OiBDbHVzdGVyTGF5ZXJGYWN0b3J5KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIF9zZXR0aW5nczogQ2x1c3RlckxheWVyU2V0dGluZ3MgPSBuZXcgQ2x1c3RlckxheWVyU2V0dGluZ3MoKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgc2V0dGluZ3MgZm9yIHRoZSBjbHVzdGVyIGxheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge0NsdXN0ZXJMYXllclNldHRpbmdzIHwgdW5kZWZpbmVkfSB2YWx1ZSAtIFRoZSBzZXR0aW5ncyBmb3IgdGhlIGNsdXN0ZXIgbGF5ZXIuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgc2V0dGluZ3ModmFsdWU6IENsdXN0ZXJMYXllclNldHRpbmdzIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB0aGlzLl9zZXR0aW5ncy5pc1NhbWUodmFsdWUpKSByZXR1cm47XG4gICAgdGhpcy5fc2V0dGluZ3MgPSB2YWx1ZTtcbiAgICB0aGlzLmluaXRMYXllcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wb3N0Ym95XG4gICAgICAuc3ViKE1hcFJlbmRlcmVkRXZlbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChtKSA9PiAhIW0pLFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobSkgPT4gdGhpcy5pbml0TGF5ZXIoKSk7XG4gIH1cblxuICBvbkRlc3Ryb3kgPSAoKSA9PiB0aGlzLnJlbW92ZUxheWVyKCk7XG5cbiAgcHJpdmF0ZSBpbml0TGF5ZXIoKSB7XG4gICAgdGhpcy5yZW1vdmVMYXllcigpO1xuICAgIHRoaXMubWFuYWdlciA9IHRoaXMuZmFjdG9yeS5idWlsZCh0aGlzLl9zZXR0aW5ncywgdGhpcy5wb3N0Ym95KTtcbiAgICB0aGlzLnBvc3Rib3kuZmlyZShuZXcgQWRkTGF5ZXJDb21tYW5kKHRoaXMubWFuYWdlci5sYXllcikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVMYXllcigpIHtcbiAgICBpZiAodGhpcy5tYW5hZ2VyPy5sYXllcikgdGhpcy5wb3N0Ym95LmZpcmUobmV3IFJlbW92ZUxheWVyQ29tbWFuZCh0aGlzLm1hbmFnZXIubGF5ZXIpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { MapClickEvent, MapRenderedEvent } from '../../../messages';
|
|
2
|
-
import { FitToFeaturesCommand } from '../../../messages/commands/fit-to-features.command';
|
|
3
|
-
import { MapMoveEndEvent } from '../../../messages/events/map-move-end.event';
|
|
4
|
-
import { auditTime } from 'rxjs/operators';
|
|
5
|
-
import { combineLatest } from 'rxjs';
|
|
6
|
-
export class ClusterLayerManager {
|
|
7
|
-
settings;
|
|
8
|
-
layer;
|
|
9
|
-
postboy;
|
|
10
|
-
constructor(settings, layer, postboy) {
|
|
11
|
-
this.settings = settings;
|
|
12
|
-
this.layer = layer;
|
|
13
|
-
this.postboy = postboy;
|
|
14
|
-
this.observeClick();
|
|
15
|
-
this.observeMapMovement();
|
|
16
|
-
}
|
|
17
|
-
observeMapMovement() {
|
|
18
|
-
combineLatest([
|
|
19
|
-
this.postboy.sub(MapMoveEndEvent).pipe(auditTime(250)),
|
|
20
|
-
this.postboy.sub(MapRenderedEvent),
|
|
21
|
-
]).subscribe(([movement, renderEvent]) => {
|
|
22
|
-
this.checkClusterNecessity(renderEvent.map);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
observeClick() {
|
|
26
|
-
this.postboy.sub(MapClickEvent).subscribe((m) => {
|
|
27
|
-
if ((m.features[this.settings.name]?.length ?? 0) > 1) {
|
|
28
|
-
this.postboy.fire(new FitToFeaturesCommand(m.features[this.settings.name], -1));
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
checkClusterNecessity(map) {
|
|
33
|
-
let zoom = map.getView().getZoom() ?? 0;
|
|
34
|
-
const distance = zoom > this.settings.clusterCancel ? 0 : this.settings.distance;
|
|
35
|
-
this.layer?.getSource()?.setDistance(distance);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci1sYXllci5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2xheWVycy9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXIubWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JDLE1BQU0sT0FBTyxtQkFBbUI7SUFFcEI7SUFDUTtJQUNSO0lBSFYsWUFDVSxRQUE4QixFQUN0QixLQUFxQixFQUM3QixPQUEwQjtRQUYxQixhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUVsQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixhQUFhLENBQUM7WUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1NBQ25DLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxHQUFRO1FBQ3BDLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ2pGLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBDbGlja0V2ZW50LCBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgVmVjdG9yIGFzIExheWVyIH0gZnJvbSAnb2wvbGF5ZXInO1xuaW1wb3J0IENsdXN0ZXIgZnJvbSAnb2wvc291cmNlL0NsdXN0ZXInO1xuaW1wb3J0IHsgQ2x1c3RlckxheWVyU2V0dGluZ3MgfSBmcm9tICcuL2NsdXN0ZXItbGF5ZXIuc2V0dGluZ3MnO1xuaW1wb3J0IHsgRml0VG9GZWF0dXJlc0NvbW1hbmQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlcy9jb21tYW5kcy9maXQtdG8tZmVhdHVyZXMuY29tbWFuZCc7XG5pbXBvcnQgeyBNYXBNb3ZlRW5kRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlcy9ldmVudHMvbWFwLW1vdmUtZW5kLmV2ZW50JztcbmltcG9ydCB7IGF1ZGl0VGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hcCB9IGZyb20gJ29sJztcblxuZXhwb3J0IGNsYXNzIENsdXN0ZXJMYXllck1hbmFnZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNldHRpbmdzOiBDbHVzdGVyTGF5ZXJTZXR0aW5ncyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5ZXI6IExheWVyPENsdXN0ZXI+LFxuICAgIHByaXZhdGUgcG9zdGJveTogTWFwUG9zdGJveVNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMub2JzZXJ2ZUNsaWNrKCk7XG4gICAgdGhpcy5vYnNlcnZlTWFwTW92ZW1lbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZU1hcE1vdmVtZW50KCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5wb3N0Ym95LnN1YihNYXBNb3ZlRW5kRXZlbnQpLnBpcGUoYXVkaXRUaW1lKDI1MCkpLFxuICAgICAgdGhpcy5wb3N0Ym95LnN1YihNYXBSZW5kZXJlZEV2ZW50KSxcbiAgICBdKS5zdWJzY3JpYmUoKFttb3ZlbWVudCwgcmVuZGVyRXZlbnRdKSA9PiB7XG4gICAgICB0aGlzLmNoZWNrQ2x1c3Rlck5lY2Vzc2l0eShyZW5kZXJFdmVudC5tYXApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlQ2xpY2soKSB7XG4gICAgdGhpcy5wb3N0Ym95LnN1YihNYXBDbGlja0V2ZW50KS5zdWJzY3JpYmUoKG0pID0+IHtcbiAgICAgIGlmICgobS5mZWF0dXJlc1t0aGlzLnNldHRpbmdzLm5hbWVdPy5sZW5ndGggPz8gMCkgPiAxKSB7XG4gICAgICAgIHRoaXMucG9zdGJveS5maXJlKG5ldyBGaXRUb0ZlYXR1cmVzQ29tbWFuZChtLmZlYXR1cmVzW3RoaXMuc2V0dGluZ3MubmFtZV0sIC0xKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQ2x1c3Rlck5lY2Vzc2l0eShtYXA6IE1hcCk6IHZvaWQge1xuICAgIGxldCB6b29tID0gbWFwLmdldFZpZXcoKS5nZXRab29tKCkgPz8gMDtcbiAgICBjb25zdCBkaXN0YW5jZSA9IHpvb20gPiB0aGlzLnNldHRpbmdzLmNsdXN0ZXJDYW5jZWwgPyAwIDogdGhpcy5zZXR0aW5ncy5kaXN0YW5jZTtcbiAgICB0aGlzLmxheWVyPy5nZXRTb3VyY2UoKT8uc2V0RGlzdGFuY2UoZGlzdGFuY2UpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { IdGenerator } from '../../../common/id.generator';
|
|
2
|
-
export class ClusterLayerSettings {
|
|
3
|
-
name = IdGenerator.get();
|
|
4
|
-
zIndex = 1;
|
|
5
|
-
/**
|
|
6
|
-
* The maximum view zoom level (inclusive) at which this layer will be visible.
|
|
7
|
-
*
|
|
8
|
-
* @type {number}
|
|
9
|
-
* @default 19
|
|
10
|
-
*/
|
|
11
|
-
maxZoom = 19;
|
|
12
|
-
/**
|
|
13
|
-
* The minimum view zoom level (exclusive) at which this layer will be visible.
|
|
14
|
-
*
|
|
15
|
-
* @type {number}
|
|
16
|
-
*/
|
|
17
|
-
minZoom = 0;
|
|
18
|
-
/**
|
|
19
|
-
* Distance in pixels within which features will be clustered together.
|
|
20
|
-
*
|
|
21
|
-
* @type {number}
|
|
22
|
-
*/
|
|
23
|
-
distance = 20;
|
|
24
|
-
bbox = false;
|
|
25
|
-
clusterCancel = 14;
|
|
26
|
-
style;
|
|
27
|
-
/**
|
|
28
|
-
* Creates a copy of the given ClusterLayerSettings object.
|
|
29
|
-
*
|
|
30
|
-
* @param {ClusterLayerSettings} model - The ClusterLayerSettings object to be copied.
|
|
31
|
-
* @returns {ClusterLayerSettings} - A new ClusterLayerSettings object that is a copy of the original object.
|
|
32
|
-
*/
|
|
33
|
-
static copy(model) {
|
|
34
|
-
const result = new ClusterLayerSettings();
|
|
35
|
-
result.name = model.name;
|
|
36
|
-
result.maxZoom = model.maxZoom;
|
|
37
|
-
result.minZoom = model.minZoom;
|
|
38
|
-
result.zIndex = model.zIndex;
|
|
39
|
-
result.bbox = model.bbox;
|
|
40
|
-
result.clusterCancel = model.clusterCancel;
|
|
41
|
-
result.distance = model.distance;
|
|
42
|
-
result.style = model.style;
|
|
43
|
-
return result;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Set the z-index for the ClusterLayer.
|
|
47
|
-
*
|
|
48
|
-
* @param {number} zIndex - The new z-index for the ClusterLayer.
|
|
49
|
-
* @return {ClusterLayerSettings} - The updated ClusterLayerSettings object.
|
|
50
|
-
*/
|
|
51
|
-
setZIndex(zIndex) {
|
|
52
|
-
return ClusterLayerSettings.copy({ ...this, zIndex });
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Sets the distance value for ClusterLayerSettings.
|
|
56
|
-
*
|
|
57
|
-
* @param {number} distance - The distance value to be set.
|
|
58
|
-
* @return {ClusterLayerSettings} - The modified ClusterLayerSettings object.
|
|
59
|
-
*/
|
|
60
|
-
setDistance(distance) {
|
|
61
|
-
return ClusterLayerSettings.copy({ ...this, distance });
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Sets the name of the ClusterLayerSettings object.
|
|
65
|
-
*
|
|
66
|
-
* @param {string} name - The name to set for the ClusterLayerSettings.
|
|
67
|
-
* @return {ClusterLayerSettings} - A new ClusterLayerSettings object with the updated name.
|
|
68
|
-
*/
|
|
69
|
-
setName(name) {
|
|
70
|
-
return ClusterLayerSettings.copy({ ...this, name });
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Sets the maximum zoom level for the Cluster Layer.
|
|
74
|
-
*
|
|
75
|
-
* @param {number} maxZoom - The maximum zoom level to be set.
|
|
76
|
-
* @return {ClusterLayerSettings} - The updated ClusterLayerSettings object.
|
|
77
|
-
*/
|
|
78
|
-
setMaxZoom(maxZoom) {
|
|
79
|
-
return ClusterLayerSettings.copy({ ...this, maxZoom });
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Sets the minimum zoom level for the ClusterLayerSettings.
|
|
83
|
-
*
|
|
84
|
-
* @param {number} minZoom - The minimum zoom level to set.
|
|
85
|
-
* @return {ClusterLayerSettings} - The updated ClusterLayerSettings object.
|
|
86
|
-
*/
|
|
87
|
-
setMinZoom(minZoom) {
|
|
88
|
-
return ClusterLayerSettings.copy({ ...this, minZoom });
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Sets the cluster cancel number for the ClusterLayerSettings.
|
|
92
|
-
*
|
|
93
|
-
* @param {number} clusterCancel - The new cluster cancel number.
|
|
94
|
-
* @returns {ClusterLayerSettings} - The updated ClusterLayerSettings object.
|
|
95
|
-
*/
|
|
96
|
-
setClusterCancel(clusterCancel) {
|
|
97
|
-
return ClusterLayerSettings.copy({ ...this, clusterCancel });
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Sets the value of 'bbox' property in the ClusterLayerSettings object.
|
|
101
|
-
*
|
|
102
|
-
* @param {boolean} bbox - A boolean value indicating whether to include bounding box calculation in the cluster layer settings.
|
|
103
|
-
* @returns {ClusterLayerSettings} - The updated ClusterLayerSettings object with the newly set 'bbox' value.
|
|
104
|
-
*/
|
|
105
|
-
setBbox(bbox) {
|
|
106
|
-
return ClusterLayerSettings.copy({ ...this, bbox });
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Sets the style for the ClusterLayerSettings.
|
|
110
|
-
*
|
|
111
|
-
* @param {function} style - A function that takes an array of identified features as input and returns a Style or StyleFunction.
|
|
112
|
-
*
|
|
113
|
-
* @return {ClusterLayerSettings} - The updated ClusterLayerSettings object with the new style applied.
|
|
114
|
-
*/
|
|
115
|
-
setStyle(style) {
|
|
116
|
-
return ClusterLayerSettings.copy({ ...this, style });
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Checks if the current ClusterLayerSettings object is the same as the specified model.
|
|
120
|
-
*
|
|
121
|
-
* @param {ClusterLayerSettings} model - The model to compare with the current object.
|
|
122
|
-
*
|
|
123
|
-
* @return {boolean} - Returns true if the current ClusterLayerSettings object is the same as the specified model, otherwise false.
|
|
124
|
-
*/
|
|
125
|
-
isSame(model) {
|
|
126
|
-
if (this.maxZoom !== model.maxZoom)
|
|
127
|
-
return false;
|
|
128
|
-
if (this.minZoom !== model.minZoom)
|
|
129
|
-
return false;
|
|
130
|
-
if (this.zIndex !== model.zIndex)
|
|
131
|
-
return false;
|
|
132
|
-
if (this.name !== model.name)
|
|
133
|
-
return false;
|
|
134
|
-
if (this.distance !== model.distance)
|
|
135
|
-
return false;
|
|
136
|
-
if (this.clusterCancel !== model.clusterCancel)
|
|
137
|
-
return false;
|
|
138
|
-
if (this.bbox !== model.bbox)
|
|
139
|
-
return false;
|
|
140
|
-
if (this.style !== model.style)
|
|
141
|
-
return false;
|
|
142
|
-
return true;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci1sYXllci5zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21hcC1wbGF0ZS9sYXllcnMvY2x1c3Rlci1sYXllci9jbHVzdGVyLWxheWVyLnNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUkzRCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLElBQUksR0FBVyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDakMsTUFBTSxHQUFXLENBQUMsQ0FBQztJQUNuQjs7Ozs7T0FLRztJQUNILE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckI7Ozs7T0FJRztJQUNILE9BQU8sR0FBVyxDQUFDLENBQUM7SUFDcEI7Ozs7T0FJRztJQUNILFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDdEIsSUFBSSxHQUFZLEtBQUssQ0FBQztJQUN0QixhQUFhLEdBQVcsRUFBRSxDQUFDO0lBQzNCLEtBQUssQ0FBc0M7SUFFM0M7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQTJCO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUMxQyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDekIsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUMzQyxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDakMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzNCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsUUFBZ0I7UUFDMUIsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWU7UUFDeEIsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLGFBQXFCO1FBQ3BDLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsSUFBYTtRQUNuQixPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFFBQVEsQ0FBQyxLQUF5RDtRQUNoRSxPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxLQUEyQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNuRCxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLGFBQWE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2lkLmdlbmVyYXRvcic7XG5pbXBvcnQgU3R5bGUsIHsgU3R5bGVGdW5jdGlvbiB9IGZyb20gJ29sL3N0eWxlL1N0eWxlJztcbmltcG9ydCB7IElJZGVudGlmaWVkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ktaWRlbnRpZmllZCc7XG5cbmV4cG9ydCBjbGFzcyBDbHVzdGVyTGF5ZXJTZXR0aW5ncyB7XG4gIG5hbWU6IHN0cmluZyA9IElkR2VuZXJhdG9yLmdldCgpO1xuICB6SW5kZXg6IG51bWJlciA9IDE7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB2aWV3IHpvb20gbGV2ZWwgKGluY2x1c2l2ZSkgYXQgd2hpY2ggdGhpcyBsYXllciB3aWxsIGJlIHZpc2libGUuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDE5XG4gICAqL1xuICBtYXhab29tOiBudW1iZXIgPSAxOTtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHZpZXcgem9vbSBsZXZlbCAoZXhjbHVzaXZlKSBhdCB3aGljaCB0aGlzIGxheWVyIHdpbGwgYmUgdmlzaWJsZS5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIG1pblpvb206IG51bWJlciA9IDA7XG4gIC8qKlxuICAgKiBEaXN0YW5jZSBpbiBwaXhlbHMgd2l0aGluIHdoaWNoIGZlYXR1cmVzIHdpbGwgYmUgY2x1c3RlcmVkIHRvZ2V0aGVyLlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgZGlzdGFuY2U6IG51bWJlciA9IDIwO1xuICBiYm94OiBib29sZWFuID0gZmFsc2U7XG4gIGNsdXN0ZXJDYW5jZWw6IG51bWJlciA9IDE0O1xuICBzdHlsZT86IChmZWF0dXJlczogSUlkZW50aWZpZWRbXSkgPT4gU3R5bGU7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoZSBnaXZlbiBDbHVzdGVyTGF5ZXJTZXR0aW5ncyBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7Q2x1c3RlckxheWVyU2V0dGluZ3N9IG1vZGVsIC0gVGhlIENsdXN0ZXJMYXllclNldHRpbmdzIG9iamVjdCB0byBiZSBjb3BpZWQuXG4gICAqIEByZXR1cm5zIHtDbHVzdGVyTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBDbHVzdGVyTGF5ZXJTZXR0aW5ncyBvYmplY3QgdGhhdCBpcyBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29weShtb2RlbDogQ2x1c3RlckxheWVyU2V0dGluZ3MpOiBDbHVzdGVyTGF5ZXJTZXR0aW5ncyB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IENsdXN0ZXJMYXllclNldHRpbmdzKCk7XG4gICAgcmVzdWx0Lm5hbWUgPSBtb2RlbC5uYW1lO1xuICAgIHJlc3VsdC5tYXhab29tID0gbW9kZWwubWF4Wm9vbTtcbiAgICByZXN1bHQubWluWm9vbSA9IG1vZGVsLm1pblpvb207XG4gICAgcmVzdWx0LnpJbmRleCA9IG1vZGVsLnpJbmRleDtcbiAgICByZXN1bHQuYmJveCA9IG1vZGVsLmJib3g7XG4gICAgcmVzdWx0LmNsdXN0ZXJDYW5jZWwgPSBtb2RlbC5jbHVzdGVyQ2FuY2VsO1xuICAgIHJlc3VsdC5kaXN0YW5jZSA9IG1vZGVsLmRpc3RhbmNlO1xuICAgIHJlc3VsdC5zdHlsZSA9IG1vZGVsLnN0eWxlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB6LWluZGV4IGZvciB0aGUgQ2x1c3RlckxheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gekluZGV4IC0gVGhlIG5ldyB6LWluZGV4IGZvciB0aGUgQ2x1c3RlckxheWVyLlxuICAgKiBAcmV0dXJuIHtDbHVzdGVyTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCBDbHVzdGVyTGF5ZXJTZXR0aW5ncyBvYmplY3QuXG4gICAqL1xuICBzZXRaSW5kZXgoekluZGV4OiBudW1iZXIpOiBDbHVzdGVyTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIENsdXN0ZXJMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCB6SW5kZXggfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGlzdGFuY2UgdmFsdWUgZm9yIENsdXN0ZXJMYXllclNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gZGlzdGFuY2UgLSBUaGUgZGlzdGFuY2UgdmFsdWUgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtDbHVzdGVyTGF5ZXJTZXR0aW5nc30gLSBUaGUgbW9kaWZpZWQgQ2x1c3RlckxheWVyU2V0dGluZ3Mgb2JqZWN0LlxuICAgKi9cbiAgc2V0RGlzdGFuY2UoZGlzdGFuY2U6IG51bWJlcik6IENsdXN0ZXJMYXllclNldHRpbmdzIHtcbiAgICByZXR1cm4gQ2x1c3RlckxheWVyU2V0dGluZ3MuY29weSh7IC4uLnRoaXMsIGRpc3RhbmNlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG5hbWUgb2YgdGhlIENsdXN0ZXJMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSB0byBzZXQgZm9yIHRoZSBDbHVzdGVyTGF5ZXJTZXR0aW5ncy5cbiAgICogQHJldHVybiB7Q2x1c3RlckxheWVyU2V0dGluZ3N9IC0gQSBuZXcgQ2x1c3RlckxheWVyU2V0dGluZ3Mgb2JqZWN0IHdpdGggdGhlIHVwZGF0ZWQgbmFtZS5cbiAgICovXG4gIHNldE5hbWUobmFtZTogc3RyaW5nKTogQ2x1c3RlckxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBDbHVzdGVyTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbmFtZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSBDbHVzdGVyIExheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Wm9vbSAtIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtDbHVzdGVyTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCBDbHVzdGVyTGF5ZXJTZXR0aW5ncyBvYmplY3QuXG4gICAqL1xuICBzZXRNYXhab29tKG1heFpvb206IG51bWJlcik6IENsdXN0ZXJMYXllclNldHRpbmdzIHtcbiAgICByZXR1cm4gQ2x1c3RlckxheWVyU2V0dGluZ3MuY29weSh7IC4uLnRoaXMsIG1heFpvb20gfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbWluaW11bSB6b29tIGxldmVsIGZvciB0aGUgQ2x1c3RlckxheWVyU2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtaW5ab29tIC0gVGhlIG1pbmltdW0gem9vbSBsZXZlbCB0byBzZXQuXG4gICAqIEByZXR1cm4ge0NsdXN0ZXJMYXllclNldHRpbmdzfSAtIFRoZSB1cGRhdGVkIENsdXN0ZXJMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICovXG4gIHNldE1pblpvb20obWluWm9vbTogbnVtYmVyKTogQ2x1c3RlckxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBDbHVzdGVyTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWluWm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjbHVzdGVyIGNhbmNlbCBudW1iZXIgZm9yIHRoZSBDbHVzdGVyTGF5ZXJTZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGNsdXN0ZXJDYW5jZWwgLSBUaGUgbmV3IGNsdXN0ZXIgY2FuY2VsIG51bWJlci5cbiAgICogQHJldHVybnMge0NsdXN0ZXJMYXllclNldHRpbmdzfSAtIFRoZSB1cGRhdGVkIENsdXN0ZXJMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICovXG4gIHNldENsdXN0ZXJDYW5jZWwoY2x1c3RlckNhbmNlbDogbnVtYmVyKTogQ2x1c3RlckxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBDbHVzdGVyTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgY2x1c3RlckNhbmNlbCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiAnYmJveCcgcHJvcGVydHkgaW4gdGhlIENsdXN0ZXJMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBiYm94IC0gQSBib29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0byBpbmNsdWRlIGJvdW5kaW5nIGJveCBjYWxjdWxhdGlvbiBpbiB0aGUgY2x1c3RlciBsYXllciBzZXR0aW5ncy5cbiAgICogQHJldHVybnMge0NsdXN0ZXJMYXllclNldHRpbmdzfSAtIFRoZSB1cGRhdGVkIENsdXN0ZXJMYXllclNldHRpbmdzIG9iamVjdCB3aXRoIHRoZSBuZXdseSBzZXQgJ2Jib3gnIHZhbHVlLlxuICAgKi9cbiAgc2V0QmJveChiYm94OiBib29sZWFuKTogQ2x1c3RlckxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBDbHVzdGVyTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgYmJveCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdHlsZSBmb3IgdGhlIENsdXN0ZXJMYXllclNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBzdHlsZSAtIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBhcnJheSBvZiBpZGVudGlmaWVkIGZlYXR1cmVzIGFzIGlucHV0IGFuZCByZXR1cm5zIGEgU3R5bGUgb3IgU3R5bGVGdW5jdGlvbi5cbiAgICpcbiAgICogQHJldHVybiB7Q2x1c3RlckxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgQ2x1c3RlckxheWVyU2V0dGluZ3Mgb2JqZWN0IHdpdGggdGhlIG5ldyBzdHlsZSBhcHBsaWVkLlxuICAgKi9cbiAgc2V0U3R5bGUoc3R5bGU6IChmZWF0dXJlczogSUlkZW50aWZpZWRbXSkgPT4gU3R5bGUgfCBTdHlsZUZ1bmN0aW9uKTogQ2x1c3RlckxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBDbHVzdGVyTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgc3R5bGUgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IENsdXN0ZXJMYXllclNldHRpbmdzIG9iamVjdCBpcyB0aGUgc2FtZSBhcyB0aGUgc3BlY2lmaWVkIG1vZGVsLlxuICAgKlxuICAgKiBAcGFyYW0ge0NsdXN0ZXJMYXllclNldHRpbmdzfSBtb2RlbCAtIFRoZSBtb2RlbCB0byBjb21wYXJlIHdpdGggdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBDbHVzdGVyTGF5ZXJTZXR0aW5ncyBvYmplY3QgaXMgdGhlIHNhbWUgYXMgdGhlIHNwZWNpZmllZCBtb2RlbCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgcHVibGljIGlzU2FtZShtb2RlbDogQ2x1c3RlckxheWVyU2V0dGluZ3MpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5tYXhab29tICE9PSBtb2RlbC5tYXhab29tKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMubWluWm9vbSAhPT0gbW9kZWwubWluWm9vbSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLnpJbmRleCAhPT0gbW9kZWwuekluZGV4KSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMubmFtZSAhPT0gbW9kZWwubmFtZSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLmRpc3RhbmNlICE9PSBtb2RlbC5kaXN0YW5jZSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLmNsdXN0ZXJDYW5jZWwgIT09IG1vZGVsLmNsdXN0ZXJDYW5jZWwpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5iYm94ICE9PSBtb2RlbC5iYm94KSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMuc3R5bGUgIT09IG1vZGVsLnN0eWxlKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { MapRenderedEvent } from '../../../messages';
|
|
3
|
-
import { FeatureLayerSettings } from './feature-layer.settings';
|
|
4
|
-
import { DestructibleComponent } from '../../../common/destructible.component';
|
|
5
|
-
import { AddLayerCommand } from '../../../messages/commands/add-layer.command';
|
|
6
|
-
import { filter, first } from 'rxjs/operators';
|
|
7
|
-
import { RemoveLayerCommand } from '../../../messages/commands/remove-layer.command';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../../../services/map-postboy.service";
|
|
10
|
-
import * as i2 from "./feature-layer.factory";
|
|
11
|
-
export class FeatureLayerComponent extends DestructibleComponent {
|
|
12
|
-
postboy;
|
|
13
|
-
factory;
|
|
14
|
-
layer = null;
|
|
15
|
-
constructor(postboy, factory) {
|
|
16
|
-
super();
|
|
17
|
-
this.postboy = postboy;
|
|
18
|
-
this.factory = factory;
|
|
19
|
-
}
|
|
20
|
-
_settings = new FeatureLayerSettings();
|
|
21
|
-
set settings(value) {
|
|
22
|
-
if (!value || this._settings.isSame(value))
|
|
23
|
-
return;
|
|
24
|
-
this._settings = value;
|
|
25
|
-
this.initLayer();
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
this.postboy
|
|
29
|
-
.sub(MapRenderedEvent)
|
|
30
|
-
.pipe(filter((m) => !!m), first())
|
|
31
|
-
.subscribe((m) => this.initLayer());
|
|
32
|
-
}
|
|
33
|
-
onDestroy = () => this.removeLayer();
|
|
34
|
-
initLayer() {
|
|
35
|
-
this.removeLayer();
|
|
36
|
-
this.layer = this.factory.build(this._settings);
|
|
37
|
-
this.postboy.fire(new AddLayerCommand(this.layer));
|
|
38
|
-
}
|
|
39
|
-
removeLayer() {
|
|
40
|
-
if (this.layer)
|
|
41
|
-
this.postboy.fire(new RemoveLayerCommand(this.layer));
|
|
42
|
-
}
|
|
43
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeatureLayerComponent, deps: [{ token: i1.MapPostboyService }, { token: i2.FeatureLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FeatureLayerComponent, isStandalone: true, selector: "art-feature-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
45
|
-
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeatureLayerComponent, decorators: [{
|
|
47
|
-
type: Component,
|
|
48
|
-
args: [{ selector: 'art-feature-layer', standalone: true, template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
49
|
-
}], ctorParameters: () => [{ type: i1.MapPostboyService }, { type: i2.FeatureLayerFactory }], propDecorators: { settings: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1sYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvbGF5ZXJzL2ZlYXR1cmUtbGF5ZXIvZmVhdHVyZS1sYXllci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7QUFVckYsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHFCQUFxQjtJQUcxQztJQUFvQztJQUZqRCxLQUFLLEdBQW9DLElBQUksQ0FBQztJQUVyRCxZQUFvQixPQUEwQixFQUFVLE9BQTRCO1FBQ2xGLEtBQUssRUFBRSxDQUFDO1FBRFUsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUVwRixDQUFDO0lBRUQsU0FBUyxHQUF5QixJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFFN0QsSUFBYSxRQUFRLENBQUMsS0FBdUM7UUFDM0QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPO2FBQ1QsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2FBQ3JCLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEIsS0FBSyxFQUFFLENBQ1I7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTdCLFNBQVM7UUFDZixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQzt3R0FuQ1UscUJBQXFCOzRGQUFyQixxQkFBcUIsc0lBSnRCLEVBQUU7OzRGQUlELHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxZQUNOLEVBQUUsbUJBRUssdUJBQXVCLENBQUMsTUFBTTt3SEFXbEMsUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hcFBvc3Rib3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMnO1xuaW1wb3J0IFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcbmltcG9ydCB7IFZlY3RvciBhcyBMYXllciB9IGZyb20gJ29sL2xheWVyJztcbmltcG9ydCB7IEZlYXR1cmVMYXllclNldHRpbmdzIH0gZnJvbSAnLi9mZWF0dXJlLWxheWVyLnNldHRpbmdzJztcbmltcG9ydCB7IERlc3RydWN0aWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kZXN0cnVjdGlibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkZExheWVyQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZW1vdmVMYXllckNvbW1hbmQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlcy9jb21tYW5kcy9yZW1vdmUtbGF5ZXIuY29tbWFuZCc7XG5pbXBvcnQgeyBGZWF0dXJlTGF5ZXJGYWN0b3J5IH0gZnJvbSAnLi9mZWF0dXJlLWxheWVyLmZhY3RvcnknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcnQtZmVhdHVyZS1sYXllcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVMYXllckNvbXBvbmVudCBleHRlbmRzIERlc3RydWN0aWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBsYXllcjogTGF5ZXI8VmVjdG9yU291cmNlPGFueT4+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSwgcHJpdmF0ZSBmYWN0b3J5OiBGZWF0dXJlTGF5ZXJGYWN0b3J5KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIF9zZXR0aW5nczogRmVhdHVyZUxheWVyU2V0dGluZ3MgPSBuZXcgRmVhdHVyZUxheWVyU2V0dGluZ3MoKTtcblxuICBASW5wdXQoKSBzZXQgc2V0dGluZ3ModmFsdWU6IEZlYXR1cmVMYXllclNldHRpbmdzIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB0aGlzLl9zZXR0aW5ncy5pc1NhbWUodmFsdWUpKSByZXR1cm47XG4gICAgdGhpcy5fc2V0dGluZ3MgPSB2YWx1ZTtcbiAgICB0aGlzLmluaXRMYXllcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wb3N0Ym95XG4gICAgICAuc3ViKE1hcFJlbmRlcmVkRXZlbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChtKSA9PiAhIW0pLFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobSkgPT4gdGhpcy5pbml0TGF5ZXIoKSk7XG4gIH1cblxuICBvbkRlc3Ryb3kgPSAoKSA9PiB0aGlzLnJlbW92ZUxheWVyKCk7XG5cbiAgcHJpdmF0ZSBpbml0TGF5ZXIoKSB7XG4gICAgdGhpcy5yZW1vdmVMYXllcigpO1xuICAgIHRoaXMubGF5ZXIgPSB0aGlzLmZhY3RvcnkuYnVpbGQodGhpcy5fc2V0dGluZ3MpO1xuICAgIHRoaXMucG9zdGJveS5maXJlKG5ldyBBZGRMYXllckNvbW1hbmQodGhpcy5sYXllcikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVMYXllcigpIHtcbiAgICBpZiAodGhpcy5sYXllcikgdGhpcy5wb3N0Ym95LmZpcmUobmV3IFJlbW92ZUxheWVyQ29tbWFuZCh0aGlzLmxheWVyKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Vector as Source } from 'ol/source';
|
|
3
|
-
import { Vector as Layer } from 'ol/layer';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class FeatureLayerFactory {
|
|
6
|
-
build(settings) {
|
|
7
|
-
const source = new Source({});
|
|
8
|
-
const layer = new Layer({
|
|
9
|
-
source: source,
|
|
10
|
-
maxZoom: settings.maxZoom,
|
|
11
|
-
minZoom: settings.minZoom,
|
|
12
|
-
zIndex: settings.zIndex,
|
|
13
|
-
});
|
|
14
|
-
if (settings.style)
|
|
15
|
-
layer.setStyle(settings.style);
|
|
16
|
-
layer.set('name', settings.name);
|
|
17
|
-
return layer;
|
|
18
|
-
}
|
|
19
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeatureLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeatureLayerFactory, providedIn: 'root' });
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FeatureLayerFactory, decorators: [{
|
|
23
|
-
type: Injectable,
|
|
24
|
-
args: [{
|
|
25
|
-
providedIn: 'root',
|
|
26
|
-
}]
|
|
27
|
-
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1sYXllci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2xheWVycy9mZWF0dXJlLWxheWVyL2ZlYXR1cmUtbGF5ZXIuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLElBQUksS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sbUJBQW1CO0lBQ3ZCLEtBQUssQ0FBQyxRQUE4QjtRQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQztZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87WUFDekIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1NBQ3hCLENBQUMsQ0FBQztRQUNILElBQUksUUFBUSxDQUFDLEtBQUs7WUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3dHQVpVLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZWF0dXJlTGF5ZXJTZXR0aW5ncyB9IGZyb20gJy4vZmVhdHVyZS1sYXllci5zZXR0aW5ncyc7XG5pbXBvcnQgeyBWZWN0b3IgYXMgU291cmNlIH0gZnJvbSAnb2wvc291cmNlJztcbmltcG9ydCB7IFZlY3RvciBhcyBMYXllciB9IGZyb20gJ29sL2xheWVyJztcbmltcG9ydCBWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTGF5ZXJGYWN0b3J5IHtcbiAgcHVibGljIGJ1aWxkKHNldHRpbmdzOiBGZWF0dXJlTGF5ZXJTZXR0aW5ncyk6IExheWVyPFZlY3RvclNvdXJjZTxhbnk+PiB7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFNvdXJjZSh7fSk7XG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgTGF5ZXIoe1xuICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICBtYXhab29tOiBzZXR0aW5ncy5tYXhab29tLFxuICAgICAgbWluWm9vbTogc2V0dGluZ3MubWluWm9vbSxcbiAgICAgIHpJbmRleDogc2V0dGluZ3MuekluZGV4LFxuICAgIH0pO1xuICAgIGlmIChzZXR0aW5ncy5zdHlsZSkgbGF5ZXIuc2V0U3R5bGUoc2V0dGluZ3Muc3R5bGUpO1xuICAgIGxheWVyLnNldCgnbmFtZScsIHNldHRpbmdzLm5hbWUpO1xuICAgIHJldHVybiBsYXllcjtcbiAgfVxufVxuIl19
|