@igo2/integration 1.13.2 → 1.13.3

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.
@@ -8,17 +8,24 @@ import * as i1 from "../map/map.state";
8
8
  export class DrawState {
9
9
  constructor(mapState) {
10
10
  this.mapState = mapState;
11
- /**
12
- * Store that holds the measures
13
- */
14
- this.store = new FeatureStore([], {
15
- map: this.mapState.map
16
- });
11
+ this.stores = [];
12
+ this.layersID = [];
13
+ this.drawControls = [];
17
14
  this.mapState.map.layers$.subscribe(() => {
18
- if (!this.mapState.map.getLayerById('igo-draw-layer')) {
19
- this.store.deleteMany(this.store.all());
20
- }
15
+ this.layersID.forEach(layerId => {
16
+ if (!this.mapState.map.getLayerById(layerId)) {
17
+ let deletedStore = this.stores.find(store => store.layer.id === layerId);
18
+ deletedStore.deleteMany(deletedStore.all());
19
+ this.stores.splice(this.stores.indexOf(deletedStore, 0), 1);
20
+ this.layersID.splice(this.layersID.indexOf(layerId, 0), 1);
21
+ let drawControlIndex = this.drawControls.findIndex(dc => dc[0] === layerId);
22
+ this.drawControls.splice(drawControlIndex, 1);
23
+ }
24
+ });
21
25
  });
26
+ for (let store of this.stores) {
27
+ store = new FeatureStore([], { map: this.mapState.map });
28
+ }
22
29
  }
23
30
  }
24
31
  DrawState.ɵfac = function DrawState_Factory(t) { return new (t || DrawState)(i0.ɵɵinject(i1.MapState)); };
@@ -29,4 +36,4 @@ DrawState.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DrawState, fac
29
36
  providedIn: 'root'
30
37
  }]
