@dereekb/dbx-web 9.6.2 → 9.6.5

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 (31) hide show
  1. package/esm2020/mapbox/lib/index.mjs +3 -1
  2. package/esm2020/mapbox/lib/mapbox.layout.component.mjs +53 -30
  3. package/esm2020/mapbox/lib/mapbox.marker.component.mjs +10 -8
  4. package/esm2020/mapbox/lib/mapbox.marker.mjs +16 -0
  5. package/esm2020/mapbox/lib/mapbox.markers.component.mjs +56 -0
  6. package/esm2020/mapbox/lib/mapbox.menu.component.mjs +1 -1
  7. package/esm2020/mapbox/lib/mapbox.module.mjs +5 -1
  8. package/fesm2015/dereekb-dbx-web-mapbox.mjs +135 -40
  9. package/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
  10. package/fesm2020/dereekb-dbx-web-mapbox.mjs +135 -40
  11. package/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
  12. package/lib/layout/text/_text.scss +18 -0
  13. package/mapbox/esm2020/lib/index.mjs +3 -1
  14. package/mapbox/esm2020/lib/mapbox.layout.component.mjs +53 -30
  15. package/mapbox/esm2020/lib/mapbox.marker.component.mjs +10 -8
  16. package/mapbox/esm2020/lib/mapbox.marker.mjs +16 -0
  17. package/mapbox/esm2020/lib/mapbox.markers.component.mjs +56 -0
  18. package/mapbox/esm2020/lib/mapbox.menu.component.mjs +1 -1
  19. package/mapbox/esm2020/lib/mapbox.module.mjs +5 -1
  20. package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs +135 -40
  21. package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
  22. package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs +135 -40
  23. package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
  24. package/mapbox/lib/index.d.ts +2 -0
  25. package/mapbox/lib/mapbox.layout.component.d.ts +5 -1
  26. package/mapbox/lib/mapbox.marker.component.d.ts +4 -33
  27. package/mapbox/lib/mapbox.marker.d.ts +49 -0
  28. package/mapbox/lib/mapbox.markers.component.d.ts +19 -0
  29. package/mapbox/lib/mapbox.module.d.ts +11 -10
  30. package/mapbox/package.json +3 -3
  31. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"dereekb-dbx-web-mapbox.mjs","sources":["../../../../packages/dbx-web/mapbox/src/lib/mapbox.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.map.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.menu.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.ts","../../../../packages/dbx-web/mapbox/src/dereekb-dbx-web-mapbox.ts"],"sourcesContent":["import { Injectable, Optional } from '@angular/core';\nimport { LatLngPointInput, Milliseconds } from '@dereekb/util';\nimport { MapboxOptions } from 'mapbox-gl';\nimport { KnownMapboxStyle, MapboxZoomLevel } from './mapbox';\n\nexport class DbxMapboxConfig {\n readonly defaultStyle?: MapboxOptions['style'];\n readonly defaultZoom?: MapboxZoomLevel;\n readonly defaultCenter?: LatLngPointInput;\n readonly defaultStoreRefreshPeriod?: number;\n}\n\nexport const DEFAULT_MAPBOX_STYLE: KnownMapboxStyle = 'mapbox://styles/mapbox/streets-v11';\nexport const DEFAULT_MAPBOX_CENTER: LatLngPointInput = [30.2690138665, -97.7408297965];\nexport const DEFAULT_MAPBOX_ZOOM: MapboxZoomLevel = 8;\nexport const DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD: Milliseconds = 200;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxMapboxService {\n private readonly _config: DbxMapboxConfig;\n\n constructor(@Optional() config: DbxMapboxConfig) {\n this._config = config ?? {};\n }\n\n get defaultStyle() {\n return this._config.defaultStyle ?? DEFAULT_MAPBOX_STYLE;\n }\n\n get defaultZoom(): MapboxZoomLevel {\n return this._config.defaultZoom ?? DEFAULT_MAPBOX_ZOOM;\n }\n\n get defaultCenter(): LatLngPointInput {\n return this._config.defaultCenter ?? DEFAULT_MAPBOX_CENTER;\n }\n\n get mapboxMapStoreTimerRefreshPeriod(): number {\n return this._config.defaultStoreRefreshPeriod ?? DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD;\n }\n}\n","import { cleanup, filterMaybe, onTrueToFalse } from '@dereekb/rxjs';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { isSameLatLngBound, isSameLatLngPoint, IsWithinLatLngBoundFunction, isWithinLatLngBoundFunction, LatLngBound, latLngBoundFunction, LatLngPointInput, LatLngPoint, latLngPointFunction, Maybe, OverlapsLatLngBoundFunction, overlapsLatLngBoundFunction, diffLatLngBoundPoints, latLngBoundCenterPoint, addLatLngPoints, isDefaultLatLngPoint, swMostLatLngPoint, neMostLatLngPoint, latLngBoundWrapsMap } from '@dereekb/util';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { MapService } from 'ngx-mapbox-gl';\nimport { defaultIfEmpty, distinctUntilChanged, filter, map, shareReplay, switchMap, tap, NEVER, Observable, of, Subscription, startWith, interval, first, combineLatest } from 'rxjs';\nimport * as MapboxGl from 'mapbox-gl';\nimport { DbxMapboxClickEvent, KnownMapboxStyle, MapboxBearing, MapboxEaseTo, MapboxFitBounds, MapboxFlyTo, MapboxJumpTo, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSnapToNorth, MapboxStyleConfig, MapboxZoomLevel } from './mapbox';\nimport { DbxMapboxService } from './mapbox.service';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport type MapboxMapLifecycleState = 'init' | 'load' | 'render' | 'idle';\nexport type MapboxMapMoveState = 'init' | 'idle' | 'moving';\nexport type MapboxMapZoomState = 'init' | 'idle' | 'zooming';\nexport type MapboxMapRotateState = 'init' | 'idle' | 'rotating';\n\nexport interface StringMapboxListenerPair {\n type: string;\n listener: (ev: MapboxGl.EventData) => void;\n}\n\nexport interface TypedMapboxListenerPair<T extends keyof MapboxGl.MapEventType> {\n type: T;\n listener: (ev: MapboxGl.MapEventType[T] & MapboxGl.EventData) => void;\n}\n\nexport interface DbxMapboxMarginCalculationSizing {\n leftMargin: number;\n rightMargin: number;\n fullWidth: number;\n}\n\nexport interface DbxMapboxStoreState {\n /**\n * Current MapService being utilized.\n */\n mapService?: Maybe<MapService>;\n lifecycleState: MapboxMapLifecycleState;\n moveState: MapboxMapMoveState;\n zoomState: MapboxMapZoomState;\n rotateState: MapboxMapRotateState;\n /**\n * Latest click event\n */\n clickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Latest double-click event\n */\n doubleClickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Latest contextmenu event.\n */\n rightClickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Whether or not to retain content between resets.\n *\n * True by default.\n */\n retainContent: boolean;\n /**\n * Custom content configuration.\n */\n content?: Maybe<DbxInjectionComponentConfig<unknown>>;\n /**\n * Latest error\n */\n error?: Maybe<Error>;\n /**\n * Map margin/offset\n */\n margin?: Maybe<DbxMapboxMarginCalculationSizing>;\n}\n\n/**\n * Store used for retrieving information.\n */\n@Injectable()\nexport class DbxMapboxMapStore extends ComponentStore<DbxMapboxStoreState> implements OnDestroy {\n private latLngPoint = latLngPointFunction();\n private latLngBound = latLngBoundFunction({ pointFunction: latLngPointFunction({ wrap: false, validate: false }) });\n\n constructor(@Inject(DbxMapboxService) private readonly dbxMapboxService: DbxMapboxService) {\n super({\n lifecycleState: 'init',\n moveState: 'init',\n zoomState: 'init',\n rotateState: 'init',\n retainContent: true\n });\n }\n\n // MARK: Effects\n readonly setMapService = this.effect((input: Observable<Maybe<MapService>>) => {\n return input.pipe(\n switchMap((service: Maybe<MapService>) => {\n this._setMapService(service);\n\n if (!service) {\n return NEVER;\n } else {\n return service.mapLoaded$.pipe(\n defaultIfEmpty(undefined),\n map(() => {\n this._setLifecycleState('idle');\n this._setMoveState('idle');\n this._setZoomState('idle');\n this._setRotateState('idle');\n\n const map = service.mapInstance;\n\n const listenerPairs: StringMapboxListenerPair[] = [];\n\n function addListener<T extends keyof MapboxGl.MapEventType>(type: T, listener: (ev: MapboxGl.MapEventType[T] & MapboxGl.EventData) => void) {\n map.on(type, listener);\n listenerPairs.push({ type, listener } as StringMapboxListenerPair);\n }\n\n addListener('idle', () => this._setLifecycleState('idle'));\n addListener('render', () => this._setLifecycleState('render'));\n addListener('error', (x) => {\n this._setError(x.error);\n });\n\n addListener('movestart', () => this._setMoveState('moving'));\n addListener('moveend', () => this._setMoveState('idle'));\n\n addListener('zoomstart', () => this._setZoomState('zooming'));\n addListener('zoomend', () => this._setZoomState('idle'));\n\n addListener('rotatestart', () => this._setRotateState('rotating'));\n addListener('rotateend', () => this._setRotateState('idle'));\n\n addListener('click', (x) => this._setClickEvent(x));\n addListener('dblclick', (x) => this._setDoubleClickEvent(x));\n addListener('contextmenu', (x) => this._setRightClickEvent(x));\n\n const subs: Subscription[] = [];\n\n return {\n service,\n listenerPairs,\n subs\n };\n })\n );\n }\n }),\n cleanup(({ service, listenerPairs, subs }) => {\n const map = service.mapInstance;\n\n if (map) {\n listenerPairs.forEach((x) => {\n map.off(x.type, x.listener);\n });\n }\n\n subs.forEach((sub) => sub.unsubscribe());\n })\n );\n });\n\n readonly setStyle = this.effect((input: Observable<MapboxStyleConfig | KnownMapboxStyle | string>) => {\n return input.pipe(\n switchMap((style) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (typeof style === 'string') {\n map.setStyle(style);\n } else {\n map.setStyle(style.style, style.options);\n }\n })\n );\n })\n );\n });\n\n readonly setCenter = this.effect((input: Observable<LatLngPointInput>) => {\n return input.pipe(\n switchMap((center: LatLngPointInput) => {\n const centerPoint = this.latLngPoint(center);\n return this.mapInstance$.pipe(tap((map) => map.setCenter(centerPoint)));\n })\n );\n });\n\n readonly setZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setZoom(zoom)));\n })\n );\n });\n\n readonly setMinZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setMinZoom(zoom)));\n })\n );\n });\n\n readonly setMaxZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setMaxZoom(zoom)));\n })\n );\n });\n\n readonly setKeyboardDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.keyboard.enable();\n } else {\n map.keyboard.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setDragRotateDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.dragRotate.enable();\n } else {\n map.dragRotate.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setDragPanDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.dragPan.enable();\n } else {\n map.dragPan.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setZoomDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.scrollZoom.enable();\n map.doubleClickZoom.enable();\n } else {\n map.scrollZoom.disable();\n map.doubleClickZoom.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch) => {\n return this.mapInstance$.pipe(tap((map) => map.setPitch(pitch)));\n })\n );\n });\n\n readonly setMinPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch: number) => {\n return this.mapInstance$.pipe(tap((map) => map.setMinPitch(pitch)));\n })\n );\n });\n\n readonly setMaxPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch: number) => {\n return this.mapInstance$.pipe(tap((map) => map.setMaxPitch(pitch)));\n })\n );\n });\n\n readonly setBearing = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((bearing) => {\n return this.mapInstance$.pipe(tap((map) => map.setBearing(bearing)));\n })\n );\n });\n\n readonly rotateTo = this.effect((input: Observable<MapboxBearing | MapboxRotateTo>) => {\n return input.pipe(\n switchMap((rotateInput: MapboxBearing | MapboxRotateTo) => {\n const rotate: MapboxRotateTo = typeof rotateInput === 'number' ? { bearing: rotateInput } : rotateInput;\n return this.mapInstance$.pipe(tap((map) => map.rotateTo(rotate.bearing, rotate.options, rotate?.eventData)));\n })\n );\n });\n\n readonly resetNorth = this.effect((input: Observable<Maybe<MapboxResetNorth> | void>) => {\n return input.pipe(\n switchMap((reset: Maybe<MapboxResetNorth> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.resetNorth(reset?.options, reset?.eventData)));\n })\n );\n });\n\n readonly resetNorthPitch = this.effect((input: Observable<Maybe<MapboxResetNorthPitch> | void>) => {\n return input.pipe(\n switchMap((reset: Maybe<MapboxResetNorthPitch> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.resetNorthPitch(reset?.options, reset?.eventData)));\n })\n );\n });\n\n readonly snapToNorth = this.effect((input: Observable<Maybe<MapboxSnapToNorth> | void>) => {\n return input.pipe(\n switchMap((snap: Maybe<MapboxSnapToNorth> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.snapToNorth(snap?.options, snap?.eventData)));\n })\n );\n });\n\n readonly fitBounds = this.effect((input: Observable<MapboxFitBounds>) => {\n return input.pipe(\n switchMap((x) => {\n const bound = this.latLngBound(x.bounds);\n return this.mapInstance$.pipe(tap((map) => map.fitBounds(new MapboxGl.LngLatBounds(bound.sw, bound.ne), x.options, x.eventData)));\n })\n );\n });\n\n readonly jumpTo = this.effect((input: Observable<MapboxJumpTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.latLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.jumpTo({ ...x.to, center }, x.eventData)));\n })\n );\n });\n\n readonly easeTo = this.effect((input: Observable<MapboxEaseTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.latLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.easeTo({ ...x.to, center }, x.eventData)));\n })\n );\n });\n\n readonly flyTo = this.effect((input: Observable<MapboxFlyTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.latLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.flyTo({ ...x.to, center }, x.eventData)));\n })\n );\n });\n\n readonly resetPitchAndBearing = this.effect((input: Observable<void>) => {\n return input.pipe(\n switchMap(() => {\n return this.mapInstance$.pipe(\n tap((map) => {\n map.setPitch(0);\n map.setBearing(0);\n })\n );\n })\n );\n });\n\n // MARK: Accessors\n get timerRefreshPeriod() {\n return this.dbxMapboxService.mapboxMapStoreTimerRefreshPeriod;\n }\n\n movingTimer(period = this.timerRefreshPeriod) {\n return this.moveState$.pipe(\n switchMap((x) => {\n if (x === 'moving') {\n return interval(period);\n } else {\n return of(0);\n }\n }),\n shareReplay()\n );\n }\n\n lifecycleRenderTimer(period = this.timerRefreshPeriod) {\n return this.lifecycleState$.pipe(\n switchMap((x) => {\n if (x === 'render') {\n return interval(period);\n } else {\n return of(0);\n }\n }),\n shareReplay()\n );\n }\n\n atNextIdle(): Observable<boolean> {\n return this.moveState$.pipe(\n map((x) => x === 'idle'),\n first()\n );\n }\n\n calculateNextCenterWithOffset(inputOffset: LatLngPointInput): Observable<LatLngPoint> {\n const offset = this.latLngPoint(inputOffset);\n\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.center$.pipe(\n first(),\n map((center) => {\n const newCenter = {\n lat: offset.lat + center.lat,\n lng: offset.lng + center.lng\n };\n return newCenter;\n })\n )\n )\n );\n }\n\n calculateNextCenterOffsetWithScreenMarginChange(sizing: DbxMapboxMarginCalculationSizing): Observable<LatLngPoint> {\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.bound$.pipe(\n first(),\n map((bounds) => {\n const diff = diffLatLngBoundPoints(bounds);\n const center = latLngBoundCenterPoint(bounds);\n\n const offsetWidth = sizing.leftMargin + sizing.rightMargin; // 300 + 0\n const newWidth = sizing.fullWidth - offsetWidth; // 1000 - 300 - 0\n const newWidthRatio = newWidth / sizing.fullWidth; // 700 / 1000\n const newCenterLongitudeWidth = diff.lng * newWidthRatio; // 70% offset\n\n const effectiveOffset: LatLngPoint = {\n lat: 0,\n lng: newCenterLongitudeWidth / 2\n };\n\n const newCenter = addLatLngPoints(bounds.sw, effectiveOffset);\n newCenter.lat = center.lat; // retain center position\n\n // console.log({ sizing, bounds, effectiveOffset, newWidth, offsetWidth, diff, center, newCenter });\n\n return newCenter;\n })\n )\n )\n );\n }\n\n readonly currentMapService$ = this.state$.pipe(\n map((x) => x.mapService),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly mapService$ = this.currentMapService$.pipe(filterMaybe());\n\n readonly currentMapInstance$: Observable<Maybe<MapboxGl.Map>> = this.currentMapService$.pipe(\n switchMap((currentMapService: Maybe<MapService>) => {\n if (currentMapService) {\n return currentMapService.mapLoaded$.pipe(\n defaultIfEmpty(undefined),\n map(() => currentMapService.mapInstance)\n );\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly mapInstance$ = this.currentMapInstance$.pipe(filterMaybe());\n\n readonly moveState$ = this.state$.pipe(\n map((x) => x.moveState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly lifecycleState$ = this.state$.pipe(\n map((x) => x.lifecycleState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly zoomState$ = this.state$.pipe(\n map((x) => x.zoomState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly rotateState$ = this.state$.pipe(\n map((x) => x.rotateState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isInitialized$ = this.currentMapInstance$.pipe(\n switchMap((x) => {\n if (!x) {\n return of(false);\n } else {\n return combineLatest([this.moveState$.pipe(map((x) => x === 'idle')), this.lifecycleState$.pipe(map((x) => x === 'idle'))]).pipe(\n filter(([m, l]) => m && l),\n first(),\n map(() => true)\n );\n }\n }),\n shareReplay(1)\n );\n\n readonly whenInitialized$ = this.isInitialized$.pipe(\n filter((x) => true),\n shareReplay(1)\n );\n\n readonly isRendering$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.lifecycleState$.pipe(\n map((x) => x === 'render'),\n distinctUntilChanged(),\n shareReplay()\n )\n )\n );\n\n readonly isMoving$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.moveState$.pipe(\n map((x) => x === 'moving'),\n distinctUntilChanged(),\n shareReplay()\n )\n )\n );\n\n readonly isZooming$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.zoomState$.pipe(\n map((x) => x === 'zooming'),\n distinctUntilChanged(),\n shareReplay()\n )\n )\n );\n\n readonly isRotating$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.rotateState$.pipe(\n map((x) => x === 'rotating'),\n distinctUntilChanged(),\n shareReplay()\n )\n )\n );\n\n private readonly _movingTimer = this.movingTimer();\n private readonly _renderingTimer = this.lifecycleRenderTimer();\n\n readonly centerNow$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => this.latLngPoint(x.getCenter())))),\n shareReplay(1)\n )\n ),\n shareReplay(1)\n );\n\n readonly center$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isMoving$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.centerNow$.pipe(first())),\n distinctUntilChanged(isSameLatLngPoint),\n shareReplay(1)\n );\n }),\n shareReplay(1)\n );\n\n readonly margin$ = this.state$.pipe(\n map((x) => x.margin),\n distinctUntilChanged((a, b) => a != null && b != null && a.fullWidth === b.fullWidth && a.leftMargin === b.leftMargin && a.rightMargin === b.rightMargin),\n shareReplay(1)\n );\n\n readonly reverseMargin$ = this.margin$.pipe(\n map((x) => {\n if (x) {\n return { leftMargin: -x.leftMargin, rightMargin: -x.rightMargin, fullWidth: x.fullWidth };\n } else {\n return x;\n }\n })\n );\n\n readonly centerGivenMargin$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.reverseMargin$.pipe(\n switchMap((x) => {\n if (x) {\n return this.center$.pipe(switchMap((_) => this.calculateNextCenterOffsetWithScreenMarginChange(x)));\n } else {\n return this.isMoving$.pipe(\n filter((x) => !x),\n switchMap(() => this.center$)\n );\n }\n })\n );\n }),\n shareReplay(1)\n );\n\n readonly boundNow$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) =>\n this._renderingTimer.pipe(\n map(() => {\n const bound = x.getBounds();\n const boundSw = bound.getSouthWest();\n const boundNe = bound.getNorthEast();\n\n const sw = isDefaultLatLngPoint(boundSw) ? swMostLatLngPoint() : boundSw;\n const ne = isDefaultLatLngPoint(boundNe) ? neMostLatLngPoint() : boundNe;\n\n return this.latLngBound(sw, ne);\n })\n )\n ),\n shareReplay(1)\n )\n )\n );\n\n readonly bound$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRendering$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.boundNow$.pipe(first())),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n })\n );\n\n readonly boundWrapsAroundWorld$: Observable<boolean> = this.bound$.pipe(\n map((x) => latLngBoundWrapsMap(x)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isWithinBoundFunction$: Observable<IsWithinLatLngBoundFunction> = this.bound$.pipe(\n map((x) => isWithinLatLngBoundFunction(x)),\n shareReplay(1)\n );\n\n readonly overlapsBoundFunction$: Observable<OverlapsLatLngBoundFunction> = this.bound$.pipe(\n map((x) => overlapsLatLngBoundFunction(x)),\n shareReplay(1)\n );\n\n readonly zoomNow$: Observable<MapboxZoomLevel> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._renderingTimer.pipe(map(() => x.getZoom() as MapboxZoomLevel))),\n shareReplay(1)\n )\n )\n );\n\n readonly zoom$: Observable<MapboxZoomLevel> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isZooming$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.zoomNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly pitchNow$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => x.getPitch()))),\n shareReplay(1)\n )\n )\n );\n\n readonly pitch$ = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRotating$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.pitchNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly bearingNow$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => x.getBearing()))),\n shareReplay(1)\n )\n )\n );\n\n readonly bearing$ = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRotating$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.bearingNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly content$ = this.state$.pipe(\n map((x) => x.content),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hasContent$ = this.content$.pipe(map(Boolean));\n\n readonly clickEvent$ = this.state$.pipe(\n map((x) => x.clickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly doubleClickEvent$ = this.state$.pipe(\n map((x) => x.doubleClickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly rightClickEvent$ = this.state$.pipe(\n map((x) => x.rightClickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n // MARK: State Changes\n readonly setMargin = this.updater((state, margin: Maybe<DbxMapboxMarginCalculationSizing>) => ({ ...state, margin: margin && (margin.rightMargin !== 0 || margin.leftMargin !== 0) ? margin : undefined }));\n\n private readonly _setMapService = this.updater((state, mapService: Maybe<MapService>) => ({ mapService, moveState: 'init', lifecycleState: 'init', zoomState: 'init', rotateState: 'init', retainContent: state.retainContent, content: state.retainContent ? state.content : undefined }));\n private readonly _setLifecycleState = this.updater((state, lifecycleState: MapboxMapLifecycleState) => ({ ...state, lifecycleState }));\n private readonly _setMoveState = this.updater((state, moveState: MapboxMapMoveState) => ({ ...state, moveState }));\n private readonly _setZoomState = this.updater((state, zoomState: MapboxMapZoomState) => ({ ...state, zoomState }));\n private readonly _setRotateState = this.updater((state, rotateState: MapboxMapRotateState) => ({ ...state, rotateState }));\n\n private readonly _setClickEvent = this.updater((state, clickEvent: DbxMapboxClickEvent) => ({ ...state, clickEvent }));\n private readonly _setDoubleClickEvent = this.updater((state, doubleClickEvent: DbxMapboxClickEvent) => ({ ...state, doubleClickEvent }));\n private readonly _setRightClickEvent = this.updater((state, rightClickEvent: DbxMapboxClickEvent) => ({ ...state, rightClickEvent }));\n\n private readonly _setError = this.updater((state, error: Error) => ({ ...state, error }));\n\n readonly clearContent = this.updater((state) => ({ ...state, content: undefined }));\n readonly setContent = this.updater((state, content: Maybe<DbxInjectionComponentConfig<unknown>>) => ({ ...state, content }));\n}\n","import { DbxMapboxService } from './mapbox.service';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { Directive, Host, OnInit, Optional } from '@angular/core';\nimport { MapComponent, MapService } from 'ngx-mapbox-gl';\nimport { latLngPoint } from '@dereekb/util';\n\n/**\n * Directive that configures a MapComponent with content from DbxMapboxService. Connects a host MapService to a parent DbxMapboxMapStore if available.\n */\n@Directive({\n selector: '[dbxMapboxMap]'\n})\nexport class DbxMapboxMapDirective implements OnInit {\n constructor(\n //\n @Host() readonly mapService: MapService,\n @Host() readonly mapboxMap: MapComponent,\n readonly dbxMapboxService: DbxMapboxService,\n @Optional() readonly dbxMapboxMapStore: DbxMapboxMapStore\n ) {}\n\n ngOnInit(): void {\n // style must be provided first before the map will load.\n this.mapboxMap.style = this.dbxMapboxService.defaultStyle;\n this.mapboxMap.zoom = [this.dbxMapboxService.defaultZoom];\n this.mapboxMap.center = latLngPoint(this.dbxMapboxService.defaultCenter);\n\n if (this.dbxMapboxMapStore) {\n this.dbxMapboxMapStore.setMapService(this.mapService);\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Content drawer that connects with DbxMapboxMapStore to\n */\n@Component({\n selector: 'dbx-mapbox-layout-drawer',\n templateUrl: './mapbox.layout.drawer.component.html',\n host: {\n class: 'dbx-mapbox-layout-drawer'\n }\n})\nexport class DbxMapboxLayoutDrawerComponent {\n readonly config$ = this.dbxMapboxMapStore.content$;\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore) {}\n}\n","<div>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n</div>\n","import { skip, switchMap, first, startWith, shareReplay, throttleTime, map, distinctUntilChanged, BehaviorSubject, combineLatest, Subject, Observable } from 'rxjs';\nimport { Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { Maybe } from '@dereekb/util';\nimport { dbxColorBackground, DbxThemeColor } from '@dereekb/dbx-web';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { MatDrawerContainer } from '@angular/material/sidenav';\nimport { MapboxEaseTo } from './mapbox';\n\nexport type DbxMapboxLayoutSide = 'left' | 'right';\n\n/**\n * Responsive component meant to split a left and right column.\n *\n * The left column is smaller than the right column, which contains the primary content.\n *\n * Requires a TwoColumnsContextStore to be provided.\n */\n@Component({\n selector: 'dbx-mapbox-layout',\n templateUrl: './mapbox.layout.component.html',\n styleUrls: ['./mapbox.layout.component.scss']\n})\nexport class DbxMapboxLayoutComponent extends SubscriptionObject implements OnInit, OnDestroy {\n @ViewChild(MatDrawerContainer)\n readonly container!: MatDrawerContainer;\n\n @ViewChild('content', { read: ElementRef, static: true })\n readonly content!: ElementRef;\n\n private _resized = new Subject<void>();\n private _updateMargins = new Subject<void>();\n private _forceHasContent = new BehaviorSubject<boolean>(false);\n private _side = new BehaviorSubject<DbxMapboxLayoutSide>('right');\n private _openToggle = new BehaviorSubject<boolean>(true);\n private _color = new BehaviorSubject<Maybe<DbxThemeColor>>(undefined);\n private _toggleSub = new SubscriptionObject();\n\n readonly side$ = this._side.pipe(distinctUntilChanged(), shareReplay(1));\n\n readonly hasContent$ = combineLatest([this._forceHasContent, this.dbxMapboxMapStore.hasContent$]).pipe(\n map(([hasContent, forceHasContent]) => hasContent || forceHasContent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly opened$ = combineLatest([this.hasContent$, this._openToggle]).pipe(\n map(([hasContent, open]) => hasContent && open),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly position$: Observable<'start' | 'end'> = this.side$.pipe(\n map((x) => (x === 'right' ? 'end' : 'start')),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly drawerClasses$ = combineLatest([this.side$, this.dbxMapboxMapStore.hasContent$, this.opened$]).pipe(\n //\n map(([side, hasContent, open]) => (hasContent ? 'has-drawer-content' : 'no-drawer-content') + ` ${side}-drawer ` + (open ? 'open-drawer' : '')),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly drawerButtonClasses$ = combineLatest([this.dbxMapboxMapStore.hasContent$, this._color]).pipe(\n //\n map(([hasContent, color]) => dbxColorBackground(color)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonIcon$: Observable<string> = combineLatest([this.side$, this.opened$]).pipe(\n map(([side, opened]) => {\n let icons = ['chevron_right', 'chevron_left'];\n\n if (side === 'left') {\n icons = icons.reverse();\n }\n\n return opened ? icons[0] : icons[1];\n })\n );\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore) {\n super();\n }\n\n ngOnInit(): void {\n this.subscription = (\n this.side$.pipe(\n switchMap(() =>\n this._resized.pipe(\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => 'r'),\n startWith('s')\n )\n )\n ) as Observable<'s' | 'r'>\n ).subscribe((reason) => {\n this.dbxMapboxMapStore.mapInstance$.subscribe((x) => {\n x.resize();\n\n // side changed\n if (reason === 's') {\n setTimeout(() => {\n this._updateMargins.next();\n });\n }\n });\n });\n\n let init = false;\n\n this._toggleSub.subscription = combineLatest([this.opened$.pipe(distinctUntilChanged()), this._updateMargins]).subscribe(([opened]) => {\n let { right } = this.container._contentMargins;\n\n this.container.updateContentMargins();\n\n setTimeout(() => {\n const flip = opened ? 1 : -1;\n\n if (opened) {\n right = this.container._contentMargins.right;\n }\n\n right = (right || 0) * flip;\n\n const element: HTMLElement = this.content.nativeElement;\n const width = element.clientWidth;\n\n const margin = {\n leftMargin: 0,\n rightMargin: right,\n fullWidth: width\n };\n\n const easeTo: Observable<MapboxEaseTo> = this.dbxMapboxMapStore.calculateNextCenterOffsetWithScreenMarginChange(margin).pipe(\n first(),\n map((center) => ({ to: { center, duration: 3200, essential: false } } as MapboxEaseTo))\n );\n\n this.dbxMapboxMapStore.setMargin(opened ? margin : undefined);\n\n if (!init) {\n this.dbxMapboxMapStore.easeTo(easeTo);\n } else {\n init = true;\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this._resized.complete();\n this._updateMargins.complete();\n this._side.complete();\n this._openToggle.complete();\n this._color.complete();\n this._toggleSub.destroy();\n this._forceHasContent.complete();\n }\n\n toggleDrawer(open?: boolean) {\n if (open == null) {\n open = !this._openToggle.value;\n }\n\n this._openToggle.next(open);\n }\n\n @Input()\n set side(side: Maybe<DbxMapboxLayoutSide>) {\n if (side != null) {\n this._side.next(side);\n }\n }\n\n @Input()\n set opened(opened: Maybe<boolean>) {\n if (opened != null) {\n this._openToggle.next(opened);\n }\n }\n\n @Input()\n set hasContent(hasContent: Maybe<boolean>) {\n if (hasContent != null) {\n this._forceHasContent.next(hasContent);\n }\n }\n\n @Input()\n set drawerColor(color: Maybe<DbxThemeColor>) {\n this._color.next(color);\n }\n\n onResized(event: ResizedEvent): void {\n this._resized.next();\n }\n}\n","<mat-drawer-container class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer [opened]=\"opened$ | async\" mode=\"push\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n","import { SubscriptionObject } from '@dereekb/rxjs';\nimport { filter, switchMap, BehaviorSubject, of } from 'rxjs';\nimport { DbxMapboxService } from './mapbox.service';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, Host, HostListener, Input, OnInit, Optional, OnDestroy, NgZone } from '@angular/core';\nimport { MapComponent, MapService } from 'ngx-mapbox-gl';\nimport { Vector, latLngPoint, Maybe, DestroyFunction, DestroyFunctionObject } from '@dereekb/util';\nimport { MatMenu, MatMenuTrigger } from '@angular/material/menu';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { disableRightClickInCdkBackdrop } from '@dereekb/dbx-web';\n\n/**\n * Directive that connects a host MatMenuTrigger to a DbxMapboxMapStore and listens for right-clicks on the map.\n *\n * The map dissapears if the mouse scrolls anywhere else on the map.\n */\n@Component({\n selector: 'dbx-mapbox-menu',\n template: '',\n host: {\n style: 'visibility: hidden; position: fixed',\n '[style.top]': 'pos.y',\n '[style.left]': 'pos.x'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMenuComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private _pos = { x: `0`, y: `0` };\n private _active = new BehaviorSubject<boolean>(true);\n\n private _menuCloseSub = new SubscriptionObject();\n private _preventRightClick = new DestroyFunctionObject();\n\n get pos() {\n return this._pos;\n }\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore, @Host() readonly matMenuTrigger: MatMenuTrigger, readonly ngZone: NgZone, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this._active\n .pipe(\n switchMap((active) => {\n if (active) {\n return this.dbxMapboxMapStore.rightClickEvent$;\n } else {\n return of();\n }\n }),\n filter(Boolean)\n )\n .subscribe((event) => {\n const menu = this.matMenuTrigger.menu;\n const buttonEvent = event.originalEvent;\n\n if (menu && buttonEvent) {\n buttonEvent.preventDefault();\n\n // update position of this component for menu to open at\n this._pos = {\n x: `${buttonEvent.x}px`,\n y: `${buttonEvent.y}px`\n };\n\n safeMarkForCheck(this.cdRef);\n\n // open menu\n this.ngZone.run(() => this.matMenuTrigger.openMenu());\n\n // prevent right clicks in the cdkOverlay while the menu is open\n this._preventRightClick.destroy = disableRightClickInCdkBackdrop(undefined, () => {\n this.ngZone.run(() => this.matMenuTrigger.closeMenu());\n });\n }\n });\n\n this._menuCloseSub.subscription = this.matMenuTrigger.menuClosed.subscribe(() => {\n // destroy prevention when the menu is closed.\n this._preventRightClick.destroy();\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._active.complete();\n this._preventRightClick.destroy();\n this._menuCloseSub.destroy();\n\n if (this.matMenuTrigger) {\n this.matMenuTrigger.closeMenu();\n }\n }\n\n @Input('dbxMapboxMenu')\n set active(active: Maybe<boolean>) {\n this._active.next(active ?? true);\n }\n}\n","import { Directive, Injectable, Injector, Optional, Provider, SkipSelf } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Token used by provideMapboxStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxMapStore into the child view.\n */\n@Injectable()\nexport class DbxMapboxMapStoreProviderBlock {\n constructor(@SkipSelf() readonly dbxMapboxMapStore: DbxMapboxMapStore) {}\n}\n\n@Directive({\n selector: '[dbxMapboxStoreParentBlocker]',\n providers: [DbxMapboxMapStoreProviderBlock]\n})\nexport class DbxMapboxMapStoreInjectionBlockDirective {}\n\n/**\n * Creates a Provider that initializes a new DbxMapboxMapStore if a parent does not exist.\n *\n * If a DbxMapboxMapStoreInjectionBlock is available in the context, and references the same dbxMapboxMapStore that is attempting to be injected, a new DbxMapboxMapStore is created.\n *\n * @returns\n */\nexport function provideMapboxStoreIfParentIsUnavailable(): Provider {\n return {\n provide: DbxMapboxMapStore,\n useFactory: (parentInjector: Injector, dbxMapboxMapStoreInjectionBlock?: DbxMapboxMapStoreProviderBlock, dbxMapboxMapStore?: DbxMapboxMapStore) => {\n if (!dbxMapboxMapStore || (dbxMapboxMapStore && dbxMapboxMapStoreInjectionBlock != null && dbxMapboxMapStoreInjectionBlock.dbxMapboxMapStore === dbxMapboxMapStore)) {\n // create a new dbxMapboxMapStore to use\n const injector = Injector.create({ providers: [{ provide: DbxMapboxMapStore }], parent: parentInjector });\n dbxMapboxMapStore = injector.get(DbxMapboxMapStore);\n }\n\n return dbxMapboxMapStore;\n },\n deps: [Injector, [new Optional(), DbxMapboxMapStoreProviderBlock], [new Optional(), new SkipSelf(), DbxMapboxMapStore]]\n };\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { FactoryWithRequiredInput, getValueFromGetter, LatLngPointRef, Maybe, Pixels } from '@dereekb/util';\n\n/**\n * DbxMapboxMarkerSize. Numbers are converted to pixels.\n */\nexport type DbxMapboxMarkerSize = 'small' | 'medium' | 'large' | 'tall' | Pixels;\n\nexport interface DbxMapboxMarker extends LatLngPointRef {\n /**\n * icon\n */\n icon?: string;\n /**\n * label\n */\n label?: string;\n /**\n * Image URL\n */\n image?: string | FactoryWithRequiredInput<string, Pixels>;\n /**\n * Size of the marker.\n */\n size?: DbxMapboxMarkerSize;\n /**\n *\n */\n anchor?: ClickableAnchor;\n /**\n * Additional object styling\n */\n style?: object;\n}\n\n@Component({\n selector: 'dbx-mapbox-marker',\n template: `\n <mgl-marker *ngIf=\"marker\" [lngLat]=\"latLng\">\n <dbx-anchor [anchor]=\"anchor\">\n <div class=\"dbx-mapbox-marker\">\n <div class=\"dbx-mapbox-marker-content\" [ngStyle]=\"style\">\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n </div>\n <div class=\"dbx-mapbox-marker-label\" *ngIf=\"label\">{{ label }}</div>\n </div>\n </dbx-anchor>\n </mgl-marker>\n `,\n styleUrls: ['./mapbox.marker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMarkerComponent {\n private _marker!: Maybe<DbxMapboxMarker>;\n\n @Input()\n get marker() {\n return this._marker;\n }\n\n set marker(marker: Maybe<DbxMapboxMarker>) {\n this._marker = marker;\n }\n\n constructor() {}\n\n get latLng() {\n return this._marker?.latLng;\n }\n\n get anchor() {\n return this._marker?.anchor;\n }\n\n get label() {\n return this._marker?.label;\n }\n\n get icon() {\n return this._marker?.icon;\n }\n\n get style() {\n let width: number = 0;\n let height: number = 0;\n\n const size = this._marker?.size || 'medium';\n\n if (typeof size === 'number') {\n width = size;\n } else {\n switch (size) {\n case 'small':\n width = 18;\n break;\n case 'medium':\n width = 24;\n break;\n case 'large':\n width = 32;\n break;\n case 'tall':\n width = 24;\n height = 32;\n break;\n }\n }\n\n if (!height) {\n height = width;\n }\n\n const imageInput = this._marker?.image;\n const image = imageInput ? (typeof imageInput === 'string' ? imageInput : getValueFromGetter(imageInput, width)) : undefined;\n\n let style = {\n ...this._marker?.style,\n width: width + 'px',\n height: height + 'px',\n 'font-size': width + 'px',\n 'background-image': image\n };\n\n return style;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbxMapboxMapDirective } from './mapbox.store.map.directive';\nimport { DbxMapboxConfig } from './mapbox.service';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { DbxMapboxLayoutDrawerComponent } from './mapbox.layout.drawer.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { DbxMapboxMenuComponent } from './mapbox.menu.component';\nimport { DbxMapboxMapStoreInjectionBlockDirective } from './mapbox.store.provide';\nimport { DbxMapboxMarkerComponent } from './mapbox.marker.component';\nimport { NgxMapboxGLModule } from 'ngx-mapbox-gl';\nimport { DbxRouterAnchorModule } from '@dereekb/dbx-web';\n\nconst declarations = [\n //\n DbxMapboxMapDirective,\n DbxMapboxLayoutComponent,\n DbxMapboxLayoutDrawerComponent,\n DbxMapboxMenuComponent,\n DbxMapboxMarkerComponent,\n DbxMapboxMapStoreInjectionBlockDirective\n];\n\n@NgModule({\n imports: [\n //\n CommonModule,\n MatSidenavModule,\n DbxInjectionComponentModule,\n MatButtonModule,\n MatIconModule,\n AngularResizeEventModule,\n DbxRouterAnchorModule,\n NgxMapboxGLModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxMapboxModule {\n static forRoot(config: DbxMapboxConfig): ModuleWithProviders<DbxMapboxModule> {\n return {\n ngModule: DbxMapboxModule,\n providers: [\n {\n provide: DbxMapboxConfig,\n useValue: config\n }\n ]\n };\n }\n}\n","import { LatLngPointInput, LatLngBoundInput, ZoomLevel } from '@dereekb/util';\nimport * as MapboxGl from 'mapbox-gl';\n\nexport type KnownMapboxStyle = 'mapbox://styles/mapbox/streets-v11' | 'mapbox://styles/mapbox/outdoors-v11' | 'mapbox://styles/mapbox/light-v10' | 'mapbox://styles/mapbox/dark-v10' | 'mapbox://styles/mapbox/satellite-v9' | 'mapbox://styles/mapbox/satellite-streets-v11' | 'mapbox://styles/mapbox/navigation-day-v1' | 'mapbox://styles/mapbox/navigation-night-v1';\n\nexport const KNOWN_MAPBOX_STYLES: KnownMapboxStyle[] = [\n //\n 'mapbox://styles/mapbox/streets-v11',\n 'mapbox://styles/mapbox/outdoors-v11',\n 'mapbox://styles/mapbox/light-v10',\n 'mapbox://styles/mapbox/dark-v10',\n 'mapbox://styles/mapbox/satellite-v9',\n 'mapbox://styles/mapbox/satellite-streets-v11',\n 'mapbox://styles/mapbox/navigation-day-v1',\n 'mapbox://styles/mapbox/navigation-night-v1'\n];\n\nexport type MapboxZoomLevel = ZoomLevel;\n\nexport const MAPBOX_MIN_ZOOM_LEVEL: MapboxZoomLevel = 0;\nexport const MAPBOX_MAX_ZOOM_LEVEL: MapboxZoomLevel = 22;\n\nexport function mapboxZoomLevel(input: number): MapboxZoomLevel {\n return Math.min(Math.max(input, MAPBOX_MIN_ZOOM_LEVEL), MAPBOX_MAX_ZOOM_LEVEL);\n}\n\nexport type MapboxPitch = number;\nexport type MapboxBearing = number;\n\nexport type DbxMapboxClickEvent = MapboxGl.MapMouseEvent & MapboxGl.EventData;\n\nexport interface MapboxStyleConfig {\n style: MapboxGl.Style | string;\n options?: {\n diff?: boolean | undefined;\n localIdeographFontFamily?: string | undefined;\n };\n}\n\nexport interface MapboxFitBounds {\n bounds: LatLngBoundInput;\n options?: mapboxgl.FitBoundsOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxJumpToPositionOptions extends Omit<MapboxGl.CameraOptions, 'center'> {\n center: LatLngPointInput;\n}\n\nexport interface MapboxJumpTo {\n center?: LatLngPointInput;\n to?: MapboxJumpToPositionOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxEaseToPositionOptions extends Omit<MapboxGl.EaseToOptions, 'center'>, MapboxJumpToPositionOptions {}\n\nexport interface MapboxEaseTo {\n center?: LatLngPointInput;\n to?: MapboxEaseToPositionOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxFlyToPositionOptions extends Omit<MapboxGl.FlyToOptions, 'center'>, MapboxJumpToPositionOptions {}\n\nexport interface MapboxFlyTo {\n center?: LatLngPointInput;\n to?: MapboxFlyToPositionOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxRotateTo {\n bearing: MapboxBearing;\n options?: mapboxgl.AnimationOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxResetNorth {\n options?: mapboxgl.AnimationOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxResetNorthPitch {\n options?: mapboxgl.AnimationOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxSnapToNorth {\n options?: mapboxgl.AnimationOptions;\n eventData?: mapboxgl.EventData;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.DbxMapboxService","i3.DbxMapboxMapStore","i1.DbxMapboxMapStore","i3","i2","i7.DbxMapboxLayoutDrawerComponent","i1","i4"],"mappings":"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"}
