@dereekb/dbx-form 1.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +1 -1
  2. package/esm2020/lib/form/action/form.action.directive.mjs +34 -19
  3. package/esm2020/lib/form/action/form.action.module.mjs +4 -4
  4. package/esm2020/lib/form/action/transition/form.action.transition.module.mjs +4 -4
  5. package/esm2020/lib/form/action/transition/form.action.transition.safety.directive.mjs +9 -9
  6. package/esm2020/lib/form/form.mjs +11 -1
  7. package/esm2020/lib/form/form.module.mjs +4 -4
  8. package/esm2020/lib/form/io/form.changes.directive.mjs +18 -7
  9. package/esm2020/lib/form/io/form.input.directive.mjs +36 -18
  10. package/esm2020/lib/form/io/form.io.module.mjs +4 -4
  11. package/esm2020/lib/form/io/form.loading.directive.mjs +27 -17
  12. package/esm2020/lib/form.module.mjs +4 -4
  13. package/esm2020/lib/formly/config/validation.mjs +3 -3
  14. package/esm2020/lib/formly/field/checklist/checklist.item.field.component.mjs +8 -8
  15. package/esm2020/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +3 -3
  16. package/esm2020/lib/formly/field/checklist/checklist.item.field.module.mjs +13 -13
  17. package/esm2020/lib/formly/field/component/component.field.component.mjs +8 -21
  18. package/esm2020/lib/formly/field/component/component.field.mjs +3 -5
  19. package/esm2020/lib/formly/field/component/component.field.module.mjs +14 -14
  20. package/esm2020/lib/formly/field/form.field.module.mjs +4 -4
  21. package/esm2020/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +7 -7
  22. package/esm2020/lib/formly/field/selection/pickable/pickable.field.directive.mjs +8 -6
  23. package/esm2020/lib/formly/field/selection/pickable/pickable.field.mjs +2 -2
  24. package/esm2020/lib/formly/field/selection/pickable/pickable.field.module.mjs +13 -13
  25. package/esm2020/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +28 -21
  26. package/esm2020/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +4 -4
  27. package/esm2020/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +16 -16
  28. package/esm2020/lib/formly/field/selection/searchable/searchable.field.directive.mjs +7 -8
  29. package/esm2020/lib/formly/field/selection/searchable/searchable.field.module.mjs +13 -13
  30. package/esm2020/lib/formly/field/selection/searchable/searchable.mjs +1 -1
  31. package/esm2020/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +3 -3
  32. package/esm2020/lib/formly/field/selection/selection.module.mjs +4 -4
  33. package/esm2020/lib/formly/field/texteditor/texteditor.field.component.mjs +4 -5
  34. package/esm2020/lib/formly/field/texteditor/texteditor.field.module.mjs +4 -4
  35. package/esm2020/lib/formly/field/value/array/array.field.component.mjs +7 -7
  36. package/esm2020/lib/formly/field/value/array/array.field.module.mjs +4 -4
  37. package/esm2020/lib/formly/field/value/boolean/boolean.field.module.mjs +4 -4
  38. package/esm2020/lib/formly/field/value/date/date.field.module.mjs +4 -4
  39. package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +51 -40
  40. package/esm2020/lib/formly/field/value/date/datetime.field.mjs +7 -7
  41. package/esm2020/lib/formly/field/value/enum/enum.field.module.mjs +4 -4
  42. package/esm2020/lib/formly/field/value/phone/phone.field.component.mjs +3 -3
  43. package/esm2020/lib/formly/field/value/phone/phone.field.module.mjs +4 -4
  44. package/esm2020/lib/formly/field/value/text/text.additional.field.mjs +15 -18
  45. package/esm2020/lib/formly/field/value/text/text.address.field.mjs +2 -2
  46. package/esm2020/lib/formly/field/value/text/text.field.mjs +3 -2
  47. package/esm2020/lib/formly/field/value/text/text.field.module.mjs +4 -4
  48. package/esm2020/lib/formly/field/value/value.module.mjs +4 -4
  49. package/esm2020/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +3 -3
  50. package/esm2020/lib/formly/field/wrapper/expandable.wrapper.component.mjs +3 -3
  51. package/esm2020/lib/formly/field/wrapper/expandable.wrapper.delegate.mjs +3 -3
  52. package/esm2020/lib/formly/field/wrapper/flex.wrapper.component.mjs +3 -3
  53. package/esm2020/lib/formly/field/wrapper/form.wrapper.module.mjs +18 -10
  54. package/esm2020/lib/formly/field/wrapper/index.mjs +2 -1
  55. package/esm2020/lib/formly/field/wrapper/info.wrapper.component.mjs +3 -3
  56. package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +3 -3
  57. package/esm2020/lib/formly/field/wrapper/style.wrapper.component.mjs +4 -4
  58. package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +3 -3
  59. package/esm2020/lib/formly/field/wrapper/toggle.wrapper.component.mjs +3 -3
  60. package/esm2020/lib/formly/field/wrapper/working.wrapper.component.mjs +45 -0
  61. package/esm2020/lib/formly/field/wrapper/wrapper.mjs +7 -1
  62. package/esm2020/lib/formly/formly.context.directive.mjs +3 -3
  63. package/esm2020/lib/formly/formly.context.mjs +19 -8
  64. package/esm2020/lib/formly/formly.directive.mjs +17 -14
  65. package/esm2020/lib/formly/formly.form.component.mjs +63 -22
  66. package/esm2020/lib/formly/formly.module.mjs +9 -6
  67. package/esm2020/lib/formly/index.mjs +2 -1
  68. package/esm2020/lib/formly/template/available.mjs +16 -0
  69. package/esm2020/lib/formly/template/index.mjs +3 -0
  70. package/esm2020/lib/formly/template/login.mjs +90 -0
  71. package/esm2020/lib/layout/form.layout.module.mjs +4 -4
  72. package/esm2020/lib/layout/form.spacer.component.mjs +3 -3
  73. package/esm2020/lib/validator/available.mjs +32 -0
  74. package/esm2020/lib/validator/field.mjs +31 -0
  75. package/esm2020/lib/validator/index.mjs +3 -1
  76. package/fesm2015/dereekb-dbx-form.mjs +818 -505
  77. package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
  78. package/fesm2020/dereekb-dbx-form.mjs +834 -501
  79. package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
  80. package/lib/form/action/form.action.directive.d.ts +13 -16
  81. package/lib/form/action/transition/form.action.transition.safety.directive.d.ts +3 -3
  82. package/lib/form/form.d.ts +30 -3
  83. package/lib/form/io/form.changes.directive.d.ts +7 -3
  84. package/lib/form/io/form.input.directive.d.ts +19 -7
  85. package/lib/form/io/form.loading.directive.d.ts +8 -2
  86. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +2 -2
  87. package/lib/formly/field/checklist/checklist.item.field.module.d.ts +1 -1
  88. package/lib/formly/field/component/component.field.component.d.ts +8 -21
  89. package/lib/formly/field/component/component.field.d.ts +3 -5
  90. package/lib/formly/field/component/component.field.module.d.ts +1 -1
  91. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +8 -3
  92. package/lib/formly/field/selection/pickable/pickable.field.module.d.ts +1 -1
  93. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +8 -6
  94. package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +2 -1
  95. package/lib/formly/field/selection/searchable/searchable.d.ts +3 -3
  96. package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +3 -3
  97. package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +4 -4
  98. package/lib/formly/field/selection/searchable/searchable.field.module.d.ts +1 -1
  99. package/lib/formly/field/texteditor/_texteditor.scss +0 -2
  100. package/lib/formly/field/value/array/array.field.component.d.ts +2 -2
  101. package/lib/formly/field/value/date/datetime.field.component.d.ts +8 -10
  102. package/lib/formly/field/value/date/datetime.field.d.ts +2 -2
  103. package/lib/formly/field/value/phone/_phone.scss +4 -0
  104. package/lib/formly/field/value/text/text.additional.field.d.ts +1 -1
  105. package/lib/formly/field/value/text/text.field.d.ts +2 -0
  106. package/lib/formly/field/wrapper/form.wrapper.module.d.ts +9 -8
  107. package/lib/formly/field/wrapper/index.d.ts +1 -0
  108. package/lib/formly/field/wrapper/style.wrapper.component.d.ts +3 -3
  109. package/lib/formly/field/wrapper/working.wrapper.component.d.ts +22 -0
  110. package/lib/formly/field/wrapper/wrapper.d.ts +3 -0
  111. package/lib/formly/formly.context.d.ts +9 -6
  112. package/lib/formly/formly.directive.d.ts +2 -0
  113. package/lib/formly/formly.form.component.d.ts +13 -3
  114. package/lib/formly/index.d.ts +1 -0
  115. package/lib/formly/template/available.d.ts +7 -0
  116. package/lib/formly/template/index.d.ts +2 -0
  117. package/lib/formly/template/login.d.ts +59 -0
  118. package/lib/validator/available.d.ts +30 -0
  119. package/lib/validator/field.d.ts +32 -0
  120. package/lib/validator/index.d.ts +2 -0
  121. package/package.json +17 -44
  122. package/lib/formly/field/fields_TODO.scss +0 -4
  123. package/lib/formly/form_TODO.scss +0 -153
@@ -3,16 +3,16 @@ import { forwardRef, Directive, Host, Input, NgModule, EventEmitter, Output, Com
3
3
  import * as i5 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i1$1 from '@dereekb/dbx-web';
6
- import { DbxActionTransitionSafetyDirective, DbxTextModule, DbxFlexLayoutModule, DbxSectionLayoutModule, DbxAnchorModule, AbstractDbxSelectionListWrapperDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, AbstractSelectionValueListViewDirective, mapItemValuesToValueListItemConfig, ProvideDbxListView, AbstractDbxSelectionValueListViewItemComponent, DbxLoadingModule, DbxButtonModule, DbxListLayoutModule, mapCompactModeObs, DbxBarLayoutModule } from '@dereekb/dbx-web';
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
7
  import { isPast, addSeconds, isSameMinute, startOfDay, isSameDay, addMinutes } from 'date-fns';
8
- import { exhaustMap, of, combineLatest, filter as filter$1, mergeMap, first as first$1, delay, BehaviorSubject, switchMap as switchMap$1, shareReplay as shareReplay$1, startWith, map as map$1, debounceTime, distinctUntilChanged as distinctUntilChanged$1, Subject, skipWhile, interval, merge, throttleTime as throttleTime$1 } from 'rxjs';
9
- import { switchMap, first, catchError, filter, map, distinctUntilChanged, shareReplay, delay as delay$1, debounceTime as debounceTime$1, startWith as startWith$1, tap, throttleTime } from 'rxjs/operators';
10
- import { LockSet, SubscriptionObject, switchMapMaybeObs, filterMaybe, switchMapMaybeDefault, asObservable, beginLoading, mapLoadingStateResults, successResult, ListLoadingStateContextInstance, isListLoadingStateEmpty, LoadingStateContextInstance, skipFirstMaybe, scanCount } from '@dereekb/rxjs';
8
+ import { BehaviorSubject, switchMap, first, exhaustMap, of, catchError, delay, filter, combineLatest, map, distinctUntilChanged, mergeMap, shareReplay as shareReplay$1, startWith, debounceTime, Subject, skipWhile, interval, merge, throttleTime as throttleTime$1, scan } from 'rxjs';
9
+ import { LockSet, SubscriptionObject, asObservable, loadingStateHasFinishedLoading, switchMapMaybeObs, filterMaybe, switchMapMaybeDefault, SimpleLoadingContext, beginLoading, mapLoadingStateResults, successResult, ListLoadingStateContextInstance, isListLoadingStateEmpty, LoadingStateContextInstance, skipFirstMaybe, asyncPusherCache, scanCount } from '@dereekb/rxjs';
11
10
  import * as i2 from '@dereekb/dbx-core';
12
- import { AbstractSubscriptionDirective, safeDetectChanges, DbxInjectedComponentModule, DbxDatePipeModule, mergeDbxInjectedComponentConfigs, tapDetectChanges } from '@dereekb/dbx-core';
11
+ import { AbstractSubscriptionDirective, safeDetectChanges, DbxInjectionComponentModule, DbxDatePipeModule, mergeDbxInjectionComponentConfigs, tapDetectChanges } from '@dereekb/dbx-core';
13
12
  import * as i3 from '@uirouter/core';
14
13
  import * as i4 from '@angular/material/dialog';
15
14
  import { MatDialogModule } from '@angular/material/dialog';
15
+ import { distinctUntilChanged as distinctUntilChanged$1, shareReplay, map as map$1, delay as delay$1, debounceTime as debounceTime$1, filter as filter$1, switchMap as switchMap$1, startWith as startWith$1, tap, throttleTime, first as first$1 } from 'rxjs/operators';
16
16
  import * as i1$4 from '@ngx-formly/core';
17
17
  import { FieldType, FieldWrapper, FormlyModule, FieldArrayType } from '@ngx-formly/core';
18
18
  import * as i1 from '@angular/material/checkbox';
@@ -27,7 +27,7 @@ import * as i1$2 from '@angular/material/button';
27
27
  import { MatButtonModule } from '@angular/material/button';
28
28
  import * as i3$1 from '@angular/flex-layout/flex';
29
29
  import { FlexLayoutModule } from '@angular/flex-layout';
30
- import { objectIsEmpty, mergeObjects, filterFromPOJO, addPlusPrefixToNumber, convertMaybeToArray, makeValuesGroupMap, findUnique, mergeIntoArray, lastValue, separateValues, arrayToMap, getValueFromObjectOrGetter } from '@dereekb/util';
30
+ import { objectIsEmpty, mergeObjects, filterFromPOJO, addPlusPrefixToNumber, convertMaybeToArray, makeValuesGroupMap, findUnique, mergeIntoArray, lastValue, separateValues, arrayToMap, getValueFromGetter, dateFromLogicalDate, KeyValueTypleValueFilter, valuesFromPOJO, allObjectsAreEqual, capitalizeFirstLetter, BooleanStringKeyArrayUtilityInstance } from '@dereekb/util';
31
31
  import * as i1$3 from '@angular/material/slide-toggle';
32
32
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
33
33
  import * as i2$2 from '@angular/flex-layout/extended';
@@ -38,14 +38,14 @@ import { MatChipsModule } from '@angular/material/chips';
38
38
  import * as i4$2 from '@angular/material/divider';
39
39
  import { MatDividerModule } from '@angular/material/divider';
40
40
  import * as i6$1 from '@angular/material/input';
41
- import { MatInputModule, MatInput } from '@angular/material/input';
41
+ import { MatInputModule } from '@angular/material/input';
42
42
  import * as i4$3 from '@angular/material/autocomplete';
43
43
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
44
44
  import { MatListModule } from '@angular/material/list';
45
45
  import * as i3$2 from '@angular/material/form-field';
46
46
  import { MatFormFieldModule } from '@angular/material/form-field';
47
47
  import { ENTER, COMMA } from '@angular/cdk/keycodes';
48
- import { skipUntilTimeElapsedAfterLastEmission, guessCurrentTimezone, toReadableTimeString, utcDayForDate, readableTimeStringToDate, DateTimeMinuteInstance } from '@dereekb/date';
48
+ import { skipUntilTimeElapsedAfterLastEmission, guessCurrentTimezone, toReadableTimeString, utcDayForDate, readableTimeStringToDate, DateTimeMinuteInstance, toLocalReadableTimeString } from '@dereekb/date';
49
49
  import * as i2$3 from 'ngx-editor';
50
50
  import { Editor, NgxEditorModule } from 'ngx-editor';
51
51
  import * as i5$1 from '@angular/cdk/drag-drop';
@@ -65,10 +65,20 @@ import { FormlyMatToggleModule } from '@ngx-formly/material/toggle';
65
65
  */
66
66
  var DbxFormState;
67
67
  (function (DbxFormState) {
68
+ /**
69
+ * Form is not finished initializing.
70
+ */
68
71
  DbxFormState[DbxFormState["INITIALIZING"] = -1] = "INITIALIZING";
72
+ /**
73
+ * Form is initialized but has not yet used.
74
+ */
69
75
  DbxFormState[DbxFormState["RESET"] = 0] = "RESET";
76
+ /**
77
+ * Form has been used.
78
+ */
70
79
  DbxFormState[DbxFormState["USED"] = 1] = "USED";
71
80
  })(DbxFormState || (DbxFormState = {}));
81
+ const DEFAULT_FORM_DISABLED_KEY = 'dbx_form_disabled';
72
82
  /**
73
83
  * Form that has an event stream, value, and state items.
74
84
  */
@@ -86,7 +96,7 @@ function ProvideDbxMutableForm(sourceType) {
86
96
  ];
87
97
  }
88
98
 
89
- const APP_ACTION_FORM_DISABLED_KEY = 'actionForm';
99
+ const APP_ACTION_FORM_DISABLED_KEY = 'dbx_action_form';
90
100
  /**
91
101
  * Used with an action to bind a form to an action as it's value source.
92
102
  *
@@ -99,16 +109,25 @@ class DbxActionFormDirective {
99
109
  this.form = form;
100
110
  this.source = source;
101
111
  this.lockSet = new LockSet();
112
+ this._formDisabledWhileWorking = new BehaviorSubject(true);
102
113
  this._triggeredSub = new SubscriptionObject();
103
114
  this._isCompleteSub = new SubscriptionObject();
115
+ this._isWorkingSub = new SubscriptionObject();
104
116
  if (form.lockSet) {
105
117
  this.lockSet.addChildLockSet(form.lockSet, 'form');
106
118
  }
107
119
  this.lockSet.addChildLockSet(source.lockSet, 'source');
108
120
  }
121
+ get formDisabledOnWorking() {
122
+ return this._formDisabledWhileWorking.value;
123
+ }
124
+ set formDisabledOnWorking(formDisabledOnWorking) {
125
+ this._formDisabledWhileWorking.next(Boolean(formDisabledOnWorking !== null && formDisabledOnWorking !== void 0 ? formDisabledOnWorking : true));
126
+ }
109
127
  ngOnInit() {
110
128
  // Pass data from the form to the source when triggered.
111
- this._triggeredSub.subscription = this.source.triggered$.pipe(switchMap(() => this.form.stream$.pipe(first(), exhaustMap(({ isComplete }) => {
129
+ this._triggeredSub.subscription = this.source.triggered$.pipe(switchMap(() => this.form.stream$.pipe(first(), exhaustMap((stream) => {
130
+ const { isComplete } = stream;
112
131
  const doNothing = {}; // nothing, form not complete
113
132
  let obs;
114
133
  if (isComplete) {
@@ -119,7 +138,7 @@ class DbxActionFormDirective {
119
138
  else {
120
139
  return of(doNothing);
121
140
  }
122
- }), catchError((error) => of({ error })))));
141
+ }), catchError((error) => of({ reject: error })))));
123
142
  }
124
143
  else {
125
144
  obs = of(doNothing);
@@ -137,7 +156,7 @@ class DbxActionFormDirective {
137
156
  }
138
157
  });
139
158
  // Update the enabled/disabled state
140
- this._isCompleteSub.subscription = this.form.stream$.pipe(filter((x) => x.state !== DbxFormState.INITIALIZING), switchMap((event) => {
159
+ this._isCompleteSub.subscription = this.form.stream$.pipe(delay(0), filter((x) => x.state !== DbxFormState.INITIALIZING), switchMap((event) => {
141
160
  return this.form.getValue().pipe(first(), exhaustMap((value) => {
142
161
  var _a, _b;
143
162
  // Use both changes count and whether or not something was in the past to guage whether or not the item has been touched.
@@ -148,7 +167,7 @@ class DbxActionFormDirective {
148
167
  let validatorObs;
149
168
  const initialIsValidCheck = event.isComplete;
150
169
  if (initialIsValidCheck) {
151
- validatorObs = (this.appActionFormValidator) ? this.appActionFormValidator(value) : of(true);
170
+ validatorObs = (this.dbxActionFormValidator) ? this.dbxActionFormValidator(value) : of(true);
152
171
  }
153
172
  else {
154
173
  validatorObs = of(false);
@@ -156,7 +175,7 @@ class DbxActionFormDirective {
156
175
  let modifiedObs;
157
176
  const isConsideredModified = (event.pristine === false && isProbablyTouched);
158
177
  if (isConsideredModified) {
159
- modifiedObs = (this.appActionFormModified) ? this.appActionFormModified(value) : of(true);
178
+ modifiedObs = (this.dbxActionFormModified) ? this.dbxActionFormModified(value) : of(true);
160
179
  }
161
180
  else {
162
181
  modifiedObs = of(false);
@@ -173,19 +192,24 @@ class DbxActionFormDirective {
173
192
  // Disable if the form is not yet complete/valid.
174
193
  this.source.enable(APP_ACTION_FORM_DISABLED_KEY, valid);
175
194
  });
176
- // TODO: Watch the working state and stop allowing input on working..?
177
- // TODO: Watch the disabled state for when another disabled key disables this form.
195
+ // Watch the working state and disable form while working
196
+ this._isWorkingSub.subscription = combineLatest([this.source.isWorking$, this._formDisabledWhileWorking]).pipe(map(([isWorking, lockOnWorking]) => lockOnWorking && isWorking), distinctUntilChanged()).subscribe((disable) => {
197
+ this.form.setDisabled(APP_ACTION_FORM_DISABLED_KEY, disable);
198
+ });
178
199
  }
179
200
  ngOnDestroy() {
180
201
  this.source.enable(APP_ACTION_FORM_DISABLED_KEY);
181
202
  this.lockSet.destroyOnNextUnlock(() => {
182
203
  this._triggeredSub.destroy();
183
204
  this._isCompleteSub.destroy();
205
+ this._isWorkingSub.destroy();
206
+ this._formDisabledWhileWorking.complete();
207
+ this.form.setDisabled(APP_ACTION_FORM_DISABLED_KEY, false);
184
208
  });
185
209
  }
186
210
  preCheckReadyValue(value) {
187
- let validatorObs = (this.appActionFormValidator) ? this.appActionFormValidator(value) : of(true);
188
- let modifiedObs = (this.appActionFormModified) ? this.appActionFormModified(value) : of(true);
211
+ let validatorObs = (this.dbxActionFormValidator) ? this.dbxActionFormValidator(value) : of(true);
212
+ let modifiedObs = (this.dbxActionFormModified) ? this.dbxActionFormModified(value) : of(true);
189
213
  return combineLatest([
190
214
  validatorObs,
191
215
  modifiedObs
@@ -195,9 +219,9 @@ class DbxActionFormDirective {
195
219
  return of({ value });
196
220
  }
197
221
  }
198
- DbxActionFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxActionFormDirective, deps: [{ token: DbxMutableForm, host: true }, { token: i2.ActionContextStoreSourceInstance }], target: i0.ɵɵFactoryTarget.Directive });
199
- DbxActionFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: { appActionFormValidator: "appActionFormValidator", appActionFormModified: "appActionFormModified" }, ngImport: i0 });
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxActionFormDirective, decorators: [{
222
+ DbxActionFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxActionFormDirective, deps: [{ token: DbxMutableForm, host: true }, { token: i2.DbxActionContextStoreSourceInstance }], target: i0.ɵɵFactoryTarget.Directive });
223
+ DbxActionFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: { dbxActionFormValidator: "dbxActionFormValidator", dbxActionFormModified: "dbxActionFormModified", formDisabledOnWorking: "formDisabledOnWorking" }, ngImport: i0 });
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxActionFormDirective, decorators: [{
201
225
  type: Directive,
202
226
  args: [{
203
227
  selector: '[dbxActionForm]'
@@ -205,10 +229,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
205
229
  }], ctorParameters: function () {
206
230
  return [{ type: DbxMutableForm, decorators: [{
207
231
  type: Host
208
- }] }, { type: i2.ActionContextStoreSourceInstance }];
209
- }, propDecorators: { appActionFormValidator: [{
232
+ }] }, { type: i2.DbxActionContextStoreSourceInstance }];
233
+ }, propDecorators: { dbxActionFormValidator: [{
234
+ type: Input
235
+ }], dbxActionFormModified: [{
210
236
  type: Input
211
- }], appActionFormModified: [{
237
+ }], formDisabledOnWorking: [{
212
238
  type: Input
213
239
  }] } });
214
240
 
@@ -218,18 +244,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
218
244
  * NOTE: Only works with UIRouter
219
245
  */