31
38
  }], function () { return [{ type: i1.MapState }]; }, null); })();
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZHJhdy9kcmF3LnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBVyxNQUFNLFdBQVcsQ0FBQzs7O0FBR2xEOztHQUVHO0FBSUgsTUFBTSxPQUFPLFNBQVM7SUFTcEIsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVB0Qzs7V0FFRztRQUNJLFVBQUssR0FBMEIsSUFBSSxZQUFZLENBQVUsRUFBRSxFQUFFO1lBQ2xFLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7U0FDdkIsQ0FBQyxDQUFDO1FBSUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDekM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2tFQWhCVSxTQUFTOytEQUFULFNBQVMsV0FBVCxTQUFTLG1CQUZSLE1BQU07dUZBRVAsU0FBUztjQUhyQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUsIEZlYXR1cmUgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgeyBNYXBTdGF0ZSB9IGZyb20gJy4uL21hcC9tYXAuc3RhdGUnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgdGhhdCBob2xkcyB0aGUgc3RhdGUgb2YgdGhlIG1lYXN1cmUgbW9kdWxlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3U3RhdGUge1xyXG5cclxuICAvKipcclxuICAgKiBTdG9yZSB0aGF0IGhvbGRzIHRoZSBtZWFzdXJlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzdG9yZTogRmVhdHVyZVN0b3JlPEZlYXR1cmU+ID0gbmV3IEZlYXR1cmVTdG9yZTxGZWF0dXJlPihbXSwge1xyXG4gICAgbWFwOiB0aGlzLm1hcFN0YXRlLm1hcFxyXG4gIH0pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hcFN0YXRlOiBNYXBTdGF0ZSkge1xyXG5cclxuICAgIHRoaXMubWFwU3RhdGUubWFwLmxheWVycyQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLm1hcFN0YXRlLm1hcC5nZXRMYXllckJ5SWQoJ2lnby1kcmF3LWxheWVyJykpIHtcclxuICAgICAgICB0aGlzLnN0b3JlLmRlbGV0ZU1hbnkodGhpcy5zdG9yZS5hbGwoKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZHJhdy9kcmF3LnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFlLFlBQVksRUFBZ0MsTUFBTSxXQUFXLENBQUM7OztBQUdwRjs7R0FFRztBQUlILE1BQU0sT0FBTyxTQUFTO0lBT3BCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFML0IsV0FBTSxHQUFvQyxFQUFFLENBQUM7UUFDN0MsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUE0QixFQUFFLENBQUM7UUFJaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUM7b0JBQzNDLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUM7b0JBQ3pFLFlBQVksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7b0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUMxRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDO29CQUM1RSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDL0M7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFDO1lBQzVCLEtBQUssR0FBRyxJQUFJLFlBQVksQ0FBa0IsRUFBRSxFQUFFLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7O2tFQXZCVSxTQUFTOytEQUFULFNBQVMsV0FBVCxTQUFTLG1CQUZSLE1BQU07dUZBRVAsU0FBUztjQUhyQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEcmF3Q29udHJvbCwgRmVhdHVyZVN0b3JlLCBGZWF0dXJlV2l0aERyYXcsIFZlY3RvckxheWVyIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi9tYXAvbWFwLnN0YXRlJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIHRoYXQgaG9sZHMgdGhlIHN0YXRlIG9mIHRoZSBtZWFzdXJlIG1vZHVsZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd1N0YXRlIHtcclxuXHJcbiAgcHVibGljIHN0b3JlczogRmVhdHVyZVN0b3JlPEZlYXR1cmVXaXRoRHJhdz5bXSA9IFtdO1xyXG4gIHB1YmxpYyBsYXllcnNJRDogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgZHJhd0NvbnRyb2xzOiBbc3RyaW5nLCBEcmF3Q29udHJvbF1bXSA9IFtdO1xyXG4gIHB1YmxpYyBhY3RpdmVEcmF3aW5nTGF5ZXI6IFZlY3RvckxheWVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hcFN0YXRlOiBNYXBTdGF0ZSkge1xyXG4gICAgdGhpcy5tYXBTdGF0ZS5tYXAubGF5ZXJzJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxheWVyc0lELmZvckVhY2gobGF5ZXJJZCA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1hcFN0YXRlLm1hcC5nZXRMYXllckJ5SWQobGF5ZXJJZCkpe1xyXG4gICAgICAgICAgbGV0IGRlbGV0ZWRTdG9yZSA9IHRoaXMuc3RvcmVzLmZpbmQoc3RvcmUgPT4gc3RvcmUubGF5ZXIuaWQgPT09IGxheWVySWQpO1xyXG4gICAgICAgICAgZGVsZXRlZFN0b3JlLmRlbGV0ZU1hbnkoZGVsZXRlZFN0b3JlLmFsbCgpKTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVzLnNwbGljZSh0aGlzLnN0b3Jlcy5pbmRleE9mKGRlbGV0ZWRTdG9yZSwwKSwgMSk7XHJcbiAgICAgICAgICB0aGlzLmxheWVyc0lELnNwbGljZSh0aGlzLmxheWVyc0lELmluZGV4T2YobGF5ZXJJZCwwKSwgMSk7XHJcbiAgICAgICAgICBsZXQgZHJhd0NvbnRyb2xJbmRleCA9IHRoaXMuZHJhd0NvbnRyb2xzLmZpbmRJbmRleChkYyA9PiBkY1swXSA9PT0gbGF5ZXJJZCk7XHJcbiAgICAgICAgICB0aGlzLmRyYXdDb250cm9scy5zcGxpY2UoZHJhd0NvbnRyb2xJbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgZm9yIChsZXQgc3RvcmUgb2YgdGhpcy5zdG9yZXMpe1xyXG4gICAgICBzdG9yZSA9IG5ldyBGZWF0dXJlU3RvcmU8RmVhdHVyZVdpdGhEcmF3PihbXSwge21hcDogdGhpcy5tYXBTdGF0ZS5tYXB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -17,18 +17,45 @@ let DrawingToolComponent = class DrawingToolComponent {
17
17
  * Map to measure on
18
18
  * @internal
19
19
  */
20
- get store() { return this.drawState.store; }
20
+ get stores() {
21
+ return this.drawState.stores;
22
+ }
21
23
  /**
22
24
  * Map to measure on
23
25
  * @internal
24
26
  */
25
- get map() { return this.mapState.map; }
27
+ get map() {
28
+ return this.mapState.map;
29
+ }
30
+ get layersID() {
31
+ return this.drawState.layersID;
32
+ }
33
+ get drawControls() {
34
+ return this.drawState.drawControls;
35
+ }
36
+ set drawControls(dc) {
37
+ this.drawState.drawControls = dc;
38
+ }
39
+ get activeDrawingLayer() {
40
+ return this.drawState.activeDrawingLayer;
41
+ }
42
+ set activeDrawingLayer(value) {
43
+ this.drawState.activeDrawingLayer = value;
44
+ }
45
+ addLayersID(layerID) {
46
+ this.layersID.push(layerID);
47
+ }
48
+ addDrawControls(dc) {
49
+ this.drawControls = dc;
50
+ }
26
51
  };
