@smarterplan/ngx-smarterplan-locations 0.2.21 → 0.2.22

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 (59) hide show
  1. package/esm2020/lib/components/carousel/carousel.component.mjs +27 -27
  2. package/esm2020/lib/components/chevron/chevron.component.mjs +17 -17
  3. package/esm2020/lib/components/detail-location/detail-location.component.mjs +154 -154
  4. package/esm2020/lib/components/form-location/form-location.component.mjs +237 -237
  5. package/esm2020/lib/components/images/images.component.mjs +90 -90
  6. package/esm2020/lib/components/locations/locations.component.mjs +141 -141
  7. package/esm2020/lib/components/locations/map/map-popup/map-popup.component.mjs +65 -65
  8. package/esm2020/lib/components/locations/map/map.component.mjs +90 -90
  9. package/esm2020/lib/components/plan-legend/plan-legend.component.mjs +47 -0
  10. package/esm2020/lib/components/plans/calibration/calibration.component.mjs +468 -468
  11. package/esm2020/lib/components/plans/edit-plan/edit-plan.component.mjs +324 -324
  12. package/esm2020/lib/components/plans/plans.component.mjs +210 -210
  13. package/esm2020/lib/components/tab-navigation/tab-navigation.component.mjs +41 -41
  14. package/esm2020/lib/components/visits/visits.component.mjs +235 -235
  15. package/esm2020/lib/components/zones/add-audio-zone/add-audio-zone.component.mjs +230 -230
  16. package/esm2020/lib/components/zones/add-zone/add-zone.component.mjs +294 -294
  17. package/esm2020/lib/components/zones/add-zone/selection/selection.component.mjs +76 -76
  18. package/esm2020/lib/components/zones/add-zone/sweep-plan-selection/sweep-plan-selection.component.mjs +414 -413
  19. package/esm2020/lib/components/zones/zones.component.mjs +236 -232
  20. package/esm2020/lib/helper.service.mjs +134 -134
  21. package/esm2020/lib/ngx-smarterplan-location-routing.module.mjs +49 -49
  22. package/esm2020/lib/ngx-smarterplan-locations.module.mjs +125 -122
  23. package/esm2020/lib/ngx-smarterplan-locations.service.mjs +13 -13
  24. package/esm2020/lib/pipes/count-audio-sweeps.pipe.mjs +26 -26
  25. package/esm2020/lib/radio-button/radio-button.component.mjs +26 -26
  26. package/esm2020/public-api.mjs +8 -8
  27. package/esm2020/smarterplan-ngx-smarterplan-locations.mjs +4 -4
  28. package/fesm2015/smarterplan-ngx-smarterplan-locations.mjs +3676 -3624
  29. package/fesm2015/smarterplan-ngx-smarterplan-locations.mjs.map +1 -1
  30. package/fesm2020/smarterplan-ngx-smarterplan-locations.mjs +3520 -3472
  31. package/fesm2020/smarterplan-ngx-smarterplan-locations.mjs.map +1 -1
  32. package/lib/components/carousel/carousel.component.d.ts +12 -12
  33. package/lib/components/chevron/chevron.component.d.ts +9 -9
  34. package/lib/components/detail-location/detail-location.component.d.ts +51 -51
  35. package/lib/components/form-location/form-location.component.d.ts +45 -45
  36. package/lib/components/images/images.component.d.ts +28 -28
  37. package/lib/components/locations/locations.component.d.ts +50 -50
  38. package/lib/components/locations/map/map-popup/map-popup.component.d.ts +22 -22
  39. package/lib/components/locations/map/map.component.d.ts +22 -22
  40. package/lib/components/plan-legend/plan-legend.component.d.ts +14 -0
  41. package/lib/components/plans/calibration/calibration.component.d.ts +140 -140
  42. package/lib/components/plans/edit-plan/edit-plan.component.d.ts +55 -55
  43. package/lib/components/plans/plans.component.d.ts +59 -59
  44. package/lib/components/tab-navigation/tab-navigation.component.d.ts +13 -13
  45. package/lib/components/visits/visits.component.d.ts +51 -51
  46. package/lib/components/zones/add-audio-zone/add-audio-zone.component.d.ts +63 -63
  47. package/lib/components/zones/add-zone/add-zone.component.d.ts +67 -67
  48. package/lib/components/zones/add-zone/selection/selection.component.d.ts +44 -44
  49. package/lib/components/zones/add-zone/sweep-plan-selection/sweep-plan-selection.component.d.ts +96 -96
  50. package/lib/components/zones/zones.component.d.ts +67 -67
  51. package/lib/helper.service.d.ts +53 -53
  52. package/lib/ngx-smarterplan-location-routing.module.d.ts +7 -7
  53. package/lib/ngx-smarterplan-locations.module.d.ts +36 -35
  54. package/lib/ngx-smarterplan-locations.service.d.ts +6 -6
  55. package/lib/pipes/count-audio-sweeps.pipe.d.ts +10 -10
  56. package/lib/radio-button/radio-button.component.d.ts +12 -12
  57. package/package.json +1 -1
  58. package/public-api.d.ts +4 -4
  59. package/smarterplan-ngx-smarterplan-locations.d.ts +5 -5
