@artstesh/maps 1.1.25 → 1.1.27

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.
Files changed (71) hide show
  1. package/dist/bundles/maps-components-src-map.umd.js +591 -14
  2. package/dist/bundles/maps-components-src-map.umd.js.map +1 -1
  3. package/dist/bundles/maps-components.umd.js +591 -14
  4. package/dist/bundles/maps-components.umd.js.map +1 -1
  5. package/dist/esm2015/map/map-plate/layers/image-layer/image-layer-factory.js +26 -0
  6. package/dist/esm2015/map/map-plate/layers/image-layer/image-layer.component.js +54 -0
  7. package/dist/esm2015/map/map-plate/layers/image-layer/image-layer.settings.js +136 -0
  8. package/dist/esm2015/map/map-plate/layers/index.js +5 -1
  9. package/dist/esm2015/map/map-plate/layers/raster-tile/raster-tile-layer.component.js +54 -0
  10. package/dist/esm2015/map/map-plate/layers/raster-tile/raster-tile-layer.factory.js +74 -0
  11. package/dist/esm2015/map/map-plate/layers/raster-tile/raster-tile-layer.settings.js +151 -0
  12. package/dist/esm2015/map/map.module.js +13 -3
  13. package/dist/esm2015/map/messages/commands/add-image-layer.command.js +9 -0
  14. package/dist/esm2015/map/messages/commands/add-raster-tile-command.js +9 -0
  15. package/dist/esm2015/map/messages/commands/remove-image-layer.command.js +9 -0
  16. package/dist/esm2015/map/messages/commands/remove-raster-tile.command.js +9 -0
  17. package/dist/esm2015/map/ol-proxy.js +3 -0
  18. package/dist/esm2015/map/public-api.js +2 -2
  19. package/dist/esm2015/map/services/map-management.service.js +32 -8
  20. package/dist/esm2015/map/services/message-registrator.service.js +9 -1
  21. package/dist/esm2015/src/map/map-plate/layers/image-layer/image-layer-factory.js +26 -0
  22. package/dist/esm2015/src/map/map-plate/layers/image-layer/image-layer.component.js +54 -0
  23. package/dist/esm2015/src/map/map-plate/layers/image-layer/image-layer.settings.js +136 -0
  24. package/dist/esm2015/src/map/map-plate/layers/index.js +5 -1
  25. package/dist/esm2015/src/map/map-plate/layers/raster-tile/raster-tile-layer.component.js +54 -0
  26. package/dist/esm2015/src/map/map-plate/layers/raster-tile/raster-tile-layer.factory.js +74 -0
  27. package/dist/esm2015/src/map/map-plate/layers/raster-tile/raster-tile-layer.settings.js +151 -0
  28. package/dist/esm2015/src/map/map.module.js +13 -3
  29. package/dist/esm2015/src/map/messages/commands/add-image-layer.command.js +9 -0
  30. package/dist/esm2015/src/map/messages/commands/add-raster-tile-command.js +9 -0
  31. package/dist/esm2015/src/map/messages/commands/remove-image-layer.command.js +9 -0
  32. package/dist/esm2015/src/map/messages/commands/remove-raster-tile.command.js +9 -0
  33. package/dist/esm2015/src/map/ol-proxy.js +3 -0
  34. package/dist/esm2015/src/map/public-api.js +2 -2
  35. package/dist/esm2015/src/map/services/map-management.service.js +32 -8
  36. package/dist/esm2015/src/map/services/message-registrator.service.js +9 -1
  37. package/dist/fesm2015/maps-components-src-map.js +542 -10
  38. package/dist/fesm2015/maps-components-src-map.js.map +1 -1
  39. package/dist/fesm2015/maps-components.js +542 -10
  40. package/dist/fesm2015/maps-components.js.map +1 -1
  41. package/dist/map/map-plate/layers/image-layer/image-layer-factory.d.ts +9 -0
  42. package/dist/map/map-plate/layers/image-layer/image-layer.component.d.ts +22 -0
  43. package/dist/map/map-plate/layers/image-layer/image-layer.settings.d.ts +97 -0
  44. package/dist/map/map-plate/layers/index.d.ts +4 -0
  45. package/dist/map/map-plate/layers/raster-tile/raster-tile-layer.component.d.ts +21 -0
  46. package/dist/map/map-plate/layers/raster-tile/raster-tile-layer.factory.d.ts +12 -0
  47. package/dist/map/map-plate/layers/raster-tile/raster-tile-layer.settings.d.ts +108 -0
  48. package/dist/map/map.module.d.ts +4 -2
  49. package/dist/map/messages/commands/add-image-layer.command.d.ts +8 -0
  50. package/dist/map/messages/commands/add-raster-tile-command.d.ts +8 -0
  51. package/dist/map/messages/commands/remove-image-layer.command.d.ts +8 -0
  52. package/dist/map/messages/commands/remove-raster-tile.command.d.ts +8 -0
  53. package/dist/map/ol-proxy.d.ts +3 -0
  54. package/dist/map/public-api.d.ts +1 -1
  55. package/dist/map/services/map-management.service.d.ts +1 -1
  56. package/dist/src/map/map-plate/layers/image-layer/image-layer-factory.d.ts +9 -0
  57. package/dist/src/map/map-plate/layers/image-layer/image-layer.component.d.ts +22 -0
  58. package/dist/src/map/map-plate/layers/image-layer/image-layer.settings.d.ts +97 -0
  59. package/dist/src/map/map-plate/layers/index.d.ts +4 -0
  60. package/dist/src/map/map-plate/layers/raster-tile/raster-tile-layer.component.d.ts +21 -0
  61. package/dist/src/map/map-plate/layers/raster-tile/raster-tile-layer.factory.d.ts +12 -0
  62. package/dist/src/map/map-plate/layers/raster-tile/raster-tile-layer.settings.d.ts +108 -0
  63. package/dist/src/map/map.module.d.ts +4 -2
  64. package/dist/src/map/messages/commands/add-image-layer.command.d.ts +8 -0
  65. package/dist/src/map/messages/commands/add-raster-tile-command.d.ts +8 -0
  66. package/dist/src/map/messages/commands/remove-image-layer.command.d.ts +8 -0
  67. package/dist/src/map/messages/commands/remove-raster-tile.command.d.ts +8 -0
  68. package/dist/src/map/ol-proxy.d.ts +3 -0
  69. package/dist/src/map/public-api.d.ts +1 -1
  70. package/dist/src/map/services/map-management.service.d.ts +1 -1
  71. package/package.json +2 -2
