@dereekb/dbx-form 13.8.0 → 13.10.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.
- package/fesm2022/dereekb-dbx-form-calendar.mjs +10 -18
- package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-flex.wrapper.component-CpOHCk87.mjs +39 -0
- package/fesm2022/dereekb-dbx-form-flex.wrapper.component-CpOHCk87.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-info.wrapper.component-18n632L-.mjs +61 -0
- package/fesm2022/dereekb-dbx-form-info.wrapper.component-18n632L-.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-mapbox.mjs +26 -16
- package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-section.wrapper.component-vq21oG6v.mjs +52 -0
- package/fesm2022/dereekb-dbx-form-section.wrapper.component-vq21oG6v.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-style.wrapper.component-BbKj-IHD.mjs +42 -0
- package/fesm2022/dereekb-dbx-form-style.wrapper.component-BbKj-IHD.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form.mjs +4893 -2968
- package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
- package/lib/forge/_forge.scss +14 -0
- package/lib/forge/field/_field.scss +0 -2
- package/lib/forge/field/selection/_selection.scss +3 -0
- package/lib/forge/field/selection/list/_list.scss +17 -0
- package/lib/forge/field/selection/pickable/_pickable.scss +26 -1
- package/lib/forge/field/selection/sourceselect/_sourceselect.scss +16 -32
- package/lib/forge/field/wrapper/_wrapper.scss +16 -6
- package/lib/{formly/form/_form.scss → forge/preset/_preset.scss} +3 -12
- package/lib/forge/style/_shared.scss +13 -3
- package/lib/form/_form.scss +21 -7
- package/lib/formly/field/selection/sourceselect/_sourceselect.scss +0 -7
- package/lib/style/_all-core.scss +2 -4
- package/lib/style/_all-theme.scss +2 -4
- package/lib/style/_all-typography.scss +1 -1
- package/package.json +10 -10
- package/types/dereekb-dbx-form-calendar.d.ts +9 -20
- package/types/dereekb-dbx-form-mapbox.d.ts +15 -12
- package/types/dereekb-dbx-form.d.ts +4962 -3950
- package/fesm2022/dereekb-dbx-form-array.field.component-1wYSd4d3.mjs +0 -169
- package/fesm2022/dereekb-dbx-form-array.field.component-1wYSd4d3.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-formfield.field.component-BQyujXe3.mjs +0 -70
- package/fesm2022/dereekb-dbx-form-formfield.field.component-BQyujXe3.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-info.wrapper.field.component-Crm4wVr5.mjs +0 -35
- package/fesm2022/dereekb-dbx-form-info.wrapper.field.component-Crm4wVr5.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-section.field.component-DliafLqL.mjs +0 -63
- package/fesm2022/dereekb-dbx-form-section.field.component-DliafLqL.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-style.field.component-C3ZNiotx.mjs +0 -71
- package/fesm2022/dereekb-dbx-form-style.field.component-C3ZNiotx.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-working.field.component-CO8vK2bH.mjs +0 -53
- package/fesm2022/dereekb-dbx-form-working.field.component-CO8vK2bH.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-working.wrapper.field.component-BtD7_5i5.mjs +0 -54
- package/fesm2022/dereekb-dbx-form-working.wrapper.field.component-BtD7_5i5.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-wrapper.content.component-Cy4ND_se.mjs +0 -87
- package/fesm2022/dereekb-dbx-form-wrapper.content.component-Cy4ND_se.mjs.map +0 -1
|
@@ -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/latlng/latlng.forge.field.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.forge.field.marker.component.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.forge.field.component.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/field/zoom/zoom.forge.field.ts","../../../../packages/dbx-form/mapbox/src/lib/field/zoom/zoom.forge.field.component.ts","../../../../packages/dbx-form/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-form/mapbox/src/lib/forge.providers.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\n/**\n * @deprecated Use DbxForgeMapboxLatLngFieldConfig instead.\n */\nexport interface MapboxLatLngFieldConfig extends Omit<LabeledFieldConfig, 'key'>, DescriptionFieldConfig, Partial<FieldConfig>, Pick<DbxFormMapboxLatLngComponentFieldProps, 'showMap' | 'zoom' | 'latLngConfig' | 'recenterTime' | 'setCenterOnLocationSet' | 'showCenterButton' | 'selectLocationOnMapDrag' | 'selectLocationOnMapClick' | 'markerConfig'> {}\n\n/**\n * Creates a Formly field configuration for a Mapbox-powered latitude/longitude picker with optional map display.\n *\n * @deprecated Use forgeMapboxLatLngField() from the forge API instead.\n * @param config - Optional field configuration overrides\n * @returns A validated Formly field configuration for the Mapbox lat/lng picker\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 return markerConfig !== false ? { latLng, ...markerConfig } : undefined;\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/**\n * @deprecated Use DbxForgeMapboxLatLngFieldComponent instead.\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/**\n * @deprecated Use provideDbxForgeMapboxFieldDeclarations() instead.\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 { BaseValueField } from '@ng-forge/dynamic-forms';\nimport { filterFromPOJO, LAT_LNG_PATTERN, type LatLngPointFunctionConfig } from '@dereekb/util';\nimport { DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER } from '@dereekb/dbx-form';\nimport type { DbxForgeMapboxLatLngFieldComponentProps } from './latlng.forge.field.component';\n\n/**\n * The custom forge field type name for the mapbox lat/lng field.\n */\nexport const FORGE_MAPBOX_LATLNG_FIELD_TYPE = 'dbx-forge-mapbox-latlng' as const;\n\n/**\n * Field definition type for a forge mapbox lat/lng picker field.\n */\nexport type DbxForgeMapboxLatLngFieldDef = BaseValueField<DbxForgeMapboxLatLngFieldComponentProps, unknown> & {\n readonly type: typeof FORGE_MAPBOX_LATLNG_FIELD_TYPE;\n};\n\n/**\n * Configuration for a forge mapbox lat/lng picker field.\n */\nexport interface DbxForgeMapboxLatLngFieldConfig {\n readonly key?: string;\n readonly label?: string;\n readonly description?: string;\n readonly required?: boolean;\n readonly readonly?: boolean;\n readonly showMap?: boolean;\n readonly showCenterButton?: boolean;\n readonly setCenterOnLocationSet?: boolean;\n readonly selectLocationOnMapDrag?: boolean;\n readonly selectLocationOnMapClick?: boolean;\n readonly zoom?: number;\n readonly recenterTime?: number;\n readonly latLngConfig?: LatLngPointFunctionConfig;\n readonly markerConfig?: DbxForgeMapboxLatLngFieldComponentProps['markerConfig'];\n}\n\n/**\n * Creates a forge field definition for a Mapbox-powered latitude/longitude picker.\n *\n * This is the forge equivalent of {@link mapboxLatLngField}.\n *\n * @param config - Optional field configuration overrides\n * @returns A validated forge field definition for the Mapbox lat/lng picker\n */\nexport function forgeMapboxLatLngField(config: DbxForgeMapboxLatLngFieldConfig = {}): DbxForgeMapboxLatLngFieldDef {\n const { key = 'latLng', label, description, required, readonly: isReadonly, showMap, zoom, latLngConfig, recenterTime, showCenterButton, setCenterOnLocationSet, selectLocationOnMapDrag, selectLocationOnMapClick, markerConfig } = config;\n\n const props: DbxForgeMapboxLatLngFieldComponentProps = filterFromPOJO({\n label: label ?? 'Location',\n description,\n placeholder: DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER,\n pattern: LAT_LNG_PATTERN,\n patternMessage: DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE,\n showMap,\n zoom,\n latLngConfig,\n recenterTime,\n selectLocationOnMapDrag,\n selectLocationOnMapClick,\n showCenterButton,\n setCenterOnLocationSet,\n markerConfig\n });\n\n return filterFromPOJO({\n key,\n type: FORGE_MAPBOX_LATLNG_FIELD_TYPE,\n label: label ?? 'Location',\n value: undefined as unknown,\n required,\n readonly: isReadonly,\n props: Object.keys(props).length > 0 ? props : undefined\n }) as DbxForgeMapboxLatLngFieldDef;\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 { DbxForgeMapboxLatLngFieldComponent } from './latlng.forge.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 DbxForgeMapboxLatLngFieldMarkerComponent {\n readonly fieldComponent = inject(DbxForgeMapboxLatLngFieldComponent);\n\n readonly marker$: Observable<Maybe<DbxMapboxMarker>> = combineLatest([this.fieldComponent.latLng$, this.fieldComponent.markerConfig$]).pipe(\n map(([latLng, markerConfig]) => {\n return markerConfig !== false ? { latLng, ...markerConfig } : undefined;\n }),\n shareReplay(1)\n );\n\n readonly markerSignal = toSignal(this.marker$);\n}\n","import { CompactContextStore, mapCompactModeObs } from '@dereekb/dbx-web';\nimport { ChangeDetectionStrategy, Component, type OnDestroy, computed, effect, inject, input, type InputSignal, type Signal } from '@angular/core';\nimport { skip, first, BehaviorSubject, filter, shareReplay, 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 { DbxForgeMapboxLatLngFieldMarkerComponent } from './latlng.forge.field.marker.component';\nimport { toObservable, 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';\nimport type { FieldTree } from '@angular/forms/signals';\nimport { type DynamicText, type FieldMeta, type ValidationMessages, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES } from '@ng-forge/dynamic-forms';\nimport { resolveValueFieldContext, buildValueFieldInputs } from '@ng-forge/dynamic-forms/integration';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nexport const DEFAULT_DBX_FORGE_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY = 'DbxForgeMapboxLatLngFieldComponent';\n\nexport const DEFAULT_DBX_FORGE_MAPBOX_LAT_LNG_MARKER_CONFIG: DbxMapboxMarkerDisplayConfig = {\n icon: 'pin_drop'\n};\n\n/**\n * Custom props for the forge mapbox lat/lng field.\n */\nexport interface DbxForgeMapboxLatLngFieldComponentProps {\n readonly label?: string;\n readonly description?: string;\n readonly placeholder?: string;\n readonly pattern?: RegExp;\n readonly patternMessage?: string;\n readonly showMap?: boolean;\n readonly showCenterButton?: boolean;\n readonly setCenterOnLocationSet?: boolean;\n readonly selectLocationOnMapDrag?: boolean;\n readonly selectLocationOnMapClick?: boolean;\n readonly zoom?: MapboxZoomLevel;\n readonly recenterTime?: Milliseconds;\n readonly latLngConfig?: LatLngPointFunctionConfig;\n readonly mapInjectionKey?: Maybe<string | false>;\n readonly markerConfig?: false | ObservableFactoryWithRequiredInput<DbxMapboxMarkerDisplayConfig | false, DbxForgeMapboxLatLngFieldComponent>;\n}\n\n/**\n * Forge custom field component for Mapbox latitude/longitude picking.\n *\n * This is the forge equivalent of {@link DbxFormMapboxLatLngFieldComponent}.\n * It bridges ng-forge Signal Forms with the Mapbox map store.\n *\n * Registered as ng-forge type 'dbx-forge-mapbox-latlng'.\n */\n@Component({\n selector: 'dbx-forge-mapbox-latlng-field',\n template: `\n <div class=\"dbx-mapbox-input-field\" [ngClass]=\"compactClassSignal()\">\n @if (showMapSignal()) {\n <div class=\"dbx-mapbox-input-field-map\">\n <mgl-map dbxMapboxMap>\n <mgl-marker [lngLat]=\"latLngSignal()\" [draggable]=\"!isReadonlyOrDisabledSignal()\" (markerDragEnd)=\"onMarkerDragEnd($event)\"></mgl-marker>\n </mgl-map>\n </div>\n }\n <div class=\"dbx-mapbox-input-field-input\">\n @if (showCenterButtonSignal()) {\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]=\"placeholderTextSignal() ?? ''\" [formControl]=\"textCtrl\" />\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 DbxForgeMapboxLatLngFieldComponent implements 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\n // Standard ng-forge value field inputs\n readonly field: InputSignal<FieldTree<unknown>> = input.required<FieldTree<unknown>>();\n readonly key: InputSignal<string> = input.required<string>();\n readonly label: InputSignal<DynamicText | undefined> = input<DynamicText | undefined>();\n readonly placeholder: InputSignal<DynamicText | undefined> = input<DynamicText | undefined>();\n readonly className: InputSignal<string> = input('');\n readonly tabIndex: InputSignal<number | undefined> = input<number | undefined>();\n readonly props: InputSignal<DbxForgeMapboxLatLngFieldComponentProps | undefined> = input<DbxForgeMapboxLatLngFieldComponentProps | undefined>();\n readonly meta: InputSignal<FieldMeta | undefined> = input<FieldMeta | undefined>();\n readonly validationMessages: InputSignal<ValidationMessages | undefined> = input<ValidationMessages | undefined>();\n readonly defaultValidationMessages: InputSignal<ValidationMessages | undefined> = input<ValidationMessages | undefined>();\n\n // Internal text form control for the coordinate input\n readonly textCtrl = new FormControl<string>('');\n\n // Subscription management\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_FORGE_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 // Field value signal (double-call pattern)\n readonly fieldValue = computed(() => {\n const state = this.field()?.() as any;\n return state?.value?.() as unknown;\n });\n\n readonly isDisabled = computed(() => {\n const state = this.field()?.() as any;\n return (state?.disabled?.() as boolean) ?? false;\n });\n\n readonly isReadonlyOrDisabledSignal = computed(() => (this.props() as any)?.readonly || this.isDisabled());\n\n // Computed props from field definition\n readonly showMapSignal = computed(() => this.props()?.showMap ?? true);\n readonly selectLocationOnMapDragSignal = computed(() => this.props()?.selectLocationOnMapDrag ?? true);\n readonly selectLocationOnMapClickSignal = computed(() => this.props()?.selectLocationOnMapClick ?? false);\n readonly setCenterOnLocationSetSignal = computed(() => this.props()?.setCenterOnLocationSet ?? true);\n readonly showCenterButtonSignal = computed(() => !this.selectLocationOnMapDragSignal() && this.props()?.showCenterButton !== false);\n readonly recenterTimeSignal = computed(() => this.props()?.recenterTime || 10 * 1000);\n readonly placeholderTextSignal = computed(() => this.props()?.placeholder);\n\n // Observables for map store sync\n readonly fieldValue$ = toObservable(this.fieldValue);\n\n readonly latLng$: Observable<LatLngPoint> = this.fieldValue$.pipe(\n filterMaybe(),\n map((x) => this._latLngPointFunction?.(x as string) ?? defaultLatLngPoint()),\n distinctUntilChanged<LatLngPoint>(isSameLatLngPoint),\n shareReplay(1)\n );\n\n readonly nonZeroLatLng$: Observable<LatLngPoint> = this.latLng$.pipe(skipWhile<LatLngPoint>(isDefaultLatLngPoint), filter(isValidLatLngPoint));\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 private _syncing = false;\n\n private _setFieldValue(value: unknown): void {\n const state = this.field()?.() as any;\n if (state?.value?.set) {\n state.value.set(value);\n state.markAsTouched?.();\n state.markAsDirty?.();\n }\n }\n\n constructor() {\n // Initialize on first props emission\n effect(() => {\n const p = this.props();\n if (!p) {\n return;\n }\n\n const latLngPointConfig = { ...p.latLngConfig, wrap: p.latLngConfig?.wrap || false, validate: p.latLngConfig?.validate || false, precisionRounding: p.latLngConfig?.precisionRounding ?? 'round' };\n this._latLngStringFunction = latLngStringFunction(latLngPointConfig);\n this._latLngPointFunction = latLngPointFunction(latLngPointConfig);\n\n const zoom = Math.min(p.zoom || 12, 18) as MapboxZoomLevel;\n this._zoom.next(zoom);\n\n if (p.setCenterOnLocationSet !== false) {\n this._centerSub.subscription = this.dbxMapboxMapStore.setCenter(this.nonZeroLatLng$);\n }\n\n if (p.showMap ?? true) {\n this.dbxMapboxMapStore.setZoom(this.zoom$);\n\n const recenterTime = p.recenterTime || 10 * 1000;\n if (recenterTime > 0) {\n this._flyToCenterSub.subscription = this.dbxMapboxMapStore.center$.pipe(skip(1), throttleTime(recenterTime, undefined, { leading: false, trailing: true })).subscribe(() => {\n this.flyToMarker();\n });\n }\n } else {\n if (p.selectLocationOnMapDrag ?? true) {\n this._sub.subscription = this.dbxMapboxMapStore.center$.subscribe((center) => {\n this.dbxMapboxMapStore.centerGivenMargin$.pipe(first()).subscribe(() => {\n if (!this.isReadonlyOrDisabledSignal()) {\n this.setValue(center);\n }\n });\n });\n }\n\n if (p.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 ((p as any).readonly) {\n this.textCtrl.disable();\n }\n\n // Add the marker to the injection store for display\n if (this.dbxMapboxInjectionStore) {\n if (p.markerConfig != null) {\n this._markerConfig.next(p.markerConfig === false ? of(false) : asObservableFromGetter(p.markerConfig, this));\n }\n\n this.dbxMapboxInjectionStore.addInjectionConfig({\n key: p.mapInjectionKey || DEFAULT_DBX_FORGE_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY,\n injectionConfig: {\n componentClass: DbxForgeMapboxLatLngFieldMarkerComponent,\n providers: [{ provide: DbxForgeMapboxLatLngFieldComponent, useValue: this }]\n }\n });\n }\n });\n\n // Sync field value → text control (inbound)\n effect(() => {\n const value = this.fieldValue();\n\n if (!this._syncing) {\n this._syncing = true;\n this.textCtrl.setValue((value as string) ?? '', { emitEvent: false });\n this._syncing = false;\n }\n });\n\n // Sync text control → field value (outbound)\n this.textCtrl.valueChanges.subscribe((textValue) => {\n if (!this._syncing) {\n this._syncing = true;\n this._setFieldValue(textValue || null);\n this._syncing = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this._zoom.complete();\n this._markerConfig.complete();\n this._useCurrentLocationDisabled.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 const stringValue = latLng ? this._latLngStringFunction(latLng) : null;\n this._syncing = true;\n this.textCtrl.setValue(stringValue as string, { emitEvent: false });\n this._setFieldValue(stringValue);\n this._syncing = false;\n }\n}\n\n/**\n * Custom mapper for the forge mapbox lat/lng field.\n *\n * @param fieldDef - Field definition configuration\n * @param fieldDef.key - Form model key for the field\n * @returns Signal containing a Record of input names to values for ngComponentOutlet\n */\nexport function mapboxLatLngFieldMapper(fieldDef: { key: string }): Signal<Record<string, unknown>> {\n const ctx = resolveValueFieldContext();\n const defaultProps = inject(DEFAULT_PROPS);\n const defaultValidationMessages = inject(DEFAULT_VALIDATION_MESSAGES);\n\n return computed(() => {\n return buildValueFieldInputs(fieldDef as any, ctx, defaultProps?.(), defaultValidationMessages?.());\n });\n}\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\n/**\n * @deprecated Use DbxForgeMapboxZoomFieldConfig instead.\n */\nexport interface MapboxZoomFieldConfig extends Omit<LabeledFieldConfig, 'key'>, DescriptionFieldConfig, Partial<FieldConfig>, Pick<DbxFormMapboxZoomComponentFieldProps, 'showMap' | 'center' | 'minZoom' | 'maxZoom' | 'zoomStep'> {}\n\n/**\n * Creates a Formly field configuration for a Mapbox-powered zoom level picker with optional map preview.\n *\n * @deprecated Use forgeMapboxZoomField() from the forge API instead.\n * @param config - Optional field configuration overrides\n * @returns A validated Formly field configuration for the Mapbox zoom picker\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/**\n * @deprecated Use DbxForgeMapboxZoomFieldComponent instead.\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/**\n * @deprecated Use provideDbxForgeMapboxFieldDeclarations() instead.\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 type { BaseValueField } from '@ng-forge/dynamic-forms';\nimport { filterFromPOJO, type LatLngPoint } from '@dereekb/util';\nimport type { DbxForgeMapboxZoomFieldComponentProps } from './zoom.forge.field.component';\nimport type { MapboxZoomLevel } from '@dereekb/dbx-web/mapbox';\n\n/**\n * The custom forge field type name for the mapbox zoom field.\n */\nexport const FORGE_MAPBOX_ZOOM_FIELD_TYPE = 'dbx-forge-mapbox-zoom' as const;\n\n/**\n * Field definition type for a forge mapbox zoom picker field.\n */\nexport type DbxForgeMapboxZoomFieldDef = BaseValueField<DbxForgeMapboxZoomFieldComponentProps, unknown> & {\n readonly type: typeof FORGE_MAPBOX_ZOOM_FIELD_TYPE;\n};\n\n/**\n * Configuration for a forge mapbox zoom picker field.\n */\nexport interface DbxForgeMapboxZoomFieldConfig {\n readonly key?: string;\n readonly label?: string;\n readonly description?: string;\n readonly required?: boolean;\n readonly readonly?: boolean;\n readonly showMap?: boolean;\n readonly center?: LatLngPoint;\n readonly minZoom?: MapboxZoomLevel;\n readonly maxZoom?: MapboxZoomLevel;\n readonly zoomStep?: number;\n}\n\n/**\n * Creates a forge field definition for a Mapbox-powered zoom level picker.\n *\n * This is the forge equivalent of {@link mapboxZoomField}.\n *\n * @param config - Optional field configuration overrides\n * @returns A validated forge field definition for the Mapbox zoom picker\n */\nexport function forgeMapboxZoomField(config: DbxForgeMapboxZoomFieldConfig = {}): DbxForgeMapboxZoomFieldDef {\n const { key = 'zoom', label, description, required, readonly: isReadonly, showMap, center, minZoom, maxZoom, zoomStep } = config;\n\n const props: DbxForgeMapboxZoomFieldComponentProps = filterFromPOJO({\n label: label ?? 'Zoom',\n description,\n showMap,\n center,\n minZoom,\n maxZoom,\n zoomStep\n });\n\n return filterFromPOJO({\n key,\n type: FORGE_MAPBOX_ZOOM_FIELD_TYPE,\n label: label ?? 'Zoom',\n value: undefined as unknown,\n required,\n readonly: isReadonly,\n props: Object.keys(props).length > 0 ? props : undefined\n }) as DbxForgeMapboxZoomFieldDef;\n}\n","import { CompactContextStore, mapCompactModeObs } from '@dereekb/dbx-web';\nimport { ChangeDetectionStrategy, Component, type OnDestroy, computed, effect, inject, input, type InputSignal, type Signal } from '@angular/core';\nimport { BehaviorSubject, shareReplay, 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 { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport type { FieldTree } from '@angular/forms/signals';\nimport { type DynamicText, type FieldMeta, type ValidationMessages, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES } from '@ng-forge/dynamic-forms';\nimport { resolveValueFieldContext, buildValueFieldInputs } from '@ng-forge/dynamic-forms/integration';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\n/**\n * Custom props for the forge mapbox zoom field.\n */\nexport interface DbxForgeMapboxZoomFieldComponentProps {\n readonly label?: string;\n readonly description?: string;\n readonly showMap?: boolean;\n readonly center?: LatLngPoint;\n readonly lockMapToZoomLevels?: boolean;\n readonly minZoom?: MapboxZoomLevel;\n readonly maxZoom?: MapboxZoomLevel;\n readonly zoomStep?: number;\n}\n\n/**\n * Forge custom field component for Mapbox zoom level picking.\n *\n * This is the forge equivalent of {@link DbxFormMapboxZoomFieldComponent}.\n * It bridges ng-forge Signal Forms with the Mapbox map store.\n *\n * Registered as ng-forge type 'dbx-forge-mapbox-zoom'.\n */\n@Component({\n selector: 'dbx-forge-mapbox-zoom-field',\n template: `\n <div class=\"dbx-mapbox-input-field\" [ngClass]=\"compactClassSignal()\">\n @if (showMapSignal()) {\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]=\"minZoomSignal()\" [max]=\"maxZoomSignal()\" [step]=\"zoomStepSignal()\" [placeholder]=\"placeholderText\" [formControl]=\"numberCtrl\" />\n </mat-form-field>\n </div>\n </div>\n `,\n providers: [provideMapboxStoreIfParentIsUnavailable()],\n styleUrls: ['../mapbox.field.component.scss'],\n imports: [NgClass, DbxMapboxModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxForgeMapboxZoomFieldComponent implements OnDestroy {\n readonly compact = inject(CompactContextStore, { optional: true });\n readonly dbxMapboxService = inject(DbxMapboxService);\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n\n // Standard ng-forge value field inputs\n readonly field: InputSignal<FieldTree<unknown>> = input.required<FieldTree<unknown>>();\n readonly key: InputSignal<string> = input.required<string>();\n readonly label: InputSignal<DynamicText | undefined> = input<DynamicText | undefined>();\n readonly placeholder: InputSignal<DynamicText | undefined> = input<DynamicText | undefined>();\n readonly className: InputSignal<string> = input('');\n readonly tabIndex: InputSignal<number | undefined> = input<number | undefined>();\n readonly props: InputSignal<DbxForgeMapboxZoomFieldComponentProps | undefined> = input<DbxForgeMapboxZoomFieldComponentProps | undefined>();\n readonly meta: InputSignal<FieldMeta | undefined> = input<FieldMeta | undefined>();\n readonly validationMessages: InputSignal<ValidationMessages | undefined> = input<ValidationMessages | undefined>();\n readonly defaultValidationMessages: InputSignal<ValidationMessages | undefined> = input<ValidationMessages | undefined>();\n\n // Internal number form control for the zoom input\n readonly numberCtrl = new FormControl<number | null>(null);\n readonly placeholderText = '';\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 // Subscription management\n private readonly _sub = new SubscriptionObject();\n private readonly _center = new BehaviorSubject<Maybe<LatLngPoint>>(undefined);\n\n // Field value signal (double-call pattern)\n readonly fieldValue = computed(() => {\n const state = this.field()?.() as any;\n return state?.value?.() as unknown;\n });\n\n readonly isDisabled = computed(() => {\n const state = this.field()?.() as any;\n return (state?.disabled?.() as boolean) ?? false;\n });\n\n readonly isReadonlyOrDisabledSignal = computed(() => (this.props() as any)?.readonly || this.isDisabled());\n\n // Computed props\n readonly showMapSignal = computed(() => this.props()?.showMap ?? true);\n readonly lockMapToZoomLevelsSignal = computed(() => this.props()?.lockMapToZoomLevels ?? false);\n readonly minZoomSignal = computed(() => mapboxZoomLevel(this.props()?.minZoom || MAPBOX_MIN_ZOOM_LEVEL));\n readonly maxZoomSignal = computed(() => mapboxZoomLevel(this.props()?.maxZoom || MAPBOX_MAX_ZOOM_LEVEL));\n readonly zoomStepSignal = computed(() => mapboxZoomLevel(this.props()?.zoomStep || 1));\n\n readonly fieldValue$ = toObservable(this.fieldValue);\n readonly zoom$ = this.fieldValue$.pipe(filterMaybe(), shareReplay(1)) as unknown as Observable<MapboxZoomLevel>;\n readonly center$ = this._center.pipe(filterMaybe());\n\n private _syncing = false;\n\n private _setFieldValue(value: unknown): void {\n const state = this.field()?.() as any;\n if (state?.value?.set) {\n state.value.set(value);\n state.markAsTouched?.();\n state.markAsDirty?.();\n }\n }\n\n constructor() {\n // Initialize on first props emission\n effect(() => {\n const p = this.props();\n if (!p) {\n return;\n }\n\n const center = p.center || latLngPoint(this.dbxMapboxService.defaultCenter);\n this._center.next(center);\n\n this.dbxMapboxMapStore.setZoom(this.zoom$);\n\n if (p.showMap ?? true) {\n this.dbxMapboxMapStore.setCenter(this.center$);\n }\n\n if ((p as any)?.readonly) {\n this.numberCtrl.disable();\n\n if (p.showMap ?? true) {\n this.dbxMapboxMapStore.setZoomDisabled();\n }\n } else if (p.lockMapToZoomLevels) {\n const min = mapboxZoomLevel(p.minZoom || MAPBOX_MIN_ZOOM_LEVEL);\n const max = mapboxZoomLevel(p.maxZoom || MAPBOX_MAX_ZOOM_LEVEL);\n this.dbxMapboxMapStore.setZoomRange({ min, max });\n this._undoZoomLimit = !(p.showMap ?? true);\n }\n\n this._sub.subscription = this.dbxMapboxMapStore.zoom$.subscribe((zoom) => {\n if (!this.isReadonlyOrDisabledSignal()) {\n this.setZoomValue(zoom);\n }\n });\n });\n\n // Sync field value → number control (inbound)\n effect(() => {\n const value = this.fieldValue();\n\n if (!this._syncing) {\n this._syncing = true;\n this.numberCtrl.setValue((value as number) ?? null, { emitEvent: false });\n this._syncing = false;\n }\n });\n\n // Sync number control → field value (outbound)\n this.numberCtrl.valueChanges.subscribe((numValue) => {\n if (!this._syncing) {\n this._syncing = true;\n this._setFieldValue(numValue ?? null);\n this._syncing = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this._center.complete();\n this._sub.destroy();\n\n if (!this._undoZoomLimit) {\n this.dbxMapboxMapStore.setZoomRange({});\n }\n }\n\n setZoomValue(zoom?: Maybe<ZoomLevel>) {\n this._syncing = true;\n this.numberCtrl.setValue((zoom as number) ?? null, { emitEvent: false });\n this._setFieldValue(zoom ?? null);\n this._syncing = false;\n }\n}\n\n/**\n * Custom mapper for the forge mapbox zoom field.\n *\n * @param fieldDef - Field definition configuration\n * @param fieldDef.key - Form model key for the field\n * @returns Signal containing a Record of input names to values for ngComponentOutlet\n */\nexport function mapboxZoomFieldMapper(fieldDef: { key: string }): Signal<Record<string, unknown>> {\n const ctx = resolveValueFieldContext();\n const defaultProps = inject(DEFAULT_PROPS);\n const defaultValidationMessages = inject(DEFAULT_VALIDATION_MESSAGES);\n\n return computed(() => {\n return buildValueFieldInputs(fieldDef as any, ctx, defaultProps?.(), defaultValidationMessages?.());\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFormMapboxZoomModule } from './field';\nimport { DbxFormMapboxLatLngModule } from './field/latlng/latlng.module';\n\n/**\n * @deprecated Use provideDbxForgeMapboxFieldDeclarations() instead.\n */\n@NgModule({\n exports: [DbxFormMapboxLatLngModule, DbxFormMapboxZoomModule]\n})\nexport class DbxFormMapboxModule {}\n","import { type FieldTypeDefinition, provideDynamicForm } from '@ng-forge/dynamic-forms';\nimport { FORGE_MAPBOX_LATLNG_FIELD_TYPE } from './field/latlng/latlng.forge.field';\nimport { mapboxLatLngFieldMapper } from './field/latlng/latlng.forge.field.component';\nimport { FORGE_MAPBOX_ZOOM_FIELD_TYPE } from './field/zoom/zoom.forge.field';\nimport { mapboxZoomFieldMapper } from './field/zoom/zoom.forge.field.component';\n\n/**\n * Forge mapbox lat/lng field type definition.\n */\nconst DbxForgeMapboxLatLngFieldType: FieldTypeDefinition = {\n name: FORGE_MAPBOX_LATLNG_FIELD_TYPE,\n loadComponent: () => import('./field/latlng/latlng.forge.field.component').then((m) => m.DbxForgeMapboxLatLngFieldComponent),\n mapper: mapboxLatLngFieldMapper\n};\n\n/**\n * Forge mapbox zoom field type definition.\n */\nconst DbxForgeMapboxZoomFieldType: FieldTypeDefinition = {\n name: FORGE_MAPBOX_ZOOM_FIELD_TYPE,\n loadComponent: () => import('./field/zoom/zoom.forge.field.component').then((m) => m.DbxForgeMapboxZoomFieldComponent),\n mapper: mapboxZoomFieldMapper\n};\n\n/**\n * All custom dbx-form/mapbox forge field type definitions.\n */\nexport const DBX_FORGE_MAPBOX_FIELD_TYPES: FieldTypeDefinition[] = [DbxForgeMapboxLatLngFieldType, DbxForgeMapboxZoomFieldType];\n\n/**\n * Registers ng-forge dynamic form field declarations for the mapbox package.\n *\n * Add this to your app's providers alongside provideDbxForgeFormFieldDeclarations().\n *\n * @returns An array of providers that register the mapbox forge field types with ng-forge\n */\nexport function provideDbxForgeMapboxFieldDeclarations() {\n return provideDynamicForm(...DBX_FORGE_MAPBOX_FIELD_TYPES);\n}\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/latlng/latlng.forge.field.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.forge.field.marker.component.ts","../../../../packages/dbx-form/mapbox/src/lib/field/latlng/latlng.forge.field.component.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/field/zoom/zoom.forge.field.ts","../../../../packages/dbx-form/mapbox/src/lib/field/zoom/zoom.forge.field.component.ts","../../../../packages/dbx-form/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-form/mapbox/src/lib/forge.providers.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 LabeledBaseFieldConfig, 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\n/**\n * @deprecated Use DbxForgeMapboxLatLngFieldConfig instead.\n */\nexport interface MapboxLatLngFieldConfig extends Omit<LabeledBaseFieldConfig, 'key'>, DescriptionFieldConfig, Partial<FieldConfig>, Pick<DbxFormMapboxLatLngComponentFieldProps, 'showMap' | 'zoom' | 'latLngConfig' | 'recenterTime' | 'setCenterOnLocationSet' | 'showCenterButton' | 'selectLocationOnMapDrag' | 'selectLocationOnMapClick' | 'markerConfig'> {}\n\n/**\n * Creates a Formly field configuration for a Mapbox-powered latitude/longitude picker with optional map display.\n *\n * @deprecated Use dbxForgeMapboxLatLngField() from the forge API instead.\n * @param config - Optional field configuration overrides\n * @returns A validated Formly field configuration for the Mapbox lat/lng picker\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 return markerConfig !== false ? { latLng, ...markerConfig } : undefined;\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/**\n * @deprecated Use DbxForgeMapboxLatLngFieldComponent instead.\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/**\n * @deprecated Use provideDbxForgeMapboxFieldDeclarations() instead.\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 { BaseValueField } from '@ng-forge/dynamic-forms';\nimport { filterFromPOJO, LAT_LNG_PATTERN, type LatLngPointFunctionConfig } from '@dereekb/util';\nimport { DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER } from '@dereekb/dbx-form';\nimport type { DbxForgeMapboxLatLngFieldComponentProps } from './latlng.forge.field.component';\n\n/**\n * The custom forge field type name for the mapbox lat/lng field.\n */\nexport const FORGE_MAPBOX_LATLNG_FIELD_TYPE = 'dbx-forge-mapbox-latlng' as const;\n\n/**\n * Field definition type for a forge mapbox lat/lng picker field.\n */\nexport type DbxForgeMapboxLatLngFieldDef = BaseValueField<DbxForgeMapboxLatLngFieldComponentProps, unknown> & {\n readonly type: typeof FORGE_MAPBOX_LATLNG_FIELD_TYPE;\n};\n\n/**\n * Configuration for a forge mapbox lat/lng picker field.\n */\nexport interface DbxForgeMapboxLatLngFieldConfig {\n readonly key?: string;\n readonly label?: string;\n readonly description?: string;\n readonly required?: boolean;\n readonly readonly?: boolean;\n readonly showMap?: boolean;\n readonly showCenterButton?: boolean;\n readonly setCenterOnLocationSet?: boolean;\n readonly selectLocationOnMapDrag?: boolean;\n readonly selectLocationOnMapClick?: boolean;\n readonly zoom?: number;\n readonly recenterTime?: number;\n readonly latLngConfig?: LatLngPointFunctionConfig;\n readonly markerConfig?: DbxForgeMapboxLatLngFieldComponentProps['markerConfig'];\n}\n\n/**\n * Creates a forge field definition for a Mapbox-powered latitude/longitude picker.\n *\n * This is the forge equivalent of {@link mapboxLatLngField}.\n *\n * @param config - Optional field configuration overrides\n * @returns A validated forge field definition for the Mapbox lat/lng picker\n */\nexport function dbxForgeMapboxLatLngField(config: DbxForgeMapboxLatLngFieldConfig = {}): DbxForgeMapboxLatLngFieldDef {\n const { key = 'latLng', label, description, required, readonly: isReadonly, showMap, zoom, latLngConfig, recenterTime, showCenterButton, setCenterOnLocationSet, selectLocationOnMapDrag, selectLocationOnMapClick, markerConfig } = config;\n\n const props: DbxForgeMapboxLatLngFieldComponentProps = filterFromPOJO({\n label: label ?? 'Location',\n description,\n placeholder: DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER,\n pattern: LAT_LNG_PATTERN,\n patternMessage: DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE,\n showMap,\n zoom,\n latLngConfig,\n recenterTime,\n selectLocationOnMapDrag,\n selectLocationOnMapClick,\n showCenterButton,\n setCenterOnLocationSet,\n markerConfig\n });\n\n return filterFromPOJO({\n key,\n type: FORGE_MAPBOX_LATLNG_FIELD_TYPE,\n label: label ?? 'Location',\n value: undefined as unknown,\n required,\n readonly: isReadonly,\n props: Object.keys(props).length > 0 ? props : undefined\n }) as DbxForgeMapboxLatLngFieldDef;\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 { DbxForgeMapboxLatLngFieldComponent } from './latlng.forge.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 DbxForgeMapboxLatLngFieldMarkerComponent {\n readonly fieldComponent = inject(DbxForgeMapboxLatLngFieldComponent);\n\n readonly marker$: Observable<Maybe<DbxMapboxMarker>> = combineLatest([this.fieldComponent.latLng$, this.fieldComponent.markerConfig$]).pipe(\n map(([latLng, markerConfig]) => {\n return markerConfig !== false ? { latLng, ...markerConfig } : undefined;\n }),\n shareReplay(1)\n );\n\n readonly markerSignal = toSignal(this.marker$);\n}\n","import { CompactContextStore, mapCompactModeObs } from '@dereekb/dbx-web';\nimport { ChangeDetectionStrategy, Component, type OnDestroy, computed, effect, ElementRef, inject, input, type InputSignal, type Signal } from '@angular/core';\nimport { skip, first, BehaviorSubject, filter, shareReplay, 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 { DbxForgeMapboxLatLngFieldMarkerComponent } from './latlng.forge.field.marker.component';\nimport { toObservable, 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';\nimport type { FieldTree } from '@angular/forms/signals';\nimport { type DynamicText, type FieldMeta, type ValidationMessages, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES } from '@ng-forge/dynamic-forms';\nimport { resolveValueFieldContext, buildValueFieldInputs, setupMetaTracking } from '@ng-forge/dynamic-forms/integration';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nexport const DEFAULT_DBX_FORGE_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY = 'DbxForgeMapboxLatLngFieldComponent';\n\nexport const DEFAULT_DBX_FORGE_MAPBOX_LAT_LNG_MARKER_CONFIG: DbxMapboxMarkerDisplayConfig = {\n icon: 'pin_drop'\n};\n\n/**\n * Custom props for the forge mapbox lat/lng field.\n */\nexport interface DbxForgeMapboxLatLngFieldComponentProps {\n readonly label?: string;\n readonly description?: string;\n readonly placeholder?: string;\n readonly pattern?: RegExp;\n readonly patternMessage?: string;\n readonly showMap?: boolean;\n readonly showCenterButton?: boolean;\n readonly setCenterOnLocationSet?: boolean;\n readonly selectLocationOnMapDrag?: boolean;\n readonly selectLocationOnMapClick?: boolean;\n readonly zoom?: MapboxZoomLevel;\n readonly recenterTime?: Milliseconds;\n readonly latLngConfig?: LatLngPointFunctionConfig;\n readonly mapInjectionKey?: Maybe<string | false>;\n readonly markerConfig?: false | ObservableFactoryWithRequiredInput<DbxMapboxMarkerDisplayConfig | false, DbxForgeMapboxLatLngFieldComponent>;\n}\n\n/**\n * Forge custom field component for Mapbox latitude/longitude picking.\n *\n * This is the forge equivalent of {@link DbxFormMapboxLatLngFieldComponent}.\n * It bridges ng-forge Signal Forms with the Mapbox map store.\n *\n * Registered as ng-forge type 'dbx-forge-mapbox-latlng'.\n */\n@Component({\n selector: 'dbx-forge-mapbox-latlng-field',\n template: `\n <div class=\"dbx-mapbox-input-field\" [ngClass]=\"compactClassSignal()\">\n @if (showMapSignal()) {\n <div class=\"dbx-mapbox-input-field-map\">\n <mgl-map dbxMapboxMap>\n <mgl-marker [lngLat]=\"latLngSignal()\" [draggable]=\"!isReadonlyOrDisabledSignal()\" (markerDragEnd)=\"onMarkerDragEnd($event)\"></mgl-marker>\n </mgl-map>\n </div>\n }\n <div class=\"dbx-mapbox-input-field-input\">\n @if (showCenterButtonSignal()) {\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]=\"placeholderTextSignal() ?? ''\" [formControl]=\"textCtrl\" />\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 DbxForgeMapboxLatLngFieldComponent implements 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 private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // Standard ng-forge value field inputs\n readonly field: InputSignal<FieldTree<unknown>> = input.required<FieldTree<unknown>>();\n readonly key: InputSignal<string> = input.required<string>();\n readonly label: InputSignal<DynamicText | undefined> = input<DynamicText | undefined>();\n readonly placeholder: InputSignal<DynamicText | undefined> = input<DynamicText | undefined>();\n readonly className: InputSignal<string> = input('');\n readonly tabIndex: InputSignal<number | undefined> = input<number | undefined>();\n readonly props: InputSignal<DbxForgeMapboxLatLngFieldComponentProps | undefined> = input<DbxForgeMapboxLatLngFieldComponentProps | undefined>();\n readonly meta: InputSignal<FieldMeta | undefined> = input<FieldMeta | undefined>();\n readonly validationMessages: InputSignal<ValidationMessages | undefined> = input<ValidationMessages | undefined>();\n readonly defaultValidationMessages: InputSignal<ValidationMessages | undefined> = input<ValidationMessages | undefined>();\n\n // Internal text form control for the coordinate input\n readonly textCtrl = new FormControl<string>('');\n\n // Subscription management\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_FORGE_MAPBOX_LAT_LNG_MARKER_CONFIG));\n\n // Reactive lat/lng conversion functions derived from props so latLng$ recomputes when props arrive.\n readonly latLngPointConfigSignal = computed<LatLngPointFunctionConfig>(() => {\n const p = this.props();\n return { ...p?.latLngConfig, wrap: p?.latLngConfig?.wrap || false, validate: p?.latLngConfig?.validate || false, precisionRounding: p?.latLngConfig?.precisionRounding ?? 'round' };\n });\n readonly latLngPointFunctionSignal = computed<LatLngPointFunction>(() => latLngPointFunction(this.latLngPointConfigSignal()));\n readonly latLngStringFunctionSignal = computed<LatLngStringFunction>(() => latLngStringFunction(this.latLngPointConfigSignal()));\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 // Field value signal (double-call pattern)\n readonly fieldValue = computed(() => {\n const state = this.field()?.() as any;\n return state?.value?.() as unknown;\n });\n\n readonly isDisabled = computed(() => {\n const state = this.field()?.() as any;\n return (state?.disabled?.() as boolean) ?? false;\n });\n\n readonly isReadonlyOrDisabledSignal = computed(() => (this.props() as any)?.readonly || this.isDisabled());\n\n // Computed props from field definition\n readonly showMapSignal = computed(() => this.props()?.showMap ?? true);\n readonly selectLocationOnMapDragSignal = computed(() => this.props()?.selectLocationOnMapDrag ?? true);\n readonly selectLocationOnMapClickSignal = computed(() => this.props()?.selectLocationOnMapClick ?? false);\n readonly setCenterOnLocationSetSignal = computed(() => this.props()?.setCenterOnLocationSet ?? true);\n readonly showCenterButtonSignal = computed(() => !this.selectLocationOnMapDragSignal() && this.props()?.showCenterButton !== false);\n readonly recenterTimeSignal = computed(() => this.props()?.recenterTime || 10 * 1000);\n readonly placeholderTextSignal = computed(() => this.props()?.placeholder);\n\n // Observables for map store sync\n readonly latLngValueSignal = computed<LatLngPoint>(() => {\n const value = this.fieldValue();\n const fn = this.latLngPointFunctionSignal();\n return value != null ? fn(value as string) : defaultLatLngPoint();\n });\n\n readonly latLng$: Observable<LatLngPoint> = toObservable(this.latLngValueSignal).pipe(distinctUntilChanged<LatLngPoint>(isSameLatLngPoint), shareReplay(1));\n\n readonly nonZeroLatLng$: Observable<LatLngPoint> = this.latLng$.pipe(skipWhile<LatLngPoint>(isDefaultLatLngPoint), filter(isValidLatLngPoint));\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 = this.latLngValueSignal;\n\n private _syncing = false;\n\n private _setFieldValue(value: unknown): void {\n const state = this.field()?.() as any;\n if (state?.value?.set) {\n state.value.set(value);\n state.markAsTouched?.();\n state.markAsDirty?.();\n }\n }\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta as any, { selector: 'input' });\n\n // Initialize on first props emission\n effect(() => {\n const p = this.props();\n if (!p) {\n return;\n }\n\n const zoom = Math.min(p.zoom || 12, 18) as MapboxZoomLevel;\n this._zoom.next(zoom);\n\n if (p.setCenterOnLocationSet !== false) {\n this._centerSub.subscription = this.dbxMapboxMapStore.setCenter(this.nonZeroLatLng$);\n }\n\n if (p.showMap ?? true) {\n this.dbxMapboxMapStore.setZoom(this.zoom$);\n\n const recenterTime = p.recenterTime || 10 * 1000;\n if (recenterTime > 0) {\n this._flyToCenterSub.subscription = this.dbxMapboxMapStore.center$.pipe(skip(1), throttleTime(recenterTime, undefined, { leading: false, trailing: true })).subscribe(() => {\n this.flyToMarker();\n });\n }\n } else {\n if (p.selectLocationOnMapDrag ?? true) {\n this._sub.subscription = this.dbxMapboxMapStore.center$.subscribe((center) => {\n this.dbxMapboxMapStore.centerGivenMargin$.pipe(first()).subscribe(() => {\n if (!this.isReadonlyOrDisabledSignal()) {\n this.setValue(center);\n }\n });\n });\n }\n\n if (p.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 ((p as any).readonly) {\n this.textCtrl.disable();\n }\n\n // Add the marker to the injection store for display\n if (this.dbxMapboxInjectionStore) {\n if (p.markerConfig != null) {\n this._markerConfig.next(p.markerConfig === false ? of(false) : asObservableFromGetter(p.markerConfig, this));\n }\n\n this.dbxMapboxInjectionStore.addInjectionConfig({\n key: p.mapInjectionKey || DEFAULT_DBX_FORGE_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY,\n injectionConfig: {\n componentClass: DbxForgeMapboxLatLngFieldMarkerComponent,\n providers: [{ provide: DbxForgeMapboxLatLngFieldComponent, useValue: this }]\n }\n });\n }\n });\n\n // Sync field value → text control (inbound)\n effect(() => {\n const value = this.fieldValue();\n\n if (!this._syncing) {\n this._syncing = true;\n this.textCtrl.setValue((value as string) ?? '', { emitEvent: false });\n this._syncing = false;\n }\n });\n\n // Sync text control → field value (outbound)\n this.textCtrl.valueChanges.subscribe((textValue) => {\n if (!this._syncing) {\n this._syncing = true;\n this._setFieldValue(textValue || null);\n this._syncing = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this._zoom.complete();\n this._markerConfig.complete();\n this._useCurrentLocationDisabled.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 const stringValue = latLng ? this.latLngStringFunctionSignal()(latLng) : null;\n this._syncing = true;\n this.textCtrl.setValue(stringValue as string, { emitEvent: false });\n this._setFieldValue(stringValue);\n this._syncing = false;\n }\n}\n\n/**\n * Custom mapper for the forge mapbox lat/lng field.\n *\n * @param fieldDef - Field definition configuration\n * @param fieldDef.key - Form model key for the field\n * @returns Signal containing a Record of input names to values for ngComponentOutlet\n */\nexport function mapboxLatLngFieldMapper(fieldDef: { key: string }): Signal<Record<string, unknown>> {\n const ctx = resolveValueFieldContext();\n const defaultProps = inject(DEFAULT_PROPS);\n const defaultValidationMessages = inject(DEFAULT_VALIDATION_MESSAGES);\n\n return computed(() => {\n return buildValueFieldInputs(fieldDef as any, ctx, defaultProps?.(), defaultValidationMessages?.());\n });\n}\n","import { type DescriptionFieldConfig, type FieldConfig, formlyField, type LabeledBaseFieldConfig, propsAndConfigForFieldConfig } from '@dereekb/dbx-form';\nimport { type FormlyFieldConfig } from '@ngx-formly/core';\nimport { type DbxFormMapboxZoomComponentFieldProps } from './zoom.field.component';\n\n/**\n * @deprecated Use DbxForgeMapboxZoomFieldConfig instead.\n */\nexport interface MapboxZoomFieldConfig extends Omit<LabeledBaseFieldConfig, 'key'>, DescriptionFieldConfig, Partial<FieldConfig>, Pick<DbxFormMapboxZoomComponentFieldProps, 'showMap' | 'center' | 'minZoom' | 'maxZoom' | 'zoomStep'> {}\n\n/**\n * Creates a Formly field configuration for a Mapbox-powered zoom level picker with optional map preview.\n *\n * @deprecated Use dbxForgeMapboxZoomField() from the forge API instead.\n * @param config - Optional field configuration overrides\n * @returns A validated Formly field configuration for the Mapbox zoom picker\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/**\n * @deprecated Use DbxForgeMapboxZoomFieldComponent instead.\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/**\n * @deprecated Use provideDbxForgeMapboxFieldDeclarations() instead.\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 type { BaseValueField } from '@ng-forge/dynamic-forms';\nimport { filterFromPOJO, type LatLngPoint } from '@dereekb/util';\nimport type { DbxForgeMapboxZoomFieldComponentProps } from './zoom.forge.field.component';\nimport type { MapboxZoomLevel } from '@dereekb/dbx-web/mapbox';\n\n/**\n * The custom forge field type name for the mapbox zoom field.\n */\nexport const FORGE_MAPBOX_ZOOM_FIELD_TYPE = 'dbx-forge-mapbox-zoom' as const;\n\n/**\n * Field definition type for a forge mapbox zoom picker field.\n */\nexport type DbxForgeMapboxZoomFieldDef = BaseValueField<DbxForgeMapboxZoomFieldComponentProps, unknown> & {\n readonly type: typeof FORGE_MAPBOX_ZOOM_FIELD_TYPE;\n};\n\n/**\n * Configuration for a forge mapbox zoom picker field.\n */\nexport interface DbxForgeMapboxZoomFieldConfig {\n readonly key?: string;\n readonly label?: string;\n readonly description?: string;\n readonly required?: boolean;\n readonly readonly?: boolean;\n readonly showMap?: boolean;\n readonly center?: LatLngPoint;\n readonly minZoom?: MapboxZoomLevel;\n readonly maxZoom?: MapboxZoomLevel;\n readonly zoomStep?: number;\n}\n\n/**\n * Creates a forge field definition for a Mapbox-powered zoom level picker.\n *\n * This is the forge equivalent of {@link mapboxZoomField}.\n *\n * @param config - Optional field configuration overrides\n * @returns A validated forge field definition for the Mapbox zoom picker\n */\nexport function dbxForgeMapboxZoomField(config: DbxForgeMapboxZoomFieldConfig = {}): DbxForgeMapboxZoomFieldDef {\n const { key = 'zoom', label, description, required, readonly: isReadonly, showMap, center, minZoom, maxZoom, zoomStep } = config;\n\n const props: DbxForgeMapboxZoomFieldComponentProps = filterFromPOJO({\n label: label ?? 'Zoom',\n description,\n showMap,\n center,\n minZoom,\n maxZoom,\n zoomStep\n });\n\n return filterFromPOJO({\n key,\n type: FORGE_MAPBOX_ZOOM_FIELD_TYPE,\n label: label ?? 'Zoom',\n value: undefined as unknown,\n required,\n readonly: isReadonly,\n props: Object.keys(props).length > 0 ? props : undefined\n }) as DbxForgeMapboxZoomFieldDef;\n}\n","import { CompactContextStore, mapCompactModeObs } from '@dereekb/dbx-web';\nimport { ChangeDetectionStrategy, Component, type OnDestroy, computed, effect, ElementRef, inject, input, type InputSignal, type Signal } from '@angular/core';\nimport { BehaviorSubject, shareReplay, 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 { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport type { FieldTree } from '@angular/forms/signals';\nimport { type DynamicText, type FieldMeta, type ValidationMessages, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES } from '@ng-forge/dynamic-forms';\nimport { resolveValueFieldContext, buildValueFieldInputs, setupMetaTracking } from '@ng-forge/dynamic-forms/integration';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\n/**\n * Custom props for the forge mapbox zoom field.\n */\nexport interface DbxForgeMapboxZoomFieldComponentProps {\n readonly label?: string;\n readonly description?: string;\n readonly showMap?: boolean;\n readonly center?: LatLngPoint;\n readonly lockMapToZoomLevels?: boolean;\n readonly minZoom?: MapboxZoomLevel;\n readonly maxZoom?: MapboxZoomLevel;\n readonly zoomStep?: number;\n}\n\n/**\n * Forge custom field component for Mapbox zoom level picking.\n *\n * This is the forge equivalent of {@link DbxFormMapboxZoomFieldComponent}.\n * It bridges ng-forge Signal Forms with the Mapbox map store.\n *\n * Registered as ng-forge type 'dbx-forge-mapbox-zoom'.\n */\n@Component({\n selector: 'dbx-forge-mapbox-zoom-field',\n template: `\n <div class=\"dbx-mapbox-input-field\" [ngClass]=\"compactClassSignal()\">\n @if (showMapSignal()) {\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]=\"minZoomSignal()\" [max]=\"maxZoomSignal()\" [step]=\"zoomStepSignal()\" [placeholder]=\"placeholderText\" [formControl]=\"numberCtrl\" />\n </mat-form-field>\n </div>\n </div>\n `,\n providers: [provideMapboxStoreIfParentIsUnavailable()],\n styleUrls: ['../mapbox.field.component.scss'],\n imports: [NgClass, DbxMapboxModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxForgeMapboxZoomFieldComponent implements OnDestroy {\n readonly compact = inject(CompactContextStore, { optional: true });\n readonly dbxMapboxService = inject(DbxMapboxService);\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // Standard ng-forge value field inputs\n readonly field: InputSignal<FieldTree<unknown>> = input.required<FieldTree<unknown>>();\n readonly key: InputSignal<string> = input.required<string>();\n readonly label: InputSignal<DynamicText | undefined> = input<DynamicText | undefined>();\n readonly placeholder: InputSignal<DynamicText | undefined> = input<DynamicText | undefined>();\n readonly className: InputSignal<string> = input('');\n readonly tabIndex: InputSignal<number | undefined> = input<number | undefined>();\n readonly props: InputSignal<DbxForgeMapboxZoomFieldComponentProps | undefined> = input<DbxForgeMapboxZoomFieldComponentProps | undefined>();\n readonly meta: InputSignal<FieldMeta | undefined> = input<FieldMeta | undefined>();\n readonly validationMessages: InputSignal<ValidationMessages | undefined> = input<ValidationMessages | undefined>();\n readonly defaultValidationMessages: InputSignal<ValidationMessages | undefined> = input<ValidationMessages | undefined>();\n\n // Internal number form control for the zoom input\n readonly numberCtrl = new FormControl<number | null>(null);\n readonly placeholderText = '';\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 // Subscription management\n private readonly _sub = new SubscriptionObject();\n private readonly _center = new BehaviorSubject<Maybe<LatLngPoint>>(undefined);\n\n // Field value signal (double-call pattern)\n readonly fieldValue = computed(() => {\n const state = this.field()?.() as any;\n return state?.value?.() as unknown;\n });\n\n readonly isDisabled = computed(() => {\n const state = this.field()?.() as any;\n return (state?.disabled?.() as boolean) ?? false;\n });\n\n readonly isReadonlyOrDisabledSignal = computed(() => (this.props() as any)?.readonly || this.isDisabled());\n\n // Computed props\n readonly showMapSignal = computed(() => this.props()?.showMap ?? true);\n readonly lockMapToZoomLevelsSignal = computed(() => this.props()?.lockMapToZoomLevels ?? false);\n readonly minZoomSignal = computed(() => mapboxZoomLevel(this.props()?.minZoom || MAPBOX_MIN_ZOOM_LEVEL));\n readonly maxZoomSignal = computed(() => mapboxZoomLevel(this.props()?.maxZoom || MAPBOX_MAX_ZOOM_LEVEL));\n readonly zoomStepSignal = computed(() => mapboxZoomLevel(this.props()?.zoomStep || 1));\n\n readonly fieldValue$ = toObservable(this.fieldValue);\n readonly zoom$ = this.fieldValue$.pipe(filterMaybe(), shareReplay(1)) as unknown as Observable<MapboxZoomLevel>;\n readonly center$ = this._center.pipe(filterMaybe());\n\n private _syncing = false;\n\n private _setFieldValue(value: unknown): void {\n const state = this.field()?.() as any;\n if (state?.value?.set) {\n state.value.set(value);\n state.markAsTouched?.();\n state.markAsDirty?.();\n }\n }\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta as any, { selector: 'input' });\n\n // Initialize on first props emission\n effect(() => {\n const p = this.props();\n if (!p) {\n return;\n }\n\n const center = p.center || latLngPoint(this.dbxMapboxService.defaultCenter);\n this._center.next(center);\n\n this.dbxMapboxMapStore.setZoom(this.zoom$);\n\n if (p.showMap ?? true) {\n this.dbxMapboxMapStore.setCenter(this.center$);\n }\n\n if ((p as any)?.readonly) {\n this.numberCtrl.disable();\n\n if (p.showMap ?? true) {\n this.dbxMapboxMapStore.setZoomDisabled();\n }\n } else if (p.lockMapToZoomLevels) {\n const min = mapboxZoomLevel(p.minZoom || MAPBOX_MIN_ZOOM_LEVEL);\n const max = mapboxZoomLevel(p.maxZoom || MAPBOX_MAX_ZOOM_LEVEL);\n this.dbxMapboxMapStore.setZoomRange({ min, max });\n this._undoZoomLimit = !(p.showMap ?? true);\n }\n\n this._sub.subscription = this.dbxMapboxMapStore.zoom$.subscribe((zoom) => {\n if (!this.isReadonlyOrDisabledSignal()) {\n this.setZoomValue(zoom);\n }\n });\n });\n\n // Sync field value → number control (inbound)\n effect(() => {\n const value = this.fieldValue();\n\n if (!this._syncing) {\n this._syncing = true;\n this.numberCtrl.setValue((value as number) ?? null, { emitEvent: false });\n this._syncing = false;\n }\n });\n\n // Sync number control → field value (outbound)\n this.numberCtrl.valueChanges.subscribe((numValue) => {\n if (!this._syncing) {\n this._syncing = true;\n this._setFieldValue(numValue ?? null);\n this._syncing = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this._center.complete();\n this._sub.destroy();\n\n if (!this._undoZoomLimit) {\n this.dbxMapboxMapStore.setZoomRange({});\n }\n }\n\n setZoomValue(zoom?: Maybe<ZoomLevel>) {\n this._syncing = true;\n this.numberCtrl.setValue((zoom as number) ?? null, { emitEvent: false });\n this._setFieldValue(zoom ?? null);\n this._syncing = false;\n }\n}\n\n/**\n * Custom mapper for the forge mapbox zoom field.\n *\n * @param fieldDef - Field definition configuration\n * @param fieldDef.key - Form model key for the field\n * @returns Signal containing a Record of input names to values for ngComponentOutlet\n */\nexport function mapboxZoomFieldMapper(fieldDef: { key: string }): Signal<Record<string, unknown>> {\n const ctx = resolveValueFieldContext();\n const defaultProps = inject(DEFAULT_PROPS);\n const defaultValidationMessages = inject(DEFAULT_VALIDATION_MESSAGES);\n\n return computed(() => {\n return buildValueFieldInputs(fieldDef as any, ctx, defaultProps?.(), defaultValidationMessages?.());\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFormMapboxZoomModule } from './field';\nimport { DbxFormMapboxLatLngModule } from './field/latlng/latlng.module';\n\n/**\n * @deprecated Use provideDbxForgeMapboxFieldDeclarations() instead.\n */\n@NgModule({\n exports: [DbxFormMapboxLatLngModule, DbxFormMapboxZoomModule]\n})\nexport class DbxFormMapboxModule {}\n","import { type FieldTypeDefinition, provideDynamicForm } from '@ng-forge/dynamic-forms';\nimport { FORGE_MAPBOX_LATLNG_FIELD_TYPE } from './field/latlng/latlng.forge.field';\nimport { mapboxLatLngFieldMapper } from './field/latlng/latlng.forge.field.component';\nimport { FORGE_MAPBOX_ZOOM_FIELD_TYPE } from './field/zoom/zoom.forge.field';\nimport { mapboxZoomFieldMapper } from './field/zoom/zoom.forge.field.component';\n\n/**\n * Forge mapbox lat/lng field type definition.\n */\nconst DbxForgeMapboxLatLngFieldType: FieldTypeDefinition = {\n name: FORGE_MAPBOX_LATLNG_FIELD_TYPE,\n loadComponent: () => import('./field/latlng/latlng.forge.field.component').then((m) => m.DbxForgeMapboxLatLngFieldComponent),\n mapper: mapboxLatLngFieldMapper\n};\n\n/**\n * Forge mapbox zoom field type definition.\n */\nconst DbxForgeMapboxZoomFieldType: FieldTypeDefinition = {\n name: FORGE_MAPBOX_ZOOM_FIELD_TYPE,\n loadComponent: () => import('./field/zoom/zoom.forge.field.component').then((m) => m.DbxForgeMapboxZoomFieldComponent),\n mapper: mapboxZoomFieldMapper\n};\n\n/**\n * All custom dbx-form/mapbox forge field type definitions.\n */\nexport const DBX_FORGE_MAPBOX_FIELD_TYPES: FieldTypeDefinition[] = [DbxForgeMapboxLatLngFieldType, DbxForgeMapboxZoomFieldType];\n\n/**\n * Registers ng-forge dynamic form field declarations for the mapbox package.\n *\n * Add this to your app's providers alongside provideDbxForgeFormFieldDeclarations().\n *\n * @returns An array of providers that register the mapbox forge field types with ng-forge\n */\nexport function provideDbxForgeMapboxFieldDeclarations() {\n return provideDynamicForm(...DBX_FORGE_MAPBOX_FIELD_TYPES);\n}\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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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { viewChild, ViewContainerRef, input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { DbxSectionComponent, DbxSubSectionComponent } from '@dereekb/dbx-web';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Forge wrapper component that renders child fields inside a
|
|
7
|
+
* `<dbx-section>` or `<dbx-subsection>`.
|
|
8
|
+
*
|
|
9
|
+
* Implements {@link FieldWrapperContract} and receives configuration
|
|
10
|
+
* via component inputs.
|
|
11
|
+
*/
|
|
12
|
+
class DbxForgeSectionWrapperComponent {
|
|
13
|
+
fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
|
|
14
|
+
headerConfig = input(...(ngDevMode ? [undefined, { debugName: "headerConfig" }] : /* istanbul ignore next */ []));
|
|
15
|
+
elevate = input(...(ngDevMode ? [undefined, { debugName: "elevate" }] : /* istanbul ignore next */ []));
|
|
16
|
+
subsection = input(...(ngDevMode ? [undefined, { debugName: "subsection" }] : /* istanbul ignore next */ []));
|
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxForgeSectionWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: DbxForgeSectionWrapperComponent, isStandalone: true, selector: "dbx-forge-section-wrapper", inputs: { headerConfig: { classPropertyName: "headerConfig", publicName: "headerConfig", isSignal: true, isRequired: false, transformFunction: null }, elevate: { classPropertyName: "elevate", publicName: "elevate", isSignal: true, isRequired: false, transformFunction: null }, subsection: { classPropertyName: "subsection", publicName: "subsection", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
|
|
19
|
+
@if (subsection()) {
|
|
20
|
+
<dbx-subsection [headerConfig]="headerConfig()">
|
|
21
|
+
<ng-container #fieldComponent></ng-container>
|
|
22
|
+
</dbx-subsection>
|
|
23
|
+
} @else {
|
|
24
|
+
<dbx-section [headerConfig]="headerConfig()" [elevate]="elevate() ?? false">
|
|
25
|
+
<ng-container #fieldComponent></ng-container>
|
|
26
|
+
</dbx-section>
|
|
27
|
+
}
|
|
28
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxSectionComponent, selector: "dbx-section", inputs: ["elevate"] }, { kind: "component", type: DbxSubSectionComponent, selector: "dbx-subsection" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxForgeSectionWrapperComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: 'dbx-forge-section-wrapper',
|
|
34
|
+
template: `
|
|
35
|
+
@if (subsection()) {
|
|
36
|
+
<dbx-subsection [headerConfig]="headerConfig()">
|
|
37
|
+
<ng-container #fieldComponent></ng-container>
|
|
38
|
+
</dbx-subsection>
|
|
39
|
+
} @else {
|
|
40
|
+
<dbx-section [headerConfig]="headerConfig()" [elevate]="elevate() ?? false">
|
|
41
|
+
<ng-container #fieldComponent></ng-container>
|
|
42
|
+
</dbx-section>
|
|
43
|
+
}
|
|
44
|
+
`,
|
|
45
|
+
imports: [DbxSectionComponent, DbxSubSectionComponent],
|
|
46
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
47
|
+
standalone: true
|
|
48
|
+
}]
|
|
49
|
+
}], propDecorators: { fieldComponent: [{ type: i0.ViewChild, args: ['fieldComponent', { ...{ read: ViewContainerRef }, isSignal: true }] }], headerConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerConfig", required: false }] }], elevate: [{ type: i0.Input, args: [{ isSignal: true, alias: "elevate", required: false }] }], subsection: [{ type: i0.Input, args: [{ isSignal: true, alias: "subsection", required: false }] }] } });
|
|
50
|
+
|
|
51
|
+
export { DbxForgeSectionWrapperComponent };
|
|
52
|
+
//# sourceMappingURL=dereekb-dbx-form-section.wrapper.component-vq21oG6v.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dereekb-dbx-form-section.wrapper.component-vq21oG6v.mjs","sources":["../../../../packages/dbx-form/src/lib/forge/field/wrapper/section/section.wrapper.component.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, viewChild, ViewContainerRef } from '@angular/core';\nimport { DbxSectionComponent, DbxSubSectionComponent, type DbxSectionHeaderConfig } from '@dereekb/dbx-web';\nimport { type FieldWrapperContract } from '@ng-forge/dynamic-forms';\n\n/**\n * Forge wrapper component that renders child fields inside a\n * `<dbx-section>` or `<dbx-subsection>`.\n *\n * Implements {@link FieldWrapperContract} and receives configuration\n * via component inputs.\n */\n@Component({\n selector: 'dbx-forge-section-wrapper',\n template: `\n @if (subsection()) {\n <dbx-subsection [headerConfig]=\"headerConfig()\">\n <ng-container #fieldComponent></ng-container>\n </dbx-subsection>\n } @else {\n <dbx-section [headerConfig]=\"headerConfig()\" [elevate]=\"elevate() ?? false\">\n <ng-container #fieldComponent></ng-container>\n </dbx-section>\n }\n `,\n imports: [DbxSectionComponent, DbxSubSectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxForgeSectionWrapperComponent implements FieldWrapperContract {\n readonly fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });\n\n readonly headerConfig = input<DbxSectionHeaderConfig>();\n readonly elevate = input<boolean>();\n readonly subsection = input<boolean>();\n}\n"],"names":[],"mappings":"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"}
|