@dereekb/dbx-form 13.11.14 → 13.11.15

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.
@@ -15,9 +15,9 @@ class DbxForgeInfoWrapperComponent {
15
15
  fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
16
16
  onInfoClick = input(...(ngDevMode ? [undefined, { debugName: "onInfoClick" }] : /* istanbul ignore next */ []));
17
17
  ariaLabel = input(...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
18
- ariaLabelValue = computed(() => {
18
+ ariaLabelValueSignal = computed(() => {
19
19
  return this.ariaLabel() ?? 'More information';
20
- }, ...(ngDevMode ? [{ debugName: "ariaLabelValue" }] : /* istanbul ignore next */ []));
20
+ }, ...(ngDevMode ? [{ debugName: "ariaLabelValueSignal" }] : /* istanbul ignore next */ []));
21
21
  onClick() {
22
22
  this.onInfoClick()?.();
23
23
  }
@@ -28,7 +28,7 @@ class DbxForgeInfoWrapperComponent {
28
28
  <ng-container #fieldComponent></ng-container>
29
29
  </div>
30
30
  <div class="dbx-form-info-wrapper-info dbx-flex-noshrink dbx-flex-column dbx-flex-center">
31
- <button mat-icon-button type="button" (click)="onClick()" [attr.aria-label]="ariaLabelValue()">
31
+ <button mat-icon-button type="button" (click)="onClick()" [attr.aria-label]="ariaLabelValueSignal()">
32
32
  <mat-icon>info</mat-icon>
33
33
  </button>
34
34
  </div>
@@ -45,7 +45,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
45
45
  <ng-container #fieldComponent></ng-container>
46
46
  </div>
47
47
  <div class="dbx-form-info-wrapper-info dbx-flex-noshrink dbx-flex-column dbx-flex-center">
48
- <button mat-icon-button type="button" (click)="onClick()" [attr.aria-label]="ariaLabelValue()">
48
+ <button mat-icon-button type="button" (click)="onClick()" [attr.aria-label]="ariaLabelValueSignal()">
49
49
  <mat-icon>info</mat-icon>
50
50
  </button>
51
51
  </div>
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
58
58
  }], propDecorators: { fieldComponent: [{ type: i0.ViewChild, args: ['fieldComponent', { ...{ read: ViewContainerRef }, isSignal: true }] }], onInfoClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "onInfoClick", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
59
59
 
60
60
  export { DbxForgeInfoWrapperComponent };
61
- //# sourceMappingURL=dereekb-dbx-form-info.wrapper.component-DxmZz3Dw.mjs.map
61
+ //# sourceMappingURL=dereekb-dbx-form-info.wrapper.component-ChSBMxgm.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dereekb-dbx-form-info.wrapper.component-ChSBMxgm.mjs","sources":["../../../../packages/dbx-form/src/lib/forge/field/wrapper/info/info.wrapper.component.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, viewChild, ViewContainerRef } from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { type FieldWrapper } from '@ng-forge/dynamic-forms';\n\n/**\n * Forge wrapper component that renders child fields inside a flex layout\n * with an info icon button beside them.\n *\n * Implements {@link FieldWrapper} and receives configuration\n * via component inputs.\n */\n@Component({\n selector: 'dbx-forge-info-wrapper',\n template: `\n <div class=\"dbx-form-info-wrapper dbx-flex-bar\">\n <div class=\"dbx-form-info-wrapper-content dbx-flex-grow\">\n <ng-container #fieldComponent></ng-container>\n </div>\n <div class=\"dbx-form-info-wrapper-info dbx-flex-noshrink dbx-flex-column dbx-flex-center\">\n <button mat-icon-button type=\"button\" (click)=\"onClick()\" [attr.aria-label]=\"ariaLabelValueSignal()\">\n <mat-icon>info</mat-icon>\n </button>\n </div>\n </div>\n `,\n imports: [MatIconButton, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxForgeInfoWrapperComponent implements FieldWrapper {\n readonly fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });\n\n readonly onInfoClick = input<() => void>();\n readonly ariaLabel = input<string>();\n\n readonly ariaLabelValueSignal = computed(() => {\n return this.ariaLabel() ?? 'More information';\n });\n\n onClick(): void {\n this.onInfoClick()?.();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -29,12 +29,14 @@ import { FormlyModule } from '@ngx-formly/core';
29
29
  import { DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES, provideDynamicForm } from '@ng-forge/dynamic-forms';
30
30
  import { setupMetaTracking, resolveValueFieldContext, buildValueFieldInputs } from '@ng-forge/dynamic-forms/integration';
31
31
 
32
+ /* eslint-disable @typescript-eslint/no-deprecated -- legacy formly mapbox factory; references deprecated config interfaces and is itself deprecated in favor of dbxForgeMapboxLatLngField() */
32
33
  /**
33
34
  * Creates a Formly field configuration for a Mapbox-powered latitude/longitude picker with optional map display.
34
35
  *
36
+ * @param config - Optional field configuration overrides.
37
+ * @returns A validated Formly field configuration for the Mapbox lat/lng picker.
38
+ *
35
39
  * @deprecated Use dbxForgeMapboxLatLngField() from the forge API instead.
36
- * @param config - Optional field configuration overrides
37
- * @returns A validated Formly field configuration for the Mapbox lat/lng picker
38
40
  */
39
41
  function mapboxLatLngField(config = {}) {
40
42
  const { key = 'latLng', latLngConfig, showMap, zoom, recenterTime, showCenterButton, setCenterOnLocationSet, selectLocationOnMapDrag, selectLocationOnMapClick, markerConfig } = config;
@@ -69,6 +71,7 @@ function mapboxLatLngField(config = {}) {
69
71
  return fieldConfig;
70
72
  }
71
73
 
74
+ /* eslint-disable @typescript-eslint/no-deprecated -- marker component injects the deprecated DbxFormMapboxLatLngFieldComponent; both belong to the legacy mapbox formly layer being replaced by forge */
72
75
  class DbxFormMapboxLatLngFieldMarkerComponent {
73
76
  fieldComponent = inject(DbxFormMapboxLatLngFieldComponent);
74
77
  marker$ = combineLatest([this.fieldComponent.latLng$, this.fieldComponent.markerConfig$]).pipe(map(([latLng, markerConfig]) => {
@@ -92,6 +95,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
92
95
  }]
93
96
  }] });
94
97
 
98
+ /* eslint-disable @typescript-eslint/no-deprecated -- legacy DbxFormMapboxLatLngFieldComponent retained for backward compatibility; replacement is DbxForgeMapboxLatLngFieldComponent and intra-file references are part of the deprecated layer */
95
99
  const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_FIELD_INJECTION_KEY = 'DbxFormMapboxLatLngFieldComponent';
96
100
  const DEFAULT_DBX_FORM_MAPBOX_LAT_LNG_MARKER_CONFIG = {
97
101
  icon: 'pin_drop'
@@ -325,6 +329,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
325
329
  `, providers: [provideMapboxStoreIfParentIsUnavailable()], imports: [NgClass, MapComponent, MarkerComponent, ReactiveFormsModule, MatIconModule, DbxMapboxModule, MatButtonModule, MatFormFieldModule, MatInputModule], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [".dbx-mapbox-input-field .dbx-mapbox-input-field-map{height:220px;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-map mgl-map{height:100%;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-input{display:flex;align-items:center}.dbx-mapbox-input-field .dbx-mapbox-input-field-input .dbx-mapbox-input-field-input-field{width:calc(100% - 40px)}.dbx-mapbox-input-field-compact .dbx-latlng-field-input{min-height:120px;height:300px;max-height:calc(var(--vh100) * .5)}\n"] }]
326
330
  }] });
327
331
 
332
+ /* eslint-disable @typescript-eslint/no-deprecated -- legacy NgModule that wraps the deprecated DbxFormMapboxLatLngFieldComponent; replacement is provideDbxForgeMapboxFieldDeclarations() */
328
333
  const importsAndExports$1 = [DbxFormMapboxLatLngFieldComponent];
329
334
  /**
330
335
  * @deprecated Use provideDbxForgeMapboxFieldDeclarations() instead.
@@ -358,8 +363,8 @@ const FORGE_MAPBOX_LATLNG_FIELD_TYPE = 'dbx-forge-mapbox-latlng';
358
363
  *
359
364
  * This is the forge equivalent of {@link mapboxLatLngField}.
360
365
  *
361
- * @param config - Optional field configuration overrides
362
- * @returns A validated forge field definition for the Mapbox lat/lng picker
366
+ * @param config - Optional field configuration overrides.
367
+ * @returns A validated forge field definition for the Mapbox lat/lng picker.
363
368
  */
364
369
  function dbxForgeMapboxLatLngField(config = {}) {
365
370
  const { key = 'latLng', label, description, required, readonly: isReadonly, showMap, zoom, latLngConfig, recenterTime, showCenterButton, setCenterOnLocationSet, selectLocationOnMapDrag, selectLocationOnMapClick, markerConfig } = config;
@@ -465,26 +470,32 @@ class DbxForgeMapboxLatLngFieldComponent {
465
470
  _useCurrentLocationDisabled = completeOnDestroy(new BehaviorSubject(false));
466
471
  useCurrentLocationDisabled$ = this._useCurrentLocationDisabled.asObservable();
467
472
  // Field value signal (double-call pattern)
468
- fieldValue = computed(() => {
473
+ fieldValueSignal = computed(() => {
469
474
  const state = this.field()?.();
470
475
  return state?.value?.();
471
- }, ...(ngDevMode ? [{ debugName: "fieldValue" }] : /* istanbul ignore next */ []));
472
- isDisabled = computed(() => {
476
+ }, ...(ngDevMode ? [{ debugName: "fieldValueSignal" }] : /* istanbul ignore next */ []));
477
+ isDisabledSignal = computed(() => {
473
478
  const state = this.field()?.();
474
479
  return state?.disabled?.() ?? false;
475
- }, ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
476
- isReadonlyOrDisabledSignal = computed(() => this.props()?.readonly || this.isDisabled(), ...(ngDevMode ? [{ debugName: "isReadonlyOrDisabledSignal" }] : /* istanbul ignore next */ []));
480
+ }, ...(ngDevMode ? [{ debugName: "isDisabledSignal" }] : /* istanbul ignore next */ []));
481
+ isReadonlyOrDisabledSignal = computed(() => {
482
+ const isDisabled = this.isDisabledSignal();
483
+ return this.props()?.readonly || isDisabled;
484
+ }, ...(ngDevMode ? [{ debugName: "isReadonlyOrDisabledSignal" }] : /* istanbul ignore next */ []));
477
485
  // Computed props from field definition
478
486
  showMapSignal = computed(() => this.props()?.showMap ?? true, ...(ngDevMode ? [{ debugName: "showMapSignal" }] : /* istanbul ignore next */ []));
479
487
  selectLocationOnMapDragSignal = computed(() => this.props()?.selectLocationOnMapDrag ?? true, ...(ngDevMode ? [{ debugName: "selectLocationOnMapDragSignal" }] : /* istanbul ignore next */ []));
480
488
  selectLocationOnMapClickSignal = computed(() => this.props()?.selectLocationOnMapClick ?? false, ...(ngDevMode ? [{ debugName: "selectLocationOnMapClickSignal" }] : /* istanbul ignore next */ []));
481
489
  setCenterOnLocationSetSignal = computed(() => this.props()?.setCenterOnLocationSet ?? true, ...(ngDevMode ? [{ debugName: "setCenterOnLocationSetSignal" }] : /* istanbul ignore next */ []));
482
- showCenterButtonSignal = computed(() => !this.selectLocationOnMapDragSignal() && this.props()?.showCenterButton !== false, ...(ngDevMode ? [{ debugName: "showCenterButtonSignal" }] : /* istanbul ignore next */ []));
490
+ showCenterButtonSignal = computed(() => {
491
+ const props = this.props();
492
+ return !this.selectLocationOnMapDragSignal() && props?.showCenterButton !== false;
493
+ }, ...(ngDevMode ? [{ debugName: "showCenterButtonSignal" }] : /* istanbul ignore next */ []));
483
494
  recenterTimeSignal = computed(() => this.props()?.recenterTime || 10 * 1000, ...(ngDevMode ? [{ debugName: "recenterTimeSignal" }] : /* istanbul ignore next */ []));
484
495
  placeholderTextSignal = computed(() => this.props()?.placeholder, ...(ngDevMode ? [{ debugName: "placeholderTextSignal" }] : /* istanbul ignore next */ []));
485
496
  // Observables for map store sync
486
497
  latLngValueSignal = computed(() => {
487
- const value = this.fieldValue();
498
+ const value = this.fieldValueSignal();
488
499
  const fn = this.latLngPointFunctionSignal();
489
500
  return value == null ? defaultLatLngPoint() : fn(value);
490
501
  }, ...(ngDevMode ? [{ debugName: "latLngValueSignal" }] : /* istanbul ignore next */ []));
@@ -563,7 +574,7 @@ class DbxForgeMapboxLatLngFieldComponent {
563
574
  });
564
575
  // Sync field value → text control (inbound)
565
576
  effect(() => {
566
- const value = this.fieldValue();
577
+ const value = this.fieldValueSignal();
567
578
  if (!this._syncing) {
568
579
  this._syncing = true;
569
580
  this.textCtrl.setValue(value ?? '', { emitEvent: false });
@@ -663,9 +674,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
663
674
  /**
664
675
  * Custom mapper for the forge mapbox lat/lng field.
665
676
  *
666
- * @param fieldDef - Field definition configuration
667
- * @param fieldDef.key - Form model key for the field
668
- * @returns Signal containing a Record of input names to values for ngComponentOutlet
677
+ * @param fieldDef - Field definition configuration.
678
+ * @param fieldDef.key - Form model key for the field.
679
+ * @returns Signal containing a Record of input names to values for ngComponentOutlet.
669
680
  */
670
681
  function mapboxLatLngFieldMapper(fieldDef) {
671
682
  const ctx = resolveValueFieldContext();
@@ -689,12 +700,14 @@ var latlng_forge_field_component = /*#__PURE__*/Object.freeze({
689
700
  mapboxLatLngFieldMapper: mapboxLatLngFieldMapper
690
701
  });
691
702
 
703
+ /* eslint-disable @typescript-eslint/no-deprecated -- legacy formly mapbox factory; references deprecated config interfaces and is itself deprecated in favor of dbxForgeMapboxZoomField() */
692
704
  /**
693
705
  * Creates a Formly field configuration for a Mapbox-powered zoom level picker with optional map preview.
694
706
  *
707
+ * @param config - Optional field configuration overrides.
708
+ * @returns A validated Formly field configuration for the Mapbox zoom picker.
709
+ *
695
710
  * @deprecated Use dbxForgeMapboxZoomField() from the forge API instead.
696
- * @param config - Optional field configuration overrides
697
- * @returns A validated Formly field configuration for the Mapbox zoom picker
698
711
  */
699
712
  function mapboxZoomField(config = {}) {
700
713
  const { key = 'zoom', showMap, center, minZoom, maxZoom, zoomStep } = config;
@@ -846,6 +859,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
846
859
  `, providers: [provideMapboxStoreIfParentIsUnavailable()], imports: [NgClass, DbxMapboxModule, FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [".dbx-mapbox-input-field .dbx-mapbox-input-field-map{height:220px;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-map mgl-map{height:100%;width:100%}.dbx-mapbox-input-field .dbx-mapbox-input-field-input{display:flex;align-items:center}.dbx-mapbox-input-field .dbx-mapbox-input-field-input .dbx-mapbox-input-field-input-field{width:calc(100% - 40px)}.dbx-mapbox-input-field-compact .dbx-latlng-field-input{min-height:120px;height:300px;max-height:calc(var(--vh100) * .5)}\n"] }]
847
860
  }] });