220
246
  class DbxActionFormSafetyDirective extends DbxActionTransitionSafetyDirective {
221
- constructor(appActionForm, source, transitionService, viewContainerRef, dialog) {
247
+ constructor(dbxActionForm, source, transitionService, viewContainerRef, dialog) {
222
248
  super(source, transitionService, viewContainerRef, dialog);
223
- this.appActionForm = appActionForm;
249
+ this.dbxActionForm = dbxActionForm;
224
250
  }
225
251
  _handleOnBeforeTransition(transition) {
226
- this.appActionForm.form.forceFormUpdate();
252
+ this.dbxActionForm.form.forceFormUpdate();
227
253
  return super._handleOnBeforeTransition(transition);
228
254
  }
229
255
  }
230
- DbxActionFormSafetyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxActionFormSafetyDirective, deps: [{ token: DbxActionFormDirective, host: true }, { token: i2.ActionContextStoreSourceInstance }, { token: i3.TransitionService }, { token: i0.ViewContainerRef }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Directive });
231
- DbxActionFormSafetyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: DbxActionFormSafetyDirective, selector: "[dbxActionFormSafety]", inputs: { inputSafetyType: ["dbxActionFormSafety", "inputSafetyType"] }, usesInheritance: true, ngImport: i0 });
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxActionFormSafetyDirective, decorators: [{
256
+ DbxActionFormSafetyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxActionFormSafetyDirective, deps: [{ token: DbxActionFormDirective, host: true }, { token: i2.DbxActionContextStoreSourceInstance }, { token: i3.TransitionService }, { token: i0.ViewContainerRef }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Directive });
257
+ DbxActionFormSafetyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxActionFormSafetyDirective, selector: "[dbxActionFormSafety]", inputs: { inputSafetyType: ["dbxActionFormSafety", "inputSafetyType"] }, usesInheritance: true, ngImport: i0 });
258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxActionFormSafetyDirective, decorators: [{
233
259
  type: Directive,
234
260
  args: [{
235
261
  selector: '[dbxActionFormSafety]',
@@ -237,7 +263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
237
263
  }], ctorParameters: function () {
238
264
  return [{ type: DbxActionFormDirective, decorators: [{
239
265
  type: Host
240
- }] }, { type: i2.ActionContextStoreSourceInstance }, { type: i3.TransitionService }, { type: i0.ViewContainerRef }, { type: i4.MatDialog }];
266
+ }] }, { type: i2.DbxActionContextStoreSourceInstance }, { type: i3.TransitionService }, { type: i0.ViewContainerRef }, { type: i4.MatDialog }];
241
267
  }, propDecorators: { inputSafetyType: [{
242
268
  type: Input,
243
269
  args: ['dbxActionFormSafety']
@@ -245,12 +271,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
245
271
 
246
272
  class DbxFormActionTransitionModule {
247
273
  }
248
- DbxFormActionTransitionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormActionTransitionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
249
- DbxFormActionTransitionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormActionTransitionModule, declarations: [DbxActionFormSafetyDirective], imports: [CommonModule], exports: [DbxActionFormSafetyDirective] });
250
- DbxFormActionTransitionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormActionTransitionModule, imports: [[
274
+ DbxFormActionTransitionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionTransitionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
275
+ DbxFormActionTransitionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionTransitionModule, declarations: [DbxActionFormSafetyDirective], imports: [CommonModule], exports: [DbxActionFormSafetyDirective] });
276
+ DbxFormActionTransitionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionTransitionModule, imports: [[
251
277
  CommonModule
252
278
  ]] });
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormActionTransitionModule, decorators: [{
279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionTransitionModule, decorators: [{
254
280
  type: NgModule,
255
281
  args: [{
256
282
  imports: [
@@ -267,14 +293,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
267
293
 
268
294
  class DbxFormActionModule {
269
295
  }
270
- DbxFormActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
271
- DbxFormActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormActionModule, declarations: [DbxActionFormDirective], imports: [CommonModule,
296
+ DbxFormActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
297
+ DbxFormActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, declarations: [DbxActionFormDirective], imports: [CommonModule,
272
298
  MatDialogModule], exports: [DbxActionFormDirective] });
273
- DbxFormActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormActionModule, imports: [[
299
+ DbxFormActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, imports: [[
274
300
  CommonModule,
275
301
  MatDialogModule
276
302
  ]] });
277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormActionModule, decorators: [{
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, decorators: [{
278
304
  type: NgModule,
279
305
  args: [{
280
306
  imports: [
@@ -290,6 +316,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
290
316
  }]
291
317
  }] });
292
318
 
319
+ function dbxFormSourceObservable(form, inputObs, mode$) {
320
+ const observable = asObservable(inputObs);
321
+ return combineLatest([
322
+ observable.pipe(distinctUntilChanged()),
323
+ mode$.pipe(distinctUntilChanged())
324
+ ]).pipe(switchMap(([value, mode]) => form.stream$.pipe(
325
+ // wait for the form to finish initializing.
326
+ filter((x) => x.state !== DbxFormState.INITIALIZING),
327
+ // if mode is reset, then filter out changes until the form is reset again.
328
+ filter((x) => ((mode === 'reset') ? (x.state === DbxFormState.RESET) : true)), first(), map((_) => value))));
329
+ }
330
+ /**
331
+ * Used with a FormComponent to set the value based on the input value.
332
+ */
333
+ class DbxFormSourceDirective extends AbstractSubscriptionDirective {
334
+ constructor(form) {
335
+ super();
336
+ this.form = form;
337
+ this._mode = new BehaviorSubject('reset');
338
+ }
339
+ get mode() {
340
+ return this._mode.value;
341
+ }
342
+ set mode(mode) {
343
+ this._mode.next(mode);
344
+ }
345
+ set obs(obs) {
346
+ this.setObs(obs);
347
+ }
348
+ setObs(inputObs) {
349
+ let subscription;
350
+ if (inputObs) {
351
+ subscription = dbxFormSourceObservable(this.form, inputObs, this._mode).subscribe((x) => {
352
+ this.form.setValue(x);
353
+ });
354
+ }
355
+ this.sub = subscription;
356
+ }
357
+ ngOnDestroy() {
358
+ super.ngOnDestroy();
359
+ this._mode.complete();
360
+ }
361
+ }
362
+ DbxFormSourceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSourceDirective, deps: [{ token: DbxMutableForm, host: true }], target: i0.ɵɵFactoryTarget.Directive });
363
+ DbxFormSourceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: { mode: ["dbxFormSourceMode", "mode"], obs: ["dbxFormSource", "obs"] }, usesInheritance: true, ngImport: i0 });
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSourceDirective, decorators: [{
365
+ type: Directive,
366
+ args: [{
367
+ selector: '[dbxFormSource]'
368
+ }]
369
+ }], ctorParameters: function () {
370
+ return [{ type: DbxMutableForm, decorators: [{
371
+ type: Host
372
+ }] }];
373
+ }, propDecorators: { mode: [{
374
+ type: Input,
375
+ args: ['dbxFormSourceMode']
376
+ }], obs: [{
377
+ type: Input,
378
+ args: ['dbxFormSource']
379
+ }] } });
380
+
293
381
  /**
294
382
  * Used with a FormComponent to set the value from a LoadingState when the value is available.
295
383
  */
@@ -297,6 +385,13 @@ class DbxFormLoadingSourceDirective extends AbstractSubscriptionDirective {
297
385
  constructor(form) {
298
386
  super();
299
387
  this.form = form;
388
+ this._mode = new BehaviorSubject('reset');
389
+ }
390
+ get mode() {
391
+ return this._mode.value;
392
+ }
393
+ set mode(mode) {
394
+ this._mode.next(mode);
300
395
  }
301
396
  /**
302
397
  * Sets a LoadingContext that is watched for the loading state.
@@ -304,26 +399,25 @@ class DbxFormLoadingSourceDirective extends AbstractSubscriptionDirective {
304
399
  set obs(obs) {
305
400
  this._setObs(obs);
306
401
  }
307
- _setObs(obs) {
402
+ _setObs(inputObs) {
308
403
  let subscription;
309
- if (obs) {
310
- subscription = combineLatest([
311
- // Emit the first time initializing isn't there.
312
- this.form.stream$.pipe(filter((x) => x.state !== DbxFormState.INITIALIZING), first()),
313
- obs
314
- ]).pipe(map((x) => x[1]), filter((x) => Boolean(x)), distinctUntilChanged((x, y) => x.value === y.value)).subscribe((x) => {
315
- if (!x.error && !x.loading) {
316
- // console.log('Setting value: ', x.model);
404
+ if (inputObs) {
405
+ subscription = dbxFormSourceObservable(this.form, inputObs, this._mode).subscribe((x) => {
406
+ if (loadingStateHasFinishedLoading(x)) {
317
407
  this.form.setValue(x.value);
318
408
  }
319
409
  });
320
410
  }
321
411
  this.sub = subscription;
322
412
  }
413
+ ngOnDestroy() {
414
+ super.ngOnDestroy();
415
+ this._mode.complete();
416
+ }
323
417
  }
324
- DbxFormLoadingSourceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormLoadingSourceDirective, deps: [{ token: DbxMutableForm, host: true }], target: i0.ɵɵFactoryTarget.Directive });
325
- DbxFormLoadingSourceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormLoadingSourceDirective, selector: "[dbxFormLoadingSource]", inputs: { obs: ["dbxFormLoadingSource", "obs"] }, usesInheritance: true, ngImport: i0 });
326
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormLoadingSourceDirective, decorators: [{
418
+ DbxFormLoadingSourceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormLoadingSourceDirective, deps: [{ token: DbxMutableForm, host: true }], target: i0.ɵɵFactoryTarget.Directive });
419
+ DbxFormLoadingSourceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormLoadingSourceDirective, selector: "[dbxFormLoadingSource]", inputs: { mode: ["dbxFormLoadingSourceMode", "mode"], obs: ["dbxFormLoadingSource", "obs"] }, usesInheritance: true, ngImport: i0 });
420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormLoadingSourceDirective, decorators: [{
327
421
  type: Directive,
328
422
  args: [{
329
423
  selector: '[dbxFormLoadingSource]'
@@ -332,13 +426,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
332
426
  return [{ type: DbxMutableForm, decorators: [{
333
427
  type: Host
334
428
  }] }];
335
- }, propDecorators: { obs: [{
429
+ }, propDecorators: { mode: [{
430
+ type: Input,
431
+ args: ['dbxFormLoadingSourceMode']
432
+ }], obs: [{
336
433
  type: Input,
337
434
  args: ['dbxFormLoadingSource']
338
435
  }] } });
339
436
 
340
437
  /**
341
438
  * Used to see form value changes.
439
+ *
440
+ * Emits undefined when the form is incomplete, and the value when the form is complete.
342
441
  */
343
442
  class DbxFormValueChangesDirective extends AbstractSubscriptionDirective {
344
443
  constructor(form) {
@@ -347,14 +446,23 @@ class DbxFormValueChangesDirective extends AbstractSubscriptionDirective {
347
446
  this.dbxFormValueChange = new EventEmitter();
348
447
  }
349
448
  ngOnInit() {
350
- this.sub = this.form.stream$.pipe(filter$1(x => x.isComplete), mergeMap(() => this.form.getValue().pipe(first$1())), delay(0)).subscribe((value) => {
351
- this.dbxFormValueChange.next(value);
449
+ this.sub = this.form.stream$.pipe(mergeMap((x) => this.form.getValue().pipe(first(), map((value) => ({ isComplete: x.isComplete, value })))), delay(0)).subscribe(({ isComplete, value }) => {
450
+ if (isComplete) {
451
+ this.dbxFormValueChange.next(value);
452
+ }
453
+ else {
454
+ this.dbxFormValueChange.next(undefined);
455
+ }
352
456
  });
353
457
  }
458
+ ngOnDestroy() {
459
+ super.ngOnDestroy();
460
+ this.dbxFormValueChange.complete();
461
+ }
354
462
  }
355
- DbxFormValueChangesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormValueChangesDirective, deps: [{ token: DbxForm, host: true }], target: i0.ɵɵFactoryTarget.Directive });
356
- DbxFormValueChangesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormValueChangesDirective, selector: "[dbxFormValueChange]", outputs: { dbxFormValueChange: "dbxFormValueChange" }, usesInheritance: true, ngImport: i0 });
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormValueChangesDirective, decorators: [{
463
+ DbxFormValueChangesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormValueChangesDirective, deps: [{ token: DbxForm, host: true }], target: i0.ɵɵFactoryTarget.Directive });
464
+ DbxFormValueChangesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormValueChangesDirective, selector: "[dbxFormValueChange]", outputs: { dbxFormValueChange: "dbxFormValueChange" }, usesInheritance: true, ngImport: i0 });
465
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormValueChangesDirective, decorators: [{
358
466
  type: Directive,
359
467
  args: [{
360
468
  selector: '[dbxFormValueChange]'
@@ -367,62 +475,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
367
475
  type: Output
368
476
  }] } });
369
477
 
370
- /**
371
- * Used with a FormComponent to set the value based on the input value.
372
- */
373
- class DbxFormSourceDirective extends AbstractSubscriptionDirective {
374
- constructor(form) {
375
- super();
376
- this.form = form;
377
- }
378
- /**
379
- * Sets a LoadingContext that is watched for the loading state.
380
- */
381
- set obs(obs) {
382
- this._setObs(obs);
383
- }
384
- _setObs(obs) {
385
- let subscription;
386
- if (obs) {
387
- subscription = combineLatest([
388
- // Emit the first time initializing isn't there.
389
- this.form.stream$.pipe(filter((x) => x.state !== DbxFormState.INITIALIZING), first()),
390
- obs
391
- ]).pipe(map((x) => x[1]), distinctUntilChanged((x, y) => x === y)).subscribe((x) => {
392
- this.form.setValue(x);
393
- });
394
- }
395
- this.sub = subscription;
396
- }
397
- }
398
- DbxFormSourceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormSourceDirective, deps: [{ token: DbxMutableForm, host: true }], target: i0.ɵɵFactoryTarget.Directive });
399
- DbxFormSourceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: { obs: ["dbxFormSource", "obs"] }, usesInheritance: true, ngImport: i0 });
400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormSourceDirective, decorators: [{
401
- type: Directive,
402
- args: [{
403
- selector: '[dbxFormSource]'
404
- }]
405
- }], ctorParameters: function () {
406
- return [{ type: DbxMutableForm, decorators: [{
407
- type: Host
408
- }] }];
409
- }, propDecorators: { obs: [{
410
- type: Input,
411
- args: ['dbxFormSource']
412
- }] } });
413
-
414
478
  class DbxFormIoModule {
415
479
  }
416
- DbxFormIoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormIoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
417
- DbxFormIoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormIoModule, declarations: [DbxFormSourceDirective,
480
+ DbxFormIoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
481
+ DbxFormIoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, declarations: [DbxFormSourceDirective,
418
482
  DbxFormValueChangesDirective,
419
483
  DbxFormLoadingSourceDirective], imports: [CommonModule], exports: [DbxFormSourceDirective,
420
484
  DbxFormValueChangesDirective,
421
485
  DbxFormLoadingSourceDirective] });
422
- DbxFormIoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormIoModule, imports: [[
486
+ DbxFormIoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, imports: [[
423
487
  CommonModule
424
488
  ]] });
