@smartbit4all/ng-client 4.2.36 → 4.2.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/smart-map/abstract-map.mjs +1 -1
- package/esm2022/lib/smart-map/impl/google-map.mjs +4 -1
- package/esm2022/lib/smart-map/impl/leaflet-map.mjs +43 -7
- package/esm2022/lib/smart-map/smart-map.component.mjs +11 -7
- package/fesm2022/smartbit4all-ng-client.mjs +54 -11
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-map/abstract-map.d.ts +1 -0
- package/lib/smart-map/impl/google-map.d.ts +1 -0
- package/lib/smart-map/impl/leaflet-map.d.ts +2 -0
- package/lib/smart-map/smart-map.component.d.ts +3 -0
- package/package.json +1 -1
- package/smartbit4all-ng-client-4.2.37.tgz +0 -0
- package/smartbit4all-ng-client-4.2.36.tgz +0 -0
|
@@ -15473,6 +15473,9 @@ class GoogleMap extends AbstractMap {
|
|
|
15473
15473
|
getMap() {
|
|
15474
15474
|
return this.map;
|
|
15475
15475
|
}
|
|
15476
|
+
toBase64() {
|
|
15477
|
+
throw new Error('Method not implemented.');
|
|
15478
|
+
}
|
|
15476
15479
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GoogleMap, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15477
15480
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GoogleMap, selector: "google-map", inputs: { style: "style", styleClass: "styleClass" }, outputs: { onOverlayDblClick: "onOverlayDblClick", onOverlayDragStart: "onOverlayDragStart", onOverlayDrag: "onOverlayDrag", onOverlayDragEnd: "onOverlayDragEnd", onMapReady: "onMapReady" }, host: { classAttribute: "p-element" }, usesInheritance: true, ngImport: i0, template: ` <div [ngStyle]="style" [class]="styleClass"></div>`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
15478
15481
|
}
|
|
@@ -15549,7 +15552,7 @@ class LeafletMap extends AbstractMap {
|
|
|
15549
15552
|
}
|
|
15550
15553
|
initialize() {
|
|
15551
15554
|
const options = this.createLeafletMapOptions();
|
|
15552
|
-
this.map = L.map('leaflet').setView(options.centre, options.zoom);
|
|
15555
|
+
this.map = L.map('leaflet', { preferCanvas: true }).setView(options.centre, options.zoom);
|
|
15553
15556
|
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
|
15554
15557
|
maxZoom: 19,
|
|
15555
15558
|
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
|
|
@@ -15683,11 +15686,7 @@ class LeafletMap extends AbstractMap {
|
|
|
15683
15686
|
});
|
|
15684
15687
|
let group = markerGroups.get(it.record.getLatLng().lat.toFixed(6) + ',' + it.record.getLatLng().lng.toFixed(6));
|
|
15685
15688
|
if (group && group.length > 1) {
|
|
15686
|
-
const icon =
|
|
15687
|
-
className: 'custom-cluster-icon',
|
|
15688
|
-
html: `<div class="marker-count">${group.length}</div>`,
|
|
15689
|
-
iconSize: [30, 30],
|
|
15690
|
-
});
|
|
15689
|
+
const icon = this.createNumberedIcon(group.length);
|
|
15691
15690
|
const clusterMarker = L.marker(group[0].originalLatLng, { icon }).addTo(this.map);
|
|
15692
15691
|
it.record.on('mouseover', (_event) => {
|
|
15693
15692
|
toAdd.forEach((item, index) => {
|
|
@@ -15806,6 +15805,46 @@ class LeafletMap extends AbstractMap {
|
|
|
15806
15805
|
});
|
|
15807
15806
|
return { a: southwest, b: northeast };
|
|
15808
15807
|
}
|
|
15808
|
+
toBase64() {
|
|
15809
|
+
return new Promise((resolve, reject) => {
|
|
15810
|
+
leafletImage(this.map, (err, canvas) => {
|
|
15811
|
+
if (err) {
|
|
15812
|
+
console.error('Leaflet image capture error', err);
|
|
15813
|
+
reject(err);
|
|
15814
|
+
}
|
|
15815
|
+
resolve(canvas.toDataURL('image/png'));
|
|
15816
|
+
});
|
|
15817
|
+
});
|
|
15818
|
+
}
|
|
15819
|
+
createNumberedIcon(number) {
|
|
15820
|
+
const size = 35;
|
|
15821
|
+
const scaleFactor = 15;
|
|
15822
|
+
const scaledSize = size * scaleFactor;
|
|
15823
|
+
const canvas = document.createElement('canvas');
|
|
15824
|
+
canvas.width = scaledSize;
|
|
15825
|
+
canvas.height = scaledSize;
|
|
15826
|
+
canvas.style.width = canvas.style.height = '35px';
|
|
15827
|
+
const ctx = canvas.getContext('2d');
|
|
15828
|
+
ctx.scale(scaleFactor, scaleFactor);
|
|
15829
|
+
ctx.beginPath();
|
|
15830
|
+
ctx.arc(size / 2, size / 2, size / 2 - 2, 0, 2 * Math.PI, false);
|
|
15831
|
+
ctx.fillStyle = '#0078d4';
|
|
15832
|
+
ctx.fill();
|
|
15833
|
+
ctx.lineWidth = 2;
|
|
15834
|
+
ctx.strokeStyle = '#ffffff';
|
|
15835
|
+
ctx.stroke();
|
|
15836
|
+
ctx.fillStyle = '#ffffff';
|
|
15837
|
+
ctx.font = 'bold 16px sans-serif';
|
|
15838
|
+
ctx.textAlign = 'center';
|
|
15839
|
+
ctx.textBaseline = 'middle';
|
|
15840
|
+
ctx.fillText(number.toString(), size / 2, size / 2);
|
|
15841
|
+
return L.icon({
|
|
15842
|
+
iconUrl: canvas.toDataURL(),
|
|
15843
|
+
iconSize: [size, size],
|
|
15844
|
+
iconAnchor: [size / 2, size / 2],
|
|
15845
|
+
popupAnchor: [0, -size / 2],
|
|
15846
|
+
});
|
|
15847
|
+
}
|
|
15809
15848
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LeafletMap, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15810
15849
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: LeafletMap, selector: "leaflet-map", usesInheritance: true, ngImport: i0, template: ` <div id="leaflet"></div>`, isInline: true, styles: ["#leaflet{height:720px}::ng-deep .marker-count{background-color:#0078d4;color:#fff;font-weight:700;border-radius:50%;width:30px;height:30px;line-height:30px;text-align:center;border:2px solid white;box-shadow:0 0 4px #0006}::ng-deep .custom-cluster-icon{pointer-events:auto!important}\n"] }); }
|
|
15811
15850
|
}
|
|
@@ -15841,9 +15880,7 @@ class SmartMapComponent {
|
|
|
15841
15880
|
.map((it) => it.id)
|
|
15842
15881
|
.values()));
|
|
15843
15882
|
}
|
|
15844
|
-
ngOnInit() {
|
|
15845
|
-
// this.load();
|
|
15846
|
-
}
|
|
15883
|
+
ngOnInit() { }
|
|
15847
15884
|
ngAfterViewInit() {
|
|
15848
15885
|
this.load();
|
|
15849
15886
|
}
|
|
@@ -16008,12 +16045,15 @@ class SmartMapComponent {
|
|
|
16008
16045
|
}
|
|
16009
16046
|
this.update(viewState);
|
|
16010
16047
|
}
|
|
16048
|
+
toBase64() {
|
|
16049
|
+
return this.mapComponent.toBase64();
|
|
16050
|
+
}
|
|
16011
16051
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapComponent, deps: [{ token: MAP_ENGINE }, { token: GeoMapService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16012
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartMapComponent, selector: "smart-map", inputs: { uuid: "uuid", identifier: "identifier", parent: "parent" }, ngImport: i0, template: "@if (model()) { @if (mapEngine === MapEngine.GOOGLE) {\r\n<google-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [style]=\"{ width: '100%', height: '320px' }\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n (onEditingOverlayClick)=\"handleEditingItemClick($event.itemId, $event)\"\r\n>\r\n</google-map>\r\n} @else if (mapEngine === MapEngine.LEAFLET) {\r\n<leaflet-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [editingSession]=\"editingSession()\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n (onEditingOverlayClick)=\"handleEditingItemClick($event.itemId, $event)\"\r\n (onEditingOverlayDrag)=\"handleEditingItemDrag($event.itemId, $event)\"\r\n>\r\n</leaflet-map>\r\n} @else {\r\n<p>\r\n <strong>Not recognised map engine: [ {{ mapEngine }} ]</strong>\r\n</p>\r\n<p>Please provide a valid choice of map engine!</p>\r\n} }\r\n", styles: [""], dependencies: [{ kind: "component", type: GoogleMap, selector: "google-map", inputs: ["style", "styleClass"], outputs: ["onOverlayDblClick", "onOverlayDragStart", "onOverlayDrag", "onOverlayDragEnd", "onMapReady"] }, { kind: "component", type: LeafletMap, selector: "leaflet-map" }] }); }
|
|
16052
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartMapComponent, selector: "smart-map", inputs: { uuid: "uuid", identifier: "identifier", parent: "parent" }, viewQueries: [{ propertyName: "mapComponent", first: true, predicate: ["mapComponent"], descendants: true }], ngImport: i0, template: "@if (model()) { @if (mapEngine === MapEngine.GOOGLE) {\r\n<google-map\r\n #mapComponent\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [style]=\"{ width: '100%', height: '320px' }\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n (onEditingOverlayClick)=\"handleEditingItemClick($event.itemId, $event)\"\r\n>\r\n</google-map>\r\n} @else if (mapEngine === MapEngine.LEAFLET) {\r\n<leaflet-map\r\n #mapComponent\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [editingSession]=\"editingSession()\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n (onEditingOverlayClick)=\"handleEditingItemClick($event.itemId, $event)\"\r\n (onEditingOverlayDrag)=\"handleEditingItemDrag($event.itemId, $event)\"\r\n>\r\n</leaflet-map>\r\n} @else {\r\n<p>\r\n <strong>Not recognised map engine: [ {{ mapEngine }} ]</strong>\r\n</p>\r\n<p>Please provide a valid choice of map engine!</p>\r\n} }\r\n", styles: [""], dependencies: [{ kind: "component", type: GoogleMap, selector: "google-map", inputs: ["style", "styleClass"], outputs: ["onOverlayDblClick", "onOverlayDragStart", "onOverlayDrag", "onOverlayDragEnd", "onMapReady"] }, { kind: "component", type: LeafletMap, selector: "leaflet-map" }] }); }
|
|
16013
16053
|
}
|
|
16014
16054
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartMapComponent, decorators: [{
|
|
16015
16055
|
type: Component,
|
|
16016
|
-
args: [{ selector: 'smart-map', template: "@if (model()) { @if (mapEngine === MapEngine.GOOGLE) {\r\n<google-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [style]=\"{ width: '100%', height: '320px' }\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n (onEditingOverlayClick)=\"handleEditingItemClick($event.itemId, $event)\"\r\n>\r\n</google-map>\r\n} @else if (mapEngine === MapEngine.LEAFLET) {\r\n<leaflet-map\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [editingSession]=\"editingSession()\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n (onEditingOverlayClick)=\"handleEditingItemClick($event.itemId, $event)\"\r\n (onEditingOverlayDrag)=\"handleEditingItemDrag($event.itemId, $event)\"\r\n>\r\n</leaflet-map>\r\n} @else {\r\n<p>\r\n <strong>Not recognised map engine: [ {{ mapEngine }} ]</strong>\r\n</p>\r\n<p>Please provide a valid choice of map engine!</p>\r\n} }\r\n" }]
|
|
16056
|
+
args: [{ selector: 'smart-map', template: "@if (model()) { @if (mapEngine === MapEngine.GOOGLE) {\r\n<google-map\r\n #mapComponent\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [style]=\"{ width: '100%', height: '320px' }\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n (onEditingOverlayClick)=\"handleEditingItemClick($event.itemId, $event)\"\r\n>\r\n</google-map>\r\n} @else if (mapEngine === MapEngine.LEAFLET) {\r\n<leaflet-map\r\n #mapComponent\r\n [model]=\"model()!\"\r\n [items]=\"items()\"\r\n [editingSession]=\"editingSession()\"\r\n (onMapDragEnd)=\"move($event.viewport)\"\r\n (onZoomChanged)=\"move($event.viewport)\"\r\n (onMapClick)=\"handleMapClick($event.coordinates)\"\r\n (onOverlayClick)=\"handleItemClick($event.itemId)\"\r\n (onEditingOverlayClick)=\"handleEditingItemClick($event.itemId, $event)\"\r\n (onEditingOverlayDrag)=\"handleEditingItemDrag($event.itemId, $event)\"\r\n>\r\n</leaflet-map>\r\n} @else {\r\n<p>\r\n <strong>Not recognised map engine: [ {{ mapEngine }} ]</strong>\r\n</p>\r\n<p>Please provide a valid choice of map engine!</p>\r\n} }\r\n" }]
|
|
16017
16057
|
}], ctorParameters: () => [{ type: MapEngine, decorators: [{
|
|
16018
16058
|
type: Inject,
|
|
16019
16059
|
args: [MAP_ENGINE]
|
|
@@ -16023,6 +16063,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
16023
16063
|
type: Input
|
|
16024
16064
|
}], parent: [{
|
|
16025
16065
|
type: Input
|
|
16066
|
+
}], mapComponent: [{
|
|
16067
|
+
type: ViewChild,
|
|
16068
|
+
args: ['mapComponent']
|
|
16026
16069
|
}] } });
|
|
16027
16070
|
|
|
16028
16071
|
class SmartMapModule {
|