848
861
 
862
+ /* eslint-disable @typescript-eslint/no-deprecated -- legacy NgModule that wraps the deprecated DbxFormMapboxZoomFieldComponent; replacement is provideDbxForgeMapboxFieldDeclarations() */
849
863
  const importsAndExports = [DbxFormMapboxZoomFieldComponent];
850
864
  /**
851
865
  * @deprecated Use provideDbxForgeMapboxFieldDeclarations() instead.
@@ -879,8 +893,8 @@ const FORGE_MAPBOX_ZOOM_FIELD_TYPE = 'dbx-forge-mapbox-zoom';
879
893
  *
880
894
  * This is the forge equivalent of {@link mapboxZoomField}.
881
895
  *
882
- * @param config - Optional field configuration overrides
883
- * @returns A validated forge field definition for the Mapbox zoom picker
896
+ * @param config - Optional field configuration overrides.
897
+ * @returns A validated forge field definition for the Mapbox zoom picker.
884
898
  */
885
899
  function dbxForgeMapboxZoomField(config = {}) {
886
900
  const { key = 'zoom', label, description, required, readonly: isReadonly, showMap, center, minZoom, maxZoom, zoomStep } = config;
@@ -940,22 +954,25 @@ class DbxForgeMapboxZoomFieldComponent {
940
954
  _sub = cleanSubscription();
941
955
  _center = completeOnDestroy(new BehaviorSubject(undefined));
942
956
  // Field value signal (double-call pattern)
943
- fieldValue = computed(() => {
957
+ fieldValueSignal = computed(() => {
944
958
  const state = this.field()?.();
945
959
  return state?.value?.();
946
- }, ...(ngDevMode ? [{ debugName: "fieldValue" }] : /* istanbul ignore next */ []));
947
- isDisabled = computed(() => {
960
+ }, ...(ngDevMode ? [{ debugName: "fieldValueSignal" }] : /* istanbul ignore next */ []));
961
+ isDisabledSignal = computed(() => {
948
962
  const state = this.field()?.();
949
963
  return state?.disabled?.() ?? false;
950
- }, ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
951
- isReadonlyOrDisabledSignal = computed(() => this.props()?.readonly || this.isDisabled(), ...(ngDevMode ? [{ debugName: "isReadonlyOrDisabledSignal" }] : /* istanbul ignore next */ []));
964
+ }, ...(ngDevMode ? [{ debugName: "isDisabledSignal" }] : /* istanbul ignore next */ []));
965
+ isReadonlyOrDisabledSignal = computed(() => {
966
+ const isDisabled = this.isDisabledSignal();
967
+ return this.props()?.readonly || isDisabled;
968
+ }, ...(ngDevMode ? [{ debugName: "isReadonlyOrDisabledSignal" }] : /* istanbul ignore next */ []));
952
969
  // Computed props
953
970
  showMapSignal = computed(() => this.props()?.showMap ?? true, ...(ngDevMode ? [{ debugName: "showMapSignal" }] : /* istanbul ignore next */ []));
954
971
  lockMapToZoomLevelsSignal = computed(() => this.props()?.lockMapToZoomLevels ?? false, ...(ngDevMode ? [{ debugName: "lockMapToZoomLevelsSignal" }] : /* istanbul ignore next */ []));
955
972
  minZoomSignal = computed(() => mapboxZoomLevel(this.props()?.minZoom || MAPBOX_MIN_ZOOM_LEVEL), ...(ngDevMode ? [{ debugName: "minZoomSignal" }] : /* istanbul ignore next */ []));
956
973
  maxZoomSignal = computed(() => mapboxZoomLevel(this.props()?.maxZoom || MAPBOX_MAX_ZOOM_LEVEL), ...(ngDevMode ? [{ debugName: "maxZoomSignal" }] : /* istanbul ignore next */ []));
957
974
  zoomStepSignal = computed(() => mapboxZoomLevel(this.props()?.zoomStep || 1), ...(ngDevMode ? [{ debugName: "zoomStepSignal" }] : /* istanbul ignore next */ []));
958
- fieldValue$ = toObservable(this.fieldValue);
975
+ fieldValue$ = toObservable(this.fieldValueSignal);
959
976
  zoom$ = this.fieldValue$.pipe(filterMaybe(), shareReplay(1));
960
977
  center$ = this._center.pipe(filterMaybe());
961
978
  _syncing = false;
@@ -1001,7 +1018,7 @@ class DbxForgeMapboxZoomFieldComponent {
1001
1018
  });
1002
1019
  // Sync field value → number control (inbound)
1003
1020
  effect(() => {
1004
- const value = this.fieldValue();
1021
+ const value = this.fieldValueSignal();
1005
1022
  if (!this._syncing) {
1006
1023
  this._syncing = true;
1007
1024
  this.numberCtrl.setValue(value ?? null, { emitEvent: false });
@@ -1066,9 +1083,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
1066
1083
  /**
1067
1084
  * Custom mapper for the forge mapbox zoom field.
1068
1085
  *
1069
- * @param fieldDef - Field definition configuration
1070
- * @param fieldDef.key - Form model key for the field
1071
- * @returns Signal containing a Record of input names to values for ngComponentOutlet
1086
+ * @param fieldDef - Field definition configuration.
1087
+ * @param fieldDef.key - Form model key for the field.
1088
+ * @returns Signal containing a Record of input names to values for ngComponentOutlet.
1072
1089
  */
1073
1090
  function mapboxZoomFieldMapper(fieldDef) {
1074
1091
  const ctx = resolveValueFieldContext();
@@ -1090,6 +1107,7 @@ var zoom_forge_field_component = /*#__PURE__*/Object.freeze({
1090
1107
  mapboxZoomFieldMapper: mapboxZoomFieldMapper
1091
1108
  });
1092
1109
 
1110
+ /* eslint-disable @typescript-eslint/no-deprecated -- aggregator NgModule for the deprecated mapbox formly modules; replacement is provideDbxForgeMapboxFieldDeclarations() */
1093
1111
  /**
1094
1112
  * @deprecated Use provideDbxForgeMapboxFieldDeclarations() instead.
1095
1113
  */
@@ -1130,7 +1148,7 @@ const DBX_FORGE_MAPBOX_FIELD_TYPES = [DbxForgeMapboxLatLngFieldType, DbxForgeMap
1130
1148
  *
1131
1149
  * Add this to your app's providers alongside provideDbxForgeFormFieldDeclarations().
1132
1150
  *
1133
- * @returns An array of providers that register the mapbox forge field types with ng-forge
1151
+ * @returns The providers that register the mapbox forge field types with ng-forge.
1134
1152
  */
1135
1153
  function provideDbxForgeMapboxFieldDeclarations() {
1136
1154
  return provideDynamicForm(...DBX_FORGE_MAPBOX_FIELD_TYPES);