@@ -1,91 +1,91 @@
1
- import { Component, Input } from '@angular/core';
2
- import { latLng, marker, tileLayer, latLngBounds, point, Marker, icon, } from "leaflet";
3
- import { MapPopupComponent } from './map-popup/map-popup.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@asymmetrik/ngx-leaflet";
6
- const iconRetinaUrl = "assets/marker-icon-2x.png";
7
- const iconUrl = "assets/marker-icon.png";
8
- const shadowUrl = "assets/marker-shadow.png";
9
- const iconDefault = icon({
10
- iconRetinaUrl,
11
- iconUrl,
12
- shadowUrl,
13
- iconSize: [25, 41],
14
- iconAnchor: [12, 41],
15
- popupAnchor: [1, -34],
16
- tooltipAnchor: [16, -28],
17
- shadowSize: [41, 41],
18
- });
19
- Marker.prototype.options.icon = iconDefault;
20
- export class MapComponent {
21
- constructor(componentFactoryResolver, injector) {
22
- this.componentFactoryResolver = componentFactoryResolver;
23
- this.injector = injector;
24
- this.options = {
25
- layers: [
26
- tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
27
- maxZoom: 18,
28
- attribution: "...",
29
- }),
30
- ],
31
- zoom: 5.5,
32
- center: latLng(47.06394, 2.77736),
33
- };
34
- this.layers = [];
35
- }
36
- ngOnChanges(changes) {
37
- if (changes.spaces) {
38
- const nm = [];
39
- const bd = [];
40
- if (!changes.spaces.currentValue) {
41
- return;
42
- }
43
- // Filtering out spaces without lat/longitudes
44
- for (const s of changes.spaces.currentValue) {
45
- if (s.latitude === null || s.longitude === null) {
46
- console.log(`${s.name} has not coordinates for ${s.addresses}`);
47
- continue;
48
- }
49
- // We use the popup system from leaflet, as it packs a few improvements
50
- // on using bootstrap: autoclose other popups, closing option.
51
- const m = marker([s.latitude, s.longitude]);
52
- m.bindPopup(this.createPopupComponent(s, m));
53
- nm.push(m);
54
- bd.push(latLng(s.latitude, s.longitude));
55
- }
56
- // Note how we set the layers in one assignment, in order to have leaflet
57
- // detects the change correctly
58
- // We also set the bounds afterward, for the map to be properly zoomed and
59
- // centered
60
- this.layers = nm;
61
- if (this.map && bd.length > 0) {
62
- this.map.fitBounds(latLngBounds(bd), {
63
- padding: point(48, 48),
64
- maxZoom: 12,
65
- animate: true,
66
- });
67
- }
68
- }
69
- }
70
- onMapReady(map) {
71
- this.map = map;
72
- }
73
- createPopupComponent(space, marker) {
74
- const comp = this.componentFactoryResolver
75
- .resolveComponentFactory(MapPopupComponent)
76
- .create(this.injector);
77
- comp.instance.space = space;
78
- comp.instance.marker = marker;
79
- comp.changeDetectorRef.detectChanges();
80
- return comp.location.nativeElement;
81
- }
82
- }
83
- MapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MapComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
84
- MapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: MapComponent, selector: "lib-map", inputs: { spaces: "spaces" }, usesOnChanges: true, ngImport: i0, template: "<div [leafletLayers]=\"layers\" [leafletOptions]=\"options\" (leafletMapReady)=\"onMapReady($event)\" id=\"map\" leaflet\n style=\"height: 500px; margin-top: 30px; z-index: 195\"></div>\n", styles: [""], directives: [{ type: i1.LeafletDirective, selector: "[leaflet]", inputs: ["leafletFitBoundsOptions", "leafletPanOptions", "leafletZoomOptions", "leafletZoomPanOptions", "leafletOptions", "leafletZoom", "leafletCenter", "leafletFitBounds", "leafletMaxBounds", "leafletMinZoom", "leafletMaxZoom"], outputs: ["leafletMapReady", "leafletZoomChange", "leafletCenterChange", "leafletClick", "leafletDoubleClick", "leafletMouseDown", "leafletMouseUp", "leafletMouseMove", "leafletMouseOver", "leafletMouseOut", "leafletMapMove", "leafletMapMoveStart", "leafletMapMoveEnd", "leafletMapZoom", "leafletMapZoomStart", "leafletMapZoomEnd"] }, { type: i1.LeafletLayersDirective, selector: "[leafletLayers]", inputs: ["leafletLayers"] }] });
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MapComponent, decorators: [{
86
- type: Component,
87
- args: [{ selector: 'lib-map', template: "<div [leafletLayers]=\"layers\" [leafletOptions]=\"options\" (leafletMapReady)=\"onMapReady($event)\" id=\"map\" leaflet\n style=\"height: 500px; margin-top: 30px; z-index: 195\"></div>\n", styles: [""] }]
88
- }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; }, propDecorators: { spaces: [{
89
- type: Input
90
- }] } });
1
+ import { Component, Input } from '@angular/core';
2
+ import { latLng, marker, tileLayer, latLngBounds, point, Marker, icon, } from "leaflet";
3
+ import { MapPopupComponent } from './map-popup/map-popup.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@asymmetrik/ngx-leaflet";
6
+ const iconRetinaUrl = "assets/marker-icon-2x.png";
7
+ const iconUrl = "assets/marker-icon.png";
8
+ const shadowUrl = "assets/marker-shadow.png";
9
+ const iconDefault = icon({
10
+ iconRetinaUrl,
11
+ iconUrl,
12
+ shadowUrl,
13
+ iconSize: [25, 41],
14
+ iconAnchor: [12, 41],
15
+ popupAnchor: [1, -34],
16
+ tooltipAnchor: [16, -28],
17
+ shadowSize: [41, 41],
18
+ });
19
+ Marker.prototype.options.icon = iconDefault;
20
+ export class MapComponent {
21
+ constructor(componentFactoryResolver, injector) {
22
+ this.componentFactoryResolver = componentFactoryResolver;
23
+ this.injector = injector;
24
+ this.options = {
25
+ layers: [
26
+ tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
27
+ maxZoom: 18,
28
+ attribution: "...",
29
+ }),
30
+ ],
31
+ zoom: 5.5,
32
+ center: latLng(47.06394, 2.77736),
33
+ };
34
+ this.layers = [];
35
+ }
36
+ ngOnChanges(changes) {
37
+ if (changes.spaces) {
38
+ const nm = [];
39
+ const bd = [];
40
+ if (!changes.spaces.currentValue) {
41
+ return;
42
+ }
43
+ // Filtering out spaces without lat/longitudes
44
+ for (const s of changes.spaces.currentValue) {
45
+ if (s.latitude === null || s.longitude === null) {
46
+ console.log(`${s.name} has not coordinates for ${s.addresses}`);
47
+ continue;
48
+ }
49
+ // We use the popup system from leaflet, as it packs a few improvements
50
+ // on using bootstrap: autoclose other popups, closing option.
51
+ const m = marker([s.latitude, s.longitude]);
52
+ m.bindPopup(this.createPopupComponent(s, m));
53
+ nm.push(m);
54
+ bd.push(latLng(s.latitude, s.longitude));
55
+ }
56
+ // Note how we set the layers in one assignment, in order to have leaflet
57
+ // detects the change correctly
58
+ // We also set the bounds afterward, for the map to be properly zoomed and
59
+ // centered
60
+ this.layers = nm;
61
+ if (this.map && bd.length > 0) {
62
+ this.map.fitBounds(latLngBounds(bd), {
63
+ padding: point(48, 48),
64
+ maxZoom: 12,
65
+ animate: true,
66
+ });
67
+ }
68
+ }
69
+ }
70
+ onMapReady(map) {
71
+ this.map = map;
72
+ }
73
+ createPopupComponent(space, marker) {
74
+ const comp = this.componentFactoryResolver
75
+ .resolveComponentFactory(MapPopupComponent)
76
+ .create(this.injector);
77
+ comp.instance.space = space;
78
+ comp.instance.marker = marker;
79
+ comp.changeDetectorRef.detectChanges();
80
+ return comp.location.nativeElement;
81
+ }
82
+ }
83
+ MapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MapComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
84
+ MapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: MapComponent, selector: "lib-map", inputs: { spaces: "spaces" }, usesOnChanges: true, ngImport: i0, template: "<div [leafletLayers]=\"layers\" [leafletOptions]=\"options\" (leafletMapReady)=\"onMapReady($event)\" id=\"map\" leaflet\n style=\"height: 500px; margin-top: 30px; z-index: 195\"></div>\n", styles: [""], directives: [{ type: i1.LeafletDirective, selector: "[leaflet]", inputs: ["leafletFitBoundsOptions", "leafletPanOptions", "leafletZoomOptions", "leafletZoomPanOptions", "leafletOptions", "leafletZoom", "leafletCenter", "leafletFitBounds", "leafletMaxBounds", "leafletMinZoom", "leafletMaxZoom"], outputs: ["leafletMapReady", "leafletZoomChange", "leafletCenterChange", "leafletClick", "leafletDoubleClick", "leafletMouseDown", "leafletMouseUp", "leafletMouseMove", "leafletMouseOver", "leafletMouseOut", "leafletMapMove", "leafletMapMoveStart", "leafletMapMoveEnd", "leafletMapZoom", "leafletMapZoomStart", "leafletMapZoomEnd"] }, { type: i1.LeafletLayersDirective, selector: "[leafletLayers]", inputs: ["leafletLayers"] }] });
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MapComponent, decorators: [{
86
+ type: Component,
87
+ args: [{ selector: 'lib-map', template: "<div [leafletLayers]=\"layers\" [leafletOptions]=\"options\" (leafletMapReady)=\"onMapReady($event)\" id=\"map\" leaflet\n style=\"height: 500px; margin-top: 30px; z-index: 195\"></div>\n", styles: [""] }]
88
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; }, propDecorators: { spaces: [{
89
+ type: Input
90
+ }] } });
91
91
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1sb2NhdGlvbnMvc3JjL2xpYi9jb21wb25lbnRzL2xvY2F0aW9ucy9tYXAvbWFwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1sb2NhdGlvbnMvc3JjL2xpYi9jb21wb25lbnRzL2xvY2F0aW9ucy9tYXAvbWFwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNDLEtBQUssRUFBc0QsTUFBTSxlQUFlLENBQUM7QUFFekksT0FBTyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLElBQUksR0FDTCxNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBSXBFLE1BQU0sYUFBYSxHQUFHLDJCQUEyQixDQUFDO0FBQ2xELE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDO0FBQ3pDLE1BQU0sU0FBUyxHQUFHLDBCQUEwQixDQUFDO0FBQzdDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztJQUNyQixhQUFhO0lBQ2IsT0FBTztJQUNQLFNBQVM7SUFDVCxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2xCLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDcEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3JCLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QixVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0NBQ3ZCLENBQUMsQ0FBQztB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LGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQzs7eUdBekVRLFlBQVk7NkZBQVosWUFBWSxrR0NuQ3pCLGdNQUVBOzJGRGlDYSxZQUFZO2tCQUx4QixTQUFTOytCQUNFLFNBQVM7c0lBU1YsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdG9yLCBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNwYWNlIH0gZnJvbSAnQHNtYXJ0ZXJwbGFuL25neC1zbWFydGVycGxhbi1jb3JlJztcbmltcG9ydCB7XG4gIGxhdExuZyxcbiAgbWFya2VyLFxuICB0aWxlTGF5ZXIsXG4gIE1hcCxcbiAgbGF0TG5nQm91bmRzLFxuICBwb2ludCxcbiAgTWFya2VyLFxuICBpY29uLFxufSBmcm9tIFwibGVhZmxldFwiO1xuaW1wb3J0IHsgTWFwUG9wdXBDb21wb25lbnQgfSBmcm9tICcuL21hcC1wb3B1cC9tYXAtcG9wdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cblxuY29uc3QgaWNvblJldGluYVVybCA9IFwiYXNzZXRzL21hcmtlci1pY29uLTJ4LnBuZ1wiO1xuY29uc3QgaWNvblVybCA9IFwiYXNzZXRzL21hcmtlci1pY29uLnBuZ1wiO1xuY29uc3Qgc2hhZG93VXJsID0gXCJhc3NldHMvbWFya2VyLXNoYWRvdy5wbmdcIjtcbmNvbnN0IGljb25EZWZhdWx0ID0gaWNvbih7XG4gICAgaWNvblJldGluYVVybCxcbiAgICBpY29uVXJsLFxuICAgIHNoYWRvd1VybCxcbiAgICBpY29uU2l6ZTogWzI1LCA0MV0sXG4gICAgaWNvbkFuY2hvcjogWzEyLCA0MV0sXG4gICAgcG9wdXBBbmNob3I6IFsxLCAtMzRdLFxuICAgIHRvb2x0aXBBbmNob3I6IFsxNiwgLTI4XSxcbiAgICBzaGFkb3dTaXplOiBbNDEsIDQxXSxcbn0pO1xuTWFya2VyLnByb3RvdHlwZS5vcHRpb25zLmljb24gPSBpY29uRGVmYXVsdDtcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1tYXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWFwQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCkgeyB9XG5cbiAgQElucHV0KCkgc3BhY2VzOiBTcGFjZVtdO1xuXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgICAgbGF5ZXJzOiBbXG4gICAgICAgICAgICB0aWxlTGF5ZXIoXCJodHRwOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nXCIsIHtcbiAgICAgICAgICAgICAgICBtYXhab29tOiAxOCxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGlvbjogXCIuLi5cIixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICB6b29tOiA1LjUsXG4gICAgICAgIGNlbnRlcjogbGF0TG5nKDQ3LjA2Mzk0LCAyLjc3NzM2KSxcbiAgICB9O1xuXG4gICAgbGF5ZXJzOiBhbnlbXSA9IFtdO1xuXG4gICAgbWFwOiBhbnk7XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLnNwYWNlcykge1xuICAgICAgICAgICAgY29uc3Qgbm0gPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGJkID0gW107XG4gICAgICAgICAgICBpZiAoIWNoYW5nZXMuc3BhY2VzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZpbHRlcmluZyBvdXQgc3BhY2VzIHdpdGhvdXQgbGF0L2xvbmdpdHVkZXNcbiAgICAgICAgICAgIGZvciAoY29uc3QgcyBvZiBjaGFuZ2VzLnNwYWNlcy5jdXJyZW50VmFsdWUgYXMgU3BhY2VbXSkge1xuICAgICAgICAgICAgICAgIGlmIChzLmxhdGl0dWRlID09PSBudWxsIHx8IHMubG9uZ2l0dWRlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7cy5uYW1lfSBoYXMgbm90IGNvb3JkaW5hdGVzIGZvciAke3MuYWRkcmVzc2VzfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZSB1c2UgdGhlIHBvcHVwIHN5c3RlbSBmcm9tIGxlYWZsZXQsIGFzIGl0IHBhY2tzIGEgZmV3IGltcHJvdmVtZW50c1xuICAgICAgICAgICAgICAgIC8vIG9uIHVzaW5nIGJvb3RzdHJhcDogYXV0b2Nsb3NlIG90aGVyIHBvcHVwcywgY2xvc2luZyBvcHRpb24uXG4gICAgICAgICAgICAgICAgY29uc3QgbSA9IG1hcmtlcihbcy5sYXRpdHVkZSwgcy5sb25naXR1ZGVdKTtcblxuICAgICAgICAgICAgICAgIG0uYmluZFBvcHVwKHRoaXMuY3JlYXRlUG9wdXBDb21wb25lbnQocywgbSkpO1xuXG4gICAgICAgICAgICAgICAgbm0ucHVzaChtKTtcbiAgICAgICAgICAgICAgICBiZC5wdXNoKGxhdExuZyhzLmxhdGl0dWRlLCBzLmxvbmdpdHVkZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTm90ZSBob3cgd2Ugc2V0IHRoZSBsYXllcnMgaW4gb25lIGFzc2lnbm1lbnQsIGluIG9yZGVyIHRvIGhhdmUgbGVhZmxldFxuICAgICAgICAgICAgLy8gZGV0ZWN0cyB0aGUgY2hhbmdlIGNvcnJlY3RseVxuICAgICAgICAgICAgLy8gV2UgYWxzbyBzZXQgdGhlIGJvdW5kcyBhZnRlcndhcmQsIGZvciB0aGUgbWFwIHRvIGJlIHByb3Blcmx5IHpvb21lZCBhbmRcbiAgICAgICAgICAgIC8vIGNlbnRlcmVkXG4gICAgICAgICAgICB0aGlzLmxheWVycyA9IG5tO1xuICAgICAgICAgICAgaWYgKHRoaXMubWFwICYmIGJkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hcC5maXRCb3VuZHMobGF0TG5nQm91bmRzKGJkKSwge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBwb2ludCg0OCwgNDgpLFxuICAgICAgICAgICAgICAgICAgICBtYXhab29tOiAxMixcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTWFwUmVhZHkobWFwOiBNYXApIHtcbiAgICAgICAgdGhpcy5tYXAgPSBtYXA7XG4gICAgfVxuXG4gICAgY3JlYXRlUG9wdXBDb21wb25lbnQoc3BhY2U6IFNwYWNlLCBtYXJrZXI6IE1hcmtlcikge1xuICAgICAgICBjb25zdCBjb21wID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1hcFBvcHVwQ29tcG9uZW50KVxuICAgICAgICAuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICBjb21wLmluc3RhbmNlLnNwYWNlID0gc3BhY2U7XG4gICAgICAgIGNvbXAuaW5zdGFuY2UubWFya2VyID0gbWFya2VyO1xuICAgICAgICBjb21wLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgcmV0dXJuIGNvbXAubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbn1cbiIsIjxkaXYgW2xlYWZsZXRMYXllcnNdPVwibGF5ZXJzXCIgW2xlYWZsZXRPcHRpb25zXT1cIm9wdGlvbnNcIiAobGVhZmxldE1hcFJlYWR5KT1cIm9uTWFwUmVhZHkoJGV2ZW50KVwiIGlkPVwibWFwXCIgbGVhZmxldFxuICAgIHN0eWxlPVwiaGVpZ2h0OiA1MDBweDsgbWFyZ2luLXRvcDogMzBweDsgei1pbmRleDogMTk1XCI+PC9kaXY+XG4iXX0=
@@ -0,0 +1,47 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@ngx-translate/core";
4
+ import * as i2 from "@angular/common";
5
+ export class PlanLegendComponent {
6
+ constructor(translate) {
7
+ this.translate = translate;
8
+ this.isAudioZone = false;
9
+ this.buttonsToRender = [];
10
+ this.colorToText = {};
11
+ }
12
+ async ngOnInit() {
13
+ this.render();
14
+ }
15
+ async render() {
16
+ this.buttonsToRender = [
17
+ {
18
+ url: `url("https://api.iconify.design/mdi:adjust.svg?color=green&height=17&width=17")`,
19
+ text: this.translate.instant("legend.green")
20
+ },
21
+ {
22
+ url: `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=red&height=17&width=17")`,
23
+ text: this.translate.instant("legend.red")
24
+ }
25
+ ];
26
+ if (this.isAudioZone) {
27
+ let audioPoints = [{
28
+ url: `url("https://api.iconify.design/mdi:close-circle-outline.svg?color=black&height=17&width=17")`,
29
+ text: this.translate.instant("legend.black")
30
+ },
31
+ {
32
+ url: `url("https://api.iconify.design/mdi:adjust.svg?color=orange&height=17&width=17")`,
33
+ text: this.translate.instant("legend.orange")
34
+ }];
35
+ this.buttonsToRender = this.buttonsToRender.concat(audioPoints);
36
+ }
37
+ }
38
+ }
39
+ PlanLegendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PlanLegendComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
40
+ PlanLegendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: PlanLegendComponent, selector: "lib-plan-legend", inputs: { isAudioZone: "isAudioZone" }, ngImport: i0, template: "<div class=\"mt-3 ms-3\" class=\"legendContainer\">\n <h5>{{\"legend.title\" | translate}}</h5>\n <div class=\"legendBox\">\n <div class=\"legendRow\" *ngFor=\"let elemnt of buttonsToRender\">\n <button class=\"legendIcon\" [ngStyle] = \"{'background-image': elemnt.url}\"></button>\n <span>{{elemnt.text}}</span>\n </div>\n </div>\n</div>\n", styles: [".legendContainer{padding:1rem;border:solid var(--smarterplan-primary) 2px;border-radius:6px;width:100%;margin-bottom:.5rem;background:#FFF}.legendContainer .legendBox{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.legendContainer .legendBox .legendRow{display:flex;flex-direction:row;align-items:center}.legendContainer .legendBox .legendRow .legendIcon{width:2.5rem;height:2.5rem;background-repeat:no-repeat;background-size:cover;border:none;background-color:transparent;margin-right:.5rem;cursor:auto}.legendContainer .legendBox .legendRow span{margin-right:1rem;cursor:auto}.legendContainer .legendBox .legendRow h5{cursor:auto}\n"], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "translate": i1.TranslatePipe } });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PlanLegendComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'lib-plan-legend', template: "<div class=\"mt-3 ms-3\" class=\"legendContainer\">\n <h5>{{\"legend.title\" | translate}}</h5>\n <div class=\"legendBox\">\n <div class=\"legendRow\" *ngFor=\"let elemnt of buttonsToRender\">\n <button class=\"legendIcon\" [ngStyle] = \"{'background-image': elemnt.url}\"></button>\n <span>{{elemnt.text}}</span>\n </div>\n </div>\n</div>\n", styles: [".legendContainer{padding:1rem;border:solid var(--smarterplan-primary) 2px;border-radius:6px;width:100%;margin-bottom:.5rem;background:#FFF}.legendContainer .legendBox{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.legendContainer .legendBox .legendRow{display:flex;flex-direction:row;align-items:center}.legendContainer .legendBox .legendRow .legendIcon{width:2.5rem;height:2.5rem;background-repeat:no-repeat;background-size:cover;border:none;background-color:transparent;margin-right:.5rem;cursor:auto}.legendContainer .legendBox .legendRow span{margin-right:1rem;cursor:auto}.legendContainer .legendBox .legendRow h5{cursor:auto}\n"] }]
44
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { isAudioZone: [{
45
+ type: Input
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi1sZWdlbmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvcGxhbi1sZWdlbmQvcGxhbi1sZWdlbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvcGxhbi1sZWdlbmQvcGxhbi1sZWdlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWMsTUFBTSxlQUFlLENBQUM7Ozs7QUFRckUsTUFBTSxPQUFPLG1CQUFtQjtJQU85QixZQUNVLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBUDVCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRXRDLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO0lBSWQsQ0FBQztJQUVKLEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNO1FBQ1YsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQjtnQkFDRSxHQUFHLEVBQUUsaUZBQWlGO2dCQUN0RixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO2FBQzdDO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLDZGQUE2RjtnQkFDbEcsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQzthQUMzQztTQUNGLENBQUE7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxXQUFXLEdBQUcsQ0FBQztvQkFDakIsR0FBRyxFQUFFLCtGQUErRjtvQkFDcEcsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztpQkFDN0M7Z0JBQ0Q7b0JBQ0UsR0FBRyxFQUFFLGtGQUFrRjtvQkFDdkYsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztpQkFDOUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtTQUNsRTtJQUNILENBQUM7O2dIQXJDVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwrRkNSaEMsb1lBU0E7MkZERGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjt1R0FLbEIsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25DaGFuZ2VzICB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wbGFuLWxlZ2VuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbGFuLWxlZ2VuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BsYW4tbGVnZW5kLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGxhbkxlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlzQXVkaW9ab25lPzpib29sZWFuID0gZmFsc2U7XG5cbiAgYnV0dG9uc1RvUmVuZGVyID0gW107XG5cbiAgY29sb3JUb1RleHQgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVuZGVyKClcbiAgfVxuXG4gIGFzeW5jIHJlbmRlcigpIHtcbiAgICB0aGlzLmJ1dHRvbnNUb1JlbmRlciA9IFtcbiAgICAgIHtcbiAgICAgICAgdXJsOiBgdXJsKFwiaHR0cHM6Ly9hcGkuaWNvbmlmeS5kZXNpZ24vbWRpOmFkanVzdC5zdmc/Y29sb3I9Z3JlZW4maGVpZ2h0PTE3JndpZHRoPTE3XCIpYCxcbiAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImxlZ2VuZC5ncmVlblwiKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdXJsOiBgdXJsKFwiaHR0cHM6Ly9hcGkuaWNvbmlmeS5kZXNpZ24vbWRpOmNsb3NlLWNpcmNsZS1vdXRsaW5lLnN2Zz9jb2xvcj1yZWQmaGVpZ2h0PTE3JndpZHRoPTE3XCIpYCxcbiAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImxlZ2VuZC5yZWRcIilcbiAgICAgIH1cbiAgICBdXG4gICAgaWYgKHRoaXMuaXNBdWRpb1pvbmUpIHtcbiAgICAgICAgbGV0IGF1ZGlvUG9pbnRzID0gW3tcbiAgICAgICAgICB1cmw6IGB1cmwoXCJodHRwczovL2FwaS5pY29uaWZ5LmRlc2lnbi9tZGk6Y2xvc2UtY2lyY2xlLW91dGxpbmUuc3ZnP2NvbG9yPWJsYWNrJmhlaWdodD0xNyZ3aWR0aD0xN1wiKWAsXG4gICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImxlZ2VuZC5ibGFja1wiKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdXJsOiBgdXJsKFwiaHR0cHM6Ly9hcGkuaWNvbmlmeS5kZXNpZ24vbWRpOmFkanVzdC5zdmc/Y29sb3I9b3JhbmdlJmhlaWdodD0xNyZ3aWR0aD0xN1wiKWAsXG4gICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImxlZ2VuZC5vcmFuZ2VcIilcbiAgICAgICAgfV1cbiAgICAgICAgdGhpcy5idXR0b25zVG9SZW5kZXIgPSB0aGlzLmJ1dHRvbnNUb1JlbmRlci5jb25jYXQoYXVkaW9Qb2ludHMpXG4gICAgfVxuICB9XG5cbiAgLy9zdHlsZUJ1dHRvbihlbGVtZW50LCBTd2VlcFN0YXRlLkRJU0FCTEVEKTtcblxufVxuIiwiPGRpdiBjbGFzcz1cIm10LTMgbXMtM1wiIGNsYXNzPVwibGVnZW5kQ29udGFpbmVyXCI+XG4gICAgPGg1Pnt7XCJsZWdlbmQudGl0bGVcIiB8IHRyYW5zbGF0ZX19PC9oNT5cbiAgICA8ZGl2IGNsYXNzPVwibGVnZW5kQm94XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWdlbmRSb3dcIiAqbmdGb3I9XCJsZXQgZWxlbW50IG9mIGJ1dHRvbnNUb1JlbmRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImxlZ2VuZEljb25cIiBbbmdTdHlsZV0gPSBcInsnYmFja2dyb3VuZC1pbWFnZSc6IGVsZW1udC51cmx9XCI+PC9idXR0b24+XG4gICAgICAgICAgICA8c3Bhbj57e2VsZW1udC50ZXh0fX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=