@dereekb/dbx-form 9.15.6 → 9.15.7
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/esm2020/lib/formly/field/checklist/checklist.item.field.mjs +3 -3
- package/esm2020/lib/formly/field/field.mjs +19 -3
- package/esm2020/lib/formly/field/selection/pickable/pickable.field.mjs +4 -4
- package/esm2020/lib/formly/field/selection/searchable/searchable.field.mjs +4 -4
- package/esm2020/lib/formly/field/selection/selection.field.mjs +3 -3
- package/esm2020/lib/formly/field/texteditor/texteditor.field.mjs +3 -3
- package/esm2020/lib/formly/field/value/array/array.field.mjs +3 -3
- package/esm2020/lib/formly/field/value/boolean/boolean.field.mjs +4 -4
- package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +110 -15
- package/esm2020/lib/formly/field/value/date/datetime.field.mjs +32 -6
- package/esm2020/lib/formly/field/value/number/number.field.mjs +19 -4
- package/esm2020/lib/formly/field/value/phone/phone.field.mjs +3 -3
- package/esm2020/lib/formly/field/value/text/text.additional.field.mjs +5 -2
- package/esm2020/lib/formly/field/value/text/text.field.mjs +24 -7
- package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +1 -1
- package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +1 -1
- package/esm2020/lib/validator/number.mjs +7 -1
- package/esm2020/mapbox/lib/field/latlng/latlng.field.mjs +3 -3
- package/esm2020/mapbox/lib/field/zoom/zoom.field.mjs +3 -3
- package/fesm2015/dereekb-dbx-form-mapbox.mjs +3 -3
- package/fesm2015/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/fesm2015/dereekb-dbx-form.mjs +195 -39
- package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form-mapbox.mjs +3 -3
- package/fesm2020/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form.mjs +214 -38
- package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
- package/lib/formly/field/field.d.ts +29 -3
- package/lib/formly/field/value/array/array.field.d.ts +6 -0
- package/lib/formly/field/value/date/datetime.field.component.d.ts +45 -3
- package/lib/formly/field/value/date/datetime.field.d.ts +5 -0
- package/lib/formly/field/value/number/number.field.d.ts +4 -2
- package/lib/formly/field/value/text/text.additional.field.d.ts +3 -6
- package/lib/formly/field/value/text/text.field.d.ts +6 -3
- package/lib/formly/field/wrapper/section.wrapper.component.d.ts +1 -2
- package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +1 -2
- package/lib/formly/field/wrapper/wrapper.d.ts +2 -2
- package/lib/validator/number.d.ts +6 -0
- package/mapbox/esm2020/lib/field/latlng/latlng.field.mjs +3 -3
- package/mapbox/esm2020/lib/field/zoom/zoom.field.mjs +3 -3
- package/mapbox/fesm2015/dereekb-dbx-form-mapbox.mjs +3 -3
- package/mapbox/fesm2015/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/mapbox/fesm2020/dereekb-dbx-form-mapbox.mjs +3 -3
- package/mapbox/fesm2020/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/mapbox/package.json +4 -4
- package/package.json +4 -4
|
@@ -4,9 +4,9 @@ import * as i1 from '@angular/common';
|
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i1$1 from '@dereekb/dbx-web';
|
|
6
6
|
import { DbxActionTransitionSafetyDirective, DbxTextModule, DbxLoadingModule, DbxFlexLayoutModule, DbxSectionLayoutModule, DbxRouterAnchorModule, AbstractDbxSelectionListWrapperDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, AbstractDbxSelectionListViewDirective, addConfigToValueListItems, provideDbxListView, AbstractDbxValueListViewItemComponent, DbxButtonModule, DbxListLayoutModule, mapCompactModeObs, DbxBarLayoutModule } from '@dereekb/dbx-web';
|
|
7
|
-
import { isPast, addSeconds, isSameMinute, startOfDay, isSameDay, addMinutes } from 'date-fns';
|
|
7
|
+
import { isPast, addSeconds, isSameMinute, startOfDay, isSameDay, addMinutes, addDays } from 'date-fns';
|
|
8
8
|
import { BehaviorSubject, switchMap, first, exhaustMap, of, catchError, delay, filter, combineLatest, map, distinctUntilChanged, mergeMap, shareReplay, startWith, debounceTime, Subject, skipWhile, interval, tap, merge, throttleTime, scan, timer } from 'rxjs';
|
|
9
|
-
import { LockSet, SubscriptionObject, asObservable, loadingStateHasFinishedLoading, switchMapMaybeObs, filterMaybe, switchMapMaybeDefault, SimpleLoadingContext, startWithBeginLoading, mapLoadingStateResults, successResult, ListLoadingStateContextInstance, isListLoadingStateEmpty, LoadingStateContextInstance,
|
|
9
|
+
import { LockSet, SubscriptionObject, asObservable, loadingStateHasFinishedLoading, switchMapMaybeObs, filterMaybe, switchMapMaybeDefault, SimpleLoadingContext, startWithBeginLoading, mapLoadingStateResults, successResult, ListLoadingStateContextInstance, isListLoadingStateEmpty, LoadingStateContextInstance, skipFirstMaybe, asyncPusherCache, scanCount } from '@dereekb/rxjs';
|
|
10
10
|
import * as i2 from '@dereekb/dbx-core';
|
|
11
11
|
import { AbstractSubscriptionDirective, safeDetectChanges, DbxInjectionComponentModule, DbxDatePipeModule, mergeDbxInjectionComponentConfigs, tapDetectChanges } from '@dereekb/dbx-core';
|
|
12
12
|
import * as i3 from '@uirouter/core';
|
|
@@ -26,7 +26,7 @@ import * as i1$2 from '@angular/material/button';
|
|
|
26
26
|
import { MatButtonModule } from '@angular/material/button';
|
|
27
27
|
import * as i3$3 from '@angular/flex-layout/flex';
|
|
28
28
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
29
|
-
import { objectIsEmpty, mergeObjectsFunction, filterFromPOJOFunction, mergeObjects, filterFromPOJO, asArray, objectHasNoKeys, addPlusPrefixToNumber, convertMaybeToArray, makeValuesGroupMap, findUnique, searchStringFilterFunction, caseInsensitiveFilterByIndexOfDecisionFactory, mergeIntoArray, lastValue, separateValues, arrayToMap, getValueFromGetter, dateFromLogicalDate, WEBSITE_DOMAIN_NAME_REGEX, KeyValueTypleValueFilter, valuesFromPOJO, allObjectsAreEqual, isNumberDivisibleBy, nearestDivisibleValues, US_STATE_CODE_STRING_REGEX, ZIP_CODE_STRING_REGEX, LAT_LNG_PATTERN, capitalizeFirstLetter, BooleanStringKeyArrayUtilityInstance } from '@dereekb/util';
|
|
29
|
+
import { objectIsEmpty, mergeObjectsFunction, filterFromPOJOFunction, mergeObjects, filterFromPOJO, asArray, objectHasNoKeys, addPlusPrefixToNumber, convertMaybeToArray, makeValuesGroupMap, findUnique, searchStringFilterFunction, caseInsensitiveFilterByIndexOfDecisionFactory, mergeIntoArray, lastValue, separateValues, arrayToMap, getValueFromGetter, filterMaybeValues, dateFromLogicalDate, WEBSITE_DOMAIN_NAME_REGEX, KeyValueTypleValueFilter, valuesFromPOJO, allObjectsAreEqual, isNumberDivisibleBy, nearestDivisibleValues, transformNumberFunction, concatArrays, transformStringFunction, US_STATE_CODE_STRING_REGEX, ZIP_CODE_STRING_REGEX, LAT_LNG_PATTERN, capitalizeFirstLetter, BooleanStringKeyArrayUtilityInstance } from '@dereekb/util';
|
|
30
30
|
import * as i2$1 from '@angular/material/slide-toggle';
|
|
31
31
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
32
32
|
import * as i2$2 from '@angular/flex-layout/extended';
|
|
@@ -44,7 +44,7 @@ import { MatListModule } from '@angular/material/list';
|
|
|
44
44
|
import * as i3$4 from '@angular/material/form-field';
|
|
45
45
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
46
46
|
import { ENTER, COMMA } from '@angular/cdk/keycodes';
|
|
47
|
-
import { skipUntilTimeElapsedAfterLastEmission, toJsDate, parseISO8601DayStringToDate, formatToISO8601DayString, formatToISO8601DateString, guessCurrentTimezone, toReadableTimeString, utcDayForDate, readableTimeStringToDate, DateTimeMinuteInstance, toLocalReadableTimeString, allTimezoneInfos, timezoneInfoForSystem, searchTimezoneInfos } from '@dereekb/date';
|
|
47
|
+
import { skipUntilTimeElapsedAfterLastEmission, toJsDate, parseISO8601DayStringToDate, formatToISO8601DayString, formatToISO8601DateString, safeToJsDate, guessCurrentTimezone, toReadableTimeString, utcDayForDate, readableTimeStringToDate, findMinDate, findMaxDate, DateTimeMinuteInstance, toLocalReadableTimeString, allTimezoneInfos, timezoneInfoForSystem, searchTimezoneInfos } from '@dereekb/date';
|
|
48
48
|
import * as i4$4 from 'ngx-editor';
|
|
49
49
|
import { Editor, NgxEditorModule } from 'ngx-editor';
|
|
50
50
|
import * as i4$5 from '@angular/cdk/drag-drop';
|
|
@@ -1179,10 +1179,20 @@ function formlyField(fieldConfig) {
|
|
|
1179
1179
|
}
|
|
1180
1180
|
return fieldConfig;
|
|
1181
1181
|
}
|
|
1182
|
-
|
|
1182
|
+
/**
|
|
1183
|
+
* Creates an object with propers, expressions, and parsers properly configured from the input FieldConfig.
|
|
1184
|
+
*
|
|
1185
|
+
* @param fieldConfig
|
|
1186
|
+
* @param override
|
|
1187
|
+
* @returns
|
|
1188
|
+
*/
|
|
1189
|
+
function propsAndConfigForFieldConfig(fieldConfig, override) {
|
|
1190
|
+
const { expressions, parsers } = fieldConfig;
|
|
1183
1191
|
const props = propsValueForFieldConfig(fieldConfig, override);
|
|
1184
1192
|
return {
|
|
1185
|
-
props
|
|
1193
|
+
props,
|
|
1194
|
+
expressions,
|
|
1195
|
+
parsers
|
|
1186
1196
|
};
|
|
1187
1197
|
}
|
|
1188
1198
|
const partialPotentialFieldConfigKeys = ['label', 'placeholder', 'required', 'readonly', 'description', 'autocomplete'];
|
|
@@ -1248,10 +1258,16 @@ function validatorsForFieldConfig(input) {
|
|
|
1248
1258
|
}
|
|
1249
1259
|
return config;
|
|
1250
1260
|
}
|
|
1261
|
+
/**
|
|
1262
|
+
* MARK: Compat
|
|
1263
|
+
*
|
|
1264
|
+
* @deprecated use propsAndConfigForFieldConfig instead.
|
|
1265
|
+
*/
|
|
1266
|
+
const propsForFieldConfig = propsAndConfigForFieldConfig;
|
|
1251
1267
|
|
|
1252
1268
|
function checklistItemField(config) {
|
|
1253
1269
|
const { key, displayContentObs, componentClass } = config;
|
|
1254
|
-
const fieldConfig = formlyField(Object.assign({ key, type: 'checklistitem' },
|
|
1270
|
+
const fieldConfig = formlyField(Object.assign({ key, type: 'checklistitem' }, propsAndConfigForFieldConfig(config, {
|
|
1255
1271
|
displayContentObs,
|
|
1256
1272
|
componentClass
|
|
1257
1273
|
})));
|
|
@@ -1860,11 +1876,11 @@ function sortPickableItemsByLabel(chips) {
|
|
|
1860
1876
|
}
|
|
1861
1877
|
function pickableItemChipField(config) {
|
|
1862
1878
|
const { key } = config;
|
|
1863
|
-
return formlyField(Object.assign({ key, type: 'pickablechipfield' },
|
|
1879
|
+
return formlyField(Object.assign({ key, type: 'pickablechipfield' }, propsAndConfigForFieldConfig(config, Object.assign(Object.assign({}, config), { autocomplete: false }))));
|
|
1864
1880
|
}
|
|
1865
1881
|
function pickableItemListField(config) {
|
|
1866
1882
|
const { key } = config;
|
|
1867
|
-
return formlyField(Object.assign({ key, type: 'pickablelistfield' },
|
|
1883
|
+
return formlyField(Object.assign({ key, type: 'pickablelistfield' }, propsAndConfigForFieldConfig(config, Object.assign(Object.assign({}, config), { autocomplete: false }))));
|
|
1868
1884
|
}
|
|
1869
1885
|
|
|
1870
1886
|
const DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN = new InjectionToken('DbxSearchableField');
|
|
@@ -2280,11 +2296,11 @@ function searchableStringChipField(config) {
|
|
|
2280
2296
|
}
|
|
2281
2297
|
function searchableChipField(config) {
|
|
2282
2298
|
const { key, placeholder } = config;
|
|
2283
|
-
return formlyField(Object.assign({ key, type: 'searchablechipfield' },
|
|
2299
|
+
return formlyField(Object.assign({ key, type: 'searchablechipfield' }, propsAndConfigForFieldConfig(config, Object.assign(Object.assign({}, config), { placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : 'Add...', autocomplete: false }))));
|
|
2284
2300
|
}
|
|
2285
2301
|
function searchableTextField(config) {
|
|
2286
2302
|
const { key } = config;
|
|
2287
|
-
return formlyField(Object.assign({ key, type: 'searchabletextfield' },
|
|
2303
|
+
return formlyField(Object.assign({ key, type: 'searchabletextfield' }, propsAndConfigForFieldConfig(config, Object.assign(Object.assign({}, config), { autocomplete: false }))));
|
|
2288
2304
|
}
|
|
2289
2305
|
|
|
2290
2306
|
/**
|
|
@@ -2418,7 +2434,7 @@ function valueSelectionField(config) {
|
|
|
2418
2434
|
selectAllOption: typeof inputSelectAllOption === 'boolean' ? 'Select All' : inputSelectAllOption
|
|
2419
2435
|
};
|
|
2420
2436
|
}
|
|
2421
|
-
return formlyField(Object.assign({ key, type: native ? 'native-select' : 'select' },
|
|
2437
|
+
return formlyField(Object.assign({ key, type: native ? 'native-select' : 'select' }, propsAndConfigForFieldConfig(config, Object.assign({ options: config.options, multiple: (_a = config.multiple) !== null && _a !== void 0 ? _a : false }, selectAllOptionConfig))));
|
|
2422
2438
|
}
|
|
2423
2439
|
|
|
2424
2440
|
class DbxFormFormlySelectionModule {
|
|
@@ -2565,7 +2581,7 @@ function textEditorField(config) {
|
|
|
2565
2581
|
// https://formly.dev/examples/validation/async-validation-update-on
|
|
2566
2582
|
// Set to trigger value update on blurs with the form. However, the value is set internally too.
|
|
2567
2583
|
updateOn: 'blur'
|
|
2568
|
-
} },
|
|
2584
|
+
} }, propsAndConfigForFieldConfig(config, {
|
|
2569
2585
|
minLength,
|
|
2570
2586
|
maxLength
|
|
2571
2587
|
})));
|
|
@@ -2748,7 +2764,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
2748
2764
|
|
|
2749
2765
|
function repeatArrayField(config) {
|
|
2750
2766
|
const { key, repeatFieldGroup, maxLength, addText, removeText, labelForField } = config;
|
|
2751
|
-
return formlyField(Object.assign(Object.assign({ key, type: 'repeatarray' },
|
|
2767
|
+
return formlyField(Object.assign(Object.assign({ key, type: 'repeatarray' }, propsAndConfigForFieldConfig(config, {
|
|
2752
2768
|
maxLength,
|
|
2753
2769
|
labelForField,
|
|
2754
2770
|
addText,
|
|
@@ -2774,11 +2790,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
2774
2790
|
|
|
2775
2791
|
function toggleField(config) {
|
|
2776
2792
|
const { key, defaultValue } = config;
|
|
2777
|
-
return formlyField(Object.assign({ key, type: 'toggle', wrappers: ['autotouch', 'form-field'], defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : false },
|
|
2793
|
+
return formlyField(Object.assign({ key, type: 'toggle', wrappers: ['autotouch', 'form-field'], defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : false }, propsAndConfigForFieldConfig(config)));
|
|
2778
2794
|
}
|
|
2779
2795
|
function checkboxField(config) {
|
|
2780
2796
|
const { key, defaultValue } = config;
|
|
2781
|
-
return formlyField(Object.assign({ key, type: 'checkbox', defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : false },
|
|
2797
|
+
return formlyField(Object.assign({ key, type: 'checkbox', defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : false }, propsAndConfigForFieldConfig(config)));
|
|
2782
2798
|
}
|
|
2783
2799
|
/*
|
|
2784
2800
|
export function acceptTermsField({ key = 'accept', label = 'Accept Terms', description = 'In order to proceed, please accept terms', required = true }
|
|
@@ -2861,6 +2877,20 @@ function dbxDateTimeOutputValueFactory(mode) {
|
|
|
2861
2877
|
}
|
|
2862
2878
|
return factory;
|
|
2863
2879
|
}
|
|
2880
|
+
function syncConfigValueObs(parseConfigsObs, type) {
|
|
2881
|
+
return parseConfigsObs.pipe(switchMap((x) => {
|
|
2882
|
+
const config = x.find((y) => y.syncType === type);
|
|
2883
|
+
let result;
|
|
2884
|
+
if (config) {
|
|
2885
|
+
const { control } = config;
|
|
2886
|
+
result = control.valueChanges.pipe(startWith(control.value), map(safeToJsDate));
|
|
2887
|
+
}
|
|
2888
|
+
else {
|
|
2889
|
+
result = of(undefined);
|
|
2890
|
+
}
|
|
2891
|
+
return result;
|
|
2892
|
+
}), distinctUntilChanged(), shareReplay(1));
|
|
2893
|
+
}
|
|
2864
2894
|
class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
2865
2895
|
constructor(cdRef) {
|
|
2866
2896
|
super();
|
|
@@ -2890,13 +2920,37 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2890
2920
|
validators: [Validators.pattern(/^(now)$|^([0-9]|(0[0-9])|(1[0-9])|(2[0-3]))(:)?([0-5][0-9])?(\s)?([apAP][Mm])?(\\s)*$/)]
|
|
2891
2921
|
});
|
|
2892
2922
|
this._config = new BehaviorSubject(undefined);
|
|
2923
|
+
this._syncConfigObs = new BehaviorSubject(undefined);
|
|
2893
2924
|
this.fullDay$ = this.fullDayControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value))));
|
|
2894
2925
|
this.showTimeInput$ = this.fullDay$.pipe(map((x) => !x && this.timeMode !== DbxDateTimeFieldTimeMode.NONE));
|
|
2895
2926
|
this.showAddTime$ = this.showTimeInput$.pipe(map((x) => !x && this.timeMode === DbxDateTimeFieldTimeMode.OPTIONAL), shareReplay(1));
|
|
2896
2927
|
this.date$ = this.dateInputCtrl.valueChanges.pipe(startWith(this.dateInputCtrl.value), filterMaybe(), shareReplay(1));
|
|
2897
|
-
this.dateValue$ = merge(this.date
|
|
2928
|
+
this.dateValue$ = merge(this.date$, this.value$.pipe(skipFirstMaybe())).pipe(map((x) => (x ? startOfDay(x) : x)), distinctUntilChanged((a, b) => a != null && b != null && isSameDay(a, b)), shareReplay(1));
|
|
2898
2929
|
this.timeInput$ = this._updateTime.pipe(debounceTime(5), map(() => this.timeInputCtrl.value || ''), distinctUntilChanged());
|
|
2899
|
-
this.
|
|
2930
|
+
this.syncConfigObs$ = this._syncConfigObs.pipe(switchMapMaybeDefault(), shareReplay(1));
|
|
2931
|
+
this.parsedSyncConfigs$ = this.syncConfigObs$.pipe(map((x) => {
|
|
2932
|
+
let parsed;
|
|
2933
|
+
if (x) {
|
|
2934
|
+
parsed = filterMaybeValues(asArray(x).map((y) => {
|
|
2935
|
+
const control = this.form.get(y.syncWith);
|
|
2936
|
+
if (control) {
|
|
2937
|
+
return Object.assign({ control }, y);
|
|
2938
|
+
}
|
|
2939
|
+
else {
|
|
2940
|
+
return undefined;
|
|
2941
|
+
}
|
|
2942
|
+
}));
|
|
2943
|
+
}
|
|
2944
|
+
else {
|
|
2945
|
+
parsed = [];
|
|
2946
|
+
}
|
|
2947
|
+
return parsed;
|
|
2948
|
+
}), shareReplay(1));
|
|
2949
|
+
this.syncConfigBeforeValue$ = syncConfigValueObs(this.parsedSyncConfigs$, 'before');
|
|
2950
|
+
this.syncConfigAfterValue$ = syncConfigValueObs(this.parsedSyncConfigs$, 'after');
|
|
2951
|
+
// TODO: Get min/max using the DateTimePickerConfiguration too
|
|
2952
|
+
this.dateInputMin$ = this.syncConfigBeforeValue$;
|
|
2953
|
+
this.dateInputMax$ = this.syncConfigAfterValue$;
|
|
2900
2954
|
this.rawDateTime$ = combineLatest([this.dateValue$, this.timeInput$.pipe(startWith(null)), this.fullDay$]).pipe(map(([date, timeString, fullDay]) => {
|
|
2901
2955
|
var _a;
|
|
2902
2956
|
let result;
|
|
@@ -2922,7 +2976,19 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2922
2976
|
}
|
|
2923
2977
|
return result;
|
|
2924
2978
|
}), distinctUntilChanged((a, b) => a != null && b != null && isSameMinute(a, b)), shareReplay(1));
|
|
2925
|
-
this.
|
|
2979
|
+
this.config$ = combineLatest([this._config.pipe(switchMapMaybeDefault(), shareReplay(1)), this.dateInputMin$, this.dateInputMax$]).pipe(map(([x, dateInputMin, dateInputMax]) => {
|
|
2980
|
+
var _a;
|
|
2981
|
+
let result = x;
|
|
2982
|
+
if (dateInputMin != null || dateInputMax != null) {
|
|
2983
|
+
const { min: limitMin, max: limitMax } = (_a = x === null || x === void 0 ? void 0 : x.limits) !== null && _a !== void 0 ? _a : {};
|
|
2984
|
+
const min = findMinDate([dateInputMin, limitMin]);
|
|
2985
|
+
const max = findMaxDate([dateInputMax, limitMax]);
|
|
2986
|
+
result = Object.assign(Object.assign({}, x), { limits: Object.assign(Object.assign({}, x === null || x === void 0 ? void 0 : x.limits), { min,
|
|
2987
|
+
max }) });
|
|
2988
|
+
}
|
|
2989
|
+
return result;
|
|
2990
|
+
}), distinctUntilChanged(), shareReplay(1));
|
|
2991
|
+
this.timeOutput$ = combineLatest([this.rawDateTime$, this._offset, this.config$]).pipe(throttleTime(40, undefined, { leading: false, trailing: true }), distinctUntilChanged((current, next) => current[0] === next[0] && next[1] === 0), tap(([, stepsOffset]) => (stepsOffset ? this._offset.next(0) : 0)), map(([date, stepsOffset, config]) => {
|
|
2926
2992
|
if (date != null) {
|
|
2927
2993
|
const instance = new DateTimeMinuteInstance(Object.assign(Object.assign({ date }, config), { roundDownToMinute: true }));
|
|
2928
2994
|
date = instance.limit(date);
|
|
@@ -2932,6 +2998,14 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2932
2998
|
return date;
|
|
2933
2999
|
}), distinctUntilChanged((a, b) => a != null && b != null && isSameMinute(a, b)), shareReplay(1));
|
|
2934
3000
|
}
|
|
3001
|
+
get dateLabel() {
|
|
3002
|
+
var _a;
|
|
3003
|
+
return (_a = this.props.dateLabel) !== null && _a !== void 0 ? _a : 'Date';
|
|
3004
|
+
}
|
|
3005
|
+
get timeLabel() {
|
|
3006
|
+
var _a;
|
|
3007
|
+
return (_a = this.props.timeLabel) !== null && _a !== void 0 ? _a : 'Time';
|
|
3008
|
+
}
|
|
2935
3009
|
get dateOnly() {
|
|
2936
3010
|
return this.timeMode === DbxDateTimeFieldTimeMode.NONE;
|
|
2937
3011
|
}
|
|
@@ -2960,9 +3034,10 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2960
3034
|
return (_a = this.field.props.hideDateHint) !== null && _a !== void 0 ? _a : false;
|
|
2961
3035
|
}
|
|
2962
3036
|
ngOnInit() {
|
|
2963
|
-
var _a, _b;
|
|
3037
|
+
var _a, _b, _c, _d;
|
|
2964
3038
|
this._formControlObs.next(this.formControl);
|
|
2965
3039
|
this._config.next((_b = (_a = this.dateTimeField).getConfigObs) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
3040
|
+
this._syncConfigObs.next((_d = (_c = this.dateTimeField).getSyncFieldsObs) === null || _d === void 0 ? void 0 : _d.call(_c));
|
|
2966
3041
|
const valueFactory = dbxDateTimeOutputValueFactory(this.valueMode);
|
|
2967
3042
|
this._sub.subscription = this.timeOutput$.pipe(skipFirstMaybe()).subscribe((dateValue) => {
|
|
2968
3043
|
const value = valueFactory(dateValue);
|
|
@@ -3020,15 +3095,14 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
3020
3095
|
this._formControlObs.complete();
|
|
3021
3096
|
this._config.complete();
|
|
3022
3097
|
this._updateTime.complete();
|
|
3098
|
+
this._syncConfigObs.complete();
|
|
3023
3099
|
this._sub.destroy();
|
|
3024
3100
|
this._valueSub.destroy();
|
|
3025
3101
|
}
|
|
3026
3102
|
datePicked(event) {
|
|
3027
3103
|
const date = event.value;
|
|
3028
|
-
console.log('date picked?', event);
|
|
3029
3104
|
if (date) {
|
|
3030
|
-
this.
|
|
3031
|
-
this._updateTime.next();
|
|
3105
|
+
this.setDateInputValue(date);
|
|
3032
3106
|
}
|
|
3033
3107
|
}
|
|
3034
3108
|
setLogicalTime(time) {
|
|
@@ -3038,12 +3112,44 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
3038
3112
|
this.setTime(timeString);
|
|
3039
3113
|
}
|
|
3040
3114
|
}
|
|
3115
|
+
setDateInputValue(date) {
|
|
3116
|
+
this.dateInputCtrl.setValue(date);
|
|
3117
|
+
this._updateTime.next();
|
|
3118
|
+
}
|
|
3041
3119
|
setTime(time) {
|
|
3042
3120
|
this.timeInputCtrl.setValue(time);
|
|
3043
3121
|
this._offset.next(0);
|
|
3044
3122
|
this._updateTime.next();
|
|
3045
3123
|
}
|
|
3046
|
-
|
|
3124
|
+
keydownOnDateInput(event) {
|
|
3125
|
+
var _a;
|
|
3126
|
+
let direction = 0;
|
|
3127
|
+
switch ((_a = event.key) === null || _a === void 0 ? void 0 : _a.toLowerCase()) {
|
|
3128
|
+
case 'arrowup':
|
|
3129
|
+
direction = 1;
|
|
3130
|
+
break;
|
|
3131
|
+
case 'arrowdown':
|
|
3132
|
+
direction = -1;
|
|
3133
|
+
break;
|
|
3134
|
+
}
|
|
3135
|
+
let offset = 1;
|
|
3136
|
+
if (event.ctrlKey && event.shiftKey) {
|
|
3137
|
+
offset = 365;
|
|
3138
|
+
}
|
|
3139
|
+
else if (event.ctrlKey) {
|
|
3140
|
+
offset = 30;
|
|
3141
|
+
}
|
|
3142
|
+
else if (event.shiftKey) {
|
|
3143
|
+
offset = 7;
|
|
3144
|
+
}
|
|
3145
|
+
if (direction !== 0) {
|
|
3146
|
+
this.date$.pipe(first()).subscribe((date) => {
|
|
3147
|
+
const newDate = addDays(date, offset * direction);
|
|
3148
|
+
this.setDateInputValue(newDate);
|
|
3149
|
+
});
|
|
3150
|
+
}
|
|
3151
|
+
}
|
|
3152
|
+
keydownOnTimeInput(event) {
|
|
3047
3153
|
var _a;
|
|
3048
3154
|
let direction = 0;
|
|
3049
3155
|
switch ((_a = event.key) === null || _a === void 0 ? void 0 : _a.toLowerCase()) {
|
|
@@ -3088,10 +3194,10 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
3088
3194
|
}
|
|
3089
3195
|
}
|
|
3090
3196
|
DbxDateTimeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxDateTimeFieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3091
|
-
DbxDateTimeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxDateTimeFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-datetime-field\" fxLayout=\"row wrap\" fxLayout.xs=\"column wrap\" fxLayoutAlign=\"space-evenly stretch\">\n <!-- Date -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"dateOnly ? '100' : '50'\" *ngIf=\"showDateInput\">\n <ng-container *ngTemplateOutlet=\"dateInputTemplate\"></ng-container>\n </div>\n <!-- Time -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"showDateInput ? '50' : '100'\">\n <ng-container *ngIf=\"showTimeInput$ | async\">\n <ng-container *ngTemplateOutlet=\"timeMenuAndInputTemplate\"></ng-container>\n </ng-container>\n <div class=\"add-time-button-wrapper\" *ngIf=\"showAddTime$ | async\">\n <button mat-button class=\"add-time-button\" ngClass.lt-sm=\"add-time-button-full\" (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n </div>\n <div *ngIf=\"!hideDateHint\" class=\"dbx-datetime-row dbx-datetime-hint-row\" fxFlex=\"100\">\n <div class=\"dbx-hint\" [ngSwitch]=\"fullDay$ | async\">\n <small *ngSwitchCase=\"true\">\n <b class=\"dbx-ok\">All Day</b>\n {{
|
|
3197
|
+
DbxDateTimeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxDateTimeFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-datetime-field\" fxLayout=\"row wrap\" fxLayout.xs=\"column wrap\" fxLayoutAlign=\"space-evenly stretch\">\n <!-- Date -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"dateOnly ? '100' : '50'\" *ngIf=\"showDateInput\">\n <ng-container *ngTemplateOutlet=\"dateInputTemplate\"></ng-container>\n </div>\n <!-- Time -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"showDateInput ? '50' : '100'\">\n <ng-container *ngIf=\"showTimeInput$ | async\">\n <ng-container *ngTemplateOutlet=\"timeMenuAndInputTemplate\"></ng-container>\n </ng-container>\n <div class=\"add-time-button-wrapper\" *ngIf=\"showAddTime$ | async\">\n <button mat-button class=\"add-time-button\" ngClass.lt-sm=\"add-time-button-full\" (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n </div>\n <div *ngIf=\"!hideDateHint\" class=\"dbx-datetime-row dbx-datetime-hint-row\" fxFlex=\"100\">\n <div class=\"dbx-hint\" [ngSwitch]=\"fullDay$ | async\">\n <small *ngSwitchCase=\"true\">\n <b class=\"dbx-ok\">All Day</b>\n {{ displayValue$ | async | date: 'fullDate' }} ({{ displayValue$ | async | dateDistance }})\n </small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"value$ | async\">\n <b class=\"dbx-ok\">At</b>\n {{ displayValue$ | async | date: 'medium' }} ({{ displayValue$ | async | timeDistance }})\n </ng-container>\n </small>\n </div>\n </div>\n</div>\n\n<!-- Date Input Template -->\n<ng-template #dateInputTemplate>\n <button mat-icon-button (click)=\"picker.open()\" [disabled]=\"disabled\">\n <mat-icon>calendar_today</mat-icon>\n </button>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ dateLabel }}</mat-label>\n <input #dateInput matInput [min]=\"dateInputMin$ | async\" [max]=\"dateInputMax$ | async\" [matDatepicker]=\"picker\" (dateChange)=\"datePicked($event)\" [value]=\"dateValue$ | async\" (keydown)=\"keydownOnDateInput($event)\" />\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n</ng-template>\n\n<!-- Time Menu/Input Template -->\n<ng-template #timeMenuAndInputTemplate>\n <button mat-icon-button [matMenuTriggerFor]=\"timemenu\" aria-label=\"opens the time menu\" [disabled]=\"disabled\">\n <mat-icon>timer</mat-icon>\n </button>\n <mat-menu #timemenu=\"matMenu\">\n <ng-container *ngIf=\"timeMode === 'optional'\">\n <button mat-menu-item (click)=\"removeTime()\">\n <span>Remove Time</span>\n </button>\n <mat-divider></mat-divider>\n </ng-container>\n <button mat-menu-item (click)=\"setLogicalTime('now')\">\n <span>Now</span>\n </button>\n <button mat-menu-item (click)=\"setTime('12:00AM')\">\n <span>Midnight</span>\n </button>\n <button mat-menu-item (click)=\"setTime('6:00AM')\">\n <span>6:00AM</span>\n </button>\n <button mat-menu-item (click)=\"setTime('8:00AM')\">\n <span>8:00AM</span>\n </button>\n <button mat-menu-item (click)=\"setTime('10:00AM')\">\n <span>10:00AM</span>\n </button>\n <button mat-menu-item (click)=\"setTime('12:00PM')\">\n <span>Noon</span>\n </button>\n <button mat-menu-item (click)=\"setTime('2:00PM')\">\n <span>2:00PM</span>\n </button>\n <button mat-menu-item (click)=\"setTime('5:00PM')\">\n <span>5:00PM</span>\n </button>\n </mat-menu>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ timeLabel }}</mat-label>\n <input #timeInput matInput [formControl]=\"timeInputCtrl\" (focus)=\"focusTime()\" (focusout)=\"focusOutTime()\" (keydown)=\"keydownOnTimeInput($event)\" />\n </mat-form-field>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3$4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i1$2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3$3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3$3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3$3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i2.TimeDistancePipe, name: "timeDistance" }, { kind: "pipe", type: i2.DateDistancePipe, name: "dateDistance" }] });
|
|
3092
3198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxDateTimeFieldComponent, decorators: [{
|
|
3093
3199
|
type: Component,
|
|
3094
|
-
args: [{ template: "<div class=\"dbx-datetime-field\" fxLayout=\"row wrap\" fxLayout.xs=\"column wrap\" fxLayoutAlign=\"space-evenly stretch\">\n <!-- Date -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"dateOnly ? '100' : '50'\" *ngIf=\"showDateInput\">\n <ng-container *ngTemplateOutlet=\"dateInputTemplate\"></ng-container>\n </div>\n <!-- Time -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"showDateInput ? '50' : '100'\">\n <ng-container *ngIf=\"showTimeInput$ | async\">\n <ng-container *ngTemplateOutlet=\"timeMenuAndInputTemplate\"></ng-container>\n </ng-container>\n <div class=\"add-time-button-wrapper\" *ngIf=\"showAddTime$ | async\">\n <button mat-button class=\"add-time-button\" ngClass.lt-sm=\"add-time-button-full\" (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n </div>\n <div *ngIf=\"!hideDateHint\" class=\"dbx-datetime-row dbx-datetime-hint-row\" fxFlex=\"100\">\n <div class=\"dbx-hint\" [ngSwitch]=\"fullDay$ | async\">\n <small *ngSwitchCase=\"true\">\n <b class=\"dbx-ok\">All Day</b>\n {{
|
|
3200
|
+
args: [{ template: "<div class=\"dbx-datetime-field\" fxLayout=\"row wrap\" fxLayout.xs=\"column wrap\" fxLayoutAlign=\"space-evenly stretch\">\n <!-- Date -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"dateOnly ? '100' : '50'\" *ngIf=\"showDateInput\">\n <ng-container *ngTemplateOutlet=\"dateInputTemplate\"></ng-container>\n </div>\n <!-- Time -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"showDateInput ? '50' : '100'\">\n <ng-container *ngIf=\"showTimeInput$ | async\">\n <ng-container *ngTemplateOutlet=\"timeMenuAndInputTemplate\"></ng-container>\n </ng-container>\n <div class=\"add-time-button-wrapper\" *ngIf=\"showAddTime$ | async\">\n <button mat-button class=\"add-time-button\" ngClass.lt-sm=\"add-time-button-full\" (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n </div>\n <div *ngIf=\"!hideDateHint\" class=\"dbx-datetime-row dbx-datetime-hint-row\" fxFlex=\"100\">\n <div class=\"dbx-hint\" [ngSwitch]=\"fullDay$ | async\">\n <small *ngSwitchCase=\"true\">\n <b class=\"dbx-ok\">All Day</b>\n {{ displayValue$ | async | date: 'fullDate' }} ({{ displayValue$ | async | dateDistance }})\n </small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"value$ | async\">\n <b class=\"dbx-ok\">At</b>\n {{ displayValue$ | async | date: 'medium' }} ({{ displayValue$ | async | timeDistance }})\n </ng-container>\n </small>\n </div>\n </div>\n</div>\n\n<!-- Date Input Template -->\n<ng-template #dateInputTemplate>\n <button mat-icon-button (click)=\"picker.open()\" [disabled]=\"disabled\">\n <mat-icon>calendar_today</mat-icon>\n </button>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ dateLabel }}</mat-label>\n <input #dateInput matInput [min]=\"dateInputMin$ | async\" [max]=\"dateInputMax$ | async\" [matDatepicker]=\"picker\" (dateChange)=\"datePicked($event)\" [value]=\"dateValue$ | async\" (keydown)=\"keydownOnDateInput($event)\" />\n <mat-datepicker #picker></mat-datepicker>\n </mat-form-field>\n</ng-template>\n\n<!-- Time Menu/Input Template -->\n<ng-template #timeMenuAndInputTemplate>\n <button mat-icon-button [matMenuTriggerFor]=\"timemenu\" aria-label=\"opens the time menu\" [disabled]=\"disabled\">\n <mat-icon>timer</mat-icon>\n </button>\n <mat-menu #timemenu=\"matMenu\">\n <ng-container *ngIf=\"timeMode === 'optional'\">\n <button mat-menu-item (click)=\"removeTime()\">\n <span>Remove Time</span>\n </button>\n <mat-divider></mat-divider>\n </ng-container>\n <button mat-menu-item (click)=\"setLogicalTime('now')\">\n <span>Now</span>\n </button>\n <button mat-menu-item (click)=\"setTime('12:00AM')\">\n <span>Midnight</span>\n </button>\n <button mat-menu-item (click)=\"setTime('6:00AM')\">\n <span>6:00AM</span>\n </button>\n <button mat-menu-item (click)=\"setTime('8:00AM')\">\n <span>8:00AM</span>\n </button>\n <button mat-menu-item (click)=\"setTime('10:00AM')\">\n <span>10:00AM</span>\n </button>\n <button mat-menu-item (click)=\"setTime('12:00PM')\">\n <span>Noon</span>\n </button>\n <button mat-menu-item (click)=\"setTime('2:00PM')\">\n <span>2:00PM</span>\n </button>\n <button mat-menu-item (click)=\"setTime('5:00PM')\">\n <span>5:00PM</span>\n </button>\n </mat-menu>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ timeLabel }}</mat-label>\n <input #timeInput matInput [formControl]=\"timeInputCtrl\" (focus)=\"focusTime()\" (focusout)=\"focusOutTime()\" (keydown)=\"keydownOnTimeInput($event)\" />\n </mat-form-field>\n</ng-template>\n" }]
|
|
3095
3201
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
|
3096
3202
|
|
|
3097
3203
|
class DbxFormFormlyDateFieldModule {
|
|
@@ -3166,20 +3272,35 @@ function timeOnlyField(config = {}) {
|
|
|
3166
3272
|
return dateTimeField(Object.assign(Object.assign({}, config), { timeMode: DbxDateTimeFieldTimeMode.REQUIRED, timeOnly: true }));
|
|
3167
3273
|
}
|
|
3168
3274
|
function dateTimeField(config = {}) {
|
|
3169
|
-
const { key = 'date', timeMode = DbxDateTimeFieldTimeMode.REQUIRED, valueMode, fullDayInUTC, fullDayFieldName, getConfigObs, hideDateHint, timeOnly = false } = config;
|
|
3170
|
-
const fieldConfig = formlyField(Object.assign({ key, type: 'datetime' },
|
|
3275
|
+
const { key = 'date', dateLabel, timeLabel, timeMode = DbxDateTimeFieldTimeMode.REQUIRED, valueMode, fullDayInUTC, fullDayFieldName, getConfigObs, getSyncFieldsObs, hideDateHint, timeOnly = false } = config;
|
|
3276
|
+
const fieldConfig = formlyField(Object.assign({ key, type: 'datetime' }, propsAndConfigForFieldConfig(config, {
|
|
3277
|
+
dateLabel,
|
|
3278
|
+
timeLabel,
|
|
3171
3279
|
valueMode,
|
|
3172
3280
|
timeOnly,
|
|
3173
3281
|
timeMode: timeOnly ? DbxDateTimeFieldTimeMode.REQUIRED : timeMode,
|
|
3174
3282
|
fullDayFieldName,
|
|
3175
3283
|
fullDayInUTC,
|
|
3176
3284
|
hideDateHint,
|
|
3177
|
-
getConfigObs
|
|
3285
|
+
getConfigObs,
|
|
3286
|
+
getSyncFieldsObs
|
|
3178
3287
|
})));
|
|
3179
3288
|
return styleWrapper(fieldConfig, {
|
|
3180
3289
|
classGetter: 'dbx-mat-form-field-disable-underline'
|
|
3181
3290
|
});
|
|
3182
3291
|
}
|
|
3292
|
+
function dateRangeField(config = {}) {
|
|
3293
|
+
var _a, _b;
|
|
3294
|
+
const { start, end } = config;
|
|
3295
|
+
const startFieldKey = (_a = start === null || start === void 0 ? void 0 : start.key) !== null && _a !== void 0 ? _a : 'start';
|
|
3296
|
+
const endFieldKey = (_b = end === null || end === void 0 ? void 0 : end.key) !== null && _b !== void 0 ? _b : 'end';
|
|
3297
|
+
const startField = dateTimeField(Object.assign(Object.assign({ dateLabel: 'Start', timeMode: DbxDateTimeFieldTimeMode.NONE, getSyncFieldsObs: () => of([{ syncWith: endFieldKey, syncType: 'after' }]) }, start), { key: startFieldKey }));
|
|
3298
|
+
const endField = dateTimeField(Object.assign(Object.assign({ dateLabel: 'End', timeMode: DbxDateTimeFieldTimeMode.NONE, getSyncFieldsObs: () => of([{ syncWith: startFieldKey, syncType: 'before' }]) }, end), { key: endFieldKey }));
|
|
3299
|
+
return {
|
|
3300
|
+
key: undefined,
|
|
3301
|
+
fieldGroup: [flexLayoutWrapper([startField, endField], { size: 1, relative: true })]
|
|
3302
|
+
};
|
|
3303
|
+
}
|
|
3183
3304
|
|
|
3184
3305
|
function isTruthy() {
|
|
3185
3306
|
return (control) => {
|
|
@@ -3248,6 +3369,12 @@ function isInRange(min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER)
|
|
|
3248
3369
|
};
|
|
3249
3370
|
}
|
|
3250
3371
|
const IS_DIVISIBLE_BY_VALIDATION_KEY = 'isDivisibleBy';
|
|
3372
|
+
/**
|
|
3373
|
+
* Angular Form ValidationFn for checking isDivisibleBy the input divisor.
|
|
3374
|
+
*
|
|
3375
|
+
* @param divisor
|
|
3376
|
+
* @returns
|
|
3377
|
+
*/
|
|
3251
3378
|
function isDivisibleBy(divisor) {
|
|
3252
3379
|
if (divisor === 0) {
|
|
3253
3380
|
throw new Error('Divisior must be greater than zero.');
|
|
@@ -3298,20 +3425,33 @@ function fieldValueIsAvailableValidator(config) {
|
|
|
3298
3425
|
})), first());
|
|
3299
3426
|
}
|
|
3300
3427
|
|
|
3428
|
+
function numberFieldTransformParser(config) {
|
|
3429
|
+
const { parsers: inputParsers, transform } = config;
|
|
3430
|
+
let parsers;
|
|
3431
|
+
if (inputParsers) {
|
|
3432
|
+
parsers = inputParsers;
|
|
3433
|
+
}
|
|
3434
|
+
if (transform) {
|
|
3435
|
+
const transformParser = transformNumberFunction(transform);
|
|
3436
|
+
parsers = concatArrays([transformParser], parsers);
|
|
3437
|
+
}
|
|
3438
|
+
return parsers;
|
|
3439
|
+
}
|
|
3301
3440
|
function numberField(config) {
|
|
3302
3441
|
const { key, min, max, step, enforceStep, inputType: type = 'number' } = config;
|
|
3442
|
+
const parsers = numberFieldTransformParser(config);
|
|
3303
3443
|
const validators = [];
|
|
3304
3444
|
if (step && enforceStep) {
|
|
3305
3445
|
validators.push(isDivisibleBy(step));
|
|
3306
3446
|
}
|
|
3307
|
-
return formlyField(Object.assign(Object.assign({ key, type: 'input' },
|
|
3447
|
+
return formlyField(Object.assign(Object.assign(Object.assign({ key, type: 'input' }, propsAndConfigForFieldConfig(config, {
|
|
3308
3448
|
type,
|
|
3309
3449
|
min,
|
|
3310
3450
|
max,
|
|
3311
3451
|
step
|
|
3312
3452
|
})), validatorsForFieldConfig({
|
|
3313
3453
|
validators
|
|
3314
|
-
})));
|
|
3454
|
+
})), { parsers }));
|
|
3315
3455
|
}
|
|
3316
3456
|
|
|
3317
3457
|
class DbxFormFormlyNumberFieldModule {
|
|
@@ -3397,28 +3537,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
3397
3537
|
}]
|
|
3398
3538
|
}] });
|
|
3399
3539
|
|
|
3540
|
+
function textFieldTransformParser(config) {
|
|
3541
|
+
const { parsers: inputParsers, transform } = config;
|
|
3542
|
+
let parsers;
|
|
3543
|
+
if (inputParsers) {
|
|
3544
|
+
parsers = inputParsers;
|
|
3545
|
+
}
|
|
3546
|
+
if (transform) {
|
|
3547
|
+
const transformParser = transformStringFunction(transform);
|
|
3548
|
+
parsers = concatArrays([transformParser], parsers);
|
|
3549
|
+
}
|
|
3550
|
+
return parsers;
|
|
3551
|
+
}
|
|
3400
3552
|
function textField(config) {
|
|
3401
|
-
const { key, pattern, minLength, maxLength, inputType: type = 'text' } = config;
|
|
3402
|
-
|
|
3553
|
+
const { transform, key, pattern, minLength, maxLength, inputType: type = 'text' } = config;
|
|
3554
|
+
const parsers = textFieldTransformParser(config);
|
|
3555
|
+
return formlyField(Object.assign(Object.assign({ key, type: 'input' }, propsAndConfigForFieldConfig(config, {
|
|
3403
3556
|
type,
|
|
3404
3557
|
minLength,
|
|
3405
3558
|
maxLength,
|
|
3406
3559
|
pattern
|
|
3407
|
-
})));
|
|
3560
|
+
})), { parsers }));
|
|
3408
3561
|
}
|
|
3409
3562
|
function textAreaField(config) {
|
|
3410
3563
|
const { key, rows = 3, pattern, minLength, maxLength } = config;
|
|
3411
|
-
|
|
3564
|
+
const parsers = textFieldTransformParser(config);
|
|
3565
|
+
return formlyField(Object.assign(Object.assign({ key, type: 'textarea' }, propsAndConfigForFieldConfig(config, {
|
|
3412
3566
|
rows,
|
|
3413
3567
|
minLength,
|
|
3414
3568
|
maxLength,
|
|
3415
3569
|
pattern
|
|
3416
|
-
})));
|
|
3570
|
+
})), { parsers }));
|
|
3417
3571
|
}
|
|
3418
3572
|
|
|
3419
3573
|
function phoneField(config = {}) {
|
|
3420
3574
|
const { key = 'phone', preferredCountries, onlyCountries } = config;
|
|
3421
|
-
const fieldConfig = formlyField(Object.assign({ key, type: 'intphone' },
|
|
3575
|
+
const fieldConfig = formlyField(Object.assign({ key, type: 'intphone' }, propsAndConfigForFieldConfig(config, {
|
|
3422
3576
|
preferredCountries,
|
|
3423
3577
|
onlyCountries
|
|
3424
3578
|
})));
|
|
@@ -3502,7 +3656,9 @@ function stateField(config = {}) {
|
|
|
3502
3656
|
pattern,
|
|
3503
3657
|
autocomplete,
|
|
3504
3658
|
required,
|
|
3505
|
-
maxLength
|
|
3659
|
+
maxLength, transform: {
|
|
3660
|
+
toUppercase: true
|
|
3661
|
+
} }));
|
|
3506
3662
|
}
|
|
3507
3663
|
function countryField(config = {}) {
|
|
3508
3664
|
const { key = 'country', placeholder = '', label = 'Country', autocomplete = 'country', maxLength = ADDRESS_COUNTRY_MAX_LENGTH, required = false } = config;
|
|
@@ -4237,5 +4393,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
4237
4393
|
* Generated bundle index. Do not edit.
|
|
4238
4394
|
*/
|
|
4239
4395
|
|
|
4240
|
-
export { APP_ACTION_FORM_DISABLED_KEY, AUTO_TOUCH_WRAPPER_KEY, AbstractAsyncFormlyFormDirective, AbstractConfigAsyncFormlyFormDirective, AbstractDbxPickableItemFieldDirective, AbstractDbxSearchableFieldDisplayDirective, AbstractDbxSearchableValueFieldDirective, AbstractFormExpandableSectionWrapperDirective, AbstractFormlyFormDirective, AbstractSyncFormlyFormDirective, AutoTouchFieldWrapperComponent, ChecklistItemFieldDataSetBuilder, DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN, DEFAULT_FORM_DISABLED_KEY, DEFAULT_HAS_VALUE_FN, DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER, DEFAULT_PREFERRED_COUNTRIES, DISPLAY_FOR_TIMEZONE_STRING_VALUE, DbxActionFormDirective, DbxActionFormSafetyDirective, DbxChecklistItemContentComponent, DbxChecklistItemFieldComponent, DbxDateTimeFieldComponent, DbxDateTimeFieldTimeMode, DbxDateTimeValueMode, DbxDefaultChecklistItemFieldDisplayComponent, DbxDefaultSearchableFieldDisplayComponent, DbxForm, DbxFormActionModule, DbxFormActionTransitionModule, DbxFormComponentFieldComponent, DbxFormExpandWrapperComponent, DbxFormExtensionModule, DbxFormFlexWrapperComponent, DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyFieldModule, DbxFormFormlyNumberFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyTextFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule, DbxFormInfoWrapperComponent, DbxFormIoModule, DbxFormLayoutModule, DbxFormLoadingSourceDirective, DbxFormModule, DbxFormRepeatArrayTypeComponent, DbxFormSectionWrapperComponent, DbxFormSourceDirective, DbxFormSpacerComponent, DbxFormState, DbxFormSubsectionWrapperComponent, DbxFormToggleWrapperComponent, DbxFormValueChangesDirective, DbxFormWorkingWrapperComponent, DbxFormlyContext, DbxFormlyFieldsContextDirective, DbxFormlyFormComponent, DbxFormlyModule, DbxMutableForm, DbxPhoneFieldComponent, DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent, DbxSearchableChipFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxSearchableTextFieldComponent, DbxTextEditorFieldComponent, EXPANDABLE_WRAPPER_KEY, FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_ERROR_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_VALIDATION_KEY, FLEX_WRAPPER_KEY, INFO_WRAPPER_KEY, INVALID_PHONE_NUMBER_MESSAGE, IS_DIVISIBLE_BY_VALIDATION_KEY, LABEL_STRING_MAX_LENGTH, MAX_LENGTH_VALIDATION_MESSAGE, MAX_VALIDATION_MESSAGE, MIN_LENGTH_VALIDATION_MESSAGE, MIN_VALIDATION_MESSAGE, PHONE_LABEL_MAX_LENGTH, REQUIRED_VALIDATION_MESSAGE, SEARCH_STRING_MAX_LENGTH, SECTION_WRAPPER_KEY, STYLE_WRAPPER_KEY, SUBSECTION_WRAPPER_KEY, TAKE_NEXT_UPCOMING_TIME_CONFIG_OBS, TOGGLE_WRAPPER_KEY, WORKING_WRAPPER_KEY, addWrapperToFormlyFieldConfig, addressField, addressFormlyFields, addressLineField, addressListField, autoTouchWrapper, checkIsFieldFlexLayoutGroupFieldConfig, checkboxField, checklistItemField, chipTextField, cityField, componentField, countryField, dateTimeField, dbxDateTimeInputValueParseFactory, dbxDateTimeOutputValueFactory, dbxFormSourceObservable, defaultValidationMessages, disableFormlyFieldAutofillAttributes, emailField, expandWrapper, fieldValueIsAvailableValidator, fieldValuesAreEqualValidator, filterPartialPotentialFieldConfigValuesFromObject, filterPickableItemFieldValuesByLabel, filterPickableItemFieldValuesByLabelFilterFunction, flexLayoutWrapper, formlyField, hiddenField, infoWrapper, isDivisibleBy, isDomain, isInRange, isTruthy, latLngTextField, makeMetaFilterSearchableFieldValueDisplayFn, maxLengthValidationMessage, maxValidationMessage, mergePropsValueObjects, minLengthValidationMessage, minValidationMessage, nameField, numberField, partialPotentialFieldConfigKeys, partialPotentialFieldConfigKeysFilter, phoneAndLabelSectionField, phoneField, phoneListField, pickableItemChipField, pickableItemListField, propsForFieldConfig, propsValueForFieldConfig, provideDbxForm, provideDbxMutableForm, provideFormlyContext, repeatArrayField, searchableChipField, searchableStringChipField, searchableTextField, sectionWrapper, sortPickableItemsByLabel, stateField, styleWrapper, subsectionWrapper, textAreaField, textEditorField, textField, textIsAvailableField, textPasswordField, textPasswordWithVerifyFieldGroup, textVerifyPasswordField, timeOnlyField, timezoneStringField, timezoneStringSearchFunction, toggleField, toggleWrapper, usernamePasswordLoginFields, validatorsForFieldConfig, valueSelectionField, workingWrapper, wrappedPhoneAndLabelField, zipCodeField };
|
|
4396
|
+
export { APP_ACTION_FORM_DISABLED_KEY, AUTO_TOUCH_WRAPPER_KEY, AbstractAsyncFormlyFormDirective, AbstractConfigAsyncFormlyFormDirective, AbstractDbxPickableItemFieldDirective, AbstractDbxSearchableFieldDisplayDirective, AbstractDbxSearchableValueFieldDirective, AbstractFormExpandableSectionWrapperDirective, AbstractFormlyFormDirective, AbstractSyncFormlyFormDirective, AutoTouchFieldWrapperComponent, ChecklistItemFieldDataSetBuilder, DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN, DEFAULT_FORM_DISABLED_KEY, DEFAULT_HAS_VALUE_FN, DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER, DEFAULT_PREFERRED_COUNTRIES, DISPLAY_FOR_TIMEZONE_STRING_VALUE, DbxActionFormDirective, DbxActionFormSafetyDirective, DbxChecklistItemContentComponent, DbxChecklistItemFieldComponent, DbxDateTimeFieldComponent, DbxDateTimeFieldTimeMode, DbxDateTimeValueMode, DbxDefaultChecklistItemFieldDisplayComponent, DbxDefaultSearchableFieldDisplayComponent, DbxForm, DbxFormActionModule, DbxFormActionTransitionModule, DbxFormComponentFieldComponent, DbxFormExpandWrapperComponent, DbxFormExtensionModule, DbxFormFlexWrapperComponent, DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyFieldModule, DbxFormFormlyNumberFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyTextFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule, DbxFormInfoWrapperComponent, DbxFormIoModule, DbxFormLayoutModule, DbxFormLoadingSourceDirective, DbxFormModule, DbxFormRepeatArrayTypeComponent, DbxFormSectionWrapperComponent, DbxFormSourceDirective, DbxFormSpacerComponent, DbxFormState, DbxFormSubsectionWrapperComponent, DbxFormToggleWrapperComponent, DbxFormValueChangesDirective, DbxFormWorkingWrapperComponent, DbxFormlyContext, DbxFormlyFieldsContextDirective, DbxFormlyFormComponent, DbxFormlyModule, DbxMutableForm, DbxPhoneFieldComponent, DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent, DbxSearchableChipFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxSearchableTextFieldComponent, DbxTextEditorFieldComponent, EXPANDABLE_WRAPPER_KEY, FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_ERROR_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_VALIDATION_KEY, FLEX_WRAPPER_KEY, INFO_WRAPPER_KEY, INVALID_PHONE_NUMBER_MESSAGE, IS_DIVISIBLE_BY_VALIDATION_KEY, LABEL_STRING_MAX_LENGTH, MAX_LENGTH_VALIDATION_MESSAGE, MAX_VALIDATION_MESSAGE, MIN_LENGTH_VALIDATION_MESSAGE, MIN_VALIDATION_MESSAGE, PHONE_LABEL_MAX_LENGTH, REQUIRED_VALIDATION_MESSAGE, SEARCH_STRING_MAX_LENGTH, SECTION_WRAPPER_KEY, STYLE_WRAPPER_KEY, SUBSECTION_WRAPPER_KEY, TAKE_NEXT_UPCOMING_TIME_CONFIG_OBS, TOGGLE_WRAPPER_KEY, WORKING_WRAPPER_KEY, addWrapperToFormlyFieldConfig, addressField, addressFormlyFields, addressLineField, addressListField, autoTouchWrapper, checkIsFieldFlexLayoutGroupFieldConfig, checkboxField, checklistItemField, chipTextField, cityField, componentField, countryField, dateRangeField, dateTimeField, dbxDateTimeInputValueParseFactory, dbxDateTimeOutputValueFactory, dbxFormSourceObservable, defaultValidationMessages, disableFormlyFieldAutofillAttributes, emailField, expandWrapper, fieldValueIsAvailableValidator, fieldValuesAreEqualValidator, filterPartialPotentialFieldConfigValuesFromObject, filterPickableItemFieldValuesByLabel, filterPickableItemFieldValuesByLabelFilterFunction, flexLayoutWrapper, formlyField, hiddenField, infoWrapper, isDivisibleBy, isDomain, isInRange, isTruthy, latLngTextField, makeMetaFilterSearchableFieldValueDisplayFn, maxLengthValidationMessage, maxValidationMessage, mergePropsValueObjects, minLengthValidationMessage, minValidationMessage, nameField, numberField, numberFieldTransformParser, partialPotentialFieldConfigKeys, partialPotentialFieldConfigKeysFilter, phoneAndLabelSectionField, phoneField, phoneListField, pickableItemChipField, pickableItemListField, propsAndConfigForFieldConfig, propsForFieldConfig, propsValueForFieldConfig, provideDbxForm, provideDbxMutableForm, provideFormlyContext, repeatArrayField, searchableChipField, searchableStringChipField, searchableTextField, sectionWrapper, sortPickableItemsByLabel, stateField, styleWrapper, subsectionWrapper, syncConfigValueObs, textAreaField, textEditorField, textField, textFieldTransformParser, textIsAvailableField, textPasswordField, textPasswordWithVerifyFieldGroup, textVerifyPasswordField, timeOnlyField, timezoneStringField, timezoneStringSearchFunction, toggleField, toggleWrapper, usernamePasswordLoginFields, validatorsForFieldConfig, valueSelectionField, workingWrapper, wrappedPhoneAndLabelField, zipCodeField };
|
|
4241
4397
|
//# sourceMappingURL=dereekb-dbx-form.mjs.map
|