@dereekb/dbx-web 9.6.2 → 9.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"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.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 { tap, skip, switchMap, first, startWith, shareReplay, throttleTime, map, distinctUntilChanged, BehaviorSubject, combineLatest, Subject, Observable, interval, take } 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 { 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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"}
@@ -8,6 +8,7 @@ import { SubscriptionObject } from '@dereekb/rxjs';
8
8
  import { MatDrawerContainer } from '@angular/material/sidenav';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare type DbxMapboxLayoutSide = 'left' | 'right';
11
+ export declare type DbxMapboxLayoutMode = 'side' | 'push';
11
12
  /**
12
13
  * Responsive component meant to split a left and right column.
13
14
  *
@@ -22,11 +23,13 @@ export declare class DbxMapboxLayoutComponent extends SubscriptionObject impleme
22
23
  private _resized;
23
24
  private _updateMargins;
24
25
  private _forceHasContent;
26
+ private _mode;
25
27
  private _side;
26
28
  private _openToggle;
27
29
  private _color;
28
30
  private _toggleSub;
29
31
  readonly side$: Observable<DbxMapboxLayoutSide>;
32
+ readonly mode$: Observable<DbxMapboxLayoutMode>;
30
33
  readonly hasContent$: Observable<boolean>;
31
34
  readonly opened$: Observable<boolean>;
32
35
  readonly position$: Observable<'start' | 'end'>;
@@ -38,10 +41,11 @@ export declare class DbxMapboxLayoutComponent extends SubscriptionObject impleme
38
41
  ngOnDestroy(): void;
39
42
  toggleDrawer(open?: boolean): void;
40
43
  set side(side: Maybe<DbxMapboxLayoutSide>);
44
+ set mode(mode: Maybe<DbxMapboxLayoutMode>);
41
45
  set opened(opened: Maybe<boolean>);
42
46
  set hasContent(hasContent: Maybe<boolean>);
43
47
  set drawerColor(color: Maybe<DbxThemeColor>);
44
48
  onResized(event: ResizedEvent): void;
45
49
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxMapboxLayoutComponent, never>;
46
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxMapboxLayoutComponent, "dbx-mapbox-layout", never, { "side": "side"; "opened": "opened"; "hasContent": "hasContent"; "drawerColor": "drawerColor"; }, {}, never, ["[drawer]", "*"], false>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxMapboxLayoutComponent, "dbx-mapbox-layout", never, { "side": "side"; "mode": "mode"; "opened": "opened"; "hasContent": "hasContent"; "drawerColor": "drawerColor"; }, {}, never, ["[drawer]", "*"], false>;
47
51
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-web/mapbox",
3
- "version": "9.6.2",
3
+ "version": "9.6.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.1.0",
6
6
  "@angular/core": "^14.1.0",
7
7
  "rxjs": "^7.5.0",
8
- "@dereekb/util": "9.6.2",
9
- "@dereekb/dbx-web": "9.6.2",
8
+ "@dereekb/util": "9.6.3",
9
+ "@dereekb/dbx-web": "9.6.3",
10
10
  "ngx-mapbox-gl": "^9.1.0",
11
11
  "mapbox-gl": "^2.9.2"
12
12
  },
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-web",
3
- "version": "9.6.2",
3
+ "version": "9.6.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0",
6
6
  "@angular/core": "^14.0.0",
7
7
  "linkify-string": "4.0.0-beta.5",
8
8
  "linkifyjs": "^4.0.0-beta.5",
9
9
  "@angular/material": "^14.0.0",
10
- "@dereekb/rxjs": "9.6.2",
11
- "@dereekb/dbx-core": "9.6.2",
10
+ "@dereekb/rxjs": "9.6.3",
11
+ "@dereekb/dbx-core": "9.6.3",
12
12
  "angular-calendar": "^0.30.1",
13
13
  "@angular/flex-layout": "^14.0.0-beta.40",
14
14
  "ng-overlay-container": "^14.0.0",