27
52
  DrawingToolComponent.ɵfac = function DrawingToolComponent_Factory(t) { return new (t || DrawingToolComponent)(i0.ɵɵdirectiveInject(i1.DrawState), i0.ɵɵdirectiveInject(i2.MapState)); };
28
- DrawingToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawingToolComponent, selectors: [["igo-drawing-tool"]], decls: 1, vars: 2, consts: [[3, "store", "map"]], template: function DrawingToolComponent_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelement(0, "igo-draw", 0);
53
+ DrawingToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawingToolComponent, selectors: [["igo-drawing-tool"]], decls: 1, vars: 4, consts: [[3, "stores", "map", "activeDrawingLayer", "drawControls", "layersIDEvent", "drawControlsEvent", "activeLayerChange"]], template: function DrawingToolComponent_Template(rf, ctx) { if (rf & 1) {
54
+ i0.ɵɵelementStart(0, "igo-draw", 0);
55
+ i0.ɵɵlistener("layersIDEvent", function DrawingToolComponent_Template_igo_draw_layersIDEvent_0_listener($event) { return ctx.addLayersID($event); })("drawControlsEvent", function DrawingToolComponent_Template_igo_draw_drawControlsEvent_0_listener($event) { return ctx.addDrawControls($event); })("activeLayerChange", function DrawingToolComponent_Template_igo_draw_activeLayerChange_0_listener($event) { return ctx.activeDrawingLayer = $event; });
56
+ i0.ɵɵelementEnd();
30
57
  } if (rf & 2) {
31
- i0.ɵɵproperty("store", ctx.store)("map", ctx.map);
58
+ i0.ɵɵproperty("stores", ctx.stores)("map", ctx.map)("activeDrawingLayer", ctx.activeDrawingLayer)("drawControls", ctx.drawControls);
32
59
  } }, dependencies: [i3.DrawComponent], encapsulation: 2, changeDetection: 0 });
