@dereekb/dbx-form 5.0.0 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_index.scss +4 -5
- package/esm2020/lib/form/action/form.action.directive.mjs +20 -21
- package/esm2020/lib/form/action/form.action.module.mjs +6 -17
- package/esm2020/lib/form/action/transition/form.action.transition.module.mjs +5 -13
- package/esm2020/lib/form/action/transition/form.action.transition.safety.directive.mjs +2 -2
- package/esm2020/lib/form/form.mjs +2 -5
- package/esm2020/lib/form/form.module.mjs +4 -12
- package/esm2020/lib/form/io/form.changes.directive.mjs +4 -2
- package/esm2020/lib/form/io/form.input.directive.mjs +3 -6
- package/esm2020/lib/form/io/form.io.module.mjs +6 -22
- package/esm2020/lib/form/io/form.loading.directive.mjs +1 -1
- package/esm2020/lib/form.module.mjs +4 -12
- package/esm2020/lib/formly/config/index.mjs +1 -1
- package/esm2020/lib/formly/field/checklist/checklist.field.mjs +2 -5
- package/esm2020/lib/formly/field/checklist/checklist.item.field.component.mjs +9 -5
- package/esm2020/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +1 -1
- package/esm2020/lib/formly/field/checklist/checklist.item.field.mjs +1 -1
- package/esm2020/lib/formly/field/checklist/checklist.item.field.module.mjs +6 -18
- package/esm2020/lib/formly/field/checklist/checklist.item.mjs +1 -1
- package/esm2020/lib/formly/field/component/component.field.component.mjs +1 -1
- package/esm2020/lib/formly/field/component/component.field.mjs +1 -1
- package/esm2020/lib/formly/field/component/component.field.module.mjs +5 -13
- package/esm2020/lib/formly/field/field.mjs +4 -2
- package/esm2020/lib/formly/field/form.field.module.mjs +5 -26
- package/esm2020/lib/formly/field/selection/pickable/index.mjs +1 -1
- package/esm2020/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +5 -5
- package/esm2020/lib/formly/field/selection/pickable/pickable.field.directive.mjs +39 -39
- package/esm2020/lib/formly/field/selection/pickable/pickable.field.mjs +3 -3
- package/esm2020/lib/formly/field/selection/pickable/pickable.field.module.mjs +5 -15
- package/esm2020/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +16 -11
- package/esm2020/lib/formly/field/selection/pickable/pickable.mjs +1 -1
- package/esm2020/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +3 -3
- package/esm2020/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +15 -13
- package/esm2020/lib/formly/field/selection/searchable/searchable.field.directive.mjs +19 -21
- package/esm2020/lib/formly/field/selection/searchable/searchable.field.mjs +5 -3
- package/esm2020/lib/formly/field/selection/searchable/searchable.field.module.mjs +7 -19
- package/esm2020/lib/formly/field/selection/searchable/searchable.mjs +1 -1
- package/esm2020/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +6 -6
- package/esm2020/lib/formly/field/selection/searchable/text.chip.field.mjs +5 -5
- package/esm2020/lib/formly/field/selection/selection.mjs +1 -1
- package/esm2020/lib/formly/field/selection/selection.module.mjs +5 -14
- package/esm2020/lib/formly/field/texteditor/texteditor.field.component.mjs +4 -2
- package/esm2020/lib/formly/field/texteditor/texteditor.field.mjs +1 -1
- package/esm2020/lib/formly/field/texteditor/texteditor.field.module.mjs +4 -10
- package/esm2020/lib/formly/field/value/array/array.field.component.mjs +30 -24
- package/esm2020/lib/formly/field/value/array/array.field.mjs +3 -3
- package/esm2020/lib/formly/field/value/array/array.field.module.mjs +4 -10
- package/esm2020/lib/formly/field/value/boolean/boolean.field.mjs +1 -1
- package/esm2020/lib/formly/field/value/boolean/boolean.field.module.mjs +1 -1
- package/esm2020/lib/formly/field/value/date/date.field.module.mjs +5 -13
- package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +18 -27
- package/esm2020/lib/formly/field/value/date/datetime.field.mjs +3 -3
- package/esm2020/lib/formly/field/value/enum/enum.field.mjs +2 -2
- package/esm2020/lib/formly/field/value/enum/enum.field.module.mjs +1 -1
- package/esm2020/lib/formly/field/value/enum/enum.mjs +1 -1
- package/esm2020/lib/formly/field/value/hidden.field.mjs +1 -1
- package/esm2020/lib/formly/field/value/phone/phone.field.component.mjs +3 -3
- package/esm2020/lib/formly/field/value/phone/phone.field.mjs +1 -2
- package/esm2020/lib/formly/field/value/phone/phone.field.module.mjs +4 -10
- package/esm2020/lib/formly/field/value/text/text.additional.field.mjs +2 -2
- package/esm2020/lib/formly/field/value/text/text.address.field.mjs +11 -6
- package/esm2020/lib/formly/field/value/text/text.field.mjs +2 -2
- package/esm2020/lib/formly/field/value/text/text.field.module.mjs +4 -10
- package/esm2020/lib/formly/field/value/value.module.mjs +5 -26
- package/esm2020/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +7 -3
- package/esm2020/lib/formly/field/wrapper/expandable.wrapper.component.mjs +15 -15
- package/esm2020/lib/formly/field/wrapper/expandable.wrapper.delegate.mjs +1 -1
- package/esm2020/lib/formly/field/wrapper/flex.wrapper.component.mjs +1 -1
- package/esm2020/lib/formly/field/wrapper/form.wrapper.module.mjs +3 -21
- package/esm2020/lib/formly/field/wrapper/info.wrapper.component.mjs +3 -5
- package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +1 -1
- package/esm2020/lib/formly/field/wrapper/style.wrapper.component.mjs +1 -1
- package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +7 -7
- package/esm2020/lib/formly/field/wrapper/toggle.wrapper.component.mjs +16 -16
- package/esm2020/lib/formly/field/wrapper/working.wrapper.component.mjs +1 -1
- package/esm2020/lib/formly/field/wrapper/wrapper.mjs +6 -4
- package/esm2020/lib/formly/formly.context.directive.mjs +1 -1
- package/esm2020/lib/formly/formly.context.mjs +7 -5
- package/esm2020/lib/formly/formly.directive.mjs +1 -1
- package/esm2020/lib/formly/formly.form.component.mjs +4 -4
- package/esm2020/lib/formly/formly.module.mjs +5 -25
- package/esm2020/lib/formly/template/available.mjs +6 -4
- package/esm2020/lib/formly/template/login.mjs +8 -10
- package/esm2020/lib/layout/form.layout.module.mjs +5 -13
- package/esm2020/lib/layout/form.spacer.component.mjs +7 -3
- package/esm2020/lib/validator/available.mjs +1 -1
- package/esm2020/lib/validator/field.mjs +3 -3
- package/esm2020/lib/validator/number.mjs +1 -1
- package/fesm2015/dereekb-dbx-form.mjs +347 -551
- package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form.mjs +347 -551
- package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
- package/lib/form/_form.scss +6 -4
- package/lib/formly/_formly.scss +6 -4
- package/lib/formly/field/checklist/_checklist.scss +6 -10
- package/lib/formly/field/checklist/checklist.item.d.ts +5 -5
- package/lib/formly/field/component/_component.scss +6 -4
- package/lib/formly/field/component/component.field.d.ts +1 -1
- package/lib/formly/field/selection/pickable/_pickable.scss +4 -3
- package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +1 -1
- package/lib/formly/field/selection/pickable/pickable.d.ts +3 -3
- package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +11 -11
- package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +5 -5
- package/lib/formly/field/selection/searchable/_searchable.scss +4 -6
- package/lib/formly/field/selection/searchable/text.chip.field.d.ts +3 -3
- package/lib/formly/field/selection/selection.d.ts +3 -3
- package/lib/formly/field/texteditor/_texteditor.scss +3 -8
- package/lib/formly/field/value/array/_array.scss +2 -6
- package/lib/formly/field/value/array/array.field.d.ts +1 -1
- package/lib/formly/field/value/boolean/_boolean.scss +6 -4
- package/lib/formly/field/value/date/_date.scss +7 -9
- package/lib/formly/field/value/enum/_enum.scss +6 -4
- package/lib/formly/field/value/phone/_phone.scss +2 -4
- package/lib/formly/field/value/text/_text.scss +6 -4
- package/lib/formly/field/value/text/text.additional.field.d.ts +3 -3
- package/lib/formly/field/wrapper/_wrapper.scss +4 -4
- package/lib/formly/template/login.d.ts +1 -1
- package/lib/layout/_layout.scss +6 -4
- package/lib/style/_config.scss +8 -6
- package/lib/style/_core.scss +1 -1
- package/lib/style/_mixin.scss +1 -1
- package/lib/style/_theming.scss +2 -12
- package/lib/style/_variables.scss +1 -1
- package/lib/validator/available.d.ts +1 -1
- package/lib/validator/field.d.ts +2 -2
- package/package.json +3 -3
|
@@ -89,10 +89,7 @@ function provideDbxForm(sourceType) {
|
|
|
89
89
|
return [{ provide: DbxForm, useExisting: forwardRef(() => sourceType) }];
|
|
90
90
|
}
|
|
91
91
|
function provideDbxMutableForm(sourceType) {
|
|
92
|
-
return [
|
|
93
|
-
...provideDbxForm(sourceType),
|
|
94
|
-
{ provide: DbxMutableForm, useExisting: forwardRef(() => sourceType) }
|
|
95
|
-
];
|
|
92
|
+
return [...provideDbxForm(sourceType), { provide: DbxMutableForm, useExisting: forwardRef(() => sourceType) }];
|
|
96
93
|
}
|
|
97
94
|
|
|
98
95
|
const APP_ACTION_FORM_DISABLED_KEY = 'dbx_action_form';
|
|
@@ -125,7 +122,8 @@ class DbxActionFormDirective {
|
|
|
125
122
|
}
|
|
126
123
|
ngOnInit() {
|
|
127
124
|
// Pass data from the form to the source when triggered.
|
|
128
|
-
this._triggeredSub.subscription = this.source.triggered
|
|
125
|
+
this._triggeredSub.subscription = this.source.triggered$
|
|
126
|
+
.pipe(switchMap(() => this.form.stream$.pipe(first(), exhaustMap((stream) => {
|
|
129
127
|
const { isComplete } = stream;
|
|
130
128
|
const doNothing = {}; // nothing, form not complete
|
|
131
129
|
let obs;
|
|
@@ -143,7 +141,8 @@ class DbxActionFormDirective {
|
|
|
143
141
|
obs = of(doNothing);
|
|
144
142
|
}
|
|
145
143
|
return obs;
|
|
146
|
-
}))))
|
|
144
|
+
}))))
|
|
145
|
+
.subscribe((result) => {
|
|
147
146
|
if (result.reject) {
|
|
148
147
|
this.source.reject(result.reject);
|
|
149
148
|
}
|
|
@@ -155,36 +154,34 @@ class DbxActionFormDirective {
|
|
|
155
154
|
}
|
|
156
155
|
});
|
|
157
156
|
// Update the enabled/disabled state
|
|
158
|
-
this._isCompleteSub.subscription = this.form.stream
|
|
157
|
+
this._isCompleteSub.subscription = this.form.stream$
|
|
158
|
+
.pipe(delay(0), filter((x) => x.state !== DbxFormState.INITIALIZING), switchMap((event) => {
|
|
159
159
|
return this.form.getValue().pipe(first(), exhaustMap((value) => {
|
|
160
160
|
var _a, _b;
|
|
161
161
|
// Use both changes count and whether or not something was in the past to guage whether or not the item has been touched.
|
|
162
162
|
// Angular Form's untouched is whether or not focus has been lost but we can still recieve value updates.
|
|
163
163
|
// More than a certain amount of updates implies that it is being typed into.
|
|
164
|
-
const isProbablyTouched = !event.untouched ||
|
|
165
|
-
(((_a = event.changesCount) !== null && _a !== void 0 ? _a : 0) > 3 && isPast(addSeconds((_b = event.lastResetAt) !== null && _b !== void 0 ? _b : new Date(), 2)));
|
|
164
|
+
const isProbablyTouched = !event.untouched || (((_a = event.changesCount) !== null && _a !== void 0 ? _a : 0) > 3 && isPast(addSeconds((_b = event.lastResetAt) !== null && _b !== void 0 ? _b : new Date(), 2)));
|
|
166
165
|
let validatorObs;
|
|
167
166
|
const initialIsValidCheck = event.isComplete;
|
|
168
167
|
if (initialIsValidCheck) {
|
|
169
|
-
validatorObs =
|
|
168
|
+
validatorObs = this.dbxActionFormValidator ? this.dbxActionFormValidator(value) : of(true);
|
|
170
169
|
}
|
|
171
170
|
else {
|
|
172
171
|
validatorObs = of(false);
|
|
173
172
|
}
|
|
174
173
|
let modifiedObs;
|
|
175
|
-
const isConsideredModified =
|
|
174
|
+
const isConsideredModified = event.pristine === false && isProbablyTouched;
|
|
176
175
|
if (isConsideredModified) {
|
|
177
|
-
modifiedObs =
|
|
176
|
+
modifiedObs = this.dbxActionFormModified ? this.dbxActionFormModified(value) : of(true);
|
|
178
177
|
}
|
|
179
178
|
else {
|
|
180
179
|
modifiedObs = of(false);
|
|
181
180
|
}
|
|
182
|
-
return combineLatest([
|
|
183
|
-
validatorObs,
|
|
184
|
-
modifiedObs
|
|
185
|
-
]).pipe(first(), map(([valid, modified]) => ({ valid, modified, value, event })));
|
|
181
|
+
return combineLatest([validatorObs, modifiedObs]).pipe(first(), map(([valid, modified]) => ({ valid, modified, value, event })));
|
|
186
182
|
}));
|
|
187
|
-
}))
|
|
183
|
+
}))
|
|
184
|
+
.subscribe(({ valid, modified /*, value, event */ }) => {
|
|
188
185
|
// console.log('x: ', value, event, valid, modified);
|
|
189
186
|
// Update Modified State
|
|
190
187
|
this.source.setIsModified(modified);
|
|
@@ -192,7 +189,9 @@ class DbxActionFormDirective {
|
|
|
192
189
|
this.source.enable(APP_ACTION_FORM_DISABLED_KEY, valid);
|
|
193
190
|
});
|
|
194
191
|
// Watch the working state and disable form while working
|
|
195
|
-
this._isWorkingSub.subscription = combineLatest([this.source.isWorking$, this._formDisabledWhileWorking])
|
|
192
|
+
this._isWorkingSub.subscription = combineLatest([this.source.isWorking$, this._formDisabledWhileWorking])
|
|
193
|
+
.pipe(map(([isWorking, lockOnWorking]) => lockOnWorking && isWorking), distinctUntilChanged())
|
|
194
|
+
.subscribe((disable) => {
|
|
196
195
|
this.form.setDisabled(APP_ACTION_FORM_DISABLED_KEY, disable);
|
|
197
196
|
});
|
|
198
197
|
}
|
|
@@ -207,12 +206,9 @@ class DbxActionFormDirective {
|
|
|
207
206
|
});
|
|
208
207
|
}
|
|
209
208
|
preCheckReadyValue(value) {
|
|
210
|
-
const validatorObs =
|
|
211
|
-
const modifiedObs =
|
|
212
|
-
return combineLatest([
|
|
213
|
-
validatorObs,
|
|
214
|
-
modifiedObs
|
|
215
|
-
]).pipe(first(), map(([valid, modified]) => valid && modified));
|
|
209
|
+
const validatorObs = this.dbxActionFormValidator ? this.dbxActionFormValidator(value) : of(true);
|
|
210
|
+
const modifiedObs = this.dbxActionFormModified ? this.dbxActionFormModified(value) : of(true);
|
|
211
|
+
return combineLatest([validatorObs, modifiedObs]).pipe(first(), map(([valid, modified]) => valid && modified));
|
|
216
212
|
}
|
|
217
213
|
readyValue(value) {
|
|
218
214
|
return of({ value });
|
|
@@ -257,7 +253,7 @@ DbxActionFormSafetyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12
|
|
|
257
253
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxActionFormSafetyDirective, decorators: [{
|
|
258
254
|
type: Directive,
|
|
259
255
|
args: [{
|
|
260
|
-
selector: '[dbxActionFormSafety]'
|
|
256
|
+
selector: '[dbxActionFormSafety]'
|
|
261
257
|
}]
|
|
262
258
|
}], ctorParameters: function () {
|
|
263
259
|
return [{ type: DbxActionFormDirective, decorators: [{
|
|
@@ -272,59 +268,37 @@ class DbxFormActionTransitionModule {
|
|
|
272
268
|
}
|
|
273
269
|
DbxFormActionTransitionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionTransitionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
274
270
|
DbxFormActionTransitionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionTransitionModule, declarations: [DbxActionFormSafetyDirective], imports: [CommonModule], exports: [DbxActionFormSafetyDirective] });
|
|
275
|
-
DbxFormActionTransitionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionTransitionModule, imports: [[
|
|
276
|
-
CommonModule
|
|
277
|
-
]] });
|
|
271
|
+
DbxFormActionTransitionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionTransitionModule, imports: [[CommonModule]] });
|
|
278
272
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionTransitionModule, decorators: [{
|
|
279
273
|
type: NgModule,
|
|
280
274
|
args: [{
|
|
281
|
-
imports: [
|
|
282
|
-
|
|
283
|
-
]
|
|
284
|
-
declarations: [
|
|
285
|
-
DbxActionFormSafetyDirective
|
|
286
|
-
],
|
|
287
|
-
exports: [
|
|
288
|
-
DbxActionFormSafetyDirective
|
|
289
|
-
]
|
|
275
|
+
imports: [CommonModule],
|
|
276
|
+
declarations: [DbxActionFormSafetyDirective],
|
|
277
|
+
exports: [DbxActionFormSafetyDirective]
|
|
290
278
|
}]
|
|
291
279
|
}] });
|
|
292
280
|
|
|
293
281
|
class DbxFormActionModule {
|
|
294
282
|
}
|
|
295
283
|
DbxFormActionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
296
|
-
DbxFormActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, declarations: [DbxActionFormDirective], imports: [CommonModule,
|
|
297
|
-
|
|
298
|
-
DbxFormActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, imports: [[
|
|
299
|
-
CommonModule,
|
|
300
|
-
MatDialogModule
|
|
301
|
-
]] });
|
|
284
|
+
DbxFormActionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, declarations: [DbxActionFormDirective], imports: [CommonModule, MatDialogModule], exports: [DbxActionFormDirective] });
|
|
285
|
+
DbxFormActionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, imports: [[CommonModule, MatDialogModule]] });
|
|
302
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormActionModule, decorators: [{
|
|
303
287
|
type: NgModule,
|
|
304
288
|
args: [{
|
|
305
|
-
imports: [
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
],
|
|
309
|
-
declarations: [
|
|
310
|
-
DbxActionFormDirective
|
|
311
|
-
],
|
|
312
|
-
exports: [
|
|
313
|
-
DbxActionFormDirective
|
|
314
|
-
]
|
|
289
|
+
imports: [CommonModule, MatDialogModule],
|
|
290
|
+
declarations: [DbxActionFormDirective],
|
|
291
|
+
exports: [DbxActionFormDirective]
|
|
315
292
|
}]
|
|
316
293
|
}] });
|
|
317
294
|
|
|
318
295
|
function dbxFormSourceObservable(form, inputObs, mode$) {
|
|
319
296
|
const observable = asObservable(inputObs);
|
|
320
|
-
return combineLatest([
|
|
321
|
-
observable.pipe(distinctUntilChanged()),
|
|
322
|
-
mode$.pipe(distinctUntilChanged())
|
|
323
|
-
]).pipe(switchMap(([value, mode]) => form.stream$.pipe(
|
|
297
|
+
return combineLatest([observable.pipe(distinctUntilChanged()), mode$.pipe(distinctUntilChanged())]).pipe(switchMap(([value, mode]) => form.stream$.pipe(
|
|
324
298
|
// wait for the form to finish initializing.
|
|
325
299
|
filter((x) => x.state !== DbxFormState.INITIALIZING),
|
|
326
300
|
// if mode is reset, then filter out changes until the form is reset again.
|
|
327
|
-
filter((x) => (
|
|
301
|
+
filter((x) => (mode === 'reset' ? x.state === DbxFormState.RESET : true)), first(), map(() => value))));
|
|
328
302
|
}
|
|
329
303
|
/**
|
|
330
304
|
* Used with a FormComponent to set the value based on the input value.
|
|
@@ -445,7 +419,9 @@ class DbxFormValueChangesDirective extends AbstractSubscriptionDirective {
|
|
|
445
419
|
this.dbxFormValueChange = new EventEmitter();
|
|
446
420
|
}
|
|
447
421
|
ngOnInit() {
|
|
448
|
-
this.sub = this.form.stream
|
|
422
|
+
this.sub = this.form.stream$
|
|
423
|
+
.pipe(mergeMap((x) => this.form.getValue().pipe(first(), map((value) => ({ isComplete: x.isComplete, value })))), delay(0))
|
|
424
|
+
.subscribe(({ isComplete, value }) => {
|
|
449
425
|
if (isComplete) {
|
|
450
426
|
this.dbxFormValueChange.next(value);
|
|
451
427
|
}
|
|
@@ -477,50 +453,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
477
453
|
class DbxFormIoModule {
|
|
478
454
|
}
|
|
479
455
|
DbxFormIoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
480
|
-
DbxFormIoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, declarations: [DbxFormSourceDirective,
|
|
481
|
-
|
|
482
|
-
DbxFormLoadingSourceDirective], imports: [CommonModule], exports: [DbxFormSourceDirective,
|
|
483
|
-
DbxFormValueChangesDirective,
|
|
484
|
-
DbxFormLoadingSourceDirective] });
|
|
485
|
-
DbxFormIoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, imports: [[
|
|
486
|
-
CommonModule
|
|
487
|
-
]] });
|
|
456
|
+
DbxFormIoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, declarations: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective], imports: [CommonModule], exports: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective] });
|
|
457
|
+
DbxFormIoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, imports: [[CommonModule]] });
|
|
488
458
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormIoModule, decorators: [{
|
|
489
459
|
type: NgModule,
|
|
490
460
|
args: [{
|
|
491
|
-
imports: [
|
|
492
|
-
|
|
493
|
-
]
|
|
494
|
-
declarations: [
|
|
495
|
-
DbxFormSourceDirective,
|
|
496
|
-
DbxFormValueChangesDirective,
|
|
497
|
-
DbxFormLoadingSourceDirective
|
|
498
|
-
],
|
|
499
|
-
exports: [
|
|
500
|
-
DbxFormSourceDirective,
|
|
501
|
-
DbxFormValueChangesDirective,
|
|
502
|
-
DbxFormLoadingSourceDirective
|
|
503
|
-
]
|
|
461
|
+
imports: [CommonModule],
|
|
462
|
+
declarations: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective],
|
|
463
|
+
exports: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective]
|
|
504
464
|
}]
|
|
505
465
|
}] });
|
|
506
466
|
|
|
507
467
|
class DbxFormModule {
|
|
508
468
|
}
|
|
509
469
|
DbxFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
510
|
-
DbxFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, exports: [DbxFormActionTransitionModule,
|
|
511
|
-
|
|
512
|
-
DbxFormIoModule] });
|
|
513
|
-
DbxFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, imports: [DbxFormActionTransitionModule,
|
|
514
|
-
DbxFormActionModule,
|
|
515
|
-
DbxFormIoModule] });
|
|
470
|
+
DbxFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, exports: [DbxFormActionTransitionModule, DbxFormActionModule, DbxFormIoModule] });
|
|
471
|
+
DbxFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, imports: [DbxFormActionTransitionModule, DbxFormActionModule, DbxFormIoModule] });
|
|
516
472
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormModule, decorators: [{
|
|
517
473
|
type: NgModule,
|
|
518
474
|
args: [{
|
|
519
|
-
exports: [
|
|
520
|
-
DbxFormActionTransitionModule,
|
|
521
|
-
DbxFormActionModule,
|
|
522
|
-
DbxFormIoModule
|
|
523
|
-
]
|
|
475
|
+
exports: [DbxFormActionTransitionModule, DbxFormActionModule, DbxFormIoModule]
|
|
524
476
|
}]
|
|
525
477
|
}] });
|
|
526
478
|
|
|
@@ -589,8 +541,8 @@ class DbxChecklistItemFieldComponent extends FieldType {
|
|
|
589
541
|
super(...arguments);
|
|
590
542
|
this._displayContent = new BehaviorSubject(undefined);
|
|
591
543
|
this.displayContent$ = this._displayContent.pipe(switchMapMaybeObs(), distinctUntilChanged(), shareReplay(1));
|
|
592
|
-
this.anchor$ = this.displayContent$.pipe(map(x => x.anchor), shareReplay(1));
|
|
593
|
-
this.rippleDisabled$ = this.displayContent$.pipe(map(x => x.ripple === false || (x.ripple !== true && !x.anchor)), distinctUntilChanged(), shareReplay(1));
|
|
544
|
+
this.anchor$ = this.displayContent$.pipe(map((x) => x.anchor), shareReplay(1));
|
|
545
|
+
this.rippleDisabled$ = this.displayContent$.pipe(map((x) => x.ripple === false || (x.ripple !== true && !x.anchor)), distinctUntilChanged(), shareReplay(1));
|
|
594
546
|
}
|
|
595
547
|
get formGroup() {
|
|
596
548
|
return this.form;
|
|
@@ -653,12 +605,16 @@ class DbxChecklistItemContentComponent extends AbstractSubscriptionDirective {
|
|
|
653
605
|
}
|
|
654
606
|
}
|
|
655
607
|
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 });
|
|
656
|
-
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:
|
|
608
|
+
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: `
|
|
609
|
+
<dbx-injection [config]="config"></dbx-injection>
|
|
610
|
+
`, isInline: true, components: [{ type: i2.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
|
|
657
611
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxChecklistItemContentComponent, decorators: [{
|
|
658
612
|
type: Component,
|
|
659
613
|
args: [{
|
|
660
614
|
selector: 'dbx-checklist-item-content-component',
|
|
661
|
-
template:
|
|
615
|
+
template: `
|
|
616
|
+
<dbx-injection [config]="config"></dbx-injection>
|
|
617
|
+
`
|
|
662
618
|
}]
|
|
663
619
|
}], ctorParameters: function () { return [{ type: DbxChecklistItemFieldComponent }, { type: i0.ChangeDetectorRef }]; } });
|
|
664
620
|
|
|
@@ -677,8 +633,7 @@ DbxFormInfoWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
|
|
|
677
633
|
<ng-container #fieldComponent></ng-container>
|
|
678
634
|
</div>
|
|
679
635
|
<div class="dbx-form-info-wrapper-info" fxFlex="noshrink" fxLayout="column" fxLayoutAlign="center center">
|
|
680
|
-
<button mat-icon-button [attr.aria-label]="'show info button for ' + (to.label || 'section')"
|
|
681
|
-
(click)="onInfoClick()">
|
|
636
|
+
<button mat-icon-button [attr.aria-label]="'show info button for ' + (to.label || 'section')" (click)="onInfoClick()">
|
|
682
637
|
<mat-icon>info</mat-icon>
|
|
683
638
|
</button>
|
|
684
639
|
</div>
|
|
@@ -693,8 +648,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
693
648
|
<ng-container #fieldComponent></ng-container>
|
|
694
649
|
</div>
|
|
695
650
|
<div class="dbx-form-info-wrapper-info" fxFlex="noshrink" fxLayout="column" fxLayoutAlign="center center">
|
|
696
|
-
<button mat-icon-button [attr.aria-label]="'show info button for ' + (to.label || 'section')"
|
|
697
|
-
(click)="onInfoClick()">
|
|
651
|
+
<button mat-icon-button [attr.aria-label]="'show info button for ' + (to.label || 'section')" (click)="onInfoClick()">
|
|
698
652
|
<mat-icon>info</mat-icon>
|
|
699
653
|
</button>
|
|
700
654
|
</div>
|
|
@@ -772,17 +726,17 @@ class DbxFormSubsectionWrapperComponent extends FieldWrapper {
|
|
|
772
726
|
}
|
|
773
727
|
DbxFormSubsectionWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSubsectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
774
728
|
DbxFormSubsectionWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormSubsectionWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
729
|
+
<dbx-subsection [header]="header" [hint]="hint">
|
|
730
|
+
<ng-container #fieldComponent></ng-container>
|
|
731
|
+
</dbx-subsection>
|
|
778
732
|
`, isInline: true, components: [{ type: i1$1.DbxSubSectionComponent, selector: "dbx-subsection" }] });
|
|
779
733
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSubsectionWrapperComponent, decorators: [{
|
|
780
734
|
type: Component,
|
|
781
735
|
args: [{
|
|
782
736
|
template: `
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
737
|
+
<dbx-subsection [header]="header" [hint]="hint">
|
|
738
|
+
<ng-container #fieldComponent></ng-container>
|
|
739
|
+
</dbx-subsection>
|
|
786
740
|
`
|
|
787
741
|
}]
|
|
788
742
|
}] });
|
|
@@ -852,27 +806,27 @@ class DbxFormExpandWrapperComponent extends AbstractFormExpandableSectionWrapper
|
|
|
852
806
|
}
|
|
853
807
|
DbxFormExpandWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExpandWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
854
808
|
DbxFormExpandWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormExpandWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
809
|
+
<ng-container [ngSwitch]="show$ | async">
|
|
810
|
+
<ng-container *ngSwitchCase="true">
|
|
811
|
+
<ng-container #fieldComponent></ng-container>
|
|
812
|
+
</ng-container>
|
|
813
|
+
<ng-container *ngSwitchCase="false">
|
|
814
|
+
<span class="dbx-form-expandable-section-button" (click)="open()">{{ expandLabel }}</span>
|
|
815
|
+
</ng-container>
|
|
861
816
|
</ng-container>
|
|
862
|
-
</ng-container>
|
|
863
817
|
`, isInline: true, directives: [{ type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i5.AsyncPipe } });
|
|
864
818
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExpandWrapperComponent, decorators: [{
|
|
865
819
|
type: Component,
|
|
866
820
|
args: [{
|
|
867
821
|
template: `
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
822
|
+
<ng-container [ngSwitch]="show$ | async">
|
|
823
|
+
<ng-container *ngSwitchCase="true">
|
|
824
|
+
<ng-container #fieldComponent></ng-container>
|
|
825
|
+
</ng-container>
|
|
826
|
+
<ng-container *ngSwitchCase="false">
|
|
827
|
+
<span class="dbx-form-expandable-section-button" (click)="open()">{{ expandLabel }}</span>
|
|
828
|
+
</ng-container>
|
|
874
829
|
</ng-container>
|
|
875
|
-
</ng-container>
|
|
876
830
|
`
|
|
877
831
|
}]
|
|
878
832
|
}] });
|
|
@@ -891,11 +845,15 @@ class AutoTouchFieldWrapperComponent extends FieldWrapper {
|
|
|
891
845
|
}
|
|
892
846
|
}
|
|
893
847
|
AutoTouchFieldWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AutoTouchFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
894
|
-
AutoTouchFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AutoTouchFieldWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template:
|
|
848
|
+
AutoTouchFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AutoTouchFieldWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
849
|
+
<ng-container #fieldComponent></ng-container>
|
|
850
|
+
`, isInline: true });
|
|
895
851
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AutoTouchFieldWrapperComponent, decorators: [{
|
|
896
852
|
type: Component,
|
|
897
853
|
args: [{
|
|
898
|
-
template:
|
|
854
|
+
template: `
|
|
855
|
+
<ng-container #fieldComponent></ng-container>
|
|
856
|
+
`
|
|
899
857
|
}]
|
|
900
858
|
}] });
|
|
901
859
|
|
|
@@ -905,7 +863,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
905
863
|
class DbxFormToggleWrapperComponent extends AbstractFormExpandableSectionWrapperDirective {
|
|
906
864
|
constructor() {
|
|
907
865
|
super(...arguments);
|
|
908
|
-
this.slideLabel$ = this._toggleOpen.pipe(switchMap(x => {
|
|
866
|
+
this.slideLabel$ = this._toggleOpen.pipe(switchMap((x) => {
|
|
909
867
|
var _a, _b;
|
|
910
868
|
if ((_a = this.expandableSection) === null || _a === void 0 ? void 0 : _a.toggleLabelObs) {
|
|
911
869
|
return (_b = this.expandableSection) === null || _b === void 0 ? void 0 : _b.toggleLabelObs(x);
|
|
@@ -923,27 +881,27 @@ class DbxFormToggleWrapperComponent extends AbstractFormExpandableSectionWrapper
|
|
|
923
881
|
}
|
|
924
882
|
DbxFormToggleWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormToggleWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
925
883
|
DbxFormToggleWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormToggleWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
884
|
+
<div class="dbx-form-toggle-wrapper" [ngSwitch]="show$ | async">
|
|
885
|
+
<div class="dbx-form-toggle-wrapper-toggle">
|
|
886
|
+
<mat-slide-toggle [checked]="show$ | async" (toggleChange)="onToggleChange()">{{ slideLabel$ | async }}</mat-slide-toggle>
|
|
887
|
+
</div>
|
|
888
|
+
<ng-container *ngSwitchCase="true">
|
|
889
|
+
<ng-container #fieldComponent></ng-container>
|
|
890
|
+
</ng-container>
|
|
929
891
|
</div>
|
|
930
|
-
<ng-container *ngSwitchCase="true">
|
|
931
|
-
<ng-container #fieldComponent></ng-container>
|
|
932
|
-
</ng-container>
|
|
933
|
-
</div>
|
|
934
892
|
`, 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 } });
|
|
935
893
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormToggleWrapperComponent, decorators: [{
|
|
936
894
|
type: Component,
|
|
937
895
|
args: [{
|
|
938
896
|
template: `
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
897
|
+
<div class="dbx-form-toggle-wrapper" [ngSwitch]="show$ | async">
|
|
898
|
+
<div class="dbx-form-toggle-wrapper-toggle">
|
|
899
|
+
<mat-slide-toggle [checked]="show$ | async" (toggleChange)="onToggleChange()">{{ slideLabel$ | async }}</mat-slide-toggle>
|
|
900
|
+
</div>
|
|
901
|
+
<ng-container *ngSwitchCase="true">
|
|
902
|
+
<ng-container #fieldComponent></ng-container>
|
|
903
|
+
</ng-container>
|
|
942
904
|
</div>
|
|
943
|
-
<ng-container *ngSwitchCase="true">
|
|
944
|
-
<ng-container #fieldComponent></ng-container>
|
|
945
|
-
</ng-container>
|
|
946
|
-
</div>
|
|
947
905
|
`
|
|
948
906
|
}]
|
|
949
907
|
}] });
|
|
@@ -1028,15 +986,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
1028
986
|
class DbxFormFormlyWrapperModule {
|
|
1029
987
|
}
|
|
1030
988
|
DbxFormFormlyWrapperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1031
|
-
DbxFormFormlyWrapperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyWrapperModule, declarations: [AutoTouchFieldWrapperComponent,
|
|
1032
|
-
DbxFormSectionWrapperComponent,
|
|
1033
|
-
DbxFormSubsectionWrapperComponent,
|
|
1034
|
-
DbxFormInfoWrapperComponent,
|
|
1035
|
-
DbxFormExpandWrapperComponent,
|
|
1036
|
-
DbxFormToggleWrapperComponent,
|
|
1037
|
-
DbxFormFlexWrapperComponent,
|
|
1038
|
-
DbxFormStyleWrapperComponent,
|
|
1039
|
-
DbxFormWorkingWrapperComponent], imports: [CommonModule,
|
|
989
|
+
DbxFormFormlyWrapperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyWrapperModule, declarations: [AutoTouchFieldWrapperComponent, DbxFormSectionWrapperComponent, DbxFormSubsectionWrapperComponent, DbxFormInfoWrapperComponent, DbxFormExpandWrapperComponent, DbxFormToggleWrapperComponent, DbxFormFlexWrapperComponent, DbxFormStyleWrapperComponent, DbxFormWorkingWrapperComponent], imports: [CommonModule,
|
|
1040
990
|
DbxTextModule,
|
|
1041
991
|
DbxLoadingModule,
|
|
1042
992
|
DbxFlexLayoutModule,
|
|
@@ -1096,17 +1046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
1096
1046
|
]
|
|
1097
1047
|
})
|
|
1098
1048
|
],
|
|
1099
|
-
declarations: [
|
|
1100
|
-
AutoTouchFieldWrapperComponent,
|
|
1101
|
-
DbxFormSectionWrapperComponent,
|
|
1102
|
-
DbxFormSubsectionWrapperComponent,
|
|
1103
|
-
DbxFormInfoWrapperComponent,
|
|
1104
|
-
DbxFormExpandWrapperComponent,
|
|
1105
|
-
DbxFormToggleWrapperComponent,
|
|
1106
|
-
DbxFormFlexWrapperComponent,
|
|
1107
|
-
DbxFormStyleWrapperComponent,
|
|
1108
|
-
DbxFormWorkingWrapperComponent
|
|
1109
|
-
],
|
|
1049
|
+
declarations: [AutoTouchFieldWrapperComponent, DbxFormSectionWrapperComponent, DbxFormSubsectionWrapperComponent, DbxFormInfoWrapperComponent, DbxFormExpandWrapperComponent, DbxFormToggleWrapperComponent, DbxFormFlexWrapperComponent, DbxFormStyleWrapperComponent, DbxFormWorkingWrapperComponent],
|
|
1110
1050
|
exports: []
|
|
1111
1051
|
}]
|
|
1112
1052
|
}] });
|
|
@@ -1114,9 +1054,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
1114
1054
|
class DbxFormFormlyChecklistItemFieldModule {
|
|
1115
1055
|
}
|
|
1116
1056
|
DbxFormFormlyChecklistItemFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1117
|
-
DbxFormFormlyChecklistItemFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, declarations: [DbxChecklistItemFieldComponent,
|
|
1118
|
-
DbxChecklistItemContentComponent,
|
|
1119
|
-
DbxDefaultChecklistItemFieldDisplayComponent], imports: [CommonModule,
|
|
1057
|
+
DbxFormFormlyChecklistItemFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, declarations: [DbxChecklistItemFieldComponent, DbxChecklistItemContentComponent, DbxDefaultChecklistItemFieldDisplayComponent], imports: [CommonModule,
|
|
1120
1058
|
DbxTextModule,
|
|
1121
1059
|
FormsModule,
|
|
1122
1060
|
ReactiveFormsModule,
|
|
@@ -1140,9 +1078,7 @@ DbxFormFormlyChecklistItemFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVers
|
|
|
1140
1078
|
DbxInjectionComponentModule,
|
|
1141
1079
|
DbxFormFormlyWrapperModule,
|
|
1142
1080
|
FormlyModule.forChild({
|
|
1143
|
-
types: [
|
|
1144
|
-
{ name: 'checklistitem', component: DbxChecklistItemFieldComponent }
|
|
1145
|
-
]
|
|
1081
|
+
types: [{ name: 'checklistitem', component: DbxChecklistItemFieldComponent }]
|
|
1146
1082
|
})
|
|
1147
1083
|
], DbxFormFormlyWrapperModule] });
|
|
1148
1084
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, decorators: [{
|
|
@@ -1161,19 +1097,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
1161
1097
|
DbxInjectionComponentModule,
|
|
1162
1098
|
DbxFormFormlyWrapperModule,
|
|
1163
1099
|
FormlyModule.forChild({
|
|
1164
|
-
types: [
|
|
1165
|
-
{ name: 'checklistitem', component: DbxChecklistItemFieldComponent }
|
|
1166
|
-
]
|
|
1100
|
+
types: [{ name: 'checklistitem', component: DbxChecklistItemFieldComponent }]
|
|
1167
1101
|
})
|
|
1168
1102
|
],
|
|
1169
|
-
declarations: [
|
|
1170
|
-
|
|
1171
|
-
DbxChecklistItemContentComponent,
|
|
1172
|
-
DbxDefaultChecklistItemFieldDisplayComponent
|
|
1173
|
-
],
|
|
1174
|
-
exports: [
|
|
1175
|
-
DbxFormFormlyWrapperModule
|
|
1176
|
-
]
|
|
1103
|
+
declarations: [DbxChecklistItemFieldComponent, DbxChecklistItemContentComponent, DbxDefaultChecklistItemFieldDisplayComponent],
|
|
1104
|
+
exports: [DbxFormFormlyWrapperModule]
|
|
1177
1105
|
}]
|
|
1178
1106
|
}] });
|
|
1179
1107
|
|
|
@@ -1194,7 +1122,9 @@ function templateOptionsForFieldConfig(fieldConfig, override) {
|
|
|
1194
1122
|
};
|
|
1195
1123
|
}
|
|
1196
1124
|
function templateOptionsValueForFieldConfig(fieldConfig, override) {
|
|
1197
|
-
const { label, placeholder, required, readonly, description, autocomplete } = mergeObjects([fieldConfig, override], {
|
|
1125
|
+
const { label, placeholder, required, readonly, description, autocomplete } = mergeObjects([fieldConfig, override], {
|
|
1126
|
+
keysFilter: ['label', 'placeholder', 'required', 'readonly', 'description', 'autocomplete']
|
|
1127
|
+
});
|
|
1198
1128
|
const attributes = mergeObjects([fieldConfig.attributes, override === null || override === void 0 ? void 0 : override.attributes]);
|
|
1199
1129
|
const result = filterFromPOJO(Object.assign(Object.assign({}, override), { label,
|
|
1200
1130
|
placeholder,
|
|
@@ -1251,10 +1181,7 @@ class ChecklistItemFieldDataSetBuilder {
|
|
|
1251
1181
|
const currentField = this._assertFieldExists(key).field;
|
|
1252
1182
|
const mergedConfig = Object.assign(Object.assign(Object.assign({}, currentField), config), { key });
|
|
1253
1183
|
if (currentField.displayContentObs && config.displayContentObs) {
|
|
1254
|
-
mergedConfig.displayContentObs = combineLatest([
|
|
1255
|
-
currentField.displayContentObs,
|
|
1256
|
-
config.displayContentObs
|
|
1257
|
-
]).pipe(map(([a, b]) => {
|
|
1184
|
+
mergedConfig.displayContentObs = combineLatest([currentField.displayContentObs, config.displayContentObs]).pipe(map(([a, b]) => {
|
|
1258
1185
|
const result = Object.assign(Object.assign({}, a), b);
|
|
1259
1186
|
// console.log('A and b: ', a, b, result);
|
|
1260
1187
|
return result;
|
|
@@ -1340,9 +1267,7 @@ DbxFormFormlyComponentFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion:
|
|
|
1340
1267
|
CommonModule,
|
|
1341
1268
|
DbxInjectionComponentModule,
|
|
1342
1269
|
FormlyModule.forChild({
|
|
1343
|
-
types: [
|
|
1344
|
-
{ name: 'component', component: DbxFormComponentFieldComponent }
|
|
1345
|
-
]
|
|
1270
|
+
types: [{ name: 'component', component: DbxFormComponentFieldComponent }]
|
|
1346
1271
|
})
|
|
1347
1272
|
]] });
|
|
1348
1273
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyComponentFieldModule, decorators: [{
|
|
@@ -1352,17 +1277,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
1352
1277
|
CommonModule,
|
|
1353
1278
|
DbxInjectionComponentModule,
|
|
1354
1279
|
FormlyModule.forChild({
|
|
1355
|
-
types: [
|
|
1356
|
-
{ name: 'component', component: DbxFormComponentFieldComponent }
|
|
1357
|
-
]
|
|
1280
|
+
types: [{ name: 'component', component: DbxFormComponentFieldComponent }]
|
|
1358
1281
|
})
|
|
1359
1282
|
],
|
|
1360
|
-
declarations: [
|
|
1361
|
-
|
|
1362
|
-
],
|
|
1363
|
-
exports: [
|
|
1364
|
-
DbxFormComponentFieldComponent
|
|
1365
|
-
]
|
|
1283
|
+
declarations: [DbxFormComponentFieldComponent],
|
|
1284
|
+
exports: [DbxFormComponentFieldComponent]
|
|
1366
1285
|
}]
|
|
1367
1286
|
}] });
|
|
1368
1287
|
|
|
@@ -1386,8 +1305,8 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1386
1305
|
this.filterInputValue$ = this.inputCtrl.valueChanges.pipe(startWith(undefined));
|
|
1387
1306
|
this.filterInputValueString$ = this.filterInputValue$.pipe(debounceTime(200), distinctUntilChanged(), shareReplay(1));
|
|
1388
1307
|
this.loadResultsDisplayValuesState$ = this.formControl$.pipe(first(), switchMap(() => this.loadValuesFn().pipe(switchMap((x) => this.loadDisplayValuesForFieldValues(x)), startWithBeginLoading())), shareReplay(1));
|
|
1389
|
-
this._formControlValue = this.formControl$.pipe(switchMap(control => control.valueChanges.pipe(startWith(control.value), shareReplay(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 : []; }));
|
|
1308
|
+
this._formControlValue = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value), shareReplay(1))));
|
|
1309
|
+
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 : []; }));
|
|
1391
1310
|
/**
|
|
1392
1311
|
* Current values in the form control.
|
|
1393
1312
|
*/
|
|
@@ -1407,10 +1326,10 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1407
1326
|
}
|
|
1408
1327
|
});
|
|
1409
1328
|
if (valuesNotInDisplayMap.length) {
|
|
1410
|
-
return this.loadDisplayValuesForValues(valuesNotInDisplayMap).pipe(map(x => mapLoadingStateResults(x, {
|
|
1329
|
+
return this.loadDisplayValuesForValues(valuesNotInDisplayMap).pipe(map((x) => mapLoadingStateResults(x, {
|
|
1411
1330
|
mapValue: (loadedValues) => {
|
|
1412
|
-
loadedValues.forEach(x => { var _a; return x.isUnknown = (_a = x.isUnknown) !== null && _a !== void 0 ? _a : true; }); // Assign unknown flag.
|
|
1413
|
-
return
|
|
1331
|
+
loadedValues.forEach((x) => { var _a; return (x.isUnknown = (_a = x.isUnknown) !== null && _a !== void 0 ? _a : true); }); // Assign unknown flag.
|
|
1332
|
+
return [...displayValues, ...loadedValues];
|
|
1414
1333
|
}
|
|
1415
1334
|
})));
|
|
1416
1335
|
}
|
|
@@ -1421,27 +1340,27 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1421
1340
|
/**
|
|
1422
1341
|
* Results to be displayed if filtered.
|
|
1423
1342
|
*/
|
|
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, {
|
|
1343
|
+
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, {
|
|
1425
1344
|
mapValue: (displayValues) => {
|
|
1426
|
-
const valueHashSet = new Set(values.map(x => this.hashForValue(x)));
|
|
1427
|
-
return displayValues.filter(x => !x.isUnknown && valueHashSet.has(x._hash));
|
|
1345
|
+
const valueHashSet = new Set(values.map((x) => this.hashForValue(x)));
|
|
1346
|
+
return displayValues.filter((x) => !x.isUnknown && valueHashSet.has(x._hash));
|
|
1428
1347
|
}
|
|
1429
1348
|
})), startWithBeginLoading())))), shareReplay(1));
|
|
1430
|
-
this.filteredSearchResults$ = this.filteredSearchResultsState$.pipe(map(x => x === null || x === void 0 ? void 0 : x.value), filterMaybe(), shareReplay(1));
|
|
1349
|
+
this.filteredSearchResults$ = this.filteredSearchResultsState$.pipe(map((x) => x === null || x === void 0 ? void 0 : x.value), filterMaybe(), shareReplay(1));
|
|
1431
1350
|
this.items$ = combineLatest([this.filteredSearchResults$, this.values$]).pipe(map(([displayValues, values]) => {
|
|
1432
|
-
const selectedHashValuesSet = new Set(values.map(x => this.hashForValue(x)));
|
|
1351
|
+
const selectedHashValuesSet = new Set(values.map((x) => this.hashForValue(x)));
|
|
1433
1352
|
let items = displayValues.map((x) => ({ itemValue: x, selected: selectedHashValuesSet.has(x._hash) }));
|
|
1434
1353
|
if (this.sortItems) {
|
|
1435
1354
|
items = this.sortItems(items);
|
|
1436
1355
|
}
|
|
1437
1356
|
return items;
|
|
1438
1357
|
}), shareReplay(1));
|
|
1439
|
-
this.itemsLoadingState$ = this.loadResultsDisplayValues$.pipe(switchMap(() => this.items$.pipe(first(), map(x => successResult(x)), startWithBeginLoading(), shareReplay(1))));
|
|
1358
|
+
this.itemsLoadingState$ = this.loadResultsDisplayValues$.pipe(switchMap(() => this.items$.pipe(first(), map((x) => successResult(x)), startWithBeginLoading(), shareReplay(1))));
|
|
1440
1359
|
/**
|
|
1441
1360
|
* Context used for managing the loading of items, or when the current results change.
|
|
1442
1361
|
*/
|
|
1443
1362
|
this.context = new ListLoadingStateContextInstance({ obs: this.itemsLoadingState$, showLoadingOnNoValue: false });
|
|
1444
|
-
this.filterItemsLoadingState$ = this.items$.pipe(map(x => successResult(x)), startWithBeginLoading(), shareReplay(1));
|
|
1363
|
+
this.filterItemsLoadingState$ = this.items$.pipe(map((x) => successResult(x)), startWithBeginLoading(), shareReplay(1));
|
|
1445
1364
|
/**
|
|
1446
1365
|
* Context used for searching/filtering.
|
|
1447
1366
|
*/
|
|
@@ -1471,7 +1390,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1471
1390
|
}
|
|
1472
1391
|
get name() {
|
|
1473
1392
|
var _a, _b;
|
|
1474
|
-
return (_a = this.field.name) !== null && _a !== void 0 ? _a :
|
|
1393
|
+
return (_a = this.field.name) !== null && _a !== void 0 ? _a : camelCase((_b = this.label) !== null && _b !== void 0 ? _b : this.key);
|
|
1475
1394
|
}
|
|
1476
1395
|
get label() {
|
|
1477
1396
|
var _a;
|
|
@@ -1479,7 +1398,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1479
1398
|
}
|
|
1480
1399
|
get autocomplete() {
|
|
1481
1400
|
var _a, _b, _c;
|
|
1482
|
-
return ((_c = (
|
|
1401
|
+
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);
|
|
1483
1402
|
}
|
|
1484
1403
|
get changeSelectionModeToViewOnDisabled() {
|
|
1485
1404
|
var _a;
|
|
@@ -1500,7 +1419,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1500
1419
|
}
|
|
1501
1420
|
get filterValuesFn() {
|
|
1502
1421
|
var _a;
|
|
1503
|
-
return (_a = this.pickableField.filterValues) !== null && _a !== void 0 ? _a : ((_, x) => of(x.map(y => y.value)));
|
|
1422
|
+
return (_a = this.pickableField.filterValues) !== null && _a !== void 0 ? _a : ((_, x) => of(x.map((y) => y.value)));
|
|
1504
1423
|
}
|
|
1505
1424
|
get skipFilterFnOnEmpty() {
|
|
1506
1425
|
var _a;
|
|
@@ -1515,7 +1434,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1515
1434
|
result = this.filterValuesFn(filterText, values);
|
|
1516
1435
|
}
|
|
1517
1436
|
else {
|
|
1518
|
-
result = of(values.map(x => x.value));
|
|
1437
|
+
result = of(values.map((x) => x.value));
|
|
1519
1438
|
}
|
|
1520
1439
|
return result;
|
|
1521
1440
|
};
|
|
@@ -1547,40 +1466,40 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1547
1466
|
}
|
|
1548
1467
|
getDisplayValuesForFieldValues(values) {
|
|
1549
1468
|
return this._displayHashMap.pipe(mergeMap((displayMap) => {
|
|
1550
|
-
const mappingResult = values
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
const hasDisplay = mappingResult.filter(x => Boolean(x[3]));
|
|
1554
|
-
const needsDisplay = mappingResult.filter(x => !x[3]);
|
|
1469
|
+
const mappingResult = values.map((x) => [x, this.hashForValue(x.value)]).map(([x, hash], i) => [i, hash, x, displayMap.get(hash)]);
|
|
1470
|
+
const hasDisplay = mappingResult.filter((x) => Boolean(x[3]));
|
|
1471
|
+
const needsDisplay = mappingResult.filter((x) => !x[3]);
|
|
1555
1472
|
if (needsDisplay.length > 0) {
|
|
1556
1473
|
// Go get the display value.
|
|
1557
|
-
const displayValuesObs = this.displayForValue(needsDisplay.map(x => x[2]));
|
|
1474
|
+
const displayValuesObs = this.displayForValue(needsDisplay.map((x) => x[2]));
|
|
1558
1475
|
return displayValuesObs.pipe(first(), map((displayResults) => {
|
|
1559
1476
|
const displayResultsWithHash = displayResults.map((x) => {
|
|
1560
1477
|
x._hash = this.hashForValue(x.value);
|
|
1561
1478
|
return x;
|
|
1562
1479
|
});
|
|
1563
1480
|
// Create a map to re-join values later.
|
|
1564
|
-
const displayResultsMapping = displayResultsWithHash.map(x => [x, x._hash]);
|
|
1481
|
+
const displayResultsMapping = displayResultsWithHash.map((x) => [x, x._hash]);
|
|
1565
1482
|
const valueIndexHashMap = new Map(displayResultsMapping.map(([x, hash]) => [hash, x]));
|
|
1566
1483
|
// Update displayMap. No need to push an update notification.
|
|
1567
1484
|
displayResultsMapping.forEach(([x, hash]) => displayMap.set(hash, x));
|
|
1568
1485
|
// Zip values back together.
|
|
1569
|
-
const newDisplayValues = mappingResult.map(x => { var _a; return (_a = x[3]) !== null && _a !== void 0 ? _a : valueIndexHashMap.get(x[1]); });
|
|
1486
|
+
const newDisplayValues = mappingResult.map((x) => { var _a; return (_a = x[3]) !== null && _a !== void 0 ? _a : valueIndexHashMap.get(x[1]); });
|
|
1570
1487
|
// Return display values.
|
|
1571
1488
|
return newDisplayValues;
|
|
1572
1489
|
}));
|
|
1573
1490
|
}
|
|
1574
1491
|
else {
|
|
1575
1492
|
// If all display values are hashed return that.
|
|
1576
|
-
return of(hasDisplay.map(x => x[3]));
|
|
1493
|
+
return of(hasDisplay.map((x) => x[3]));
|
|
1577
1494
|
}
|
|
1578
1495
|
}));
|
|
1579
1496
|
}
|
|
1580
1497
|
ngOnInit() {
|
|
1581
1498
|
this._formControlObs.next(this.formControl);
|
|
1582
1499
|
// Focus after finished loading for the first time.
|
|
1583
|
-
this.context.loading
|
|
1500
|
+
this.context.loading$
|
|
1501
|
+
.pipe(delay(10), filter((x) => x), first())
|
|
1502
|
+
.subscribe(() => {
|
|
1584
1503
|
var _a;
|
|
1585
1504
|
(_a = this.filterMatInput) === null || _a === void 0 ? void 0 : _a.focus();
|
|
1586
1505
|
});
|
|
@@ -1592,7 +1511,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1592
1511
|
this.filterResultsContext.destroy();
|
|
1593
1512
|
}
|
|
1594
1513
|
_getValueOnFormControl(valueOnFormControl) {
|
|
1595
|
-
const value =
|
|
1514
|
+
const value = valueOnFormControl != null ? [].concat(valueOnFormControl) : []; // Always return an array.
|
|
1596
1515
|
return value;
|
|
1597
1516
|
}
|
|
1598
1517
|
addValue(value) {
|
|
@@ -1600,7 +1519,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1600
1519
|
}
|
|
1601
1520
|
removeValue(value) {
|
|
1602
1521
|
const hashToFilter = this.hashForValue(value);
|
|
1603
|
-
const values = this.values.filter(x => this.hashForValue(x) !== hashToFilter);
|
|
1522
|
+
const values = this.values.filter((x) => this.hashForValue(x) !== hashToFilter);
|
|
1604
1523
|
this.setValues(values);
|
|
1605
1524
|
}
|
|
1606
1525
|
setValues(values) {
|
|
@@ -1609,7 +1528,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1609
1528
|
values = findUnique(values, this.hashForValue);
|
|
1610
1529
|
}
|
|
1611
1530
|
if (!this.multiSelect) {
|
|
1612
|
-
values = [values[0]].filter(x => x != null);
|
|
1531
|
+
values = [values[0]].filter((x) => x != null);
|
|
1613
1532
|
}
|
|
1614
1533
|
this._setValueOnFormControl(values);
|
|
1615
1534
|
}
|
|
@@ -1617,7 +1536,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
|
|
|
1617
1536
|
_setValueOnFormControl(values) {
|
|
1618
1537
|
let newValue = values;
|
|
1619
1538
|
if (!this.asArrayValue) {
|
|
1620
|
-
newValue = [values[0]].filter(x => x != null)[0];
|
|
1539
|
+
newValue = [values[0]].filter((x) => x != null)[0];
|
|
1621
1540
|
}
|
|
1622
1541
|
this.formControl.setValue(newValue);
|
|
1623
1542
|
this.formControl.markAsTouched();
|
|
@@ -1649,10 +1568,10 @@ class DbxPickableChipListFieldComponent extends AbstractDbxPickableItemFieldDire
|
|
|
1649
1568
|
}
|
|
1650
1569
|
}
|
|
1651
1570
|
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\"
|
|
1571
|
+
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\" [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 [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
1572
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableChipListFieldComponent, decorators: [{
|
|
1654
1573
|
type: Component,
|
|
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\"
|
|
1574
|
+
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\" [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 [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" }]
|
|
1656
1575
|
}] });
|
|
1657
1576
|
|
|
1658
1577
|
/**
|
|
@@ -1661,15 +1580,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
1661
1580
|
class DbxPickableListFieldComponent extends AbstractDbxPickableItemFieldDirective {
|
|
1662
1581
|
onSelectionChange(event) {
|
|
1663
1582
|
const items = event.items;
|
|
1664
|
-
const values = items.map(x => x.itemValue.value);
|
|
1583
|
+
const values = items.map((x) => x.itemValue.value);
|
|
1665
1584
|
this.setValues(values);
|
|
1666
1585
|
}
|
|
1667
1586
|
}
|
|
1668
1587
|
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$\"
|
|
1588
|
+
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$\" (selectionChange)=\"onSelectionChange($event)\"></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 [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
1589
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldComponent, decorators: [{
|
|
1671
1590
|
type: Component,
|
|
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$\"
|
|
1591
|
+
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$\" (selectionChange)=\"onSelectionChange($event)\"></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 [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" }]
|
|
1673
1592
|
}] });
|
|
1674
1593
|
// MARK: Selection List
|
|
1675
1594
|
class DbxPickableListFieldItemListComponent extends AbstractDbxSelectionListWrapperDirective {
|
|
@@ -1695,12 +1614,13 @@ class DbxPickableListFieldItemListViewComponent extends AbstractDbxSelectionList
|
|
|
1695
1614
|
constructor(dbxPickableListFieldComponent) {
|
|
1696
1615
|
super();
|
|
1697
1616
|
this.dbxPickableListFieldComponent = dbxPickableListFieldComponent;
|
|
1617
|
+
// TODO: any belongs here for now, but item list typings need to be updated.
|
|
1698
1618
|
this.config = {
|
|
1699
1619
|
componentClass: DbxPickableListFieldItemListViewItemComponent
|
|
1700
1620
|
};
|
|
1701
1621
|
this.items$ = this.values$.pipe(
|
|
1702
1622
|
// NOTE: This causes the "value" to be a PickableValueFieldDisplayValue<T>, which means we emit PickableValueFieldDisplayValue<T> to DbxPickableListFieldComponent.
|
|
1703
|
-
map(x => addConfigToValueListItems(this.config, x)), shareReplay(1));
|
|
1623
|
+
map((x) => addConfigToValueListItems(this.config, x)), shareReplay(1));
|
|
1704
1624
|
}
|
|
1705
1625
|
get multiple() {
|
|
1706
1626
|
return this.dbxPickableListFieldComponent.multiSelect;
|
|
@@ -1714,11 +1634,15 @@ class DbxPickableListFieldItemListViewComponent extends AbstractDbxSelectionList
|
|
|
1714
1634
|
}
|
|
1715
1635
|
}
|
|
1716
1636
|
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:
|
|
1637
|
+
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: `
|
|
1638
|
+
<dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>
|
|
1639
|
+
`, isInline: true, components: [{ type: i1$1.DbxSelectionValueListItemViewComponent, selector: "dbx-selection-list-view-content", inputs: ["multiple", "selectionMode"] }], pipes: { "async": i5.AsyncPipe } });
|
|
1718
1640
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, decorators: [{
|
|
1719
1641
|
type: Component,
|
|
1720
1642
|
args: [{
|
|
1721
|
-
template:
|
|
1643
|
+
template: `
|
|
1644
|
+
<dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>
|
|
1645
|
+
`,
|
|
1722
1646
|
providers: provideDbxListView(DbxPickableListFieldItemListViewComponent)
|
|
1723
1647
|
}]
|
|
1724
1648
|
}], ctorParameters: function () { return [{ type: DbxPickableListFieldComponent }]; } });
|
|
@@ -1743,11 +1667,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
1743
1667
|
class DbxFormFormlyPickableFieldModule {
|
|
1744
1668
|
}
|
|
1745
1669
|
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,
|
|
1747
|
-
DbxPickableListFieldComponent,
|
|
1748
|
-
DbxPickableListFieldItemListComponent,
|
|
1749
|
-
DbxPickableListFieldItemListViewComponent,
|
|
1750
|
-
DbxPickableListFieldItemListViewItemComponent], imports: [CommonModule,
|
|
1670
|
+
DbxFormFormlyPickableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPickableFieldModule, declarations: [DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent], imports: [CommonModule,
|
|
1751
1671
|
DbxTextModule,
|
|
1752
1672
|
DbxLoadingModule,
|
|
1753
1673
|
DbxButtonModule,
|
|
@@ -1785,7 +1705,7 @@ DbxFormFormlyPickableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion:
|
|
|
1785
1705
|
FormlyModule.forChild({
|
|
1786
1706
|
types: [
|
|
1787
1707
|
{ name: 'pickablechipfield', component: DbxPickableChipListFieldComponent, wrappers: ['form-field'] },
|
|
1788
|
-
{ name: 'pickablelistfield', component: DbxPickableListFieldComponent, wrappers: ['form-field'] }
|
|
1708
|
+
{ name: 'pickablelistfield', component: DbxPickableListFieldComponent, wrappers: ['form-field'] }
|
|
1789
1709
|
]
|
|
1790
1710
|
})
|
|
1791
1711
|
]] });
|
|
@@ -1813,17 +1733,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
1813
1733
|
FormlyModule.forChild({
|
|
1814
1734
|
types: [
|
|
1815
1735
|
{ name: 'pickablechipfield', component: DbxPickableChipListFieldComponent, wrappers: ['form-field'] },
|
|
1816
|
-
{ name: 'pickablelistfield', component: DbxPickableListFieldComponent, wrappers: ['form-field'] }
|
|
1736
|
+
{ name: 'pickablelistfield', component: DbxPickableListFieldComponent, wrappers: ['form-field'] }
|
|
1817
1737
|
]
|
|
1818
1738
|
})
|
|
1819
1739
|
],
|
|
1820
|
-
declarations: [
|
|
1821
|
-
DbxPickableChipListFieldComponent,
|
|
1822
|
-
DbxPickableListFieldComponent,
|
|
1823
|
-
DbxPickableListFieldItemListComponent,
|
|
1824
|
-
DbxPickableListFieldItemListViewComponent,
|
|
1825
|
-
DbxPickableListFieldItemListViewItemComponent
|
|
1826
|
-
],
|
|
1740
|
+
declarations: [DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent],
|
|
1827
1741
|
exports: []
|
|
1828
1742
|
}]
|
|
1829
1743
|
}] });
|
|
@@ -1832,12 +1746,12 @@ function filterPickableItemFieldValuesByLabel(filterText, values) {
|
|
|
1832
1746
|
let filteredValues;
|
|
1833
1747
|
if (filterText) {
|
|
1834
1748
|
const searchString = filterText.toLocaleLowerCase();
|
|
1835
|
-
filteredValues = values.filter(x => x.label.toLocaleLowerCase().indexOf(searchString) !== -1);
|
|
1749
|
+
filteredValues = values.filter((x) => x.label.toLocaleLowerCase().indexOf(searchString) !== -1);
|
|
1836
1750
|
}
|
|
1837
1751
|
else {
|
|
1838
1752
|
filteredValues = values;
|
|
1839
1753
|
}
|
|
1840
|
-
return of(filteredValues.map(x => x.value));
|
|
1754
|
+
return of(filteredValues.map((x) => x.value));
|
|
1841
1755
|
}
|
|
1842
1756
|
function sortPickableItemsByLabel(chips) {
|
|
1843
1757
|
return chips.sort((a, b) => a.itemValue.label.localeCompare(b.itemValue.label));
|
|
@@ -1860,14 +1774,16 @@ class DbxSearchableFieldAutocompleteItemComponent {
|
|
|
1860
1774
|
constructor() {
|
|
1861
1775
|
this._displayValue = new BehaviorSubject(undefined);
|
|
1862
1776
|
this.displayValue$ = this._displayValue.pipe(filterMaybe(), shareReplay(1));
|
|
1863
|
-
this.config$ = this.displayValue$.pipe(map(x => {
|
|
1864
|
-
const config = Object.assign(Object.assign({}, x.display), { providers: mergeIntoArray([
|
|
1777
|
+
this.config$ = this.displayValue$.pipe(map((x) => {
|
|
1778
|
+
const config = Object.assign(Object.assign({}, x.display), { providers: mergeIntoArray([
|
|
1779
|
+
{
|
|
1865
1780
|
provide: DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN,
|
|
1866
1781
|
useValue: x
|
|
1867
|
-
}
|
|
1782
|
+
}
|
|
1783
|
+
], x.display.providers) });
|
|
1868
1784
|
return config;
|
|
1869
1785
|
}));
|
|
1870
|
-
this.anchor$ = this.displayValue$.pipe(map(x => x.anchor));
|
|
1786
|
+
this.anchor$ = this.displayValue$.pipe(map((x) => x.anchor));
|
|
1871
1787
|
}
|
|
1872
1788
|
set displayValue(displayValue) {
|
|
1873
1789
|
this._displayValue.next(displayValue);
|
|
@@ -1915,20 +1831,20 @@ class DbxDefaultSearchableFieldDisplayComponent extends AbstractDbxSearchableFie
|
|
|
1915
1831
|
}
|
|
1916
1832
|
DbxDefaultSearchableFieldDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1917
1833
|
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: `
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1834
|
+
<div class="dbx-default-searchable-field-display">
|
|
1835
|
+
<span class="dbx-chip-label">{{ displayValue.label }}</span>
|
|
1836
|
+
<span class="dbx-chip-sublabel" *ngIf="displayValue.sublabel">({{ displayValue.sublabel }})</span>
|
|
1837
|
+
</div>
|
|
1922
1838
|
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1923
1839
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, decorators: [{
|
|
1924
1840
|
type: Component,
|
|
1925
1841
|
args: [{
|
|
1926
1842
|
selector: 'dbx-default-searchable-field-display',
|
|
1927
1843
|
template: `
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1844
|
+
<div class="dbx-default-searchable-field-display">
|
|
1845
|
+
<span class="dbx-chip-label">{{ displayValue.label }}</span>
|
|
1846
|
+
<span class="dbx-chip-sublabel" *ngIf="displayValue.sublabel">({{ displayValue.sublabel }})</span>
|
|
1847
|
+
</div>
|
|
1932
1848
|
`
|
|
1933
1849
|
}]
|
|
1934
1850
|
}] });
|
|
@@ -1952,20 +1868,20 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
|
|
|
1952
1868
|
this._displayHashMap = new BehaviorSubject(new Map());
|
|
1953
1869
|
this.inputValue$ = this.inputCtrl.valueChanges.pipe(startWith(this.inputCtrl.value));
|
|
1954
1870
|
this.inputValueString$ = this.inputValue$.pipe(debounceTime(200), distinctUntilChanged());
|
|
1955
|
-
this.searchResultsState$ = this.inputValueString$.pipe(switchMap((text) => (
|
|
1871
|
+
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)),
|
|
1956
1872
|
// Return begin loading to setup the loading state.
|
|
1957
1873
|
startWithBeginLoading())), shareReplay(1));
|
|
1958
1874
|
this.singleValueSyncSubscription = new SubscriptionObject();
|
|
1959
1875
|
this.searchContext = new LoadingStateContextInstance({ obs: this.searchResultsState$, showLoadingOnNoValue: false });
|
|
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))));
|
|
1876
|
+
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 : []; }));
|
|
1877
|
+
this._formControlValue = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value), shareReplay(1))));
|
|
1962
1878
|
this.values$ = this._formControlValue.pipe(map(convertMaybeToArray), shareReplay(1));
|
|
1963
1879
|
this.displayValuesState$ = this.values$.pipe(distinctUntilChanged(), switchMap((values) => this.loadDisplayValuesForValues(values)), shareReplay(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 : []; }));
|
|
1880
|
+
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 : []; }));
|
|
1965
1881
|
}
|
|
1966
1882
|
get name() {
|
|
1967
1883
|
var _a, _b;
|
|
1968
|
-
return (_a = this.field.name) !== null && _a !== void 0 ? _a :
|
|
1884
|
+
return (_a = this.field.name) !== null && _a !== void 0 ? _a : camelCase((_b = this.label) !== null && _b !== void 0 ? _b : this.key);
|
|
1969
1885
|
}
|
|
1970
1886
|
get label() {
|
|
1971
1887
|
var _a;
|
|
@@ -2028,20 +1944,18 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
|
|
|
2028
1944
|
}
|
|
2029
1945
|
getDisplayValuesForFieldValues(values) {
|
|
2030
1946
|
return this._displayHashMap.pipe(mergeMap((displayMap) => {
|
|
2031
|
-
const mappingResult = values
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
const hasDisplay = mappingResult.filter(x => Boolean(x[3]));
|
|
2035
|
-
const needsDisplay = mappingResult.filter(x => !x[3]);
|
|
1947
|
+
const mappingResult = values.map((x) => [x, this.hashForValue(x.value)]).map(([x, hash], i) => [i, hash, x, displayMap.get(hash)]);
|
|
1948
|
+
const hasDisplay = mappingResult.filter((x) => Boolean(x[3]));
|
|
1949
|
+
const needsDisplay = mappingResult.filter((x) => !x[3]);
|
|
2036
1950
|
let obs;
|
|
2037
1951
|
if (needsDisplay.length > 0) {
|
|
2038
1952
|
// Go get the display value.
|
|
2039
|
-
const displayValuesObs = this.displayForValue(needsDisplay.map(x => x[2]));
|
|
1953
|
+
const displayValuesObs = this.displayForValue(needsDisplay.map((x) => x[2]));
|
|
2040
1954
|
const defaultDisplay = mergeDbxInjectionComponentConfigs([this.defaultDisplay, this.display]);
|
|
2041
1955
|
const anchorForValue = this.useAnchor && this.anchorForValue;
|
|
2042
1956
|
obs = displayValuesObs.pipe(first(), map((displayResults) => {
|
|
2043
1957
|
// Assign the default component classes to complete configuration.
|
|
2044
|
-
displayResults.forEach(x => {
|
|
1958
|
+
displayResults.forEach((x) => {
|
|
2045
1959
|
if (!x.display) {
|
|
2046
1960
|
x.display = defaultDisplay;
|
|
2047
1961
|
}
|
|
@@ -2053,19 +1967,19 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
|
|
|
2053
1967
|
}
|
|
2054
1968
|
});
|
|
2055
1969
|
// Create a map to re-join values later.
|
|
2056
|
-
const displayResultsMapping = displayResults.map(x => [x, this.hashForValue(x.value)]);
|
|
1970
|
+
const displayResultsMapping = displayResults.map((x) => [x, this.hashForValue(x.value)]);
|
|
2057
1971
|
const valueIndexHashMap = new Map(displayResultsMapping.map(([x, hash]) => [hash, x]));
|
|
2058
1972
|
// Update displayMap. No need to push an update notification.
|
|
2059
1973
|
displayResultsMapping.forEach(([x, hash]) => displayMap.set(hash, x));
|
|
2060
1974
|
// Zip values back together.
|
|
2061
|
-
const newDisplayValues = mappingResult.map(x => { var _a; return (_a = x[3]) !== null && _a !== void 0 ? _a : valueIndexHashMap.get(x[1]); });
|
|
1975
|
+
const newDisplayValues = mappingResult.map((x) => { var _a; return (_a = x[3]) !== null && _a !== void 0 ? _a : valueIndexHashMap.get(x[1]); });
|
|
2062
1976
|
// Return display values.
|
|
2063
1977
|
return newDisplayValues;
|
|
2064
1978
|
}));
|
|
2065
1979
|
}
|
|
2066
1980
|
else {
|
|
2067
1981
|
// If all display values are hashed return that.
|
|
2068
|
-
obs = of(hasDisplay.map(x => x[3]));
|
|
1982
|
+
obs = of(hasDisplay.map((x) => x[3]));
|
|
2069
1983
|
}
|
|
2070
1984
|
return obs;
|
|
2071
1985
|
}));
|
|
@@ -2114,7 +2028,7 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
|
|
|
2114
2028
|
return;
|
|
2115
2029
|
}
|
|
2116
2030
|
if (text) {
|
|
2117
|
-
const value =
|
|
2031
|
+
const value = this.convertStringValue ? this.convertStringValue(text) : text;
|
|
2118
2032
|
this.addValue(value);
|
|
2119
2033
|
}
|
|
2120
2034
|
}
|
|
@@ -2144,10 +2058,10 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
|
|
|
2144
2058
|
let values;
|
|
2145
2059
|
if (this.hashForValue) {
|
|
2146
2060
|
const hashToFilter = this.hashForValue(value);
|
|
2147
|
-
values = this.values.filter(x => this.hashForValue(x) !== hashToFilter);
|
|
2061
|
+
values = this.values.filter((x) => this.hashForValue(x) !== hashToFilter);
|
|
2148
2062
|
}
|
|
2149
2063
|
else {
|
|
2150
|
-
values = this.values.filter(x => x !== value);
|
|
2064
|
+
values = this.values.filter((x) => x !== value);
|
|
2151
2065
|
}
|
|
2152
2066
|
this.setValues(values);
|
|
2153
2067
|
}
|
|
@@ -2163,11 +2077,11 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
|
|
|
2163
2077
|
}
|
|
2164
2078
|
// MARK: Internal
|
|
2165
2079
|
_getValueOnFormControl(valueOnFormControl) {
|
|
2166
|
-
const value =
|
|
2080
|
+
const value = valueOnFormControl != null ? [].concat(valueOnFormControl) : []; // Always return an array.
|
|
2167
2081
|
return value;
|
|
2168
2082
|
}
|
|
2169
2083
|
_setValueOnFormControl(values) {
|
|
2170
|
-
const value =
|
|
2084
|
+
const value = this.multiSelect ? values : lastValue(values); // pick last value, as the last value added is the newest value.
|
|
2171
2085
|
this.formControl.setValue(value);
|
|
2172
2086
|
this.formControl.markAsDirty();
|
|
2173
2087
|
this.formControl.markAsTouched();
|
|
@@ -2225,10 +2139,10 @@ class DbxSearchableChipFieldComponent extends AbstractDbxSearchableValueFieldDir
|
|
|
2225
2139
|
}
|
|
2226
2140
|
}
|
|
2227
2141
|
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\"
|
|
2142
|
+
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\" (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\" autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\" [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\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of searchResults$ | async\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></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
2143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableChipFieldComponent, decorators: [{
|
|
2230
2144
|
type: Component,
|
|
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\"
|
|
2145
|
+
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\" (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\" autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\" [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\" (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of searchResults$ | async\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n</mat-autocomplete>\n" }]
|
|
2232
2146
|
}] });
|
|
2233
2147
|
|
|
2234
2148
|
/**
|
|
@@ -2245,7 +2159,8 @@ function makeMetaFilterSearchableFieldValueDisplayFn({ loadMetaForValues, makeDi
|
|
|
2245
2159
|
const loadingResult = loadMetaForValues(needLoading);
|
|
2246
2160
|
allValues = loadingResult.pipe(map((result) => {
|
|
2247
2161
|
const resultMap = arrayToMap(result, (x) => x.value);
|
|
2248
|
-
const mergedWithLoad = needLoading
|
|
2162
|
+
const mergedWithLoad = needLoading
|
|
2163
|
+
.map((x) => {
|
|
2249
2164
|
var _a;
|
|
2250
2165
|
const id = x.value;
|
|
2251
2166
|
const loadedItem = resultMap.get(id);
|
|
@@ -2253,7 +2168,8 @@ function makeMetaFilterSearchableFieldValueDisplayFn({ loadMetaForValues, makeDi
|
|
|
2253
2168
|
const meta = loadedItem === null || loadedItem === void 0 ? void 0 : loadedItem.meta;
|
|
2254
2169
|
return Object.assign(Object.assign({}, x), { anchor,
|
|
2255
2170
|
meta });
|
|
2256
|
-
})
|
|
2171
|
+
})
|
|
2172
|
+
.filter((x) => !x.meta);
|
|
2257
2173
|
return mergedWithLoad;
|
|
2258
2174
|
}), map((result) => [...loaded, ...result]));
|
|
2259
2175
|
}
|
|
@@ -2286,9 +2202,9 @@ function searchableTextField(config) {
|
|
|
2286
2202
|
class DbxSearchableTextFieldComponent extends AbstractDbxSearchableValueFieldDirective {
|
|
2287
2203
|
constructor() {
|
|
2288
2204
|
super(...arguments);
|
|
2289
|
-
this.selectedDisplayValue$ = this.displayValues$.pipe(map(x => x[0]), shareReplay(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), tapDetectChanges(this.cdRef));
|
|
2205
|
+
this.selectedDisplayValue$ = this.displayValues$.pipe(map((x) => x[0]), shareReplay(1), tapDetectChanges(this.cdRef));
|
|
2206
|
+
this.hasValue$ = this.selectedDisplayValue$.pipe(map((x) => Boolean(x)));
|
|
2207
|
+
this.showSelectedDisplayValue$ = this.selectedDisplayValue$.pipe(map((x) => this.showSelectedValue && Boolean(x)), distinctUntilChanged(), shareReplay(1), tapDetectChanges(this.cdRef));
|
|
2292
2208
|
this.multiSelect = false;
|
|
2293
2209
|
this._clearInputSub = new SubscriptionObject();
|
|
2294
2210
|
}
|
|
@@ -2316,19 +2232,16 @@ class DbxSearchableTextFieldComponent extends AbstractDbxSearchableValueFieldDir
|
|
|
2316
2232
|
}
|
|
2317
2233
|
}
|
|
2318
2234
|
DbxSearchableTextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableTextFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2319
|
-
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\"
|
|
2235
|
+
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\" [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)!\"></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\" [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\"></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 } });
|
|
2320
2236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxSearchableTextFieldComponent, decorators: [{
|
|
2321
2237
|
type: Component,
|
|
2322
|
-
args: [{ template: "<div class=\"dbx-searchable-text-field\"
|
|
2238
|
+
args: [{ template: "<div class=\"dbx-searchable-text-field\" [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)!\"></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\" [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\"></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" }]
|
|
2323
2239
|
}] });
|
|
2324
2240
|
|
|
2325
2241
|
class DbxFormFormlySearchableFieldModule {
|
|
2326
2242
|
}
|
|
2327
2243
|
DbxFormFormlySearchableFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySearchableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2328
|
-
DbxFormFormlySearchableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySearchableFieldModule, declarations: [DbxSearchableChipFieldComponent,
|
|
2329
|
-
DbxSearchableTextFieldComponent,
|
|
2330
|
-
DbxSearchableFieldAutocompleteItemComponent,
|
|
2331
|
-
DbxDefaultSearchableFieldDisplayComponent], imports: [CommonModule,
|
|
2244
|
+
DbxFormFormlySearchableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySearchableFieldModule, declarations: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxDefaultSearchableFieldDisplayComponent], imports: [CommonModule,
|
|
2332
2245
|
DbxTextModule,
|
|
2333
2246
|
DbxLoadingModule,
|
|
2334
2247
|
DbxButtonModule,
|
|
@@ -2343,8 +2256,7 @@ DbxFormFormlySearchableFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion
|
|
|
2343
2256
|
DbxRouterAnchorModule,
|
|
2344
2257
|
MatChipsModule,
|
|
2345
2258
|
MatIconModule,
|
|
2346
|
-
DbxInjectionComponentModule, i1$4.FormlyModule], exports: [DbxSearchableChipFieldComponent,
|
|
2347
|
-
DbxSearchableTextFieldComponent] });
|
|
2259
|
+
DbxInjectionComponentModule, i1$4.FormlyModule], exports: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent] });
|
|
2348
2260
|
DbxFormFormlySearchableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySearchableFieldModule, imports: [[
|
|
2349
2261
|
CommonModule,
|
|
2350
2262
|
DbxTextModule,
|
|
@@ -2365,7 +2277,7 @@ DbxFormFormlySearchableFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion
|
|
|
2365
2277
|
FormlyModule.forChild({
|
|
2366
2278
|
types: [
|
|
2367
2279
|
{ name: 'searchablechipfield', component: DbxSearchableChipFieldComponent, wrappers: ['form-field'] },
|
|
2368
|
-
{ name: 'searchabletextfield', component: DbxSearchableTextFieldComponent, wrappers: ['form-field'] }
|
|
2280
|
+
{ name: 'searchabletextfield', component: DbxSearchableTextFieldComponent, wrappers: ['form-field'] }
|
|
2369
2281
|
]
|
|
2370
2282
|
})
|
|
2371
2283
|
]] });
|
|
@@ -2392,50 +2304,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
2392
2304
|
FormlyModule.forChild({
|
|
2393
2305
|
types: [
|
|
2394
2306
|
{ name: 'searchablechipfield', component: DbxSearchableChipFieldComponent, wrappers: ['form-field'] },
|
|
2395
|
-
{ name: 'searchabletextfield', component: DbxSearchableTextFieldComponent, wrappers: ['form-field'] }
|
|
2307
|
+
{ name: 'searchabletextfield', component: DbxSearchableTextFieldComponent, wrappers: ['form-field'] }
|
|
2396
2308
|
]
|
|
2397
2309
|
})
|
|
2398
2310
|
],
|
|
2399
|
-
declarations: [
|
|
2400
|
-
|
|
2401
|
-
DbxSearchableTextFieldComponent,
|
|
2402
|
-
DbxSearchableFieldAutocompleteItemComponent,
|
|
2403
|
-
DbxDefaultSearchableFieldDisplayComponent
|
|
2404
|
-
],
|
|
2405
|
-
exports: [
|
|
2406
|
-
DbxSearchableChipFieldComponent,
|
|
2407
|
-
DbxSearchableTextFieldComponent
|
|
2408
|
-
]
|
|
2311
|
+
declarations: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxDefaultSearchableFieldDisplayComponent],
|
|
2312
|
+
exports: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent]
|
|
2409
2313
|
}]
|
|
2410
2314
|
}] });
|
|
2411
2315
|
|
|
2412
2316
|
function chipTextField(config) {
|
|
2413
|
-
const convertStringValue =
|
|
2317
|
+
const convertStringValue = config.caseSensitive ? (x) => x : (x) => x === null || x === void 0 ? void 0 : x.toLowerCase();
|
|
2414
2318
|
return formlyField(Object.assign(Object.assign({ type: 'searchablechipfield', allowStringValues: true, convertStringValue }, config), { displayForValue: (values) => {
|
|
2415
|
-
return of(values.map(x => (Object.assign(Object.assign({}, x), { label: x.value }))));
|
|
2319
|
+
return of(values.map((x) => (Object.assign(Object.assign({}, x), { label: x.value }))));
|
|
2416
2320
|
} }));
|
|
2417
2321
|
}
|
|
2418
2322
|
|
|
2419
2323
|
class DbxFormFormlySelectionModule {
|
|
2420
2324
|
}
|
|
2421
2325
|
DbxFormFormlySelectionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2422
|
-
DbxFormFormlySelectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [CommonModule], exports: [DbxFormFormlyPickableFieldModule,
|
|
2423
|
-
|
|
2424
|
-
DbxFormFormlySelectionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [[
|
|
2425
|
-
CommonModule
|
|
2426
|
-
], DbxFormFormlyPickableFieldModule,
|
|
2427
|
-
DbxFormFormlySearchableFieldModule] });
|
|
2326
|
+
DbxFormFormlySelectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [CommonModule], exports: [DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule] });
|
|
2327
|
+
DbxFormFormlySelectionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [[CommonModule], DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule] });
|
|
2428
2328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlySelectionModule, decorators: [{
|
|
2429
2329
|
type: NgModule,
|
|
2430
2330
|
args: [{
|
|
2431
|
-
imports: [
|
|
2432
|
-
CommonModule
|
|
2433
|
-
],
|
|
2331
|
+
imports: [CommonModule],
|
|
2434
2332
|
declarations: [],
|
|
2435
|
-
exports: [
|
|
2436
|
-
DbxFormFormlyPickableFieldModule,
|
|
2437
|
-
DbxFormFormlySearchableFieldModule
|
|
2438
|
-
]
|
|
2333
|
+
exports: [DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule]
|
|
2439
2334
|
}]
|
|
2440
2335
|
}] });
|
|
2441
2336
|
|
|
@@ -2468,7 +2363,9 @@ class DbxTextEditorFieldComponent extends FieldType$1 {
|
|
|
2468
2363
|
ngOnInit() {
|
|
2469
2364
|
this._editor = new Editor({});
|
|
2470
2365
|
// Watch for value changes every second and update the pristine level.
|
|
2471
|
-
this._sub.subscription = this.editor.valueChanges
|
|
2366
|
+
this._sub.subscription = this.editor.valueChanges
|
|
2367
|
+
.pipe(debounceTime(100), filter(() => this.editor.view.hasFocus()))
|
|
2368
|
+
.subscribe(() => {
|
|
2472
2369
|
this.formControl.updateValueAndValidity();
|
|
2473
2370
|
this.formControl.markAsDirty();
|
|
2474
2371
|
});
|
|
@@ -2540,9 +2437,7 @@ DbxFormFormlyTextEditorFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion
|
|
|
2540
2437
|
MatFormFieldModule,
|
|
2541
2438
|
MatInputModule,
|
|
2542
2439
|
FormlyModule.forChild({
|
|
2543
|
-
types: [
|
|
2544
|
-
{ name: 'texteditor', component: DbxTextEditorFieldComponent }
|
|
2545
|
-
]
|
|
2440
|
+
types: [{ name: 'texteditor', component: DbxTextEditorFieldComponent }]
|
|
2546
2441
|
})
|
|
2547
2442
|
]] });
|
|
2548
2443
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, decorators: [{
|
|
@@ -2557,14 +2452,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
2557
2452
|
MatFormFieldModule,
|
|
2558
2453
|
MatInputModule,
|
|
2559
2454
|
FormlyModule.forChild({
|
|
2560
|
-
types: [
|
|
2561
|
-
{ name: 'texteditor', component: DbxTextEditorFieldComponent }
|
|
2562
|
-
]
|
|
2455
|
+
types: [{ name: 'texteditor', component: DbxTextEditorFieldComponent }]
|
|
2563
2456
|
})
|
|
2564
2457
|
],
|
|
2565
|
-
declarations: [
|
|
2566
|
-
DbxTextEditorFieldComponent
|
|
2567
|
-
],
|
|
2458
|
+
declarations: [DbxTextEditorFieldComponent],
|
|
2568
2459
|
exports: []
|
|
2569
2460
|
}]
|
|
2570
2461
|
}] });
|
|
@@ -2612,7 +2503,7 @@ class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
|
|
|
2612
2503
|
return true;
|
|
2613
2504
|
}
|
|
2614
2505
|
else {
|
|
2615
|
-
return
|
|
2506
|
+
return this.count < max;
|
|
2616
2507
|
}
|
|
2617
2508
|
}
|
|
2618
2509
|
/**
|
|
@@ -2652,17 +2543,20 @@ DbxFormRepeatArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
2652
2543
|
<dbx-subsection [header]="label">
|
|
2653
2544
|
<!-- Fields -->
|
|
2654
2545
|
<div class="dbx-form-repeat-array-fields" cdkDropList (cdkDropListDropped)="drop($event)">
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
<span class="
|
|
2662
|
-
<
|
|
2663
|
-
</
|
|
2664
|
-
<
|
|
2665
|
-
|
|
2546
|
+
<div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; let i = index; let last = last">
|
|
2547
|
+
<div class="example-custom-placeholder" *cdkDragPlaceholder></div>
|
|
2548
|
+
<dbx-bar>
|
|
2549
|
+
<button cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
2550
|
+
<dbx-button-spacer></dbx-button-spacer>
|
|
2551
|
+
<h4>
|
|
2552
|
+
<span class="repeat-array-number">{{ i + 1 }}</span>
|
|
2553
|
+
<span>{{ labelForItem(field) }}</span>
|
|
2554
|
+
</h4>
|
|
2555
|
+
<span class="dbx-spacer"></span>
|
|
2556
|
+
<button mat-flat-button color="warn" (click)="remove(i)">{{ removeText }}</button>
|
|
2557
|
+
</dbx-bar>
|
|
2558
|
+
<formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
|
|
2559
|
+
</div>
|
|
2666
2560
|
</div>
|
|
2667
2561
|
<!-- Add Button -->
|
|
2668
2562
|
<div class="dbx-form-repeat-array-footer">
|
|
@@ -2679,17 +2573,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
2679
2573
|
<dbx-subsection [header]="label">
|
|
2680
2574
|
<!-- Fields -->
|
|
2681
2575
|
<div class="dbx-form-repeat-array-fields" cdkDropList (cdkDropListDropped)="drop($event)">
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
<span class="
|
|
2689
|
-
<
|
|
2690
|
-
</
|
|
2691
|
-
<
|
|
2692
|
-
|
|
2576
|
+
<div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; let i = index; let last = last">
|
|
2577
|
+
<div class="example-custom-placeholder" *cdkDragPlaceholder></div>
|
|
2578
|
+
<dbx-bar>
|
|
2579
|
+
<button cdkDragHandle mat-flat-button><mat-icon>drag_handle</mat-icon></button>
|
|
2580
|
+
<dbx-button-spacer></dbx-button-spacer>
|
|
2581
|
+
<h4>
|
|
2582
|
+
<span class="repeat-array-number">{{ i + 1 }}</span>
|
|
2583
|
+
<span>{{ labelForItem(field) }}</span>
|
|
2584
|
+
</h4>
|
|
2585
|
+
<span class="dbx-spacer"></span>
|
|
2586
|
+
<button mat-flat-button color="warn" (click)="remove(i)">{{ removeText }}</button>
|
|
2587
|
+
</dbx-bar>
|
|
2588
|
+
<formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
|
|
2589
|
+
</div>
|
|
2693
2590
|
</div>
|
|
2694
2591
|
<!-- Add Button -->
|
|
2695
2592
|
<div class="dbx-form-repeat-array-footer">
|
|
@@ -2726,9 +2623,7 @@ DbxFormFormlyArrayFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12
|
|
|
2726
2623
|
DbxBarLayoutModule,
|
|
2727
2624
|
DbxButtonModule,
|
|
2728
2625
|
FormlyModule.forChild({
|
|
2729
|
-
types: [
|
|
2730
|
-
{ name: 'repeatarray', component: DbxFormRepeatArrayTypeComponent }
|
|
2731
|
-
]
|
|
2626
|
+
types: [{ name: 'repeatarray', component: DbxFormRepeatArrayTypeComponent }]
|
|
2732
2627
|
})
|
|
2733
2628
|
]] });
|
|
2734
2629
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyArrayFieldModule, decorators: [{
|
|
@@ -2746,14 +2641,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
2746
2641
|
DbxBarLayoutModule,
|
|
2747
2642
|
DbxButtonModule,
|
|
2748
2643
|
FormlyModule.forChild({
|
|
2749
|
-
types: [
|
|
2750
|
-
{ name: 'repeatarray', component: DbxFormRepeatArrayTypeComponent }
|
|
2751
|
-
]
|
|
2644
|
+
types: [{ name: 'repeatarray', component: DbxFormRepeatArrayTypeComponent }]
|
|
2752
2645
|
})
|
|
2753
2646
|
],
|
|
2754
|
-
declarations: [
|
|
2755
|
-
DbxFormRepeatArrayTypeComponent
|
|
2756
|
-
],
|
|
2647
|
+
declarations: [DbxFormRepeatArrayTypeComponent],
|
|
2757
2648
|
exports: []
|
|
2758
2649
|
}]
|
|
2759
2650
|
}] });
|
|
@@ -2763,7 +2654,7 @@ function repeatArrayField(config) {
|
|
|
2763
2654
|
return formlyField(Object.assign(Object.assign({ key, type: 'repeatarray', repeatArrayField: {
|
|
2764
2655
|
labelForField,
|
|
2765
2656
|
addText,
|
|
2766
|
-
removeText
|
|
2657
|
+
removeText
|
|
2767
2658
|
} }, templateOptionsForFieldConfig(config, {
|
|
2768
2659
|
maxLength
|
|
2769
2660
|
})), { fieldArray: {
|
|
@@ -2841,7 +2732,7 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2841
2732
|
this._formControlObs = new BehaviorSubject(undefined);
|
|
2842
2733
|
this.formControl$ = this._formControlObs.pipe(filterMaybe());
|
|
2843
2734
|
this._updateTime = new Subject();
|
|
2844
|
-
this.value$ = this.formControl$.pipe(switchMap(control => control.valueChanges.pipe(startWith(control.value))), distinctUntilChanged((a, b) => isSameMinute(a, b)), shareReplay(1));
|
|
2735
|
+
this.value$ = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value))), distinctUntilChanged((a, b) => isSameMinute(a, b)), shareReplay(1));
|
|
2845
2736
|
/**
|
|
2846
2737
|
* Used to trigger/display visual updates (specifically on timeDistance, etc.).
|
|
2847
2738
|
*/
|
|
@@ -2855,23 +2746,17 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2855
2746
|
validators: []
|
|
2856
2747
|
});
|
|
2857
2748
|
this.timeInputCtrl = new FormControl('', {
|
|
2858
|
-
validators: [
|
|
2859
|
-
Validators.pattern(/^(now)$|^([0-9]|(0[0-9])|(1[0-9])|(2[0-3]))(:)?([0-5][0-9])?(\s)?([apAP][Mm])?(\\s)*$/)
|
|
2860
|
-
]
|
|
2749
|
+
validators: [Validators.pattern(/^(now)$|^([0-9]|(0[0-9])|(1[0-9])|(2[0-3]))(:)?([0-5][0-9])?(\s)?([apAP][Mm])?(\\s)*$/)]
|
|
2861
2750
|
});
|
|
2862
2751
|
this._config = new BehaviorSubject(undefined);
|
|
2863
|
-
this.fullDay$ = this.fullDayControl$.pipe(switchMap(control => control.valueChanges.pipe(startWith(control.value))));
|
|
2864
|
-
this.showTimeInput$ = this.fullDay$.pipe(map(x => !x && this.timeMode !== DbxDateTimeFieldTimeMode.NONE));
|
|
2865
|
-
this.showAddTime$ = this.showTimeInput$.pipe(map(x => !x && this.timeMode === DbxDateTimeFieldTimeMode.OPTIONAL), shareReplay(1));
|
|
2752
|
+
this.fullDay$ = this.fullDayControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value))));
|
|
2753
|
+
this.showTimeInput$ = this.fullDay$.pipe(map((x) => !x && this.timeMode !== DbxDateTimeFieldTimeMode.NONE));
|
|
2754
|
+
this.showAddTime$ = this.showTimeInput$.pipe(map((x) => !x && this.timeMode === DbxDateTimeFieldTimeMode.OPTIONAL), shareReplay(1));
|
|
2866
2755
|
this.date$ = this.dateInputCtrl.valueChanges.pipe(startWith(this.dateInputCtrl.value), filterMaybe(), shareReplay(1));
|
|
2867
|
-
this.dateValue$ = merge(this.date$, this.value$.pipe(skipFirstMaybe())).pipe(map((x) => (x
|
|
2756
|
+
this.dateValue$ = merge(this.date$, this.value$.pipe(skipFirstMaybe())).pipe(map((x) => (x ? startOfDay(x) : x)), distinctUntilChanged((a, b) => a != null && b != null && isSameDay(a, b)), shareReplay(1));
|
|
2868
2757
|
this.timeInput$ = this._updateTime.pipe(debounceTime(5), map(() => this.timeInputCtrl.value), distinctUntilChanged());
|
|
2869
2758
|
this.config$ = this._config.pipe(switchMapMaybeDefault(), shareReplay(1));
|
|
2870
|
-
this.rawDateTime$ = combineLatest([
|
|
2871
|
-
this.dateValue$,
|
|
2872
|
-
this.timeInput$.pipe(startWith(null)),
|
|
2873
|
-
this.fullDay$
|
|
2874
|
-
]).pipe(map(([date, timeString, fullDay]) => {
|
|
2759
|
+
this.rawDateTime$ = combineLatest([this.dateValue$, this.timeInput$.pipe(startWith(null)), this.fullDay$]).pipe(map(([date, timeString, fullDay]) => {
|
|
2875
2760
|
var _a;
|
|
2876
2761
|
let result;
|
|
2877
2762
|
if (date) {
|
|
@@ -2884,10 +2769,11 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2884
2769
|
}
|
|
2885
2770
|
}
|
|
2886
2771
|
else if (timeString) {
|
|
2887
|
-
result =
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2772
|
+
result =
|
|
2773
|
+
(_a = readableTimeStringToDate(timeString, {
|
|
2774
|
+
date,
|
|
2775
|
+
useSystemTimezone: true
|
|
2776
|
+
})) !== null && _a !== void 0 ? _a : date;
|
|
2891
2777
|
}
|
|
2892
2778
|
else {
|
|
2893
2779
|
result = date;
|
|
@@ -2895,11 +2781,7 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2895
2781
|
}
|
|
2896
2782
|
return result;
|
|
2897
2783
|
}), distinctUntilChanged((a, b) => a != null && b != null && isSameMinute(a, b)), shareReplay(1));
|
|
2898
|
-
this.timeOutput$ = combineLatest([
|
|
2899
|
-
this.rawDateTime$,
|
|
2900
|
-
this._offset,
|
|
2901
|
-
this.config$.pipe(distinctUntilChanged()),
|
|
2902
|
-
]).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]) => {
|
|
2784
|
+
this.timeOutput$ = combineLatest([this.rawDateTime$, this._offset, this.config$.pipe(distinctUntilChanged())]).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]) => {
|
|
2903
2785
|
if (date != null) {
|
|
2904
2786
|
const instance = new DateTimeMinuteInstance(Object.assign(Object.assign({ date }, config), { roundDownToMinute: true }));
|
|
2905
2787
|
date = instance.limit(date);
|
|
@@ -2923,7 +2805,7 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
2923
2805
|
}
|
|
2924
2806
|
get timeMode() {
|
|
2925
2807
|
var _a;
|
|
2926
|
-
return
|
|
2808
|
+
return this.timeOnly ? DbxDateTimeFieldTimeMode.REQUIRED : (_a = this.dateTimeField.timeMode) !== null && _a !== void 0 ? _a : DbxDateTimeFieldTimeMode.REQUIRED;
|
|
2927
2809
|
}
|
|
2928
2810
|
get description() {
|
|
2929
2811
|
var _a;
|
|
@@ -3032,7 +2914,7 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
3032
2914
|
offset = 5;
|
|
3033
2915
|
}
|
|
3034
2916
|
if (direction !== 0) {
|
|
3035
|
-
this._offset.next(this._offset.value +
|
|
2917
|
+
this._offset.next(this._offset.value + offset * direction);
|
|
3036
2918
|
this._updateTime.next();
|
|
3037
2919
|
}
|
|
3038
2920
|
}
|
|
@@ -3055,10 +2937,10 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
|
|
|
3055
2937
|
}
|
|
3056
2938
|
}
|
|
3057
2939
|
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
|
|
2940
|
+
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>\n Add Time\n </button>\n </div>\n </div>\n <div class=\"dbx-datetime-row dbx-datetime-hint-row\" fxFlex=\"100\">\n <div class=\"dbx-hint\" [ngSwitch]=\"fullDay$ | async\">\n <small *ngSwitchCase=\"true\">\n <b class=\"dbx-ok\">All Day</b>\n {{ dateValue$ | async | date: 'fullDate' }} ({{ dateValue$ | async | dateDistance }})\n </small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"value$ | async\">\n <b class=\"dbx-ok\">At</b>\n {{ displayValue$ | async | date: 'medium' }} ({{ displayValue$ | async | timeDistance }})\n </ng-container>\n </small>\n </div>\n </div>\n</div>\n\n<!-- Date Input Template -->\n<ng-template #dateInputTemplate>\n <button mat-icon-button (click)=\"picker.open()\" [disabled]=\"disabled\">\n <mat-icon>calendar_today</mat-icon>\n </button>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>Date</mat-label>\n <input #dateInput matInput [formControl]=\"dateInputCtrl\" [matDatepicker]=\"picker\" (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\" [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()\" (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
2941
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxDateTimeFieldComponent, decorators: [{
|
|
3060
2942
|
type: Component,
|
|
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
|
|
2943
|
+
args: [{ template: "<div class=\"dbx-datetime-field\" fxLayout=\"row wrap\" fxLayout.xs=\"column wrap\" fxLayoutAlign=\"space-evenly stretch\">\n <!-- Date -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"dateOnly ? '100' : '50'\" *ngIf=\"showDateInput\">\n <ng-container *ngTemplateOutlet=\"dateInputTemplate\"></ng-container>\n </div>\n <!-- Time -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"showDateInput ? '50' : '100'\">\n <ng-container *ngIf=\"showTimeInput$ | async\">\n <ng-container *ngTemplateOutlet=\"timeMenuAndInputTemplate\"></ng-container>\n </ng-container>\n <div class=\"add-time-button-wrapper\" *ngIf=\"showAddTime$ | async\">\n <button mat-button class=\"add-time-button\" ngClass.lt-sm=\"add-time-button-full\" (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n </div>\n <div class=\"dbx-datetime-row dbx-datetime-hint-row\" fxFlex=\"100\">\n <div class=\"dbx-hint\" [ngSwitch]=\"fullDay$ | async\">\n <small *ngSwitchCase=\"true\">\n <b class=\"dbx-ok\">All Day</b>\n {{ dateValue$ | async | date: 'fullDate' }} ({{ dateValue$ | async | dateDistance }})\n </small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"value$ | async\">\n <b class=\"dbx-ok\">At</b>\n {{ displayValue$ | async | date: 'medium' }} ({{ displayValue$ | async | timeDistance }})\n </ng-container>\n </small>\n </div>\n </div>\n</div>\n\n<!-- Date Input Template -->\n<ng-template #dateInputTemplate>\n <button mat-icon-button (click)=\"picker.open()\" [disabled]=\"disabled\">\n <mat-icon>calendar_today</mat-icon>\n </button>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>Date</mat-label>\n <input #dateInput matInput [formControl]=\"dateInputCtrl\" [matDatepicker]=\"picker\" (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\" [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()\" (keydown)=\"keydownOnInput($event)\" />\n </mat-form-field>\n</ng-template>\n" }]
|
|
3062
2944
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
|
|
3063
2945
|
|
|
3064
2946
|
class DbxFormFormlyDateFieldModule {
|
|
@@ -3094,9 +2976,7 @@ DbxFormFormlyDateFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
|
|
|
3094
2976
|
MatIconModule,
|
|
3095
2977
|
FlexLayoutModule,
|
|
3096
2978
|
FormlyModule.forChild({
|
|
3097
|
-
types: [
|
|
3098
|
-
{ name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] }
|
|
3099
|
-
]
|
|
2979
|
+
types: [{ name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] }]
|
|
3100
2980
|
})
|
|
3101
2981
|
], DbxFormFormlyWrapperModule] });
|
|
3102
2982
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyDateFieldModule, decorators: [{
|
|
@@ -3118,17 +2998,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
3118
2998
|
MatIconModule,
|
|
3119
2999
|
FlexLayoutModule,
|
|
3120
3000
|
FormlyModule.forChild({
|
|
3121
|
-
types: [
|
|
3122
|
-
{ name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] }
|
|
3123
|
-
]
|
|
3001
|
+
types: [{ name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] }]
|
|
3124
3002
|
})
|
|
3125
3003
|
],
|
|
3126
|
-
declarations: [
|
|
3127
|
-
|
|
3128
|
-
],
|
|
3129
|
-
exports: [
|
|
3130
|
-
DbxFormFormlyWrapperModule
|
|
3131
|
-
]
|
|
3004
|
+
declarations: [DbxDateTimeFieldComponent],
|
|
3005
|
+
exports: [DbxFormFormlyWrapperModule]
|
|
3132
3006
|
}]
|
|
3133
3007
|
}] });
|
|
3134
3008
|
|
|
@@ -3145,10 +3019,10 @@ function timeOnlyField(config = {}) {
|
|
|
3145
3019
|
function dateTimeField(config = {}) {
|
|
3146
3020
|
const { key = 'date', timeMode = DbxDateTimeFieldTimeMode.REQUIRED, fullDayFieldName, getConfigObs, timeOnly = false } = config;
|
|
3147
3021
|
const fieldConfig = formlyField(Object.assign(Object.assign({ key, type: 'datetime', dateTimeField: {
|
|
3148
|
-
timeMode:
|
|
3022
|
+
timeMode: timeOnly ? DbxDateTimeFieldTimeMode.REQUIRED : timeMode,
|
|
3149
3023
|
fullDayFieldName,
|
|
3150
3024
|
getConfigObs,
|
|
3151
|
-
timeOnly
|
|
3025
|
+
timeOnly
|
|
3152
3026
|
} }, templateOptionsForFieldConfig(config)), { styleWrapper: {
|
|
3153
3027
|
style: 'dbx-datetime-parent-form-field'
|
|
3154
3028
|
} }));
|
|
@@ -3167,7 +3041,7 @@ function staticEnumField({ key, label = '', placeholder = '', description, multi
|
|
|
3167
3041
|
multiple,
|
|
3168
3042
|
selectAllOption: 'Select All',
|
|
3169
3043
|
options
|
|
3170
|
-
}
|
|
3044
|
+
}
|
|
3171
3045
|
});
|
|
3172
3046
|
return fieldConfig;
|
|
3173
3047
|
}
|
|
@@ -3203,10 +3077,10 @@ class DbxPhoneFieldComponent extends FieldType$1 {
|
|
|
3203
3077
|
}
|
|
3204
3078
|
}
|
|
3205
3079
|
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\"
|
|
3080
|
+
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\" [enablePlaceholder]=\"false\" name=\"phone\" [formControl]=\"formControl\"></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
3081
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxPhoneFieldComponent, decorators: [{
|
|
3208
3082
|
type: Component,
|
|
3209
|
-
args: [{ template: "<ngx-mat-intl-tel-input class=\"dbx-form-phone-field\" [required]=\"required\" [preferredCountries]=\"preferredCountries\"
|
|
3083
|
+
args: [{ template: "<ngx-mat-intl-tel-input class=\"dbx-form-phone-field\" [required]=\"required\" [preferredCountries]=\"preferredCountries\" [enablePlaceholder]=\"false\" name=\"phone\" [formControl]=\"formControl\"></ngx-mat-intl-tel-input>\n" }]
|
|
3210
3084
|
}] });
|
|
3211
3085
|
|
|
3212
3086
|
class DbxFormFormlyPhoneFieldModule {
|
|
@@ -3236,9 +3110,7 @@ DbxFormFormlyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12
|
|
|
3236
3110
|
FlexLayoutModule,
|
|
3237
3111
|
FormlyMatFormFieldModule,
|
|
3238
3112
|
FormlyModule.forChild({
|
|
3239
|
-
types: [
|
|
3240
|
-
{ name: 'intphone', component: DbxPhoneFieldComponent, wrappers: ['form-field'] }
|
|
3241
|
-
]
|
|
3113
|
+
types: [{ name: 'intphone', component: DbxPhoneFieldComponent, wrappers: ['form-field'] }]
|
|
3242
3114
|
})
|
|
3243
3115
|
]] });
|
|
3244
3116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, decorators: [{
|
|
@@ -3257,14 +3129,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
3257
3129
|
FlexLayoutModule,
|
|
3258
3130
|
FormlyMatFormFieldModule,
|
|
3259
3131
|
FormlyModule.forChild({
|
|
3260
|
-
types: [
|
|
3261
|
-
{ name: 'intphone', component: DbxPhoneFieldComponent, wrappers: ['form-field'] }
|
|
3262
|
-
]
|
|
3132
|
+
types: [{ name: 'intphone', component: DbxPhoneFieldComponent, wrappers: ['form-field'] }]
|
|
3263
3133
|
})
|
|
3264
3134
|
],
|
|
3265
|
-
declarations: [
|
|
3266
|
-
DbxPhoneFieldComponent
|
|
3267
|
-
],
|
|
3135
|
+
declarations: [DbxPhoneFieldComponent],
|
|
3268
3136
|
exports: []
|
|
3269
3137
|
}]
|
|
3270
3138
|
}] });
|
|
@@ -3340,9 +3208,11 @@ function flexLayoutWrapper(fieldConfigs, { relative, breakpoint, size: defaultSi
|
|
|
3340
3208
|
}
|
|
3341
3209
|
},
|
|
3342
3210
|
fieldGroup: fieldConfigs.map((inputConfig) => {
|
|
3343
|
-
const fieldConfig = checkIsFieldFlexLayoutGroupFieldConfig(inputConfig)
|
|
3344
|
-
|
|
3345
|
-
|
|
3211
|
+
const fieldConfig = checkIsFieldFlexLayoutGroupFieldConfig(inputConfig)
|
|
3212
|
+
? inputConfig
|
|
3213
|
+
: {
|
|
3214
|
+
field: inputConfig
|
|
3215
|
+
};
|
|
3346
3216
|
const { field, size = defaultSize } = fieldConfig;
|
|
3347
3217
|
const className = `dbx-flex-${size}`;
|
|
3348
3218
|
return Object.assign(Object.assign({}, field), { className });
|
|
@@ -3364,7 +3234,7 @@ function textAreaField(config) {
|
|
|
3364
3234
|
return formlyField(Object.assign({ key, type: 'textarea' }, templateOptionsForFieldConfig(config, {
|
|
3365
3235
|
rows,
|
|
3366
3236
|
minLength,
|
|
3367
|
-
maxLength
|
|
3237
|
+
maxLength
|
|
3368
3238
|
})));
|
|
3369
3239
|
}
|
|
3370
3240
|
|
|
@@ -3409,7 +3279,6 @@ function phoneListField(repeatConfig = {}) {
|
|
|
3409
3279
|
addText,
|
|
3410
3280
|
removeText, repeatFieldGroup: repeatFieldGroup !== null && repeatFieldGroup !== void 0 ? repeatFieldGroup : [wrappedPhoneAndLabelField(phoneAndLabel)] }));
|
|
3411
3281
|
}
|
|
3412
|
-
;
|
|
3413
3282
|
|
|
3414
3283
|
const PHONE_LABEL_MAX_LENGTH = 100;
|
|
3415
3284
|
const ADDRESS_COUNTRY_MAX_LENGTH = 80;
|
|
@@ -3502,15 +3371,20 @@ function addressFormlyFields() {
|
|
|
3502
3371
|
autocomplete: 'address-line2',
|
|
3503
3372
|
maxLength: ADDRESS_LINE_MAX_LENGTH
|
|
3504
3373
|
}),
|
|
3505
|
-
flexLayoutWrapper([
|
|
3374
|
+
flexLayoutWrapper([
|
|
3375
|
+
{
|
|
3506
3376
|
field: cityField({})
|
|
3507
|
-
},
|
|
3377
|
+
},
|
|
3378
|
+
{
|
|
3508
3379
|
field: stateField({})
|
|
3509
|
-
},
|
|
3380
|
+
},
|
|
3381
|
+
{
|
|
3510
3382
|
field: zipCodeField({})
|
|
3511
|
-
},
|
|
3383
|
+
},
|
|
3384
|
+
{
|
|
3512
3385
|
field: countryField({})
|
|
3513
|
-
}
|
|
3386
|
+
}
|
|
3387
|
+
], { size: 1, relative: true })
|
|
3514
3388
|
];
|
|
3515
3389
|
}
|
|
3516
3390
|
function addressField({ key = 'address', required = false } = {}) {
|
|
@@ -3542,19 +3416,13 @@ class DbxFormFormlyTextFieldModule {
|
|
|
3542
3416
|
}
|
|
3543
3417
|
DbxFormFormlyTextFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3544
3418
|
DbxFormFormlyTextFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [FormlyMaterialModule], exports: [DbxFormFormlyWrapperModule] });
|
|
3545
|
-
DbxFormFormlyTextFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [[
|
|
3546
|
-
FormlyMaterialModule
|
|
3547
|
-
], DbxFormFormlyWrapperModule] });
|
|
3419
|
+
DbxFormFormlyTextFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [[FormlyMaterialModule], DbxFormFormlyWrapperModule] });
|
|
3548
3420
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyTextFieldModule, decorators: [{
|
|
3549
3421
|
type: NgModule,
|
|
3550
3422
|
args: [{
|
|
3551
|
-
imports: [
|
|
3552
|
-
FormlyMaterialModule
|
|
3553
|
-
],
|
|
3423
|
+
imports: [FormlyMaterialModule],
|
|
3554
3424
|
declarations: [],
|
|
3555
|
-
exports: [
|
|
3556
|
-
DbxFormFormlyWrapperModule
|
|
3557
|
-
]
|
|
3425
|
+
exports: [DbxFormFormlyWrapperModule]
|
|
3558
3426
|
}]
|
|
3559
3427
|
}] });
|
|
3560
3428
|
|
|
@@ -3568,70 +3436,28 @@ function hiddenField({ key, required = false }) {
|
|
|
3568
3436
|
class DbxFormFormlyValueModule {
|
|
3569
3437
|
}
|
|
3570
3438
|
DbxFormFormlyValueModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3571
|
-
DbxFormFormlyValueModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, imports: [CommonModule], exports: [DbxFormFormlyArrayFieldModule,
|
|
3572
|
-
|
|
3573
|
-
DbxFormFormlyDateFieldModule,
|
|
3574
|
-
DbxFormFormlyEnumFieldModule,
|
|
3575
|
-
DbxFormFormlyPhoneFieldModule,
|
|
3576
|
-
DbxFormFormlyTextFieldModule] });
|
|
3577
|
-
DbxFormFormlyValueModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, imports: [[
|
|
3578
|
-
CommonModule
|
|
3579
|
-
], DbxFormFormlyArrayFieldModule,
|
|
3580
|
-
DbxFormFormlyBooleanFieldModule,
|
|
3581
|
-
DbxFormFormlyDateFieldModule,
|
|
3582
|
-
DbxFormFormlyEnumFieldModule,
|
|
3583
|
-
DbxFormFormlyPhoneFieldModule,
|
|
3584
|
-
DbxFormFormlyTextFieldModule] });
|
|
3439
|
+
DbxFormFormlyValueModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, imports: [CommonModule], exports: [DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyEnumFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyTextFieldModule] });
|
|
3440
|
+
DbxFormFormlyValueModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, imports: [[CommonModule], DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyEnumFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyTextFieldModule] });
|
|
3585
3441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyValueModule, decorators: [{
|
|
3586
3442
|
type: NgModule,
|
|
3587
3443
|
args: [{
|
|
3588
|
-
imports: [
|
|
3589
|
-
CommonModule
|
|
3590
|
-
],
|
|
3444
|
+
imports: [CommonModule],
|
|
3591
3445
|
declarations: [],
|
|
3592
|
-
exports: [
|
|
3593
|
-
DbxFormFormlyArrayFieldModule,
|
|
3594
|
-
DbxFormFormlyBooleanFieldModule,
|
|
3595
|
-
DbxFormFormlyDateFieldModule,
|
|
3596
|
-
DbxFormFormlyEnumFieldModule,
|
|
3597
|
-
DbxFormFormlyPhoneFieldModule,
|
|
3598
|
-
DbxFormFormlyTextFieldModule
|
|
3599
|
-
]
|
|
3446
|
+
exports: [DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyEnumFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyTextFieldModule]
|
|
3600
3447
|
}]
|
|
3601
3448
|
}] });
|
|
3602
3449
|
|
|
3603
3450
|
class DbxFormFormlyFieldModule {
|
|
3604
3451
|
}
|
|
3605
3452
|
DbxFormFormlyFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
3606
|
-
DbxFormFormlyFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [CommonModule], exports: [DbxFormFormlyChecklistItemFieldModule,
|
|
3607
|
-
|
|
3608
|
-
DbxFormFormlySelectionModule,
|
|
3609
|
-
DbxFormFormlyTextEditorFieldModule,
|
|
3610
|
-
DbxFormFormlyValueModule,
|
|
3611
|
-
DbxFormFormlyWrapperModule] });
|
|
3612
|
-
DbxFormFormlyFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [[
|
|
3613
|
-
CommonModule
|
|
3614
|
-
], DbxFormFormlyChecklistItemFieldModule,
|
|
3615
|
-
DbxFormFormlyComponentFieldModule,
|
|
3616
|
-
DbxFormFormlySelectionModule,
|
|
3617
|
-
DbxFormFormlyTextEditorFieldModule,
|
|
3618
|
-
DbxFormFormlyValueModule,
|
|
3619
|
-
DbxFormFormlyWrapperModule] });
|
|
3453
|
+
DbxFormFormlyFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [CommonModule], exports: [DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule] });
|
|
3454
|
+
DbxFormFormlyFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [[CommonModule], DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule] });
|
|
3620
3455
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFormlyFieldModule, decorators: [{
|
|
3621
3456
|
type: NgModule,
|
|
3622
3457
|
args: [{
|
|
3623
|
-
imports: [
|
|
3624
|
-
CommonModule
|
|
3625
|
-
],
|
|
3458
|
+
imports: [CommonModule],
|
|
3626
3459
|
declarations: [],
|
|
3627
|
-
exports: [
|
|
3628
|
-
DbxFormFormlyChecklistItemFieldModule,
|
|
3629
|
-
DbxFormFormlyComponentFieldModule,
|
|
3630
|
-
DbxFormFormlySelectionModule,
|
|
3631
|
-
DbxFormFormlyTextEditorFieldModule,
|
|
3632
|
-
DbxFormFormlyValueModule,
|
|
3633
|
-
DbxFormFormlyWrapperModule
|
|
3634
|
-
]
|
|
3460
|
+
exports: [DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule]
|
|
3635
3461
|
}]
|
|
3636
3462
|
}] });
|
|
3637
3463
|
|
|
@@ -3645,7 +3471,7 @@ const FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY = 'fieldValuesAreEqual';
|
|
|
3645
3471
|
* @returns
|
|
3646
3472
|
*/
|
|
3647
3473
|
function fieldValuesAreEqualValidator(config = {}) {
|
|
3648
|
-
const { keysFilter, valuesFilter: inputValuesFilter, isEqual = (
|
|
3474
|
+
const { keysFilter, valuesFilter: inputValuesFilter, isEqual = (a, b) => a === b, message = 'Field values are not equal.' } = config;
|
|
3649
3475
|
const valuesFilter = inputValuesFilter !== null && inputValuesFilter !== void 0 ? inputValuesFilter : {
|
|
3650
3476
|
valueFilter: KeyValueTypleValueFilter.NONE,
|
|
3651
3477
|
keysFilter
|
|
@@ -3687,12 +3513,14 @@ function textPasswordWithVerifyFieldGroup(config) {
|
|
|
3687
3513
|
var _a, _b, _c, _d, _e;
|
|
3688
3514
|
const passwordFieldConfig = textPasswordField(config.password);
|
|
3689
3515
|
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 = (
|
|
3516
|
+
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
3517
|
const validators = {
|
|
3692
|
-
validation: [
|
|
3518
|
+
validation: [
|
|
3519
|
+
{
|
|
3693
3520
|
errorPath: verifyPasswordFieldKey,
|
|
3694
3521
|
expression: fieldValuesAreEqualValidator({ keysFilter: [passwordFieldConfig.key, verifyPasswordField.key], message: 'The passwords do not match.' })
|
|
3695
|
-
}
|
|
3522
|
+
}
|
|
3523
|
+
]
|
|
3696
3524
|
};
|
|
3697
3525
|
const groupFieldConfig = {
|
|
3698
3526
|
validators,
|
|
@@ -3700,7 +3528,6 @@ function textPasswordWithVerifyFieldGroup(config) {
|
|
|
3700
3528
|
};
|
|
3701
3529
|
return groupFieldConfig;
|
|
3702
3530
|
}
|
|
3703
|
-
;
|
|
3704
3531
|
/**
|
|
3705
3532
|
* Template for login field that takes in a username and password.
|
|
3706
3533
|
*
|
|
@@ -3729,11 +3556,8 @@ function usernamePasswordLoginFields({ username, password, verifyPassword }) {
|
|
|
3729
3556
|
else {
|
|
3730
3557
|
usernameField = textField(Object.assign(Object.assign({}, usernameFieldConfig.username), defaultUsernameFieldConfig));
|
|
3731
3558
|
}
|
|
3732
|
-
const passwordField =
|
|
3733
|
-
return [
|
|
3734
|
-
usernameField,
|
|
3735
|
-
passwordField
|
|
3736
|
-
];
|
|
3559
|
+
const passwordField = verifyPassword ? textPasswordWithVerifyFieldGroup({ password, verifyPassword: verifyPassword === true ? undefined : verifyPassword }) : textPasswordField(password);
|
|
3560
|
+
return [usernameField, passwordField];
|
|
3737
3561
|
}
|
|
3738
3562
|
|
|
3739
3563
|
const FIELD_VALUE_IS_AVAILABLE_VALIDATION_KEY = 'fieldValueIsAvailable';
|
|
@@ -3768,9 +3592,11 @@ function fieldValueIsAvailableValidator(config) {
|
|
|
3768
3592
|
function textIsAvailableField(config) {
|
|
3769
3593
|
const field = textField(config);
|
|
3770
3594
|
field.asyncValidators = {
|
|
3771
|
-
validation: [
|
|
3772
|
-
|
|
3773
|
-
|
|
3595
|
+
validation: [
|
|
3596
|
+
{
|
|
3597
|
+
expression: fieldValueIsAvailableValidator(Object.assign(Object.assign({}, config), { message: config === null || config === void 0 ? void 0 : config.isNotAvailableErrorMessage }))
|
|
3598
|
+
}
|
|
3599
|
+
]
|
|
3774
3600
|
};
|
|
3775
3601
|
return workingWrapper(field, {});
|
|
3776
3602
|
}
|
|
@@ -3779,11 +3605,13 @@ function textIsAvailableField(config) {
|
|
|
3779
3605
|
* Allows a directive to provide a formly context and form.
|
|
3780
3606
|
*/
|
|
3781
3607
|
function provideFormlyContext() {
|
|
3782
|
-
return [
|
|
3608
|
+
return [
|
|
3609
|
+
{
|
|
3783
3610
|
provide: DbxFormlyContext,
|
|
3784
3611
|
useClass: DbxFormlyContext
|
|
3785
3612
|
},
|
|
3786
|
-
...provideDbxMutableForm(DbxFormlyContext)
|
|
3613
|
+
...provideDbxMutableForm(DbxFormlyContext)
|
|
3614
|
+
];
|
|
3787
3615
|
}
|
|
3788
3616
|
/**
|
|
3789
3617
|
* DbxForm Instance that registers a delegate and manages the state of that form/delegate.
|
|
@@ -3797,7 +3625,7 @@ class DbxFormlyContext {
|
|
|
3797
3625
|
this._delegate = new BehaviorSubject(undefined);
|
|
3798
3626
|
this.fields$ = this._fields.pipe(filterMaybe());
|
|
3799
3627
|
this.disabled$ = this._disabled.pipe(filterMaybe());
|
|
3800
|
-
this.stream$ = this._delegate.pipe(distinctUntilChanged(), switchMap(x => (x
|
|
3628
|
+
this.stream$ = this._delegate.pipe(distinctUntilChanged(), switchMap((x) => (x ? x.stream$ : of(DbxFormlyContext.INITIAL_STATE))), shareReplay(1));
|
|
3801
3629
|
}
|
|
3802
3630
|
destroy() {
|
|
3803
3631
|
this.lockSet.destroyOnNextUnlock(() => {
|
|
@@ -3832,7 +3660,7 @@ class DbxFormlyContext {
|
|
|
3832
3660
|
}
|
|
3833
3661
|
// MARK: FormComponent
|
|
3834
3662
|
getValue() {
|
|
3835
|
-
return this._delegate.pipe(filterMaybe(), switchMap(x => x.getValue()), shareReplay(1));
|
|
3663
|
+
return this._delegate.pipe(filterMaybe(), switchMap((x) => x.getValue()), shareReplay(1));
|
|
3836
3664
|
}
|
|
3837
3665
|
setValue(value) {
|
|
3838
3666
|
this._initialValue.next(value);
|
|
@@ -4021,7 +3849,7 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
|
|
|
4021
3849
|
this.fields$ = this._fields.pipe(switchMapMaybeObs(), distinctUntilChanged(), shareReplay(1));
|
|
4022
3850
|
this.stream$ = this._reset.pipe(switchMap((lastResetAt) => this.form.valueChanges.pipe(startWith(0), distinctUntilChanged(), throttleTime(50, undefined, { leading: true, trailing: true }), scanCount(-1),
|
|
4023
3851
|
// 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) => ({
|
|
3852
|
+
switchMap((changesSinceLastReset) => this.form.statusChanges.pipe(startWith(this.form.status), distinctUntilChanged()).pipe(map(() => changesSinceLastReset))), map((changesSinceLastResetCount) => ({
|
|
4025
3853
|
changesSinceLastResetCount,
|
|
4026
3854
|
isFormValid: this.form.status !== 'PENDING' && this.form.valid,
|
|
4027
3855
|
isFormDisabled: this.form.disabled
|
|
@@ -4043,7 +3871,7 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
|
|
|
4043
3871
|
const complete = isFormValid;
|
|
4044
3872
|
const nextState = {
|
|
4045
3873
|
isComplete: complete,
|
|
4046
|
-
state:
|
|
3874
|
+
state: isReset ? DbxFormState.RESET : DbxFormState.USED,
|
|
4047
3875
|
status: this.form.status,
|
|
4048
3876
|
untouched: this.form.untouched,
|
|
4049
3877
|
pristine: this.form.pristine,
|
|
@@ -4152,7 +3980,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
4152
3980
|
`,
|
|
4153
3981
|
providers: provideDbxMutableForm(DbxFormlyFormComponent),
|
|
4154
3982
|
host: {
|
|
4155
|
-
|
|
3983
|
+
class: 'dbx-formly'
|
|
4156
3984
|
}
|
|
4157
3985
|
}]
|
|
4158
3986
|
}], ctorParameters: function () { return [{ type: DbxFormlyContext }]; } });
|
|
@@ -4160,12 +3988,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
4160
3988
|
class DbxFormlyModule {
|
|
4161
3989
|
}
|
|
4162
3990
|
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,
|
|
4164
|
-
DbxFormlyFieldsContextDirective], imports: [CommonModule,
|
|
4165
|
-
FormsModule,
|
|
4166
|
-
ReactiveFormsModule,
|
|
4167
|
-
FormlyModule,
|
|
4168
|
-
FormlyMatToggleModule], exports: [
|
|
3991
|
+
DbxFormlyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyModule, declarations: [DbxFormlyFormComponent, DbxFormlyFieldsContextDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule], exports: [
|
|
4169
3992
|
// Modules (?)
|
|
4170
3993
|
FormsModule,
|
|
4171
3994
|
ReactiveFormsModule,
|
|
@@ -4174,30 +3997,15 @@ DbxFormlyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version
|
|
|
4174
3997
|
DbxFormlyFieldsContextDirective
|
|
4175
3998
|
// Helper Modules
|
|
4176
3999
|
] });
|
|
4177
|
-
DbxFormlyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyModule, imports: [[
|
|
4178
|
-
CommonModule,
|
|
4179
|
-
FormsModule,
|
|
4180
|
-
ReactiveFormsModule,
|
|
4181
|
-
FormlyModule,
|
|
4182
|
-
FormlyMatToggleModule
|
|
4183
|
-
],
|
|
4000
|
+
DbxFormlyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule],
|
|
4184
4001
|
// Modules (?)
|
|
4185
4002
|
FormsModule,
|
|
4186
4003
|
ReactiveFormsModule] });
|
|
4187
4004
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormlyModule, decorators: [{
|
|
4188
4005
|
type: NgModule,
|
|
4189
4006
|
args: [{
|
|
4190
|
-
imports: [
|
|
4191
|
-
|
|
4192
|
-
FormsModule,
|
|
4193
|
-
ReactiveFormsModule,
|
|
4194
|
-
FormlyModule,
|
|
4195
|
-
FormlyMatToggleModule
|
|
4196
|
-
],
|
|
4197
|
-
declarations: [
|
|
4198
|
-
DbxFormlyFormComponent,
|
|
4199
|
-
DbxFormlyFieldsContextDirective
|
|
4200
|
-
],
|
|
4007
|
+
imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule],
|
|
4008
|
+
declarations: [DbxFormlyFormComponent, DbxFormlyFieldsContextDirective],
|
|
4201
4009
|
exports: [
|
|
4202
4010
|
// Modules (?)
|
|
4203
4011
|
FormsModule,
|
|
@@ -4216,12 +4024,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
4216
4024
|
class DbxFormSpacerComponent {
|
|
4217
4025
|
}
|
|
4218
4026
|
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:
|
|
4027
|
+
DbxFormSpacerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFormSpacerComponent, selector: "dbx-form-spacer", ngImport: i0, template: `
|
|
4028
|
+
<div class="dbx-form-spacer"></div>
|
|
4029
|
+
`, isInline: true });
|
|
4220
4030
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSpacerComponent, decorators: [{
|
|
4221
4031
|
type: Component,
|
|
4222
4032
|
args: [{
|
|
4223
4033
|
selector: 'dbx-form-spacer',
|
|
4224
|
-
template:
|
|
4034
|
+
template: `
|
|
4035
|
+
<div class="dbx-form-spacer"></div>
|
|
4036
|
+
`
|
|
4225
4037
|
}]
|
|
4226
4038
|
}] });
|
|
4227
4039
|
|
|
@@ -4229,21 +4041,13 @@ class DbxFormLayoutModule {
|
|
|
4229
4041
|
}
|
|
4230
4042
|
DbxFormLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4231
4043
|
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: [[
|
|
4233
|
-
CommonModule
|
|
4234
|
-
]] });
|
|
4044
|
+
DbxFormLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormLayoutModule, imports: [[CommonModule]] });
|
|
4235
4045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormLayoutModule, decorators: [{
|
|
4236
4046
|
type: NgModule,
|
|
4237
4047
|
args: [{
|
|
4238
|
-
imports: [
|
|
4239
|
-
|
|
4240
|
-
]
|
|
4241
|
-
declarations: [
|
|
4242
|
-
DbxFormSpacerComponent
|
|
4243
|
-
],
|
|
4244
|
-
exports: [
|
|
4245
|
-
DbxFormSpacerComponent
|
|
4246
|
-
]
|
|
4048
|
+
imports: [CommonModule],
|
|
4049
|
+
declarations: [DbxFormSpacerComponent],
|
|
4050
|
+
exports: [DbxFormSpacerComponent]
|
|
4247
4051
|
}]
|
|
4248
4052
|
}] });
|
|
4249
4053
|
|
|
@@ -4288,20 +4092,12 @@ function isInRange(min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER)
|
|
|
4288
4092
|
class DbxFormExtensionModule {
|
|
4289
4093
|
}
|
|
4290
4094
|
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,
|
|
4292
|
-
|
|
4293
|
-
DbxFormFormlyFieldModule] });
|
|
4294
|
-
DbxFormExtensionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExtensionModule, imports: [DbxFormModule,
|
|
4295
|
-
DbxFormlyModule,
|
|
4296
|
-
DbxFormFormlyFieldModule] });
|
|
4095
|
+
DbxFormExtensionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExtensionModule, exports: [DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule] });
|
|
4096
|
+
DbxFormExtensionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExtensionModule, imports: [DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule] });
|
|
4297
4097
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExtensionModule, decorators: [{
|
|
4298
4098
|
type: NgModule,
|
|
4299
4099
|
args: [{
|
|
4300
|
-
exports: [
|
|
4301
|
-
DbxFormModule,
|
|
4302
|
-
DbxFormlyModule,
|
|
4303
|
-
DbxFormFormlyFieldModule
|
|
4304
|
-
]
|
|
4100
|
+
exports: [DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule]
|
|
4305
4101
|
}]
|
|
4306
4102
|
}] });
|
|
4307
4103
|
|