@camp2gether/c2g-ui 0.0.9 → 0.0.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"camp2gether-c2g-ui-maps.mjs","sources":["../../../projects/c2g-ui/maps/map/map.component.ts","../../../projects/c2g-ui/maps/map/map.component.html","../../../projects/c2g-ui/maps/map/map-marker.component.ts","../../../projects/c2g-ui/maps/map/map-marker.component.html","../../../projects/c2g-ui/maps/camp2gether-c2g-ui-maps.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n effect,\n input,\n output\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as L from 'leaflet';\nimport { C2gMapMarkerData } from './map.types';\n\n@Component({\n selector: 'c2g-map',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class MapComponent implements AfterViewInit, OnDestroy {\n @ViewChild('mapContainer', { static: true }) mapContainer!: ElementRef<HTMLDivElement>;\n\n readonly center = input<[number, number]>([47.6, 9.6]);\n readonly zoom = input<number>(7);\n readonly height = input<string>('400px');\n readonly width = input<string>('100%');\n readonly markers = input<C2gMapMarkerData[]>([]);\n readonly interactive = input<boolean>(true);\n\n readonly mapReady = output<L.Map>();\n readonly mapClick = output<L.LeafletMouseEvent>();\n readonly markerClick = output<{ marker: C2gMapMarkerData; event: L.LeafletMouseEvent }>();\n\n private map?: L.Map;\n private markerGroup?: L.LayerGroup;\n\n constructor() {\n effect(() => {\n const currentMarkers = this.markers();\n if (this.markerGroup) {\n this.updateMarkers(currentMarkers);\n }\n });\n\n effect(() => {\n const currentCenter = this.center();\n const currentZoom = this.zoom();\n if (this.map) {\n this.map.setView(L.latLng(currentCenter[0], currentCenter[1]), currentZoom, {\n animate: true,\n duration: 0.5\n });\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initializeMap();\n }\n\n ngOnDestroy(): void {\n // ViewEncapsulation.None is required for Leaflet to render tile layers and popups correctly\n // outside Angular's shadow DOM — clean up the instance explicitly to prevent memory leaks\n if (this.map) {\n this.map.remove();\n this.map = undefined;\n }\n this.markerGroup = undefined;\n }\n\n private initializeMap(): void {\n this.markerGroup = L.layerGroup();\n\n this.map = L.map(this.mapContainer.nativeElement, {\n center: L.latLng(this.center()[0], this.center()[1]),\n zoom: this.zoom(),\n zoomControl: this.interactive(),\n dragging: this.interactive(),\n touchZoom: this.interactive(),\n doubleClickZoom: this.interactive(),\n scrollWheelZoom: this.interactive(),\n boxZoom: this.interactive(),\n keyboard: this.interactive(),\n attributionControl: true\n });\n\n L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n attribution: '© OpenStreetMap contributors',\n maxZoom: 19\n }).addTo(this.map);\n\n this.markerGroup.addTo(this.map);\n\n if (this.interactive()) {\n this.map.on('click', (event: L.LeafletMouseEvent) => {\n this.mapClick.emit(event);\n });\n }\n\n this.updateMarkers(this.markers());\n this.mapReady.emit(this.map);\n }\n\n private updateMarkers(currentMarkers: C2gMapMarkerData[]): void {\n if (!this.markerGroup) {\n return;\n }\n\n this.markerGroup.clearLayers();\n\n currentMarkers.forEach((markerData) => {\n const icon = L.divIcon({\n className: 'c2g-map-div-icon',\n html: this.buildMarkerHtml(markerData),\n iconSize: this.markerSize(markerData.size),\n iconAnchor: this.markerAnchor(markerData.size)\n });\n\n const marker = L.marker([markerData.latitude, markerData.longitude], { icon });\n\n marker.on('click', (event: L.LeafletMouseEvent) => {\n this.markerClick.emit({ marker: markerData, event });\n });\n\n if (markerData.title) {\n marker.bindTooltip(markerData.title, {\n className: 'c2g-map-tooltip',\n direction: 'top',\n offset: [0, -16]\n });\n }\n\n this.markerGroup!.addLayer(marker);\n });\n }\n\n private buildMarkerHtml(marker: C2gMapMarkerData): string {\n const markerType = marker.tourStatus ? `status-${marker.tourStatus}` : (marker.activityType ?? 'adventure');\n const markerSize = marker.size ?? 'medium';\n const markerVariant = marker.variant ?? 'default';\n const selectedClass = marker.selected ? ' c2g-map-marker--selected' : '';\n const variantClass = markerVariant === 'new-tour' ? ' c2g-map-marker--new-tour' : '';\n\n return `\n <div class=\"c2g-map-marker c2g-map-marker--${markerSize} c2g-map-marker--${markerType}${selectedClass}${variantClass}\">\n <div class=\"c2g-map-marker__pin\">\n <div class=\"c2g-map-marker__circle\">\n <span class=\"c2g-map-marker__icon material-icons\">${this.markerIcon(marker)}</span>\n </div>\n <div class=\"c2g-map-marker__point\"></div>\n </div>\n </div>\n `;\n }\n\n private markerIcon(marker: C2gMapMarkerData): string {\n if (marker.variant === 'new-tour') {\n return 'add';\n }\n\n if (marker.tourStatus) {\n const statusIconMap: Record<NonNullable<C2gMapMarkerData['tourStatus']>, string> = {\n declined: 'close',\n completed: 'check',\n current: 'radio_button_checked',\n upcoming: 'radio_button_unchecked'\n };\n return statusIconMap[marker.tourStatus];\n }\n\n const activity = marker.activityType ?? 'adventure';\n const activityIconMap: Record<NonNullable<C2gMapMarkerData['activityType']>, string> = {\n water: 'waves',\n forest: 'park',\n mountain: 'terrain',\n desert: 'wb_sunny',\n urban: 'location_city',\n adventure: 'outdoor_grill',\n 'point-of-interest': 'star'\n };\n\n return activityIconMap[activity];\n }\n\n private markerSize(size: C2gMapMarkerData['size']): L.PointExpression {\n switch (size) {\n case 'small':\n return [24, 36];\n case 'large':\n return [40, 56];\n default:\n return [32, 46];\n }\n }\n\n private markerAnchor(size: C2gMapMarkerData['size']): L.PointExpression {\n switch (size) {\n case 'small':\n return [12, 36];\n case 'large':\n return [20, 56];\n default:\n return [16, 46];\n }\n }\n}\n","<div\n #mapContainer\n class=\"c2g-map\"\n [style.height]=\"height()\"\n [style.width]=\"width()\"\n></div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ActivityType, MarkerSize, TourStatus } from './map.types';\n\n@Component({\n selector: 'c2g-map-marker',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './map-marker.component.html',\n styleUrls: ['./map-marker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MapMarkerComponent {\n readonly activityType = input<ActivityType>('adventure');\n readonly tourStatus = input<TourStatus | null>(null);\n readonly selected = input<boolean>(false);\n readonly size = input<MarkerSize>('medium');\n readonly variant = input<'default' | 'new-tour'>('default');\n\n readonly markerType = computed(() => {\n const status = this.tourStatus();\n return status ? `status-${status}` : this.activityType();\n });\n\n readonly markerIcon = computed(() => {\n if (this.variant() === 'new-tour') {\n return 'add';\n }\n\n const status = this.tourStatus();\n if (status) {\n const statusIconMap: Record<TourStatus, string> = {\n declined: 'close',\n completed: 'check',\n current: 'radio_button_checked',\n upcoming: 'radio_button_unchecked'\n };\n return statusIconMap[status];\n }\n\n const activityIconMap: Record<ActivityType, string> = {\n water: 'waves',\n forest: 'park',\n mountain: 'terrain',\n desert: 'wb_sunny',\n urban: 'location_city',\n adventure: 'outdoor_grill',\n 'point-of-interest': 'star'\n };\n\n return activityIconMap[this.activityType()];\n });\n}\n","<div\n class=\"c2g-map-marker\"\n [class.c2g-map-marker--selected]=\"selected()\"\n [class.c2g-map-marker--small]=\"size() === 'small'\"\n [class.c2g-map-marker--medium]=\"size() === 'medium'\"\n [class.c2g-map-marker--large]=\"size() === 'large'\"\n [class.c2g-map-marker--new-tour]=\"variant() === 'new-tour'\"\n [class]=\"'c2g-map-marker--' + markerType()\"\n>\n <div class=\"c2g-map-marker__pin\">\n <div class=\"c2g-map-marker__circle\">\n <span class=\"c2g-map-marker__icon material-icons\">{{ markerIcon() }}</span>\n </div>\n <div class=\"c2g-map-marker__point\"></div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"camp2gether-c2g-ui-maps.mjs","sources":["../../../projects/c2g-ui/maps/map/map.component.ts","../../../projects/c2g-ui/maps/map/map.component.html","../../../projects/c2g-ui/maps/map/map-marker.component.ts","../../../projects/c2g-ui/maps/map/map-marker.component.html","../../../projects/c2g-ui/maps/camp2gether-c2g-ui-maps.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n effect,\n input,\n output\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as L from 'leaflet';\nimport { C2gMapMarkerData, LeafletMap, LeafletMouseEvent } from './map.types';\n\n@Component({\n selector: 'c2g-map',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class MapComponent implements AfterViewInit, OnDestroy {\n @ViewChild('mapContainer', { static: true }) mapContainer!: ElementRef<HTMLDivElement>;\n\n readonly center = input<[number, number]>([47.6, 9.6]);\n readonly zoom = input<number>(7);\n readonly height = input<string>('400px');\n readonly width = input<string>('100%');\n readonly markers = input<C2gMapMarkerData[]>([]);\n readonly interactive = input<boolean>(true);\n\n readonly mapReady = output<LeafletMap>();\n readonly mapClick = output<LeafletMouseEvent>();\n readonly markerClick = output<{ marker: C2gMapMarkerData; event: LeafletMouseEvent }>();\n\n private map?: LeafletMap;\n private markerGroup?: L.LayerGroup;\n\n constructor() {\n effect(() => {\n const currentMarkers = this.markers();\n if (this.markerGroup) {\n this.updateMarkers(currentMarkers);\n }\n });\n\n effect(() => {\n const currentCenter = this.center();\n const currentZoom = this.zoom();\n if (this.map) {\n this.map.setView(L.latLng(currentCenter[0], currentCenter[1]), currentZoom, {\n animate: true,\n duration: 0.5\n });\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initializeMap();\n }\n\n ngOnDestroy(): void {\n // ViewEncapsulation.None is required for Leaflet to render tile layers and popups correctly\n // outside Angular's shadow DOM — clean up the instance explicitly to prevent memory leaks\n if (this.map) {\n this.map.remove();\n this.map = undefined;\n }\n this.markerGroup = undefined;\n }\n\n private initializeMap(): void {\n this.markerGroup = L.layerGroup();\n\n this.map = L.map(this.mapContainer.nativeElement, {\n center: L.latLng(this.center()[0], this.center()[1]),\n zoom: this.zoom(),\n zoomControl: this.interactive(),\n dragging: this.interactive(),\n touchZoom: this.interactive(),\n doubleClickZoom: this.interactive(),\n scrollWheelZoom: this.interactive(),\n boxZoom: this.interactive(),\n keyboard: this.interactive(),\n attributionControl: true\n });\n\n L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n attribution: '© OpenStreetMap contributors',\n maxZoom: 19\n }).addTo(this.map);\n\n this.markerGroup.addTo(this.map);\n\n if (this.interactive()) {\n this.map.on('click', (event: L.LeafletMouseEvent) => {\n this.mapClick.emit(event);\n });\n }\n\n this.updateMarkers(this.markers());\n this.mapReady.emit(this.map);\n }\n\n private updateMarkers(currentMarkers: C2gMapMarkerData[]): void {\n if (!this.markerGroup) {\n return;\n }\n\n this.markerGroup.clearLayers();\n\n currentMarkers.forEach((markerData) => {\n const icon = L.divIcon({\n className: 'c2g-map-div-icon',\n html: this.buildMarkerHtml(markerData),\n iconSize: this.markerSize(markerData.size),\n iconAnchor: this.markerAnchor(markerData.size)\n });\n\n const marker = L.marker([markerData.latitude, markerData.longitude], { icon });\n\n marker.on('click', (event: L.LeafletMouseEvent) => {\n this.markerClick.emit({ marker: markerData, event });\n });\n\n if (markerData.title) {\n marker.bindTooltip(markerData.title, {\n className: 'c2g-map-tooltip',\n direction: 'top',\n offset: [0, -16]\n });\n }\n\n this.markerGroup!.addLayer(marker);\n });\n }\n\n private buildMarkerHtml(marker: C2gMapMarkerData): string {\n const markerType = marker.tourStatus ? `status-${marker.tourStatus}` : (marker.activityType ?? 'adventure');\n const markerSize = marker.size ?? 'medium';\n const markerVariant = marker.variant ?? 'default';\n const selectedClass = marker.selected ? ' c2g-map-marker--selected' : '';\n const variantClass = markerVariant === 'new-tour' ? ' c2g-map-marker--new-tour' : '';\n\n return `\n <div class=\"c2g-map-marker c2g-map-marker--${markerSize} c2g-map-marker--${markerType}${selectedClass}${variantClass}\">\n <div class=\"c2g-map-marker__pin\">\n <div class=\"c2g-map-marker__circle\">\n <span class=\"c2g-map-marker__icon material-icons\">${this.markerIcon(marker)}</span>\n </div>\n <div class=\"c2g-map-marker__point\"></div>\n </div>\n </div>\n `;\n }\n\n private markerIcon(marker: C2gMapMarkerData): string {\n if (marker.variant === 'new-tour') {\n return 'add';\n }\n\n if (marker.tourStatus) {\n const statusIconMap: Record<NonNullable<C2gMapMarkerData['tourStatus']>, string> = {\n declined: 'close',\n completed: 'check',\n current: 'radio_button_checked',\n upcoming: 'radio_button_unchecked'\n };\n return statusIconMap[marker.tourStatus];\n }\n\n const activity = marker.activityType ?? 'adventure';\n const activityIconMap: Record<NonNullable<C2gMapMarkerData['activityType']>, string> = {\n water: 'waves',\n forest: 'park',\n mountain: 'terrain',\n desert: 'wb_sunny',\n urban: 'location_city',\n adventure: 'outdoor_grill',\n 'point-of-interest': 'star'\n };\n\n return activityIconMap[activity];\n }\n\n private markerSize(size: C2gMapMarkerData['size']): L.PointExpression {\n switch (size) {\n case 'small':\n return [24, 36];\n case 'large':\n return [40, 56];\n default:\n return [32, 46];\n }\n }\n\n private markerAnchor(size: C2gMapMarkerData['size']): L.PointExpression {\n switch (size) {\n case 'small':\n return [12, 36];\n case 'large':\n return [20, 56];\n default:\n return [16, 46];\n }\n }\n}\n","<div\n #mapContainer\n class=\"c2g-map\"\n [style.height]=\"height()\"\n [style.width]=\"width()\"\n></div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ActivityType, MarkerSize, TourStatus } from './map.types';\n\n@Component({\n selector: 'c2g-map-marker',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './map-marker.component.html',\n styleUrls: ['./map-marker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MapMarkerComponent {\n readonly activityType = input<ActivityType>('adventure');\n readonly tourStatus = input<TourStatus | null>(null);\n readonly selected = input<boolean>(false);\n readonly size = input<MarkerSize>('medium');\n readonly variant = input<'default' | 'new-tour'>('default');\n\n readonly markerType = computed(() => {\n const status = this.tourStatus();\n return status ? `status-${status}` : this.activityType();\n });\n\n readonly markerIcon = computed(() => {\n if (this.variant() === 'new-tour') {\n return 'add';\n }\n\n const status = this.tourStatus();\n if (status) {\n const statusIconMap: Record<TourStatus, string> = {\n declined: 'close',\n completed: 'check',\n current: 'radio_button_checked',\n upcoming: 'radio_button_unchecked'\n };\n return statusIconMap[status];\n }\n\n const activityIconMap: Record<ActivityType, string> = {\n water: 'waves',\n forest: 'park',\n mountain: 'terrain',\n desert: 'wb_sunny',\n urban: 'location_city',\n adventure: 'outdoor_grill',\n 'point-of-interest': 'star'\n };\n\n return activityIconMap[this.activityType()];\n });\n}\n","<div\n class=\"c2g-map-marker\"\n [class.c2g-map-marker--selected]=\"selected()\"\n [class.c2g-map-marker--small]=\"size() === 'small'\"\n [class.c2g-map-marker--medium]=\"size() === 'medium'\"\n [class.c2g-map-marker--large]=\"size() === 'large'\"\n [class.c2g-map-marker--new-tour]=\"variant() === 'new-tour'\"\n [class]=\"'c2g-map-marker--' + markerType()\"\n>\n <div class=\"c2g-map-marker__pin\">\n <div class=\"c2g-map-marker__circle\">\n <span class=\"c2g-map-marker__icon material-icons\">{{ markerIcon() }}</span>\n </div>\n <div class=\"c2g-map-marker__point\"></div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/maps/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { AfterViewInit, OnDestroy, ElementRef } from '@angular/core';
3
3
  import * as L from 'leaflet';
4
+ import { LeafletMouseEvent } from 'leaflet';
5
+ export { LatLng as LeafletLatLng, Map as LeafletMap, LeafletMouseEvent } from 'leaflet';
4
6
 
5
7
  type ActivityType = 'water' | 'forest' | 'mountain' | 'desert' | 'urban' | 'adventure' | 'point-of-interest';
6
8
  type TourStatus = 'declined' | 'completed' | 'current' | 'upcoming';
@@ -29,7 +31,7 @@ declare class MapComponent implements AfterViewInit, OnDestroy {
29
31
  readonly mapClick: _angular_core.OutputEmitterRef<L.LeafletMouseEvent>;
30
32
  readonly markerClick: _angular_core.OutputEmitterRef<{
31
33
  marker: C2gMapMarkerData;
32
- event: L.LeafletMouseEvent;
34
+ event: LeafletMouseEvent;
33
35
  }>;
34
36
  private map?;
35
37
  private markerGroup?;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camp2gether/c2g-ui",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"