425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormIoModule, decorators: [{
489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, decorators: [{
426
490
  type: NgModule,
427
491
  args: [{
428
492
  imports: [
@@ -443,14 +507,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
443
507
 
444
508
  class DbxFormModule {
445
509
  }
446
- DbxFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
447
- DbxFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormModule, exports: [DbxFormActionTransitionModule,
510
+ DbxFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
511
+ DbxFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, exports: [DbxFormActionTransitionModule,
448
512
  DbxFormActionModule,
449
513
  DbxFormIoModule] });
450
- DbxFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormModule, imports: [DbxFormActionTransitionModule,
514
+ DbxFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, imports: [DbxFormActionTransitionModule,
451
515
  DbxFormActionModule,
452
516
  DbxFormIoModule] });
453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormModule, decorators: [{
517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, decorators: [{
454
518
  type: NgModule,
455
519
  args: [{
456
520
  exports: [
@@ -474,8 +538,8 @@ function maxValidationMessage(err, field) {
474
538
  return `This value should be less than ${field.templateOptions.max}`;
475
539
  }
476
540
  const REQUIRED_VALIDATION_MESSAGE = { name: 'required', message: 'This field is required' };
477
- const MIN_LENGTH_VALIDATION_MESSAGE = { name: 'minlength', message: minLengthValidationMessage };
478
- const MAX_LENGTH_VALIDATION_MESSAGE = { name: 'maxlength', message: maxLengthValidationMessage };
541
+ const MIN_LENGTH_VALIDATION_MESSAGE = { name: 'minLength', message: minLengthValidationMessage };
542
+ const MAX_LENGTH_VALIDATION_MESSAGE = { name: 'maxLength', message: maxLengthValidationMessage };
479
543
  const MIN_VALIDATION_MESSAGE = { name: 'min', message: minValidationMessage };
480
544
  const MAX_VALIDATION_MESSAGE = { name: 'max', message: maxValidationMessage };
481
545
  const INVALID_PHONE_NUMBER_MESSAGE = { name: 'validatePhoneNumber', message: 'This is not a valid phone number.' };
@@ -498,15 +562,15 @@ class DbxDefaultChecklistItemFieldDisplayComponent {
498
562
  return (_a = this.displayContent) === null || _a === void 0 ? void 0 : _a.description;
499
563
  }
500
564
  }
501
- DbxDefaultChecklistItemFieldDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxDefaultChecklistItemFieldDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
502
- DbxDefaultChecklistItemFieldDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxDefaultChecklistItemFieldDisplayComponent, selector: "ng-component", inputs: { displayContent: "displayContent" }, ngImport: i0, template: `
565
+ DbxDefaultChecklistItemFieldDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDefaultChecklistItemFieldDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
566
+ DbxDefaultChecklistItemFieldDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxDefaultChecklistItemFieldDisplayComponent, selector: "ng-component", inputs: { displayContent: "displayContent" }, ngImport: i0, template: `
503
567
  <div *ngIf="displayContent" class="dbx-default-checklist-item-field">
504
568
  <div *ngIf="label" class="item-label">{{ label }}</div>
505
569
  <div *ngIf="sublabel" class="item-sublabel">{{ sublabel }}</div>
506
570
  <div *ngIf="description" class="dbx-hint item-description">{{ description }}</div>
507
571
  </div>
508
572
  `, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
509
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxDefaultChecklistItemFieldDisplayComponent, decorators: [{
573
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDefaultChecklistItemFieldDisplayComponent, decorators: [{
510
574
  type: Component,
511
575
  args: [{
512
576
  template: `
@@ -525,9 +589,9 @@ class DbxChecklistItemFieldComponent extends FieldType {
525
589
  constructor() {
526
590
  super(...arguments);
527
591
  this._displayContent = new BehaviorSubject(undefined);
528
- this.displayContent$ = this._displayContent.pipe(switchMapMaybeObs(), distinctUntilChanged(), shareReplay(1));
529
- this.anchor$ = this.displayContent$.pipe(map(x => x.anchor), shareReplay(1));
530
- this.rippleDisabled$ = this.displayContent$.pipe(map(x => x.ripple === false || (x.ripple !== true && !x.anchor)), distinctUntilChanged(), shareReplay(1));
592
+ this.displayContent$ = this._displayContent.pipe(switchMapMaybeObs(), distinctUntilChanged$1(), shareReplay(1));
593
+ this.anchor$ = this.displayContent$.pipe(map$1(x => x.anchor), shareReplay(1));
594
+ this.rippleDisabled$ = this.displayContent$.pipe(map$1(x => x.ripple === false || (x.ripple !== true && !x.anchor)), distinctUntilChanged$1(), shareReplay(1));
531
595
  }
532
596
  get formGroup() {
533
597
  return this.form;
@@ -565,9 +629,9 @@ class DbxChecklistItemFieldComponent extends FieldType {
565
629
  this._displayContent.complete();
566
630
  }
567
631
  }
568
- DbxChecklistItemFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxChecklistItemFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
569
- DbxChecklistItemFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxChecklistItemFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-checklist-item-wrapper\" [formGroup]=\"formGroup\">\n <div *ngIf=\"label\" class=\"dbx-checklist-item-label\">{{ label }}</div>\n <div class=\"dbx-checklist-item\">\n <div class=\"dbx-checklist-item-check\">\n <mat-checkbox [formControlName]=\"formControlName\"></mat-checkbox>\n </div>\n <div class=\"dbx-checklist-item-content-wrapper\">\n <dbx-anchor [block]=\"true\" [anchor]=\"anchor$ | async\">\n <div class=\"dbx-checklist-item-content\" matRipple [matRippleDisabled]=\"(rippleDisabled$ | async) ?? false\">\n <dbx-checklist-item-content-component></dbx-checklist-item-content-component>\n <span class=\"spacer\"></span>\n <mat-icon *ngIf=\"!(rippleDisabled$ | async)\">navigate_next</mat-icon>\n </div>\n </dbx-anchor>\n </div>\n </div>\n <div *ngIf=\"description\" class=\"dbx-hint\">{{ description }}</div>\n</div>\n", components: [{ type: i0.forwardRef(function () { return i1.MatCheckbox; }), selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i0.forwardRef(function () { return i1$1.DbxAnchorComponent; }), selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { type: i0.forwardRef(function () { return DbxChecklistItemContentComponent; }), selector: "dbx-checklist-item-content-component" }, { type: i0.forwardRef(function () { return i2$1.MatIcon; }), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i0.forwardRef(function () { return i4$1.NgControlStatusGroup; }), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i0.forwardRef(function () { return i4$1.FormGroupDirective; }), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i0.forwardRef(function () { return i5.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i4$1.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i4$1.FormControlName; }), selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i0.forwardRef(function () { return i6.MatRipple; }), selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], pipes: { "async": i0.forwardRef(function () { return i5.AsyncPipe; }) } });
570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxChecklistItemFieldComponent, decorators: [{
632
+ DbxChecklistItemFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxChecklistItemFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
633
+ DbxChecklistItemFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxChecklistItemFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-checklist-item-wrapper\" [formGroup]=\"formGroup\">\n <div *ngIf=\"label\" class=\"dbx-checklist-item-label\">{{ label }}</div>\n <div class=\"dbx-checklist-item\">\n <div class=\"dbx-checklist-item-check\">\n <mat-checkbox [formControlName]=\"formControlName\"></mat-checkbox>\n </div>\n <div class=\"dbx-checklist-item-content-wrapper\">\n <dbx-anchor [block]=\"true\" [anchor]=\"anchor$ | async\">\n <div class=\"dbx-checklist-item-content\" matRipple [matRippleDisabled]=\"(rippleDisabled$ | async) ?? false\">\n <dbx-checklist-item-content-component></dbx-checklist-item-content-component>\n <span class=\"spacer\"></span>\n <mat-icon *ngIf=\"!(rippleDisabled$ | async)\">navigate_next</mat-icon>\n </div>\n </dbx-anchor>\n </div>\n </div>\n <div *ngIf=\"description\" class=\"dbx-hint\">{{ description }}</div>\n</div>\n", components: [{ type: i0.forwardRef(function () { return i1.MatCheckbox; }), selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i0.forwardRef(function () { return i1$1.DbxAnchorComponent; }), selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { type: i0.forwardRef(function () { return DbxChecklistItemContentComponent; }), selector: "dbx-checklist-item-content-component" }, { type: i0.forwardRef(function () { return i2$1.MatIcon; }), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i0.forwardRef(function () { return i4$1.NgControlStatusGroup; }), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i0.forwardRef(function () { return i4$1.FormGroupDirective; }), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i0.forwardRef(function () { return i5.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i4$1.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i4$1.FormControlName; }), selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i0.forwardRef(function () { return i6.MatRipple; }), selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], pipes: { "async": i0.forwardRef(function () { return i5.AsyncPipe; }) } });
634
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxChecklistItemFieldComponent, decorators: [{
571
635
  type: Component,
572
636
  args: [{ template: "<div class=\"dbx-checklist-item-wrapper\" [formGroup]=\"formGroup\">\n <div *ngIf=\"label\" class=\"dbx-checklist-item-label\">{{ label }}</div>\n <div class=\"dbx-checklist-item\">\n <div class=\"dbx-checklist-item-check\">\n <mat-checkbox [formControlName]=\"formControlName\"></mat-checkbox>\n </div>\n <div class=\"dbx-checklist-item-content-wrapper\">\n <dbx-anchor [block]=\"true\" [anchor]=\"anchor$ | async\">\n <div class=\"dbx-checklist-item-content\" matRipple [matRippleDisabled]=\"(rippleDisabled$ | async) ?? false\">\n <dbx-checklist-item-content-component></dbx-checklist-item-content-component>\n <span class=\"spacer\"></span>\n <mat-icon *ngIf=\"!(rippleDisabled$ | async)\">navigate_next</mat-icon>\n </div>\n </dbx-anchor>\n </div>\n </div>\n <div *ngIf=\"description\" class=\"dbx-hint\">{{ description }}</div>\n</div>\n" }]
573
637
  }] });
@@ -589,13 +653,13 @@ class DbxChecklistItemContentComponent extends AbstractSubscriptionDirective {
589
653
  };
590
654
  }
591
655
  }
592
- DbxChecklistItemContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxChecklistItemContentComponent, deps: [{ token: DbxChecklistItemFieldComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
593
- DbxChecklistItemContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxChecklistItemContentComponent, selector: "dbx-checklist-item-content-component", usesInheritance: true, ngImport: i0, template: `<dbx-injected-content [config]="config"></dbx-injected-content>`, isInline: true, components: [{ type: i2.DbxInjectedComponent, selector: "dbx-injected-content, [dbx-injected-content]", inputs: ["config", "template"] }] });
594
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxChecklistItemContentComponent, decorators: [{
656
+ DbxChecklistItemContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxChecklistItemContentComponent, deps: [{ token: DbxChecklistItemFieldComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
657
+ DbxChecklistItemContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxChecklistItemContentComponent, selector: "dbx-checklist-item-content-component", usesInheritance: true, ngImport: i0, template: `<dbx-injection [config]="config"></dbx-injection>`, isInline: true, components: [{ type: i2.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxChecklistItemContentComponent, decorators: [{
595
659
  type: Component,
596
660
  args: [{
597
661
  selector: 'dbx-checklist-item-content-component',
598
- template: `<dbx-injected-content [config]="config"></dbx-injected-content>`
662
+ template: `<dbx-injection [config]="config"></dbx-injection>`
599
663
  }]
600
664
  }], ctorParameters: function () { return [{ type: DbxChecklistItemFieldComponent }, { type: i0.ChangeDetectorRef }]; } });
601
665
 
@@ -607,8 +671,8 @@ class DbxFormInfoWrapperComponent extends FieldWrapper {
607
671
  this.infoWrapper.onInfoClick();
608
672
  }
609
673
  }
610
- DbxFormInfoWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormInfoWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
611
- DbxFormInfoWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormInfoWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
674
+ DbxFormInfoWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormInfoWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
675
+ DbxFormInfoWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormInfoWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
612
676
  <div class="dbx-form-info-wrapper" fxLayout="row">
613
677
  <div class="dbx-form-info-wrapper-content" fxFlex="grow">
614
678
  <ng-container #fieldComponent></ng-container>
@@ -621,7 +685,7 @@ DbxFormInfoWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
621
685
  </div>
622
686
  </div>
623
687
  `, isInline: true, components: [{ 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"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.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"] }, { type: i3$1.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"] }, { type: i3$1.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"] }] });
624
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormInfoWrapperComponent, decorators: [{
688
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormInfoWrapperComponent, decorators: [{
625
689
  type: Component,
626
690
  args: [{
627
691
  template: `
@@ -650,13 +714,13 @@ class DbxFormSectionWrapperComponent extends FieldWrapper {
650
714
  return (_a = this.to.sectionWrapper) === null || _a === void 0 ? void 0 : _a.hint;
651
715
  }
652
716
  }
653
- DbxFormSectionWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormSectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
654
- DbxFormSectionWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormSectionWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
717
+ DbxFormSectionWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
718
+ DbxFormSectionWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormSectionWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
655
719
  <dbx-section [header]="header" [hint]="hint">
656
720
  <ng-container #fieldComponent></ng-container>
657
721
  </dbx-section>
658
722
  `, isInline: true, components: [{ type: i1$1.DbxSectionComponent, selector: "dbx-section", inputs: ["elevated"] }] });
659
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormSectionWrapperComponent, decorators: [{
723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSectionWrapperComponent, decorators: [{
660
724
  type: Component,
661
725
  args: [{
662
726
  template: `
@@ -680,13 +744,13 @@ class DbxFormFlexWrapperComponent extends FieldWrapper {
680
744
  return (_b = (_a = this.flexWrapper) === null || _a === void 0 ? void 0 : _a.relative) !== null && _b !== void 0 ? _b : false;
681
745
  }
682
746
  }
683
- DbxFormFlexWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFlexWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
684
- DbxFormFlexWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormFlexWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
747
+ DbxFormFlexWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFlexWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
748
+ DbxFormFlexWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormFlexWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
685
749
  <div class="dbx-form-flex-section" dbxFlexGroup [content]="false" [relative]="relative" [breakpoint]="breakpoint">
686
750
  <ng-container #fieldComponent></ng-container>
687
751
  </div>
688
752
  `, isInline: true, directives: [{ type: i1$1.DbxFlexGroupDirective, selector: "[dbxFlexGroup]", inputs: ["content", "relative", "breakpoint"] }] });
689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFlexWrapperComponent, decorators: [{
753
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFlexWrapperComponent, decorators: [{
690
754
  type: Component,
691
755
  args: [{
692
756
  template: `
@@ -707,13 +771,13 @@ class DbxFormSubsectionWrapperComponent extends FieldWrapper {
707
771
  return (_a = this.to.subsectionWrapper) === null || _a === void 0 ? void 0 : _a.hint;
708
772
  }
709
773
  }
710
- DbxFormSubsectionWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormSubsectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
711
- DbxFormSubsectionWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormSubsectionWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
774
+ DbxFormSubsectionWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSubsectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
775
+ DbxFormSubsectionWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormSubsectionWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
712
776
  <dbx-subsection [header]="header" [hint]="hint">
713
777
  <ng-container #fieldComponent></ng-container>
714
778
  </dbx-subsection>
715
779
  `, isInline: true, components: [{ type: i1$1.DbxSubSectionComponent, selector: "dbx-subsection" }] });
716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormSubsectionWrapperComponent, decorators: [{
780
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSubsectionWrapperComponent, decorators: [{
717
781
  type: Component,
718
782
  args: [{
719
783
  template: `
@@ -731,7 +795,7 @@ class AbstractFormExpandableSectionWrapperDirective extends FieldWrapper {
731
795
  this._formControlObs = new BehaviorSubject(undefined);
732
796
  this.formControl$ = this._formControlObs.pipe(filterMaybe());
733
797
  this._toggleOpen = new BehaviorSubject(undefined);
734
- this.show$ = this._toggleOpen.pipe(switchMap$1((toggleOpen) => {
798
+ this.show$ = this._toggleOpen.pipe(switchMap((toggleOpen) => {
735
799
  if (toggleOpen != null) {
736
800
  return of(toggleOpen);
737
801
  }
@@ -739,7 +803,7 @@ class AbstractFormExpandableSectionWrapperDirective extends FieldWrapper {
739
803
  return this.hasValue$;
740
804
  }
741
805
  }), shareReplay$1(1));
742
- this.hasValue$ = this.formControl$.pipe(switchMap$1((x) => x.valueChanges.pipe(startWith(x.value), map$1((value) => {
806
+ this.hasValue$ = this.formControl$.pipe(switchMap((x) => x.valueChanges.pipe(startWith(x.value), map((value) => {
743
807
  return this.hasValueFn(value);
744
808
  }), shareReplay$1(1))));
745
809
  }
@@ -772,9 +836,9 @@ class AbstractFormExpandableSectionWrapperDirective extends FieldWrapper {
772
836
  this._formControlObs.complete();
773
837
  }
774
838
  }
775
- AbstractFormExpandableSectionWrapperDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractFormExpandableSectionWrapperDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
776
- AbstractFormExpandableSectionWrapperDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: AbstractFormExpandableSectionWrapperDirective, usesInheritance: true, ngImport: i0 });
777
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractFormExpandableSectionWrapperDirective, decorators: [{
839
+ AbstractFormExpandableSectionWrapperDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractFormExpandableSectionWrapperDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
840
+ AbstractFormExpandableSectionWrapperDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractFormExpandableSectionWrapperDirective, usesInheritance: true, ngImport: i0 });
841
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractFormExpandableSectionWrapperDirective, decorators: [{
778
842
  type: Directive
779
843
  }] });
780
844
 
@@ -787,8 +851,8 @@ class DbxFormExpandWrapperComponent extends AbstractFormExpandableSectionWrapper
787
851
  return (_b = (_a = this.expandableSection) === null || _a === void 0 ? void 0 : _a.buttonType) !== null && _b !== void 0 ? _b : 'button';
788
852
  }
789
853
  }
790
- DbxFormExpandWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormExpandWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
791
- DbxFormExpandWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormExpandWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
854
+ DbxFormExpandWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExpandWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
855
+ DbxFormExpandWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormExpandWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
792
856
  <ng-container [ngSwitch]="show$ | async">
793
857
  <ng-container *ngSwitchCase="true">
794
858
  <ng-container #fieldComponent></ng-container>
@@ -798,7 +862,7 @@ DbxFormExpandWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
798
862
  </ng-container>
799
863
  </ng-container>
800
864
  `, isInline: true, directives: [{ type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i5.AsyncPipe } });
801
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormExpandWrapperComponent, decorators: [{
865
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExpandWrapperComponent, decorators: [{
802
866
  type: Component,
803
867
  args: [{
804
868
  template: `
@@ -827,9 +891,9 @@ class AutoTouchFieldWrapperComponent extends FieldWrapper {
827
891
  });
828
892
  }
829
893
  }
830
- AutoTouchFieldWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AutoTouchFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
831
- AutoTouchFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: AutoTouchFieldWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<ng-container #fieldComponent></ng-container>`, isInline: true });
832
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AutoTouchFieldWrapperComponent, decorators: [{
894
+ AutoTouchFieldWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AutoTouchFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
895
+ AutoTouchFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AutoTouchFieldWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<ng-container #fieldComponent></ng-container>`, isInline: true });
896
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AutoTouchFieldWrapperComponent, decorators: [{
833
897
  type: Component,
834
898
  args: [{
835
899
  template: `<ng-container #fieldComponent></ng-container>`
@@ -842,7 +906,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
842
906
  class DbxFormToggleWrapperComponent extends AbstractFormExpandableSectionWrapperDirective {
843
907
  constructor() {
844
908
  super(...arguments);
845
- this.slideLabel$ = this._toggleOpen.pipe(switchMap$1(x => {
909
+ this.slideLabel$ = this._toggleOpen.pipe(switchMap(x => {
846
910
  var _a, _b;
847
911
  if ((_a = this.expandableSection) === null || _a === void 0 ? void 0 : _a.toggleLabelObs) {
848
912
  return (_b = this.expandableSection) === null || _b === void 0 ? void 0 : _b.toggleLabelObs(x);
@@ -853,13 +917,13 @@ class DbxFormToggleWrapperComponent extends AbstractFormExpandableSectionWrapper
853
917
  }), shareReplay$1(1));
854
918
  }
855
919
  onToggleChange() {
856
- this.show$.pipe(first$1()).subscribe((show) => {
920
+ this.show$.pipe(first()).subscribe((show) => {
857
921
  this._toggleOpen.next(!show);
858
922
  });
859
923
  }
860
924
  }
861
- DbxFormToggleWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormToggleWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
862
- DbxFormToggleWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormToggleWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
925
+ DbxFormToggleWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormToggleWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
926
+ DbxFormToggleWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormToggleWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
863
927
  <div class="dbx-form-toggle-wrapper" [ngSwitch]="show$ | async">
864
928
  <div class="dbx-form-toggle-wrapper-toggle">
865
929
  <mat-slide-toggle [checked]="show$ | async" (toggleChange)="onToggleChange()">{{ slideLabel$ | async }}</mat-slide-toggle>
@@ -869,7 +933,7 @@ DbxFormToggleWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
869
933
  </ng-container>
870
934
  </div>
871
935
  `, isInline: true, components: [{ type: i1$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }], directives: [{ type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i5.AsyncPipe } });
872
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormToggleWrapperComponent, decorators: [{
936
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormToggleWrapperComponent, decorators: [{
873
937
  type: Component,
874
938
  args: [{
875
939
  template: `
@@ -904,13 +968,13 @@ class DbxFormStyleWrapperComponent extends FieldWrapper {
904
968
  this._style.complete();
905
969
  }
906
970
  }
907
- DbxFormStyleWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormStyleWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
908
- DbxFormStyleWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormStyleWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
971
+ DbxFormStyleWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormStyleWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
972
+ DbxFormStyleWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormStyleWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
909
973
  <div [ngClass]="(style$ | async) ?? ''">
910
974
  <ng-container #fieldComponent></ng-container>
911
975
  </div>
912
976
  `, isInline: true, directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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"] }], pipes: { "async": i5.AsyncPipe } });
913
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormStyleWrapperComponent, decorators: [{
977
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormStyleWrapperComponent, decorators: [{
914
978
  type: Component,
915
979
  args: [{
916
980
  template: `
@@ -921,27 +985,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
921
985
  }]
922
986
  }] });
923
987
 
988
+ /**
989
+ * Adds a loading bar to help signify asynchronos work is occuring.
990
+ *
991
+ * By default shows loading during asynchronous validation of a field (FormControl status is "PENDING")
992
+ */
993
+ class DbxFormWorkingWrapperComponent extends FieldWrapper {
994
+ constructor() {
995
+ super(...arguments);
996
+ this.sub = new SubscriptionObject();
997
+ this.workingContext = new SimpleLoadingContext(false);
998
+ }
999
+ ngOnInit() {
1000
+ var _a;
1001
+ this.sub.subscription = (_a = this.formControl) === null || _a === void 0 ? void 0 : _a.statusChanges.subscribe({
1002
+ next: (x) => this.workingContext.setLoading(x === 'PENDING')
1003
+ });
1004
+ }
1005
+ ngOnDestroy() {
1006
+ this.workingContext.destroy();
1007
+ this.sub.destroy();
1008
+ }
1009
+ }
1010
+ DbxFormWorkingWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormWorkingWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1011
+ DbxFormWorkingWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormWorkingWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1012
+ <div class="dbx-form-working-wrapper">
1013
+ <ng-container #fieldComponent></ng-container>
1014
+ <dbx-loading [linear]="true" [context]="workingContext"></dbx-loading>
1015
+ </div>
1016
+ `, isInline: true, components: [{ type: i1$1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }] });
1017
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormWorkingWrapperComponent, decorators: [{
1018
+ type: Component,
1019
+ args: [{
1020
+ template: `
1021
+ <div class="dbx-form-working-wrapper">
1022
+ <ng-container #fieldComponent></ng-container>
1023
+ <dbx-loading [linear]="true" [context]="workingContext"></dbx-loading>
1024
+ </div>
1025
+ `
1026
+ }]
1027
+ }] });
1028
+
924
1029
  class DbxFormFormlyWrapperModule {
925
1030
  }
926
- DbxFormFormlyWrapperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
927
- DbxFormFormlyWrapperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyWrapperModule, declarations: [AutoTouchFieldWrapperComponent,
1031
+ DbxFormFormlyWrapperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1032
+ DbxFormFormlyWrapperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyWrapperModule, declarations: [AutoTouchFieldWrapperComponent,
928
1033
  DbxFormSectionWrapperComponent,
929
1034
  DbxFormSubsectionWrapperComponent,
930
1035
  DbxFormInfoWrapperComponent,
931
1036
  DbxFormExpandWrapperComponent,
932
1037
  DbxFormToggleWrapperComponent,
933
1038
  DbxFormFlexWrapperComponent,
934
- DbxFormStyleWrapperComponent], imports: [CommonModule,
1039
+ DbxFormStyleWrapperComponent,
1040
+ DbxFormWorkingWrapperComponent], imports: [CommonModule,
935
1041
  DbxTextModule,
1042
+ DbxLoadingModule,
936
1043
  DbxFlexLayoutModule,
937
1044
  DbxSectionLayoutModule,
938
1045
  MatButtonModule,
939
1046
  MatSlideToggleModule,
940
1047
  MatIconModule,
941
1048
  FlexLayoutModule, i1$4.FormlyModule] });
942
- DbxFormFormlyWrapperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyWrapperModule, imports: [[
1049
+ DbxFormFormlyWrapperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyWrapperModule, imports: [[
943
1050
  CommonModule,
944
1051
  DbxTextModule,
1052
+ DbxLoadingModule,
945
1053
  DbxFlexLayoutModule,
946
1054
  DbxSectionLayoutModule,
947
1055
  MatButtonModule,
@@ -957,16 +1065,18 @@ DbxFormFormlyWrapperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.
957
1065
  { name: 'subsection', component: DbxFormSubsectionWrapperComponent },
958
1066
  { name: 'info', component: DbxFormInfoWrapperComponent },
959
1067
  { name: 'flex', component: DbxFormFlexWrapperComponent },
960
- { name: 'style', component: DbxFormStyleWrapperComponent }
1068
+ { name: 'style', component: DbxFormStyleWrapperComponent },
1069
+ { name: 'working', component: DbxFormWorkingWrapperComponent }
961
1070
  ]
962
1071
  })
963
1072
  ]] });
964
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyWrapperModule, decorators: [{
1073
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyWrapperModule, decorators: [{
965
1074
  type: NgModule,
966
1075
  args: [{
967
1076
  imports: [
968
1077
  CommonModule,
969
1078
  DbxTextModule,
1079
+ DbxLoadingModule,
970
1080
  DbxFlexLayoutModule,
971
1081
  DbxSectionLayoutModule,
972
1082
  MatButtonModule,
@@ -982,7 +1092,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
982
1092
  { name: 'subsection', component: DbxFormSubsectionWrapperComponent },
983
1093
  { name: 'info', component: DbxFormInfoWrapperComponent },
984
1094
  { name: 'flex', component: DbxFormFlexWrapperComponent },
985
- { name: 'style', component: DbxFormStyleWrapperComponent }
1095
+ { name: 'style', component: DbxFormStyleWrapperComponent },
1096
+ { name: 'working', component: DbxFormWorkingWrapperComponent }
986
1097
  ]
987
1098
  })
988
1099
  ],
@@ -994,7 +1105,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
994
1105
  DbxFormExpandWrapperComponent,
995
1106
  DbxFormToggleWrapperComponent,
996
1107
  DbxFormFlexWrapperComponent,
997
- DbxFormStyleWrapperComponent
1108
+ DbxFormStyleWrapperComponent,
1109
+ DbxFormWorkingWrapperComponent
998
1110
  ],
999
1111
  exports: []
1000
1112
  }]
@@ -1002,8 +1114,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
1002
1114
 
1003
1115
  class DbxFormFormlyChecklistItemFieldModule {
1004
1116
  }
1005
- DbxFormFormlyChecklistItemFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1006
- DbxFormFormlyChecklistItemFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, declarations: [DbxChecklistItemFieldComponent,
1117
+ DbxFormFormlyChecklistItemFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1118
+ DbxFormFormlyChecklistItemFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, declarations: [DbxChecklistItemFieldComponent,
1007
1119
  DbxChecklistItemContentComponent,
1008
1120
  DbxDefaultChecklistItemFieldDisplayComponent], imports: [CommonModule,
1009
1121
  DbxTextModule,
@@ -1013,10 +1125,10 @@ DbxFormFormlyChecklistItemFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVers
1013
1125
  MatCheckboxModule,
1014
1126
  MatButtonModule,
1015
1127
  MatIconModule,
1016
- DbxAnchorModule,
1017
- DbxInjectedComponentModule,
1128
+ DbxRouterAnchorModule,
1129
+ DbxInjectionComponentModule,
1018
1130
  DbxFormFormlyWrapperModule, i1$4.FormlyModule], exports: [DbxFormFormlyWrapperModule] });
1019
- DbxFormFormlyChecklistItemFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, imports: [[
1131
+ DbxFormFormlyChecklistItemFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, imports: [[
1020
1132
  CommonModule,
1021
1133
  DbxTextModule,
1022
1134
  FormsModule,
@@ -1025,8 +1137,8 @@ DbxFormFormlyChecklistItemFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVers
1025
1137
  MatCheckboxModule,
1026
1138
  MatButtonModule,
1027
1139
  MatIconModule,
1028
- DbxAnchorModule,
1029
- DbxInjectedComponentModule,
1140
+ DbxRouterAnchorModule,
1141
+ DbxInjectionComponentModule,
1030
1142
  DbxFormFormlyWrapperModule,
1031
1143
  FormlyModule.forChild({
1032
1144
  types: [
@@ -1034,7 +1146,7 @@ DbxFormFormlyChecklistItemFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVers
1034
1146
  ]
1035
1147
  })
1036
1148
  ], DbxFormFormlyWrapperModule] });
1037
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, decorators: [{
1149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, decorators: [{
1038
1150
  type: NgModule,
1039
1151
  args: [{
1040
1152
  imports: [
@@ -1046,8 +1158,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
1046
1158
  MatCheckboxModule,
1047
1159
  MatButtonModule,
1048
1160
  MatIconModule,
1049
- DbxAnchorModule,
1050
- DbxInjectedComponentModule,
1161
+ DbxRouterAnchorModule,
1162
+ DbxInjectionComponentModule,
1051
1163
  DbxFormFormlyWrapperModule,
1052
1164
  FormlyModule.forChild({
1053
1165
  types: [
@@ -1143,7 +1255,7 @@ class ChecklistItemFieldDataSetBuilder {
1143
1255
  mergedConfig.displayContentObs = combineLatest([
1144
1256
  currentField.displayContentObs,
1145
1257
  config.displayContentObs
1146
- ]).pipe(map(([a, b]) => {
1258
+ ]).pipe(map$1(([a, b]) => {
1147
1259
  const result = Object.assign(Object.assign({}, a), b);
1148
1260
  // console.log('A and b: ', a, b, result);
1149
1261
  return result;
@@ -1184,7 +1296,7 @@ class ChecklistItemFieldDataSetBuilder {
1184
1296
  }
1185
1297
  // MARK: Utility
1186
1298
  customContentFromData(mapFn) {
1187
- return this.dataObs$.pipe(map(mapFn));
1299
+ return this.dataObs$.pipe(map$1(mapFn));
1188
1300
  }
1189
1301
  contentWithValueFromData(key, contentFn) {
1190
1302
  return this.customContentFromData((data) => {
@@ -1201,78 +1313,63 @@ class ChecklistItemFieldDataSetBuilder {
1201
1313
  }
1202
1314
  }
1203
1315
 
1204
- class AbstractFormComponentFieldWrappedComponent {
1205
- }
1206
- class FormComponentFieldComponent extends FieldType {
1316
+ class DbxFormComponentFieldComponent extends FieldType {
1207
1317
  get config() {
1208
- return this._config;
1209
- }
1210
- get componentField() {
1211
1318
  return this.field.componentField;
1212
1319
  }
1213
- ngOnInit() {
1214
- this._config = {
1215
- componentClass: this.componentField.componentClass,
1216
- init: (instance) => {
1217
- instance.field = this;
1218
- }
1219
- };
1220
- }
1221
1320
  }
1222
- FormComponentFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: FormComponentFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1223
- FormComponentFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: FormComponentFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1224
- <div class="form-wrapped-component" dbx-injected-content [config]="config"></div>
1225
- `, isInline: true, components: [{ type: i2.DbxInjectedComponent, selector: "dbx-injected-content, [dbx-injected-content]", inputs: ["config", "template"] }] });
1226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: FormComponentFieldComponent, decorators: [{
1321
+ DbxFormComponentFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormComponentFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1322
+ DbxFormComponentFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormComponentFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1323
+ <div class="dbx-form-component" dbx-injection [config]="config"></div>
1324
+ `, isInline: true, components: [{ type: i2.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
1325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormComponentFieldComponent, decorators: [{
1227
1326
  type: Component,
1228
1327
  args: [{
1229
1328
  template: `
1230
- <div class="form-wrapped-component" dbx-injected-content [config]="config"></div>
1329
+ <div class="dbx-form-component" dbx-injection [config]="config"></div>
1231
1330
  `
1232
1331
  }]
1233
1332
  }] });
1234
1333
 
1235
1334
  class DbxFormFormlyComponentFieldModule {
1236
1335
  }
1237
- DbxFormFormlyComponentFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyComponentFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1238
- DbxFormFormlyComponentFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyComponentFieldModule, declarations: [FormComponentFieldComponent], imports: [CommonModule,
1239
- DbxInjectedComponentModule, i1$4.FormlyModule], exports: [FormComponentFieldComponent] });
1240
- DbxFormFormlyComponentFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyComponentFieldModule, imports: [[
1336
+ DbxFormFormlyComponentFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyComponentFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1337
+ DbxFormFormlyComponentFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyComponentFieldModule, declarations: [DbxFormComponentFieldComponent], imports: [CommonModule,
1338
+ DbxInjectionComponentModule, i1$4.FormlyModule], exports: [DbxFormComponentFieldComponent] });
1339
+ DbxFormFormlyComponentFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyComponentFieldModule, imports: [[
1241
1340
  CommonModule,
1242
- DbxInjectedComponentModule,
1341
+ DbxInjectionComponentModule,
1243
1342
  FormlyModule.forChild({
1244
1343
  types: [
1245
- { name: 'component', component: FormComponentFieldComponent }
1344
+ { name: 'component', component: DbxFormComponentFieldComponent }
1246
1345
  ]
1247
1346
  })
1248
1347
  ]] });
1249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyComponentFieldModule, decorators: [{
1348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyComponentFieldModule, decorators: [{
1250
1349
  type: NgModule,
1251
1350
  args: [{
1252
1351
  imports: [
1253
1352
  CommonModule,
1254
- DbxInjectedComponentModule,
1353
+ DbxInjectionComponentModule,
1255
1354
  FormlyModule.forChild({
1256
1355
  types: [
1257
- { name: 'component', component: FormComponentFieldComponent }
1356
+ { name: 'component', component: DbxFormComponentFieldComponent }
1258
1357
  ]
1259
1358
  })
1260
1359
  ],
1261
1360
  declarations: [
1262
- FormComponentFieldComponent
1361
+ DbxFormComponentFieldComponent
1263
1362
  ],
1264
1363
  exports: [
1265
- FormComponentFieldComponent
1364
+ DbxFormComponentFieldComponent
1266
1365
  ]
1267
1366
  }]
1268
1367
  }] });
1269
1368
 
1270
- function componentField({ componentClass }) {
1369
+ function componentField(config) {
1271
1370
  return {
1272
1371
  type: 'component',
1273
- componentField: {
1274
- componentClass
1275
- }
1372
+ componentField: config
1276
1373
  };
1277
1374
  }
1278
1375
 
@@ -1287,18 +1384,18 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1287
1384
  this.formControl$ = this._formControlObs.pipe(filterMaybe());
1288
1385
  this._displayHashMap = new BehaviorSubject(new Map());
1289
1386
  this.filterInputValue$ = this.inputCtrl.valueChanges.pipe(startWith(undefined));
1290
- this.filterInputValueString$ = this.filterInputValue$.pipe(debounceTime(200), distinctUntilChanged$1(), shareReplay$1(1));
1291
- this.loadResultsDisplayValuesState$ = this.formControl$.pipe(first$1(), switchMap$1(() => this.loadValuesFn().pipe(switchMap$1((x) => this.loadDisplayValuesForFieldValues(x)), startWith(beginLoading()))), shareReplay$1(1));
1292
- this._formControlValue = this.formControl$.pipe(switchMap$1(control => control.valueChanges.pipe(startWith(control.value), shareReplay$1(1))));
1293
- this.loadResultsDisplayValues$ = this.loadResultsDisplayValuesState$.pipe(map$1(x => { var _a; return (_a = x === null || x === void 0 ? void 0 : x.value) !== null && _a !== void 0 ? _a : []; }));
1387
+ this.filterInputValueString$ = this.filterInputValue$.pipe(debounceTime(200), distinctUntilChanged(), shareReplay$1(1));
1388
+ this.loadResultsDisplayValuesState$ = this.formControl$.pipe(first(), switchMap(() => this.loadValuesFn().pipe(switchMap((x) => this.loadDisplayValuesForFieldValues(x)), startWith(beginLoading()))), shareReplay$1(1));
1389
+ this._formControlValue = this.formControl$.pipe(switchMap(control => control.valueChanges.pipe(startWith(control.value), shareReplay$1(1))));
1390
+ this.loadResultsDisplayValues$ = this.loadResultsDisplayValuesState$.pipe(map(x => { var _a; return (_a = x === null || x === void 0 ? void 0 : x.value) !== null && _a !== void 0 ? _a : []; }));
1294
1391
  /**
1295
1392
  * Current values in the form control.
1296
1393
  */
1297
- this.values$ = this._formControlValue.pipe(map$1(convertMaybeToArray), shareReplay$1(1));
1394
+ this.values$ = this._formControlValue.pipe(map(convertMaybeToArray), shareReplay$1(1));
1298
1395
  /**
1299
1396
  * Current values with their display value.
1300
1397
  */
1301
- this.displayValuesState$ = combineLatest([this.loadResultsDisplayValues$, this.values$]).pipe(switchMap$1(([displayValues, currentValues]) => {
1398
+ this.displayValuesState$ = combineLatest([this.loadResultsDisplayValues$, this.values$]).pipe(switchMap(([displayValues, currentValues]) => {
1302
1399
  const displayValuesMap = makeValuesGroupMap(displayValues, (x) => this.hashForValue(x.value));
1303
1400
  const valuesNotInDisplayMap = [];
1304
1401
  currentValues.forEach((x) => {
@@ -1310,7 +1407,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1310
1407
  }
1311
1408
  });
1312
1409
  if (valuesNotInDisplayMap.length) {
1313
- return this.loadDisplayValuesForValues(valuesNotInDisplayMap).pipe(map$1(x => mapLoadingStateResults(x, {
1410
+ return this.loadDisplayValuesForValues(valuesNotInDisplayMap).pipe(map(x => mapLoadingStateResults(x, {
1314
1411
  mapValue: (loadedValues) => {
1315
1412
  loadedValues.forEach(x => { var _a; return x.isUnknown = (_a = x.isUnknown) !== null && _a !== void 0 ? _a : true; }); // Assign unknown flag.
1316
1413
  return ([...displayValues, ...loadedValues]);
@@ -1324,32 +1421,32 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1324
1421
  /**
1325
1422
  * Results to be displayed if filtered.
1326
1423
  */
1327
- this.filteredSearchResultsState$ = this.loadResultsDisplayValues$.pipe(switchMap$1((values) => this.filterInputValueString$.pipe(switchMap$1(text => combineLatest([this._filterValues(text, values), this.displayValuesState$]).pipe(map$1(([values, displayState]) => mapLoadingStateResults(displayState, {
1424
+ this.filteredSearchResultsState$ = this.loadResultsDisplayValues$.pipe(switchMap((values) => this.filterInputValueString$.pipe(switchMap(text => combineLatest([this._filterValues(text, values), this.displayValuesState$]).pipe(map(([values, displayState]) => mapLoadingStateResults(displayState, {
1328
1425
  mapValue: (displayValues) => {
1329
1426
  const valueHashSet = new Set(values.map(x => this.hashForValue(x)));
1330
1427
  return displayValues.filter(x => !x.isUnknown && valueHashSet.has(x._hash));
1331
1428
  }
1332
1429
  })), startWith(beginLoading()))))), shareReplay$1(1));
1333
- this.filteredSearchResults$ = this.filteredSearchResultsState$.pipe(map$1(x => x === null || x === void 0 ? void 0 : x.value), filterMaybe(), shareReplay$1(1));
1334
- this.items$ = combineLatest([this.filteredSearchResults$, this.values$]).pipe(map$1(([displayValues, values]) => {
1430
+ this.filteredSearchResults$ = this.filteredSearchResultsState$.pipe(map(x => x === null || x === void 0 ? void 0 : x.value), filterMaybe(), shareReplay$1(1));
1431
+ this.items$ = combineLatest([this.filteredSearchResults$, this.values$]).pipe(map(([displayValues, values]) => {
1335
1432
  const selectedHashValuesSet = new Set(values.map(x => this.hashForValue(x)));
1336
- let items = displayValues.map((x) => ({ value: x, selected: selectedHashValuesSet.has(x._hash) }));
1433
+ let items = displayValues.map((x) => ({ itemValue: x, selected: selectedHashValuesSet.has(x._hash) }));
1337
1434
  if (this.sortItems) {
1338
1435
  items = this.sortItems(items);
1339
1436
  }
1340
1437
  return items;
1341
1438
  }), shareReplay$1(1));
1342
- this.itemsLoadingState$ = this.loadResultsDisplayValues$.pipe(switchMap$1(x => this.items$.pipe(first$1(), map$1(x => successResult(x)), startWith(beginLoading()), shareReplay$1(1))));
1439
+ this.itemsLoadingState$ = this.loadResultsDisplayValues$.pipe(switchMap(x => this.items$.pipe(first(), map(x => successResult(x)), startWith(beginLoading()), shareReplay$1(1))));
1343
1440
  /**
1344
1441
  * Context used for managing the loading of items, or when the current results change.
1345
1442
  */
1346
1443
  this.context = new ListLoadingStateContextInstance({ obs: this.itemsLoadingState$, showLoadingOnNoValue: false });
1347
- this.filterItemsLoadingState$ = this.items$.pipe(map$1(x => successResult(x)), startWith(beginLoading()), shareReplay$1(1));
1444
+ this.filterItemsLoadingState$ = this.items$.pipe(map(x => successResult(x)), startWith(beginLoading()), shareReplay$1(1));
1348
1445
  /**
1349
1446
  * Context used for searching/filtering.
1350
1447
  */
1351
1448
  this.filterResultsContext = new ListLoadingStateContextInstance({ obs: this.filteredSearchResultsState$, showLoadingOnNoValue: true });
1352
- this.noItemsAvailable$ = this.filterItemsLoadingState$.pipe(isListLoadingStateEmpty(), distinctUntilChanged$1());
1449
+ this.noItemsAvailable$ = this.filterItemsLoadingState$.pipe(isListLoadingStateEmpty(), distinctUntilChanged());
1353
1450
  }
1354
1451
  get readonly() {
1355
1452
  var _a;
@@ -1384,6 +1481,10 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1384
1481
  var _a, _b, _c;
1385
1482
  return (_c = (_b = (_a = this.field.templateOptions) === null || _a === void 0 ? void 0 : _a.attributes) === null || _b === void 0 ? void 0 : _b['autocomplete']) !== null && _c !== void 0 ? _c : this.key;
1386
1483
  }
1484
+ get changeSelectionModeToViewOnDisabled() {
1485
+ var _a;
1486
+ return (_a = this.pickableField.changeSelectionModeToViewOnDisabled) !== null && _a !== void 0 ? _a : false;
1487
+ }
1387
1488
  get sortItems() {
1388
1489
  return this.pickableField.sortItems;
1389
1490
  }
@@ -1442,7 +1543,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1442
1543
  return this.loadDisplayValuesForFieldValues(values.map((value) => ({ value })));
1443
1544
  }
1444
1545
  loadDisplayValuesForFieldValues(values) {
1445
- return this.getDisplayValuesForFieldValues(values).pipe(map$1((displayValues) => successResult(displayValues)), startWith(beginLoading()), shareReplay$1(1));
1546
+ return this.getDisplayValuesForFieldValues(values).pipe(map((displayValues) => successResult(displayValues)), startWith(beginLoading()), shareReplay$1(1));
1446
1547
  }
1447
1548
  getDisplayValuesForFieldValues(values) {
1448
1549
  return this._displayHashMap.pipe(mergeMap((displayMap) => {
@@ -1454,7 +1555,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1454
1555
  if (needsDisplay.length > 0) {
1455
1556
  // Go get the display value.
1456
1557
  const displayValuesObs = this.displayForValue(needsDisplay.map(x => x[2]));
1457
- return displayValuesObs.pipe(first$1(), map$1((displayResults) => {
1558
+ return displayValuesObs.pipe(first(), map((displayResults) => {
1458
1559
  const displayResultsWithHash = displayResults.map((x) => {
1459
1560
  x._hash = this.hashForValue(x.value);
1460
1561
  return x;
@@ -1477,10 +1578,9 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1477
1578
  }));
1478
1579
  }
1479
1580
  ngOnInit() {
1480
- super.ngOnInit();
1481
1581
  this._formControlObs.next(this.formControl);
1482
1582
  // Focus after finished loading for the first time.
1483
- this.context.loading$.pipe(delay(10), filter$1(x => x), first$1()).subscribe(() => {
1583
+ this.context.loading$.pipe(delay(10), filter(x => x), first()).subscribe(() => {
1484
1584
  var _a;
1485
1585
  (_a = this.filterMatInput) === null || _a === void 0 ? void 0 : _a.focus();
1486
1586
  });
@@ -1524,9 +1624,9 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1524
1624
  this.formControl.markAsDirty();
1525
1625
  }
1526
1626
  }
1527
- AbstractDbxPickableItemFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1528
- AbstractDbxPickableItemFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: AbstractDbxPickableItemFieldDirective, viewQueries: [{ propertyName: "filterMatInput", first: true, predicate: ["filterMatInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
1529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, decorators: [{
1627
+ AbstractDbxPickableItemFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1628
+ AbstractDbxPickableItemFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractDbxPickableItemFieldDirective, viewQueries: [{ propertyName: "filterMatInput", first: true, predicate: ["filterMatInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
1629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, decorators: [{
1530
1630
  type: Directive
1531
1631
  }], propDecorators: { filterMatInput: [{
1532
1632
  type: ViewChild,
@@ -1540,19 +1640,19 @@ class DbxPickableChipListFieldComponent extends AbstractDbxPickableItemFieldDire
1540
1640
  itemClicked(item) {
1541
1641
  if (!item.disabled && !this.isReadonlyOrDisabled) {
1542
1642
  if (item.selected) {
1543
- this.removeValue(item.value.value);
1643
+ this.removeValue(item.itemValue.value);
1544
1644
  }
1545
1645
  else {
1546
- this.addValue(item.value.value);
1646
+ this.addValue(item.itemValue.value);
1547
1647
  }
1548
1648
  }
1549
1649
  }
1550
1650
  }
1551
- DbxPickableChipListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableChipListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1552
- DbxPickableChipListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxPickableChipListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.value.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.value.sublabel\">{{ item.value.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\n <dbx-injected-content [config]=\"footerConfig\"></dbx-injected-content>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", components: [{ type: i1$1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i1$5.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i2.DbxInjectedComponent, selector: "dbx-injected-content, [dbx-injected-content]", inputs: ["config", "template"] }, { type: i4$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$5.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i6$1.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"] }, { type: i4$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]" }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe } });
1553
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableChipListFieldComponent, decorators: [{
1651
+ DbxPickableChipListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableChipListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1652
+ DbxPickableChipListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableChipListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", components: [{ type: i1$1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i1$5.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i2.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { type: i4$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$5.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i6$1.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"] }, { type: i4$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]" }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe } });
1653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableChipListFieldComponent, decorators: [{
1554
1654
  type: Component,
1555
- args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.value.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.value.sublabel\">{{ item.value.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\n <dbx-injected-content [config]=\"footerConfig\"></dbx-injected-content>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
1655
+ args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-list [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" #chipList>\n <mat-chip *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\"\n [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip>\n </mat-chip-list>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
1556
1656
  }] });
1557
1657
 
1558
1658
  /**
@@ -1561,15 +1661,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
1561
1661
  class DbxPickableListFieldComponent extends AbstractDbxPickableItemFieldDirective {
1562
1662
  onSelectionChange(event) {
1563
1663
  const items = event.items;
1564
- const values = items.map(x => x.value.value);
1664
+ const values = items.map(x => x.itemValue.value);
1565
1665
  this.setValues(values);
1566
1666
  }
1567
1667
  }
1568
- DbxPickableListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1569
- DbxPickableListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxPickableListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injected-content [config]=\"footerConfig\"></dbx-injected-content>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", components: [{ type: i0.forwardRef(function () { return i1$1.DbxLoadingComponent; }), selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i0.forwardRef(function () { return DbxPickableListFieldItemListComponent; }), selector: "dbx-form-pickable-item-field-item-list" }, { type: i0.forwardRef(function () { return i2.DbxInjectedComponent; }), selector: "dbx-injected-content, [dbx-injected-content]", inputs: ["config", "template"] }, { type: i0.forwardRef(function () { return i4$2.MatDivider; }), selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i0.forwardRef(function () { return i5.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i5.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i0.forwardRef(function () { return i6$1.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"] }, { type: i0.forwardRef(function () { return i4$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]" }, { type: i0.forwardRef(function () { return i4$1.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i4$1.FormControlDirective; }), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i0.forwardRef(function () { return i5.AsyncPipe; }) } });
1570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableListFieldComponent, decorators: [{
1668
+ DbxPickableListFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1669
+ DbxPickableListFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", components: [{ type: i0.forwardRef(function () { return i1$1.DbxLoadingComponent; }), selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i0.forwardRef(function () { return DbxPickableListFieldItemListComponent; }), selector: "dbx-form-pickable-item-field-item-list" }, { type: i0.forwardRef(function () { return i2.DbxInjectionComponent; }), selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { type: i0.forwardRef(function () { return i4$2.MatDivider; }), selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i0.forwardRef(function () { return i5.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i5.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i0.forwardRef(function () { return i6$1.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"] }, { type: i0.forwardRef(function () { return i4$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]" }, { type: i0.forwardRef(function () { return i4$1.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { type: i0.forwardRef(function () { return i4$1.FormControlDirective; }), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i0.forwardRef(function () { return i5.AsyncPipe; }) } });
1670
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldComponent, decorators: [{
1571
1671
  type: Component,
1572
- args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injected-content [config]=\"footerConfig\"></dbx-injected-content>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
1672
+ args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput\n [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\">\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
1573
1673
  }] });
1574
1674
  // MARK: Selection List
1575
1675
  class DbxPickableListFieldItemListComponent extends AbstractDbxSelectionListWrapperDirective {
@@ -1579,9 +1679,9 @@ class DbxPickableListFieldItemListComponent extends AbstractDbxSelectionListWrap
1579
1679
  });
1580
1680
  }
1581
1681
  }
1582
- DbxPickableListFieldItemListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableListFieldItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1583
- DbxPickableListFieldItemListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxPickableListFieldItemListComponent, selector: "dbx-form-pickable-item-field-item-list", usesInheritance: true, ngImport: i0, template: "\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n</dbx-list>\n", isInline: true, components: [{ type: i1$1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state$", "config", "disabled"], outputs: ["contentScrolled"] }], pipes: { "async": i5.AsyncPipe } });
1584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableListFieldItemListComponent, decorators: [{
1682
+ DbxPickableListFieldItemListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1683
+ DbxPickableListFieldItemListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableListFieldItemListComponent, selector: "dbx-form-pickable-item-field-item-list", usesInheritance: true, ngImport: i0, template: "\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n</dbx-list>\n", isInline: true, components: [{ type: i1$1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state$", "config", "disabled", "selectionMode"], outputs: ["contentScrolled"] }], pipes: { "async": i5.AsyncPipe } });
1684
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldItemListComponent, decorators: [{
1585
1685
  type: Component,
1586
1686
  args: [{
1587
1687
  selector: 'dbx-form-pickable-item-field-item-list',
@@ -1591,7 +1691,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
1591
1691
  /**
1592
1692
  * NOTE: Values input are PickableItemFieldItem<T>, but output values are PickableValueFieldDisplayValue<T>.
1593
1693
  */
1594
- class DbxPickableListFieldItemListViewComponent extends AbstractSelectionValueListViewDirective {
1694
+ class DbxPickableListFieldItemListViewComponent extends AbstractDbxSelectionListViewDirective {
1595
1695
  constructor(dbxPickableListFieldComponent) {
1596
1696
  super();
1597
1697
  this.dbxPickableListFieldComponent = dbxPickableListFieldComponent;
@@ -1600,31 +1700,38 @@ class DbxPickableListFieldItemListViewComponent extends AbstractSelectionValueLi
1600
1700
  };
1601
1701
  this.items$ = this.values$.pipe(
1602
1702
  // NOTE: This causes the "value" to be a PickableValueFieldDisplayValue<T>, which means we emit PickableValueFieldDisplayValue<T> to DbxPickableListFieldComponent.
1603
- map$1(x => mapItemValuesToValueListItemConfig(this.config, x)), shareReplay$1(1));
1703
+ map(x => addConfigToValueListItems(this.config, x)), shareReplay$1(1));
1604
1704
  }
1605
1705
  get multiple() {
1606
1706
  return this.dbxPickableListFieldComponent.multiSelect;
1607
1707
  }
1708
+ get selectionMode() {
1709
+ let selectionMode = 'select';
1710
+ if (this.dbxPickableListFieldComponent.disabled && this.dbxPickableListFieldComponent.changeSelectionModeToViewOnDisabled) {
1711
+ selectionMode = 'view';
1712
+ }
1713
+ return selectionMode;
1714
+ }
1608
1715
  }
1609
- DbxPickableListFieldItemListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, deps: [{ token: DbxPickableListFieldComponent }], target: i0.ɵɵFactoryTarget.Component });
1610
- DbxPickableListFieldItemListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxPickableListFieldItemListViewComponent, selector: "ng-component", providers: ProvideDbxListView(DbxPickableListFieldItemListViewComponent), usesInheritance: true, ngImport: i0, template: `<dbx-selection-list-view-content [multiple]="multiple" [items]="items$ | async"></dbx-selection-list-view-content>`, isInline: true, components: [{ type: i1$1.DbxSelectionValueListItemViewComponent, selector: "dbx-selection-list-view-content", inputs: ["multiple", "items"] }], pipes: { "async": i5.AsyncPipe } });
1611
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, decorators: [{
1716
+ DbxPickableListFieldItemListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, deps: [{ token: DbxPickableListFieldComponent }], target: i0.ɵɵFactoryTarget.Component });
1717
+ DbxPickableListFieldItemListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableListFieldItemListViewComponent, selector: "ng-component", providers: ProvideDbxListView(DbxPickableListFieldItemListViewComponent), usesInheritance: true, ngImport: i0, template: `<dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>`, isInline: true, components: [{ type: i1$1.DbxSelectionValueListItemViewComponent, selector: "dbx-selection-list-view-content", inputs: ["multiple", "selectionMode"] }], pipes: { "async": i5.AsyncPipe } });
1718
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, decorators: [{
1612
1719
  type: Component,
1613
1720
  args: [{
1614
- template: `<dbx-selection-list-view-content [multiple]="multiple" [items]="items$ | async"></dbx-selection-list-view-content>`,
1721
+ template: `<dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>`,
1615
1722
  providers: ProvideDbxListView(DbxPickableListFieldItemListViewComponent)
1616
1723
  }]
1617
1724
  }], ctorParameters: function () { return [{ type: DbxPickableListFieldComponent }]; } });
1618
- class DbxPickableListFieldItemListViewItemComponent extends AbstractDbxSelectionValueListViewItemComponent {
1725
+ class DbxPickableListFieldItemListViewItemComponent extends AbstractDbxValueListViewItemComponent {
1619
1726
  get label() {
1620
- return this.value.label;
1727
+ return this.itemValue.label;
1621
1728
  }
1622
1729
  }
1623
- DbxPickableListFieldItemListViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableListFieldItemListViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1624
- DbxPickableListFieldItemListViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxPickableListFieldItemListViewItemComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1730
+ DbxPickableListFieldItemListViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldItemListViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1731
+ DbxPickableListFieldItemListViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPickableListFieldItemListViewItemComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1625
1732
  <p>{{ label }}</p>
1626
1733
  `, isInline: true });
1627
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPickableListFieldItemListViewItemComponent, decorators: [{
1734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldItemListViewItemComponent, decorators: [{
1628
1735
  type: Component,
1629
1736
  args: [{
1630
1737
  template: `
@@ -1635,8 +1742,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
1635
1742
 
1636
1743
  class DbxFormFormlyPickableFieldModule {
1637
1744
  }
1638
- DbxFormFormlyPickableFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPickableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1639
- DbxFormFormlyPickableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPickableFieldModule, declarations: [DbxPickableChipListFieldComponent,
1745
+ DbxFormFormlyPickableFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1746
+ DbxFormFormlyPickableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, declarations: [DbxPickableChipListFieldComponent,
1640
1747
  DbxPickableListFieldComponent,
1641
1748
  DbxPickableListFieldItemListComponent,
1642
1749
  DbxPickableListFieldItemListViewComponent,
@@ -1652,12 +1759,12 @@ DbxFormFormlyPickableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion:
1652
1759
  MatAutocompleteModule,
1653
1760
  MatListModule,
1654
1761
  DbxDatePipeModule,
1655
- DbxAnchorModule,
1762
+ DbxRouterAnchorModule,
1656
1763
  MatChipsModule,
1657
1764
  MatIconModule,
1658
- DbxInjectedComponentModule,
1765
+ DbxInjectionComponentModule,
1659
1766
  DbxListLayoutModule, i1$4.FormlyModule] });
1660
- DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPickableFieldModule, imports: [[
1767
+ DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, imports: [[
1661
1768
  CommonModule,
1662
1769
  DbxTextModule,
1663
1770
  DbxLoadingModule,
@@ -1670,10 +1777,10 @@ DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion:
1670
1777
  MatAutocompleteModule,
1671
1778
  MatListModule,
1672
1779
  DbxDatePipeModule,
1673
- DbxAnchorModule,
1780
+ DbxRouterAnchorModule,
1674
1781
  MatChipsModule,
1675
1782
  MatIconModule,
1676
- DbxInjectedComponentModule,
1783
+ DbxInjectionComponentModule,
1677
1784
  DbxListLayoutModule,
1678
1785
  FormlyModule.forChild({
1679
1786
  types: [
@@ -1682,7 +1789,7 @@ DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion:
1682
1789
  ]
1683
1790
  })
1684
1791
  ]] });
1685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPickableFieldModule, decorators: [{
1792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, decorators: [{
1686
1793
  type: NgModule,
1687
1794
  args: [{
1688
1795
  imports: [
@@ -1698,10 +1805,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
1698
1805
  MatAutocompleteModule,
1699
1806
  MatListModule,
1700
1807
  DbxDatePipeModule,
1701
- DbxAnchorModule,
1808
+ DbxRouterAnchorModule,
1702
1809
  MatChipsModule,
1703
1810
  MatIconModule,
1704
- DbxInjectedComponentModule,
1811
+ DbxInjectionComponentModule,
1705
1812
  DbxListLayoutModule,
1706
1813
  FormlyModule.forChild({
1707
1814
  types: [
@@ -1733,7 +1840,7 @@ function filterPickableItemFieldValuesByLabel(filterText, values) {
1733
1840
  return of(filteredValues.map(x => x.value));
1734
1841
  }
1735
1842
  function sortPickableItemsByLabel(chips) {
1736
- return chips.sort((a, b) => a.value.label.localeCompare(b.value.label));
1843
+ return chips.sort((a, b) => a.itemValue.label.localeCompare(b.itemValue.label));
1737
1844
  }
1738
1845
  function pickableItemChipField(config) {
1739
1846
  const { key } = config;
@@ -1748,19 +1855,19 @@ function pickableItemListField(config) {
1748
1855
  })), { pickableField: config }));
1749
1856
  }
1750
1857
 
1751
- const DBX_SEARCHABLE_FIELD_COMPONENT_DATA = new InjectionToken('DbxSearchableField');
1858
+ const DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN = new InjectionToken('DbxSearchableField');
1752
1859
  class DbxSearchableFieldAutocompleteItemComponent {
1753
1860
  constructor() {
1754
1861
  this._displayValue = new BehaviorSubject(undefined);
1755
1862
  this.displayValue$ = this._displayValue.pipe(filterMaybe(), shareReplay$1(1));
1756
- this.config$ = this.displayValue$.pipe(map$1(x => {
1863
+ this.config$ = this.displayValue$.pipe(map(x => {
1757
1864
  const config = Object.assign(Object.assign({}, x.display), { providers: mergeIntoArray([{
1758
- provide: DBX_SEARCHABLE_FIELD_COMPONENT_DATA,
1865
+ provide: DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN,
1759
1866
  useValue: x
1760
1867
  }], x.display.providers) });
1761
1868
  return config;
1762
1869
  }));
1763
- this.anchor$ = this.displayValue$.pipe(map$1(x => x.anchor));
1870
+ this.anchor$ = this.displayValue$.pipe(map(x => x.anchor));
1764
1871
  }
1765
1872
  set displayValue(displayValue) {
1766
1873
  this._displayValue.next(displayValue);
@@ -1769,19 +1876,19 @@ class DbxSearchableFieldAutocompleteItemComponent {
1769
1876
  this._displayValue.complete();
1770
1877
  }
1771
1878
  }
1772
- DbxSearchableFieldAutocompleteItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1773
- DbxSearchableFieldAutocompleteItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: { displayValue: "displayValue" }, ngImport: i0, template: `
1879
+ DbxSearchableFieldAutocompleteItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1880
+ DbxSearchableFieldAutocompleteItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: { displayValue: "displayValue" }, ngImport: i0, template: `
1774
1881
  <dbx-anchor [block]="true" [anchor]="anchor$ | async">
1775
- <dbx-injected-content [config]="config$ | async"></dbx-injected-content>
1882
+ <dbx-injection [config]="config$ | async"></dbx-injection>
1776
1883
  </dbx-anchor>
1777
- `, isInline: true, components: [{ type: i1$1.DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { type: i2.DbxInjectedComponent, selector: "dbx-injected-content, [dbx-injected-content]", inputs: ["config", "template"] }], pipes: { "async": i5.AsyncPipe } });
1778
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, decorators: [{
1884
+ `, isInline: true, components: [{ type: i1$1.DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { type: i2.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], pipes: { "async": i5.AsyncPipe } });
1885
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, decorators: [{
1779
1886
  type: Component,
1780
1887
  args: [{
1781
1888
  selector: 'dbx-searchable-field-autocomplete-item',
1782
1889
  template: `
1783
1890
  <dbx-anchor [block]="true" [anchor]="anchor$ | async">
1784
- <dbx-injected-content [config]="config$ | async"></dbx-injected-content>
1891
+ <dbx-injection [config]="config$ | async"></dbx-injection>
1785
1892
  </dbx-anchor>
1786
1893
  `
1787
1894
  }]
@@ -1794,26 +1901,26 @@ class AbstractDbxSearchableFieldDisplayDirective {
1794
1901
  this.displayValue = displayValue;
1795
1902
  }
1796
1903
  }
1797
- AbstractDbxSearchableFieldDisplayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, deps: [{ token: DBX_SEARCHABLE_FIELD_COMPONENT_DATA }], target: i0.ɵɵFactoryTarget.Directive });
1798
- AbstractDbxSearchableFieldDisplayDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: AbstractDbxSearchableFieldDisplayDirective, ngImport: i0 });
1799
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, decorators: [{
1904
+ AbstractDbxSearchableFieldDisplayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, deps: [{ token: DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN }], target: i0.ɵɵFactoryTarget.Directive });
1905
+ AbstractDbxSearchableFieldDisplayDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractDbxSearchableFieldDisplayDirective, ngImport: i0 });
1906
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, decorators: [{
1800
1907
  type: Directive
1801
1908
  }], ctorParameters: function () {
1802
1909
  return [{ type: undefined, decorators: [{
1803
1910
  type: Inject,
1804
- args: [DBX_SEARCHABLE_FIELD_COMPONENT_DATA]
1911
+ args: [DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN]
1805
1912
  }] }];
1806
1913
  } });
1807
1914
  class DbxDefaultSearchableFieldDisplayComponent extends AbstractDbxSearchableFieldDisplayDirective {
1808
1915
  }
1809
- DbxDefaultSearchableFieldDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1810
- DbxDefaultSearchableFieldDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxDefaultSearchableFieldDisplayComponent, selector: "dbx-default-searchable-field-display", usesInheritance: true, ngImport: i0, template: `
1916
+ DbxDefaultSearchableFieldDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1917
+ DbxDefaultSearchableFieldDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxDefaultSearchableFieldDisplayComponent, selector: "dbx-default-searchable-field-display", usesInheritance: true, ngImport: i0, template: `
1811
1918
  <div class="dbx-default-searchable-field-display">
1812
1919
  <span class="dbx-chip-label">{{ displayValue.label }}</span>
1813
1920
  <span class="dbx-chip-sublabel" *ngIf="displayValue.sublabel">({{ displayValue.sublabel }})</span>
1814
1921
  </div>
1815
1922
  `, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, decorators: [{
1923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, decorators: [{
1817
1924
  type: Component,
1818
1925
  args: [{
1819
1926
  selector: 'dbx-default-searchable-field-display',
@@ -1844,17 +1951,17 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
1844
1951
  this.formControl$ = this._formControlObs.pipe(filterMaybe());
1845
1952
  this._displayHashMap = new BehaviorSubject(new Map());
1846
1953
  this.inputValue$ = this.inputCtrl.valueChanges.pipe(startWith(this.inputCtrl.value));
1847
- this.inputValueString$ = this.inputValue$.pipe(debounceTime(200), distinctUntilChanged$1());
1848
- this.searchResultsState$ = this.inputValueString$.pipe(switchMap$1((text) => ((text || this.searchOnEmptyText) ? this.search(text !== null && text !== void 0 ? text : '') : of([])).pipe(switchMap$1((x) => this.loadDisplayValuesForFieldValues(x)),
1954
+ this.inputValueString$ = this.inputValue$.pipe(debounceTime(200), distinctUntilChanged());
1955
+ this.searchResultsState$ = this.inputValueString$.pipe(switchMap((text) => ((text || this.searchOnEmptyText) ? this.search(text !== null && text !== void 0 ? text : '') : of([])).pipe(switchMap((x) => this.loadDisplayValuesForFieldValues(x)),
1849
1956
  // Return begin loading to setup the loading state.
1850
1957
  startWith(beginLoading()))), shareReplay$1(1));
1851
1958
  this.singleValueSyncSubscription = new SubscriptionObject();
1852
1959
  this.searchContext = new LoadingStateContextInstance({ obs: this.searchResultsState$, showLoadingOnNoValue: false });
1853
- this.searchResults$ = this.searchResultsState$.pipe(map$1(x => { var _a; return (_a = x === null || x === void 0 ? void 0 : x.value) !== null && _a !== void 0 ? _a : []; }));
1854
- this._formControlValue = this.formControl$.pipe(switchMap$1(control => control.valueChanges.pipe(startWith(control.value), shareReplay$1(1))));
1855
- this.values$ = this._formControlValue.pipe(map$1(convertMaybeToArray), shareReplay$1(1));
1856
- this.displayValuesState$ = this.values$.pipe(distinctUntilChanged$1(), switchMap$1((values) => this.loadDisplayValuesForValues(values)), shareReplay$1(1));
1857
- this.displayValues$ = this.displayValuesState$.pipe(map$1(x => { var _a; return (_a = x === null || x === void 0 ? void 0 : x.value) !== null && _a !== void 0 ? _a : []; }));
1960
+ this.searchResults$ = this.searchResultsState$.pipe(map(x => { var _a; return (_a = x === null || x === void 0 ? void 0 : x.value) !== null && _a !== void 0 ? _a : []; }));
1961
+ this._formControlValue = this.formControl$.pipe(switchMap(control => control.valueChanges.pipe(startWith(control.value), shareReplay$1(1))));
1962
+ this.values$ = this._formControlValue.pipe(map(convertMaybeToArray), shareReplay$1(1));
1963
+ this.displayValuesState$ = this.values$.pipe(distinctUntilChanged(), switchMap((values) => this.loadDisplayValuesForValues(values)), shareReplay$1(1));
1964
+ this.displayValues$ = this.displayValuesState$.pipe(map(x => { var _a; return (_a = x === null || x === void 0 ? void 0 : x.value) !== null && _a !== void 0 ? _a : []; }));
1858
1965
  }
1859
1966
  get name() {
1860
1967
  var _a, _b;
@@ -1917,7 +2024,7 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
1917
2024
  return this.loadDisplayValuesForFieldValues(values.map((value) => ({ value })));
1918
2025
  }
1919
2026
  loadDisplayValuesForFieldValues(values) {
1920
- return this.getDisplayValuesForFieldValues(values).pipe(map$1((displayValues) => successResult(displayValues)), startWith(beginLoading()), shareReplay$1(1));
2027
+ return this.getDisplayValuesForFieldValues(values).pipe(map((displayValues) => successResult(displayValues)), startWith(beginLoading()), shareReplay$1(1));
1921
2028
  }
1922
2029
  getDisplayValuesForFieldValues(values) {
1923
2030
  return this._displayHashMap.pipe(mergeMap((displayMap) => {
@@ -1930,16 +2037,16 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
1930
2037
  if (needsDisplay.length > 0) {
1931
2038
  // Go get the display value.
1932
2039
  const displayValuesObs = this.displayForValue(needsDisplay.map(x => x[2]));
1933
- const defaultDisplay = mergeDbxInjectedComponentConfigs([this.defaultDisplay, this.display]);
2040
+ const defaultDisplay = mergeDbxInjectionComponentConfigs([this.defaultDisplay, this.display]);
1934
2041
  const anchorForValue = this.useAnchor && this.anchorForValue;
1935
- obs = displayValuesObs.pipe(first$1(), map$1((displayResults) => {
2042
+ obs = displayValuesObs.pipe(first(), map((displayResults) => {
1936
2043
  // Assign the default component classes to complete configuration.
1937
2044
  displayResults.forEach(x => {
1938
2045
  if (!x.display) {
1939
2046
  x.display = defaultDisplay;
1940
2047
  }
1941
2048
  else {
1942
- x.display = mergeDbxInjectedComponentConfigs([defaultDisplay, x.display]);
2049
+ x.display = mergeDbxInjectionComponentConfigs([defaultDisplay, x.display]);
1943
2050
  }
1944
2051
  if (!x.anchor && anchorForValue) {
1945
2052
  x.anchor = anchorForValue(x);
@@ -1965,7 +2072,6 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
1965
2072
  }
1966
2073
  ngOnInit() {
1967
2074
  var _a;
1968
- super.ngOnInit();
1969
2075
  this._formControlObs.next(this.formControl);
1970
2076
  if (this.searchableField.textInputValidator) {
1971
2077
  this.inputCtrl.setValidators(this.searchableField.textInputValidator);
@@ -2067,9 +2173,9 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
2067
2173
  this.formControl.markAsTouched();
2068
2174
  }
2069
2175
  }
2070
- AbstractDbxSearchableValueFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
2071
- AbstractDbxSearchableValueFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: AbstractDbxSearchableValueFieldDirective, viewQueries: [{ propertyName: "textInput", first: true, predicate: ["textInput"], descendants: true }], usesInheritance: true, ngImport: i0 });
2072
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, decorators: [{
2176
+ AbstractDbxSearchableValueFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
2177
+ AbstractDbxSearchableValueFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractDbxSearchableValueFieldDirective, viewQueries: [{ propertyName: "textInput", first: true, predicate: ["textInput"], descendants: true }], usesInheritance: true, ngImport: i0 });
2178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, decorators: [{
2073
2179
  type: Directive
2074
2180
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { textInput: [{
2075
2181
  type: ViewChild,
@@ -2118,9 +2224,9 @@ class DbxSearchableChipFieldComponent extends AbstractDbxSearchableValueFieldDir
2118
2224
  this._blur.next();
2119
2225
  }
2120
2226
  }
2121
- DbxSearchableChipFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxSearchableChipFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2122
- DbxSearchableChipFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxSearchableChipFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-list [selectable]=\"!readonly\" [required]=\"required\" [disabled]=\"readonly\" #chipList>\n <mat-chip *ngFor=\"let displayValue of displayValues$ | async\" [removable]=\"true\"\n (removed)=\"removeWithDisplayValue(displayValue)\">\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"displayValue.sublabel\">{{ displayValue.sublabel }}</span>\n <mat-icon *ngIf=\"!readonly\" matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input #textInput [name]=\"name\" [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\"\n autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\">\n </mat-chip-list>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\"\n (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of (searchResults$ | async)\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\">\n </dbx-searchable-field-autocomplete-item>\n </mat-option>\n</mat-autocomplete>\n", components: [{ type: i1$5.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i4$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$5.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$5.MatChipRemove, selector: "[matChipRemove]" }, { type: i4$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]" }, { type: i4$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1$5.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe } });
2123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxSearchableChipFieldComponent, decorators: [{
2227
+ DbxSearchableChipFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableChipFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2228
+ DbxSearchableChipFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxSearchableChipFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-list [selectable]=\"!readonly\" [required]=\"required\" [disabled]=\"readonly\" #chipList>\n <mat-chip *ngFor=\"let displayValue of displayValues$ | async\" [removable]=\"true\"\n (removed)=\"removeWithDisplayValue(displayValue)\">\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"displayValue.sublabel\">{{ displayValue.sublabel }}</span>\n <mat-icon *ngIf=\"!readonly\" matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input #textInput [name]=\"name\" [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\"\n autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\">\n </mat-chip-list>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\"\n (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of (searchResults$ | async)\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\">\n </dbx-searchable-field-autocomplete-item>\n </mat-option>\n</mat-autocomplete>\n", components: [{ type: i1$5.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i4$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$5.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$5.MatChipRemove, selector: "[matChipRemove]" }, { type: i4$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]" }, { type: i4$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1$5.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe } });
2229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableChipFieldComponent, decorators: [{
2124
2230
  type: Component,
2125
2231
  args: [{ template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-list [selectable]=\"!readonly\" [required]=\"required\" [disabled]=\"readonly\" #chipList>\n <mat-chip *ngFor=\"let displayValue of displayValues$ | async\" [removable]=\"true\"\n (removed)=\"removeWithDisplayValue(displayValue)\">\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"displayValue.sublabel\">{{ displayValue.sublabel }}</span>\n <mat-icon *ngIf=\"!readonly\" matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input #textInput [name]=\"name\" [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\"\n autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\">\n </mat-chip-list>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\"\n (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of (searchResults$ | async)\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\">\n </dbx-searchable-field-autocomplete-item>\n </mat-option>\n</mat-autocomplete>\n" }]
2126
2232
  }] });
@@ -2137,7 +2243,7 @@ function makeMetaFilterSearchableFieldValueDisplayFn({ loadMetaForValues, makeDi
2137
2243
  let allValues;
2138
2244
  if (needLoading.length > 0) {
2139
2245
  const loadingResult = loadMetaForValues(needLoading);
2140
- allValues = loadingResult.pipe(map((result) => {
2246
+ allValues = loadingResult.pipe(map$1((result) => {
2141
2247
  const resultMap = arrayToMap(result, (x) => x.value);
2142
2248
  const mergedWithLoad = needLoading.map((x) => {
2143
2249
  var _a;
@@ -2149,12 +2255,12 @@ function makeMetaFilterSearchableFieldValueDisplayFn({ loadMetaForValues, makeDi
2149
2255
  meta });
2150
2256
  }).filter(x => !x.meta);
2151
2257
  return mergedWithLoad;
2152
- }), map((result) => [...loaded, ...result]));
2258
+ }), map$1((result) => [...loaded, ...result]));
2153
2259
  }
2154
2260
  else {
2155
2261
  allValues = of(loaded);
2156
2262
  }
2157
- return allValues.pipe(switchMap$1((x) => makeDisplayForValues(x)));
2263
+ return allValues.pipe(switchMap((x) => makeDisplayForValues(x)));
2158
2264
  };
2159
2265
  }
2160
2266
  function searchableStringChipField(config) {
@@ -2180,9 +2286,9 @@ function searchableTextField(config) {
2180
2286
  class DbxSearchableTextFieldComponent extends AbstractDbxSearchableValueFieldDirective {
2181
2287
  constructor() {
2182
2288
  super(...arguments);
2183
- this.selectedDisplayValue$ = this.displayValues$.pipe(map$1(x => x[0]), shareReplay$1(1), tapDetectChanges(this.cdRef));
2184
- this.hasValue$ = this.selectedDisplayValue$.pipe(map$1(x => Boolean(x)));
2185
- this.showSelectedDisplayValue$ = this.selectedDisplayValue$.pipe(map$1(x => this.showSelectedValue && Boolean(x)), distinctUntilChanged$1(), shareReplay$1(1), tapDetectChanges(this.cdRef));
2289
+ this.selectedDisplayValue$ = this.displayValues$.pipe(map(x => x[0]), shareReplay$1(1), tapDetectChanges(this.cdRef));
2290
+ this.hasValue$ = this.selectedDisplayValue$.pipe(map(x => Boolean(x)));
2291
+ this.showSelectedDisplayValue$ = this.selectedDisplayValue$.pipe(map(x => this.showSelectedValue && Boolean(x)), distinctUntilChanged(), shareReplay$1(1), tapDetectChanges(this.cdRef));
2186
2292
  this.multiSelect = false;
2187
2293
  this._clearInputSub = new SubscriptionObject();
2188
2294
  }
@@ -2210,17 +2316,17 @@ class DbxSearchableTextFieldComponent extends AbstractDbxSearchableValueFieldDir
2210
2316
  this.addWithDisplayValue(e.option.value);
2211
2317
  }
2212
2318
  }
2213
- DbxSearchableTextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxSearchableTextFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2214
- DbxSearchableTextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxSearchableTextFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-text-field\"\n [ngClass]=\"{ 'dbx-searchable-text-field-has-value': (hasValue$ | async), 'dbx-searchable-text-field-show-value': showSelectedValue }\">\n <!-- Result View -->\n <div class=\"dbx-searchable-text-field-value mat-option mat-option-text\" *ngIf=\"showSelectedDisplayValue$ | async\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"(selectedDisplayValue$ | async)!\">\n </dbx-searchable-field-autocomplete-item>\n </div>\n <div class=\"dbx-searchable-text-field-input\">\n <div class=\"dbx-label\">Search</div>\n <!-- View -->\n <input type=\"search\" [name]=\"name\" matInput #textInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\"\n [matAutocomplete]=\"auto\" [matAutocompleteDisabled]=\"readonly\" autocomplete=\"{{ autocomplete }}\">\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of (searchResults$ | async)\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\">\n </dbx-searchable-field-autocomplete-item>\n </mat-option>\n <!-- Add/Pick String Value -->\n <mat-option *ngIf=\"allowStringValues && (inputValue$ | async)\" [value]=\"{ value: (inputValue$ | async) }\">\n <p class=\"dbx-clear-hint text-center\">\"{{ inputValue$ | async }}\"</p>\n </mat-option>\n <!-- Show clear value -->\n <mat-option *ngIf=\"showClearValue && (hasValue$ | async)\" value=\"\">\n <p class=\"dbx-clear-hint text-center\">Clear</p>\n </mat-option>\n</mat-autocomplete>\n", components: [{ type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }, { type: i1$1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i4$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6$1.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"] }, { type: i4$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]" }, { type: i4$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i5.AsyncPipe } });
2215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxSearchableTextFieldComponent, decorators: [{
2319
+ DbxSearchableTextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableTextFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2320
+ DbxSearchableTextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxSearchableTextFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-text-field\"\n [ngClass]=\"{ 'dbx-searchable-text-field-has-value': (hasValue$ | async), 'dbx-searchable-text-field-show-value': showSelectedValue }\">\n <!-- Result View -->\n <div class=\"dbx-searchable-text-field-value mat-option mat-option-text\" *ngIf=\"showSelectedDisplayValue$ | async\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"(selectedDisplayValue$ | async)!\">\n </dbx-searchable-field-autocomplete-item>\n </div>\n <div class=\"dbx-searchable-text-field-input\">\n <div class=\"dbx-label\">Search</div>\n <!-- View -->\n <input type=\"search\" [name]=\"name\" matInput #textInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\"\n [matAutocomplete]=\"auto\" [matAutocompleteDisabled]=\"readonly\" autocomplete=\"{{ autocomplete }}\">\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of (searchResults$ | async)\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\">\n </dbx-searchable-field-autocomplete-item>\n </mat-option>\n <!-- Add/Pick String Value -->\n <mat-option *ngIf=\"allowStringValues && (inputValue$ | async)\" [value]=\"{ value: (inputValue$ | async) }\">\n <p class=\"dbx-clear-hint text-center\">\"{{ inputValue$ | async }}\"</p>\n </mat-option>\n <!-- Show clear value -->\n <mat-option *ngIf=\"showClearValue && (hasValue$ | async)\" value=\"\">\n <p class=\"dbx-clear-hint text-center\">Clear</p>\n </mat-option>\n</mat-autocomplete>\n", components: [{ type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }, { type: i1$1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "context", "loading", "error"] }, { type: i4$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6$1.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"] }, { type: i4$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]" }, { type: i4$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i5.AsyncPipe } });
2321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableTextFieldComponent, decorators: [{
2216
2322
  type: Component,
2217
2323
  args: [{ template: "<div class=\"dbx-searchable-text-field\"\n [ngClass]=\"{ 'dbx-searchable-text-field-has-value': (hasValue$ | async), 'dbx-searchable-text-field-show-value': showSelectedValue }\">\n <!-- Result View -->\n <div class=\"dbx-searchable-text-field-value mat-option mat-option-text\" *ngIf=\"showSelectedDisplayValue$ | async\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"(selectedDisplayValue$ | async)!\">\n </dbx-searchable-field-autocomplete-item>\n </div>\n <div class=\"dbx-searchable-text-field-input\">\n <div class=\"dbx-label\">Search</div>\n <!-- View -->\n <input type=\"search\" [name]=\"name\" matInput #textInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\"\n [matAutocomplete]=\"auto\" [matAutocompleteDisabled]=\"readonly\" autocomplete=\"{{ autocomplete }}\">\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of (searchResults$ | async)\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\">\n </dbx-searchable-field-autocomplete-item>\n </mat-option>\n <!-- Add/Pick String Value -->\n <mat-option *ngIf=\"allowStringValues && (inputValue$ | async)\" [value]=\"{ value: (inputValue$ | async) }\">\n <p class=\"dbx-clear-hint text-center\">\"{{ inputValue$ | async }}\"</p>\n </mat-option>\n <!-- Show clear value -->\n <mat-option *ngIf=\"showClearValue && (hasValue$ | async)\" value=\"\">\n <p class=\"dbx-clear-hint text-center\">Clear</p>\n </mat-option>\n</mat-autocomplete>\n" }]
2218
2324
  }] });
2219
2325
 
2220
2326
  class DbxFormFormlySearchableFieldModule {
2221
2327
  }
2222
- DbxFormFormlySearchableFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlySearchableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2223
- DbxFormFormlySearchableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlySearchableFieldModule, declarations: [DbxSearchableChipFieldComponent,
2328
+ DbxFormFormlySearchableFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySearchableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2329
+ DbxFormFormlySearchableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySearchableFieldModule, declarations: [DbxSearchableChipFieldComponent,
2224
2330
  DbxSearchableTextFieldComponent,
2225
2331
  DbxSearchableFieldAutocompleteItemComponent,
2226
2332
  DbxDefaultSearchableFieldDisplayComponent], imports: [CommonModule,
@@ -2235,12 +2341,12 @@ DbxFormFormlySearchableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion
2235
2341
  MatAutocompleteModule,
2236
2342
  MatListModule,
2237
2343
  DbxDatePipeModule,
2238
- DbxAnchorModule,
2344
+ DbxRouterAnchorModule,
2239
2345
  MatChipsModule,
2240
2346
  MatIconModule,
2241
- DbxInjectedComponentModule, i1$4.FormlyModule], exports: [DbxSearchableChipFieldComponent,
2347
+ DbxInjectionComponentModule, i1$4.FormlyModule], exports: [DbxSearchableChipFieldComponent,
2242
2348
  DbxSearchableTextFieldComponent] });
2243
- DbxFormFormlySearchableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlySearchableFieldModule, imports: [[
2349
+ DbxFormFormlySearchableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySearchableFieldModule, imports: [[
2244
2350
  CommonModule,
2245
2351
  DbxTextModule,
2246
2352
  DbxLoadingModule,
@@ -2253,10 +2359,10 @@ DbxFormFormlySearchableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion
2253
2359
  MatAutocompleteModule,
2254
2360
  MatListModule,
2255
2361
  DbxDatePipeModule,
2256
- DbxAnchorModule,
2362
+ DbxRouterAnchorModule,
2257
2363
  MatChipsModule,
2258
2364
  MatIconModule,
2259
- DbxInjectedComponentModule,
2365
+ DbxInjectionComponentModule,
2260
2366
  FormlyModule.forChild({
2261
2367
  types: [
2262
2368
  { name: 'searchablechipfield', component: DbxSearchableChipFieldComponent, wrappers: ['form-field'] },
@@ -2264,7 +2370,7 @@ DbxFormFormlySearchableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion
2264
2370
  ]
2265
2371
  })
2266
2372
  ]] });
2267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlySearchableFieldModule, decorators: [{
2373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySearchableFieldModule, decorators: [{
2268
2374
  type: NgModule,
2269
2375
  args: [{
2270
2376
  imports: [
@@ -2280,10 +2386,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
2280
2386
  MatAutocompleteModule,
2281
2387
  MatListModule,
2282
2388
  DbxDatePipeModule,
2283
- DbxAnchorModule,
2389
+ DbxRouterAnchorModule,
2284
2390
  MatChipsModule,
2285
2391
  MatIconModule,
2286
- DbxInjectedComponentModule,
2392
+ DbxInjectionComponentModule,
2287
2393
  FormlyModule.forChild({
2288
2394
  types: [
2289
2395
  { name: 'searchablechipfield', component: DbxSearchableChipFieldComponent, wrappers: ['form-field'] },
@@ -2313,14 +2419,14 @@ function chipTextField(config) {
2313
2419
 
2314
2420
  class DbxFormFormlySelectionModule {
2315
2421
  }
2316
- DbxFormFormlySelectionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlySelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2317
- DbxFormFormlySelectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [CommonModule], exports: [DbxFormFormlyPickableFieldModule,
2422
+ DbxFormFormlySelectionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2423
+ DbxFormFormlySelectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [CommonModule], exports: [DbxFormFormlyPickableFieldModule,
2318
2424
  DbxFormFormlySearchableFieldModule] });
2319
- DbxFormFormlySelectionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [[
2425
+ DbxFormFormlySelectionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [[
2320
2426
  CommonModule
2321
2427
  ], DbxFormFormlyPickableFieldModule,
2322
2428
  DbxFormFormlySearchableFieldModule] });
2323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlySelectionModule, decorators: [{
2429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, decorators: [{
2324
2430
  type: NgModule,
2325
2431
  args: [{
2326
2432
  imports: [
@@ -2361,10 +2467,9 @@ class DbxTextEditorFieldComponent extends FieldType$1 {
2361
2467
  return this.to.description;
2362
2468
  }
2363
2469
  ngOnInit() {
2364
- super.ngOnInit();
2365
2470
  this._editor = new Editor({});
2366
2471
  // Watch for value changes every second and update the pristine level.
2367
- this._sub.subscription = this.editor.valueChanges.pipe(debounceTime$1(100), filter(_ => this.editor.view.hasFocus())).subscribe(() => {
2472
+ this._sub.subscription = this.editor.valueChanges.pipe(debounceTime$1(100), filter$1(_ => this.editor.view.hasFocus())).subscribe(() => {
2368
2473
  this.formControl.updateValueAndValidity();
2369
2474
  this.formControl.markAsDirty();
2370
2475
  });
@@ -2378,8 +2483,8 @@ class DbxTextEditorFieldComponent extends FieldType$1 {
2378
2483
  this._sub.destroy();
2379
2484
  }
2380
2485
  }
2381
- DbxTextEditorFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxTextEditorFieldComponent, deps: [{ token: i1$1.CompactContextStore, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2382
- DbxTextEditorFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxTextEditorFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2486
+ DbxTextEditorFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxTextEditorFieldComponent, deps: [{ token: i1$1.CompactContextStore, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2487
+ DbxTextEditorFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxTextEditorFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2383
2488
  <div class="dbx-texteditor-field" [ngClass]="(compactClass$ | async) ?? ''" [formGroup]="formGroup">
2384
2489
  <dbx-label *ngIf="label">{{ label }}</dbx-label>
2385
2490
  <div class="dbx-texteditor-field-input">
@@ -2393,7 +2498,7 @@ DbxTextEditorFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
2393
2498
  </div>
2394
2499
  </div>
2395
2500
  `, isInline: true, components: [{ type: i1$1.DbxLabelComponent, selector: "dbx-label" }, { type: i2$3.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { type: i2$3.MenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }, { type: i1$1.DbxHintComponent, selector: "dbx-hint" }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "async": i5.AsyncPipe } });
2396
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxTextEditorFieldComponent, decorators: [{
2501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxTextEditorFieldComponent, decorators: [{
2397
2502
  type: Component,
2398
2503
  args: [{
2399
2504
  template: `
@@ -2419,15 +2524,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
2419
2524
 
2420
2525
  class DbxFormFormlyTextEditorFieldModule {
2421
2526
  }
2422
- DbxFormFormlyTextEditorFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2423
- DbxFormFormlyTextEditorFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, declarations: [DbxTextEditorFieldComponent], imports: [CommonModule,
2527
+ DbxFormFormlyTextEditorFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2528
+ DbxFormFormlyTextEditorFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, declarations: [DbxTextEditorFieldComponent], imports: [CommonModule,
2424
2529
  DbxTextModule,
2425
2530
  FormsModule,
2426
2531
  ReactiveFormsModule,
2427
2532
  NgxEditorModule,
2428
2533
  MatFormFieldModule,
2429
2534
  MatInputModule, i1$4.FormlyModule] });
2430
- DbxFormFormlyTextEditorFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, imports: [[
2535
+ DbxFormFormlyTextEditorFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, imports: [[
2431
2536
  CommonModule,
2432
2537
  DbxTextModule,
2433
2538
  FormsModule,
@@ -2441,7 +2546,7 @@ DbxFormFormlyTextEditorFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion
2441
2546
  ]
2442
2547
  })
2443
2548
  ]] });
2444
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, decorators: [{
2549
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, decorators: [{
2445
2550
  type: NgModule,
2446
2551
  args: [{
2447
2552
  imports: [
@@ -2539,11 +2644,11 @@ class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
2539
2644
  }
2540
2645
  labelForItem(field) {
2541
2646
  var _a;
2542
- return getValueFromObjectOrGetter((_a = this.repeatArrayField.labelForField) !== null && _a !== void 0 ? _a : '', field);
2647
+ return getValueFromGetter((_a = this.repeatArrayField.labelForField) !== null && _a !== void 0 ? _a : '', field);
2543
2648
  }
2544
2649
  }
2545
- DbxFormRepeatArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2546
- DbxFormRepeatArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormRepeatArrayTypeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2650
+ DbxFormRepeatArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2651
+ DbxFormRepeatArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormRepeatArrayTypeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2547
2652
  <div class="dbx-form-repeat-array">
2548
2653
  <dbx-subsection [header]="label">
2549
2654
  <!-- Fields -->
@@ -2566,8 +2671,8 @@ DbxFormRepeatArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
2566
2671
  </div>
2567
2672
  </dbx-subsection>
2568
2673
  </div>
2569
- `, isInline: true, components: [{ type: i1$1.DbxSubSectionComponent, selector: "dbx-subsection" }, { 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"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$1.DbxButtonSpacerComponent, selector: "dbx-button-spacer" }, { type: i1$4.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i5$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i5$1.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { type: i1$1.DbxBarDirective, selector: "dbx-bar", inputs: ["color"] }, { type: i5$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, decorators: [{
2674
+ `, isInline: true, components: [{ type: i1$1.DbxSubSectionComponent, selector: "dbx-subsection" }, { 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"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$4.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i5$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i5$1.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { type: i1$1.DbxBarDirective, selector: "dbx-bar", inputs: ["color"] }, { type: i5$1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i1$1.DbxButtonSpacerDirective, selector: "dbx-button-spacer,dbxButtonSpacer" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2675
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, decorators: [{
2571
2676
  type: Component,
2572
2677
  args: [{
2573
2678
  template: `
@@ -2599,8 +2704,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
2599
2704
 
2600
2705
  class DbxFormFormlyArrayFieldModule {
2601
2706
  }
2602
- DbxFormFormlyArrayFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyArrayFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2603
- DbxFormFormlyArrayFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyArrayFieldModule, declarations: [DbxFormRepeatArrayTypeComponent], imports: [CommonModule,
2707
+ DbxFormFormlyArrayFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyArrayFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2708
+ DbxFormFormlyArrayFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyArrayFieldModule, declarations: [DbxFormRepeatArrayTypeComponent], imports: [CommonModule,
2604
2709
  MatFormFieldModule,
2605
2710
  ReactiveFormsModule,
2606
2711
  MatDividerModule,
@@ -2610,7 +2715,7 @@ DbxFormFormlyArrayFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12
2610
2715
  DbxSectionLayoutModule,
2611
2716
  DbxBarLayoutModule,
2612
2717
  DbxButtonModule, i1$4.FormlyModule] });
2613
- DbxFormFormlyArrayFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyArrayFieldModule, imports: [[
2718
+ DbxFormFormlyArrayFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyArrayFieldModule, imports: [[
2614
2719
  CommonModule,
2615
2720
  MatFormFieldModule,
2616
2721
  ReactiveFormsModule,
@@ -2627,7 +2732,7 @@ DbxFormFormlyArrayFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12
2627
2732
  ]
2628
2733
  })
2629
2734
  ]] });
2630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyArrayFieldModule, decorators: [{
2735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyArrayFieldModule, decorators: [{
2631
2736
  type: NgModule,
2632
2737
  args: [{
2633
2738
  imports: [
@@ -2669,10 +2774,10 @@ function repeatArrayField(config) {
2669
2774
 
2670
2775
  class DbxFormFormlyBooleanFieldModule {
2671
2776
  }
2672
- DbxFormFormlyBooleanFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2673
- DbxFormFormlyBooleanFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyBooleanFieldModule });
2674
- DbxFormFormlyBooleanFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, imports: [[]] });
2675
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, decorators: [{
2777
+ DbxFormFormlyBooleanFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2778
+ DbxFormFormlyBooleanFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyBooleanFieldModule });
2779
+ DbxFormFormlyBooleanFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, imports: [[]] });
2780
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, decorators: [{
2676
2781
  type: NgModule,
2677
2782
  args: [{
2678
2783
  imports: [],
@@ -2710,21 +2815,21 @@ export function acceptTermsField({ key = 'accept', label = 'Accept Terms', descr
2710
2815
  }
2711
2816
  */
2712
2817
 
2713
- var DateTimeFieldTimeMode;
2714
- (function (DateTimeFieldTimeMode) {
2818
+ var DbxDateTimeFieldTimeMode;
2819
+ (function (DbxDateTimeFieldTimeMode) {
2715
2820
  /**
2716
2821
  * Time is required.
2717
2822
  */
2718
- DateTimeFieldTimeMode["REQUIRED"] = "required";
2823
+ DbxDateTimeFieldTimeMode["REQUIRED"] = "required";
2719
2824
  /**
2720
2825
  * Time is optional.
2721
2826
  */
2722
- DateTimeFieldTimeMode["OPTIONAL"] = "optional";
2827
+ DbxDateTimeFieldTimeMode["OPTIONAL"] = "optional";
2723
2828
  /**
2724
2829
  * Time is permenantly off.
2725
2830
  */
2726
- DateTimeFieldTimeMode["NONE"] = "none";
2727
- })(DateTimeFieldTimeMode || (DateTimeFieldTimeMode = {}));
2831
+ DbxDateTimeFieldTimeMode["NONE"] = "none";
2832
+ })(DbxDateTimeFieldTimeMode || (DbxDateTimeFieldTimeMode = {}));
2728
2833
  class DbxDateTimeFieldComponent extends FieldType$1 {
2729
2834
  constructor(cdRef) {
2730
2835
  super();
@@ -2737,35 +2842,37 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
2737
2842
  this._formControlObs = new BehaviorSubject(undefined);
2738
2843
  this.formControl$ = this._formControlObs.pipe(filterMaybe());
2739
2844
  this._updateTime = new Subject();
2740
- this.value$ = this.formControl$.pipe(switchMap(control => control.valueChanges.pipe(startWith$1(control.value))), distinctUntilChanged((a, b) => isSameMinute(a, b)), shareReplay(1));
2845
+ this.value$ = this.formControl$.pipe(switchMap$1(control => control.valueChanges.pipe(startWith$1(control.value))), distinctUntilChanged$1((a, b) => isSameMinute(a, b)), shareReplay(1));
2741
2846
  /**
2742
2847
  * Used to trigger/display visual updates (specifically on timeDistance, etc.).
2743
2848
  */
2744
- this.displayValue$ = interval(10 * 1000).pipe(startWith$1(0), map(_ => new Date().getMinutes()), distinctUntilChanged(), tap((_) => this.cdRef.markForCheck()), switchMap(_ => this.value$), shareReplay(1));
2745
- this.timeString$ = this.value$.pipe(filterMaybe(), map((x) => {
2849
+ this.displayValue$ = interval(10 * 1000).pipe(startWith$1(0), map$1(_ => new Date().getMinutes()), distinctUntilChanged$1(), tap((_) => this.cdRef.markForCheck()), switchMap$1(_ => this.value$), shareReplay(1));
2850
+ this.timeString$ = this.value$.pipe(filterMaybe(), map$1((x) => {
2746
2851
  const timezone = guessCurrentTimezone();
2747
2852
  const timeString = toReadableTimeString(x, timezone);
2748
2853
  return timeString;
2749
2854
  }));
2855
+ this.dateInputCtrl = new FormControl(new Date(), {
2856
+ validators: []
2857
+ });
2750
2858
  this.timeInputCtrl = new FormControl('', {
2751
2859
  validators: [
2752
- Validators.pattern(/^([0-9]|(0[0-9])|(1[0-9])|(2[0-3]))(:)?([0-5][0-9])?(\s)?([apAP][Mm])?(\\s)*$/)
2860
+ Validators.pattern(/^(now)$|^([0-9]|(0[0-9])|(1[0-9])|(2[0-3]))(:)?([0-5][0-9])?(\s)?([apAP][Mm])?(\\s)*$/)
2753
2861
  ]
2754
2862
  });
2755
- this._date = new BehaviorSubject(new Date());
2756
2863
  this._config = new BehaviorSubject(undefined);
2757
- this.fullDay$ = this.fullDayControl$.pipe(switchMap(control => control.valueChanges.pipe(startWith$1(control.value))));
2758
- this.showTimeInput$ = this.fullDay$.pipe(map(x => !x && this.timeMode !== DateTimeFieldTimeMode.NONE));
2759
- this.showAddTime$ = this.showTimeInput$.pipe(map(x => !x && this.timeMode === DateTimeFieldTimeMode.OPTIONAL), shareReplay(1));
2760
- this.date$ = this._date.asObservable();
2761
- this.dateValue$ = merge(this.value$.pipe(startWith$1(undefined)), this.date$).pipe(map((x) => (x) ? startOfDay(x) : x), distinctUntilChanged((a, b) => Boolean(a && b) && isSameDay(a, b)), shareReplay(1));
2762
- this.timeInput$ = this._updateTime.pipe(debounceTime$1(5), map(_ => this.timeInputCtrl.value), distinctUntilChanged());
2864
+ this.fullDay$ = this.fullDayControl$.pipe(switchMap$1(control => control.valueChanges.pipe(startWith$1(control.value))));
2865
+ this.showTimeInput$ = this.fullDay$.pipe(map$1(x => !x && this.timeMode !== DbxDateTimeFieldTimeMode.NONE));
2866
+ this.showAddTime$ = this.showTimeInput$.pipe(map$1(x => !x && this.timeMode === DbxDateTimeFieldTimeMode.OPTIONAL), shareReplay(1));
2867
+ this.date$ = this.dateInputCtrl.valueChanges.pipe(startWith$1(this.dateInputCtrl.value), filterMaybe(), shareReplay(1));
2868
+ this.dateValue$ = merge(this.date$, this.value$.pipe(skipFirstMaybe())).pipe(map$1((x) => (x) ? startOfDay(x) : x), distinctUntilChanged$1((a, b) => Boolean(a && b) && isSameDay(a, b)), shareReplay(1));
2869
+ this.timeInput$ = this._updateTime.pipe(debounceTime$1(5), map$1(_ => this.timeInputCtrl.value), distinctUntilChanged$1());
2763
2870
  this.config$ = this._config.pipe(switchMapMaybeDefault(), shareReplay(1));
2764
2871
  this.rawDateTime$ = combineLatest([
2765
2872
  this.dateValue$,
2766
2873
  this.timeInput$.pipe(startWith$1(null)),
2767
2874
  this.fullDay$
2768
- ]).pipe(map(([date, timeString, fullDay]) => {
2875
+ ]).pipe(map$1(([date, timeString, fullDay]) => {
2769
2876
  var _a;
2770
2877
  let result;
2771
2878
  if (date) {
@@ -2788,12 +2895,12 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
2788
2895
  }
2789
2896
  }
2790
2897
  return result;
2791
- }), distinctUntilChanged((a, b) => Boolean(a && b) && isSameMinute(a, b)), shareReplay(1));
2898
+ }), distinctUntilChanged$1((a, b) => Boolean(a && b) && isSameMinute(a, b)), shareReplay(1));
2792
2899
  this.timeOutput$ = combineLatest([
2793
2900
  this.rawDateTime$,
2794
2901
  this._offset,
2795
- this.config$.pipe(distinctUntilChanged()),
2796
- ]).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]) => {
2902
+ this.config$.pipe(distinctUntilChanged$1()),
2903
+ ]).pipe(throttleTime(40, undefined, { leading: false, trailing: true }), distinctUntilChanged$1((current, next) => current[0] === next[0] && next[1] === 0), tap(([_, stepsOffset]) => (stepsOffset) ? this._offset.next(0) : 0), map$1(([date, stepsOffset, config]) => {
2797
2904
  if (date != null) {
2798
2905
  const instance = new DateTimeMinuteInstance(Object.assign(Object.assign({ date }, config), { roundDownToMinute: true }));
2799
2906
  date = instance.limit(date);
@@ -2801,10 +2908,10 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
2801
2908
  date = addMinutes(date, minutes);
2802
2909
  }
2803
2910
  return date;
2804
- }), distinctUntilChanged((a, b) => Boolean(a && b) && isSameMinute(a, b)), shareReplay(1));
2911
+ }), distinctUntilChanged$1((a, b) => Boolean(a && b) && isSameMinute(a, b)), shareReplay(1));
2805
2912
  }
2806
2913
  get dateOnly() {
2807
- return this.timeMode === DateTimeFieldTimeMode.NONE;
2914
+ return this.timeMode === DbxDateTimeFieldTimeMode.NONE;
2808
2915
  }
2809
2916
  get dateTimeField() {
2810
2917
  return this.field.dateTimeField;
@@ -2817,7 +2924,7 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
2817
2924
  }
2818
2925
  get timeMode() {
2819
2926
  var _a;
2820
- return (this.timeOnly) ? DateTimeFieldTimeMode.REQUIRED : ((_a = this.dateTimeField.timeMode) !== null && _a !== void 0 ? _a : DateTimeFieldTimeMode.REQUIRED);
2927
+ return (this.timeOnly) ? DbxDateTimeFieldTimeMode.REQUIRED : ((_a = this.dateTimeField.timeMode) !== null && _a !== void 0 ? _a : DbxDateTimeFieldTimeMode.REQUIRED);
2821
2928
  }
2822
2929
  get description() {
2823
2930
  var _a;
@@ -2825,7 +2932,6 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
2825
2932
  }
2826
2933
  ngOnInit() {
2827
2934
  var _a, _b;
2828
- super.ngOnInit();
2829
2935
  this._formControlObs.next(this.formControl);
2830
2936
  this._config.next((_b = (_a = this.dateTimeField).getConfigObs) === null || _b === void 0 ? void 0 : _b.call(_a));
2831
2937
  this._sub.subscription = this.timeOutput$.pipe(skipFirstMaybe()).subscribe((value) => {
@@ -2838,7 +2944,18 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
2838
2944
  if (!this.timeInputCtrl.value && x === '12:00AM') {
2839
2945
  return;
2840
2946
  }
2841
- this.timeInputCtrl.setValue(x);
2947
+ this.setTime(x);
2948
+ });
2949
+ // Watch for disabled changes so we can propogate them properly.
2950
+ this.formControl.registerOnDisabledChange((disabled) => {
2951
+ if (disabled) {
2952
+ this.dateInputCtrl.disable({ emitEvent: false });
2953
+ this.timeInputCtrl.disable({ emitEvent: false });
2954
+ }
2955
+ else {
2956
+ this.dateInputCtrl.enable({ emitEvent: false });
2957
+ this.timeInputCtrl.enable({ emitEvent: false });
2958
+ }
2842
2959
  });
2843
2960
  const isFullDayField = this.dateTimeField.fullDayFieldName;
2844
2961
  let fullDayFieldCtrl;
@@ -2855,38 +2972,40 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
2855
2972
  }
2856
2973
  this._fullDayControlObs.next(fullDayFieldCtrl);
2857
2974
  switch (this.dateTimeField.timeMode) {
2858
- case DateTimeFieldTimeMode.OPTIONAL:
2975
+ case DbxDateTimeFieldTimeMode.OPTIONAL:
2859
2976
  break;
2860
- case DateTimeFieldTimeMode.NONE:
2977
+ case DbxDateTimeFieldTimeMode.NONE:
2861
2978
  this.removeTime();
2862
2979
  break;
2863
- case DateTimeFieldTimeMode.REQUIRED:
2980
+ case DbxDateTimeFieldTimeMode.REQUIRED:
2864
2981
  this.addTime();
2865
2982
  break;
2866
2983
  }
2867
2984
  }
2868
2985
  ngOnDestroy() {
2869
2986
  super.ngOnDestroy();
2987
+ this._fullDayControlObs.complete();
2988
+ this._offset.complete();
2870
2989
  this._formControlObs.complete();
2871
- this._date.complete();
2872
- this._updateTime.complete();
2873
2990
  this._config.complete();
2991
+ this._updateTime.complete();
2874
2992
  this._sub.destroy();
2875
2993
  this._valueSub.destroy();
2876
2994
  }
2877
- dateTextChanged(e) {
2878
- const value = this.dateInput.value;
2879
- if (value == null) {
2880
- this._date.next(undefined);
2881
- }
2882
- }
2883
2995
  datePicked(event) {
2884
2996
  const date = event.value;
2885
2997
  if (date) {
2886
- this._date.next(date);
2998
+ this.dateInputCtrl.setValue(date);
2887
2999
  this._updateTime.next();
2888
3000
  }
2889
3001
  }
3002
+ setLogicalTime(time) {
3003
+ const date = dateFromLogicalDate(time);
3004
+ if (date) {
3005
+ const timeString = toLocalReadableTimeString(date);
3006
+ this.setTime(timeString);
3007
+ }
3008
+ }
2890
3009
  setTime(time) {
2891
3010
  this.timeInputCtrl.setValue(time);
2892
3011
  this._offset.next(0);
@@ -2930,25 +3049,22 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
2930
3049
  this.setFullDay(true);
2931
3050
  }
2932
3051
  setFullDay(fullDay) {
2933
- this.fullDayControl$.pipe(first()).subscribe((x) => {
3052
+ this.fullDayControl$.pipe(first$1()).subscribe((x) => {
2934
3053
  x.setValue(fullDay);
2935
3054
  });
2936
3055
  }
2937
3056
  }
2938
- DbxDateTimeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxDateTimeFieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
2939
- DbxDateTimeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxDateTimeFieldComponent, selector: "ng-component", viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true, read: MatInput }], 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> 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\"><b class=\"dbx-ok\">All Day</b> {{ dateValue$ | async | date:'fullDate' }}\n ({{ dateValue$ | async | dateDistance }})</small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"value$ | async\"><b class=\"dbx-ok\">At</b> {{ displayValue$ | async | date:'medium' }}\n ({{ displayValue$ | async | timeDistance }})</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()\">\n <mat-icon>calendar_today</mat-icon>\n </button>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>Date</mat-label>\n <input #dateInput matInput [matDatepicker]=\"picker\" (change)=\"dateTextChanged($event)\"\n (dateChange)=\"datePicked($event)\" [value]=\"dateValue$ | async\">\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\">\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)=\"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>Time</mat-label>\n <input #timeInput matInput [formControl]=\"timeInputCtrl\" (focus)=\"focusTime()\" (focusout)=\"focusOutTime()\"\n (keydown)=\"keydownOnInput($event)\">\n </mat-form-field>\n</ng-template>\n", components: [{ 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"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4$4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i5$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i5$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i4$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i3$1.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"] }, { type: i3$1.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"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.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"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { 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"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3$2.MatLabel, selector: "mat-label" }, { type: i6$1.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"] }, { type: i4$4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i5$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i4$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]" }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe, "date": i5.DatePipe, "dateDistance": i2.DateDistancePipe, "timeDistance": i2.TimeDistancePipe } });
2940
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxDateTimeFieldComponent, decorators: [{
3057
+ DbxDateTimeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDateTimeFieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3058
+ DbxDateTimeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.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> 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\"><b class=\"dbx-ok\">All Day</b> {{ dateValue$ | async | date:'fullDate' }}\n ({{ dateValue$ | async | dateDistance }})</small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"value$ | async\"><b class=\"dbx-ok\">At</b> {{ displayValue$ | async | date:'medium' }}\n ({{ displayValue$ | async | timeDistance }})</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>Date</mat-label>\n <input #dateInput matInput [formControl]=\"dateInputCtrl\" [matDatepicker]=\"picker\" (dateChange)=\"datePicked($event)\"\n [value]=\"dateValue$ | async\">\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>Time</mat-label>\n <input #timeInput matInput [formControl]=\"timeInputCtrl\" (focus)=\"focusTime()\" (focusout)=\"focusOutTime()\"\n (keydown)=\"keydownOnInput($event)\">\n </mat-form-field>\n</ng-template>\n", components: [{ 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"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4$4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i5$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i5$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i4$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i3$1.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"] }, { type: i3$1.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"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.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"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { 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"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3$2.MatLabel, selector: "mat-label" }, { type: i6$1.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"] }, { type: i4$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]" }, { type: i4$4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], pipes: { "async": i5.AsyncPipe, "date": i5.DatePipe, "dateDistance": i2.DateDistancePipe, "timeDistance": i2.TimeDistancePipe } });
3059
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDateTimeFieldComponent, decorators: [{
2941
3060
  type: Component,
2942
- 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> 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\"><b class=\"dbx-ok\">All Day</b> {{ dateValue$ | async | date:'fullDate' }}\n ({{ dateValue$ | async | dateDistance }})</small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"value$ | async\"><b class=\"dbx-ok\">At</b> {{ displayValue$ | async | date:'medium' }}\n ({{ displayValue$ | async | timeDistance }})</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()\">\n <mat-icon>calendar_today</mat-icon>\n </button>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>Date</mat-label>\n <input #dateInput matInput [matDatepicker]=\"picker\" (change)=\"dateTextChanged($event)\"\n (dateChange)=\"datePicked($event)\" [value]=\"dateValue$ | async\">\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\">\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)=\"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>Time</mat-label>\n <input #timeInput matInput [formControl]=\"timeInputCtrl\" (focus)=\"focusTime()\" (focusout)=\"focusOutTime()\"\n (keydown)=\"keydownOnInput($event)\">\n </mat-form-field>\n</ng-template>\n" }]
2943
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { dateInput: [{
2944
- type: ViewChild,
2945
- args: ['dateInput', { read: MatInput }]
2946
- }] } });
3061
+ 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> 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\"><b class=\"dbx-ok\">All Day</b> {{ dateValue$ | async | date:'fullDate' }}\n ({{ dateValue$ | async | dateDistance }})</small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"value$ | async\"><b class=\"dbx-ok\">At</b> {{ displayValue$ | async | date:'medium' }}\n ({{ displayValue$ | async | timeDistance }})</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>Date</mat-label>\n <input #dateInput matInput [formControl]=\"dateInputCtrl\" [matDatepicker]=\"picker\" (dateChange)=\"datePicked($event)\"\n [value]=\"dateValue$ | async\">\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>Time</mat-label>\n <input #timeInput matInput [formControl]=\"timeInputCtrl\" (focus)=\"focusTime()\" (focusout)=\"focusOutTime()\"\n (keydown)=\"keydownOnInput($event)\">\n </mat-form-field>\n</ng-template>\n" }]
3062
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
2947
3063
 
2948
3064
  class DbxFormFormlyDateFieldModule {
2949
3065
  }
2950
- DbxFormFormlyDateFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyDateFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2951
- DbxFormFormlyDateFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyDateFieldModule, declarations: [DbxDateTimeFieldComponent], imports: [CommonModule,
3066
+ DbxFormFormlyDateFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyDateFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3067
+ DbxFormFormlyDateFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyDateFieldModule, declarations: [DbxDateTimeFieldComponent], imports: [CommonModule,
2952
3068
  FormsModule,
2953
3069
  MatInputModule,
2954
3070
  MatDividerModule,
@@ -2962,7 +3078,7 @@ DbxFormFormlyDateFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.
2962
3078
  MatChipsModule,
2963
3079
  MatIconModule,
2964
3080
  FlexLayoutModule, i1$4.FormlyModule], exports: [DbxFormFormlyWrapperModule] });
2965
- DbxFormFormlyDateFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyDateFieldModule, imports: [[
3081
+ DbxFormFormlyDateFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyDateFieldModule, imports: [[
2966
3082
  CommonModule,
2967
3083
  FormsModule,
2968
3084
  MatInputModule,
@@ -2983,7 +3099,7 @@ DbxFormFormlyDateFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
2983
3099
  ]
2984
3100
  })
2985
3101
  ], DbxFormFormlyWrapperModule] });
2986
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyDateFieldModule, decorators: [{
3102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyDateFieldModule, decorators: [{
2987
3103
  type: NgModule,
2988
3104
  args: [{
2989
3105
  imports: [
@@ -3023,13 +3139,13 @@ const TAKE_NEXT_UPCOMING_TIME_CONFIG_OBS = () => of({
3023
3139
  /**
3024
3140
  * Same as DateTime field but with the Date input hidden by default.
3025
3141
  */
3026
- function timeOnlyField(config) {
3027
- return dateTimeField(Object.assign(Object.assign({}, config), { timeMode: DateTimeFieldTimeMode.REQUIRED, timeOnly: true }));
3142
+ function timeOnlyField(config = {}) {
3143
+ return dateTimeField(Object.assign(Object.assign({}, config), { timeMode: DbxDateTimeFieldTimeMode.REQUIRED, timeOnly: true }));
3028
3144
  }
3029
- function dateTimeField(config) {
3030
- const { key = 'date', timeMode = DateTimeFieldTimeMode.REQUIRED, fullDayFieldName, getConfigObs, timeOnly = false } = config;
3145
+ function dateTimeField(config = {}) {
3146
+ const { key = 'date', timeMode = DbxDateTimeFieldTimeMode.REQUIRED, fullDayFieldName, getConfigObs, timeOnly = false } = config;
3031
3147
  const fieldConfig = formlyField(Object.assign(Object.assign({ key, type: 'datetime', dateTimeField: {
3032
- timeMode: (timeOnly) ? DateTimeFieldTimeMode.REQUIRED : timeMode,
3148
+ timeMode: (timeOnly) ? DbxDateTimeFieldTimeMode.REQUIRED : timeMode,
3033
3149
  fullDayFieldName,
3034
3150
  getConfigObs,
3035
3151
  timeOnly,
@@ -3058,10 +3174,10 @@ function staticEnumField({ key, label = '', placeholder = '', description, multi
3058
3174
 
3059
3175
  class DbxFormFormlyEnumFieldModule {
3060
3176
  }
3061
- DbxFormFormlyEnumFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyEnumFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3062
- DbxFormFormlyEnumFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyEnumFieldModule });
3063
- DbxFormFormlyEnumFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyEnumFieldModule, imports: [[]] });
3064
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyEnumFieldModule, decorators: [{
3177
+ DbxFormFormlyEnumFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyEnumFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3178
+ DbxFormFormlyEnumFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyEnumFieldModule });
3179
+ DbxFormFormlyEnumFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyEnumFieldModule, imports: [[]] });
3180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyEnumFieldModule, decorators: [{
3065
3181
  type: NgModule,
3066
3182
  args: [{
3067
3183
  imports: [],
@@ -3086,17 +3202,17 @@ class DbxPhoneFieldComponent extends FieldType$1 {
3086
3202
  return (_a = this.phoneField.onlyCountries) !== null && _a !== void 0 ? _a : [];
3087
3203
  }
3088
3204
  }
3089
- DbxPhoneFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPhoneFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3090
- DbxPhoneFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxPhoneFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ngx-mat-intl-tel-input class=\"dbx-form-phone-field\" [required]=\"required\" [preferredCountries]=\"preferredCountries\"\n [enablePlaceholder]=\"false\" name=\"phone\" [formControl]=\"formControl\">\n</ngx-mat-intl-tel-input>\n", components: [{ type: i1$6.NgxMatIntlTelInputComponent, selector: "ngx-mat-intl-tel-input", inputs: ["preferredCountries", "enablePlaceholder", "inputPlaceholder", "cssClass", "name", "onlyCountries", "errorStateMatcher", "enableSearch", "searchPlaceholder", "describedBy", "format", "placeholder", "required", "disabled"], outputs: ["countryChanged"] }], directives: [{ type: i4$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
3091
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxPhoneFieldComponent, decorators: [{
3205
+ DbxPhoneFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPhoneFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3206
+ DbxPhoneFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxPhoneFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ngx-mat-intl-tel-input class=\"dbx-form-phone-field\" [required]=\"required\" [preferredCountries]=\"preferredCountries\"\n [enablePlaceholder]=\"false\" name=\"phone\" [formControl]=\"formControl\">\n</ngx-mat-intl-tel-input>\n", components: [{ type: i1$6.NgxMatIntlTelInputComponent, selector: "ngx-mat-intl-tel-input", inputs: ["preferredCountries", "enablePlaceholder", "inputPlaceholder", "cssClass", "name", "onlyCountries", "errorStateMatcher", "enableSearch", "searchPlaceholder", "describedBy", "format", "placeholder", "required", "disabled"], outputs: ["countryChanged"] }], directives: [{ type: i4$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
3207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPhoneFieldComponent, decorators: [{
3092
3208
  type: Component,
3093
3209
  args: [{ template: "<ngx-mat-intl-tel-input class=\"dbx-form-phone-field\" [required]=\"required\" [preferredCountries]=\"preferredCountries\"\n [enablePlaceholder]=\"false\" name=\"phone\" [formControl]=\"formControl\">\n</ngx-mat-intl-tel-input>\n" }]
3094
3210
  }] });
3095
3211
 
3096
3212
  class DbxFormFormlyPhoneFieldModule {
3097
3213
  }
3098
- DbxFormFormlyPhoneFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3099
- DbxFormFormlyPhoneFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, declarations: [DbxPhoneFieldComponent], imports: [CommonModule,
3214
+ DbxFormFormlyPhoneFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3215
+ DbxFormFormlyPhoneFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, declarations: [DbxPhoneFieldComponent], imports: [CommonModule,
3100
3216
  MatInputModule,
3101
3217
  MatFormFieldModule,
3102
3218
  FormsModule,
@@ -3107,7 +3223,7 @@ DbxFormFormlyPhoneFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12
3107
3223
  MatIconModule,
3108
3224
  FlexLayoutModule,
3109
3225
  FormlyMatFormFieldModule, i1$4.FormlyModule] });
3110
- DbxFormFormlyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, imports: [[
3226
+ DbxFormFormlyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, imports: [[
3111
3227
  CommonModule,
3112
3228
  MatInputModule,
3113
3229
  MatFormFieldModule,
@@ -3125,7 +3241,7 @@ DbxFormFormlyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12
3125
3241
  ]
3126
3242
  })
3127
3243
  ]] });
3128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, decorators: [{
3244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, decorators: [{
3129
3245
  type: NgModule,
3130
3246
  args: [{
3131
3247
  imports: [
@@ -3160,6 +3276,7 @@ const SUBSECTION_WRAPPER_KEY = 'subsection';
3160
3276
  const INFO_WRAPPER_KEY = 'info';
3161
3277
  const FLEX_WRAPPER_KEY = 'flex';
3162
3278
  const STYLE_WRAPPER_KEY = 'style';
3279
+ const WORKING_WRAPPER_KEY = 'working';
3163
3280
  function addWrapperToFormlyFieldConfig(fieldConfig, wrapperKey, wrapperTemplateOptionsConfig) {
3164
3281
  fieldConfig.templateOptions = Object.assign(Object.assign({}, fieldConfig.templateOptions), wrapperTemplateOptionsConfig);
3165
3282
  return {
@@ -3198,6 +3315,11 @@ function styleWrapper(fieldConfig, styleWrapper) {
3198
3315
  styleWrapper
3199
3316
  });
3200
3317
  }
3318
+ function workingWrapper(fieldConfig, workingWrapper) {
3319
+ return addWrapperToFormlyFieldConfig(fieldConfig, WORKING_WRAPPER_KEY, {
3320
+ workingWrapper
3321
+ });
3322
+ }
3201
3323
  function checkIsFieldFlexLayoutGroupFieldConfig(input) {
3202
3324
  if (input.field != null) {
3203
3325
  return true;
@@ -3229,8 +3351,9 @@ function flexLayoutWrapper(fieldConfigs, { relative, breakpoint, size: defaultSi
3229
3351
  }
3230
3352
 
3231
3353
  function textField(config) {
3232
- const { key, pattern, minLength, maxLength = 1000 } = config;
3354
+ const { key, pattern, minLength, maxLength = 1000, inputType: type = 'text' } = config;
3233
3355
  return formlyField(Object.assign({ key, type: 'input' }, templateOptionsForFieldConfig(config, {
3356
+ type,
3234
3357
  minLength,
3235
3358
  maxLength,
3236
3359
  pattern
@@ -3306,24 +3429,18 @@ function nameField({ key = 'name', label = 'Name', placeholder = 'John Doe', req
3306
3429
  attributes
3307
3430
  });
3308
3431
  }
3309
- function emailField({ key = 'email', label = 'Email Address', placeholder = 'person@email.com', description = '', required = false, readonly = false } = {}) {
3310
- return formlyField({
3311
- key,
3312
- type: 'input',
3313
- templateOptions: {
3314
- label,
3315
- placeholder,
3316
- description,
3317
- required,
3318
- readonly
3319
- },
3320
- validators: {
3321
- email: {
3322
- expression: (c) => !Validators.email(c),
3323
- message: () => `Not a valid email address.`
3324
- }
3325
- },
3326
- });
3432
+ function emailField(config = {}) {
3433
+ const { key = 'email', label = 'Email Address', placeholder = 'you@example.com' } = config;
3434
+ const emailFieldConfig = textField(Object.assign(Object.assign({}, config), { key,
3435
+ label,
3436
+ placeholder, inputType: 'email' }));
3437
+ emailFieldConfig.validators = {
3438
+ email: {
3439
+ expression: (c) => !Validators.email(c),
3440
+ message: () => `Not a valid email address.`
3441
+ }
3442
+ };
3443
+ return emailFieldConfig;
3327
3444
  }
3328
3445
  function cityField({ key = 'city', required = false } = {}) {
3329
3446
  return textField({
@@ -3422,12 +3539,12 @@ function addressListField({ key = 'addresses', required = false, maxAddresses =
3422
3539
 
3423
3540
  class DbxFormFormlyTextFieldModule {
3424
3541
  }
3425
- DbxFormFormlyTextFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyTextFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3426
- DbxFormFormlyTextFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [FormlyMaterialModule], exports: [DbxFormFormlyWrapperModule] });
3427
- DbxFormFormlyTextFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [[
3542
+ DbxFormFormlyTextFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3543
+ DbxFormFormlyTextFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [FormlyMaterialModule], exports: [DbxFormFormlyWrapperModule] });
3544
+ DbxFormFormlyTextFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [[
3428
3545
  FormlyMaterialModule
3429
3546
  ], DbxFormFormlyWrapperModule] });
3430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyTextFieldModule, decorators: [{
3547
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextFieldModule, decorators: [{
3431
3548
  type: NgModule,
3432
3549
  args: [{
3433
3550
  imports: [
@@ -3449,14 +3566,14 @@ function hiddenField({ key, required = false }) {
3449
3566
 
3450
3567
  class DbxFormFormlyValueModule {
3451
3568
  }
3452
- DbxFormFormlyValueModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyValueModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3453
- DbxFormFormlyValueModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyValueModule, imports: [CommonModule], exports: [DbxFormFormlyArrayFieldModule,
3569
+ DbxFormFormlyValueModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3570
+ DbxFormFormlyValueModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, imports: [CommonModule], exports: [DbxFormFormlyArrayFieldModule,
3454
3571
  DbxFormFormlyBooleanFieldModule,
3455
3572
  DbxFormFormlyDateFieldModule,
3456
3573
  DbxFormFormlyEnumFieldModule,
3457
3574
  DbxFormFormlyPhoneFieldModule,
3458
3575
  DbxFormFormlyTextFieldModule] });
3459
- DbxFormFormlyValueModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyValueModule, imports: [[
3576
+ DbxFormFormlyValueModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, imports: [[
3460
3577
  CommonModule
3461
3578
  ], DbxFormFormlyArrayFieldModule,
3462
3579
  DbxFormFormlyBooleanFieldModule,
@@ -3464,7 +3581,7 @@ DbxFormFormlyValueModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0"
3464
3581
  DbxFormFormlyEnumFieldModule,
3465
3582
  DbxFormFormlyPhoneFieldModule,
3466
3583
  DbxFormFormlyTextFieldModule] });
3467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyValueModule, decorators: [{
3584
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, decorators: [{
3468
3585
  type: NgModule,
3469
3586
  args: [{
3470
3587
  imports: [
@@ -3484,14 +3601,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
3484
3601
 
3485
3602
  class DbxFormFormlyFieldModule {
3486
3603
  }
3487
- DbxFormFormlyFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3488
- DbxFormFormlyFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [CommonModule], exports: [DbxFormFormlyChecklistItemFieldModule,
3604
+ DbxFormFormlyFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3605
+ DbxFormFormlyFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [CommonModule], exports: [DbxFormFormlyChecklistItemFieldModule,
3489
3606
  DbxFormFormlyComponentFieldModule,
3490
3607
  DbxFormFormlySelectionModule,
3491
3608
  DbxFormFormlyTextEditorFieldModule,
3492
3609
  DbxFormFormlyValueModule,
3493
3610
  DbxFormFormlyWrapperModule] });
3494
- DbxFormFormlyFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [[
3611
+ DbxFormFormlyFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [[
3495
3612
  CommonModule
3496
3613
  ], DbxFormFormlyChecklistItemFieldModule,
3497
3614
  DbxFormFormlyComponentFieldModule,
@@ -3499,7 +3616,7 @@ DbxFormFormlyFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0"
3499
3616
  DbxFormFormlyTextEditorFieldModule,
3500
3617
  DbxFormFormlyValueModule,
3501
3618
  DbxFormFormlyWrapperModule] });
3502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormFormlyFieldModule, decorators: [{
3619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, decorators: [{
3503
3620
  type: NgModule,
3504
3621
  args: [{
3505
3622
  imports: [
@@ -3517,6 +3634,147 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
3517
3634
  }]
3518
3635
  }] });
3519
3636
 
3637
+ const FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY = 'fieldValuesAreEqual';
3638
+ /**
3639
+ * Validator for validating all values within an object.
3640
+ *
3641
+ * This is useful for validating a control group where two or more values are expected to be the same, such as a password and a password verification field.
3642
+ *
3643
+ * @param config
3644
+ * @returns
3645
+ */
3646
+ function fieldValuesAreEqualValidator(config = {}) {
3647
+ const { keysFilter, valuesFilter: inputValuesFilter, isEqual = ((a, b) => a === b), message = 'Field values are not equal.' } = config;
3648
+ const valuesFilter = inputValuesFilter !== null && inputValuesFilter !== void 0 ? inputValuesFilter : {
3649
+ valueFilter: KeyValueTypleValueFilter.NONE,
3650
+ keysFilter
3651
+ };
3652
+ return (control) => {
3653
+ const object = control.value;
3654
+ const values = valuesFromPOJO(object, valuesFilter);
3655
+ const isValid = allObjectsAreEqual(values, isEqual);
3656
+ if (isValid) {
3657
+ return null;
3658
+ }
3659
+ else {
3660
+ return {
3661
+ [FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY]: { message }
3662
+ };
3663
+ }
3664
+ };
3665
+ }
3666
+
3667
+ ;
3668
+ /**
3669
+ * Configured simple text password field.
3670
+ *
3671
+ * @param config
3672
+ * @returns
3673
+ */
3674
+ function textPasswordField(config) {
3675
+ var _a;
3676
+ return textField(Object.assign(Object.assign({ key: 'password' }, config), { label: (_a = config === null || config === void 0 ? void 0 : config.label) !== null && _a !== void 0 ? _a : 'Password', inputType: 'password', required: true }));
3677
+ }
3678
+ /**
3679
+ * Configured verify field for a password.
3680
+ * @param config
3681
+ * @returns
3682
+ */
3683
+ function textVerifyPasswordField(config) {
3684
+ return textPasswordField(Object.assign(Object.assign({ key: 'verifyPassword', label: 'Verify Password' }, config), { required: true }));
3685
+ }
3686
+ function textPasswordWithVerifyFieldGroup(config) {
3687
+ var _a, _b, _c, _d, _e;
3688
+ const passwordFieldConfig = textPasswordField(config.password);
3689
+ const verifyPasswordFieldKey = (_b = (_a = config.verifyPassword) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : `verify${capitalizeFirstLetter(String(passwordFieldConfig.key))}`;
3690
+ const verifyPasswordField = textVerifyPasswordField(Object.assign(Object.assign(Object.assign({}, config.password), config.verifyPassword), { label: (_d = ((_c = config.verifyPassword) === null || _c === void 0 ? void 0 : _c.label)) !== null && _d !== void 0 ? _d : `Verify ${(_e = passwordFieldConfig.templateOptions) === null || _e === void 0 ? void 0 : _e.label}`, key: verifyPasswordFieldKey }));
3691
+ const validators = {
3692
+ validation: [{
3693
+ errorPath: verifyPasswordFieldKey,
3694
+ expression: fieldValuesAreEqualValidator({ keysFilter: [passwordFieldConfig.key, verifyPasswordField.key], message: 'The passwords do not match.' })
3695
+ }]
3696
+ };
3697
+ const groupFieldConfig = {
3698
+ validators,
3699
+ fieldGroup: [passwordFieldConfig, verifyPasswordField]
3700
+ };
3701
+ return groupFieldConfig;
3702
+ }
3703
+ ;
3704
+ /**
3705
+ * Template for login field that takes in a username and password.
3706
+ *
3707
+ * @param param0
3708
+ * @returns
3709
+ */
3710
+ function usernamePasswordLoginFields({ username, password, verifyPassword }) {
3711
+ let usernameField;
3712
+ let usernameFieldConfig = username;
3713
+ const defaultUsernameFieldConfig = { key: 'username', required: true };
3714
+ if (typeof username === 'string') {
3715
+ if (username === 'email') {
3716
+ usernameFieldConfig = {
3717
+ email: defaultUsernameFieldConfig
3718
+ };
3719
+ }
3720
+ else {
3721
+ usernameFieldConfig = {
3722
+ username: defaultUsernameFieldConfig
3723
+ };
3724
+ }
3725
+ }
3726
+ if (usernameFieldConfig.email) {
3727
+ usernameField = emailField(Object.assign(Object.assign({}, usernameFieldConfig.username), defaultUsernameFieldConfig));
3728
+ }
3729
+ else {
3730
+ usernameField = textField(Object.assign(Object.assign({}, usernameFieldConfig.username), defaultUsernameFieldConfig));
3731
+ }
3732
+ const passwordField = (verifyPassword) ? (textPasswordWithVerifyFieldGroup({ password, verifyPassword: (verifyPassword === true) ? undefined : verifyPassword })) : textPasswordField(password);
3733
+ return [
3734
+ usernameField,
3735
+ passwordField
3736
+ ];
3737
+ }
3738
+
3739
+ const FIELD_VALUE_IS_AVAILABLE_VALIDATION_KEY = 'fieldValueIsAvailable';
3740
+ const FIELD_VALUE_IS_AVAILABLE_ERROR_VALIDATION_KEY = 'fieldValueIsAvailableError';
3741
+ /**
3742
+ * Validator for validating all values within an object.
3743
+ *
3744
+ * This is useful for validating a control group where two or more values are expected to be the same, such as a password and a password verification field.
3745
+ *
3746
+ * @param config
3747
+ * @returns
3748
+ */
3749
+ function fieldValueIsAvailableValidator(config) {
3750
+ const { throttle = 400, checkValueIsAvailable, message = 'This value is not available.' } = config;
3751
+ const pusher = asyncPusherCache({
3752
+ throttle
3753
+ });
3754
+ return (control) => pusher(control.valueChanges)(control.value).pipe(switchMap$1((x) => checkValueIsAvailable(x)), map((isAvailable) => {
3755
+ if (isAvailable) {
3756
+ return null;
3757
+ }
3758
+ else {
3759
+ return {
3760
+ [FIELD_VALUE_IS_AVAILABLE_VALIDATION_KEY]: { message }
3761
+ };
3762
+ }
3763
+ }), catchError(() => of({
3764
+ [FIELD_VALUE_IS_AVAILABLE_ERROR_VALIDATION_KEY]: { message: 'An error occured.' }
3765
+ })), first$1());
3766
+ }
3767
+
3768
+ function textIsAvailableField(config) {
3769
+ const field = textField(config);
3770
+ field.asyncValidators = {
3771
+ validation: [{
3772
+ expression: fieldValueIsAvailableValidator(Object.assign(Object.assign({}, config), { message: config === null || config === void 0 ? void 0 : config.isNotAvailableErrorMessage })),
3773
+ }]
3774
+ };
3775
+ return workingWrapper(field, {});
3776
+ }
3777
+
3520
3778
  /**
3521
3779
  * Allows a directive to provide a formly context and form.
3522
3780
  */
@@ -3535,10 +3793,11 @@ class DbxFormlyContext {
3535
3793
  this.lockSet = new LockSet();
3536
3794
  this._fields = new BehaviorSubject(undefined);
3537
3795
  this._initialValue = new BehaviorSubject(undefined);
3538
- this._disabled = new BehaviorSubject(false);
3796
+ this._disabled = new BehaviorSubject(undefined);
3539
3797
  this._delegate = new BehaviorSubject(undefined);
3540
3798
  this.fields$ = this._fields.pipe(filterMaybe());
3541
- this.stream$ = this._delegate.pipe(distinctUntilChanged$1(), switchMap$1(x => (x) ? x.stream$ : of(DbxFormlyContext.INITIAL_STATE)), shareReplay$1(1));
3799
+ this.disabled$ = this._disabled.pipe(filterMaybe());
3800
+ this.stream$ = this._delegate.pipe(distinctUntilChanged(), switchMap(x => (x) ? x.stream$ : of(DbxFormlyContext.INITIAL_STATE)), shareReplay$1(1));
3542
3801
  }
3543
3802
  destroy() {
3544
3803
  this.lockSet.destroyOnNextUnlock(() => {
@@ -3553,8 +3812,8 @@ class DbxFormlyContext {
3553
3812
  if (delegate != null) {
3554
3813
  delegate.init({
3555
3814
  fields: this.fields$,
3556
- initialValue: this._initialValue.value,
3557
- initialDisabled: this._disabled.value
3815
+ initialDisabled: this._disabled.value,
3816
+ initialValue: this._initialValue.value
3558
3817
  });
3559
3818
  }
3560
3819
  this._delegate.next(delegate);
@@ -3573,7 +3832,7 @@ class DbxFormlyContext {
3573
3832
  }
3574
3833
  // MARK: FormComponent
3575
3834
  getValue() {
3576
- return this._delegate.pipe(filterMaybe(), switchMap$1(x => x.getValue()), shareReplay$1(1));
3835
+ return this._delegate.pipe(filterMaybe(), switchMap(x => x.getValue()), shareReplay$1(1));
3577
3836
  }
3578
3837
  setValue(value) {
3579
3838
  this._initialValue.next(value);
@@ -3582,10 +3841,19 @@ class DbxFormlyContext {
3582
3841
  }
3583
3842
  }
3584
3843
  isDisabled() {
3844
+ return BooleanStringKeyArrayUtilityInstance.isTrue(this.disabled);
3845
+ }
3846
+ get disabled() {
3585
3847
  return this._disabled.value;
3586
3848
  }
3587
- setDisabled(disabled = true) {
3588
- this._disabled.next(disabled);
3849
+ getDisabled() {
3850
+ return this._disabled.asObservable();
3851
+ }
3852
+ setDisabled(key, disabled = true) {
3853
+ this._disabled.next(BooleanStringKeyArrayUtilityInstance.set(this.disabled, key !== null && key !== void 0 ? key : DEFAULT_FORM_DISABLED_KEY, disabled));
3854
+ if (this._delegate.value) {
3855
+ this._delegate.value.setDisabled(key, disabled);
3856
+ }
3589
3857
  }
3590
3858
  resetForm() {
3591
3859
  if (this._delegate.value) {
@@ -3598,7 +3866,7 @@ class DbxFormlyContext {
3598
3866
  }
3599
3867
  }
3600
3868
  }
3601
- DbxFormlyContext.INITIAL_STATE = { isComplete: false, state: DbxFormState.INITIALIZING };
3869
+ DbxFormlyContext.INITIAL_STATE = { isComplete: false, state: DbxFormState.INITIALIZING, status: 'PENDING' };
3602
3870
 
3603
3871
  /**
3604
3872
  * Abstract component for wrapping a form.
@@ -3611,7 +3879,7 @@ class AbstractFormlyFormDirective {
3611
3879
  return this.context.isDisabled();
3612
3880
  }
3613
3881
  set disabled(disabled) {
3614
- this.context.setDisabled(disabled);
3882
+ this.context.setDisabled(undefined, disabled);
3615
3883
  }
3616
3884
  ngOnDestroy() {
3617
3885
  this.context.destroy();
@@ -3629,10 +3897,13 @@ class AbstractFormlyFormDirective {
3629
3897
  clearValue() {
3630
3898
  this.setValue({});
3631
3899
  }
3900
+ setDisabled(key, disabled) {
3901
+ this.context.setDisabled(key, disabled);
3902
+ }
3632
3903
  }
3633
- AbstractFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractFormlyFormDirective, deps: [{ token: DbxFormlyContext }], target: i0.ɵɵFactoryTarget.Directive });
3634
- AbstractFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: AbstractFormlyFormDirective, inputs: { disabled: "disabled" }, ngImport: i0 });
3635
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractFormlyFormDirective, decorators: [{
3904
+ AbstractFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractFormlyFormDirective, deps: [{ token: DbxFormlyContext }], target: i0.ɵɵFactoryTarget.Directive });
3905
+ AbstractFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractFormlyFormDirective, inputs: { disabled: "disabled" }, ngImport: i0 });
3906
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractFormlyFormDirective, decorators: [{
3636
3907
  type: Directive
3637
3908
  }], ctorParameters: function () { return [{ type: DbxFormlyContext }]; }, propDecorators: { disabled: [{
3638
3909
  type: Input
@@ -3645,9 +3916,9 @@ class AbstractSyncFormlyFormDirective extends AbstractFormlyFormDirective {
3645
3916
  this.context.fields = this.fields;
3646
3917
  }
3647
3918
  }
3648
- AbstractSyncFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractSyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3649
- AbstractSyncFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: AbstractSyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
3650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractSyncFormlyFormDirective, decorators: [{
3919
+ AbstractSyncFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractSyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3920
+ AbstractSyncFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractSyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
3921
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractSyncFormlyFormDirective, decorators: [{
3651
3922
  type: Directive
3652
3923
  }] });
3653
3924
  /**
@@ -3659,7 +3930,7 @@ class AbstractAsyncFormlyFormDirective extends AbstractFormlyFormDirective {
3659
3930
  this._fieldsSub = new SubscriptionObject();
3660
3931
  }
3661
3932
  ngOnInit() {
3662
- this._fieldsSub.subscription = this.fields$.pipe(distinctUntilChanged$1()).subscribe((fields) => {
3933
+ this._fieldsSub.subscription = this.fields$.pipe(distinctUntilChanged()).subscribe((fields) => {
3663
3934
  this.context.fields = fields;
3664
3935
  });
3665
3936
  }
@@ -3668,9 +3939,9 @@ class AbstractAsyncFormlyFormDirective extends AbstractFormlyFormDirective {
3668
3939
  this._fieldsSub.destroy();
3669
3940
  }
3670
3941
  }
3671
- AbstractAsyncFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3672
- AbstractAsyncFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: AbstractAsyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
3673
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractAsyncFormlyFormDirective, decorators: [{
3942
+ AbstractAsyncFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3943
+ AbstractAsyncFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractAsyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
3944
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractAsyncFormlyFormDirective, decorators: [{
3674
3945
  type: Directive
3675
3946
  }] });
3676
3947
  class AbstractConfigAsyncFormlyFormDirective extends AbstractAsyncFormlyFormDirective {
@@ -3690,9 +3961,9 @@ class AbstractConfigAsyncFormlyFormDirective extends AbstractAsyncFormlyFormDire
3690
3961
  this._config.complete();
3691
3962
  }
3692
3963
  }
3693
- AbstractConfigAsyncFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3694
- AbstractConfigAsyncFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: AbstractConfigAsyncFormlyFormDirective, inputs: { config: "config" }, usesInheritance: true, ngImport: i0 });
3695
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, decorators: [{
3964
+ AbstractConfigAsyncFormlyFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3965
+ AbstractConfigAsyncFormlyFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractConfigAsyncFormlyFormDirective, inputs: { config: "config" }, usesInheritance: true, ngImport: i0 });
3966
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, decorators: [{
3696
3967
  type: Directive
3697
3968
  }], propDecorators: { config: [{
3698
3969
  type: Input
@@ -3718,9 +3989,9 @@ class DbxFormlyFieldsContextDirective extends AbstractAsyncFormlyFormDirective {
3718
3989
  this._fields.complete();
3719
3990
  }
3720
3991
  }
3721
- DbxFormlyFieldsContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormlyFieldsContextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3722
- DbxFormlyFieldsContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormlyFieldsContextDirective, selector: "[dbxFormlyFields]", inputs: { fields: ["dbxFormlyFields", "fields"] }, providers: ProvideFormlyContext(), usesInheritance: true, ngImport: i0 });
3723
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormlyFieldsContextDirective, decorators: [{
3992
+ DbxFormlyFieldsContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyFieldsContextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3993
+ DbxFormlyFieldsContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormlyFieldsContextDirective, selector: "[dbxFormlyFields]", inputs: { fields: ["dbxFormlyFields", "fields"] }, providers: ProvideFormlyContext(), usesInheritance: true, ngImport: i0 });
3994
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyFieldsContextDirective, decorators: [{
3724
3995
  type: Directive,
3725
3996
  args: [{
3726
3997
  selector: '[dbxFormlyFields]',
@@ -3739,30 +4010,65 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
3739
4010
  super();
3740
4011
  this.context = context;
3741
4012
  this._fields = new BehaviorSubject(undefined);
3742
- this._events = new BehaviorSubject({ isComplete: false, state: DbxFormState.INITIALIZING });
4013
+ this._events = new BehaviorSubject({ isComplete: false, state: DbxFormState.INITIALIZING, status: 'PENDING' });
4014
+ this._disabled = new BehaviorSubject(undefined);
3743
4015
  this._reset = new BehaviorSubject(new Date());
3744
4016
  this._forceUpdate = new Subject();
4017
+ this._disabledSub = new SubscriptionObject();
3745
4018
  this.form = new FormGroup({});
3746
4019
  this.model = {};
3747
4020
  this.options = {};
3748
- this.fields$ = this._fields.pipe(switchMapMaybeObs(), distinctUntilChanged$1(), shareReplay$1(1));
3749
- this.stream$ = this._reset.pipe(switchMap$1((lastResetAt) => this.form.valueChanges.pipe(startWith(0), distinctUntilChanged$1(), throttleTime$1(50, undefined, { leading: true, trailing: true }), scanCount(), map$1((changesSinceLastResetCount) => {
3750
- const isReset = changesSinceLastResetCount === 1;
3751
- const complete = this.form.valid;
4021
+ this.fields$ = this._fields.pipe(switchMapMaybeObs(), distinctUntilChanged(), shareReplay$1(1));
4022
+ this.stream$ = this._reset.pipe(switchMap((lastResetAt) => this.form.valueChanges.pipe(startWith(0), distinctUntilChanged(), throttleTime$1(50, undefined, { leading: true, trailing: true }), scanCount(-1),
4023
+ // update on validation changes too. Does not count towards changes since last reset.
4024
+ switchMap(changesSinceLastReset => this.form.statusChanges.pipe(startWith(this.form.status), distinctUntilChanged()).pipe(map(_ => changesSinceLastReset))), map((changesSinceLastResetCount) => ({
4025
+ changesSinceLastResetCount,
4026
+ isFormValid: this.form.status !== 'PENDING' && this.form.valid,
4027
+ isFormDisabled: this.form.disabled
4028
+ })), scan((acc, next) => {
4029
+ // Pass forward valid if next was a disabled change/check, which changes angular form's isValid value.
4030
+ // If it was valid prior, then it should be valid now, unless we just reset, in which case it might not be valid.
4031
+ const valid = next.isFormValid || (next.isFormDisabled && acc.isFormValid && acc.changesSinceLastResetCount > 0);
4032
+ return {
4033
+ changesSinceLastResetCount: next.changesSinceLastResetCount,
4034
+ isFormValid: valid,
4035
+ isFormDisabled: next.isFormDisabled
4036
+ };
4037
+ }, {
4038
+ changesSinceLastResetCount: 0,
4039
+ isFormValid: false,
4040
+ isFormDisabled: false
4041
+ }), map(({ changesSinceLastResetCount, isFormValid, isFormDisabled }) => {
4042
+ const isReset = changesSinceLastResetCount <= 1; // first emission after reset is the first value.
4043
+ const complete = isFormValid;
3752
4044
  const nextState = {
3753
4045
  isComplete: complete,
3754
4046
  state: (isReset) ? DbxFormState.RESET : DbxFormState.USED,
4047
+ status: this.form.status,
3755
4048
  untouched: this.form.untouched,
3756
4049
  pristine: this.form.pristine,
3757
4050
  changesCount: changesSinceLastResetCount,
3758
4051
  lastResetAt,
3759
- isDisabled: this.disabled
4052
+ disabled: this.disabled,
4053
+ isDisabled: isFormDisabled
3760
4054
  };
4055
+ // console.log('Change: ', nextState);
3761
4056
  return nextState;
3762
4057
  }))), shareReplay$1(1));
3763
4058
  }
3764
4059
  ngOnInit() {
3765
4060
  this.context.setDelegate(this);
4061
+ this._disabledSub.subscription = this._disabled.pipe(distinctUntilChanged()).subscribe((disabled) => {
4062
+ const isDisabled = BooleanStringKeyArrayUtilityInstance.isTrue(disabled);
4063
+ if (this.form.disabled !== isDisabled) {
4064
+ if (isDisabled) {
4065
+ this.form.disable({ emitEvent: true });
4066
+ }
4067
+ else {
4068
+ this.form.enable({ emitEvent: true });
4069
+ }
4070
+ }
4071
+ });
3766
4072
  }
3767
4073
  ngOnDestroy() {
3768
4074
  this.context.lockSet.onNextUnlock(() => {
@@ -3772,11 +4078,14 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
3772
4078
  this._fields.complete();
3773
4079
  this._reset.complete();
3774
4080
  this._forceUpdate.complete();
4081
+ this._disabled.complete();
4082
+ this._disabledSub.destroy();
3775
4083
  });
3776
4084
  }
3777
4085
  // MARK: Delegate
3778
4086
  init(initialize) {
3779
4087
  this._fields.next(initialize.fields);
4088
+ this._disabled.next(initialize.initialDisabled);
3780
4089
  }
3781
4090
  getValue() {
3782
4091
  return of(this.form.value);
@@ -3799,37 +4108,39 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
3799
4108
  this.form.markAsPristine();
3800
4109
  }
3801
4110
  }, 500);
4111
+ // ping reset
4112
+ this.resetForm();
3802
4113
  }
3803
4114
  resetForm() {
3804
4115
  if (this.options.resetModel) {
3805
4116
  this.options.resetModel();
3806
4117
  }
4118
+ this._reset.next(new Date());
4119
+ }
4120
+ get isDisabled() {
4121
+ return BooleanStringKeyArrayUtilityInstance.isTrue(this.disabled);
3807
4122
  }
3808
4123
  get disabled() {
3809
- return this.form.disabled;
4124
+ return this._disabled.value;
3810
4125
  }
3811
- setDisabled(disabled = true) {
3812
- if (disabled !== this.disabled) {
3813
- if (disabled) {
3814
- this.form.disable({ emitEvent: true });
3815
- }
3816
- else {
3817
- this.form.enable({ emitEvent: true });
3818
- }
3819
- }
4126
+ getDisabled() {
4127
+ return this._disabled.asObservable();
4128
+ }
4129
+ setDisabled(key, disabled = true) {
4130
+ this._disabled.next(BooleanStringKeyArrayUtilityInstance.set(this.disabled, key !== null && key !== void 0 ? key : DEFAULT_FORM_DISABLED_KEY, disabled));
3820
4131
  }
3821
4132
  // MARK: Update
3822
4133
  forceFormUpdate() {
3823
4134
  this._forceUpdate.next();
3824
4135
  }
3825
4136
  }
3826
- DbxFormlyFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormlyFormComponent, deps: [{ token: DbxFormlyContext }], target: i0.ɵɵFactoryTarget.Component });
3827
- DbxFormlyFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormlyFormComponent, selector: "dbx-formly", host: { classAttribute: "dbx-formly" }, providers: ProvideDbxMutableForm(DbxFormlyFormComponent), exportAs: ["formly"], usesInheritance: true, ngImport: i0, template: `
4137
+ DbxFormlyFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyFormComponent, deps: [{ token: DbxFormlyContext }], target: i0.ɵɵFactoryTarget.Component });
4138
+ DbxFormlyFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormlyFormComponent, selector: "dbx-formly", host: { classAttribute: "dbx-formly" }, providers: ProvideDbxMutableForm(DbxFormlyFormComponent), exportAs: ["formly"], usesInheritance: true, ngImport: i0, template: `
3828
4139
  <form [formGroup]="form" class="dbx-formly">
3829
4140
  <formly-form [form]="form" [fields]="(fields$ | async) ?? []" [model]="model"></formly-form>
3830
4141
  </form>
3831
4142
  `, isInline: true, components: [{ type: i1$4.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], directives: [{ type: i4$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], pipes: { "async": i5.AsyncPipe } });
3832
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormlyFormComponent, decorators: [{
4143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyFormComponent, decorators: [{
3833
4144
  type: Component,
3834
4145
  args: [{
3835
4146
  selector: 'dbx-formly',
@@ -3848,8 +4159,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
3848
4159
 
3849
4160
  class DbxFormlyModule {
3850
4161
  }
3851
- DbxFormlyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3852
- DbxFormlyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormlyModule, declarations: [DbxFormlyFormComponent,
4162
+ DbxFormlyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4163
+ DbxFormlyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyModule, declarations: [DbxFormlyFormComponent,
3853
4164
  DbxFormlyFieldsContextDirective], imports: [CommonModule,
3854
4165
  FormsModule,
3855
4166
  ReactiveFormsModule,
@@ -3861,8 +4172,9 @@ DbxFormlyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
3861
4172
  // Directives
3862
4173
  DbxFormlyFormComponent,
3863
4174
  DbxFormlyFieldsContextDirective
4175
+ // Helper Modules
3864
4176
  ] });
3865
- DbxFormlyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormlyModule, imports: [[
4177
+ DbxFormlyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyModule, imports: [[
3866
4178
  CommonModule,
3867
4179
  FormsModule,
3868
4180
  ReactiveFormsModule,
@@ -3872,7 +4184,7 @@ DbxFormlyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
3872
4184
  // Modules (?)
3873
4185
  FormsModule,
3874
4186
  ReactiveFormsModule] });
3875
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormlyModule, decorators: [{
4187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyModule, decorators: [{
3876
4188
  type: NgModule,
3877
4189
  args: [{
3878
4190
  imports: [
@@ -3893,6 +4205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
3893
4205
  // Directives
3894
4206
  DbxFormlyFormComponent,
3895
4207
  DbxFormlyFieldsContextDirective
4208
+ // Helper Modules
3896
4209
  ]
3897
4210
  }]
3898
4211
  }] });
@@ -3902,9 +4215,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
3902
4215
  */
3903
4216
  class DbxFormSpacerComponent {
3904
4217
  }
3905
- DbxFormSpacerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3906
- DbxFormSpacerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: DbxFormSpacerComponent, selector: "dbx-form-spacer", ngImport: i0, template: `<div class="dbx-form-spacer"></div>`, isInline: true });
3907
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormSpacerComponent, decorators: [{
4218
+ DbxFormSpacerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4219
+ DbxFormSpacerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormSpacerComponent, selector: "dbx-form-spacer", ngImport: i0, template: `<div class="dbx-form-spacer"></div>`, isInline: true });
4220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSpacerComponent, decorators: [{
3908
4221
  type: Component,
3909
4222
  args: [{
3910
4223
  selector: 'dbx-form-spacer',
@@ -3914,12 +4227,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
3914
4227
 
3915
4228
  class DbxFormLayoutModule {
3916
4229
  }
3917
- DbxFormLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3918
- DbxFormLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormLayoutModule, declarations: [DbxFormSpacerComponent], imports: [CommonModule], exports: [DbxFormSpacerComponent] });
3919
- DbxFormLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormLayoutModule, imports: [[
4230
+ DbxFormLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4231
+ DbxFormLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormLayoutModule, declarations: [DbxFormSpacerComponent], imports: [CommonModule], exports: [DbxFormSpacerComponent] });
4232
+ DbxFormLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormLayoutModule, imports: [[
3920
4233
  CommonModule
3921
4234
  ]] });
3922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormLayoutModule, decorators: [{
4235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormLayoutModule, decorators: [{
3923
4236
  type: NgModule,
3924
4237
  args: [{
3925
4238
  imports: [
@@ -3974,14 +4287,14 @@ function IsInRange(min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER)
3974
4287
 
3975
4288
  class DbxFormExtensionModule {
3976
4289
  }
3977
- DbxFormExtensionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormExtensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3978
- DbxFormExtensionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormExtensionModule, exports: [DbxFormModule,
4290
+ DbxFormExtensionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExtensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4291
+ DbxFormExtensionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExtensionModule, exports: [DbxFormModule,
3979
4292
  DbxFormlyModule,
3980
4293
  DbxFormFormlyFieldModule] });
3981
- DbxFormExtensionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormExtensionModule, imports: [DbxFormModule,
4294
+ DbxFormExtensionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExtensionModule, imports: [DbxFormModule,
3982
4295
  DbxFormlyModule,
3983
4296
  DbxFormFormlyFieldModule] });
3984
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: DbxFormExtensionModule, decorators: [{
4297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExtensionModule, decorators: [{
3985
4298
  type: NgModule,
3986
4299
  args: [{
3987
4300
  exports: [
@@ -3996,5 +4309,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
3996
4309
  * Generated bundle index. Do not edit.
3997
4310
  */
3998
4311
 
3999
- export { ADDRESS_CITY_MAX_LENGTH, ADDRESS_COUNTRY_MAX_LENGTH, ADDRESS_LINE_MAX_LENGTH, ADDRESS_STATE_MAX_LENGTH, ADDRESS_ZIP_MAX_LENGTH, APP_ACTION_FORM_DISABLED_KEY, AbstractAsyncFormlyFormDirective, AbstractConfigAsyncFormlyFormDirective, AbstractDbxPickableItemFieldDirective, AbstractDbxSearchableFieldDisplayDirective, AbstractDbxSearchableValueFieldDirective, AbstractFormComponentFieldWrappedComponent, AbstractFormExpandableSectionWrapperDirective, AbstractFormlyFormDirective, AbstractSyncFormlyFormDirective, AutoTouchFieldWrapperComponent, ChecklistItemFieldDataSetBuilder, DBX_SEARCHABLE_FIELD_COMPONENT_DATA, DEFAULT_HAS_VALUE_FN, DEFAULT_PREFERRED_COUNTRIES, DOMAIN_NAME_REGEX, DateTimeFieldTimeMode, DbxActionFormDirective, DbxActionFormSafetyDirective, DbxChecklistItemContentComponent, DbxChecklistItemFieldComponent, DbxDateTimeFieldComponent, DbxDefaultChecklistItemFieldDisplayComponent, DbxDefaultSearchableFieldDisplayComponent, DbxForm, DbxFormActionModule, DbxFormActionTransitionModule, DbxFormExpandWrapperComponent, DbxFormExtensionModule, DbxFormFlexWrapperComponent, DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyEnumFieldModule, DbxFormFormlyFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyTextFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule, DbxFormInfoWrapperComponent, DbxFormIoModule, DbxFormLayoutModule, DbxFormLoadingSourceDirective, DbxFormModule, DbxFormRepeatArrayTypeComponent, DbxFormSectionWrapperComponent, DbxFormSourceDirective, DbxFormSpacerComponent, DbxFormState, DbxFormSubsectionWrapperComponent, DbxFormToggleWrapperComponent, DbxFormValueChangesDirective, DbxFormlyContext, DbxFormlyFieldsContextDirective, DbxFormlyFormComponent, DbxFormlyModule, DbxMutableForm, DbxPhoneFieldComponent, DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent, DbxSearchableChipFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxSearchableTextFieldComponent, DbxTextEditorFieldComponent, EXPANDABLE_WRAPPER_KEY, FLEX_WRAPPER_KEY, FormComponentFieldComponent, INFO_WRAPPER_KEY, INVALID_PHONE_NUMBER_MESSAGE, IsDomain, IsInRange, IsTruthy, LABEL_STRING_MAX_LENGTH, MAX_LENGTH_VALIDATION_MESSAGE, MAX_VALIDATION_MESSAGE, MIN_LENGTH_VALIDATION_MESSAGE, MIN_VALIDATION_MESSAGE, PHONE_LABEL_MAX_LENGTH, ProvideDbxForm, ProvideDbxMutableForm, ProvideFormlyContext, 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, addWrapperToFormlyFieldConfig, addressField, addressFormlyFields, addressListField, checkIsFieldFlexLayoutGroupFieldConfig, checkboxField, checklistItemField, chipTextField, cityField, componentField, countryField, dateTimeField, defaultValidationMessages, disableFormlyFieldAutofillAttributes, emailField, expandWrapper, filterPickableItemFieldValuesByLabel, flexLayoutWrapper, formlyField, hiddenField, infoWrapper, makeMetaFilterSearchableFieldValueDisplayFn, maxLengthValidationMessage, maxValidationMessage, minLengthValidationMessage, minValidationMessage, nameField, phoneAndLabelSectionField, phoneField, phoneListField, pickableItemChipField, pickableItemListField, repeatArrayField, searchableChipField, searchableStringChipField, searchableTextField, sectionWrapper, sortPickableItemsByLabel, stateField, staticEnumField, styleWrapper, subsectionWrapper, templateOptionsForFieldConfig, templateOptionsValueForFieldConfig, textAreaField, textEditorField, textField, timeOnlyField, toggleField, toggleWrapper, wrappedPhoneAndLabelField, zipCodeField };
4312
+ export { ADDRESS_CITY_MAX_LENGTH, ADDRESS_COUNTRY_MAX_LENGTH, ADDRESS_LINE_MAX_LENGTH, ADDRESS_STATE_MAX_LENGTH, ADDRESS_ZIP_MAX_LENGTH, APP_ACTION_FORM_DISABLED_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_PREFERRED_COUNTRIES, DOMAIN_NAME_REGEX, DbxActionFormDirective, DbxActionFormSafetyDirective, DbxChecklistItemContentComponent, DbxChecklistItemFieldComponent, DbxDateTimeFieldComponent, DbxDateTimeFieldTimeMode, DbxDefaultChecklistItemFieldDisplayComponent, DbxDefaultSearchableFieldDisplayComponent, DbxForm, DbxFormActionModule, DbxFormActionTransitionModule, DbxFormComponentFieldComponent, DbxFormExpandWrapperComponent, DbxFormExtensionModule, DbxFormFlexWrapperComponent, DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyEnumFieldModule, DbxFormFormlyFieldModule, 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, IsDomain, IsInRange, IsTruthy, LABEL_STRING_MAX_LENGTH, MAX_LENGTH_VALIDATION_MESSAGE, MAX_VALIDATION_MESSAGE, MIN_LENGTH_VALIDATION_MESSAGE, MIN_VALIDATION_MESSAGE, PHONE_LABEL_MAX_LENGTH, ProvideDbxForm, ProvideDbxMutableForm, ProvideFormlyContext, 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, addressListField, checkIsFieldFlexLayoutGroupFieldConfig, checkboxField, checklistItemField, chipTextField, cityField, componentField, countryField, dateTimeField, dbxFormSourceObservable, defaultValidationMessages, disableFormlyFieldAutofillAttributes, emailField, expandWrapper, fieldValueIsAvailableValidator, fieldValuesAreEqualValidator, filterPickableItemFieldValuesByLabel, flexLayoutWrapper, formlyField, hiddenField, infoWrapper, makeMetaFilterSearchableFieldValueDisplayFn, maxLengthValidationMessage, maxValidationMessage, minLengthValidationMessage, minValidationMessage, nameField, phoneAndLabelSectionField, phoneField, phoneListField, pickableItemChipField, pickableItemListField, repeatArrayField, searchableChipField, searchableStringChipField, searchableTextField, sectionWrapper, sortPickableItemsByLabel, stateField, staticEnumField, styleWrapper, subsectionWrapper, templateOptionsForFieldConfig, templateOptionsValueForFieldConfig, textAreaField, textEditorField, textField, textIsAvailableField, textPasswordField, textPasswordWithVerifyFieldGroup, textVerifyPasswordField, timeOnlyField, toggleField, toggleWrapper, usernamePasswordLoginFields, workingWrapper, wrappedPhoneAndLabelField, zipCodeField };
4000
4313
  //# sourceMappingURL=dereekb-dbx-form.mjs.map