@dereekb/dbx-form 13.0.7 → 13.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dereekb-dbx-form-mapbox.mjs","sources":["../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.field.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.field.marker.component.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.field.component.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.module.ts","../../../../packages/dbx-form/mapbox/src/lib/field/zoom/zoom.field.ts","../../../../packages/dbx-form/mapbox/src/lib/field/zoom/zoom.field.component.ts","../../../../packages/dbx-form/mapbox/src/lib/field/zoom/zoom.module.ts","../../../../packages/dbx-form/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-form/mapbox/src/dereekb-dbx-form-mapbox.ts"],"sourcesContent":["import { DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER, type DescriptionFieldConfig, type FieldConfig, formlyField, type LabeledFieldConfig, propsAndConfigForFieldConfig, validatorsForFieldConfig } from '@dereekb/dbx-form';\nimport { LAT_LNG_PATTERN } from '@dereekb/util';\nimport { type FormlyFieldConfig } from '@ngx-formly/core';\nimport { type DbxFormMapboxLatLngComponentFieldProps } from './latlng.field.component';\n\nexport interface MapboxLatLngFieldConfig extends Omit<LabeledFieldConfig, 'key'>, DescriptionFieldConfig, Partial<FieldConfig>, Pick<DbxFormMapboxLatLngComponentFieldProps, 'showMap' | 'zoom' | 'latLngConfig' | 'recenterTime' | 'setCenterOnLocationSet' | 'showCenterButton' | 'selectLocationOnMapDrag' | 'selectLocationOnMapClick' | 'markerConfig'> {}\n\nexport function mapboxLatLngField(config: MapboxLatLngFieldConfig = {}): FormlyFieldConfig {\n const { key = 'latLng', latLngConfig, showMap, zoom, recenterTime, showCenterButton, setCenterOnLocationSet, selectLocationOnMapDrag, selectLocationOnMapClick, markerConfig } = config;\n\n const classGetter = 'dbx-mat-form-field-disable-underline';\n const fieldConfig: FormlyFieldConfig = {\n ...formlyField({\n key,\n type: 'mapbox-latlng-picker',\n ...propsAndConfigForFieldConfig(config, {\n classGetter,\n label: config.label ?? 'Location',\n placeholder: DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER,\n pattern: LAT_LNG_PATTERN,\n autocomplete: false,\n showMap,\n zoom,\n latLngConfig,\n recenterTime,\n selectLocationOnMapDrag,\n selectLocationOnMapClick,\n showCenterButton,\n setCenterOnLocationSet,\n markerConfig\n })\n }),\n ...validatorsForFieldConfig({\n messages: {\n pattern: DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE\n }\n })\n };\n\n return fieldConfig;\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { shareReplay, map, Observable, combineLatest } from 'rxjs';\nimport { DbxMapboxMarker, DbxMapboxMarkerComponent } from '@dereekb/dbx-web/mapbox';\nimport { DbxFormMapboxLatLngFieldComponent } from './latlng.field.component';\nimport { type Maybe } from '@dereekb/util';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n template: `\n <dbx-mapbox-marker [marker]=\"markerSignal()\"></dbx-mapbox-marker>\n `,\n imports: [DbxMapboxMarkerComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFormMapboxLatLngFieldMarkerComponent {\n readonly fieldComponent = inject(DbxFormMapboxLatLngFieldComponent);\n\n readonly marker$: Observable<Maybe<DbxMapboxMarker>> = combineLatest([this.fieldComponent.latLng$, this.fieldComponent.markerConfig$]).pipe(\n map(([latLng, markerConfig]) => {\n if (markerConfig !== false) {\n return { latLng, ...markerConfig };\n } else {\n return undefined;\n }\n }),\n shareReplay(1)\n );\n\n readonly markerSignal = toSignal(this.marker$);\n}\n","import { AbstractControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { CompactContextStore, mapCompactModeObs } from '@dereekb/dbx-web';\nimport { ChangeDetectionStrategy, Component, Injector, OnDestroy, OnInit, inject } from '@angular/core';\nimport { FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material';\nimport { skip, first, BehaviorSubject, filter, shareReplay, startWith, switchMap, map, Observable, throttleTime, skipWhile, of, distinctUntilChanged } from 'rxjs';\nimport { asObservableFromGetter, filterMaybe, ObservableFactoryWithRequiredInput, SubscriptionObject } from '@dereekb/rxjs';\nimport { Maybe, LatLngPoint, LatLngPointFunctionConfig, LatLngStringFunction, latLngStringFunction, Milliseconds, latLngPointFunction, isDefaultLatLngPoint, isValidLatLngPoint, LatLngPointFunction, isSameLatLngPoint, defaultLatLngPoint } from '@dereekb/util';\nimport { WaGeolocationService } from '@ng-web-apis/geolocation';\nimport { Marker } from 'mapbox-gl';\nimport { DbxMapboxInjectionStore, DbxMapboxMapStore, DbxMapboxMarkerDisplayConfig, DbxMapboxModule, MapboxEaseTo, MapboxZoomLevel, provideMapboxStoreIfParentIsUnavailable } from '@dereekb/dbx-web/mapbox';\nimport { DbxFormMapboxLatLngFieldMarkerComponent } from './latlng.field.marker.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MapComponent, MarkerComponent } from 'ngx-mapbox-gl';\n\nexport const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY = 'DbxFormMapboxLatLngFieldComponent';\n\nexport const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_MARKER_CONFIG: DbxMapboxMarkerDisplayConfig = {\n icon: 'pin_drop'\n};\n\nexport interface DbxFormMapboxLatLngComponentFieldProps extends FormlyFieldProps {\n /**\n * (Optional) Whether or not the show the map. If the map is not shown, relies on the center of the parent map to determine position.\n *\n * Defaults to true.\n *\n * Cases where this would be set false is if another map is being used.\n */\n readonly showMap?: boolean;\n /**\n * Whether or not to display the center button. Is set to false if selectLocationOnMapDrag is true.\n */\n readonly showCenterButton?: boolean;\n /**\n * Whether or not to set the center of the map on the location when set. Defaults to true.\n */\n readonly setCenterOnLocationSet?: boolean;\n /**\n * Whether or not to enable dragging the map to select the location. Defaults to true.\n *\n * Only applicable when showMap is false.\n */\n readonly selectLocationOnMapDrag?: boolean;\n /**\n * Whether or not to enable clicking the map to select the location. Defaults to false.\n *\n * Only applicable when showMap is false.\n */\n readonly selectLocationOnMapClick?: boolean;\n /**\n * (Optional) Zoom to start the map at. Ignored if the showMap is false.\n */\n readonly zoom?: MapboxZoomLevel;\n /**\n * Time until recentering on the marker. If the time is 0 then the recentering is disabled.\n */\n readonly recenterTime?: Milliseconds;\n readonly latLngConfig?: LatLngPointFunctionConfig;\n /**\n * Unique injection key.\n *\n * If not defined, the default key will be used.\n *\n * If false is passed, the marker will not be configured in the injection store.\n */\n readonly mapInjectionKey?: Maybe<string | false>;\n /**\n * Marker configuration or factory. If false is passed, the marker will not be displayed.\n */\n readonly markerConfig?: false | ObservableFactoryWithRequiredInput<DbxMapboxMarkerDisplayConfig | false, DbxFormMapboxLatLngFieldComponent>;\n}\n\n/*\n TODO: Re-add menu for picking a new location, including using the current location.\n <button mat-icon-button (click)=\"useCurrentLocation()\" [disabled]=\"isReadonlyOrDisabled || (useCurrentLocationDisabled$ | async)\">\n <mat-icon>my_location</mat-icon>\n </button>\n */\n\n@Component({\n template: `\n <div class=\"dbx-mapbox-input-field\" [ngClass]=\"compactClassSignal()\" [formGroup]=\"formGroup\">\n @if (showMap) {\n <div class=\"dbx-mapbox-input-field-map\">\n <mgl-map dbxMapboxMap>\n <mgl-marker [lngLat]=\"latLngSignal()\" [draggable]=\"!isReadonlyOrDisabled\" (markerDragEnd)=\"onMarkerDragEnd($event)\"></mgl-marker>\n </mgl-map>\n </div>\n }\n <div class=\"dbx-mapbox-input-field-input\">\n @if (showCenterButton) {\n <button mat-icon-button (click)=\"flyToMarker()\">\n <mat-icon>my_location</mat-icon>\n </button>\n }\n <mat-form-field class=\"dbx-mapbox-input-field-input-field\">\n <mat-label>Coordinates</mat-label>\n <input type=\"text\" matInput [placeholder]=\"placeholder\" [formControl]=\"formControl\" />\n @if (useCurrentLocationDisabledSignal()) {\n <mat-hint class=\"dbx-hint dbx-warn\">Could not access your current location.</mat-hint>\n }\n </mat-form-field>\n </div>\n </div>\n `,\n providers: [provideMapboxStoreIfParentIsUnavailable()],\n styleUrls: ['../mapbox.field.component.scss'],\n imports: [NgClass, MapComponent, MarkerComponent, ReactiveFormsModule, MatIconModule, DbxMapboxModule, MatButtonModule, MatFormFieldModule, MatInputModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFormMapboxLatLngFieldComponent<T extends DbxFormMapboxLatLngComponentFieldProps = DbxFormMapboxLatLngComponentFieldProps> extends FieldType<FieldTypeConfig<T>> implements OnInit, OnDestroy {\n private readonly _geolocationService = inject(WaGeolocationService);\n\n readonly compact = inject(CompactContextStore, { optional: true });\n readonly dbxMapboxInjectionStore = inject(DbxMapboxInjectionStore, { optional: true });\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n readonly injector = inject(Injector);\n\n private readonly _sub = new SubscriptionObject();\n private readonly _geoSub = new SubscriptionObject();\n private readonly _centerSub = new SubscriptionObject();\n private readonly _flyToCenterSub = new SubscriptionObject();\n private readonly _clickSub = new SubscriptionObject();\n private readonly _zoom = new BehaviorSubject<MapboxZoomLevel>(12);\n private readonly _markerConfig = new BehaviorSubject<Observable<DbxMapboxMarkerDisplayConfig | false>>(of(DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_MARKER_CONFIG));\n\n private _latLngStringFunction!: LatLngStringFunction;\n private _latLngPointFunction!: LatLngPointFunction;\n\n readonly compactClass$ = mapCompactModeObs(this.compact?.mode$, {\n compact: 'dbx-mapbox-input-field-compact'\n }).pipe(filterMaybe());\n\n private readonly _useCurrentLocationDisabled = new BehaviorSubject<boolean>(false);\n readonly useCurrentLocationDisabled$ = this._useCurrentLocationDisabled.asObservable();\n\n private readonly _formControlObs = new BehaviorSubject<Maybe<AbstractControl>>(undefined);\n readonly formControl$ = this._formControlObs.pipe(filterMaybe());\n\n readonly value$ = this.formControl$.pipe(\n switchMap((control) => control.valueChanges.pipe(startWith(control.value))),\n shareReplay(1)\n );\n\n readonly latLng$: Observable<LatLngPoint> = this.value$.pipe(\n filterMaybe(),\n map((x) => this._latLngPointFunction(x)),\n distinctUntilChanged<LatLngPoint>(isSameLatLngPoint),\n shareReplay(1)\n );\n\n readonly nonZeroLatLng$: Observable<LatLngPoint> = this.latLng$.pipe(\n /**\n * Center observable passed to the store. Do not pass invalid points.\n *\n * Also skip any initial 0,0 values so the center doesn't potentially \"whip\" from 0,0 to a final loaded value.\n */\n skipWhile<LatLngPoint>(isDefaultLatLngPoint),\n filter(isValidLatLngPoint)\n );\n\n readonly zoom$ = this._zoom.asObservable();\n readonly markerConfig$ = this._markerConfig.asObservable().pipe(\n switchMap((x) => x),\n shareReplay(1)\n );\n\n readonly useCurrentLocationDisabledSignal = toSignal(this._useCurrentLocationDisabled, { initialValue: false });\n readonly compactClassSignal = toSignal(this.compactClass$, { initialValue: '' });\n readonly latLngSignal = toSignal(this.latLng$, { initialValue: defaultLatLngPoint() });\n\n get zoom(): MapboxZoomLevel {\n return Math.min(this.field.props.zoom || 12, 18);\n }\n\n get formGroupName(): string {\n return this.field.key as string;\n }\n\n get formGroup(): FormGroup {\n return this.form as FormGroup;\n }\n\n get label(): Maybe<string> {\n return this.field.props?.label;\n }\n\n get description(): Maybe<string> {\n return this.props.description;\n }\n\n get isReadonlyOrDisabled() {\n return this.props.readonly || this.disabled;\n }\n\n get showMap(): boolean {\n return this.field.props.showMap ?? true;\n }\n\n get selectLocationOnMapDrag(): boolean {\n return this.field.props.selectLocationOnMapDrag ?? true;\n }\n\n get selectLocationOnMapClick(): boolean {\n return this.field.props.selectLocationOnMapClick ?? false;\n }\n\n get setCenterOnLocationSet() {\n return this.field.props.setCenterOnLocationSet ?? true;\n }\n\n get showCenterButton() {\n return !this.selectLocationOnMapDrag && this.props.showCenterButton !== false;\n }\n\n get recenterTime(): Milliseconds {\n return this.field.props.recenterTime || 10 * 1000;\n }\n\n get useCurrentLocationDisabled() {\n return this._useCurrentLocationDisabled;\n }\n\n get mapInjectionKey() {\n return this.field.props.mapInjectionKey;\n }\n\n get markerConfig() {\n return this.field.props.markerConfig;\n }\n\n ngOnInit(): void {\n const latLngPointConfig = { ...this.field.props.latLngConfig, wrap: this.field.props.latLngConfig?.wrap || false, validate: this.field.props.latLngConfig?.validate || false, precisionRounding: this.field.props.latLngConfig?.precisionRounding ?? 'round' };\n this._latLngStringFunction = latLngStringFunction(latLngPointConfig);\n this._latLngPointFunction = latLngPointFunction(latLngPointConfig);\n\n this._formControlObs.next(this.formControl);\n this._zoom.next(this.zoom);\n\n if (this.setCenterOnLocationSet) {\n this._centerSub.subscription = this.dbxMapboxMapStore.setCenter(this.nonZeroLatLng$);\n }\n\n if (this.showMap) {\n // Set zoom only if showMap is true\n this.dbxMapboxMapStore.setZoom(this.zoom$);\n\n // recenter periodically\n if (this.recenterTime > 0) {\n this._flyToCenterSub.subscription = this.dbxMapboxMapStore.center$.pipe(skip(1), throttleTime(this.recenterTime, undefined, { leading: false, trailing: true })).subscribe(() => {\n this.flyToMarker();\n });\n }\n } else {\n // use the center of the map to set locations\n if (this.selectLocationOnMapDrag) {\n this._sub.subscription = this.dbxMapboxMapStore.center$.subscribe((center) => {\n this.dbxMapboxMapStore.centerGivenMargin$.pipe(first()).subscribe(() => {\n if (!this.isReadonlyOrDisabled) {\n this.setValue(center);\n }\n });\n });\n }\n\n // enable selecting the location on a map click\n if (this.selectLocationOnMapClick) {\n this._clickSub.subscription = this.dbxMapboxMapStore.clickEvent$.subscribe((x) => {\n if (x?.type === 'click') {\n this.setValue(x.lngLat);\n }\n });\n }\n }\n\n if (this.props.readonly) {\n this.formControl.disable();\n }\n\n // Add the marker to the injection store for display\n if (this.dbxMapboxInjectionStore) {\n if (this.markerConfig != null) {\n this._markerConfig.next(this.markerConfig === false ? of(false) : asObservableFromGetter(this.markerConfig, this));\n }\n\n this.dbxMapboxInjectionStore.addInjectionConfig({\n key: this.mapInjectionKey || DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY,\n injectionConfig: {\n componentClass: DbxFormMapboxLatLngFieldMarkerComponent,\n providers: [{ provide: DbxFormMapboxLatLngFieldComponent, useValue: this }]\n }\n });\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._zoom.complete();\n this._markerConfig.complete();\n this._formControlObs.complete();\n this._sub.destroy();\n this._geoSub.destroy();\n this._centerSub.destroy();\n this._flyToCenterSub.destroy();\n this._clickSub.destroy();\n }\n\n flyToMarker() {\n this.dbxMapboxMapStore.easeTo(\n this.nonZeroLatLng$.pipe(\n first(),\n map((x) => ({ center: x }) as MapboxEaseTo)\n )\n );\n }\n\n useCurrentLocation() {\n this._geoSub.subscription = this._geolocationService.pipe(first()).subscribe({\n next: (position) => {\n if (position) {\n const { latitude: lat, longitude: lng } = position.coords;\n this.setValue({ lat, lng });\n }\n },\n error: () => {\n this._useCurrentLocationDisabled.next(true);\n }\n });\n }\n\n onMarkerDragEnd(marker: Marker) {\n this.setValue(marker.getLngLat());\n }\n\n setValue(latLng?: Maybe<LatLngPoint>) {\n this.formControl.setValue(latLng ? this._latLngStringFunction(latLng) : latLng);\n this.formControl.markAsTouched();\n this.formControl.markAsDirty();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFormMapboxLatLngFieldComponent } from './latlng.field.component';\nimport { FormlyModule } from '@ngx-formly/core';\n\nconst importsAndExports = [DbxFormMapboxLatLngFieldComponent];\n\n@NgModule({\n imports: [\n ...importsAndExports,\n FormlyModule.forChild({\n types: [{ name: 'mapbox-latlng-picker', component: DbxFormMapboxLatLngFieldComponent, wrappers: ['style', 'form-field'] }]\n })\n ],\n exports: importsAndExports\n})\nexport class DbxFormMapboxLatLngModule {}\n","import { type DescriptionFieldConfig, type FieldConfig, formlyField, type LabeledFieldConfig, propsAndConfigForFieldConfig } from '@dereekb/dbx-form';\nimport { type FormlyFieldConfig } from '@ngx-formly/core';\nimport { type DbxFormMapboxZoomComponentFieldProps } from './zoom.field.component';\n\nexport interface MapboxZoomFieldConfig extends Omit<LabeledFieldConfig, 'key'>, DescriptionFieldConfig, Partial<FieldConfig>, Pick<DbxFormMapboxZoomComponentFieldProps, 'showMap' | 'center' | 'minZoom' | 'maxZoom' | 'zoomStep'> {}\n\nexport function mapboxZoomField(config: MapboxZoomFieldConfig = {}): FormlyFieldConfig {\n const { key = 'zoom', showMap, center, minZoom, maxZoom, zoomStep } = config;\n\n const classGetter = 'dbx-mat-form-field-disable-underline';\n const fieldConfig: FormlyFieldConfig = {\n ...formlyField({\n key,\n type: 'mapbox-zoom-picker',\n ...propsAndConfigForFieldConfig(config, {\n classGetter,\n label: config.label ?? 'Zoom',\n autocomplete: false,\n showMap,\n center,\n minZoom,\n maxZoom,\n zoomStep\n })\n })\n };\n\n return fieldConfig;\n}\n","import { AbstractControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CompactContextStore, mapCompactModeObs } from '@dereekb/dbx-web';\nimport { ChangeDetectionStrategy, Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport { FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material';\nimport { BehaviorSubject, shareReplay, startWith, switchMap, Observable } from 'rxjs';\nimport { filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { ZoomLevel, Maybe, LatLngPoint, latLngPoint } from '@dereekb/util';\nimport { DbxMapboxService, DbxMapboxMapStore, MapboxZoomLevel, provideMapboxStoreIfParentIsUnavailable, mapboxZoomLevel, MAPBOX_MAX_ZOOM_LEVEL, MAPBOX_MIN_ZOOM_LEVEL, DbxMapboxModule } from '@dereekb/dbx-web/mapbox';\nimport { NgClass } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport interface DbxFormMapboxZoomComponentFieldProps extends Omit<FormlyFieldProps, 'min' | 'max'> {\n /**\n * (Optional) Whether or not the show the map. Cases where this would be set false is if another map is being used.\n *\n * Defaults to true.\n */\n readonly showMap?: boolean;\n /**\n * Default center\n */\n readonly center?: LatLngPoint;\n /**\n * Whether or not to lock the map itself to the min and max zoom levels.\n */\n readonly lockMapToZoomLevels?: boolean;\n /**\n * Min zoom level allowed\n */\n readonly minZoom?: MapboxZoomLevel;\n /**\n * Max zoom level allowed.\n */\n readonly maxZoom?: MapboxZoomLevel;\n /**\n * Step size when using arrow keys.\n */\n readonly zoomStep?: number;\n}\n\n@Component({\n template: `\n <div class=\"dbx-mapbox-input-field\" [ngClass]=\"compactClassSignal()\" [formGroup]=\"formGroup\">\n @if (showMap) {\n <div class=\"dbx-mapbox-input-field-map\">\n <mgl-map dbxMapboxMap></mgl-map>\n </div>\n }\n <div class=\"dbx-mapbox-input-field-input\">\n <mat-form-field class=\"dbx-mapbox-input-field-input-field\">\n <mat-label>Zoom Level</mat-label>\n <input type=\"number\" matInput [min]=\"minZoom\" [max]=\"maxZoom\" [step]=\"zoomStep\" [placeholder]=\"placeholder\" [formControl]=\"formControl\" />\n </mat-form-field>\n </div>\n </div>\n `,\n providers: [provideMapboxStoreIfParentIsUnavailable()],\n styleUrls: ['../mapbox.field.component.scss'],\n imports: [NgClass, DbxMapboxModule, FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFormMapboxZoomFieldComponent<T extends DbxFormMapboxZoomComponentFieldProps = DbxFormMapboxZoomComponentFieldProps> extends FieldType<FieldTypeConfig<T>> implements OnInit, OnDestroy {\n readonly compact = inject(CompactContextStore, { optional: true });\n\n readonly dbxMapboxService = inject(DbxMapboxService);\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n\n private _undoZoomLimit = false;\n\n readonly compactClass$ = mapCompactModeObs(this.compact?.mode$, {\n compact: 'dbx-mapbox-input-field-compact'\n }).pipe(filterMaybe());\n\n readonly compactClassSignal = toSignal(this.compactClass$, { initialValue: '' });\n\n private readonly _sub = new SubscriptionObject();\n private readonly _center = new BehaviorSubject<Maybe<LatLngPoint>>(undefined);\n\n private readonly _formControlObs = new BehaviorSubject<Maybe<AbstractControl>>(undefined);\n readonly formControl$ = this._formControlObs.pipe(filterMaybe());\n\n readonly value$ = this.formControl$.pipe(\n switchMap((control) => control.valueChanges.pipe(startWith(control.value))),\n shareReplay(1)\n );\n\n readonly zoom$: Observable<MapboxZoomLevel> = this.value$.pipe(filterMaybe(), shareReplay(1));\n readonly center$ = this._center.pipe(filterMaybe());\n\n get center(): LatLngPoint {\n return this.field.props.center || latLngPoint(this.dbxMapboxService.defaultCenter);\n }\n\n get formGroupName(): string {\n return this.field.key as string;\n }\n\n get formGroup(): FormGroup {\n return this.form as FormGroup;\n }\n\n get label(): Maybe<string> {\n return this.field.props?.label;\n }\n\n get description(): Maybe<string> {\n return this.props.description;\n }\n\n get isReadonlyOrDisabled() {\n return this.props.readonly || this.disabled;\n }\n\n get showMap(): boolean {\n return this.field.props.showMap ?? true;\n }\n\n get lockMapToZoomLevels(): boolean {\n return this.field.props.lockMapToZoomLevels ?? false;\n }\n\n get minZoom(): MapboxZoomLevel {\n return mapboxZoomLevel(this.field.props.minZoom || MAPBOX_MIN_ZOOM_LEVEL);\n }\n\n get maxZoom(): MapboxZoomLevel {\n return mapboxZoomLevel(this.field.props.maxZoom || MAPBOX_MAX_ZOOM_LEVEL);\n }\n\n get zoomStep(): number {\n return mapboxZoomLevel(this.field.props.zoomStep || 1);\n }\n\n ngOnInit(): void {\n this._formControlObs.next(this.formControl);\n this._center.next(this.center);\n\n // set/sync props for error messages\n (this.props as FormlyFieldProps).min = this.minZoom;\n (this.props as FormlyFieldProps).max = this.maxZoom;\n\n this.dbxMapboxMapStore.setZoom(this.zoom$);\n\n // Set center only if showMap is false.\n if (this.showMap) {\n this.dbxMapboxMapStore.setCenter(this.center$);\n }\n\n if (this.props.readonly) {\n this.formControl.disable();\n\n if (this.showMap) {\n this.dbxMapboxMapStore.setZoomDisabled();\n }\n } else if (this.lockMapToZoomLevels) {\n // set zoom limits on the map\n this.dbxMapboxMapStore.setZoomRange({ min: this.minZoom, max: this.maxZoom });\n\n // flat to undo them later if not using the same map\n this._undoZoomLimit = !this.showMap;\n }\n\n this._sub.subscription = this.dbxMapboxMapStore.zoom$.subscribe((zoom) => {\n if (!this.isReadonlyOrDisabled) {\n this.setValue(zoom);\n }\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._formControlObs.complete();\n this._center.complete();\n this._sub.destroy();\n\n if (!this._undoZoomLimit) {\n this.dbxMapboxMapStore.setZoomRange({});\n }\n }\n\n setValue(zoom?: Maybe<ZoomLevel>) {\n this.formControl.setValue(zoom);\n this.formControl.markAsTouched();\n this.formControl.markAsDirty();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFormMapboxZoomFieldComponent } from './zoom.field.component';\nimport { FormlyModule } from '@ngx-formly/core';\n\nconst importsAndExports = [DbxFormMapboxZoomFieldComponent];\n\n@NgModule({\n imports: [\n ...importsAndExports,\n FormlyModule.forChild({\n types: [{ name: 'mapbox-zoom-picker', component: DbxFormMapboxZoomFieldComponent, wrappers: ['style', 'form-field'] }]\n })\n ],\n exports: importsAndExports\n})\nexport class DbxFormMapboxZoomModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxFormMapboxZoomModule } from './field';\nimport { DbxFormMapboxLatLngModule } from './field/latlng/latlng.module';\n\n@NgModule({\n exports: [DbxFormMapboxLatLngModule, DbxFormMapboxZoomModule]\n})\nexport class DbxFormMapboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","importsAndExports","i2","i4","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dereekb-dbx-form-mapbox.mjs","sources":["../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.field.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.field.marker.component.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.field.component.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.module.ts","../../../../packages/dbx-form/mapbox/src/lib/field/zoom/zoom.field.ts","../../../../packages/dbx-form/mapbox/src/lib/field/zoom/zoom.field.component.ts","../../../../packages/dbx-form/mapbox/src/lib/field/zoom/zoom.module.ts","../../../../packages/dbx-form/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-form/mapbox/src/dereekb-dbx-form-mapbox.ts"],"sourcesContent":["import { DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER, type DescriptionFieldConfig, type FieldConfig, formlyField, type LabeledFieldConfig, propsAndConfigForFieldConfig, validatorsForFieldConfig } from '@dereekb/dbx-form';\nimport { LAT_LNG_PATTERN } from '@dereekb/util';\nimport { type FormlyFieldConfig } from '@ngx-formly/core';\nimport { type DbxFormMapboxLatLngComponentFieldProps } from './latlng.field.component';\n\nexport interface MapboxLatLngFieldConfig extends Omit<LabeledFieldConfig, 'key'>, DescriptionFieldConfig, Partial<FieldConfig>, Pick<DbxFormMapboxLatLngComponentFieldProps, 'showMap' | 'zoom' | 'latLngConfig' | 'recenterTime' | 'setCenterOnLocationSet' | 'showCenterButton' | 'selectLocationOnMapDrag' | 'selectLocationOnMapClick' | 'markerConfig'> {}\n\nexport function mapboxLatLngField(config: MapboxLatLngFieldConfig = {}): FormlyFieldConfig {\n const { key = 'latLng', latLngConfig, showMap, zoom, recenterTime, showCenterButton, setCenterOnLocationSet, selectLocationOnMapDrag, selectLocationOnMapClick, markerConfig } = config;\n\n const classGetter = 'dbx-mat-form-field-disable-underline';\n const fieldConfig: FormlyFieldConfig = {\n ...formlyField({\n key,\n type: 'mapbox-latlng-picker',\n ...propsAndConfigForFieldConfig(config, {\n classGetter,\n label: config.label ?? 'Location',\n placeholder: DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER,\n pattern: LAT_LNG_PATTERN,\n autocomplete: false,\n showMap,\n zoom,\n latLngConfig,\n recenterTime,\n selectLocationOnMapDrag,\n selectLocationOnMapClick,\n showCenterButton,\n setCenterOnLocationSet,\n markerConfig\n })\n }),\n ...validatorsForFieldConfig({\n messages: {\n pattern: DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE\n }\n })\n };\n\n return fieldConfig;\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { shareReplay, map, type Observable, combineLatest } from 'rxjs';\nimport { type DbxMapboxMarker, DbxMapboxMarkerComponent } from '@dereekb/dbx-web/mapbox';\nimport { DbxFormMapboxLatLngFieldComponent } from './latlng.field.component';\nimport { type Maybe } from '@dereekb/util';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n template: `\n <dbx-mapbox-marker [marker]=\"markerSignal()\"></dbx-mapbox-marker>\n `,\n imports: [DbxMapboxMarkerComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFormMapboxLatLngFieldMarkerComponent {\n readonly fieldComponent = inject(DbxFormMapboxLatLngFieldComponent);\n\n readonly marker$: Observable<Maybe<DbxMapboxMarker>> = combineLatest([this.fieldComponent.latLng$, this.fieldComponent.markerConfig$]).pipe(\n map(([latLng, markerConfig]) => {\n if (markerConfig !== false) {\n return { latLng, ...markerConfig };\n } else {\n return undefined;\n }\n }),\n shareReplay(1)\n );\n\n readonly markerSignal = toSignal(this.marker$);\n}\n","import { type AbstractControl, type FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { CompactContextStore, mapCompactModeObs } from '@dereekb/dbx-web';\nimport { ChangeDetectionStrategy, Component, Injector, type OnDestroy, type OnInit, inject } from '@angular/core';\nimport { type FieldTypeConfig, type FormlyFieldProps } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material';\nimport { skip, first, BehaviorSubject, filter, shareReplay, startWith, switchMap, map, type Observable, throttleTime, skipWhile, of, distinctUntilChanged } from 'rxjs';\nimport { asObservableFromGetter, filterMaybe, type ObservableFactoryWithRequiredInput, SubscriptionObject } from '@dereekb/rxjs';\nimport { type Maybe, type LatLngPoint, type LatLngPointFunctionConfig, type LatLngStringFunction, latLngStringFunction, type Milliseconds, latLngPointFunction, isDefaultLatLngPoint, isValidLatLngPoint, type LatLngPointFunction, isSameLatLngPoint, defaultLatLngPoint } from '@dereekb/util';\nimport { WaGeolocationService } from '@ng-web-apis/geolocation';\nimport { type Marker } from 'mapbox-gl';\nimport { DbxMapboxInjectionStore, DbxMapboxMapStore, type DbxMapboxMarkerDisplayConfig, DbxMapboxModule, type MapboxEaseTo, type MapboxZoomLevel, provideMapboxStoreIfParentIsUnavailable } from '@dereekb/dbx-web/mapbox';\nimport { DbxFormMapboxLatLngFieldMarkerComponent } from './latlng.field.marker.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MapComponent, MarkerComponent } from 'ngx-mapbox-gl';\n\nexport const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY = 'DbxFormMapboxLatLngFieldComponent';\n\nexport const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_MARKER_CONFIG: DbxMapboxMarkerDisplayConfig = {\n icon: 'pin_drop'\n};\n\nexport interface DbxFormMapboxLatLngComponentFieldProps extends FormlyFieldProps {\n /**\n * (Optional) Whether or not the show the map. If the map is not shown, relies on the center of the parent map to determine position.\n *\n * Defaults to true.\n *\n * Cases where this would be set false is if another map is being used.\n */\n readonly showMap?: boolean;\n /**\n * Whether or not to display the center button. Is set to false if selectLocationOnMapDrag is true.\n */\n readonly showCenterButton?: boolean;\n /**\n * Whether or not to set the center of the map on the location when set. Defaults to true.\n */\n readonly setCenterOnLocationSet?: boolean;\n /**\n * Whether or not to enable dragging the map to select the location. Defaults to true.\n *\n * Only applicable when showMap is false.\n */\n readonly selectLocationOnMapDrag?: boolean;\n /**\n * Whether or not to enable clicking the map to select the location. Defaults to false.\n *\n * Only applicable when showMap is false.\n */\n readonly selectLocationOnMapClick?: boolean;\n /**\n * (Optional) Zoom to start the map at. Ignored if the showMap is false.\n */\n readonly zoom?: MapboxZoomLevel;\n /**\n * Time until recentering on the marker. If the time is 0 then the recentering is disabled.\n */\n readonly recenterTime?: Milliseconds;\n readonly latLngConfig?: LatLngPointFunctionConfig;\n /**\n * Unique injection key.\n *\n * If not defined, the default key will be used.\n *\n * If false is passed, the marker will not be configured in the injection store.\n */\n readonly mapInjectionKey?: Maybe<string | false>;\n /**\n * Marker configuration or factory. If false is passed, the marker will not be displayed.\n */\n readonly markerConfig?: false | ObservableFactoryWithRequiredInput<DbxMapboxMarkerDisplayConfig | false, DbxFormMapboxLatLngFieldComponent>;\n}\n\n/*\n TODO: Re-add menu for picking a new location, including using the current location.\n <button mat-icon-button (click)=\"useCurrentLocation()\" [disabled]=\"isReadonlyOrDisabled || (useCurrentLocationDisabled$ | async)\">\n <mat-icon>my_location</mat-icon>\n </button>\n */\n\n@Component({\n template: `\n <div class=\"dbx-mapbox-input-field\" [ngClass]=\"compactClassSignal()\" [formGroup]=\"formGroup\">\n @if (showMap) {\n <div class=\"dbx-mapbox-input-field-map\">\n <mgl-map dbxMapboxMap>\n <mgl-marker [lngLat]=\"latLngSignal()\" [draggable]=\"!isReadonlyOrDisabled\" (markerDragEnd)=\"onMarkerDragEnd($event)\"></mgl-marker>\n </mgl-map>\n </div>\n }\n <div class=\"dbx-mapbox-input-field-input\">\n @if (showCenterButton) {\n <button mat-icon-button (click)=\"flyToMarker()\">\n <mat-icon>my_location</mat-icon>\n </button>\n }\n <mat-form-field class=\"dbx-mapbox-input-field-input-field\">\n <mat-label>Coordinates</mat-label>\n <input type=\"text\" matInput [placeholder]=\"placeholder\" [formControl]=\"formControl\" />\n @if (useCurrentLocationDisabledSignal()) {\n <mat-hint class=\"dbx-hint dbx-warn\">Could not access your current location.</mat-hint>\n }\n </mat-form-field>\n </div>\n </div>\n `,\n providers: [provideMapboxStoreIfParentIsUnavailable()],\n styleUrls: ['../mapbox.field.component.scss'],\n imports: [NgClass, MapComponent, MarkerComponent, ReactiveFormsModule, MatIconModule, DbxMapboxModule, MatButtonModule, MatFormFieldModule, MatInputModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFormMapboxLatLngFieldComponent<T extends DbxFormMapboxLatLngComponentFieldProps = DbxFormMapboxLatLngComponentFieldProps> extends FieldType<FieldTypeConfig<T>> implements OnInit, OnDestroy {\n private readonly _geolocationService = inject(WaGeolocationService);\n\n readonly compact = inject(CompactContextStore, { optional: true });\n readonly dbxMapboxInjectionStore = inject(DbxMapboxInjectionStore, { optional: true });\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n readonly injector = inject(Injector);\n\n private readonly _sub = new SubscriptionObject();\n private readonly _geoSub = new SubscriptionObject();\n private readonly _centerSub = new SubscriptionObject();\n private readonly _flyToCenterSub = new SubscriptionObject();\n private readonly _clickSub = new SubscriptionObject();\n private readonly _zoom = new BehaviorSubject<MapboxZoomLevel>(12);\n private readonly _markerConfig = new BehaviorSubject<Observable<DbxMapboxMarkerDisplayConfig | false>>(of(DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_MARKER_CONFIG));\n\n private _latLngStringFunction!: LatLngStringFunction;\n private _latLngPointFunction!: LatLngPointFunction;\n\n readonly compactClass$ = mapCompactModeObs(this.compact?.mode$, {\n compact: 'dbx-mapbox-input-field-compact'\n }).pipe(filterMaybe());\n\n private readonly _useCurrentLocationDisabled = new BehaviorSubject<boolean>(false);\n readonly useCurrentLocationDisabled$ = this._useCurrentLocationDisabled.asObservable();\n\n private readonly _formControlObs = new BehaviorSubject<Maybe<AbstractControl>>(undefined);\n readonly formControl$ = this._formControlObs.pipe(filterMaybe());\n\n readonly value$ = this.formControl$.pipe(\n switchMap((control) => control.valueChanges.pipe(startWith(control.value))),\n shareReplay(1)\n );\n\n readonly latLng$: Observable<LatLngPoint> = this.value$.pipe(\n filterMaybe(),\n map((x) => this._latLngPointFunction(x)),\n distinctUntilChanged<LatLngPoint>(isSameLatLngPoint),\n shareReplay(1)\n );\n\n readonly nonZeroLatLng$: Observable<LatLngPoint> = this.latLng$.pipe(\n /**\n * Center observable passed to the store. Do not pass invalid points.\n *\n * Also skip any initial 0,0 values so the center doesn't potentially \"whip\" from 0,0 to a final loaded value.\n */\n skipWhile<LatLngPoint>(isDefaultLatLngPoint),\n filter(isValidLatLngPoint)\n );\n\n readonly zoom$ = this._zoom.asObservable();\n readonly markerConfig$ = this._markerConfig.asObservable().pipe(\n switchMap((x) => x),\n shareReplay(1)\n );\n\n readonly useCurrentLocationDisabledSignal = toSignal(this._useCurrentLocationDisabled, { initialValue: false });\n readonly compactClassSignal = toSignal(this.compactClass$, { initialValue: '' });\n readonly latLngSignal = toSignal(this.latLng$, { initialValue: defaultLatLngPoint() });\n\n get zoom(): MapboxZoomLevel {\n return Math.min(this.field.props.zoom || 12, 18);\n }\n\n get formGroupName(): string {\n return this.field.key as string;\n }\n\n get formGroup(): FormGroup {\n return this.form as FormGroup;\n }\n\n get label(): Maybe<string> {\n return this.field.props?.label;\n }\n\n get description(): Maybe<string> {\n return this.props.description;\n }\n\n get isReadonlyOrDisabled() {\n return this.props.readonly || this.disabled;\n }\n\n get showMap(): boolean {\n return this.field.props.showMap ?? true;\n }\n\n get selectLocationOnMapDrag(): boolean {\n return this.field.props.selectLocationOnMapDrag ?? true;\n }\n\n get selectLocationOnMapClick(): boolean {\n return this.field.props.selectLocationOnMapClick ?? false;\n }\n\n get setCenterOnLocationSet() {\n return this.field.props.setCenterOnLocationSet ?? true;\n }\n\n get showCenterButton() {\n return !this.selectLocationOnMapDrag && this.props.showCenterButton !== false;\n }\n\n get recenterTime(): Milliseconds {\n return this.field.props.recenterTime || 10 * 1000;\n }\n\n get useCurrentLocationDisabled() {\n return this._useCurrentLocationDisabled;\n }\n\n get mapInjectionKey() {\n return this.field.props.mapInjectionKey;\n }\n\n get markerConfig() {\n return this.field.props.markerConfig;\n }\n\n ngOnInit(): void {\n const latLngPointConfig = { ...this.field.props.latLngConfig, wrap: this.field.props.latLngConfig?.wrap || false, validate: this.field.props.latLngConfig?.validate || false, precisionRounding: this.field.props.latLngConfig?.precisionRounding ?? 'round' };\n this._latLngStringFunction = latLngStringFunction(latLngPointConfig);\n this._latLngPointFunction = latLngPointFunction(latLngPointConfig);\n\n this._formControlObs.next(this.formControl);\n this._zoom.next(this.zoom);\n\n if (this.setCenterOnLocationSet) {\n this._centerSub.subscription = this.dbxMapboxMapStore.setCenter(this.nonZeroLatLng$);\n }\n\n if (this.showMap) {\n // Set zoom only if showMap is true\n this.dbxMapboxMapStore.setZoom(this.zoom$);\n\n // recenter periodically\n if (this.recenterTime > 0) {\n this._flyToCenterSub.subscription = this.dbxMapboxMapStore.center$.pipe(skip(1), throttleTime(this.recenterTime, undefined, { leading: false, trailing: true })).subscribe(() => {\n this.flyToMarker();\n });\n }\n } else {\n // use the center of the map to set locations\n if (this.selectLocationOnMapDrag) {\n this._sub.subscription = this.dbxMapboxMapStore.center$.subscribe((center) => {\n this.dbxMapboxMapStore.centerGivenMargin$.pipe(first()).subscribe(() => {\n if (!this.isReadonlyOrDisabled) {\n this.setValue(center);\n }\n });\n });\n }\n\n // enable selecting the location on a map click\n if (this.selectLocationOnMapClick) {\n this._clickSub.subscription = this.dbxMapboxMapStore.clickEvent$.subscribe((x) => {\n if (x?.type === 'click') {\n this.setValue(x.lngLat);\n }\n });\n }\n }\n\n if (this.props.readonly) {\n this.formControl.disable();\n }\n\n // Add the marker to the injection store for display\n if (this.dbxMapboxInjectionStore) {\n if (this.markerConfig != null) {\n this._markerConfig.next(this.markerConfig === false ? of(false) : asObservableFromGetter(this.markerConfig, this));\n }\n\n this.dbxMapboxInjectionStore.addInjectionConfig({\n key: this.mapInjectionKey || DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY,\n injectionConfig: {\n componentClass: DbxFormMapboxLatLngFieldMarkerComponent,\n providers: [{ provide: DbxFormMapboxLatLngFieldComponent, useValue: this }]\n }\n });\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._zoom.complete();\n this._markerConfig.complete();\n this._formControlObs.complete();\n this._sub.destroy();\n this._geoSub.destroy();\n this._centerSub.destroy();\n this._flyToCenterSub.destroy();\n this._clickSub.destroy();\n }\n\n flyToMarker() {\n this.dbxMapboxMapStore.easeTo(\n this.nonZeroLatLng$.pipe(\n first(),\n map((x) => ({ center: x }) as MapboxEaseTo)\n )\n );\n }\n\n useCurrentLocation() {\n this._geoSub.subscription = this._geolocationService.pipe(first()).subscribe({\n next: (position) => {\n if (position) {\n const { latitude: lat, longitude: lng } = position.coords;\n this.setValue({ lat, lng });\n }\n },\n error: () => {\n this._useCurrentLocationDisabled.next(true);\n }\n });\n }\n\n onMarkerDragEnd(marker: Marker) {\n this.setValue(marker.getLngLat());\n }\n\n setValue(latLng?: Maybe<LatLngPoint>) {\n this.formControl.setValue(latLng ? this._latLngStringFunction(latLng) : latLng);\n this.formControl.markAsTouched();\n this.formControl.markAsDirty();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFormMapboxLatLngFieldComponent } from './latlng.field.component';\nimport { FormlyModule } from '@ngx-formly/core';\n\nconst importsAndExports = [DbxFormMapboxLatLngFieldComponent];\n\n@NgModule({\n imports: [\n ...importsAndExports,\n FormlyModule.forChild({\n types: [{ name: 'mapbox-latlng-picker', component: DbxFormMapboxLatLngFieldComponent, wrappers: ['style', 'form-field'] }]\n })\n ],\n exports: importsAndExports\n})\nexport class DbxFormMapboxLatLngModule {}\n","import { type DescriptionFieldConfig, type FieldConfig, formlyField, type LabeledFieldConfig, propsAndConfigForFieldConfig } from '@dereekb/dbx-form';\nimport { type FormlyFieldConfig } from '@ngx-formly/core';\nimport { type DbxFormMapboxZoomComponentFieldProps } from './zoom.field.component';\n\nexport interface MapboxZoomFieldConfig extends Omit<LabeledFieldConfig, 'key'>, DescriptionFieldConfig, Partial<FieldConfig>, Pick<DbxFormMapboxZoomComponentFieldProps, 'showMap' | 'center' | 'minZoom' | 'maxZoom' | 'zoomStep'> {}\n\nexport function mapboxZoomField(config: MapboxZoomFieldConfig = {}): FormlyFieldConfig {\n const { key = 'zoom', showMap, center, minZoom, maxZoom, zoomStep } = config;\n\n const classGetter = 'dbx-mat-form-field-disable-underline';\n const fieldConfig: FormlyFieldConfig = {\n ...formlyField({\n key,\n type: 'mapbox-zoom-picker',\n ...propsAndConfigForFieldConfig(config, {\n classGetter,\n label: config.label ?? 'Zoom',\n autocomplete: false,\n showMap,\n center,\n minZoom,\n maxZoom,\n zoomStep\n })\n })\n };\n\n return fieldConfig;\n}\n","import { type AbstractControl, type FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CompactContextStore, mapCompactModeObs } from '@dereekb/dbx-web';\nimport { ChangeDetectionStrategy, Component, type OnDestroy, type OnInit, inject } from '@angular/core';\nimport { type FieldTypeConfig, type FormlyFieldProps } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material';\nimport { BehaviorSubject, shareReplay, startWith, switchMap, type Observable } from 'rxjs';\nimport { filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { type ZoomLevel, type Maybe, type LatLngPoint, latLngPoint } from '@dereekb/util';\nimport { DbxMapboxService, DbxMapboxMapStore, type MapboxZoomLevel, provideMapboxStoreIfParentIsUnavailable, mapboxZoomLevel, MAPBOX_MAX_ZOOM_LEVEL, MAPBOX_MIN_ZOOM_LEVEL, DbxMapboxModule } from '@dereekb/dbx-web/mapbox';\nimport { NgClass } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport interface DbxFormMapboxZoomComponentFieldProps extends Omit<FormlyFieldProps, 'min' | 'max'> {\n /**\n * (Optional) Whether or not the show the map. Cases where this would be set false is if another map is being used.\n *\n * Defaults to true.\n */\n readonly showMap?: boolean;\n /**\n * Default center\n */\n readonly center?: LatLngPoint;\n /**\n * Whether or not to lock the map itself to the min and max zoom levels.\n */\n readonly lockMapToZoomLevels?: boolean;\n /**\n * Min zoom level allowed\n */\n readonly minZoom?: MapboxZoomLevel;\n /**\n * Max zoom level allowed.\n */\n readonly maxZoom?: MapboxZoomLevel;\n /**\n * Step size when using arrow keys.\n */\n readonly zoomStep?: number;\n}\n\n@Component({\n template: `\n <div class=\"dbx-mapbox-input-field\" [ngClass]=\"compactClassSignal()\" [formGroup]=\"formGroup\">\n @if (showMap) {\n <div class=\"dbx-mapbox-input-field-map\">\n <mgl-map dbxMapboxMap></mgl-map>\n </div>\n }\n <div class=\"dbx-mapbox-input-field-input\">\n <mat-form-field class=\"dbx-mapbox-input-field-input-field\">\n <mat-label>Zoom Level</mat-label>\n <input type=\"number\" matInput [min]=\"minZoom\" [max]=\"maxZoom\" [step]=\"zoomStep\" [placeholder]=\"placeholder\" [formControl]=\"formControl\" />\n </mat-form-field>\n </div>\n </div>\n `,\n providers: [provideMapboxStoreIfParentIsUnavailable()],\n styleUrls: ['../mapbox.field.component.scss'],\n imports: [NgClass, DbxMapboxModule, FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFormMapboxZoomFieldComponent<T extends DbxFormMapboxZoomComponentFieldProps = DbxFormMapboxZoomComponentFieldProps> extends FieldType<FieldTypeConfig<T>> implements OnInit, OnDestroy {\n readonly compact = inject(CompactContextStore, { optional: true });\n\n readonly dbxMapboxService = inject(DbxMapboxService);\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n\n private _undoZoomLimit = false;\n\n readonly compactClass$ = mapCompactModeObs(this.compact?.mode$, {\n compact: 'dbx-mapbox-input-field-compact'\n }).pipe(filterMaybe());\n\n readonly compactClassSignal = toSignal(this.compactClass$, { initialValue: '' });\n\n private readonly _sub = new SubscriptionObject();\n private readonly _center = new BehaviorSubject<Maybe<LatLngPoint>>(undefined);\n\n private readonly _formControlObs = new BehaviorSubject<Maybe<AbstractControl>>(undefined);\n readonly formControl$ = this._formControlObs.pipe(filterMaybe());\n\n readonly value$ = this.formControl$.pipe(\n switchMap((control) => control.valueChanges.pipe(startWith(control.value))),\n shareReplay(1)\n );\n\n readonly zoom$: Observable<MapboxZoomLevel> = this.value$.pipe(filterMaybe(), shareReplay(1));\n readonly center$ = this._center.pipe(filterMaybe());\n\n get center(): LatLngPoint {\n return this.field.props.center || latLngPoint(this.dbxMapboxService.defaultCenter);\n }\n\n get formGroupName(): string {\n return this.field.key as string;\n }\n\n get formGroup(): FormGroup {\n return this.form as FormGroup;\n }\n\n get label(): Maybe<string> {\n return this.field.props?.label;\n }\n\n get description(): Maybe<string> {\n return this.props.description;\n }\n\n get isReadonlyOrDisabled() {\n return this.props.readonly || this.disabled;\n }\n\n get showMap(): boolean {\n return this.field.props.showMap ?? true;\n }\n\n get lockMapToZoomLevels(): boolean {\n return this.field.props.lockMapToZoomLevels ?? false;\n }\n\n get minZoom(): MapboxZoomLevel {\n return mapboxZoomLevel(this.field.props.minZoom || MAPBOX_MIN_ZOOM_LEVEL);\n }\n\n get maxZoom(): MapboxZoomLevel {\n return mapboxZoomLevel(this.field.props.maxZoom || MAPBOX_MAX_ZOOM_LEVEL);\n }\n\n get zoomStep(): number {\n return mapboxZoomLevel(this.field.props.zoomStep || 1);\n }\n\n ngOnInit(): void {\n this._formControlObs.next(this.formControl);\n this._center.next(this.center);\n\n // set/sync props for error messages\n (this.props as FormlyFieldProps).min = this.minZoom;\n (this.props as FormlyFieldProps).max = this.maxZoom;\n\n this.dbxMapboxMapStore.setZoom(this.zoom$);\n\n // Set center only if showMap is false.\n if (this.showMap) {\n this.dbxMapboxMapStore.setCenter(this.center$);\n }\n\n if (this.props.readonly) {\n this.formControl.disable();\n\n if (this.showMap) {\n this.dbxMapboxMapStore.setZoomDisabled();\n }\n } else if (this.lockMapToZoomLevels) {\n // set zoom limits on the map\n this.dbxMapboxMapStore.setZoomRange({ min: this.minZoom, max: this.maxZoom });\n\n // flat to undo them later if not using the same map\n this._undoZoomLimit = !this.showMap;\n }\n\n this._sub.subscription = this.dbxMapboxMapStore.zoom$.subscribe((zoom) => {\n if (!this.isReadonlyOrDisabled) {\n this.setValue(zoom);\n }\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._formControlObs.complete();\n this._center.complete();\n this._sub.destroy();\n\n if (!this._undoZoomLimit) {\n this.dbxMapboxMapStore.setZoomRange({});\n }\n }\n\n setValue(zoom?: Maybe<ZoomLevel>) {\n this.formControl.setValue(zoom);\n this.formControl.markAsTouched();\n this.formControl.markAsDirty();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFormMapboxZoomFieldComponent } from './zoom.field.component';\nimport { FormlyModule } from '@ngx-formly/core';\n\nconst importsAndExports = [DbxFormMapboxZoomFieldComponent];\n\n@NgModule({\n imports: [\n ...importsAndExports,\n FormlyModule.forChild({\n types: [{ name: 'mapbox-zoom-picker', component: DbxFormMapboxZoomFieldComponent, wrappers: ['style', 'form-field'] }]\n })\n ],\n exports: importsAndExports\n})\nexport class DbxFormMapboxZoomModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxFormMapboxZoomModule } from './field';\nimport { DbxFormMapboxLatLngModule } from './field/latlng/latlng.module';\n\n@NgModule({\n exports: [DbxFormMapboxLatLngModule, DbxFormMapboxZoomModule]\n})\nexport class DbxFormMapboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","importsAndExports","i2","i4","i5"],"mappings":"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"}
|