@@ -0,0 +1,26 @@
1
+ import { Injectable } from '@angular/core';
2
+ import Static from 'ol/source/ImageStatic';
3
+ import ImageLayer from 'ol/layer/Image';
4
+ import { get } from 'ol/proj';
5
+ import * as i0 from "@angular/core";
6
+ export class ImageLayerFactory {
7
+ build(settings) {
8
+ const source = new Static({
9
+ url: settings.url,
10
+ interpolate: settings.interpolate,
11
+ crossOrigin: 'Anonymous',
12
+ projection: get(settings.projection),
13
+ imageExtent: settings.extent,
14
+ });
15
+ return new ImageLayer({ source });
16
+ }
17
+ }
18
+ ImageLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ImageLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
+ ImageLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ImageLayerFactory, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ImageLayerFactory, decorators: [{
21
+ type: Injectable,
22
+ args: [{
23
+ providedIn: 'root',
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtbGF5ZXItZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21hcC1wbGF0ZS9sYXllcnMvaW1hZ2UtbGF5ZXIvaW1hZ2UtbGF5ZXItZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sTUFBTSxNQUFNLHVCQUF1QixDQUFDO0FBRTNDLE9BQU8sVUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxTQUFTLENBQUM7O0FBSzFDLE1BQU0sT0FBTyxpQkFBaUI7SUFDckIsS0FBSyxDQUFDLFFBQTRCO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDO1lBQ3hCLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRztZQUNqQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7WUFDakMsV0FBVyxFQUFFLFdBQVc7WUFDeEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFFO1lBQ3JDLFdBQVcsRUFBRSxRQUFRLENBQUMsTUFBTTtTQUM3QixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDOzsrR0FWVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgU3RhdGljIGZyb20gJ29sL3NvdXJjZS9JbWFnZVN0YXRpYyc7XG5pbXBvcnQgeyBJbWFnZUxheWVyU2V0dGluZ3MgfSBmcm9tICcuL2ltYWdlLWxheWVyLnNldHRpbmdzJztcbmltcG9ydCBJbWFnZUxheWVyIGZyb20gJ29sL2xheWVyL0ltYWdlJztcbmltcG9ydCB7IGdldCwgUHJvamVjdGlvbiB9IGZyb20gJ29sL3Byb2onO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VMYXllckZhY3Rvcnkge1xuICBwdWJsaWMgYnVpbGQoc2V0dGluZ3M6IEltYWdlTGF5ZXJTZXR0aW5ncyk6IEltYWdlTGF5ZXI8U3RhdGljPiB7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFN0YXRpYyh7XG4gICAgICB1cmw6IHNldHRpbmdzLnVybCxcbiAgICAgIGludGVycG9sYXRlOiBzZXR0aW5ncy5pbnRlcnBvbGF0ZSxcbiAgICAgIGNyb3NzT3JpZ2luOiAnQW5vbnltb3VzJyxcbiAgICAgIHByb2plY3Rpb246IGdldChzZXR0aW5ncy5wcm9qZWN0aW9uKSEsXG4gICAgICBpbWFnZUV4dGVudDogc2V0dGluZ3MuZXh0ZW50LFxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgSW1hZ2VMYXllcih7IHNvdXJjZSB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,54 @@
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 { ImageLayerSettings } from './image-layer.settings';
6
+ import { AddImageLayerCommand } from '../../../messages/commands/add-image-layer.command';
7
+ import { RemoveImageLayerCommand } from '../../../messages/commands/remove-image-layer.command';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../services/map-postboy.service";
10
+ import * as i2 from "./image-layer-factory";
11
+ export class ImageLayerComponent extends DestructibleComponent {
12
+ constructor(postboy, factory) {
13
+ super();
14
+ this.postboy = postboy;
15
+ this.factory = factory;
16
+ this._settings = new ImageLayerSettings();
17
+ this.onDestroy = () => this.removeLayer();
18
+ }
19
+ set settings(value) {
20
+ if (!value || this._settings.isSame(value))
21
+ return;
22
+ this._settings = value;
23
+ this.initLayer();
24
+ }
25
+ ngOnInit() {
26
+ this.postboy
27
+ .sub(MapRenderedEvent)
28
+ .pipe(filter((m) => !!m), first())
29
+ .subscribe((m) => this.initLayer());
30
+ }
31
+ initLayer() {
32
+ this.removeLayer();
33
+ this.layer = this.factory.build(this._settings);
34
+ this.postboy.fire(new AddImageLayerCommand(this.layer));
35
+ }
36
+ removeLayer() {
37
+ if (this.layer)
38
+ this.postboy.fire(new RemoveImageLayerCommand(this.layer));
39
+ }
40
+ }
41
+ ImageLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ImageLayerComponent, deps: [{ token: i1.MapPostboyService }, { token: i2.ImageLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
42
+ ImageLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ImageLayerComponent, selector: "art-image-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ImageLayerComponent, decorators: [{
44
+ type: Component,
45
+ args: [{
46
+ selector: 'art-image-layer',
47
+ template: '',
48
+ styleUrls: [],
49
+ changeDetection: ChangeDetectionStrategy.OnPush,
50
+ }]
51
+ }], ctorParameters: function () { return [{ type: i1.MapPostboyService }, { type: i2.ImageLayerFactory }]; }, propDecorators: { settings: [{
52
+ type: Input
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2xheWVycy9pbWFnZS1sYXllci9pbWFnZS1sYXllci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFNL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU0vQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7OztBQVFoRyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEscUJBQXFCO0lBRzVELFlBQW9CLE9BQTBCLEVBQVUsT0FBMEI7UUFDaEYsS0FBSyxFQUFFLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBSWxGLGNBQVMsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBa0J6RCxjQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBcEJyQyxDQUFDO0lBSUQsSUFBYSxRQUFRLENBQUMsS0FBcUM7UUFDekQsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPO2FBQ1QsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2FBQ3JCLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEIsS0FBSyxFQUFFLENBQ1I7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFJTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQzs7aUhBbkNVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLGdIQUpwQixFQUFFOzRGQUlELG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUUsRUFBRTtvQkFDWixTQUFTLEVBQUUsRUFBRTtvQkFDYixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7d0lBVWMsUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3RydWN0aWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kZXN0cnVjdGlibGUuY29tcG9uZW50JztcbmltcG9ydCBUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVGlsZSc7XG5pbXBvcnQgeyBYWVogfSBmcm9tICdvbC9zb3VyY2UnO1xuaW1wb3J0IHsgTWFwUG9zdGJveVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYXAtcG9zdGJveS5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbGVMYXllckZhY3RvcnkgfSBmcm9tICcuLi90aWxlLWxheWVyL3RpbGUtbGF5ZXIuZmFjdG9yeSc7XG5pbXBvcnQgeyBUaWxlTGF5ZXJTZXR0aW5ncyB9IGZyb20gJy4uL3RpbGUtbGF5ZXIvdGlsZS1sYXllci5zZXR0aW5ncyc7XG5pbXBvcnQgeyBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFkZFRpbGVDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMvY29tbWFuZHMvYWRkLXRpbGUuY29tbWFuZCc7XG5pbXBvcnQgeyBSZW1vdmVUaWxlQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL3JlbW92ZS10aWxlLmNvbW1hbmQnO1xuaW1wb3J0IHsgSW1hZ2VMYXllckZhY3RvcnkgfSBmcm9tICcuL2ltYWdlLWxheWVyLWZhY3RvcnknO1xuaW1wb3J0IEltYWdlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvSW1hZ2UnO1xuaW1wb3J0IFN0YXRpYyBmcm9tICdvbC9zb3VyY2UvSW1hZ2VTdGF0aWMnO1xuaW1wb3J0IHsgSW1hZ2VMYXllclNldHRpbmdzIH0gZnJvbSAnLi9pbWFnZS1sYXllci5zZXR0aW5ncyc7XG5pbXBvcnQgeyBBZGRJbWFnZUxheWVyQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1pbWFnZS1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZUltYWdlTGF5ZXJDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLWltYWdlLWxheWVyLmNvbW1hbmQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcnQtaW1hZ2UtbGF5ZXInLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZUxheWVyQ29tcG9uZW50IGV4dGVuZHMgRGVzdHJ1Y3RpYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGxheWVyPzogSW1hZ2VMYXllcjxTdGF0aWM+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9zdGJveTogTWFwUG9zdGJveVNlcnZpY2UsIHByaXZhdGUgZmFjdG9yeTogSW1hZ2VMYXllckZhY3RvcnkpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgX3NldHRpbmdzOiBJbWFnZUxheWVyU2V0dGluZ3MgPSBuZXcgSW1hZ2VMYXllclNldHRpbmdzKCk7XG5cbiAgQElucHV0KCkgc2V0IHNldHRpbmdzKHZhbHVlOiBJbWFnZUxheWVyU2V0dGluZ3MgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbHVlIHx8IHRoaXMuX3NldHRpbmdzLmlzU2FtZSh2YWx1ZSkpIHJldHVybjtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdExheWVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBvc3Rib3lcbiAgICAgIC5zdWIoTWFwUmVuZGVyZWRFdmVudClcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKG0pID0+ICEhbSksXG4gICAgICAgIGZpcnN0KCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChtKSA9PiB0aGlzLmluaXRMYXllcigpKTtcbiAgfVxuXG4gIG9uRGVzdHJveSA9ICgpID0+IHRoaXMucmVtb3ZlTGF5ZXIoKTtcblxuICBwcml2YXRlIGluaXRMYXllcigpIHtcbiAgICB0aGlzLnJlbW92ZUxheWVyKCk7XG4gICAgdGhpcy5sYXllciA9IHRoaXMuZmFjdG9yeS5idWlsZCh0aGlzLl9zZXR0aW5ncyk7XG4gICAgdGhpcy5wb3N0Ym95LmZpcmUobmV3IEFkZEltYWdlTGF5ZXJDb21tYW5kKHRoaXMubGF5ZXIpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTGF5ZXIoKSB7XG4gICAgaWYgKHRoaXMubGF5ZXIpIHRoaXMucG9zdGJveS5maXJlKG5ldyBSZW1vdmVJbWFnZUxheWVyQ29tbWFuZCh0aGlzLmxheWVyKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,136 @@
1
+ export class ImageLayerSettings {
2
+ constructor() {
3
+ /**
4
+ * Represents the tiles URL.
5
+ * @typedef {string} url
6
+ *
7
+ * @example
8
+ * 'https://example.ex/{z}/{x}/{y}.png'
9
+ */
10
+ this.url = '';
11
+ /**
12
+ * Use interpolated values when resampling.
13
+ * By default, linear interpolation is used when resampling.
14
+ * Set to false to use the nearest neighbor instead.
15
+ */
16
+ this.interpolate = undefined;
17
+ /**
18
+ * The projection of the coordinate system.
19
+ *
20
+ * @type {string}
21
+ * @default 'EPSG:3857'
22
+ */
23
+ this.projection = 'EPSG:3857';
24
+ this.extent = [0, 0, 0, 0];
25
+ /**
26
+ * Additional headers that should be added to each tile request
27
+ *
28
+ * @type {Record<string, string>}
29
+ * @default An empty array
30
+ */
31
+ this.requestHeaders = null;
32
+ }
33
+ /**
34
+ * Creates a copy of the given tile layer settings.
35
+ *
36
+ * @param {ImageLayerSettings} model - The tile layer settings to be copied.
37
+ * @return {ImageLayerSettings} - A new instance of ImageLayerSettings with the same properties as the model.
38
+ */
39
+ static copy(model) {
40
+ const result = new ImageLayerSettings();
41
+ result.interpolate = model.interpolate;
42
+ result.projection = model.projection;
43
+ result.extent = model.extent;
44
+ result.url = model.url;
45
+ result.requestHeaders = model.requestHeaders;
46
+ return result;
47
+ }
48
+ /**
49
+ * Sets the URL of the ImageLayerSettings object.
50
+ *
51
+ * @param {string} url - The URL to be set.
52
+ * @return {ImageLayerSettings} - The updated ImageLayerSettings object.
53
+ */
54
+ setUrl(url) {
55
+ return ImageLayerSettings.copy(Object.assign(Object.assign({}, this), { url }));
56
+ }
57
+ /**
58
+ * Sets the interpolation state for the image layer settings.
59
+ *
60
+ * @param {boolean} [interpolate] - Use interpolated values when resampling.
61
+ * By default, linear interpolation is used when resampling.
62
+ * Set to false to use the nearest neighbor instead.
63
+ * @return {ImageLayerSettings} A new instance of ImageLayerSettings with the updated interpolation setting.
64
+ */
65
+ setInterpolate(interpolate) {
66
+ return ImageLayerSettings.copy(Object.assign(Object.assign({}, this), { interpolate }));
67
+ }
68
+ setExtent(extent) {
69
+ return ImageLayerSettings.copy(Object.assign(Object.assign({}, this), { extent }));
70
+ }
71
+ /**
72
+ * Sets the requestHeaders of the ImageLayerSettings object.
73
+ *
74
+ * @param {Record<string, string>} requestHeaders - The headers which should be provided.
75
+ * @return {ImageLayerSettings} - The updated ImageLayerSettings object.
76
+ */
77
+ setRequestHeaders(requestHeaders) {
78
+ return ImageLayerSettings.copy(Object.assign(Object.assign({}, this), { requestHeaders }));
79
+ }
80
+ /**
81
+ * Sets the maximum zoom level for the tile layer.
82
+ *
83
+ * @param {number} maxZoom - The maximum zoom level.
84
+ * @returns {ImageLayerSettings} - The updated tile layer settings object.
85
+ */
86
+ setMaxZoom(maxZoom) {
87
+ return ImageLayerSettings.copy(Object.assign(Object.assign({}, this), { maxZoom }));
88
+ }
89
+ /**
90
+ * Sets the minimum zoom level for the Tile Layer.
91
+ *
92
+ * @param {number} minZoom - The minimum zoom level to be set.
93
+ * @return {ImageLayerSettings} The modified ImageLayerSettings object with the updated minimum zoom level.
94
+ */
95
+ setMinZoom(minZoom) {
96
+ return ImageLayerSettings.copy(Object.assign(Object.assign({}, this), { minZoom }));
97
+ }
98
+ /**
99
+ * Sets the opacity of the ImageLayerSettings.
100
+ *
101
+ * @param {number} opacity - The opacity value to set. Must be a number between 0 and 1.
102
+ * @return {ImageLayerSettings} - A new instance of ImageLayerSettings with the opacity set.
103
+ */
104
+ setOpacity(opacity) {
105
+ return ImageLayerSettings.copy(Object.assign(Object.assign({}, this), { opacity }));
106
+ }
107
+ /**
108
+ * Sets the projection for the tile layer settings.
109
+ *
110
+ * @param {string} projection - The desired projection for the tile layer settings.
111
+ * @return {ImageLayerSettings} - The updated tile layer settings with the new projection.
112
+ */
113
+ setProjection(projection) {
114
+ return ImageLayerSettings.copy(Object.assign(Object.assign({}, this), { projection }));
115
+ }
116
+ /**
117
+ * Checks if the current instance of ImageLayerSettings is equal to the given model.
118
+ * @param {ImageLayerSettings} model - The model to compare against.
119
+ * @return {boolean} - True if all properties of the current instance matches the properties of the model;
120
+ * otherwise, false.
121
+ */
122
+ isSame(model) {
123
+ if (this.url !== model.url)
124
+ return false;
125
+ if (this.projection !== model.projection)
126
+ return false;
127
+ if (this.extent !== model.extent)
128
+ return false;
129
+ if (this.interpolate !== model.interpolate)
130
+ return false;
131
+ if (this.requestHeaders !== model.requestHeaders)
132
+ return false;
133
+ return true;
134
+ }
135
+ }
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtbGF5ZXIuc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvbGF5ZXJzL2ltYWdlLWxheWVyL2ltYWdlLWxheWVyLnNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDRTs7Ozs7O1dBTUc7UUFDSCxRQUFHLEdBQVcsRUFBRSxDQUFDO1FBQ2pCOzs7O1dBSUc7UUFDSCxnQkFBVyxHQUFhLFNBQVMsQ0FBQztRQUNsQzs7Ozs7V0FLRztRQUNILGVBQVUsR0FBVyxXQUFXLENBQUM7UUFDakMsV0FBTSxHQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEM7Ozs7O1dBS0c7UUFDSCxtQkFBYyxHQUFrQyxJQUFJLENBQUM7SUEyR3ZELENBQUM7SUExR0M7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQXlCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN4QyxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDdkMsTUFBTSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUM3QixNQUFNLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdkIsTUFBTSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzdDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxHQUFXO1FBQ2hCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxpQ0FBTSxJQUFJLEtBQUUsR0FBRyxJQUFHLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxjQUFjLENBQUMsV0FBcUI7UUFDbEMsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLGlDQUFNLElBQUksS0FBRSxXQUFXLElBQUcsQ0FBQztJQUMzRCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWdCO1FBQ3hCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxpQ0FBTSxJQUFJLEtBQUUsTUFBTSxJQUFHLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUMsY0FBc0M7UUFDdEQsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLGlDQUFNLElBQUksS0FBRSxjQUFjLElBQUcsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixPQUFPLGtCQUFrQixDQUFDLElBQUksaUNBQU0sSUFBSSxLQUFFLE9BQU8sSUFBRyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxPQUFlO1FBQ3hCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxpQ0FBTSxJQUFJLEtBQUUsT0FBTyxJQUFHLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWU7UUFDeEIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLGlDQUFNLElBQUksS0FBRSxPQUFPLElBQUcsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsVUFBa0I7UUFDOUIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLGlDQUFNLElBQUksS0FBRSxVQUFVLElBQUcsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsS0FBeUI7UUFDckMsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxHQUFHO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDekMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxVQUFVO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FBQyxXQUFXO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLEtBQUssQ0FBQyxjQUFjO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSW1hZ2VMYXllclNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHRpbGVzIFVSTC5cbiAgICogQHR5cGVkZWYge3N0cmluZ30gdXJsXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICdodHRwczovL2V4YW1wbGUuZXgve3p9L3t4fS97eX0ucG5nJ1xuICAgKi9cbiAgdXJsOiBzdHJpbmcgPSAnJztcbiAgLyoqXG4gICAqIFVzZSBpbnRlcnBvbGF0ZWQgdmFsdWVzIHdoZW4gcmVzYW1wbGluZy5cbiAgICogQnkgZGVmYXVsdCwgbGluZWFyIGludGVycG9sYXRpb24gaXMgdXNlZCB3aGVuIHJlc2FtcGxpbmcuXG4gICAqIFNldCB0byBmYWxzZSB0byB1c2UgdGhlIG5lYXJlc3QgbmVpZ2hib3IgaW5zdGVhZC5cbiAgICovXG4gIGludGVycG9sYXRlPzogYm9vbGVhbiA9IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0aW9uIG9mIHRoZSBjb29yZGluYXRlIHN5c3RlbS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJ0VQU0c6Mzg1NydcbiAgICovXG4gIHByb2plY3Rpb246IHN0cmluZyA9ICdFUFNHOjM4NTcnO1xuICBleHRlbnQ6IG51bWJlcltdID0gWzAsIDAsIDAsIDBdO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBoZWFkZXJzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIGVhY2ggdGlsZSByZXF1ZXN0XG4gICAqXG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKiBAZGVmYXVsdCBBbiBlbXB0eSBhcnJheVxuICAgKi9cbiAgcmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBudWxsID0gbnVsbDtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoZSBnaXZlbiB0aWxlIGxheWVyIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge0ltYWdlTGF5ZXJTZXR0aW5nc30gbW9kZWwgLSBUaGUgdGlsZSBsYXllciBzZXR0aW5ncyB0byBiZSBjb3BpZWQuXG4gICAqIEByZXR1cm4ge0ltYWdlTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBpbnN0YW5jZSBvZiBJbWFnZUxheWVyU2V0dGluZ3Mgd2l0aCB0aGUgc2FtZSBwcm9wZXJ0aWVzIGFzIHRoZSBtb2RlbC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29weShtb2RlbDogSW1hZ2VMYXllclNldHRpbmdzKTogSW1hZ2VMYXllclNldHRpbmdzIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgSW1hZ2VMYXllclNldHRpbmdzKCk7XG4gICAgcmVzdWx0LmludGVycG9sYXRlID0gbW9kZWwuaW50ZXJwb2xhdGU7XG4gICAgcmVzdWx0LnByb2plY3Rpb24gPSBtb2RlbC5wcm9qZWN0aW9uO1xuICAgIHJlc3VsdC5leHRlbnQgPSBtb2RlbC5leHRlbnQ7XG4gICAgcmVzdWx0LnVybCA9IG1vZGVsLnVybDtcbiAgICByZXN1bHQucmVxdWVzdEhlYWRlcnMgPSBtb2RlbC5yZXF1ZXN0SGVhZGVycztcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIFVSTCBvZiB0aGUgSW1hZ2VMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtJbWFnZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgSW1hZ2VMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICovXG4gIHNldFVybCh1cmw6IHN0cmluZyk6IEltYWdlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIEltYWdlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgdXJsIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGludGVycG9sYXRpb24gc3RhdGUgZm9yIHRoZSBpbWFnZSBsYXllciBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBbaW50ZXJwb2xhdGVdIC0gVXNlIGludGVycG9sYXRlZCB2YWx1ZXMgd2hlbiByZXNhbXBsaW5nLlxuICAgKiBCeSBkZWZhdWx0LCBsaW5lYXIgaW50ZXJwb2xhdGlvbiBpcyB1c2VkIHdoZW4gcmVzYW1wbGluZy5cbiAgICogU2V0IHRvIGZhbHNlIHRvIHVzZSB0aGUgbmVhcmVzdCBuZWlnaGJvciBpbnN0ZWFkLlxuICAgKiBAcmV0dXJuIHtJbWFnZUxheWVyU2V0dGluZ3N9IEEgbmV3IGluc3RhbmNlIG9mIEltYWdlTGF5ZXJTZXR0aW5ncyB3aXRoIHRoZSB1cGRhdGVkIGludGVycG9sYXRpb24gc2V0dGluZy5cbiAgICovXG4gIHNldEludGVycG9sYXRlKGludGVycG9sYXRlPzogYm9vbGVhbik6IEltYWdlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIEltYWdlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgaW50ZXJwb2xhdGUgfSk7XG4gIH1cblxuICBzZXRFeHRlbnQoZXh0ZW50OiBudW1iZXJbXSk6IEltYWdlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIEltYWdlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgZXh0ZW50IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHJlcXVlc3RIZWFkZXJzIG9mIHRoZSBJbWFnZUxheWVyU2V0dGluZ3Mgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IHJlcXVlc3RIZWFkZXJzIC0gVGhlIGhlYWRlcnMgd2hpY2ggc2hvdWxkIGJlIHByb3ZpZGVkLlxuICAgKiBAcmV0dXJuIHtJbWFnZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgSW1hZ2VMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICovXG4gIHNldFJlcXVlc3RIZWFkZXJzKHJlcXVlc3RIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogSW1hZ2VMYXllclNldHRpbmdzIHtcbiAgICByZXR1cm4gSW1hZ2VMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCByZXF1ZXN0SGVhZGVycyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSB0aWxlIGxheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Wm9vbSAtIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwuXG4gICAqIEByZXR1cm5zIHtJbWFnZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgdGlsZSBsYXllciBzZXR0aW5ncyBvYmplY3QuXG4gICAqL1xuICBzZXRNYXhab29tKG1heFpvb206IG51bWJlcik6IEltYWdlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIEltYWdlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWF4Wm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSBUaWxlIExheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWluWm9vbSAtIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtJbWFnZUxheWVyU2V0dGluZ3N9IFRoZSBtb2RpZmllZCBJbWFnZUxheWVyU2V0dGluZ3Mgb2JqZWN0IHdpdGggdGhlIHVwZGF0ZWQgbWluaW11bSB6b29tIGxldmVsLlxuICAgKi9cbiAgc2V0TWluWm9vbShtaW5ab29tOiBudW1iZXIpOiBJbWFnZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBJbWFnZUxheWVyU2V0dGluZ3MuY29weSh7IC4uLnRoaXMsIG1pblpvb20gfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgb3BhY2l0eSBvZiB0aGUgSW1hZ2VMYXllclNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gb3BhY2l0eSAtIFRoZSBvcGFjaXR5IHZhbHVlIHRvIHNldC4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuXG4gICAqIEByZXR1cm4ge0ltYWdlTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBpbnN0YW5jZSBvZiBJbWFnZUxheWVyU2V0dGluZ3Mgd2l0aCB0aGUgb3BhY2l0eSBzZXQuXG4gICAqL1xuICBzZXRPcGFjaXR5KG9wYWNpdHk6IG51bWJlcik6IEltYWdlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIEltYWdlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgb3BhY2l0eSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb2plY3Rpb24gLSBUaGUgZGVzaXJlZCBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICogQHJldHVybiB7SW1hZ2VMYXllclNldHRpbmdzfSAtIFRoZSB1cGRhdGVkIHRpbGUgbGF5ZXIgc2V0dGluZ3Mgd2l0aCB0aGUgbmV3IHByb2plY3Rpb24uXG4gICAqL1xuICBzZXRQcm9qZWN0aW9uKHByb2plY3Rpb246IHN0cmluZyk6IEltYWdlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIEltYWdlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgcHJvamVjdGlvbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgSW1hZ2VMYXllclNldHRpbmdzIGlzIGVxdWFsIHRvIHRoZSBnaXZlbiBtb2RlbC5cbiAgICogQHBhcmFtIHtJbWFnZUxheWVyU2V0dGluZ3N9IG1vZGVsIC0gVGhlIG1vZGVsIHRvIGNvbXBhcmUgYWdhaW5zdC5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gLSBUcnVlIGlmIGFsbCBwcm9wZXJ0aWVzIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlIG1hdGNoZXMgdGhlIHByb3BlcnRpZXMgb2YgdGhlIG1vZGVsO1xuICAgKiAgICAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlLCBmYWxzZS5cbiAgICovXG4gIHB1YmxpYyBpc1NhbWUobW9kZWw6IEltYWdlTGF5ZXJTZXR0aW5ncyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnVybCAhPT0gbW9kZWwudXJsKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMucHJvamVjdGlvbiAhPT0gbW9kZWwucHJvamVjdGlvbikgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLmV4dGVudCAhPT0gbW9kZWwuZXh0ZW50KSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMuaW50ZXJwb2xhdGUgIT09IG1vZGVsLmludGVycG9sYXRlKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMucmVxdWVzdEhlYWRlcnMgIT09IG1vZGVsLnJlcXVlc3RIZWFkZXJzKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -5,4 +5,8 @@ export * from './feature-layer/feature-layer.settings';
5
5
  export * from './feature-layer/feature-layer.component';
6
6
  export * from './cluster-layer/cluster-layer.component';
7
7
  export * from './cluster-layer/cluster-layer.settings';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvbGF5ZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RpbGUtbGF5ZXIvdGlsZS1sYXllci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90aWxlLWxheWVyL3RpbGUtbGF5ZXIuc2V0dGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9vc20tdGlsZS1sYXllci9vc20tdGlsZS1sYXllci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLWxheWVyL2ZlYXR1cmUtbGF5ZXIuc2V0dGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLWxheWVyL2ZlYXR1cmUtbGF5ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2x1c3Rlci1sYXllci9jbHVzdGVyLWxheWVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NsdXN0ZXItbGF5ZXIvY2x1c3Rlci1sYXllci5zZXR0aW5ncyc7XG4iXX0=
8
+ export * from './image-layer/image-layer.component';
9
+ export * from './image-layer/image-layer.settings';
10
+ export * from './raster-tile/raster-tile-layer.component';
11
+ export * from './raster-tile/raster-tile-layer.settings';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvbGF5ZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGlsZS1sYXllci90aWxlLWxheWVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RpbGUtbGF5ZXIvdGlsZS1sYXllci5zZXR0aW5ncyc7XG5leHBvcnQgKiBmcm9tICcuL29zbS10aWxlLWxheWVyL29zbS10aWxlLWxheWVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtbGF5ZXIvZmVhdHVyZS1sYXllci5zZXR0aW5ncyc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtbGF5ZXIvZmVhdHVyZS1sYXllci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2x1c3Rlci1sYXllci9jbHVzdGVyLWxheWVyLnNldHRpbmdzJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtbGF5ZXIvaW1hZ2UtbGF5ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtbGF5ZXIvaW1hZ2UtbGF5ZXIuc2V0dGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9yYXN0ZXItdGlsZS9yYXN0ZXItdGlsZS1sYXllci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yYXN0ZXItdGlsZS9yYXN0ZXItdGlsZS1sYXllci5zZXR0aW5ncyc7XG4iXX0=
@@ -0,0 +1,54 @@
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 { RasterTileLayerSettings } from './raster-tile-layer.settings';
6
+ import { AddRasterTileCommand } from '../../../messages/commands/add-raster-tile-command';
7
+ import { RemoveRasterTileCommand } from '../../../messages/commands/remove-raster-tile.command';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../services/map-postboy.service";
10
+ import * as i2 from "./raster-tile-layer.factory";
11
+ export class RasterTileLayerComponent extends DestructibleComponent {
12
+ constructor(postboy, factory) {
13
+ super();
14
+ this.postboy = postboy;
15
+ this.factory = factory;
16
+ this._settings = new RasterTileLayerSettings();
17
+ this.onDestroy = () => this.removeLayer();
18
+ }
19
+ set settings(value) {
20
+ if (!value || this._settings.isSame(value))
21
+ return;
22
+ this._settings = value;
23
+ this.initLayer();
24
+ }
25
+ ngOnInit() {
26
+ this.postboy
27
+ .sub(MapRenderedEvent)
28
+ .pipe(filter((m) => !!m), first())
29
+ .subscribe((m) => this.initLayer());
30
+ }
31
+ initLayer() {
32
+ this.removeLayer();
33
+ this.layer = this.factory.build(this._settings);
34
+ this.postboy.fire(new AddRasterTileCommand(this.layer));
35
+ }
36
+ removeLayer() {
37
+ if (this.layer)
38
+ this.postboy.fire(new RemoveRasterTileCommand(this.layer));
39
+ }
40
+ }
41
+ RasterTileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RasterTileLayerComponent, deps: [{ token: i1.MapPostboyService }, { token: i2.RasterTileLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
42
+ RasterTileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RasterTileLayerComponent, selector: "art-raster-tile-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RasterTileLayerComponent, decorators: [{
44
+ type: Component,
45
+ args: [{
46
+ selector: 'art-raster-tile-layer',
47
+ template: '',
48
+ styleUrls: [],
49
+ changeDetection: ChangeDetectionStrategy.OnPush,
50
+ }]
51
+ }], ctorParameters: function () { return [{ type: i1.MapPostboyService }, { type: i2.RasterTileLayerFactory }]; }, propDecorators: { settings: [{
52
+ type: Input
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFzdGVyLXRpbGUtbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2xheWVycy9yYXN0ZXItdGlsZS9yYXN0ZXItdGlsZS1sYXllci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFNL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUsvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7OztBQVFoRyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEscUJBQXFCO0lBR2pFLFlBQW9CLE9BQTBCLEVBQVUsT0FBK0I7UUFDckYsS0FBSyxFQUFFLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBSXZGLGNBQVMsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBa0JuRSxjQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBcEJyQyxDQUFDO0lBSUQsSUFBYSxRQUFRLENBQUMsS0FBMEM7UUFDOUQsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPO2FBQ1QsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2FBQ3JCLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEIsS0FBSyxFQUFFLENBQ1I7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFJTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQzs7c0hBbkNVLHdCQUF3QjswR0FBeEIsd0JBQXdCLHNIQUp6QixFQUFFOzRGQUlELHdCQUF3QjtrQkFOcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixTQUFTLEVBQUUsRUFBRTtvQkFDYixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7NklBVWMsUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3RydWN0aWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kZXN0cnVjdGlibGUuY29tcG9uZW50JztcbmltcG9ydCBUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVGlsZSc7XG5pbXBvcnQgeyBSYXN0ZXIsIFhZWiB9IGZyb20gJ29sL3NvdXJjZSc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21hcC1wb3N0Ym95LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGlsZUxheWVyRmFjdG9yeSB9IGZyb20gJy4uL3RpbGUtbGF5ZXIvdGlsZS1sYXllci5mYWN0b3J5JztcbmltcG9ydCB7IFRpbGVMYXllclNldHRpbmdzIH0gZnJvbSAnLi4vdGlsZS1sYXllci90aWxlLWxheWVyLnNldHRpbmdzJztcbmltcG9ydCB7IE1hcFJlbmRlcmVkRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWRkVGlsZUNvbW1hbmQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlcy9jb21tYW5kcy9hZGQtdGlsZS5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZVRpbGVDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLXRpbGUuY29tbWFuZCc7XG5pbXBvcnQgSW1hZ2VMYXllciBmcm9tICdvbC9sYXllci9JbWFnZSc7XG5pbXBvcnQgeyBSYXN0ZXJUaWxlTGF5ZXJGYWN0b3J5IH0gZnJvbSAnLi9yYXN0ZXItdGlsZS1sYXllci5mYWN0b3J5JztcbmltcG9ydCB7IFJhc3RlclRpbGVMYXllclNldHRpbmdzIH0gZnJvbSAnLi9yYXN0ZXItdGlsZS1sYXllci5zZXR0aW5ncyc7XG5pbXBvcnQgeyBBZGRSYXN0ZXJUaWxlQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1yYXN0ZXItdGlsZS1jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZVJhc3RlclRpbGVDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLXJhc3Rlci10aWxlLmNvbW1hbmQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcnQtcmFzdGVyLXRpbGUtbGF5ZXInLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlVXJsczogW10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBSYXN0ZXJUaWxlTGF5ZXJDb21wb25lbnQgZXh0ZW5kcyBEZXN0cnVjdGlibGVDb21wb25lbnQge1xuICBwdWJsaWMgbGF5ZXI/OiBJbWFnZUxheWVyPFJhc3Rlcj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSwgcHJpdmF0ZSBmYWN0b3J5OiBSYXN0ZXJUaWxlTGF5ZXJGYWN0b3J5KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIF9zZXR0aW5nczogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MgPSBuZXcgUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MoKTtcblxuICBASW5wdXQoKSBzZXQgc2V0dGluZ3ModmFsdWU6IFJhc3RlclRpbGVMYXllclNldHRpbmdzIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB0aGlzLl9zZXR0aW5ncy5pc1NhbWUodmFsdWUpKSByZXR1cm47XG4gICAgdGhpcy5fc2V0dGluZ3MgPSB2YWx1ZTtcbiAgICB0aGlzLmluaXRMYXllcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wb3N0Ym95XG4gICAgICAuc3ViKE1hcFJlbmRlcmVkRXZlbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChtKSA9PiAhIW0pLFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobSkgPT4gdGhpcy5pbml0TGF5ZXIoKSk7XG4gIH1cblxuICBvbkRlc3Ryb3kgPSAoKSA9PiB0aGlzLnJlbW92ZUxheWVyKCk7XG5cbiAgcHJpdmF0ZSBpbml0TGF5ZXIoKSB7XG4gICAgdGhpcy5yZW1vdmVMYXllcigpO1xuICAgIHRoaXMubGF5ZXIgPSB0aGlzLmZhY3RvcnkuYnVpbGQodGhpcy5fc2V0dGluZ3MpO1xuICAgIHRoaXMucG9zdGJveS5maXJlKG5ldyBBZGRSYXN0ZXJUaWxlQ29tbWFuZCh0aGlzLmxheWVyKSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxheWVyKCkge1xuICAgIGlmICh0aGlzLmxheWVyKSB0aGlzLnBvc3Rib3kuZmlyZShuZXcgUmVtb3ZlUmFzdGVyVGlsZUNvbW1hbmQodGhpcy5sYXllcikpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { XYZ } from 'ol/source';
3
+ import { get } from 'ol/proj';
4
+ import ImageLayer from 'ol/layer/Image';
5
+ import RasterSource from 'ol/source/Raster';
6
+ import * as i0 from "@angular/core";
7
+ export class RasterTileLayerFactory {
8
+ build(settings) {
9
+ const source = new XYZ({
10
+ tileSize: 256,
11
+ maxZoom: settings.maxZoom || 14,
12
+ minZoom: settings.minZoom || 1,
13
+ projection: get(settings.projection),
14
+ tileUrlFunction: this.getTileFunc(settings),
15
+ crossOrigin: 'Anonymous',
16
+ tileLoadFunction: !!settings.requestHeaders
17
+ ? (tile, src) => this.tileLoader(tile, src, settings.requestHeaders)
18
+ : undefined,
19
+ });
20
+ const raster = new RasterSource({
21
+ sources: [source],
22
+ operationType: 'image',
23
+ operation: settings.operation,
24
+ });
25
+ return new ImageLayer({ source: raster, opacity: settings.opacity });
26
+ }
27
+ getTileFunc(settings) {
28
+ return (tileCoord) => {
29
+ const zoom = tileCoord[0];
30
+ const x = tileCoord[1];
31
+ const y = tileCoord[2];
32
+ const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);
33
+ const bound = 1 << zoom;
34
+ return settings.url
35
+ .replace('{x}', String((normalizedCoord === null || normalizedCoord === void 0 ? void 0 : normalizedCoord.x) || x))
36
+ .replace('{z}', String(zoom))
37
+ .replace('{y}', String(bound - ((normalizedCoord === null || normalizedCoord === void 0 ? void 0 : normalizedCoord.y) || y) - 1));
38
+ };
39
+ }
40
+ tileLoader(tile, src, headers) {
41
+ const client = new XMLHttpRequest();
42
+ client.open('GET', src);
43
+ client.responseType = 'arraybuffer';
44
+ Object.keys(headers).forEach((k) => client.setRequestHeader(k, headers[k]));
45
+ client.onload = function () {
46
+ if (this.response !== undefined) {
47
+ const arrayBufferView = new Uint8Array(this.response);
48
+ const blob = new Blob([arrayBufferView], { type: 'image/png' });
49
+ const urlCreator = window.URL || window.webkitURL;
50
+ tile.getImage().src = urlCreator.createObjectURL(blob);
51
+ }
52
+ };
53
+ client.send();
54
+ }
55
+ getNormalizedCoord(coord, zoom) {
56
+ const y = coord.y;
57
+ let x = coord.x;
58
+ const tileRange = 1 << zoom;
59
+ if (y < 0 || y >= tileRange)
60
+ return null;
61
+ if (x < 0 || x >= tileRange)
62
+ x = ((x % tileRange) + tileRange) % tileRange;
63
+ return { x: x, y: y };
64
+ }
65
+ }
66
+ RasterTileLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RasterTileLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
67
+ RasterTileLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RasterTileLayerFactory, providedIn: 'root' });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RasterTileLayerFactory, decorators: [{
69
+ type: Injectable,
70
+ args: [{
71
+ providedIn: 'root',
72
+ }]
73
+ }] });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFzdGVyLXRpbGUtbGF5ZXIuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21hcC1wbGF0ZS9sYXllcnMvcmFzdGVyLXRpbGUvcmFzdGVyLXRpbGUtbGF5ZXIuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBVSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUc5QixPQUFPLFVBQVUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLFlBQVksTUFBTSxrQkFBa0IsQ0FBQzs7QUFLNUMsTUFBTSxPQUFPLHNCQUFzQjtJQUMxQixLQUFLLENBQUMsUUFBaUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDckIsUUFBUSxFQUFFLEdBQUc7WUFDYixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQy9CLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTyxJQUFJLENBQUM7WUFDOUIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFFO1lBQ3JDLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztZQUMzQyxXQUFXLEVBQUUsV0FBVztZQUN4QixnQkFBZ0IsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWM7Z0JBQ3pDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsY0FBZSxDQUFDO2dCQUM3RSxDQUFDLENBQUMsU0FBUztTQUNkLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDO1lBQzlCLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNqQixhQUFhLEVBQUUsT0FBTztZQUN0QixTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTyxXQUFXLENBQUMsUUFBaUM7UUFDbkQsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDeEIsT0FBTyxRQUFRLENBQUMsR0FBRztpQkFDaEIsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUMvQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDNUIsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsQ0FBQyxLQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFVLEVBQUUsR0FBVyxFQUFFLE9BQStCO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7UUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRixNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFDL0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUssTUFBYyxDQUFDLFNBQVMsQ0FBQztnQkFDMUQsSUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pFO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUErQixFQUFFLElBQVk7UUFDdEUsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTO1lBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQzNFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QixDQUFDOztvSEExRFUsc0JBQXNCO3dIQUF0QixzQkFBc0IsY0FGckIsTUFBTTs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmFzdGVyLCBYWVogfSBmcm9tICdvbC9zb3VyY2UnO1xuaW1wb3J0IHsgVGlsZUNvb3JkIH0gZnJvbSAnb2wvdGlsZWNvb3JkJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IHsgVGlsZSB9IGZyb20gJ29sJztcbmltcG9ydCB7IFJhc3RlclRpbGVMYXllclNldHRpbmdzIH0gZnJvbSAnLi9yYXN0ZXItdGlsZS1sYXllci5zZXR0aW5ncyc7XG5pbXBvcnQgSW1hZ2VMYXllciBmcm9tICdvbC9sYXllci9JbWFnZSc7XG5pbXBvcnQgUmFzdGVyU291cmNlIGZyb20gJ29sL3NvdXJjZS9SYXN0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmFzdGVyVGlsZUxheWVyRmFjdG9yeSB7XG4gIHB1YmxpYyBidWlsZChzZXR0aW5nczogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MpOiBJbWFnZUxheWVyPFJhc3Rlcj4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBYWVooe1xuICAgICAgdGlsZVNpemU6IDI1NixcbiAgICAgIG1heFpvb206IHNldHRpbmdzLm1heFpvb20gfHwgMTQsXG4gICAgICBtaW5ab29tOiBzZXR0aW5ncy5taW5ab29tIHx8IDEsXG4gICAgICBwcm9qZWN0aW9uOiBnZXQoc2V0dGluZ3MucHJvamVjdGlvbikhLFxuICAgICAgdGlsZVVybEZ1bmN0aW9uOiB0aGlzLmdldFRpbGVGdW5jKHNldHRpbmdzKSxcbiAgICAgIGNyb3NzT3JpZ2luOiAnQW5vbnltb3VzJyxcbiAgICAgIHRpbGVMb2FkRnVuY3Rpb246ICEhc2V0dGluZ3MucmVxdWVzdEhlYWRlcnNcbiAgICAgICAgPyAodGlsZSwgc3JjOiBzdHJpbmcpID0+IHRoaXMudGlsZUxvYWRlcih0aWxlLCBzcmMsIHNldHRpbmdzLnJlcXVlc3RIZWFkZXJzISlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gICAgY29uc3QgcmFzdGVyID0gbmV3IFJhc3RlclNvdXJjZSh7XG4gICAgICBzb3VyY2VzOiBbc291cmNlXSxcbiAgICAgIG9wZXJhdGlvblR5cGU6ICdpbWFnZScsXG4gICAgICBvcGVyYXRpb246IHNldHRpbmdzLm9wZXJhdGlvbixcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IEltYWdlTGF5ZXIoeyBzb3VyY2U6IHJhc3Rlciwgb3BhY2l0eTogc2V0dGluZ3Mub3BhY2l0eSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGlsZUZ1bmMoc2V0dGluZ3M6IFJhc3RlclRpbGVMYXllclNldHRpbmdzKTogKHRpbGVDb29yZDogVGlsZUNvb3JkKSA9PiBzdHJpbmcge1xuICAgIHJldHVybiAodGlsZUNvb3JkKSA9PiB7XG4gICAgICBjb25zdCB6b29tID0gdGlsZUNvb3JkWzBdO1xuICAgICAgY29uc3QgeCA9IHRpbGVDb29yZFsxXTtcbiAgICAgIGNvbnN0IHkgPSB0aWxlQ29vcmRbMl07XG4gICAgICBjb25zdCBub3JtYWxpemVkQ29vcmQgPSB0aGlzLmdldE5vcm1hbGl6ZWRDb29yZCh7IHg6IHgsIHk6IHkgfSwgem9vbSk7XG4gICAgICBjb25zdCBib3VuZCA9IDEgPDwgem9vbTtcbiAgICAgIHJldHVybiBzZXR0aW5ncy51cmxcbiAgICAgICAgLnJlcGxhY2UoJ3t4fScsIFN0cmluZyhub3JtYWxpemVkQ29vcmQ/LnggfHwgeCkpXG4gICAgICAgIC5yZXBsYWNlKCd7en0nLCBTdHJpbmcoem9vbSkpXG4gICAgICAgIC5yZXBsYWNlKCd7eX0nLCBTdHJpbmcoYm91bmQgLSAobm9ybWFsaXplZENvb3JkPy55IHx8IHkpIC0gMSkpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRpbGVMb2FkZXIodGlsZTogVGlsZSwgc3JjOiBzdHJpbmcsIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICBjbGllbnQub3BlbignR0VUJywgc3JjKTtcbiAgICBjbGllbnQucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChrOiBzdHJpbmcpID0+IGNsaWVudC5zZXRSZXF1ZXN0SGVhZGVyKGssIGhlYWRlcnNba10pKTtcbiAgICBjbGllbnQub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHRoaXMucmVzcG9uc2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBhcnJheUJ1ZmZlclZpZXcgPSBuZXcgVWludDhBcnJheSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJheUJ1ZmZlclZpZXddLCB7IHR5cGU6ICdpbWFnZS9wbmcnIH0pO1xuICAgICAgICBjb25zdCB1cmxDcmVhdG9yID0gd2luZG93LlVSTCB8fCAod2luZG93IGFzIGFueSkud2Via2l0VVJMO1xuICAgICAgICAodGlsZSBhcyBhbnkpLmdldEltYWdlKCkuc3JjID0gdXJsQ3JlYXRvci5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICB9XG4gICAgfTtcbiAgICBjbGllbnQuc2VuZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb3JtYWxpemVkQ29vcmQoY29vcmQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSwgem9vbTogbnVtYmVyKSB7XG4gICAgY29uc3QgeSA9IGNvb3JkLnk7XG4gICAgbGV0IHggPSBjb29yZC54O1xuICAgIGNvbnN0IHRpbGVSYW5nZSA9IDEgPDwgem9vbTtcbiAgICBpZiAoeSA8IDAgfHwgeSA+PSB0aWxlUmFuZ2UpIHJldHVybiBudWxsO1xuICAgIGlmICh4IDwgMCB8fCB4ID49IHRpbGVSYW5nZSkgeCA9ICgoeCAlIHRpbGVSYW5nZSkgKyB0aWxlUmFuZ2UpICUgdGlsZVJhbmdlO1xuICAgIHJldHVybiB7IHg6IHgsIHk6IHkgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,151 @@
1
+ export class RasterTileLayerSettings {
2
+ constructor() {
3
+ /**
4
+ * The maximum zoom level for a map view.
5
+ *
6
+ * @type {number}
7
+ * @default 19
8
+ */
9
+ this.maxZoom = 19;
10
+ /**
11
+ * The minimum zoom level allowed.
12
+ *
13
+ * @type {number}
14
+ */
15
+ this.minZoom = 0;
16
+ /**
17
+ * The opacity of an element.
18
+ *
19
+ * @type {number}
20
+ * @default 0.6
21
+ */
22
+ this.opacity = 0.6;
23
+ /**
24
+ * Represents the tiles URL.
25
+ * @typedef {string} url
26
+ *
27
+ * @example
28
+ * 'https://example.ex/{z}/{x}/{y}.png'
29
+ */
30
+ this.url = '';
31
+ /**
32
+ * The projection of the coordinate system.
33
+ *
34
+ * @type {string}
35
+ * @default 'EPSG:3857'
36
+ */
37
+ this.projection = 'EPSG:3857';
38
+ /**
39
+ * Additional headers that should be added to each tile request
40
+ *
41
+ * @type {Record<string, string>}
42
+ * @default An empty array
43
+ */
44
+ this.requestHeaders = null;
45
+ this.operation = (d) => { var _a; return (_a = d[0]) !== null && _a !== void 0 ? _a : []; };
46
+ }
47
+ /**
48
+ * Creates a copy of the given tile layer settings.
49
+ *
50
+ * @param {RasterTileLayerSettings} model - The tile layer settings to be copied.
51
+ * @return {RasterTileLayerSettings} - A new instance of RasterTileLayerSettings with the same properties as the model.
52
+ */
53
+ static copy(model) {
54
+ const result = new RasterTileLayerSettings();
55
+ result.maxZoom = model.maxZoom;
56
+ result.minZoom = model.minZoom;
57
+ result.projection = model.projection;
58
+ result.opacity = model.opacity;
59
+ result.url = model.url;
60
+ result.requestHeaders = model.requestHeaders;
61
+ result.operation = model.operation;
62
+ return result;
63
+ }
64
+ /**
65
+ * Sets the URL of the RasterTileLayerSettings object.
66
+ *
67
+ * @param {string} url - The URL to be set.
68
+ * @return {RasterTileLayerSettings} - The updated RasterTileLayerSettings object.
69
+ */
70
+ setUrl(url) {
71
+ return RasterTileLayerSettings.copy(Object.assign(Object.assign({}, this), { url }));
72
+ }
73
+ /**
74
+ * Sets the operation to apply on raster tile data.
75
+ *
76
+ * @param {function} operation - A function that takes an input of either a two-dimensional array of numbers or an array of ImageData objects and returns either a one-dimensional array of numbers or an ImageData object.
77
+ * @return {RasterTileLayerSettings} A new instance of RasterTileLayerSettings with the updated operation.
78
+ */
79
+ setOperation(operation) {
80
+ return RasterTileLayerSettings.copy(Object.assign(Object.assign({}, this), { operation }));
81
+ }
82
+ /**
83
+ * Sets the requestHeaders of the RasterTileLayerSettings object.
84
+ *
85
+ * @param {Record<string, string>} requestHeaders - The headers which should be provided.
86
+ * @return {RasterTileLayerSettings} - The updated RasterTileLayerSettings object.
87
+ */
88
+ setRequestHeaders(requestHeaders) {
89
+ return RasterTileLayerSettings.copy(Object.assign(Object.assign({}, this), { requestHeaders }));
90
+ }
91
+ /**
92
+ * Sets the maximum zoom level for the tile layer.
93
+ *
94
+ * @param {number} maxZoom - The maximum zoom level.
95
+ * @returns {RasterTileLayerSettings} - The updated tile layer settings object.
96
+ */
97
+ setMaxZoom(maxZoom) {
98
+ return RasterTileLayerSettings.copy(Object.assign(Object.assign({}, this), { maxZoom }));
99
+ }
100
+ /**
101
+ * Sets the minimum zoom level for the Tile Layer.
102
+ *
103
+ * @param {number} minZoom - The minimum zoom level to be set.
104
+ * @return {RasterTileLayerSettings} The modified RasterTileLayerSettings object with the updated minimum zoom level.
105
+ */
106
+ setMinZoom(minZoom) {
107
+ return RasterTileLayerSettings.copy(Object.assign(Object.assign({}, this), { minZoom }));
108
+ }
109
+ /**
110
+ * Sets the opacity of the RasterTileLayerSettings.
111
+ *
112
+ * @param {number} opacity - The opacity value to set. Must be a number between 0 and 1.
113
+ * @return {RasterTileLayerSettings} - A new instance of RasterTileLayerSettings with the opacity set.
114
+ */
115
+ setOpacity(opacity) {
116
+ return RasterTileLayerSettings.copy(Object.assign(Object.assign({}, this), { opacity }));
117
+ }
118
+ /**
119
+ * Sets the projection for the tile layer settings.
120
+ *
121
+ * @param {string} projection - The desired projection for the tile layer settings.
122
+ * @return {RasterTileLayerSettings} - The updated tile layer settings with the new projection.
123
+ */
124
+ setProjection(projection) {
125
+ return RasterTileLayerSettings.copy(Object.assign(Object.assign({}, this), { projection }));
126
+ }
127
+ /**
128
+ * Checks if the current instance of RasterTileLayerSettings is equal to the given model.
129
+ * @param {RasterTileLayerSettings} model - The model to compare against.
130
+ * @return {boolean} - True if all properties of the current instance matches the properties of the model;
131
+ * otherwise, false.
132
+ */
133
+ isSame(model) {
134
+ if (this.maxZoom !== model.maxZoom)
135
+ return false;
136
+ if (this.minZoom !== model.minZoom)
137
+ return false;
138
+ if (this.url !== model.url)
139
+ return false;
140
+ if (this.projection !== model.projection)
141
+ return false;
142
+ if (this.opacity !== model.opacity)
143
+ return false;
144
+ if (this.requestHeaders !== model.requestHeaders)
145
+ return false;
146
+ if (this.operation !== model.operation)
147
+ return false;
148
+ return true;
149
+ }
150
+ }
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFzdGVyLXRpbGUtbGF5ZXIuc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvbGF5ZXJzL3Jhc3Rlci10aWxlL3Jhc3Rlci10aWxlLWxheWVyLnNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx1QkFBdUI7SUFBcEM7UUFDRTs7Ozs7V0FLRztRQUNILFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckI7Ozs7V0FJRztRQUNILFlBQU8sR0FBVyxDQUFDLENBQUM7UUFDcEI7Ozs7O1dBS0c7UUFDSCxZQUFPLEdBQVcsR0FBRyxDQUFDO1FBQ3RCOzs7Ozs7V0FNRztRQUNILFFBQUcsR0FBVyxFQUFFLENBQUM7UUFDakI7Ozs7O1dBS0c7UUFDSCxlQUFVLEdBQVcsV0FBVyxDQUFDO1FBQ2pDOzs7OztXQUtHO1FBQ0gsbUJBQWMsR0FBa0MsSUFBSSxDQUFDO1FBRXJELGNBQVMsR0FBNkQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxXQUFDLE9BQUEsTUFBQSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1DQUFJLEVBQUUsQ0FBQSxFQUFBLENBQUM7SUF5RzFGLENBQUM7SUF4R0M7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQThCO1FBQy9DLE1BQU0sTUFBTSxHQUFHLElBQUksdUJBQXVCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxNQUFNLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDbkMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEdBQVc7UUFDaEIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLGlDQUFNLElBQUksS0FBRSxHQUFHLElBQUcsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsU0FBbUU7UUFDOUUsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLGlDQUFNLElBQUksS0FBRSxTQUFTLElBQUcsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FBQyxjQUFzQztRQUN0RCxPQUFPLHVCQUF1QixDQUFDLElBQUksaUNBQU0sSUFBSSxLQUFFLGNBQWMsSUFBRyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxPQUFlO1FBQ3hCLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxpQ0FBTSxJQUFJLEtBQUUsT0FBTyxJQUFHLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWU7UUFDeEIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLGlDQUFNLElBQUksS0FBRSxPQUFPLElBQUcsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixPQUFPLHVCQUF1QixDQUFDLElBQUksaUNBQU0sSUFBSSxLQUFFLE9BQU8sSUFBRyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixPQUFPLHVCQUF1QixDQUFDLElBQUksaUNBQU0sSUFBSSxLQUFFLFVBQVUsSUFBRyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxLQUE4QjtRQUMxQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLEdBQUc7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN2RCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssS0FBSyxDQUFDLGNBQWM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMvRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLFNBQVM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB6b29tIGxldmVsIGZvciBhIG1hcCB2aWV3LlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAZGVmYXVsdCAxOVxuICAgKi9cbiAgbWF4Wm9vbTogbnVtYmVyID0gMTk7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSB6b29tIGxldmVsIGFsbG93ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqL1xuICBtaW5ab29tOiBudW1iZXIgPSAwO1xuICAvKipcbiAgICogVGhlIG9wYWNpdHkgb2YgYW4gZWxlbWVudC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGRlZmF1bHQgMC42XG4gICAqL1xuICBvcGFjaXR5OiBudW1iZXIgPSAwLjY7XG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSB0aWxlcyBVUkwuXG4gICAqIEB0eXBlZGVmIHtzdHJpbmd9IHVybFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAnaHR0cHM6Ly9leGFtcGxlLmV4L3t6fS97eH0ve3l9LnBuZydcbiAgICovXG4gIHVybDogc3RyaW5nID0gJyc7XG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdGlvbiBvZiB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0uXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICdFUFNHOjM4NTcnXG4gICAqL1xuICBwcm9qZWN0aW9uOiBzdHJpbmcgPSAnRVBTRzozODU3JztcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgaGVhZGVycyB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byBlYWNoIHRpbGUgcmVxdWVzdFxuICAgKlxuICAgKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAgICogQGRlZmF1bHQgQW4gZW1wdHkgYXJyYXlcbiAgICovXG4gIHJlcXVlc3RIZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbiAgb3BlcmF0aW9uOiAoZGF0YTogbnVtYmVyW11bXSB8IEltYWdlRGF0YVtdKSA9PiBudW1iZXJbXSB8IEltYWdlRGF0YSA9IChkKSA9PiBkWzBdID8/IFtdO1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhlIGdpdmVuIHRpbGUgbGF5ZXIgc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSB7UmFzdGVyVGlsZUxheWVyU2V0dGluZ3N9IG1vZGVsIC0gVGhlIHRpbGUgbGF5ZXIgc2V0dGluZ3MgdG8gYmUgY29waWVkLlxuICAgKiBAcmV0dXJuIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBpbnN0YW5jZSBvZiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyB3aXRoIHRoZSBzYW1lIHByb3BlcnRpZXMgYXMgdGhlIG1vZGVsLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb3B5KG1vZGVsOiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyk6IFJhc3RlclRpbGVMYXllclNldHRpbmdzIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MoKTtcbiAgICByZXN1bHQubWF4Wm9vbSA9IG1vZGVsLm1heFpvb207XG4gICAgcmVzdWx0Lm1pblpvb20gPSBtb2RlbC5taW5ab29tO1xuICAgIHJlc3VsdC5wcm9qZWN0aW9uID0gbW9kZWwucHJvamVjdGlvbjtcbiAgICByZXN1bHQub3BhY2l0eSA9IG1vZGVsLm9wYWNpdHk7XG4gICAgcmVzdWx0LnVybCA9IG1vZGVsLnVybDtcbiAgICByZXN1bHQucmVxdWVzdEhlYWRlcnMgPSBtb2RlbC5yZXF1ZXN0SGVhZGVycztcbiAgICByZXN1bHQub3BlcmF0aW9uID0gbW9kZWwub3BlcmF0aW9uO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgVVJMIG9mIHRoZSBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBUaGUgVVJMIHRvIGJlIHNldC5cbiAgICogQHJldHVybiB7UmFzdGVyVGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mgb2JqZWN0LlxuICAgKi9cbiAgc2V0VXJsKHVybDogc3RyaW5nKTogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgdXJsIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG9wZXJhdGlvbiB0byBhcHBseSBvbiByYXN0ZXIgdGlsZSBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcGVyYXRpb24gLSBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW4gaW5wdXQgb2YgZWl0aGVyIGEgdHdvLWRpbWVuc2lvbmFsIGFycmF5IG9mIG51bWJlcnMgb3IgYW4gYXJyYXkgb2YgSW1hZ2VEYXRhIG9iamVjdHMgYW5kIHJldHVybnMgZWl0aGVyIGEgb25lLWRpbWVuc2lvbmFsIGFycmF5IG9mIG51bWJlcnMgb3IgYW4gSW1hZ2VEYXRhIG9iamVjdC5cbiAgICogQHJldHVybiB7UmFzdGVyVGlsZUxheWVyU2V0dGluZ3N9IEEgbmV3IGluc3RhbmNlIG9mIFJhc3RlclRpbGVMYXllclNldHRpbmdzIHdpdGggdGhlIHVwZGF0ZWQgb3BlcmF0aW9uLlxuICAgKi9cbiAgc2V0T3BlcmF0aW9uKG9wZXJhdGlvbjogKGRhdGE6IG51bWJlcltdW10gfCBJbWFnZURhdGFbXSkgPT4gbnVtYmVyW10gfCBJbWFnZURhdGEpOiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFJhc3RlclRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCBvcGVyYXRpb24gfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcmVxdWVzdEhlYWRlcnMgb2YgdGhlIFJhc3RlclRpbGVMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSByZXF1ZXN0SGVhZGVycyAtIFRoZSBoZWFkZXJzIHdoaWNoIHNob3VsZCBiZSBwcm92aWRlZC5cbiAgICogQHJldHVybiB7UmFzdGVyVGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mgb2JqZWN0LlxuICAgKi9cbiAgc2V0UmVxdWVzdEhlYWRlcnMocmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFJhc3RlclRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCByZXF1ZXN0SGVhZGVycyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSB0aWxlIGxheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Wm9vbSAtIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwuXG4gICAqIEByZXR1cm5zIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCB0aWxlIGxheWVyIHNldHRpbmdzIG9iamVjdC5cbiAgICovXG4gIHNldE1heFpvb20obWF4Wm9vbTogbnVtYmVyKTogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWF4Wm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSBUaWxlIExheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWluWm9vbSAtIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gVGhlIG1vZGlmaWVkIFJhc3RlclRpbGVMYXllclNldHRpbmdzIG9iamVjdCB3aXRoIHRoZSB1cGRhdGVkIG1pbmltdW0gem9vbSBsZXZlbC5cbiAgICovXG4gIHNldE1pblpvb20obWluWm9vbTogbnVtYmVyKTogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWluWm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBvcGFjaXR5IG9mIHRoZSBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHkgLSBUaGUgb3BhY2l0eSB2YWx1ZSB0byBzZXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuICAgKiBAcmV0dXJuIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBpbnN0YW5jZSBvZiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyB3aXRoIHRoZSBvcGFjaXR5IHNldC5cbiAgICovXG4gIHNldE9wYWNpdHkob3BhY2l0eTogbnVtYmVyKTogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgb3BhY2l0eSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb2plY3Rpb24gLSBUaGUgZGVzaXJlZCBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICogQHJldHVybiB7UmFzdGVyVGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgdGlsZSBsYXllciBzZXR0aW5ncyB3aXRoIHRoZSBuZXcgcHJvamVjdGlvbi5cbiAgICovXG4gIHNldFByb2plY3Rpb24ocHJvamVjdGlvbjogc3RyaW5nKTogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgcHJvamVjdGlvbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MgaXMgZXF1YWwgdG8gdGhlIGdpdmVuIG1vZGVsLlxuICAgKiBAcGFyYW0ge1Jhc3RlclRpbGVMYXllclNldHRpbmdzfSBtb2RlbCAtIFRoZSBtb2RlbCB0byBjb21wYXJlIGFnYWluc3QuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gVHJ1ZSBpZiBhbGwgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSBtYXRjaGVzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBtb2RlbDtcbiAgICogICAgICAgICAgICAgICAgICAgIG90aGVyd2lzZSwgZmFsc2UuXG4gICAqL1xuICBwdWJsaWMgaXNTYW1lKG1vZGVsOiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm1heFpvb20gIT09IG1vZGVsLm1heFpvb20pIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5taW5ab29tICE9PSBtb2RlbC5taW5ab29tKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMudXJsICE9PSBtb2RlbC51cmwpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5wcm9qZWN0aW9uICE9PSBtb2RlbC5wcm9qZWN0aW9uKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMub3BhY2l0eSAhPT0gbW9kZWwub3BhY2l0eSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLnJlcXVlc3RIZWFkZXJzICE9PSBtb2RlbC5yZXF1ZXN0SGVhZGVycykgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLm9wZXJhdGlvbiAhPT0gbW9kZWwub3BlcmF0aW9uKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==