@dereekb/dbx-form 9.15.5 → 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 +111 -12
- package/esm2020/lib/formly/field/value/date/datetime.field.mjs +35 -7
- 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 +5 -8
- package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +5 -8
- 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 +208 -51
- 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 +226 -50
- 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 +52 -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 +3 -6
- package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +3 -6
- 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,7 +4,7 @@ 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
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';
|
|
@@ -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';
|
|
@@ -657,16 +657,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
657
657
|
}] });
|
|
658
658
|
|
|
659
659
|
class DbxFormSectionWrapperComponent extends FieldWrapper {
|
|
660
|
-
get
|
|
661
|
-
return this.props
|
|
662
|
-
}
|
|
663
|
-
get hint() {
|
|
664
|
-
return this.props.hint;
|
|
660
|
+
get headerConfig() {
|
|
661
|
+
return this.props;
|
|
665
662
|
}
|
|
666
663
|
}
|
|
667
664
|
DbxFormSectionWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFormSectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
668
665
|
DbxFormSectionWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxFormSectionWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
669
|
-
<dbx-section [
|
|
666
|
+
<dbx-section [headerConfig]="headerConfig">
|
|
670
667
|
<ng-container #fieldComponent></ng-container>
|
|
671
668
|
</dbx-section>
|
|
672
669
|
`, isInline: true, dependencies: [{ kind: "component", type: i1$1.DbxSectionComponent, selector: "dbx-section", inputs: ["elevate"] }] });
|
|
@@ -674,7 +671,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
674
671
|
type: Component,
|
|
675
672
|
args: [{
|
|
676
673
|
template: `
|
|
677
|
-
<dbx-section [
|
|
674
|
+
<dbx-section [headerConfig]="headerConfig">
|
|
678
675
|
<ng-container #fieldComponent></ng-container>
|
|
679
676
|
</dbx-section>
|
|
680
677
|
`
|
|
@@ -711,16 +708,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
711
708
|
}] });
|
|
712
709
|
|
|
713
710
|
class DbxFormSubsectionWrapperComponent extends FieldWrapper {
|
|
714
|
-
get
|
|
715
|
-
return this.props
|
|
716
|
-
}
|
|
717
|
-
get hint() {
|
|
718
|
-
return this.props.hint;
|
|
711
|
+
get headerConfig() {
|
|
712
|
+
return this.props;
|
|
719
713
|
}
|
|
720
714
|
}
|
|
721
715
|
DbxFormSubsectionWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxFormSubsectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
722
716
|
DbxFormSubsectionWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxFormSubsectionWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
723
|
-
<dbx-subsection [
|
|
717
|
+
<dbx-subsection [headerConfig]="headerConfig">
|
|
724
718
|
<ng-container #fieldComponent></ng-container>
|
|
725
719
|
</dbx-subsection>
|
|
726
720
|
`, isInline: true, dependencies: [{ kind: "component", type: i1$1.DbxSubSectionComponent, selector: "dbx-subsection" }] });
|
|
@@ -728,7 +722,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
728
722
|
type: Component,
|
|
729
723
|
args: [{
|
|
730
724
|
template: `
|
|
731
|
-
<dbx-subsection [
|
|
725
|
+
<dbx-subsection [headerConfig]="headerConfig">
|
|
732
726
|
<ng-container #fieldComponent></ng-container>
|
|
733
727
|
</dbx-subsection>
|
|
734
728
|
`
|
|
@@ -1185,10 +1179,20 @@ function formlyField(fieldConfig) {
|
|
|
1185
1179
|
}
|
|
1186
1180
|
return fieldConfig;
|
|
1187
1181
|
}
|
|
1188
|
-
|
|
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;
|
|
1189
1191
|
const props = propsValueForFieldConfig(fieldConfig, override);
|
|
1190
1192
|
return {
|
|
1191
|
-
props
|
|
1193
|
+
props,
|
|
1194
|
+
expressions,
|
|
1195
|
+
parsers
|
|
1192
1196
|
};
|
|
1193
1197
|
}
|
|
1194
1198
|
const partialPotentialFieldConfigKeys = ['label', 'placeholder', 'required', 'readonly', 'description', 'autocomplete'];
|
|
@@ -1254,10 +1258,16 @@ function validatorsForFieldConfig(input) {
|
|
|
1254
1258
|
}
|
|
1255
1259
|
return config;
|
|
1256
1260
|
}
|
|
1261
|
+
/**
|
|
1262
|
+
* MARK: Compat
|
|
1263
|
+
*
|
|
1264
|
+
* @deprecated use propsAndConfigForFieldConfig instead.
|
|
1265
|
+
*/
|
|
1266
|
+
const propsForFieldConfig = propsAndConfigForFieldConfig;
|
|
1257
1267
|
|
|
1258
1268
|
function checklistItemField(config) {
|
|
1259
1269
|
const { key, displayContentObs, componentClass } = config;
|
|
1260
|
-
const fieldConfig = formlyField(Object.assign({ key, type: 'checklistitem' },
|
|
1270
|
+
const fieldConfig = formlyField(Object.assign({ key, type: 'checklistitem' }, propsAndConfigForFieldConfig(config, {
|
|
1261
1271
|
displayContentObs,
|
|
1262
1272
|
componentClass
|
|
1263
1273
|
})));
|
|
@@ -1866,11 +1876,11 @@ function sortPickableItemsByLabel(chips) {
|
|
|
1866
1876
|
}
|
|
1867
1877
|
function pickableItemChipField(config) {
|
|
1868
1878
|
const { key } = config;
|
|
1869
|
-
return formlyField(Object.assign({ key, type: 'pickablechipfield' },
|
|
1879
|
+
return formlyField(Object.assign({ key, type: 'pickablechipfield' }, propsAndConfigForFieldConfig(config, Object.assign(Object.assign({}, config), { autocomplete: false }))));
|
|
1870
1880
|
}
|
|
1871
1881
|
function pickableItemListField(config) {
|
|
1872
1882
|
const { key } = config;
|
|
1873
|
-
return formlyField(Object.assign({ key, type: 'pickablelistfield' },
|
|
1883
|
+
return formlyField(Object.assign({ key, type: 'pickablelistfield' }, propsAndConfigForFieldConfig(config, Object.assign(Object.assign({}, config), { autocomplete: false }))));
|
|
1874
1884
|
}
|
|
1875
1885
|
|
|
1876
1886
|
const DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN = new InjectionToken('DbxSearchableField');
|
|
@@ -2286,11 +2296,11 @@ function searchableStringChipField(config) {
|
|
|
2286
2296
|
}
|
|
2287
2297
|
function searchableChipField(config) {
|
|
2288
2298
|
const { key, placeholder } = config;
|
|
2289
|
-
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 }))));
|
|
2290
2300
|
}
|
|
2291
2301
|
function searchableTextField(config) {
|
|
2292
2302
|
const { key } = config;
|
|
2293
|
-
return formlyField(Object.assign({ key, type: 'searchabletextfield' },
|
|
2303
|
+
return formlyField(Object.assign({ key, type: 'searchabletextfield' }, propsAndConfigForFieldConfig(config, Object.assign(Object.assign({}, config), { autocomplete: false }))));
|
|
2294
2304
|
}
|
|
2295
2305
|
|
|
2296
2306
|
/**
|
|
@@ -2424,7 +2434,7 @@ function valueSelectionField(config) {
|
|
|
2424
2434
|
selectAllOption: typeof inputSelectAllOption === 'boolean' ? 'Select All' : inputSelectAllOption
|
|
2425
2435
|
};
|
|
2426
2436
|
}
|
|
2427
|
-
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))));
|
|
2428
2438
|
}
|
|
2429
2439
|
|
|
2430
2440
|
class DbxFormFormlySelectionModule {
|
|
@@ -2571,7 +2581,7 @@ function textEditorField(config) {
|
|
|
2571
2581
|
// https://formly.dev/examples/validation/async-validation-update-on
|
|
2572
2582
|
// Set to trigger value update on blurs with the form. However, the value is set internally too.
|
|
2573
2583
|
updateOn: 'blur'
|
|
2574
|
-
} },
|
|
2584
|
+
} }, propsAndConfigForFieldConfig(config, {
|
|
2575
2585
|
minLength,
|
|
2576
2586
|
maxLength
|
|
2577
2587
|
})));
|
|
@@ -2754,7 +2764,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
2754
2764
|
|
|
2755
2765
|
function repeatArrayField(config) {
|
|
2756
2766
|
const { key, repeatFieldGroup, maxLength, addText, removeText, labelForField } = config;
|
|
2757
|
-
return formlyField(Object.assign(Object.assign({ key, type: 'repeatarray' },
|
|
2767
|
+
return formlyField(Object.assign(Object.assign({ key, type: 'repeatarray' }, propsAndConfigForFieldConfig(config, {
|
|
2758
2768
|
maxLength,
|
|
2759
2769
|
labelForField,
|
|
2760
2770
|
addText,
|
|
@@ -2780,11 +2790,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
2780
2790
|
|
|
2781
2791
|
function toggleField(config) {
|
|
2782
2792
|
const { key, defaultValue } = config;
|
|
2783
|
-
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)));
|
|
2784
2794
|
}
|
|
2785
2795
|
function checkboxField(config) {
|
|
2786
2796
|
const { key, defaultValue } = config;
|
|
2787
|
-
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)));
|
|
2788
2798
|
}
|
|
2789
2799
|
/*
|
|
2790
2800
|
export function acceptTermsField({ key = 'accept', label = 'Accept Terms', description = 'In order to proceed, please accept terms', required = true }
|
|
@@ -2867,6 +2877,20 @@ function dbxDateTimeOutputValueFactory(mode) {
|
|
|
2867
2877
|
}
|
|
2868
2878
|
return factory;
|
|
2869
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
|
+
}
|
|
2870
2894
|
class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
2871
2895
|
constructor(cdRef) {
|
|
2872
2896
|
super();
|
|
@@ -2896,13 +2920,37 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2896
2920
|
validators: [Validators.pattern(/^(now)$|^([0-9]|(0[0-9])|(1[0-9])|(2[0-3]))(:)?([0-5][0-9])?(\s)?([apAP][Mm])?(\\s)*$/)]
|
|
2897
2921
|
});
|
|
2898
2922
|
this._config = new BehaviorSubject(undefined);
|
|
2923
|
+
this._syncConfigObs = new BehaviorSubject(undefined);
|
|
2899
2924
|
this.fullDay$ = this.fullDayControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value))));
|
|
2900
2925
|
this.showTimeInput$ = this.fullDay$.pipe(map((x) => !x && this.timeMode !== DbxDateTimeFieldTimeMode.NONE));
|
|
2901
2926
|
this.showAddTime$ = this.showTimeInput$.pipe(map((x) => !x && this.timeMode === DbxDateTimeFieldTimeMode.OPTIONAL), shareReplay(1));
|
|
2902
2927
|
this.date$ = this.dateInputCtrl.valueChanges.pipe(startWith(this.dateInputCtrl.value), filterMaybe(), shareReplay(1));
|
|
2903
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));
|
|
2904
2929
|
this.timeInput$ = this._updateTime.pipe(debounceTime(5), map(() => this.timeInputCtrl.value || ''), distinctUntilChanged());
|
|
2905
|
-
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$;
|
|
2906
2954
|
this.rawDateTime$ = combineLatest([this.dateValue$, this.timeInput$.pipe(startWith(null)), this.fullDay$]).pipe(map(([date, timeString, fullDay]) => {
|
|
2907
2955
|
var _a;
|
|
2908
2956
|
let result;
|
|
@@ -2928,7 +2976,19 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2928
2976
|
}
|
|
2929
2977
|
return result;
|
|
2930
2978
|
}), distinctUntilChanged((a, b) => a != null && b != null && isSameMinute(a, b)), shareReplay(1));
|
|
2931
|
-
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]) => {
|
|
2932
2992
|
if (date != null) {
|
|
2933
2993
|
const instance = new DateTimeMinuteInstance(Object.assign(Object.assign({ date }, config), { roundDownToMinute: true }));
|
|
2934
2994
|
date = instance.limit(date);
|
|
@@ -2938,6 +2998,14 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2938
2998
|
return date;
|
|
2939
2999
|
}), distinctUntilChanged((a, b) => a != null && b != null && isSameMinute(a, b)), shareReplay(1));
|
|
2940
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
|
+
}
|
|
2941
3009
|
get dateOnly() {
|
|
2942
3010
|
return this.timeMode === DbxDateTimeFieldTimeMode.NONE;
|
|
2943
3011
|
}
|
|
@@ -2961,10 +3029,15 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2961
3029
|
get description() {
|
|
2962
3030
|
return this.field.props.description;
|
|
2963
3031
|
}
|
|
3032
|
+
get hideDateHint() {
|
|
3033
|
+
var _a;
|
|
3034
|
+
return (_a = this.field.props.hideDateHint) !== null && _a !== void 0 ? _a : false;
|
|
3035
|
+
}
|
|
2964
3036
|
ngOnInit() {
|
|
2965
|
-
var _a, _b;
|
|
3037
|
+
var _a, _b, _c, _d;
|
|
2966
3038
|
this._formControlObs.next(this.formControl);
|
|
2967
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));
|
|
2968
3041
|
const valueFactory = dbxDateTimeOutputValueFactory(this.valueMode);
|
|
2969
3042
|
this._sub.subscription = this.timeOutput$.pipe(skipFirstMaybe()).subscribe((dateValue) => {
|
|
2970
3043
|
const value = valueFactory(dateValue);
|
|
@@ -3022,14 +3095,14 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
3022
3095
|
this._formControlObs.complete();
|
|
3023
3096
|
this._config.complete();
|
|
3024
3097
|
this._updateTime.complete();
|
|
3098
|
+
this._syncConfigObs.complete();
|
|
3025
3099
|
this._sub.destroy();
|
|
3026
3100
|
this._valueSub.destroy();
|
|
3027
3101
|
}
|
|
3028
3102
|
datePicked(event) {
|
|
3029
3103
|
const date = event.value;
|
|
3030
3104
|
if (date) {
|
|
3031
|
-
this.
|
|
3032
|
-
this._updateTime.next();
|
|
3105
|
+
this.setDateInputValue(date);
|
|
3033
3106
|
}
|
|
3034
3107
|
}
|
|
3035
3108
|
setLogicalTime(time) {
|
|
@@ -3039,12 +3112,44 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
3039
3112
|
this.setTime(timeString);
|
|
3040
3113
|
}
|
|
3041
3114
|
}
|
|
3115
|
+
setDateInputValue(date) {
|
|
3116
|
+
this.dateInputCtrl.setValue(date);
|
|
3117
|
+
this._updateTime.next();
|
|
3118
|
+
}
|
|
3042
3119
|
setTime(time) {
|
|
3043
3120
|
this.timeInputCtrl.setValue(time);
|
|
3044
3121
|
this._offset.next(0);
|
|
3045
3122
|
this._updateTime.next();
|
|
3046
3123
|
}
|
|
3047
|
-
|
|
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) {
|
|
3048
3153
|
var _a;
|
|
3049
3154
|
let direction = 0;
|
|
3050
3155
|
switch ((_a = event.key) === null || _a === void 0 ? void 0 : _a.toLowerCase()) {
|
|
@@ -3089,10 +3194,10 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
3089
3194
|
}
|
|
3090
3195
|
}
|
|
3091
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 });
|
|
3092
|
-
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 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" }] });
|
|
3093
3198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxDateTimeFieldComponent, decorators: [{
|
|
3094
3199
|
type: Component,
|
|
3095
|
-
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 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" }]
|
|
3096
3201
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
|
3097
3202
|
|
|
3098
3203
|
class DbxFormFormlyDateFieldModule {
|
|
@@ -3167,18 +3272,35 @@ function timeOnlyField(config = {}) {
|
|
|
3167
3272
|
return dateTimeField(Object.assign(Object.assign({}, config), { timeMode: DbxDateTimeFieldTimeMode.REQUIRED, timeOnly: true }));
|
|
3168
3273
|
}
|
|
3169
3274
|
function dateTimeField(config = {}) {
|
|
3170
|
-
const { key = 'date', timeMode = DbxDateTimeFieldTimeMode.REQUIRED, valueMode, fullDayFieldName, getConfigObs, timeOnly = false } = config;
|
|
3171
|
-
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,
|
|
3279
|
+
valueMode,
|
|
3280
|
+
timeOnly,
|
|
3172
3281
|
timeMode: timeOnly ? DbxDateTimeFieldTimeMode.REQUIRED : timeMode,
|
|
3173
3282
|
fullDayFieldName,
|
|
3283
|
+
fullDayInUTC,
|
|
3284
|
+
hideDateHint,
|
|
3174
3285
|
getConfigObs,
|
|
3175
|
-
|
|
3176
|
-
timeOnly
|
|
3286
|
+
getSyncFieldsObs
|
|
3177
3287
|
})));
|
|
3178
3288
|
return styleWrapper(fieldConfig, {
|
|
3179
3289
|
classGetter: 'dbx-mat-form-field-disable-underline'
|
|
3180
3290
|
});
|
|
3181
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
|
+
}
|
|
3182
3304
|
|
|
3183
3305
|
function isTruthy() {
|
|
3184
3306
|
return (control) => {
|
|
@@ -3247,6 +3369,12 @@ function isInRange(min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER)
|
|
|
3247
3369
|
};
|
|
3248
3370
|
}
|
|
3249
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
|
+
*/
|
|
3250
3378
|
function isDivisibleBy(divisor) {
|
|
3251
3379
|
if (divisor === 0) {
|
|
3252
3380
|
throw new Error('Divisior must be greater than zero.');
|
|
@@ -3297,20 +3425,33 @@ function fieldValueIsAvailableValidator(config) {
|
|
|
3297
3425
|
})), first());
|
|
3298
3426
|
}
|
|
3299
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
|
+
}
|
|
3300
3440
|
function numberField(config) {
|
|
3301
3441
|
const { key, min, max, step, enforceStep, inputType: type = 'number' } = config;
|
|
3442
|
+
const parsers = numberFieldTransformParser(config);
|
|
3302
3443
|
const validators = [];
|
|
3303
3444
|
if (step && enforceStep) {
|
|
3304
3445
|
validators.push(isDivisibleBy(step));
|
|
3305
3446
|
}
|
|
3306
|
-
return formlyField(Object.assign(Object.assign({ key, type: 'input' },
|
|
3447
|
+
return formlyField(Object.assign(Object.assign(Object.assign({ key, type: 'input' }, propsAndConfigForFieldConfig(config, {
|
|
3307
3448
|
type,
|
|
3308
3449
|
min,
|
|
3309
3450
|
max,
|
|
3310
3451
|
step
|
|
3311
3452
|
})), validatorsForFieldConfig({
|
|
3312
3453
|
validators
|
|
3313
|
-
})));
|
|
3454
|
+
})), { parsers }));
|
|
3314
3455
|
}
|
|
3315
3456
|
|
|
3316
3457
|
class DbxFormFormlyNumberFieldModule {
|
|
@@ -3396,28 +3537,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
3396
3537
|
}]
|
|
3397
3538
|
}] });
|
|
3398
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
|
+
}
|
|
3399
3552
|
function textField(config) {
|
|
3400
|
-
const { key, pattern, minLength, maxLength, inputType: type = 'text' } = config;
|
|
3401
|
-
|
|
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, {
|
|
3402
3556
|
type,
|
|
3403
3557
|
minLength,
|
|
3404
3558
|
maxLength,
|
|
3405
3559
|
pattern
|
|
3406
|
-
})));
|
|
3560
|
+
})), { parsers }));
|
|
3407
3561
|
}
|
|
3408
3562
|
function textAreaField(config) {
|
|
3409
3563
|
const { key, rows = 3, pattern, minLength, maxLength } = config;
|
|
3410
|
-
|
|
3564
|
+
const parsers = textFieldTransformParser(config);
|
|
3565
|
+
return formlyField(Object.assign(Object.assign({ key, type: 'textarea' }, propsAndConfigForFieldConfig(config, {
|
|
3411
3566
|
rows,
|
|
3412
3567
|
minLength,
|
|
3413
3568
|
maxLength,
|
|
3414
3569
|
pattern
|
|
3415
|
-
})));
|
|
3570
|
+
})), { parsers }));
|
|
3416
3571
|
}
|
|
3417
3572
|
|
|
3418
3573
|
function phoneField(config = {}) {
|
|
3419
3574
|
const { key = 'phone', preferredCountries, onlyCountries } = config;
|
|
3420
|
-
const fieldConfig = formlyField(Object.assign({ key, type: 'intphone' },
|
|
3575
|
+
const fieldConfig = formlyField(Object.assign({ key, type: 'intphone' }, propsAndConfigForFieldConfig(config, {
|
|
3421
3576
|
preferredCountries,
|
|
3422
3577
|
onlyCountries
|
|
3423
3578
|
})));
|
|
@@ -3501,7 +3656,9 @@ function stateField(config = {}) {
|
|
|
3501
3656
|
pattern,
|
|
3502
3657
|
autocomplete,
|
|
3503
3658
|
required,
|
|
3504
|
-
maxLength
|
|
3659
|
+
maxLength, transform: {
|
|
3660
|
+
toUppercase: true
|
|
3661
|
+
} }));
|
|
3505
3662
|
}
|
|
3506
3663
|
function countryField(config = {}) {
|
|
3507
3664
|
const { key = 'country', placeholder = '', label = 'Country', autocomplete = 'country', maxLength = ADDRESS_COUNTRY_MAX_LENGTH, required = false } = config;
|
|
@@ -4236,5 +4393,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
4236
4393
|
* Generated bundle index. Do not edit.
|
|
4237
4394
|
*/
|
|
4238
4395
|
|
|
4239
|
-
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 };
|
|
4240
4397
|
//# sourceMappingURL=dereekb-dbx-form.mjs.map
|