1
+ {"version":3,"file":"dereekb-dbx-web-mapbox.mjs","sources":["../../../../packages/dbx-web/mapbox/src/lib/mapbox.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.map.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.menu.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.markers.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.ts","../../../../packages/dbx-web/mapbox/src/dereekb-dbx-web-mapbox.ts"],"sourcesContent":["import { Injectable, Optional } from '@angular/core';\nimport { LatLngPointInput, Milliseconds } from '@dereekb/util';\nimport { MapboxOptions } from 'mapbox-gl';\nimport { KnownMapboxStyle, MapboxZoomLevel } from './mapbox';\n\nexport class DbxMapboxConfig {\n readonly defaultStyle?: MapboxOptions['style'];\n readonly defaultZoom?: MapboxZoomLevel;\n readonly defaultCenter?: LatLngPointInput;\n readonly defaultStoreRefreshPeriod?: number;\n}\n\nexport const DEFAULT_MAPBOX_STYLE: KnownMapboxStyle = 'mapbox://styles/mapbox/streets-v11';\nexport const DEFAULT_MAPBOX_CENTER: LatLngPointInput = [30.2690138665, -97.7408297965];\nexport const DEFAULT_MAPBOX_ZOOM: MapboxZoomLevel = 8;\nexport const DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD: Milliseconds = 200;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxMapboxService {\n private readonly _config: DbxMapboxConfig;\n\n constructor(@Optional() config: DbxMapboxConfig) {\n this._config = config ?? {};\n }\n\n get defaultStyle() {\n return this._config.defaultStyle ?? DEFAULT_MAPBOX_STYLE;\n }\n\n get defaultZoom(): MapboxZoomLevel {\n return this._config.defaultZoom ?? DEFAULT_MAPBOX_ZOOM;\n }\n\n get defaultCenter(): LatLngPointInput {\n return this._config.defaultCenter ?? DEFAULT_MAPBOX_CENTER;\n }\n\n get mapboxMapStoreTimerRefreshPeriod(): number {\n return this._config.defaultStoreRefreshPeriod ?? DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD;\n }\n}\n","import { cleanup, filterMaybe, onTrueToFalse } from '@dereekb/rxjs';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { isSameLatLngBound, isSameLatLngPoint, IsWithinLatLngBoundFunction, isWithinLatLngBoundFunction, LatLngBound, latLngBoundFunction, LatLngPointInput, LatLngPoint, latLngPointFunction, Maybe, OverlapsLatLngBoundFunction, overlapsLatLngBoundFunction, diffLatLngBoundPoints, latLngBoundCenterPoint, addLatLngPoints, isDefaultLatLngPoint, swMostLatLngPoint, neMostLatLngPoint, latLngBoundWrapsMap } from '@dereekb/util';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { MapService } from 'ngx-mapbox-gl';\nimport { defaultIfEmpty, distinctUntilChanged, filter, map, shareReplay, switchMap, tap, NEVER, Observable, of, Subscription, startWith, interval, first, combineLatest } from 'rxjs';\nimport * as MapboxGl from 'mapbox-gl';\nimport { DbxMapboxClickEvent, KnownMapboxStyle, MapboxBearing, MapboxEaseTo, MapboxFitBounds, MapboxFlyTo, MapboxJumpTo, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSnapToNorth, MapboxStyleConfig, MapboxZoomLevel } from './mapbox';\nimport { DbxMapboxService } from './mapbox.service';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport type MapboxMapLifecycleState = 'init' | 'load' | 'render' | 'idle';\nexport type MapboxMapMoveState = 'init' | 'idle' | 'moving';\nexport type MapboxMapZoomState = 'init' | 'idle' | 'zooming';\nexport type MapboxMapRotateState = 'init' | 'idle' | 'rotating';\n\nexport interface StringMapboxListenerPair {\n type: string;\n listener: (ev: MapboxGl.EventData) => void;\n}\n\nexport interface TypedMapboxListenerPair<T extends keyof MapboxGl.MapEventType> {\n type: T;\n listener: (ev: MapboxGl.MapEventType[T] & MapboxGl.EventData) => void;\n}\n\nexport interface DbxMapboxMarginCalculationSizing {\n leftMargin: number;\n rightMargin: number;\n fullWidth: number;\n}\n\nexport interface DbxMapboxStoreState {\n /**\n * Current MapService being utilized.\n */\n mapService?: Maybe<MapService>;\n lifecycleState: MapboxMapLifecycleState;\n moveState: MapboxMapMoveState;\n zoomState: MapboxMapZoomState;\n rotateState: MapboxMapRotateState;\n /**\n * Latest click event\n */\n clickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Latest double-click event\n */\n doubleClickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Latest contextmenu event.\n */\n rightClickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Whether or not to retain content between resets.\n *\n * True by default.\n */\n retainContent: boolean;\n /**\n * Custom content configuration.\n */\n content?: Maybe<DbxInjectionComponentConfig<unknown>>;\n /**\n * Latest error\n */\n error?: Maybe<Error>;\n /**\n * Map margin/offset\n */\n margin?: Maybe<DbxMapboxMarginCalculationSizing>;\n}\n\n/**\n * Store used for retrieving information.\n */\n@Injectable()\nexport class DbxMapboxMapStore extends ComponentStore<DbxMapboxStoreState> implements OnDestroy {\n private latLngPoint = latLngPointFunction();\n private latLngBound = latLngBoundFunction({ pointFunction: latLngPointFunction({ wrap: false, validate: false }) });\n\n constructor(@Inject(DbxMapboxService) private readonly dbxMapboxService: DbxMapboxService) {\n super({\n lifecycleState: 'init',\n moveState: 'init',\n zoomState: 'init',\n rotateState: 'init',\n retainContent: true\n });\n }\n\n // MARK: Effects\n readonly setMapService = this.effect((input: Observable<Maybe<MapService>>) => {\n return input.pipe(\n switchMap((service: Maybe<MapService>) => {\n this._setMapService(service);\n\n if (!service) {\n return NEVER;\n } else {\n return service.mapLoaded$.pipe(\n defaultIfEmpty(undefined),\n map(() => {\n this._setLifecycleState('idle');\n this._setMoveState('idle');\n this._setZoomState('idle');\n this._setRotateState('idle');\n\n const map = service.mapInstance;\n\n const listenerPairs: StringMapboxListenerPair[] = [];\n\n function addListener<T extends keyof MapboxGl.MapEventType>(type: T, listener: (ev: MapboxGl.MapEventType[T] & MapboxGl.EventData) => void) {\n map.on(type, listener);\n listenerPairs.push({ type, listener } as StringMapboxListenerPair);\n }\n\n addListener('idle', () => this._setLifecycleState('idle'));\n addListener('render', () => this._setLifecycleState('render'));\n addListener('error', (x) => {\n this._setError(x.error);\n });\n\n addListener('movestart', () => this._setMoveState('moving'));\n addListener('moveend', () => this._setMoveState('idle'));\n\n addListener('zoomstart', () => this._setZoomState('zooming'));\n addListener('zoomend', () => this._setZoomState('idle'));\n\n addListener('rotatestart', () => this._setRotateState('rotating'));\n addListener('rotateend', () => this._setRotateState('idle'));\n\n addListener('click', (x) => this._setClickEvent(x));\n addListener('dblclick', (x) => this._setDoubleClickEvent(x));\n addListener('contextmenu', (x) => this._setRightClickEvent(x));\n\n const subs: Subscription[] = [];\n\n return {\n service,\n listenerPairs,\n subs\n };\n })\n );\n }\n }),\n cleanup(({ service, listenerPairs, subs }) => {\n const map = service.mapInstance;\n\n if (map) {\n listenerPairs.forEach((x) => {\n map.off(x.type, x.listener);\n });\n }\n\n subs.forEach((sub) => sub.unsubscribe());\n })\n );\n });\n\n readonly setStyle = this.effect((input: Observable<MapboxStyleConfig | KnownMapboxStyle | string>) => {\n return input.pipe(\n switchMap((style) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (typeof style === 'string') {\n map.setStyle(style);\n } else {\n map.setStyle(style.style, style.options);\n }\n })\n );\n })\n );\n });\n\n readonly setCenter = this.effect((input: Observable<LatLngPointInput>) => {\n return input.pipe(\n switchMap((center: LatLngPointInput) => {\n const centerPoint = this.latLngPoint(center);\n return this.mapInstance$.pipe(tap((map) => map.setCenter(centerPoint)));\n })\n );\n });\n\n readonly setZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setZoom(zoom)));\n })\n );\n });\n\n readonly setMinZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setMinZoom(zoom)));\n })\n );\n });\n\n readonly setMaxZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setMaxZoom(zoom)));\n })\n );\n });\n\n readonly setKeyboardDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.keyboard.enable();\n } else {\n map.keyboard.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setDragRotateDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.dragRotate.enable();\n } else {\n map.dragRotate.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setDragPanDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.dragPan.enable();\n } else {\n map.dragPan.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setZoomDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.scrollZoom.enable();\n map.doubleClickZoom.enable();\n } else {\n map.scrollZoom.disable();\n map.doubleClickZoom.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch) => {\n return this.mapInstance$.pipe(tap((map) => map.setPitch(pitch)));\n })\n );\n });\n\n readonly setMinPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch: number) => {\n return this.mapInstance$.pipe(tap((map) => map.setMinPitch(pitch)));\n })\n );\n });\n\n readonly setMaxPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch: number) => {\n return this.mapInstance$.pipe(tap((map) => map.setMaxPitch(pitch)));\n })\n );\n });\n\n readonly setBearing = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((bearing) => {\n return this.mapInstance$.pipe(tap((map) => map.setBearing(bearing)));\n })\n );\n });\n\n readonly rotateTo = this.effect((input: Observable<MapboxBearing | MapboxRotateTo>) => {\n return input.pipe(\n switchMap((rotateInput: MapboxBearing | MapboxRotateTo) => {\n const rotate: MapboxRotateTo = typeof rotateInput === 'number' ? { bearing: rotateInput } : rotateInput;\n return this.mapInstance$.pipe(tap((map) => map.rotateTo(rotate.bearing, rotate.options, rotate?.eventData)));\n })\n );\n });\n\n readonly resetNorth = this.effect((input: Observable<Maybe<MapboxResetNorth> | void>) => {\n return input.pipe(\n switchMap((reset: Maybe<MapboxResetNorth> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.resetNorth(reset?.options, reset?.eventData)));\n })\n );\n });\n\n readonly resetNorthPitch = this.effect((input: Observable<Maybe<MapboxResetNorthPitch> | void>) => {\n return input.pipe(\n switchMap((reset: Maybe<MapboxResetNorthPitch> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.resetNorthPitch(reset?.options, reset?.eventData)));\n })\n );\n });\n\n readonly snapToNorth = this.effect((input: Observable<Maybe<MapboxSnapToNorth> | void>) => {\n return input.pipe(\n switchMap((snap: Maybe<MapboxSnapToNorth> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.snapToNorth(snap?.options, snap?.eventData)));\n })\n );\n });\n\n readonly fitBounds = this.effect((input: Observable<MapboxFitBounds>) => {\n return input.pipe(\n switchMap((x) => {\n const bound = this.latLngBound(x.bounds);\n return this.mapInstance$.pipe(tap((map) => map.fitBounds(new MapboxGl.LngLatBounds(bound.sw, bound.ne), x.options, x.eventData)));\n })\n );\n });\n\n readonly jumpTo = this.effect((input: Observable<MapboxJumpTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.latLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.jumpTo({ ...x.to, center }, x.eventData)));\n })\n );\n });\n\n readonly easeTo = this.effect((input: Observable<MapboxEaseTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.latLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.easeTo({ ...x.to, center }, x.eventData)));\n })\n );\n });\n\n readonly flyTo = this.effect((input: Observable<MapboxFlyTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.latLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.flyTo({ ...x.to, center }, x.eventData)));\n })\n );\n });\n\n readonly resetPitchAndBearing = this.effect((input: Observable<void>) => {\n return input.pipe(\n switchMap(() => {\n return this.mapInstance$.pipe(\n tap((map) => {\n map.setPitch(0);\n map.setBearing(0);\n })\n );\n })\n );\n });\n\n // MARK: Accessors\n get timerRefreshPeriod() {\n return this.dbxMapboxService.mapboxMapStoreTimerRefreshPeriod;\n }\n\n movingTimer(period = this.timerRefreshPeriod) {\n return this.moveState$.pipe(\n switchMap((x) => {\n if (x === 'moving') {\n return interval(period);\n } else {\n return of(0);\n }\n }),\n shareReplay()\n );\n }\n\n lifecycleRenderTimer(period = this.timerRefreshPeriod) {\n return this.lifecycleState$.pipe(\n switchMap((x) => {\n if (x === 'render') {\n return interval(period);\n } else {\n return of(0);\n }\n }),\n shareReplay()\n );\n }\n\n atNextIdle(): Observable<boolean> {\n return this.moveState$.pipe(\n map((x) => x === 'idle'),\n first()\n );\n }\n\n calculateNextCenterWithOffset(inputOffset: LatLngPointInput): Observable<LatLngPoint> {\n const offset = this.latLngPoint(inputOffset);\n\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.center$.pipe(\n first(),\n map((center) => {\n const newCenter = {\n lat: offset.lat + center.lat,\n lng: offset.lng + center.lng\n };\n return newCenter;\n })\n )\n )\n );\n }\n\n calculateNextCenterOffsetWithScreenMarginChange(sizing: DbxMapboxMarginCalculationSizing): Observable<LatLngPoint> {\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.bound$.pipe(\n first(),\n map((bounds) => {\n const diff = diffLatLngBoundPoints(bounds);\n const center = latLngBoundCenterPoint(bounds);\n\n const offsetWidth = sizing.leftMargin + sizing.rightMargin; // 300 + 0\n const newWidth = sizing.fullWidth - offsetWidth; // 1000 - 300 - 0\n const newWidthRatio = newWidth / sizing.fullWidth; // 700 / 1000\n const newCenterLongitudeWidth = diff.lng * newWidthRatio; // 70% offset\n\n const effectiveOffset: LatLngPoint = {\n lat: 0,\n lng: newCenterLongitudeWidth / 2\n };\n\n const newCenter = addLatLngPoints(bounds.sw, effectiveOffset);\n newCenter.lat = center.lat; // retain center position\n\n // console.log({ sizing, bounds, effectiveOffset, newWidth, offsetWidth, diff, center, newCenter });\n\n return newCenter;\n })\n )\n )\n );\n }\n\n readonly currentMapService$ = this.state$.pipe(\n map((x) => x.mapService),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly mapService$ = this.currentMapService$.pipe(filterMaybe());\n\n readonly currentMapInstance$: Observable<Maybe<MapboxGl.Map>> = this.currentMapService$.pipe(\n switchMap((currentMapService: Maybe<MapService>) => {\n if (currentMapService) {\n return currentMapService.mapLoaded$.pipe(\n defaultIfEmpty(undefined),\n map(() => currentMapService.mapInstance)\n );\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly mapInstance$ = this.currentMapInstance$.pipe(filterMaybe());\n\n readonly moveState$ = this.state$.pipe(\n map((x) => x.moveState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly lifecycleState$ = this.state$.pipe(\n map((x) => x.lifecycleState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly zoomState$ = this.state$.pipe(\n map((x) => x.zoomState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly rotateState$ = this.state$.pipe(\n map((x) => x.rotateState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isInitialized$ = this.currentMapInstance$.pipe(\n switchMap((x) => {\n if (!x) {\n return of(false);\n } else {\n return combineLatest([this.moveState$.pipe(map((x) => x === 'idle')), this.lifecycleState$.pipe(map((x) => x === 'idle'))]).pipe(\n filter(([m, l]) => m && l),\n first(),\n map(() => true)\n );\n }\n }),\n shareReplay(1)\n );\n\n readonly whenInitialized$ = this.isInitialized$.pipe(\n filter((x) => true),\n shareReplay(1)\n );\n\n readonly isRendering$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.lifecycleState$.pipe(\n map((x) => x === 'render'),\n distinctUntilChanged(),\n shareReplay()\n )\n )\n );\n\n readonly isMoving$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.moveState$.pipe(\n map((x) => x === 'moving'),\n distinctUntilChanged(),\n shareReplay()\n )\n )\n );\n\n readonly isZooming$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.zoomState$.pipe(\n map((x) => x === 'zooming'),\n distinctUntilChanged(),\n shareReplay()\n )\n )\n );\n\n readonly isRotating$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.rotateState$.pipe(\n map((x) => x === 'rotating'),\n distinctUntilChanged(),\n shareReplay()\n )\n )\n );\n\n private readonly _movingTimer = this.movingTimer();\n private readonly _renderingTimer = this.lifecycleRenderTimer();\n\n readonly centerNow$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => this.latLngPoint(x.getCenter())))),\n shareReplay(1)\n )\n ),\n shareReplay(1)\n );\n\n readonly center$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isMoving$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.centerNow$.pipe(first())),\n distinctUntilChanged(isSameLatLngPoint),\n shareReplay(1)\n );\n }),\n shareReplay(1)\n );\n\n readonly margin$ = this.state$.pipe(\n map((x) => x.margin),\n distinctUntilChanged((a, b) => a != null && b != null && a.fullWidth === b.fullWidth && a.leftMargin === b.leftMargin && a.rightMargin === b.rightMargin),\n shareReplay(1)\n );\n\n readonly reverseMargin$ = this.margin$.pipe(\n map((x) => {\n if (x) {\n return { leftMargin: -x.leftMargin, rightMargin: -x.rightMargin, fullWidth: x.fullWidth };\n } else {\n return x;\n }\n })\n );\n\n readonly centerGivenMargin$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.reverseMargin$.pipe(\n switchMap((x) => {\n if (x) {\n return this.center$.pipe(switchMap((_) => this.calculateNextCenterOffsetWithScreenMarginChange(x)));\n } else {\n return this.isMoving$.pipe(\n filter((x) => !x),\n switchMap(() => this.center$)\n );\n }\n })\n );\n }),\n shareReplay(1)\n );\n\n readonly boundNow$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) =>\n this._renderingTimer.pipe(\n map(() => {\n const bound = x.getBounds();\n const boundSw = bound.getSouthWest();\n const boundNe = bound.getNorthEast();\n\n const sw = isDefaultLatLngPoint(boundSw) ? swMostLatLngPoint() : boundSw;\n const ne = isDefaultLatLngPoint(boundNe) ? neMostLatLngPoint() : boundNe;\n\n return this.latLngBound(sw, ne);\n })\n )\n ),\n shareReplay(1)\n )\n )\n );\n\n readonly bound$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRendering$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.boundNow$.pipe(first())),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n })\n );\n\n readonly boundWrapsAroundWorld$: Observable<boolean> = this.bound$.pipe(\n map((x) => latLngBoundWrapsMap(x)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isWithinBoundFunction$: Observable<IsWithinLatLngBoundFunction> = this.bound$.pipe(\n map((x) => isWithinLatLngBoundFunction(x)),\n shareReplay(1)\n );\n\n readonly overlapsBoundFunction$: Observable<OverlapsLatLngBoundFunction> = this.bound$.pipe(\n map((x) => overlapsLatLngBoundFunction(x)),\n shareReplay(1)\n );\n\n readonly zoomNow$: Observable<MapboxZoomLevel> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._renderingTimer.pipe(map(() => x.getZoom() as MapboxZoomLevel))),\n shareReplay(1)\n )\n )\n );\n\n readonly zoom$: Observable<MapboxZoomLevel> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isZooming$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.zoomNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly pitchNow$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => x.getPitch()))),\n shareReplay(1)\n )\n )\n );\n\n readonly pitch$ = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRotating$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.pitchNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly bearingNow$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => x.getBearing()))),\n shareReplay(1)\n )\n )\n );\n\n readonly bearing$ = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRotating$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.bearingNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly content$ = this.state$.pipe(\n map((x) => x.content),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hasContent$ = this.content$.pipe(map(Boolean));\n\n readonly clickEvent$ = this.state$.pipe(\n map((x) => x.clickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly doubleClickEvent$ = this.state$.pipe(\n map((x) => x.doubleClickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly rightClickEvent$ = this.state$.pipe(\n map((x) => x.rightClickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n // MARK: State Changes\n readonly setMargin = this.updater((state, margin: Maybe<DbxMapboxMarginCalculationSizing>) => ({ ...state, margin: margin && (margin.rightMargin !== 0 || margin.leftMargin !== 0) ? margin : undefined }));\n\n private readonly _setMapService = this.updater((state, mapService: Maybe<MapService>) => ({ mapService, moveState: 'init', lifecycleState: 'init', zoomState: 'init', rotateState: 'init', retainContent: state.retainContent, content: state.retainContent ? state.content : undefined }));\n private readonly _setLifecycleState = this.updater((state, lifecycleState: MapboxMapLifecycleState) => ({ ...state, lifecycleState }));\n private readonly _setMoveState = this.updater((state, moveState: MapboxMapMoveState) => ({ ...state, moveState }));\n private readonly _setZoomState = this.updater((state, zoomState: MapboxMapZoomState) => ({ ...state, zoomState }));\n private readonly _setRotateState = this.updater((state, rotateState: MapboxMapRotateState) => ({ ...state, rotateState }));\n\n private readonly _setClickEvent = this.updater((state, clickEvent: DbxMapboxClickEvent) => ({ ...state, clickEvent }));\n private readonly _setDoubleClickEvent = this.updater((state, doubleClickEvent: DbxMapboxClickEvent) => ({ ...state, doubleClickEvent }));\n private readonly _setRightClickEvent = this.updater((state, rightClickEvent: DbxMapboxClickEvent) => ({ ...state, rightClickEvent }));\n\n private readonly _setError = this.updater((state, error: Error) => ({ ...state, error }));\n\n readonly clearContent = this.updater((state) => ({ ...state, content: undefined }));\n readonly setContent = this.updater((state, content: Maybe<DbxInjectionComponentConfig<unknown>>) => ({ ...state, content }));\n}\n","import { DbxMapboxService } from './mapbox.service';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { Directive, Host, OnInit, Optional } from '@angular/core';\nimport { MapComponent, MapService } from 'ngx-mapbox-gl';\nimport { latLngPoint } from '@dereekb/util';\n\n/**\n * Directive that configures a MapComponent with content from DbxMapboxService. Connects a host MapService to a parent DbxMapboxMapStore if available.\n */\n@Directive({\n selector: '[dbxMapboxMap]'\n})\nexport class DbxMapboxMapDirective implements OnInit {\n constructor(\n //\n @Host() readonly mapService: MapService,\n @Host() readonly mapboxMap: MapComponent,\n readonly dbxMapboxService: DbxMapboxService,\n @Optional() readonly dbxMapboxMapStore: DbxMapboxMapStore\n ) {}\n\n ngOnInit(): void {\n // style must be provided first before the map will load.\n this.mapboxMap.style = this.dbxMapboxService.defaultStyle;\n this.mapboxMap.zoom = [this.dbxMapboxService.defaultZoom];\n this.mapboxMap.center = latLngPoint(this.dbxMapboxService.defaultCenter);\n\n if (this.dbxMapboxMapStore) {\n this.dbxMapboxMapStore.setMapService(this.mapService);\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Content drawer that connects with DbxMapboxMapStore to\n */\n@Component({\n selector: 'dbx-mapbox-layout-drawer',\n templateUrl: './mapbox.layout.drawer.component.html',\n host: {\n class: 'dbx-mapbox-layout-drawer'\n }\n})\nexport class DbxMapboxLayoutDrawerComponent {\n readonly config$ = this.dbxMapboxMapStore.content$;\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore) {}\n}\n","<div>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n</div>\n","import { tap, switchMap, first, startWith, shareReplay, throttleTime, map, distinctUntilChanged, BehaviorSubject, combineLatest, Subject, Observable } from 'rxjs';\nimport { Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { Maybe } from '@dereekb/util';\nimport { dbxColorBackground, DbxThemeColor } from '@dereekb/dbx-web';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { MatDrawerContainer } from '@angular/material/sidenav';\nimport { MapboxEaseTo } from './mapbox';\n\nexport type DbxMapboxLayoutSide = 'left' | 'right';\n\nexport type DbxMapboxLayoutMode = 'side' | 'push';\n\n/**\n * Responsive component meant to split a left and right column.\n *\n * The left column is smaller than the right column, which contains the primary content.\n *\n * Requires a TwoColumnsContextStore to be provided.\n */\n@Component({\n selector: 'dbx-mapbox-layout',\n templateUrl: './mapbox.layout.component.html',\n styleUrls: ['./mapbox.layout.component.scss']\n})\nexport class DbxMapboxLayoutComponent extends SubscriptionObject implements OnInit, OnDestroy {\n @ViewChild(MatDrawerContainer)\n readonly container!: MatDrawerContainer;\n\n @ViewChild('content', { read: ElementRef, static: true })\n readonly content!: ElementRef;\n\n private _resized = new Subject<void>();\n private _updateMargins = new Subject<void>();\n private _forceHasContent = new BehaviorSubject<boolean>(false);\n private _mode = new BehaviorSubject<DbxMapboxLayoutMode>('side');\n private _side = new BehaviorSubject<DbxMapboxLayoutSide>('right');\n private _openToggle = new BehaviorSubject<boolean>(true);\n private _color = new BehaviorSubject<Maybe<DbxThemeColor>>(undefined);\n private _toggleSub = new SubscriptionObject();\n\n readonly side$ = this._side.pipe(distinctUntilChanged(), shareReplay(1));\n readonly mode$: Observable<DbxMapboxLayoutMode> = this._mode.pipe(distinctUntilChanged(), shareReplay(1));\n\n readonly hasContent$ = combineLatest([this._forceHasContent, this.dbxMapboxMapStore.hasContent$]).pipe(\n map(([hasContent, forceHasContent]) => hasContent || forceHasContent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly opened$ = combineLatest([this.hasContent$, this._openToggle]).pipe(\n map(([hasContent, open]) => hasContent && open),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly position$: Observable<'start' | 'end'> = this.side$.pipe(\n map((x) => (x === 'right' ? 'end' : 'start')),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly drawerClasses$ = combineLatest([this.side$, this.dbxMapboxMapStore.hasContent$, this.opened$]).pipe(\n //\n map(([side, hasContent, open]) => (hasContent ? 'has-drawer-content' : 'no-drawer-content') + ` ${side}-drawer ` + (open ? 'open-drawer' : '')),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly drawerButtonClasses$ = combineLatest([this.dbxMapboxMapStore.hasContent$, this._color]).pipe(\n //\n map(([hasContent, color]) => dbxColorBackground(color)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonIcon$: Observable<string> = combineLatest([this.side$, this.opened$]).pipe(\n map(([side, opened]) => {\n let icons = ['chevron_right', 'chevron_left'];\n\n if (side === 'left') {\n icons = icons.reverse();\n }\n\n return opened ? icons[0] : icons[1];\n })\n );\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore) {\n super();\n }\n\n ngOnInit(): void {\n this.subscription = (\n this.side$.pipe(\n switchMap(() =>\n this._resized.pipe(\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => 'r'),\n startWith('s')\n )\n )\n ) as Observable<'s' | 'r'>\n ).subscribe((reason) => {\n this.dbxMapboxMapStore.mapInstance$.subscribe((x) => {\n x.resize();\n\n // side changed\n if (reason === 's') {\n setTimeout(() => {\n this._updateMargins.next();\n });\n }\n });\n });\n\n let init = false;\n\n this._toggleSub.subscription = this.mode$\n .pipe(\n switchMap((mode) => {\n let obs: Observable<unknown>;\n\n if (mode === 'push') {\n obs = combineLatest([this.opened$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(\n tap(([opened]) => {\n let { right } = this.container._contentMargins;\n\n this.container.updateContentMargins();\n\n setTimeout(() => {\n const flip = opened ? 1 : -1;\n\n if (opened) {\n right = this.container._contentMargins.right;\n }\n\n right = (right || 0) * flip;\n\n const element: HTMLElement = this.content.nativeElement;\n const width = element.clientWidth;\n\n const margin = {\n leftMargin: 0,\n rightMargin: right,\n fullWidth: width\n };\n\n const easeTo: Observable<MapboxEaseTo> = this.dbxMapboxMapStore.calculateNextCenterOffsetWithScreenMarginChange(margin).pipe(\n first(),\n map((center) => ({ to: { center, duration: 3200, essential: false } } as MapboxEaseTo))\n );\n\n this.dbxMapboxMapStore.setMargin(opened ? margin : undefined);\n\n if (!init) {\n this.dbxMapboxMapStore.easeTo(easeTo);\n } else {\n init = true;\n }\n });\n })\n );\n } else {\n obs = combineLatest([this.opened$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(\n switchMap((_) => this.dbxMapboxMapStore.mapInstance$),\n tap((x) => {\n this.container.updateContentMargins();\n x.triggerRepaint();\n })\n );\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this._resized.complete();\n this._updateMargins.complete();\n this._side.complete();\n this._openToggle.complete();\n this._color.complete();\n this._toggleSub.destroy();\n this._forceHasContent.complete();\n }\n\n toggleDrawer(open?: boolean) {\n if (open == null) {\n open = !this._openToggle.value;\n }\n\n this._openToggle.next(open);\n }\n\n @Input()\n set side(side: Maybe<DbxMapboxLayoutSide>) {\n if (side != null) {\n this._side.next(side);\n }\n }\n\n @Input()\n set mode(mode: Maybe<DbxMapboxLayoutMode>) {\n if (mode != null) {\n this._mode.next(mode);\n }\n }\n\n @Input()\n set opened(opened: Maybe<boolean>) {\n if (opened != null) {\n this._openToggle.next(opened);\n }\n }\n\n @Input()\n set hasContent(hasContent: Maybe<boolean>) {\n if (hasContent != null) {\n this._forceHasContent.next(hasContent);\n }\n }\n\n @Input()\n set drawerColor(color: Maybe<DbxThemeColor>) {\n this._color.next(color);\n }\n\n onResized(event: ResizedEvent): void {\n this._resized.next();\n }\n}\n","<mat-drawer-container class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer [opened]=\"opened$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n","import { SubscriptionObject } from '@dereekb/rxjs';\nimport { filter, switchMap, BehaviorSubject, of } from 'rxjs';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, Input, OnInit, OnDestroy, NgZone } from '@angular/core';\nimport { Maybe, DestroyFunctionObject } from '@dereekb/util';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { disableRightClickInCdkBackdrop } from '@dereekb/dbx-web';\n\n/**\n * Directive that connects a host MatMenuTrigger to a DbxMapboxMapStore and listens for right-clicks on the map.\n *\n * The map dissapears if the mouse scrolls anywhere else on the map.\n */\n@Component({\n selector: 'dbx-mapbox-menu',\n template: '',\n host: {\n style: 'visibility: hidden; position: fixed',\n '[style.top]': 'pos.y',\n '[style.left]': 'pos.x'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMenuComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private _pos = { x: `0`, y: `0` };\n private _active = new BehaviorSubject<boolean>(true);\n\n private _menuCloseSub = new SubscriptionObject();\n private _preventRightClick = new DestroyFunctionObject();\n\n get pos() {\n return this._pos;\n }\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore, @Host() readonly matMenuTrigger: MatMenuTrigger, readonly ngZone: NgZone, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this._active\n .pipe(\n switchMap((active) => {\n if (active) {\n return this.dbxMapboxMapStore.rightClickEvent$;\n } else {\n return of();\n }\n }),\n filter(Boolean)\n )\n .subscribe((event) => {\n const menu = this.matMenuTrigger.menu;\n const buttonEvent = event.originalEvent;\n\n if (menu && buttonEvent) {\n buttonEvent.preventDefault();\n\n // update position of this component for menu to open at\n this._pos = {\n x: `${buttonEvent.x}px`,\n y: `${buttonEvent.y}px`\n };\n\n safeMarkForCheck(this.cdRef);\n\n // open menu\n this.ngZone.run(() => this.matMenuTrigger.openMenu());\n\n // prevent right clicks in the cdkOverlay while the menu is open\n this._preventRightClick.destroy = disableRightClickInCdkBackdrop(undefined, () => {\n this.ngZone.run(() => this.matMenuTrigger.closeMenu());\n });\n }\n });\n\n this._menuCloseSub.subscription = this.matMenuTrigger.menuClosed.subscribe(() => {\n // destroy prevention when the menu is closed.\n this._preventRightClick.destroy();\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._active.complete();\n this._preventRightClick.destroy();\n this._menuCloseSub.destroy();\n\n if (this.matMenuTrigger) {\n this.matMenuTrigger.closeMenu();\n }\n }\n\n @Input('dbxMapboxMenu')\n set active(active: Maybe<boolean>) {\n this._active.next(active ?? true);\n }\n}\n","import { Directive, Injectable, Injector, Optional, Provider, SkipSelf } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Token used by provideMapboxStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxMapStore into the child view.\n */\n@Injectable()\nexport class DbxMapboxMapStoreProviderBlock {\n constructor(@SkipSelf() readonly dbxMapboxMapStore: DbxMapboxMapStore) {}\n}\n\n@Directive({\n selector: '[dbxMapboxStoreParentBlocker]',\n providers: [DbxMapboxMapStoreProviderBlock]\n})\nexport class DbxMapboxMapStoreInjectionBlockDirective {}\n\n/**\n * Creates a Provider that initializes a new DbxMapboxMapStore if a parent does not exist.\n *\n * If a DbxMapboxMapStoreInjectionBlock is available in the context, and references the same dbxMapboxMapStore that is attempting to be injected, a new DbxMapboxMapStore is created.\n *\n * @returns\n */\nexport function provideMapboxStoreIfParentIsUnavailable(): Provider {\n return {\n provide: DbxMapboxMapStore,\n useFactory: (parentInjector: Injector, dbxMapboxMapStoreInjectionBlock?: DbxMapboxMapStoreProviderBlock, dbxMapboxMapStore?: DbxMapboxMapStore) => {\n if (!dbxMapboxMapStore || (dbxMapboxMapStore && dbxMapboxMapStoreInjectionBlock != null && dbxMapboxMapStoreInjectionBlock.dbxMapboxMapStore === dbxMapboxMapStore)) {\n // create a new dbxMapboxMapStore to use\n const injector = Injector.create({ providers: [{ provide: DbxMapboxMapStore }], parent: parentInjector });\n dbxMapboxMapStore = injector.get(DbxMapboxMapStore);\n }\n\n return dbxMapboxMapStore;\n },\n deps: [Injector, [new Optional(), DbxMapboxMapStoreProviderBlock], [new Optional(), new SkipSelf(), DbxMapboxMapStore]]\n };\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { getValueFromGetter, latLngPointFunction, Maybe } from '@dereekb/util';\nimport { DbxMapboxMarker } from './mapbox.marker';\n\n@Component({\n selector: 'dbx-mapbox-marker',\n template: `\n <mgl-marker *ngIf=\"marker\" [lngLat]=\"latLng\">\n <dbx-anchor [anchor]=\"anchor\">\n <div class=\"dbx-mapbox-marker\">\n <div class=\"dbx-mapbox-marker-content\" [ngStyle]=\"style\">\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n </div>\n <div class=\"dbx-mapbox-marker-label dbx-outlined-text\" *ngIf=\"label\">{{ label }}</div>\n </div>\n </dbx-anchor>\n </mgl-marker>\n `,\n styleUrls: ['./mapbox.marker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMarkerComponent {\n private static _latLngPoint = latLngPointFunction({ wrap: true });\n\n private _marker!: Maybe<DbxMapboxMarker>;\n\n @Input()\n get marker() {\n return this._marker;\n }\n\n set marker(marker: Maybe<DbxMapboxMarker>) {\n this._marker = marker;\n }\n\n constructor() {}\n\n get latLng() {\n const input = this._marker?.latLng;\n return input ? DbxMapboxMarkerComponent._latLngPoint(input) : undefined;\n }\n\n get anchor() {\n return this._marker?.anchor;\n }\n\n get label() {\n return this._marker?.label;\n }\n\n get icon() {\n return this._marker?.icon;\n }\n\n get style() {\n let width = 0;\n let height = 0;\n\n const size = this._marker?.size || 'medium';\n\n if (typeof size === 'number') {\n width = size;\n } else {\n switch (size) {\n case 'small':\n width = 18;\n break;\n case 'medium':\n width = 24;\n break;\n case 'large':\n width = 32;\n break;\n case 'tall':\n width = 24;\n height = 32;\n break;\n }\n }\n\n if (!height) {\n height = width;\n }\n\n const imageInput = this._marker?.image;\n const image = imageInput ? (typeof imageInput === 'string' ? imageInput : getValueFromGetter(imageInput, width)) : undefined;\n\n const style = {\n ...this._marker?.style,\n width: width + 'px',\n height: height + 'px',\n 'font-size': width + 'px',\n 'background-image': image\n };\n\n return style;\n }\n}\n","import { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { DbxMapboxMarkerFactory } from './mapbox.marker';\n\n/**\n * Component used to render a set of DbxMapboxMarker values from the input data and marker factory.\n */\n@Component({\n selector: 'dbx-mapbox-markers',\n template: `\n <dbx-mapbox-marker *ngFor=\"let marker of markers$ | async\" [marker]=\"marker\"></dbx-mapbox-marker>\n `\n})\nexport class DbxMapboxMarkersComponent<T> implements OnDestroy {\n private _data = new BehaviorSubject<Maybe<T[]>>(undefined);\n private _markerFactory = new BehaviorSubject<Maybe<DbxMapboxMarkerFactory<T>>>(undefined);\n\n readonly markers$ = combineLatest([this._data.pipe(distinctUntilChanged()), this._markerFactory.pipe(distinctUntilChanged())]).pipe(\n map(([data, markerFactory]) => {\n if (data?.length && markerFactory) {\n return data.map(markerFactory);\n } else {\n return [];\n }\n }),\n shareReplay(1)\n );\n\n @Input()\n get data() {\n return this._data.value;\n }\n\n set data(data: Maybe<T[]>) {\n this._data.next(data);\n }\n\n @Input()\n get markerFactory() {\n return this._markerFactory.value;\n }\n\n set markerFactory(markerFactory: Maybe<DbxMapboxMarkerFactory<T>>) {\n this._markerFactory.next(markerFactory);\n }\n\n ngOnDestroy(): void {\n this._data.complete();\n this._markerFactory.complete();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbxMapboxMapDirective } from './mapbox.store.map.directive';\nimport { DbxMapboxConfig } from './mapbox.service';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { DbxMapboxLayoutDrawerComponent } from './mapbox.layout.drawer.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { DbxMapboxMenuComponent } from './mapbox.menu.component';\nimport { DbxMapboxMapStoreInjectionBlockDirective } from './mapbox.store.provide';\nimport { DbxMapboxMarkerComponent } from './mapbox.marker.component';\nimport { NgxMapboxGLModule } from 'ngx-mapbox-gl';\nimport { DbxRouterAnchorModule } from '@dereekb/dbx-web';\nimport { DbxMapboxMarkersComponent } from './mapbox.markers.component';\n\nconst declarations = [\n //\n DbxMapboxMapDirective,\n DbxMapboxLayoutComponent,\n DbxMapboxLayoutDrawerComponent,\n DbxMapboxMenuComponent,\n DbxMapboxMarkerComponent,\n DbxMapboxMarkersComponent,\n DbxMapboxMapStoreInjectionBlockDirective\n];\n\n@NgModule({\n imports: [\n //\n CommonModule,\n MatSidenavModule,\n DbxInjectionComponentModule,\n MatButtonModule,\n MatIconModule,\n AngularResizeEventModule,\n DbxRouterAnchorModule,\n NgxMapboxGLModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxMapboxModule {\n static forRoot(config: DbxMapboxConfig): ModuleWithProviders<DbxMapboxModule> {\n return {\n ngModule: DbxMapboxModule,\n providers: [\n {\n provide: DbxMapboxConfig,\n useValue: config\n }\n ]\n };\n }\n}\n","import { ClickableAnchor } from '@dereekb/dbx-core';\nimport { Pixels, FactoryWithRequiredInput, LatLngInputRef } from '@dereekb/util';\n\n/**\n * DbxMapboxMarkerSize. Numbers are converted to pixels.\n */\nexport type DbxMapboxMarkerSize = 'small' | 'medium' | 'large' | 'tall' | Pixels;\n\nexport type DbxMapboxMarker = LatLngInputRef & {\n /**\n * icon\n */\n icon?: string;\n /**\n * label\n */\n label?: string;\n /**\n * Image URL\n */\n image?: string | FactoryWithRequiredInput<string, Pixels>;\n /**\n * Size of the marker.\n */\n size?: DbxMapboxMarkerSize;\n /**\n *\n */\n anchor?: ClickableAnchor;\n /**\n * Additional object styling\n */\n style?: object;\n};\n\n/**\n * MapFunction that converts the input data to a DbxMapboxMarker.\n */\nexport type DbxMapboxMarkerFactory<T> = (value: T, index: number) => DbxMapboxMarker;\n\n/**\n * Creates the styling for rendering a dot.\n *\n * @param background\n * @param color\n * @returns\n */\nexport function dbxMapboxColoredDotStyle(background: string, color?: string) {\n return {\n background,\n padding: '2px',\n color: color || 'white',\n 'border-radius': '50%'\n };\n}\n","import { LatLngPointInput, LatLngBoundInput, ZoomLevel } from '@dereekb/util';\nimport * as MapboxGl from 'mapbox-gl';\n\nexport type KnownMapboxStyle = 'mapbox://styles/mapbox/streets-v11' | 'mapbox://styles/mapbox/outdoors-v11' | 'mapbox://styles/mapbox/light-v10' | 'mapbox://styles/mapbox/dark-v10' | 'mapbox://styles/mapbox/satellite-v9' | 'mapbox://styles/mapbox/satellite-streets-v11' | 'mapbox://styles/mapbox/navigation-day-v1' | 'mapbox://styles/mapbox/navigation-night-v1';\n\nexport const KNOWN_MAPBOX_STYLES: KnownMapboxStyle[] = [\n //\n 'mapbox://styles/mapbox/streets-v11',\n 'mapbox://styles/mapbox/outdoors-v11',\n 'mapbox://styles/mapbox/light-v10',\n 'mapbox://styles/mapbox/dark-v10',\n 'mapbox://styles/mapbox/satellite-v9',\n 'mapbox://styles/mapbox/satellite-streets-v11',\n 'mapbox://styles/mapbox/navigation-day-v1',\n 'mapbox://styles/mapbox/navigation-night-v1'\n];\n\nexport type MapboxZoomLevel = ZoomLevel;\n\nexport const MAPBOX_MIN_ZOOM_LEVEL: MapboxZoomLevel = 0;\nexport const MAPBOX_MAX_ZOOM_LEVEL: MapboxZoomLevel = 22;\n\nexport function mapboxZoomLevel(input: number): MapboxZoomLevel {\n return Math.min(Math.max(input, MAPBOX_MIN_ZOOM_LEVEL), MAPBOX_MAX_ZOOM_LEVEL);\n}\n\nexport type MapboxPitch = number;\nexport type MapboxBearing = number;\n\nexport type DbxMapboxClickEvent = MapboxGl.MapMouseEvent & MapboxGl.EventData;\n\nexport interface MapboxStyleConfig {\n style: MapboxGl.Style | string;\n options?: {\n diff?: boolean | undefined;\n localIdeographFontFamily?: string | undefined;\n };\n}\n\nexport interface MapboxFitBounds {\n bounds: LatLngBoundInput;\n options?: mapboxgl.FitBoundsOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxJumpToPositionOptions extends Omit<MapboxGl.CameraOptions, 'center'> {\n center: LatLngPointInput;\n}\n\nexport interface MapboxJumpTo {\n center?: LatLngPointInput;\n to?: MapboxJumpToPositionOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxEaseToPositionOptions extends Omit<MapboxGl.EaseToOptions, 'center'>, MapboxJumpToPositionOptions {}\n\nexport interface MapboxEaseTo {\n center?: LatLngPointInput;\n to?: MapboxEaseToPositionOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxFlyToPositionOptions extends Omit<MapboxGl.FlyToOptions, 'center'>, MapboxJumpToPositionOptions {}\n\nexport interface MapboxFlyTo {\n center?: LatLngPointInput;\n to?: MapboxFlyToPositionOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxRotateTo {\n bearing: MapboxBearing;\n options?: mapboxgl.AnimationOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxResetNorth {\n options?: mapboxgl.AnimationOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxResetNorthPitch {\n options?: mapboxgl.AnimationOptions;\n eventData?: mapboxgl.EventData;\n}\n\nexport interface MapboxSnapToNorth {\n options?: mapboxgl.AnimationOptions;\n eventData?: mapboxgl.EventData;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.DbxMapboxService","i3.DbxMapboxMapStore","i1.DbxMapboxMapStore","i3","i2","i7.DbxMapboxLayoutDrawerComponent","i1","i4","i2.DbxMapboxMarkerComponent"],"mappings":"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"}