@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.
@@ -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: '&copy; <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 = L.divIcon({
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 {