@dereekb/dbx-web 9.24.21 → 9.24.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar/package.json +2 -2
- package/esm2020/mapbox/lib/mapbox.layout.component.mjs +31 -15
- package/esm2020/mapbox/lib/mapbox.layout.drawer.component.mjs +2 -2
- package/fesm2015/dereekb-dbx-web-mapbox.mjs +31 -15
- package/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-web-mapbox.mjs +31 -15
- package/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/lib/layout/style/_style.scss +13 -10
- package/lib/layout/text/_text.scss +3 -2
- package/mapbox/esm2020/lib/mapbox.layout.component.mjs +31 -15
- package/mapbox/esm2020/lib/mapbox.layout.drawer.component.mjs +2 -2
- package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs +31 -15
- package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs +31 -15
- package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/lib/mapbox.layout.component.d.ts +11 -4
- package/mapbox/lib/mapbox.layout.drawer.component.d.ts +1 -1
- package/mapbox/package.json +3 -3
- package/package.json +3 -3
- package/table/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dereekb-dbx-web-mapbox.mjs","sources":["../../../../packages/dbx-web/mapbox/src/lib/mapbox.cdref.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.util.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.rxjs.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.change.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.map.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.menu.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.markers.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.resize.sync.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.ts","../../../../packages/dbx-web/mapbox/src/dereekb-dbx-web-mapbox.ts"],"sourcesContent":["import { ChangeDetectorRef, Host, Injectable } from '@angular/core';\nimport { safeDetectChanges, safeMarkForCheck } from '@dereekb/dbx-core';\n\n/**\n * Provided in the parent component that allows children to import the parent's cdRef for use.\n *\n * @Deprecated consider using DbxMapboxChangeService instead.\n */\n@Injectable({\n providedIn: null\n})\nexport class DbxMapboxChangeDetectorRefService {\n constructor(@Host() readonly cdRef: ChangeDetectorRef) {}\n\n markForCheck() {\n safeMarkForCheck(this.cdRef);\n }\n\n detectChanges() {\n safeDetectChanges(this.cdRef);\n }\n}\n","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 { LatLngBound, LatLngPoint, Vector, VectorTuple } from '@dereekb/util';\nimport { bounds } from '@mapbox/geo-viewport';\nimport { MapboxTileSize, MapboxZoomLevel } from './mapbox';\n\nexport interface MapboxViewportBoundFunctionConfig {\n readonly mapCanvasSize: Vector;\n /**\n * Mapbox tilesize being used. Defaults to 512x512.\n */\n readonly tileSize?: MapboxTileSize;\n}\n\n/**\n * Input for MapboxViewportBoundFunction.\n */\nexport interface MapboxViewportBoundFunctionInput {\n /**\n * Center of the viewport\n */\n readonly center: LatLngPoint;\n /**\n * Zoom level\n */\n readonly zoom: MapboxZoomLevel;\n}\n\n/**\n * Used to calculate the bounds of a view/object given the input MapboxViewportBoundFunctionInput.\n */\nexport type MapboxViewportBoundFunction = (input: MapboxViewportBoundFunctionInput) => LatLngBound;\n\nexport function mapboxViewportBoundFunction(config: MapboxViewportBoundFunctionConfig): MapboxViewportBoundFunction {\n const { mapCanvasSize, tileSize = 512 } = config;\n const dimensions: VectorTuple = [mapCanvasSize.x, mapCanvasSize.y];\n return ({ center, zoom }) => {\n const boundingBox = bounds([center.lng, center.lat], zoom, dimensions, tileSize);\n const [swLng, swLat, neLng, neLat] = boundingBox;\n\n const result = {\n sw: { lat: swLat, lng: swLng },\n ne: { lat: neLat, lng: neLng }\n };\n\n return result;\n };\n}\n","import { ObservableOrValue, asObservable } from '@dereekb/rxjs';\nimport { LAT_LONG_10M_PRECISION, LatLngPointInput, LatLngBound, LatLngBoundCheckFunction, latLngPointFunction, roundNumberToStepFunction, RoundNumberToStepFunctionInput, LatLngPrecision, Maybe } from '@dereekb/util';\nimport { combineLatestWith, map, Observable, OperatorFunction, switchMap, shareReplay, distinctUntilChanged } from 'rxjs';\nimport { MapboxZoomLevel } from './mapbox';\nimport { MapboxViewportBoundFunction } from './mapbox.util';\n\nexport type FilterMapboxBoundReadItemValueFunction<T> = (value: T) => MapboxViewportBoundFunctionItemValue;\n\nexport interface FilterMapboxBoundConfig<T> {\n boundFunctionObs: ObservableOrValue<MapboxViewportBoundFunction>;\n boundDecisionObs: ObservableOrValue<LatLngBoundCheckFunction>;\n /**\n * Reads the value from the input item.\n */\n readValue: FilterMapboxBoundReadItemValueFunction<T>;\n /**\n * Minimum precision to retain. Defaults to LAT_LONG_10M_PRECISION\n */\n precision?: LatLngPrecision;\n /**\n * Amount of zoom rounding to use. By default rounds to 0.5 steps using \"floor\" in order to \"round up\" since zoom values are inversely proportional to bounds area.\n */\n zoomRounding?: RoundNumberToStepFunctionInput;\n /**\n * Default zoom level for item values that do not have an explicit zoom, or a zoom of 0.\n *\n * Defaults to 17, which can produce a viewport/bounds about the size of a park.\n */\n defaultZoom?: MapboxZoomLevel;\n}\n\nexport interface MapboxViewportBoundFunctionItemValue {\n readonly center: LatLngPointInput;\n readonly zoom?: Maybe<MapboxZoomLevel>;\n}\n\nexport interface MapboxViewportBoundFunctionItem<T> {\n readonly value: T;\n readonly bound: LatLngBound;\n}\n\n/**\n * Filters the input objects based on their center and zoom values.\n *\n * This function caches the bounds computations for each of the input values.\n *\n * @param config\n * @returns\n */\nexport function filterByMapboxViewportBound<T>(config: FilterMapboxBoundConfig<T>): OperatorFunction<T[], T[]> {\n const { boundDecisionObs: inputBoundDecisionObs, boundFunctionObs: inputBoundFunctionObs, defaultZoom: inputDefaultZoom = 17, readValue, zoomRounding, precision = LAT_LONG_10M_PRECISION } = config;\n const _latLngPoint = latLngPointFunction({ wrap: false, validate: false, precision });\n const _roundZoom = roundNumberToStepFunction(zoomRounding || { step: 0.5, round: 'floor' });\n\n const boundDecisionObs = asObservable(inputBoundDecisionObs);\n const boundFunctionObs = asObservable(inputBoundFunctionObs);\n\n return (input: Observable<T[]>) => {\n return boundFunctionObs.pipe(\n distinctUntilChanged(),\n switchMap((viewportBoundFunction) => {\n const cache = new Map<string, LatLngBound>();\n\n return input.pipe(\n map((values: T[]) => {\n return values.map((value: T) => {\n const item: MapboxViewportBoundFunctionItemValue = readValue(value);\n const centerLatLng = _latLngPoint(item.center);\n const zoomStep = _roundZoom(item.zoom || inputDefaultZoom);\n const cacheKey = `${zoomStep}_${centerLatLng.lat}_${centerLatLng.lng}`;\n\n const cachedValue = cache.get(cacheKey);\n let bound: LatLngBound;\n\n if (!cachedValue) {\n bound = viewportBoundFunction({ center: centerLatLng, zoom: zoomStep });\n cache.set(cacheKey, bound);\n } else {\n bound = cachedValue;\n }\n\n return {\n value,\n bound\n } as MapboxViewportBoundFunctionItem<T>;\n });\n }),\n combineLatestWith(boundDecisionObs),\n map(([items, boundFunction]) => {\n const valuesInBounds: T[] = [];\n\n items.forEach((item) => {\n if (boundFunction(item.bound)) {\n valuesInBounds.push(item.value);\n }\n });\n\n return valuesInBounds;\n })\n );\n }),\n shareReplay(1)\n );\n };\n}\n","import { cleanup, filterMaybe, onTrueToFalse } from '@dereekb/rxjs';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport {\n isSameLatLngBound,\n isSameLatLngPoint,\n IsWithinLatLngBoundFunction,\n isWithinLatLngBoundFunction,\n LatLngBound,\n latLngBoundFunction,\n LatLngPointInput,\n LatLngPoint,\n latLngPointFunction,\n Maybe,\n OverlapsLatLngBoundFunction,\n overlapsLatLngBoundFunction,\n diffLatLngBoundPoints,\n latLngBoundCenterPoint,\n addLatLngPoints,\n isDefaultLatLngPoint,\n swMostLatLngPoint,\n neMostLatLngPoint,\n latLngBoundWrapsMap,\n Vector,\n vectorsAreEqual,\n filterUndefinedValues,\n latLngBoundFromInput,\n vectorMinimumSizeResizeFunction,\n isSameVector\n} 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, EMPTY, OperatorFunction } from 'rxjs';\nimport * as MapboxGl from 'mapbox-gl';\nimport { DbxMapboxClickEvent, KnownMapboxStyle, MapboxBearing, MapboxEaseTo, MapboxFitBounds, MapboxFitPositions, MapboxFlyTo, MapboxJumpTo, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSnapToNorth, MapboxStyleConfig, MapboxZoomLevel, MapboxZoomLevelRange } from './mapbox';\nimport { DbxMapboxService } from './mapbox.service';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { mapboxViewportBoundFunction, MapboxViewportBoundFunction } from './mapbox.util';\nimport { FilterMapboxBoundConfig, FilterMapboxBoundReadItemValueFunction, filterByMapboxViewportBound } from './mapbox.rxjs';\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 * Visual container size of the map.\n */\n mapCanvasSize?: Maybe<Vector>;\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 * Minimum vector size to use for the viewportBoundFunction$. If not defined there is no minimum.\n */\n minimumVirtualViewportSize?: Maybe<Partial<Vector>>;\n /**\n * Whether or not to use the virtual bound (vs raw bound) for all bound-related observables.\n *\n * Defaults to true.\n */\n useVirtualBound: boolean;\n}\n\n/**\n * Store used for retrieving information.\n */\n@Injectable()\nexport class DbxMapboxMapStore extends ComponentStore<DbxMapboxStoreState> implements OnDestroy {\n private safeLatLngPoint = latLngPointFunction({ wrap: true });\n private latLngPoint = latLngPointFunction({ wrap: false, validate: false });\n private latLngBound = latLngBoundFunction({ pointFunction: this.latLngPoint });\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 useVirtualBound: 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 refreshForResize = () => {\n const { clientWidth: x, clientHeight: y } = map.getCanvas();\n this._setMapCanvasSize({ x, y });\n };\n\n addListener('resize', refreshForResize);\n refreshForResize();\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.safeLatLngPoint(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 setZoomRange = this.effect((input: Observable<Partial<MapboxZoomLevelRange>>) => {\n return input.pipe(\n switchMap((zoomRange: Partial<MapboxZoomLevelRange>) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n map.setMinZoom(zoomRange.min || null);\n map.setMaxZoom(zoomRange.max || null);\n })\n );\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 fitPositions = this.effect((input: Observable<MapboxFitPositions>) => {\n return input.pipe(\n switchMap((x) => {\n const boundFromInput = latLngBoundFromInput(x.positions);\n\n if (boundFromInput) {\n const bound = this.latLngBound(boundFromInput);\n return this.mapInstance$.pipe(tap((map) => map.fitBounds(new MapboxGl.LngLatBounds(bound.sw, bound.ne), x.options, x.eventData)));\n } else {\n return EMPTY;\n }\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.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.jumpTo(filterUndefinedValues({ ...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.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.easeTo(filterUndefinedValues({ ...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.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.flyTo(filterUndefinedValues({ ...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(1)\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(1)\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 // TODO: Consider calculating this using the viewport() function from @mapbox/geo-viewport\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.bound$.pipe(\n first(),\n map((bounds) => {\n const diff = diffLatLngBoundPoints(bounds, true);\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 filterByViewportBound<T>(input: FilterMapboxBoundReadItemValueFunction<T> | Omit<FilterMapboxBoundConfig<T>, 'boundFunctionObs' | 'boundDecisionObs'>): OperatorFunction<T[], T[]> {\n const config = typeof input === 'function' ? { readValue: input } : input;\n\n return filterByMapboxViewportBound({\n ...config,\n boundFunctionObs: this.viewportBoundFunction$,\n boundDecisionObs: this.overlapsBoundFunction$\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(1)\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(1)\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(1)\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(1)\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<LatLngPoint>(isSameLatLngPoint),\n shareReplay(1)\n );\n }),\n shareReplay(1)\n );\n\n readonly minimumVirtualViewportSize$ = this.state$.pipe(\n map((x) => x.minimumVirtualViewportSize),\n distinctUntilChanged(isSameVector),\n shareReplay(1)\n );\n\n readonly currentMapCanvasSize$ = this.state$.pipe(\n map((x) => x.mapCanvasSize),\n distinctUntilChanged<Maybe<Vector>>(isSameVector),\n shareReplay(1)\n );\n\n /**\n * The map canvas size with consideration to the virtual viewport size.\n */\n readonly mapCanvasSize$ = this.currentMapCanvasSize$.pipe(filterMaybe());\n\n minimumMapCanvasSize(minVector: Partial<Vector>): Observable<Vector> {\n const resizeFn = vectorMinimumSizeResizeFunction(minVector);\n return this.mapCanvasSize$.pipe(\n map((x) => resizeFn(x)),\n distinctUntilChanged<Vector>(isSameVector),\n shareReplay(1)\n );\n }\n\n /**\n * The map canvas size with consideration to the virtual viewport size.\n */\n readonly virtualMapCanvasSize$ = this.minimumVirtualViewportSize$.pipe(\n switchMap((minimumVirtualViewportSize) => {\n if (minimumVirtualViewportSize) {\n return this.minimumMapCanvasSize(minimumVirtualViewportSize);\n } else {\n return this.mapCanvasSize$;\n }\n }),\n distinctUntilChanged<Vector>(isSameVector),\n shareReplay(1)\n );\n\n readonly rawViewportBoundFunction$: Observable<MapboxViewportBoundFunction> = this.mapCanvasSize$.pipe(\n map((mapCanvasSize) => mapboxViewportBoundFunction({ mapCanvasSize })),\n shareReplay(1)\n );\n\n /**\n * Creates a MapboxViewportBoundFunction observable that returns the minimum viewport size.\n *\n * @param minVector\n * @returns\n */\n viewportBoundFunctionWithMinimumSize(minVector: Partial<Vector>): Observable<MapboxViewportBoundFunction> {\n const resizeFn = vectorMinimumSizeResizeFunction(minVector);\n return this.mapCanvasSize$.pipe(\n map((x) => resizeFn(x)),\n distinctUntilChanged<Vector>(isSameVector),\n map((mapCanvasSize) => mapboxViewportBoundFunction({ mapCanvasSize })),\n shareReplay(1)\n );\n }\n\n readonly viewportBoundFunction$: Observable<MapboxViewportBoundFunction> = this.minimumVirtualViewportSize$.pipe(\n switchMap((minimumVirtualViewportSize) => {\n if (minimumVirtualViewportSize) {\n return this.viewportBoundFunctionWithMinimumSize(minimumVirtualViewportSize);\n } else {\n return this.rawViewportBoundFunction$;\n }\n }),\n shareReplay(1)\n );\n\n readonly virtualBound$: Observable<LatLngBound> = this.viewportBoundFunction$.pipe(\n switchMap((fn) => {\n return combineLatest([this.center$, this.zoom$]).pipe(\n map(([center, zoom]) =>\n fn({\n center,\n zoom\n })\n )\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 rawBoundNow$: 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() : { lat: boundSw.lat, lng: boundSw.lng };\n const ne = isDefaultLatLngPoint(boundNe) ? neMostLatLngPoint() : { lat: boundNe.lat, lng: boundNe.lng };\n\n return this.latLngBound(sw, ne);\n })\n )\n ),\n shareReplay(1)\n )\n )\n );\n\n readonly rawBound$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRendering$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.rawBoundNow$.pipe(first())),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n })\n );\n\n readonly useVirtualBound$: Observable<boolean> = this.state$.pipe(\n map((x) => x.useVirtualBound),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly bound$: Observable<LatLngBound> = this.useVirtualBound$.pipe(\n switchMap((useVirtualBound) => {\n if (useVirtualBound) {\n return this.virtualBound$;\n } else {\n return this.bound$;\n }\n }),\n shareReplay(1)\n );\n\n readonly boundSizing$: Observable<LatLngPoint> = this.bound$.pipe(\n map((x) => diffLatLngBoundPoints(x)),\n shareReplay(1)\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.virtualBound$.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(() => 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(() => 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(() => 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 readonly setMinimumVirtualViewportSize = this.updater((state, minimumVirtualViewportSize: Maybe<Partial<Vector>>) => ({ ...state, minimumVirtualViewportSize }));\n readonly setUseVirtualBound = this.updater((state, useVirtualBound: boolean) => ({ ...state, useVirtualBound }));\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, useVirtualBound: state.useVirtualBound }));\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 _setMapCanvasSize = this.updater((state, mapCanvasSize: Vector) => ({ ...state, mapCanvasSize }));\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 { Injectable, OnDestroy } from '@angular/core';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { switchMap, tap, merge, Subject, throttleTime } from 'rxjs';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Provided in the parent component that allows children to emit events related to their lifecycles.\n */\n@Injectable({\n providedIn: null\n})\nexport class DbxMapboxChangeService implements OnDestroy {\n private _markerDestroyed = new Subject<void>();\n private _applyChanges = new Subject<void>();\n\n readonly markerDestroyed$ = this._markerDestroyed;\n readonly applyChanges$ = merge(this._applyChanges, this.markerDestroyed$).pipe(throttleTime(100, undefined, { leading: false, trailing: true }));\n\n private _applyChangesSub = new SubscriptionObject(\n this.dbxMapboxMapStore.mapService$\n .pipe(\n switchMap((mapService) =>\n this.applyChanges$.pipe(\n tap(() => {\n mapService.applyChanges();\n })\n )\n )\n )\n .subscribe()\n );\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore) {}\n\n applyChanges() {\n this._applyChanges.next();\n }\n\n emitMarkerDestroyed() {\n this._markerDestroyed.next();\n }\n\n ngOnDestroy(): void {\n this._markerDestroyed.complete();\n this._applyChanges.complete();\n this._applyChangesSub.destroy();\n }\n}\n","import { map, Observable, shareReplay } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { DbxInjectionComponentConfigWithoutInjector } from '@dereekb/dbx-core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { distinctUntilMapHasDifferentKeys, ObservableOrValueGetter } from '@dereekb/rxjs';\n\nexport type DbxMapboxInjectionKey = string;\n\nexport interface DbxMapboxInjectionConfig {\n /**\n * Unique key that identifies this config specifically.\n *\n * Keys should all be unique. The system does not expect duplicate keys. Modifications to injectionConfig should occur through the observable value.\n */\n readonly key: DbxMapboxInjectionKey;\n /**\n * Arbitrary injection type. Is used for filtering on configurations.\n */\n readonly type?: string;\n /**\n * Injection configuration. The injector is disallowed, as the parent injector must include the mapbox component.\n */\n readonly injectionConfig: ObservableOrValueGetter<DbxInjectionComponentConfigWithoutInjector>;\n}\n\nexport interface DbxMapboxMapInjectionStoreState {\n /**\n * Current map of injection keys and configurations.\n */\n readonly map: Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>;\n\n // TODO: Add filters for showing/hiding elements of different types.\n}\n\n/**\n * Store used for storing injectable content into the map.\n */\n@Injectable()\nexport class DbxMapboxInjectionStore extends ComponentStore<DbxMapboxMapInjectionStoreState> implements OnDestroy {\n constructor() {\n super({\n map: new Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>()\n });\n }\n\n readonly map$: Observable<Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>> = this.state$.pipe(\n map((x) => x.map),\n distinctUntilMapHasDifferentKeys(),\n shareReplay(1)\n );\n\n readonly allInjectionConfigs$: Observable<DbxMapboxInjectionConfig[]> = this.map$.pipe(\n map((x) => Array.from(x.values())),\n shareReplay(1)\n );\n\n // MARK: State Changes\n readonly addInjectionConfig = this.updater(updateDbxMapboxMapInjectionStoreStateWithInjectionConfig);\n readonly removeInjectionConfigWithKey = this.updater(updateDbxMapboxMapInjectionStoreStateWithRemovedKey);\n}\n\nexport function updateDbxMapboxMapInjectionStoreStateWithInjectionConfig(state: DbxMapboxMapInjectionStoreState, config: DbxMapboxInjectionConfig) {\n const map = new Map(state.map).set(config.key, config);\n return { ...state, map };\n}\n\nexport function updateDbxMapboxMapInjectionStoreStateWithRemovedKey(state: DbxMapboxMapInjectionStoreState, key: DbxMapboxInjectionKey) {\n // only create a new state if the key is going to get removed\n if (state.map.has(key)) {\n const map = new Map(state.map);\n map.delete(key);\n state = { ...state, map };\n }\n\n return state;\n}\n","import { Observable, shareReplay } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, Injector } from '@angular/core';\nimport { DbxInjectionArrayEntry } from '@dereekb/dbx-core';\nimport { DbxMapboxInjectionStore } from './mapbox.injection.store';\n\n/**\n * Injects the components configured in the DbxMapboxInjectionStore into the view.\n */\n@Component({\n selector: 'dbx-mapbox-injection',\n template: `\n <dbx-injection-array [entries]=\"entries$ | async\"></dbx-injection-array>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxInjectionComponent {\n readonly entries$: Observable<DbxInjectionArrayEntry[]> = this.dbxMapboxMapKeyInjectionStore.allInjectionConfigs$.pipe(shareReplay(1));\n\n constructor(readonly dbxMapboxMapKeyInjectionStore: DbxMapboxInjectionStore, readonly injector: Injector) {}\n}\n","import { Directive, Injectable, Injector, Optional, Provider, SkipSelf } from '@angular/core';\nimport { DbxMapboxInjectionStore } from './mapbox.injection.store';\n\n/**\n * Token used by provideMapboxInjectionStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxInjectionStore into the child view.\n */\n@Injectable()\nexport class DbxMapboxInjectionStoreProviderBlock {\n constructor(@SkipSelf() readonly dbxMapboxInjectionStore: DbxMapboxInjectionStore) {}\n}\n\n@Directive({\n selector: '[dbxMapboxInjectionStoreParentBlocker]',\n providers: [DbxMapboxInjectionStoreProviderBlock]\n})\nexport class DbxMapboxInjectionStoreInjectionBlockDirective {}\n\n/**\n * Creates a Provider that initializes a new DbxMapboxInjectionStore if a parent does not exist.\n *\n * If a DbxMapboxInjectionStoreInjectionBlock is available in the context, and references the same dbxMapboxInjectionStore that is attempting to be injected, a new DbxMapboxInjectionStore is created.\n *\n * @returns\n */\nexport function provideMapboxInjectionStoreIfParentIsUnavailable(): Provider {\n return {\n provide: DbxMapboxInjectionStore,\n useFactory: (parentInjector: Injector, dbxMapboxInjectionStoreInjectionBlock?: DbxMapboxInjectionStoreProviderBlock, dbxMapboxInjectionStore?: DbxMapboxInjectionStore) => {\n if (!dbxMapboxInjectionStore || (dbxMapboxInjectionStore && dbxMapboxInjectionStoreInjectionBlock != null && dbxMapboxInjectionStoreInjectionBlock.dbxMapboxInjectionStore === dbxMapboxInjectionStore)) {\n // create a new dbxMapboxInjectionStore to use\n const injector = Injector.create({ providers: [{ provide: DbxMapboxInjectionStore }], parent: parentInjector });\n dbxMapboxInjectionStore = injector.get(DbxMapboxInjectionStore);\n }\n\n return dbxMapboxInjectionStore;\n },\n deps: [Injector, [new Optional(), DbxMapboxInjectionStoreProviderBlock], [new Optional(), new SkipSelf(), DbxMapboxInjectionStore]]\n };\n}\n","import { DbxMapboxService } from './mapbox.service';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { Directive, Host, OnInit, Optional } from '@angular/core';\nimport { MapComponent, MapService } from 'ngx-mapbox-gl';\nimport { latLngPoint } from '@dereekb/util';\n\n/**\n * Directive that configures a MapComponent with content from DbxMapboxService. Connects a host MapService to a parent DbxMapboxMapStore if available.\n */\n@Directive({\n selector: '[dbxMapboxMap]'\n})\nexport class DbxMapboxMapDirective implements OnInit {\n constructor(\n //\n @Host() readonly mapService: MapService,\n @Host() readonly mapboxMap: MapComponent,\n readonly dbxMapboxService: DbxMapboxService,\n @Optional() readonly dbxMapboxMapStore: DbxMapboxMapStore\n ) {}\n\n ngOnInit(): void {\n // style must be provided first before the map will load.\n this.mapboxMap.style = this.dbxMapboxService.defaultStyle;\n this.mapboxMap.zoom = [this.dbxMapboxService.defaultZoom];\n this.mapboxMap.center = latLngPoint(this.dbxMapboxService.defaultCenter);\n\n if (this.dbxMapboxMapStore) {\n this.dbxMapboxMapStore.setMapService(this.mapService);\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Content drawer that connects with DbxMapboxMapStore to\n */\n@Component({\n selector: 'dbx-mapbox-layout-drawer',\n templateUrl: './mapbox.layout.drawer.component.html',\n host: {\n class: 'dbx-mapbox-layout-drawer'\n }\n})\nexport class DbxMapboxLayoutDrawerComponent {\n readonly config$ = this.dbxMapboxMapStore.content$;\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore) {}\n}\n","<div>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n</div>\n","import { tap, switchMap, first, startWith, shareReplay, throttleTime, map, distinctUntilChanged, BehaviorSubject, combineLatest, Subject, Observable } from 'rxjs';\nimport { Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { Maybe } from '@dereekb/util';\nimport { dbxColorBackground, DbxThemeColor } from '@dereekb/dbx-web';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { MatDrawerContainer } from '@angular/material/sidenav';\nimport { MapboxEaseTo } from './mapbox';\n\nexport type DbxMapboxLayoutSide = 'left' | 'right';\n\nexport type DbxMapboxLayoutMode = 'side' | 'push';\n\n/**\n * Responsive component meant to split a left and right column.\n *\n * The left column is smaller than the right column, which contains the primary content.\n *\n * Requires a TwoColumnsContextStore to be provided.\n */\n@Component({\n selector: 'dbx-mapbox-layout',\n templateUrl: './mapbox.layout.component.html',\n styleUrls: ['./mapbox.layout.component.scss']\n})\nexport class DbxMapboxLayoutComponent extends SubscriptionObject implements OnInit, OnDestroy {\n @ViewChild(MatDrawerContainer, { read: ElementRef })\n readonly containerElement!: ElementRef;\n\n @ViewChild(MatDrawerContainer)\n readonly drawerContainer!: MatDrawerContainer;\n\n @ViewChild('content', { read: ElementRef, static: true })\n readonly content!: ElementRef;\n\n private _resized = new Subject<ResizedEvent>();\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 resized$ = this._resized.asObservable();\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.drawerContainer._contentMargins;\n\n this.drawerContainer.updateContentMargins();\n\n setTimeout(() => {\n const flip = opened ? 1 : -1;\n\n if (opened) {\n right = this.drawerContainer._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.drawerContainer.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(event);\n }\n}\n","<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer [opened]=\"opened$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n","import { SubscriptionObject } from '@dereekb/rxjs';\nimport { filter, switchMap, BehaviorSubject, of } from 'rxjs';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, Input, OnInit, OnDestroy, NgZone } from '@angular/core';\nimport { Maybe, DestroyFunctionObject } from '@dereekb/util';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { disableRightClickInCdkBackdrop } from '@dereekb/dbx-web';\n\n/**\n * Directive that connects a host MatMenuTrigger to a DbxMapboxMapStore and listens for right-clicks on the map.\n *\n * The map dissapears if the mouse scrolls anywhere else on the map.\n */\n@Component({\n selector: 'dbx-mapbox-menu',\n template: '',\n host: {\n style: 'visibility: hidden; position: fixed',\n '[style.top]': 'pos.y',\n '[style.left]': 'pos.x'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMenuComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private _pos = { x: `0`, y: `0` };\n private _active = new BehaviorSubject<boolean>(true);\n\n private _menuCloseSub = new SubscriptionObject();\n private _preventRightClick = new DestroyFunctionObject();\n\n get pos() {\n return this._pos;\n }\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore, @Host() readonly matMenuTrigger: MatMenuTrigger, readonly ngZone: NgZone, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n @Input()\n set active(active: Maybe<boolean>) {\n this._active.next(active ?? true);\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","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, OnDestroy, Optional } from '@angular/core';\nimport { getValueFromGetter, latLngPointFunction, Maybe } from '@dereekb/util';\nimport { DbxMapboxChangeService } from './mapbox.change.service';\nimport { DbxMapboxMarker } from './mapbox.marker';\n\n@Component({\n selector: 'dbx-mapbox-marker',\n template: `\n <mgl-marker *ngIf=\"marker\" [lngLat]=\"latLng\">\n <dbx-anchor [anchor]=\"anchor\">\n <div class=\"dbx-mapbox-marker\" [ngClass]=\"presentationClasses\">\n <div class=\"dbx-mapbox-marker-icon-content\" [ngStyle]=\"style\">\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n </div>\n <div class=\"dbx-mapbox-marker-label dbx-outlined-text\" *ngIf=\"label\">{{ label }}</div>\n </div>\n </dbx-anchor>\n </mgl-marker>\n `,\n styleUrls: ['./mapbox.marker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMarkerComponent implements OnDestroy {\n private static _latLngPoint = latLngPointFunction({ wrap: true });\n\n private _marker: Maybe<DbxMapboxMarker>;\n\n constructor(@Optional() private readonly _dbxMapboxChangeService?: DbxMapboxChangeService) {}\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 get latLng() {\n const input = this._marker?.latLng;\n return input ? DbxMapboxMarkerComponent._latLngPoint(input) : undefined;\n }\n\n get anchor() {\n return this._marker?.anchor;\n }\n\n get label() {\n return this._marker?.label;\n }\n\n get icon() {\n return this._marker?.icon;\n }\n\n get style() {\n let width = 0;\n let height = 0;\n\n const size = this._marker?.size || 'medium';\n\n switch (this.presentation) {\n case 'normal':\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 break;\n }\n break;\n }\n\n if (!height) {\n height = width;\n }\n\n const imageInput = this._marker?.image;\n const image = imageInput ? (typeof imageInput === 'string' ? imageInput : getValueFromGetter(imageInput, width)) : undefined;\n\n const style: any = {\n ...this._marker?.style,\n 'background-image': image\n };\n\n if (width && height) {\n style.width = width + 'px';\n style.height = height + 'px';\n style['font-size'] = width + 'px';\n }\n\n return style;\n }\n\n get presentation() {\n return this._marker?.presentation ?? 'normal';\n }\n\n get presentationClasses() {\n const presentation = this.presentation;\n const markerClasses = this._marker?.markerClasses;\n\n let cssClasses = '';\n\n switch (presentation) {\n case 'chip':\n case 'chip-small':\n cssClasses = 'dbx-mapbox-marker-chip dbx-chip mat-standard-chip dbx-bg';\n\n if (presentation === 'chip-small') {\n cssClasses += ' dbx-chip-small';\n }\n\n break;\n }\n\n if (!this.icon) {\n cssClasses += ' dbx-mapbox-marker-no-icon';\n }\n\n if (markerClasses) {\n cssClasses += ` ${markerClasses}`;\n }\n\n return cssClasses;\n }\n\n ngOnDestroy(): void {\n this._dbxMapboxChangeService?.emitMarkerDestroyed();\n }\n}\n","import { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { ChangeDetectionStrategy, Component, Input, OnDestroy } from '@angular/core';\nimport { DbxMapboxMarker, DbxMapboxMarkerFactory } from './mapbox.marker';\n\n/**\n * Component used to render a set of DbxMapboxMarker values from the input data and marker factory.\n */\n@Component({\n selector: 'dbx-mapbox-markers',\n template: `\n <dbx-mapbox-marker *ngFor=\"let marker of markers$ | async; trackBy: trackMarkerById\" [marker]=\"marker\"></dbx-mapbox-marker>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMarkersComponent<T> implements OnDestroy {\n private _data = new BehaviorSubject<Maybe<T[]>>(undefined);\n private _markerFactory = new BehaviorSubject<Maybe<DbxMapboxMarkerFactory<T>>>(undefined);\n\n readonly markers$ = combineLatest([this._data.pipe(distinctUntilChanged()), this._markerFactory.pipe(distinctUntilChanged())]).pipe(\n map(([data, markerFactory]) => {\n if (data?.length && markerFactory) {\n return data.map(markerFactory);\n } else {\n return [];\n }\n }),\n shareReplay(1)\n );\n\n trackMarkerById(index: number, marker: DbxMapboxMarker) {\n return marker.id;\n }\n\n @Input()\n get data() {\n return this._data.value;\n }\n\n set data(data: Maybe<T[]>) {\n this._data.next(data || []);\n }\n\n @Input()\n get markerFactory() {\n return this._markerFactory.value;\n }\n\n set markerFactory(markerFactory: Maybe<DbxMapboxMarkerFactory<T>>) {\n this._markerFactory.next(markerFactory);\n }\n\n ngOnDestroy(): void {\n this._data.complete();\n this._markerFactory.complete();\n }\n}\n","import { shareReplay, map, distinctUntilChanged } from 'rxjs';\nimport { Directive, Host, OnInit } from '@angular/core';\nimport { isSameVector } from '@dereekb/util';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\n\n/**\n * Directive that synchronizes a map's virtual size with the size of the element.\n */\n@Directive({\n selector: '[dbxMapboxLayoutVirtualResizeSync]'\n})\nexport class DbxMapboxLayoutVirtualResizeSyncComponent extends SubscriptionObject implements OnInit {\n readonly resizedVector$ = this.dbxMapboxLayoutComponent.resized$.pipe(\n map(() => {\n const element = this.dbxMapboxLayoutComponent.containerElement.nativeElement as HTMLElement;\n const { clientWidth, clientHeight } = element;\n return {\n x: clientWidth,\n y: clientHeight\n };\n }),\n distinctUntilChanged(isSameVector),\n shareReplay(1)\n );\n\n constructor(@Host() readonly dbxMapboxLayoutComponent: DbxMapboxLayoutComponent) {\n super();\n }\n\n ngOnInit(): void {\n this.dbxMapboxLayoutComponent.dbxMapboxMapStore.setMinimumVirtualViewportSize(this.resizedVector$);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbxMapboxMapDirective } from './mapbox.store.map.directive';\nimport { DbxMapboxConfig } from './mapbox.service';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { DbxMapboxLayoutDrawerComponent } from './mapbox.layout.drawer.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { DbxMapboxMenuComponent } from './mapbox.menu.component';\nimport { DbxMapboxMapStoreInjectionBlockDirective } from './mapbox.store.provide';\nimport { DbxMapboxMarkerComponent } from './mapbox.marker.component';\nimport { NgxMapboxGLModule } from 'ngx-mapbox-gl';\nimport { DbxRouterAnchorModule } from '@dereekb/dbx-web';\nimport { DbxMapboxMarkersComponent } from './mapbox.markers.component';\nimport { DbxMapboxInjectionComponent } from './mapbox.injection.component';\nimport { DbxMapboxLayoutVirtualResizeSyncComponent } from './mapbox.layout.resize.sync.directive';\n\nconst declarations = [\n //\n DbxMapboxLayoutVirtualResizeSyncComponent,\n DbxMapboxMapDirective,\n DbxMapboxLayoutComponent,\n DbxMapboxLayoutDrawerComponent,\n DbxMapboxInjectionComponent,\n DbxMapboxMenuComponent,\n DbxMapboxMarkerComponent,\n DbxMapboxMarkersComponent,\n DbxMapboxMapStoreInjectionBlockDirective\n];\n\n@NgModule({\n imports: [\n //\n CommonModule,\n MatSidenavModule,\n DbxInjectionComponentModule,\n MatButtonModule,\n MatIconModule,\n AngularResizeEventModule,\n DbxRouterAnchorModule,\n NgxMapboxGLModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxMapboxModule {\n static forRoot(config: DbxMapboxConfig): ModuleWithProviders<DbxMapboxModule> {\n return {\n ngModule: DbxMapboxModule,\n providers: [\n {\n provide: DbxMapboxConfig,\n useValue: config\n }\n ]\n };\n }\n}\n","import { ClickableAnchor } from '@dereekb/dbx-core';\nimport { Pixels, FactoryWithRequiredInput, LatLngInputRef, UniqueModel } from '@dereekb/util';\n\n/**\n * DbxMapboxMarkerSize. Numbers are converted to pixels.\n */\nexport type DbxMapboxMarkerSize = 'small' | 'medium' | 'large' | 'tall' | Pixels;\n\n/**\n * Presentation style.\n *\n * - normal: Text under dot with optional icon within dot\n * - chip: \"dbx-chip\"-like presentation\n */\nexport type DbxMapboxMarkerPresentation = 'normal' | 'chip' | 'chip-small';\n\nexport interface DbxMapboxMarkerDisplayConfig {\n /**\n * Presentation style. Defaults to \"normal\"\n */\n presentation?: DbxMapboxMarkerPresentation;\n /**\n * Additional classes to add to the marker.\n */\n markerClasses?: string;\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 * Anchor\n */\n anchor?: ClickableAnchor;\n /**\n * Additional icon content styling. Style is not applied to the entire marker. Use markerClasses instead.\n */\n style?: object;\n}\n\nexport type DbxMapboxMarker = UniqueModel & LatLngInputRef & DbxMapboxMarkerDisplayConfig;\n\n/**\n * MapFunction that converts the input data to a DbxMapboxMarker.\n */\nexport type DbxMapboxMarkerFactory<T> = (value: T, index: number) => DbxMapboxMarker;\n\n/**\n * Creates the styling for rendering a dot.\n *\n * @param background\n * @param color\n * @returns\n */\nexport function dbxMapboxColoredDotStyle(background: string, color?: string) {\n return {\n background,\n padding: '2px',\n color: color ?? background ? 'white' : undefined,\n 'border-radius': '50%'\n };\n}\n","import { LatLngPointInput, LatLngBoundInput, ZoomLevel, ZoomLevelRange, ExtendLatLngBoundInput } 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;\nexport type MapboxZoomLevelRange = ZoomLevelRange;\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\n/**\n * Size of the tiles. Vector-based tiles used by the web are generally 512x512, and legacy ones are 256x256.\n *\n * https://blog.mapbox.com/512-map-tiles-cb5bfd6e72ba\n */\nexport type MapboxTileSize = 512 | 256;\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 MapboxFitPositions {\n positions: ExtendLatLngBoundInput;\n options?: mapboxgl.FitBoundsOptions;\n eventData?: mapboxgl.EventData;\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":["i1.DbxMapboxMapStore","i1.DbxMapboxInjectionStore","i3","i2.DbxMapboxService","i3.DbxMapboxMapStore","i2","i7.DbxMapboxLayoutDrawerComponent","i1.DbxMapboxChangeService","i4","i5","i1","i2.DbxMapboxMarkerComponent","i1.DbxMapboxLayoutComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dereekb-dbx-web-mapbox.mjs","sources":["../../../../packages/dbx-web/mapbox/src/lib/mapbox.cdref.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.util.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.rxjs.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.change.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.map.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.menu.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.markers.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.resize.sync.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.ts","../../../../packages/dbx-web/mapbox/src/dereekb-dbx-web-mapbox.ts"],"sourcesContent":["import { ChangeDetectorRef, Host, Injectable } from '@angular/core';\nimport { safeDetectChanges, safeMarkForCheck } from '@dereekb/dbx-core';\n\n/**\n * Provided in the parent component that allows children to import the parent's cdRef for use.\n *\n * @Deprecated consider using DbxMapboxChangeService instead.\n */\n@Injectable({\n providedIn: null\n})\nexport class DbxMapboxChangeDetectorRefService {\n constructor(@Host() readonly cdRef: ChangeDetectorRef) {}\n\n markForCheck() {\n safeMarkForCheck(this.cdRef);\n }\n\n detectChanges() {\n safeDetectChanges(this.cdRef);\n }\n}\n","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 { LatLngBound, LatLngPoint, Vector, VectorTuple } from '@dereekb/util';\nimport { bounds } from '@mapbox/geo-viewport';\nimport { MapboxTileSize, MapboxZoomLevel } from './mapbox';\n\nexport interface MapboxViewportBoundFunctionConfig {\n readonly mapCanvasSize: Vector;\n /**\n * Mapbox tilesize being used. Defaults to 512x512.\n */\n readonly tileSize?: MapboxTileSize;\n}\n\n/**\n * Input for MapboxViewportBoundFunction.\n */\nexport interface MapboxViewportBoundFunctionInput {\n /**\n * Center of the viewport\n */\n readonly center: LatLngPoint;\n /**\n * Zoom level\n */\n readonly zoom: MapboxZoomLevel;\n}\n\n/**\n * Used to calculate the bounds of a view/object given the input MapboxViewportBoundFunctionInput.\n */\nexport type MapboxViewportBoundFunction = (input: MapboxViewportBoundFunctionInput) => LatLngBound;\n\nexport function mapboxViewportBoundFunction(config: MapboxViewportBoundFunctionConfig): MapboxViewportBoundFunction {\n const { mapCanvasSize, tileSize = 512 } = config;\n const dimensions: VectorTuple = [mapCanvasSize.x, mapCanvasSize.y];\n return ({ center, zoom }) => {\n const boundingBox = bounds([center.lng, center.lat], zoom, dimensions, tileSize);\n const [swLng, swLat, neLng, neLat] = boundingBox;\n\n const result = {\n sw: { lat: swLat, lng: swLng },\n ne: { lat: neLat, lng: neLng }\n };\n\n return result;\n };\n}\n","import { ObservableOrValue, asObservable } from '@dereekb/rxjs';\nimport { LAT_LONG_10M_PRECISION, LatLngPointInput, LatLngBound, LatLngBoundCheckFunction, latLngPointFunction, roundNumberToStepFunction, RoundNumberToStepFunctionInput, LatLngPrecision, Maybe } from '@dereekb/util';\nimport { combineLatestWith, map, Observable, OperatorFunction, switchMap, shareReplay, distinctUntilChanged } from 'rxjs';\nimport { MapboxZoomLevel } from './mapbox';\nimport { MapboxViewportBoundFunction } from './mapbox.util';\n\nexport type FilterMapboxBoundReadItemValueFunction<T> = (value: T) => MapboxViewportBoundFunctionItemValue;\n\nexport interface FilterMapboxBoundConfig<T> {\n boundFunctionObs: ObservableOrValue<MapboxViewportBoundFunction>;\n boundDecisionObs: ObservableOrValue<LatLngBoundCheckFunction>;\n /**\n * Reads the value from the input item.\n */\n readValue: FilterMapboxBoundReadItemValueFunction<T>;\n /**\n * Minimum precision to retain. Defaults to LAT_LONG_10M_PRECISION\n */\n precision?: LatLngPrecision;\n /**\n * Amount of zoom rounding to use. By default rounds to 0.5 steps using \"floor\" in order to \"round up\" since zoom values are inversely proportional to bounds area.\n */\n zoomRounding?: RoundNumberToStepFunctionInput;\n /**\n * Default zoom level for item values that do not have an explicit zoom, or a zoom of 0.\n *\n * Defaults to 17, which can produce a viewport/bounds about the size of a park.\n */\n defaultZoom?: MapboxZoomLevel;\n}\n\nexport interface MapboxViewportBoundFunctionItemValue {\n readonly center: LatLngPointInput;\n readonly zoom?: Maybe<MapboxZoomLevel>;\n}\n\nexport interface MapboxViewportBoundFunctionItem<T> {\n readonly value: T;\n readonly bound: LatLngBound;\n}\n\n/**\n * Filters the input objects based on their center and zoom values.\n *\n * This function caches the bounds computations for each of the input values.\n *\n * @param config\n * @returns\n */\nexport function filterByMapboxViewportBound<T>(config: FilterMapboxBoundConfig<T>): OperatorFunction<T[], T[]> {\n const { boundDecisionObs: inputBoundDecisionObs, boundFunctionObs: inputBoundFunctionObs, defaultZoom: inputDefaultZoom = 17, readValue, zoomRounding, precision = LAT_LONG_10M_PRECISION } = config;\n const _latLngPoint = latLngPointFunction({ wrap: false, validate: false, precision });\n const _roundZoom = roundNumberToStepFunction(zoomRounding || { step: 0.5, round: 'floor' });\n\n const boundDecisionObs = asObservable(inputBoundDecisionObs);\n const boundFunctionObs = asObservable(inputBoundFunctionObs);\n\n return (input: Observable<T[]>) => {\n return boundFunctionObs.pipe(\n distinctUntilChanged(),\n switchMap((viewportBoundFunction) => {\n const cache = new Map<string, LatLngBound>();\n\n return input.pipe(\n map((values: T[]) => {\n return values.map((value: T) => {\n const item: MapboxViewportBoundFunctionItemValue = readValue(value);\n const centerLatLng = _latLngPoint(item.center);\n const zoomStep = _roundZoom(item.zoom || inputDefaultZoom);\n const cacheKey = `${zoomStep}_${centerLatLng.lat}_${centerLatLng.lng}`;\n\n const cachedValue = cache.get(cacheKey);\n let bound: LatLngBound;\n\n if (!cachedValue) {\n bound = viewportBoundFunction({ center: centerLatLng, zoom: zoomStep });\n cache.set(cacheKey, bound);\n } else {\n bound = cachedValue;\n }\n\n return {\n value,\n bound\n } as MapboxViewportBoundFunctionItem<T>;\n });\n }),\n combineLatestWith(boundDecisionObs),\n map(([items, boundFunction]) => {\n const valuesInBounds: T[] = [];\n\n items.forEach((item) => {\n if (boundFunction(item.bound)) {\n valuesInBounds.push(item.value);\n }\n });\n\n return valuesInBounds;\n })\n );\n }),\n shareReplay(1)\n );\n };\n}\n","import { cleanup, filterMaybe, onTrueToFalse } from '@dereekb/rxjs';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport {\n isSameLatLngBound,\n isSameLatLngPoint,\n IsWithinLatLngBoundFunction,\n isWithinLatLngBoundFunction,\n LatLngBound,\n latLngBoundFunction,\n LatLngPointInput,\n LatLngPoint,\n latLngPointFunction,\n Maybe,\n OverlapsLatLngBoundFunction,\n overlapsLatLngBoundFunction,\n diffLatLngBoundPoints,\n latLngBoundCenterPoint,\n addLatLngPoints,\n isDefaultLatLngPoint,\n swMostLatLngPoint,\n neMostLatLngPoint,\n latLngBoundWrapsMap,\n Vector,\n vectorsAreEqual,\n filterUndefinedValues,\n latLngBoundFromInput,\n vectorMinimumSizeResizeFunction,\n isSameVector\n} 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, EMPTY, OperatorFunction } from 'rxjs';\nimport * as MapboxGl from 'mapbox-gl';\nimport { DbxMapboxClickEvent, KnownMapboxStyle, MapboxBearing, MapboxEaseTo, MapboxFitBounds, MapboxFitPositions, MapboxFlyTo, MapboxJumpTo, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSnapToNorth, MapboxStyleConfig, MapboxZoomLevel, MapboxZoomLevelRange } from './mapbox';\nimport { DbxMapboxService } from './mapbox.service';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { mapboxViewportBoundFunction, MapboxViewportBoundFunction } from './mapbox.util';\nimport { FilterMapboxBoundConfig, FilterMapboxBoundReadItemValueFunction, filterByMapboxViewportBound } from './mapbox.rxjs';\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 * Visual container size of the map.\n */\n mapCanvasSize?: Maybe<Vector>;\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 * Minimum vector size to use for the viewportBoundFunction$. If not defined there is no minimum.\n */\n minimumVirtualViewportSize?: Maybe<Partial<Vector>>;\n /**\n * Whether or not to use the virtual bound (vs raw bound) for all bound-related observables.\n *\n * Defaults to true.\n */\n useVirtualBound: boolean;\n}\n\n/**\n * Store used for retrieving information.\n */\n@Injectable()\nexport class DbxMapboxMapStore extends ComponentStore<DbxMapboxStoreState> implements OnDestroy {\n private safeLatLngPoint = latLngPointFunction({ wrap: true });\n private latLngPoint = latLngPointFunction({ wrap: false, validate: false });\n private latLngBound = latLngBoundFunction({ pointFunction: this.latLngPoint });\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 useVirtualBound: 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 refreshForResize = () => {\n const { clientWidth: x, clientHeight: y } = map.getCanvas();\n this._setMapCanvasSize({ x, y });\n };\n\n addListener('resize', refreshForResize);\n refreshForResize();\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.safeLatLngPoint(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 setZoomRange = this.effect((input: Observable<Partial<MapboxZoomLevelRange>>) => {\n return input.pipe(\n switchMap((zoomRange: Partial<MapboxZoomLevelRange>) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n map.setMinZoom(zoomRange.min || null);\n map.setMaxZoom(zoomRange.max || null);\n })\n );\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 fitPositions = this.effect((input: Observable<MapboxFitPositions>) => {\n return input.pipe(\n switchMap((x) => {\n const boundFromInput = latLngBoundFromInput(x.positions);\n\n if (boundFromInput) {\n const bound = this.latLngBound(boundFromInput);\n return this.mapInstance$.pipe(tap((map) => map.fitBounds(new MapboxGl.LngLatBounds(bound.sw, bound.ne), x.options, x.eventData)));\n } else {\n return EMPTY;\n }\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.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.jumpTo(filterUndefinedValues({ ...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.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.easeTo(filterUndefinedValues({ ...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.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.flyTo(filterUndefinedValues({ ...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(1)\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(1)\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 // TODO: Consider calculating this using the viewport() function from @mapbox/geo-viewport\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.bound$.pipe(\n first(),\n map((bounds) => {\n const diff = diffLatLngBoundPoints(bounds, true);\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 filterByViewportBound<T>(input: FilterMapboxBoundReadItemValueFunction<T> | Omit<FilterMapboxBoundConfig<T>, 'boundFunctionObs' | 'boundDecisionObs'>): OperatorFunction<T[], T[]> {\n const config = typeof input === 'function' ? { readValue: input } : input;\n\n return filterByMapboxViewportBound({\n ...config,\n boundFunctionObs: this.viewportBoundFunction$,\n boundDecisionObs: this.overlapsBoundFunction$\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(1)\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(1)\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(1)\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(1)\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<LatLngPoint>(isSameLatLngPoint),\n shareReplay(1)\n );\n }),\n shareReplay(1)\n );\n\n readonly minimumVirtualViewportSize$ = this.state$.pipe(\n map((x) => x.minimumVirtualViewportSize),\n distinctUntilChanged(isSameVector),\n shareReplay(1)\n );\n\n readonly currentMapCanvasSize$ = this.state$.pipe(\n map((x) => x.mapCanvasSize),\n distinctUntilChanged<Maybe<Vector>>(isSameVector),\n shareReplay(1)\n );\n\n /**\n * The map canvas size with consideration to the virtual viewport size.\n */\n readonly mapCanvasSize$ = this.currentMapCanvasSize$.pipe(filterMaybe());\n\n minimumMapCanvasSize(minVector: Partial<Vector>): Observable<Vector> {\n const resizeFn = vectorMinimumSizeResizeFunction(minVector);\n return this.mapCanvasSize$.pipe(\n map((x) => resizeFn(x)),\n distinctUntilChanged<Vector>(isSameVector),\n shareReplay(1)\n );\n }\n\n /**\n * The map canvas size with consideration to the virtual viewport size.\n */\n readonly virtualMapCanvasSize$ = this.minimumVirtualViewportSize$.pipe(\n switchMap((minimumVirtualViewportSize) => {\n if (minimumVirtualViewportSize) {\n return this.minimumMapCanvasSize(minimumVirtualViewportSize);\n } else {\n return this.mapCanvasSize$;\n }\n }),\n distinctUntilChanged<Vector>(isSameVector),\n shareReplay(1)\n );\n\n readonly rawViewportBoundFunction$: Observable<MapboxViewportBoundFunction> = this.mapCanvasSize$.pipe(\n map((mapCanvasSize) => mapboxViewportBoundFunction({ mapCanvasSize })),\n shareReplay(1)\n );\n\n /**\n * Creates a MapboxViewportBoundFunction observable that returns the minimum viewport size.\n *\n * @param minVector\n * @returns\n */\n viewportBoundFunctionWithMinimumSize(minVector: Partial<Vector>): Observable<MapboxViewportBoundFunction> {\n const resizeFn = vectorMinimumSizeResizeFunction(minVector);\n return this.mapCanvasSize$.pipe(\n map((x) => resizeFn(x)),\n distinctUntilChanged<Vector>(isSameVector),\n map((mapCanvasSize) => mapboxViewportBoundFunction({ mapCanvasSize })),\n shareReplay(1)\n );\n }\n\n readonly viewportBoundFunction$: Observable<MapboxViewportBoundFunction> = this.minimumVirtualViewportSize$.pipe(\n switchMap((minimumVirtualViewportSize) => {\n if (minimumVirtualViewportSize) {\n return this.viewportBoundFunctionWithMinimumSize(minimumVirtualViewportSize);\n } else {\n return this.rawViewportBoundFunction$;\n }\n }),\n shareReplay(1)\n );\n\n readonly virtualBound$: Observable<LatLngBound> = this.viewportBoundFunction$.pipe(\n switchMap((fn) => {\n return combineLatest([this.center$, this.zoom$]).pipe(\n map(([center, zoom]) =>\n fn({\n center,\n zoom\n })\n )\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 rawBoundNow$: 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() : { lat: boundSw.lat, lng: boundSw.lng };\n const ne = isDefaultLatLngPoint(boundNe) ? neMostLatLngPoint() : { lat: boundNe.lat, lng: boundNe.lng };\n\n return this.latLngBound(sw, ne);\n })\n )\n ),\n shareReplay(1)\n )\n )\n );\n\n readonly rawBound$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRendering$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap((x) => this.rawBoundNow$.pipe(first())),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n })\n );\n\n readonly useVirtualBound$: Observable<boolean> = this.state$.pipe(\n map((x) => x.useVirtualBound),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly bound$: Observable<LatLngBound> = this.useVirtualBound$.pipe(\n switchMap((useVirtualBound) => {\n if (useVirtualBound) {\n return this.virtualBound$;\n } else {\n return this.bound$;\n }\n }),\n shareReplay(1)\n );\n\n readonly boundSizing$: Observable<LatLngPoint> = this.bound$.pipe(\n map((x) => diffLatLngBoundPoints(x)),\n shareReplay(1)\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.virtualBound$.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(() => 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(() => 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(() => 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 readonly setMinimumVirtualViewportSize = this.updater((state, minimumVirtualViewportSize: Maybe<Partial<Vector>>) => ({ ...state, minimumVirtualViewportSize }));\n readonly setUseVirtualBound = this.updater((state, useVirtualBound: boolean) => ({ ...state, useVirtualBound }));\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, useVirtualBound: state.useVirtualBound }));\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 _setMapCanvasSize = this.updater((state, mapCanvasSize: Vector) => ({ ...state, mapCanvasSize }));\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 { Injectable, OnDestroy } from '@angular/core';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { switchMap, tap, merge, Subject, throttleTime } from 'rxjs';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Provided in the parent component that allows children to emit events related to their lifecycles.\n */\n@Injectable({\n providedIn: null\n})\nexport class DbxMapboxChangeService implements OnDestroy {\n private _markerDestroyed = new Subject<void>();\n private _applyChanges = new Subject<void>();\n\n readonly markerDestroyed$ = this._markerDestroyed;\n readonly applyChanges$ = merge(this._applyChanges, this.markerDestroyed$).pipe(throttleTime(100, undefined, { leading: false, trailing: true }));\n\n private _applyChangesSub = new SubscriptionObject(\n this.dbxMapboxMapStore.mapService$\n .pipe(\n switchMap((mapService) =>\n this.applyChanges$.pipe(\n tap(() => {\n mapService.applyChanges();\n })\n )\n )\n )\n .subscribe()\n );\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore) {}\n\n applyChanges() {\n this._applyChanges.next();\n }\n\n emitMarkerDestroyed() {\n this._markerDestroyed.next();\n }\n\n ngOnDestroy(): void {\n this._markerDestroyed.complete();\n this._applyChanges.complete();\n this._applyChangesSub.destroy();\n }\n}\n","import { map, Observable, shareReplay } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { DbxInjectionComponentConfigWithoutInjector } from '@dereekb/dbx-core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { distinctUntilMapHasDifferentKeys, ObservableOrValueGetter } from '@dereekb/rxjs';\n\nexport type DbxMapboxInjectionKey = string;\n\nexport interface DbxMapboxInjectionConfig {\n /**\n * Unique key that identifies this config specifically.\n *\n * Keys should all be unique. The system does not expect duplicate keys. Modifications to injectionConfig should occur through the observable value.\n */\n readonly key: DbxMapboxInjectionKey;\n /**\n * Arbitrary injection type. Is used for filtering on configurations.\n */\n readonly type?: string;\n /**\n * Injection configuration. The injector is disallowed, as the parent injector must include the mapbox component.\n */\n readonly injectionConfig: ObservableOrValueGetter<DbxInjectionComponentConfigWithoutInjector>;\n}\n\nexport interface DbxMapboxMapInjectionStoreState {\n /**\n * Current map of injection keys and configurations.\n */\n readonly map: Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>;\n\n // TODO: Add filters for showing/hiding elements of different types.\n}\n\n/**\n * Store used for storing injectable content into the map.\n */\n@Injectable()\nexport class DbxMapboxInjectionStore extends ComponentStore<DbxMapboxMapInjectionStoreState> implements OnDestroy {\n constructor() {\n super({\n map: new Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>()\n });\n }\n\n readonly map$: Observable<Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>> = this.state$.pipe(\n map((x) => x.map),\n distinctUntilMapHasDifferentKeys(),\n shareReplay(1)\n );\n\n readonly allInjectionConfigs$: Observable<DbxMapboxInjectionConfig[]> = this.map$.pipe(\n map((x) => Array.from(x.values())),\n shareReplay(1)\n );\n\n // MARK: State Changes\n readonly addInjectionConfig = this.updater(updateDbxMapboxMapInjectionStoreStateWithInjectionConfig);\n readonly removeInjectionConfigWithKey = this.updater(updateDbxMapboxMapInjectionStoreStateWithRemovedKey);\n}\n\nexport function updateDbxMapboxMapInjectionStoreStateWithInjectionConfig(state: DbxMapboxMapInjectionStoreState, config: DbxMapboxInjectionConfig) {\n const map = new Map(state.map).set(config.key, config);\n return { ...state, map };\n}\n\nexport function updateDbxMapboxMapInjectionStoreStateWithRemovedKey(state: DbxMapboxMapInjectionStoreState, key: DbxMapboxInjectionKey) {\n // only create a new state if the key is going to get removed\n if (state.map.has(key)) {\n const map = new Map(state.map);\n map.delete(key);\n state = { ...state, map };\n }\n\n return state;\n}\n","import { Observable, shareReplay } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, Injector } from '@angular/core';\nimport { DbxInjectionArrayEntry } from '@dereekb/dbx-core';\nimport { DbxMapboxInjectionStore } from './mapbox.injection.store';\n\n/**\n * Injects the components configured in the DbxMapboxInjectionStore into the view.\n */\n@Component({\n selector: 'dbx-mapbox-injection',\n template: `\n <dbx-injection-array [entries]=\"entries$ | async\"></dbx-injection-array>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxInjectionComponent {\n readonly entries$: Observable<DbxInjectionArrayEntry[]> = this.dbxMapboxMapKeyInjectionStore.allInjectionConfigs$.pipe(shareReplay(1));\n\n constructor(readonly dbxMapboxMapKeyInjectionStore: DbxMapboxInjectionStore, readonly injector: Injector) {}\n}\n","import { Directive, Injectable, Injector, Optional, Provider, SkipSelf } from '@angular/core';\nimport { DbxMapboxInjectionStore } from './mapbox.injection.store';\n\n/**\n * Token used by provideMapboxInjectionStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxInjectionStore into the child view.\n */\n@Injectable()\nexport class DbxMapboxInjectionStoreProviderBlock {\n constructor(@SkipSelf() readonly dbxMapboxInjectionStore: DbxMapboxInjectionStore) {}\n}\n\n@Directive({\n selector: '[dbxMapboxInjectionStoreParentBlocker]',\n providers: [DbxMapboxInjectionStoreProviderBlock]\n})\nexport class DbxMapboxInjectionStoreInjectionBlockDirective {}\n\n/**\n * Creates a Provider that initializes a new DbxMapboxInjectionStore if a parent does not exist.\n *\n * If a DbxMapboxInjectionStoreInjectionBlock is available in the context, and references the same dbxMapboxInjectionStore that is attempting to be injected, a new DbxMapboxInjectionStore is created.\n *\n * @returns\n */\nexport function provideMapboxInjectionStoreIfParentIsUnavailable(): Provider {\n return {\n provide: DbxMapboxInjectionStore,\n useFactory: (parentInjector: Injector, dbxMapboxInjectionStoreInjectionBlock?: DbxMapboxInjectionStoreProviderBlock, dbxMapboxInjectionStore?: DbxMapboxInjectionStore) => {\n if (!dbxMapboxInjectionStore || (dbxMapboxInjectionStore && dbxMapboxInjectionStoreInjectionBlock != null && dbxMapboxInjectionStoreInjectionBlock.dbxMapboxInjectionStore === dbxMapboxInjectionStore)) {\n // create a new dbxMapboxInjectionStore to use\n const injector = Injector.create({ providers: [{ provide: DbxMapboxInjectionStore }], parent: parentInjector });\n dbxMapboxInjectionStore = injector.get(DbxMapboxInjectionStore);\n }\n\n return dbxMapboxInjectionStore;\n },\n deps: [Injector, [new Optional(), DbxMapboxInjectionStoreProviderBlock], [new Optional(), new SkipSelf(), DbxMapboxInjectionStore]]\n };\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 show the content.\n */\n@Component({\n selector: 'dbx-mapbox-layout-drawer',\n templateUrl: './mapbox.layout.drawer.component.html',\n host: {\n class: 'dbx-mapbox-layout-drawer'\n }\n})\nexport class DbxMapboxLayoutDrawerComponent {\n readonly config$ = this.dbxMapboxMapStore.content$;\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore) {}\n}\n","<div>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n</div>\n","import { tap, switchMap, first, startWith, shareReplay, throttleTime, map, distinctUntilChanged, BehaviorSubject, combineLatest, Subject, Observable } from 'rxjs';\nimport { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, 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 @Output()\n readonly openedChange = new EventEmitter<boolean>();\n\n @ViewChild(MatDrawerContainer, { read: ElementRef })\n readonly containerElement!: ElementRef;\n\n @ViewChild(MatDrawerContainer)\n readonly drawerContainer!: MatDrawerContainer;\n\n @ViewChild('content', { read: ElementRef, static: true })\n readonly content!: ElementRef;\n\n private _resized = new Subject<ResizedEvent>();\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 _isOpen = new BehaviorSubject<boolean>(true);\n private _color = new BehaviorSubject<Maybe<DbxThemeColor>>(undefined);\n private _toggleSub = new SubscriptionObject();\n\n readonly resized$ = this._resized.asObservable();\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 isOpen$ = this._isOpen.asObservable();\n\n readonly isOpenAndHasContent$ = combineLatest([this.hasContent$, this._isOpen]).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.isOpenAndHasContent$]).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.isOpenAndHasContent$]).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.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(\n tap(([opened]) => {\n let { right } = this.drawerContainer._contentMargins;\n\n this.drawerContainer.updateContentMargins();\n\n setTimeout(() => {\n const flip = opened ? 1 : -1;\n\n if (opened) {\n right = this.drawerContainer._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.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(\n switchMap((_) => this.dbxMapboxMapStore.mapInstance$),\n tap((x) => {\n this.drawerContainer.updateContentMargins();\n x.triggerRepaint();\n })\n );\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this.openedChange.complete();\n this._resized.complete();\n this._updateMargins.complete();\n this._side.complete();\n this._isOpen.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._isOpen.value;\n }\n\n this._isOpen.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._isOpen.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(event);\n }\n\n onOpened(opened: boolean) {\n this.openedChange.next(opened);\n\n if (this._isOpen.value !== opened) {\n this.openedChange.next(opened);\n }\n }\n\n // MARK: Compat\n /**\n * @deprecated use isOpenAndHasContent$ instead.\n */\n readonly opened$ = this.isOpenAndHasContent$;\n}\n","<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer (openedChange)=\"onOpened($event)\" [opened]=\"isOpenAndHasContent$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n","import { SubscriptionObject } from '@dereekb/rxjs';\nimport { filter, switchMap, BehaviorSubject, of } from 'rxjs';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, Input, OnInit, OnDestroy, NgZone } from '@angular/core';\nimport { Maybe, DestroyFunctionObject } from '@dereekb/util';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { disableRightClickInCdkBackdrop } from '@dereekb/dbx-web';\n\n/**\n * Directive that connects a host MatMenuTrigger to a DbxMapboxMapStore and listens for right-clicks on the map.\n *\n * The map dissapears if the mouse scrolls anywhere else on the map.\n */\n@Component({\n selector: 'dbx-mapbox-menu',\n template: '',\n host: {\n style: 'visibility: hidden; position: fixed',\n '[style.top]': 'pos.y',\n '[style.left]': 'pos.x'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMenuComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private _pos = { x: `0`, y: `0` };\n private _active = new BehaviorSubject<boolean>(true);\n\n private _menuCloseSub = new SubscriptionObject();\n private _preventRightClick = new DestroyFunctionObject();\n\n get pos() {\n return this._pos;\n }\n\n constructor(readonly dbxMapboxMapStore: DbxMapboxMapStore, @Host() readonly matMenuTrigger: MatMenuTrigger, readonly ngZone: NgZone, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n @Input()\n set active(active: Maybe<boolean>) {\n this._active.next(active ?? true);\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","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, OnDestroy, Optional } from '@angular/core';\nimport { getValueFromGetter, latLngPointFunction, Maybe } from '@dereekb/util';\nimport { DbxMapboxChangeService } from './mapbox.change.service';\nimport { DbxMapboxMarker } from './mapbox.marker';\n\n@Component({\n selector: 'dbx-mapbox-marker',\n template: `\n <mgl-marker *ngIf=\"marker\" [lngLat]=\"latLng\">\n <dbx-anchor [anchor]=\"anchor\">\n <div class=\"dbx-mapbox-marker\" [ngClass]=\"presentationClasses\">\n <div class=\"dbx-mapbox-marker-icon-content\" [ngStyle]=\"style\">\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n </div>\n <div class=\"dbx-mapbox-marker-label dbx-outlined-text\" *ngIf=\"label\">{{ label }}</div>\n </div>\n </dbx-anchor>\n </mgl-marker>\n `,\n styleUrls: ['./mapbox.marker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMarkerComponent implements OnDestroy {\n private static _latLngPoint = latLngPointFunction({ wrap: true });\n\n private _marker: Maybe<DbxMapboxMarker>;\n\n constructor(@Optional() private readonly _dbxMapboxChangeService?: DbxMapboxChangeService) {}\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 get latLng() {\n const input = this._marker?.latLng;\n return input ? DbxMapboxMarkerComponent._latLngPoint(input) : undefined;\n }\n\n get anchor() {\n return this._marker?.anchor;\n }\n\n get label() {\n return this._marker?.label;\n }\n\n get icon() {\n return this._marker?.icon;\n }\n\n get style() {\n let width = 0;\n let height = 0;\n\n const size = this._marker?.size || 'medium';\n\n switch (this.presentation) {\n case 'normal':\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 break;\n }\n break;\n }\n\n if (!height) {\n height = width;\n }\n\n const imageInput = this._marker?.image;\n const image = imageInput ? (typeof imageInput === 'string' ? imageInput : getValueFromGetter(imageInput, width)) : undefined;\n\n const style: any = {\n ...this._marker?.style,\n 'background-image': image\n };\n\n if (width && height) {\n style.width = width + 'px';\n style.height = height + 'px';\n style['font-size'] = width + 'px';\n }\n\n return style;\n }\n\n get presentation() {\n return this._marker?.presentation ?? 'normal';\n }\n\n get presentationClasses() {\n const presentation = this.presentation;\n const markerClasses = this._marker?.markerClasses;\n\n let cssClasses = '';\n\n switch (presentation) {\n case 'chip':\n case 'chip-small':\n cssClasses = 'dbx-mapbox-marker-chip dbx-chip mat-standard-chip dbx-bg';\n\n if (presentation === 'chip-small') {\n cssClasses += ' dbx-chip-small';\n }\n\n break;\n }\n\n if (!this.icon) {\n cssClasses += ' dbx-mapbox-marker-no-icon';\n }\n\n if (markerClasses) {\n cssClasses += ` ${markerClasses}`;\n }\n\n return cssClasses;\n }\n\n ngOnDestroy(): void {\n this._dbxMapboxChangeService?.emitMarkerDestroyed();\n }\n}\n","import { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { ChangeDetectionStrategy, Component, Input, OnDestroy } from '@angular/core';\nimport { DbxMapboxMarker, DbxMapboxMarkerFactory } from './mapbox.marker';\n\n/**\n * Component used to render a set of DbxMapboxMarker values from the input data and marker factory.\n */\n@Component({\n selector: 'dbx-mapbox-markers',\n template: `\n <dbx-mapbox-marker *ngFor=\"let marker of markers$ | async; trackBy: trackMarkerById\" [marker]=\"marker\"></dbx-mapbox-marker>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxMapboxMarkersComponent<T> implements OnDestroy {\n private _data = new BehaviorSubject<Maybe<T[]>>(undefined);\n private _markerFactory = new BehaviorSubject<Maybe<DbxMapboxMarkerFactory<T>>>(undefined);\n\n readonly markers$ = combineLatest([this._data.pipe(distinctUntilChanged()), this._markerFactory.pipe(distinctUntilChanged())]).pipe(\n map(([data, markerFactory]) => {\n if (data?.length && markerFactory) {\n return data.map(markerFactory);\n } else {\n return [];\n }\n }),\n shareReplay(1)\n );\n\n trackMarkerById(index: number, marker: DbxMapboxMarker) {\n return marker.id;\n }\n\n @Input()\n get data() {\n return this._data.value;\n }\n\n set data(data: Maybe<T[]>) {\n this._data.next(data || []);\n }\n\n @Input()\n get markerFactory() {\n return this._markerFactory.value;\n }\n\n set markerFactory(markerFactory: Maybe<DbxMapboxMarkerFactory<T>>) {\n this._markerFactory.next(markerFactory);\n }\n\n ngOnDestroy(): void {\n this._data.complete();\n this._markerFactory.complete();\n }\n}\n","import { shareReplay, map, distinctUntilChanged } from 'rxjs';\nimport { Directive, Host, OnInit } from '@angular/core';\nimport { isSameVector } from '@dereekb/util';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\n\n/**\n * Directive that synchronizes a map's virtual size with the size of the element.\n */\n@Directive({\n selector: '[dbxMapboxLayoutVirtualResizeSync]'\n})\nexport class DbxMapboxLayoutVirtualResizeSyncComponent extends SubscriptionObject implements OnInit {\n readonly resizedVector$ = this.dbxMapboxLayoutComponent.resized$.pipe(\n map(() => {\n const element = this.dbxMapboxLayoutComponent.containerElement.nativeElement as HTMLElement;\n const { clientWidth, clientHeight } = element;\n return {\n x: clientWidth,\n y: clientHeight\n };\n }),\n distinctUntilChanged(isSameVector),\n shareReplay(1)\n );\n\n constructor(@Host() readonly dbxMapboxLayoutComponent: DbxMapboxLayoutComponent) {\n super();\n }\n\n ngOnInit(): void {\n this.dbxMapboxLayoutComponent.dbxMapboxMapStore.setMinimumVirtualViewportSize(this.resizedVector$);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbxMapboxMapDirective } from './mapbox.store.map.directive';\nimport { DbxMapboxConfig } from './mapbox.service';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { DbxMapboxLayoutDrawerComponent } from './mapbox.layout.drawer.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { DbxMapboxMenuComponent } from './mapbox.menu.component';\nimport { DbxMapboxMapStoreInjectionBlockDirective } from './mapbox.store.provide';\nimport { DbxMapboxMarkerComponent } from './mapbox.marker.component';\nimport { NgxMapboxGLModule } from 'ngx-mapbox-gl';\nimport { DbxRouterAnchorModule } from '@dereekb/dbx-web';\nimport { DbxMapboxMarkersComponent } from './mapbox.markers.component';\nimport { DbxMapboxInjectionComponent } from './mapbox.injection.component';\nimport { DbxMapboxLayoutVirtualResizeSyncComponent } from './mapbox.layout.resize.sync.directive';\n\nconst declarations = [\n //\n DbxMapboxLayoutVirtualResizeSyncComponent,\n DbxMapboxMapDirective,\n DbxMapboxLayoutComponent,\n DbxMapboxLayoutDrawerComponent,\n DbxMapboxInjectionComponent,\n DbxMapboxMenuComponent,\n DbxMapboxMarkerComponent,\n DbxMapboxMarkersComponent,\n DbxMapboxMapStoreInjectionBlockDirective\n];\n\n@NgModule({\n imports: [\n //\n CommonModule,\n MatSidenavModule,\n DbxInjectionComponentModule,\n MatButtonModule,\n MatIconModule,\n AngularResizeEventModule,\n DbxRouterAnchorModule,\n NgxMapboxGLModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxMapboxModule {\n static forRoot(config: DbxMapboxConfig): ModuleWithProviders<DbxMapboxModule> {\n return {\n ngModule: DbxMapboxModule,\n providers: [\n {\n provide: DbxMapboxConfig,\n useValue: config\n }\n ]\n };\n }\n}\n","import { ClickableAnchor } from '@dereekb/dbx-core';\nimport { Pixels, FactoryWithRequiredInput, LatLngInputRef, UniqueModel } from '@dereekb/util';\n\n/**\n * DbxMapboxMarkerSize. Numbers are converted to pixels.\n */\nexport type DbxMapboxMarkerSize = 'small' | 'medium' | 'large' | 'tall' | Pixels;\n\n/**\n * Presentation style.\n *\n * - normal: Text under dot with optional icon within dot\n * - chip: \"dbx-chip\"-like presentation\n */\nexport type DbxMapboxMarkerPresentation = 'normal' | 'chip' | 'chip-small';\n\nexport interface DbxMapboxMarkerDisplayConfig {\n /**\n * Presentation style. Defaults to \"normal\"\n */\n presentation?: DbxMapboxMarkerPresentation;\n /**\n * Additional classes to add to the marker.\n */\n markerClasses?: string;\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 * Anchor\n */\n anchor?: ClickableAnchor;\n /**\n * Additional icon content styling. Style is not applied to the entire marker. Use markerClasses instead.\n */\n style?: object;\n}\n\nexport type DbxMapboxMarker = UniqueModel & LatLngInputRef & DbxMapboxMarkerDisplayConfig;\n\n/**\n * MapFunction that converts the input data to a DbxMapboxMarker.\n */\nexport type DbxMapboxMarkerFactory<T> = (value: T, index: number) => DbxMapboxMarker;\n\n/**\n * Creates the styling for rendering a dot.\n *\n * @param background\n * @param color\n * @returns\n */\nexport function dbxMapboxColoredDotStyle(background: string, color?: string) {\n return {\n background,\n padding: '2px',\n color: color ?? background ? 'white' : undefined,\n 'border-radius': '50%'\n };\n}\n","import { LatLngPointInput, LatLngBoundInput, ZoomLevel, ZoomLevelRange, ExtendLatLngBoundInput } 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;\nexport type MapboxZoomLevelRange = ZoomLevelRange;\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\n/**\n * Size of the tiles. Vector-based tiles used by the web are generally 512x512, and legacy ones are 256x256.\n *\n * https://blog.mapbox.com/512-map-tiles-cb5bfd6e72ba\n */\nexport type MapboxTileSize = 512 | 256;\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 MapboxFitPositions {\n positions: ExtendLatLngBoundInput;\n options?: mapboxgl.FitBoundsOptions;\n eventData?: mapboxgl.EventData;\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":["i1.DbxMapboxMapStore","i1.DbxMapboxInjectionStore","i3","i2.DbxMapboxService","i3.DbxMapboxMapStore","i2","i7.DbxMapboxLayoutDrawerComponent","i1.DbxMapboxChangeService","i4","i5","i1","i2.DbxMapboxMarkerComponent","i1.DbxMapboxLayoutComponent"],"mappings":"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"}
|