33
60
  DrawingToolComponent = __decorate([
34
61
  ToolComponent({
@@ -40,6 +67,6 @@ DrawingToolComponent = __decorate([
40
67
  export { DrawingToolComponent };
41
68
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawingToolComponent, [{
42
69
  type: Component,
43
- args: [{ selector: 'igo-drawing-tool', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-draw [store]=\"store\" [map]=\"map\"></igo-draw>\r\n" }]
70
+ args: [{ selector: 'igo-drawing-tool', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-draw\r\n [stores]=\"stores\"\r\n [map]=\"map\"\r\n (layersIDEvent)=\"addLayersID($event)\"\r\n [activeDrawingLayer]=\"activeDrawingLayer\"\r\n [drawControls]=\"drawControls\"\r\n (drawControlsEvent)=\"addDrawControls($event)\"\r\n (activeLayerChange)=\"activeDrawingLayer = $event\">\r\n</igo-draw>\r\n" }]
44
71
  }], function () { return [{ type: i1.DrawState }, { type: i2.MapState }]; }, null); })();
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2luZy10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZHJhdy9kcmF3aW5nLXRvb2wvZHJhd2luZy10b29sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZHJhdy9kcmF3aW5nLXRvb2wvZHJhd2luZy10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUV6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUs3Qzs7R0FFRztJQVdVLG9CQUFvQixTQUFwQixvQkFBb0I7SUFjakMsWUFDWSxTQUFvQixFQUNwQixRQUFrQjtRQURsQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDM0IsQ0FBQztJQWZKOzs7T0FHRztJQUNILElBQUksS0FBSyxLQUE0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVuRTs7O09BR0c7SUFDSCxJQUFJLEdBQUcsS0FBYSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztDQU85QyxDQUFBO3dGQW5CWSxvQkFBb0I7dUVBQXBCLG9CQUFvQjtRQ3ZCakMsOEJBQWlEOztRQUF2QyxpQ0FBZSxnQkFBQTs7QUR1Qlosb0JBQW9CO0lBVmhDLGFBQWEsQ0FBQztRQUNYLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLDRCQUE0QjtRQUNuQyxJQUFJLEVBQUUsTUFBTTtLQUNmLENBQUM7R0FNVyxvQkFBb0IsQ0FtQmhDO1NBbkJZLG9CQUFvQjt1RkFBcEIsb0JBQW9CO2NBTGhDLFNBQVM7MkJBQ0ksa0JBQWtCLG1CQUVYLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcclxuICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVG9vbENvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSwgRmVhdHVyZSwgSWdvTWFwIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi8uLi9tYXAvbWFwLnN0YXRlJztcclxuaW1wb3J0IHsgRHJhd1N0YXRlIH0gZnJvbSAnLi4vZHJhdy5zdGF0ZSc7XHJcblxyXG4vKipcclxuICogVG9vbCB0byBtZWFzdXJlIGxlbmd0aHMgYW5kIGFyZWFzXHJcbiAqL1xyXG5AVG9vbENvbXBvbmVudCh7XHJcbiAgICBuYW1lOiAnZHJhdycsXHJcbiAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi50b29scy5kcmF3JyxcclxuICAgIGljb246ICdkcmF3J1xyXG59KVxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaWdvLWRyYXdpbmctdG9vbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJhd2luZy10b29sLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3aW5nVG9vbENvbXBvbmVudCB7XHJcblxyXG4vKipcclxuICogTWFwIHRvIG1lYXN1cmUgb25cclxuICogQGludGVybmFsXHJcbiAqL1xyXG5nZXQgc3RvcmUoKTogRmVhdHVyZVN0b3JlPEZlYXR1cmU+IHsgcmV0dXJuIHRoaXMuZHJhd1N0YXRlLnN0b3JlOyB9XHJcblxyXG4vKipcclxuICogTWFwIHRvIG1lYXN1cmUgb25cclxuICogQGludGVybmFsXHJcbiAqL1xyXG5nZXQgbWFwKCk6IElnb01hcCB7IHJldHVybiB0aGlzLm1hcFN0YXRlLm1hcDsgfVxyXG5cclxuY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRyYXdTdGF0ZTogRHJhd1N0YXRlLFxyXG4gICAgcHJpdmF0ZSBtYXBTdGF0ZTogTWFwU3RhdGVcclxuKSB7fVxyXG5cclxufVxyXG4iLCI8aWdvLWRyYXcgW3N0b3JlXT1cInN0b3JlXCIgW21hcF09XCJtYXBcIj48L2lnby1kcmF3PlxyXG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2luZy10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZHJhdy9kcmF3aW5nLXRvb2wvZHJhd2luZy10b29sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvZHJhdy9kcmF3aW5nLXRvb2wvZHJhd2luZy10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUV6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQUs3Qzs7R0FFRztJQVdVLG9CQUFvQixTQUFwQixvQkFBb0I7SUEyQy9CLFlBQW9CLFNBQW9CLEVBQVUsUUFBa0I7UUFBaEQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBMUN4RTs7O09BR0c7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxFQUEwQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxLQUFrQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQWM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxFQUEwQjtRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBR0YsQ0FBQTt3RkE1Q1ksb0JBQW9CO3VFQUFwQixvQkFBb0I7UUN2QmpDLG1DQU9zRDtRQUpsRCx5SEFBaUIsdUJBQW1CLElBQUMsb0hBR2hCLDJCQUF1QixJQUhQLHVKQUFBO1FBS3pDLGlCQUFXOztRQVBQLG1DQUFpQixnQkFBQSw4Q0FBQSxrQ0FBQTs7QURzQlIsb0JBQW9CO0lBVmhDLGFBQWEsQ0FBQztRQUNiLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLDRCQUE0QjtRQUNuQyxJQUFJLEVBQUUsTUFBTTtLQUNiLENBQUM7R0FNVyxvQkFBb0IsQ0E0Q2hDO1NBNUNZLG9CQUFvQjt1RkFBcEIsb0JBQW9CO2NBTGhDLFNBQVM7MkJBQ0Usa0JBQWtCLG1CQUVYLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcclxuICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVG9vbENvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSwgSWdvTWFwLCBEcmF3Q29udHJvbCwgRmVhdHVyZVdpdGhEcmF3LCBWZWN0b3JMYXllcn0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi8uLi9tYXAvbWFwLnN0YXRlJztcclxuaW1wb3J0IHsgRHJhd1N0YXRlIH0gZnJvbSAnLi4vZHJhdy5zdGF0ZSc7XHJcblxyXG4vKipcclxuICogVG9vbCB0byBtZWFzdXJlIGxlbmd0aHMgYW5kIGFyZWFzXHJcbiAqL1xyXG5AVG9vbENvbXBvbmVudCh7XHJcbiAgbmFtZTogJ2RyYXcnLFxyXG4gIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLnRvb2xzLmRyYXcnLFxyXG4gIGljb246ICdkcmF3J1xyXG59KVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1kcmF3aW5nLXRvb2wnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmF3aW5nLXRvb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3aW5nVG9vbENvbXBvbmVudCB7XHJcbiAgLyoqXHJcbiAgICogTWFwIHRvIG1lYXN1cmUgb25cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXQgc3RvcmVzKCk6IEZlYXR1cmVTdG9yZTxGZWF0dXJlV2l0aERyYXc+W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZHJhd1N0YXRlLnN0b3JlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcCB0byBtZWFzdXJlIG9uXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwU3RhdGUubWFwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxheWVyc0lEKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLmRyYXdTdGF0ZS5sYXllcnNJRDtcclxuICB9XHJcblxyXG4gIGdldCBkcmF3Q29udHJvbHMoKTogW3N0cmluZywgRHJhd0NvbnRyb2xdW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZHJhd1N0YXRlLmRyYXdDb250cm9scztcclxuICB9XHJcbiAgc2V0IGRyYXdDb250cm9scyhkYzpbc3RyaW5nLCBEcmF3Q29udHJvbF1bXSl7XHJcbiAgICB0aGlzLmRyYXdTdGF0ZS5kcmF3Q29udHJvbHMgPSBkYztcclxuICB9XHJcblxyXG4gIGdldCBhY3RpdmVEcmF3aW5nTGF5ZXIoKTogVmVjdG9yTGF5ZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZHJhd1N0YXRlLmFjdGl2ZURyYXdpbmdMYXllcjtcclxuICB9XHJcbiAgc2V0IGFjdGl2ZURyYXdpbmdMYXllcih2YWx1ZTogVmVjdG9yTGF5ZXIpIHtcclxuICAgIHRoaXMuZHJhd1N0YXRlLmFjdGl2ZURyYXdpbmdMYXllciA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZExheWVyc0lEKGxheWVySUQ6c3RyaW5nKXtcclxuICAgIHRoaXMubGF5ZXJzSUQucHVzaChsYXllcklEKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGREcmF3Q29udHJvbHMoZGM6W3N0cmluZywgRHJhd0NvbnRyb2xdW10pe1xyXG4gICAgdGhpcy5kcmF3Q29udHJvbHMgPSBkYztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZHJhd1N0YXRlOiBEcmF3U3RhdGUsIHByaXZhdGUgbWFwU3RhdGU6IE1hcFN0YXRlKSB7fVxyXG59XHJcbiIsIjxpZ28tZHJhd1xyXG4gICAgW3N0b3Jlc109XCJzdG9yZXNcIlxyXG4gICAgW21hcF09XCJtYXBcIlxyXG4gICAgKGxheWVyc0lERXZlbnQpPVwiYWRkTGF5ZXJzSUQoJGV2ZW50KVwiXHJcbiAgICBbYWN0aXZlRHJhd2luZ0xheWVyXT1cImFjdGl2ZURyYXdpbmdMYXllclwiXHJcbiAgICBbZHJhd0NvbnRyb2xzXT1cImRyYXdDb250cm9sc1wiXHJcbiAgICAoZHJhd0NvbnRyb2xzRXZlbnQpPVwiYWRkRHJhd0NvbnRyb2xzKCRldmVudClcIlxyXG4gICAgKGFjdGl2ZUxheWVyQ2hhbmdlKT1cImFjdGl2ZURyYXdpbmdMYXllciA9ICRldmVudFwiPlxyXG48L2lnby1kcmF3PlxyXG4iXX0=
@@ -991,17 +991,24 @@ IgoAppDirectionsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [I
991
991
  class DrawState {
992
992
  constructor(mapState) {
993
993
  this.mapState = mapState;
994
- /**
995
- * Store that holds the measures
996
- */
997
- this.store = new FeatureStore([], {
998
- map: this.mapState.map
999
- });
994
+ this.stores = [];
995
+ this.layersID = [];
996
+ this.drawControls = [];
1000
997
  this.mapState.map.layers$.subscribe(() => {
1001
- if (!this.mapState.map.getLayerById('igo-draw-layer')) {
1002
- this.store.deleteMany(this.store.all());
1003
- }
998
+ this.layersID.forEach(layerId => {
999
+ if (!this.mapState.map.getLayerById(layerId)) {
1000
+ let deletedStore = this.stores.find(store => store.layer.id === layerId);
1001
+ deletedStore.deleteMany(deletedStore.all());
1002
+ this.stores.splice(this.stores.indexOf(deletedStore, 0), 1);
1003
+ this.layersID.splice(this.layersID.indexOf(layerId, 0), 1);
1004
+ let drawControlIndex = this.drawControls.findIndex(dc => dc[0] === layerId);
1005
+ this.drawControls.splice(drawControlIndex, 1);
1006
+ }
1007
+ });
1004
1008
  });
1009
+ for (let store of this.stores) {
1010
+ store = new FeatureStore([], { map: this.mapState.map });
1011
+ }
1005
1012
  }
1006
1013
  }
1007
1014
  DrawState.ɵfac = function DrawState_Factory(t) { return new (t || DrawState)(i0.ɵɵinject(MapState)); };
@@ -1027,20 +1034,47 @@ let DrawingToolComponent = class DrawingToolComponent {
1027
1034
  * Map to measure on
1028
1035
  * @internal
1029
1036
  */
1030
- get store() { return this.drawState.store; }
1037
+ get stores() {
1038
+ return this.drawState.stores;
1039
+ }
1031
1040
  /**
1032
1041
  * Map to measure on
1033
1042
  * @internal
1034
1043
  */
1035
- get map() { return this.mapState.map; }
1044
+ get map() {
1045
+ return this.mapState.map;
1046
+ }
1047
+ get layersID() {
1048
+ return this.drawState.layersID;
1049
+ }
1050
+ get drawControls() {
1051
+ return this.drawState.drawControls;
1052
+ }
1053
+ set drawControls(dc) {
1054
+ this.drawState.drawControls = dc;
1055
+ }
1056
+ get activeDrawingLayer() {
1057
+ return this.drawState.activeDrawingLayer;
1058
+ }
1059
+ set activeDrawingLayer(value) {
1060
+ this.drawState.activeDrawingLayer = value;
1061
+ }
1062
+ addLayersID(layerID) {
1063
+ this.layersID.push(layerID);
1064
+ }
1065
+ addDrawControls(dc) {
1066
+ this.drawControls = dc;
1067
+ }
1036
1068
  };
1037
1069
  DrawingToolComponent.ɵfac = function DrawingToolComponent_Factory(t) { return new (t || DrawingToolComponent)(i0.ɵɵdirectiveInject(DrawState), i0.ɵɵdirectiveInject(MapState)); };
1038
- DrawingToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawingToolComponent, selectors: [["igo-drawing-tool"]], decls: 1, vars: 2, consts: [[3, "store", "map"]], template: function DrawingToolComponent_Template(rf, ctx) {
1070
+ DrawingToolComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawingToolComponent, selectors: [["igo-drawing-tool"]], decls: 1, vars: 4, consts: [[3, "stores", "map", "activeDrawingLayer", "drawControls", "layersIDEvent", "drawControlsEvent", "activeLayerChange"]], template: function DrawingToolComponent_Template(rf, ctx) {
1039
1071
  if (rf & 1) {
1040
- i0.ɵɵelement(0, "igo-draw", 0);
1072
+ i0.ɵɵelementStart(0, "igo-draw", 0);
1073
+ i0.ɵɵlistener("layersIDEvent", function DrawingToolComponent_Template_igo_draw_layersIDEvent_0_listener($event) { return ctx.addLayersID($event); })("drawControlsEvent", function DrawingToolComponent_Template_igo_draw_drawControlsEvent_0_listener($event) { return ctx.addDrawControls($event); })("activeLayerChange", function DrawingToolComponent_Template_igo_draw_activeLayerChange_0_listener($event) { return ctx.activeDrawingLayer = $event; });
1074
+ i0.ɵɵelementEnd();
1041
1075
  }
1042
1076
  if (rf & 2) {
1043
- i0.ɵɵproperty("store", ctx.store)("map", ctx.map);
1077
+ i0.ɵɵproperty("stores", ctx.stores)("map", ctx.map)("activeDrawingLayer", ctx.activeDrawingLayer)("drawControls", ctx.drawControls);
1044
1078
  }
1045
1079
  }, dependencies: [i1$1.DrawComponent], encapsulation: 2, changeDetection: 0 });
1046
1080
  DrawingToolComponent = __decorate([
@@ -1053,7 +1087,7 @@ DrawingToolComponent = __decorate([
1053
1087
  (function () {
1054
1088
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawingToolComponent, [{
1055
1089
  type: Component,
1056
- args: [{ selector: 'igo-drawing-tool', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-draw [store]=\"store\" [map]=\"map\"></igo-draw>\r\n" }]
1090
+ args: [{ selector: 'igo-drawing-tool', changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-draw\r\n [stores]=\"stores\"\r\n [map]=\"map\"\r\n (layersIDEvent)=\"addLayersID($event)\"\r\n [activeDrawingLayer]=\"activeDrawingLayer\"\r\n [drawControls]=\"drawControls\"\r\n (drawControlsEvent)=\"addDrawControls($event)\"\r\n (activeLayerChange)=\"activeDrawingLayer = $event\">\r\n</igo-draw>\r\n" }]
1057
1091
  }], function () { return [{ type: DrawState }, { type: MapState }]; }, null);
1058
1092
  })();
1059
1093