@dereekb/dbx-form 8.7.4 → 8.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/form/action/form.action.directive.mjs +3 -2
- package/esm2020/lib/formly/field/value/array/array.field.component.mjs +3 -2
- package/esm2020/lib/formly/field/value/array/array.field.mjs +3 -2
- package/esm2020/lib/formly/field/value/text/text.field.mjs +5 -4
- package/esm2020/lib/formly/field/wrapper/expandable.wrapper.component.mjs +4 -4
- package/esm2020/lib/formly/field/wrapper/expandable.wrapper.delegate.mjs +6 -6
- package/esm2020/lib/formly/field/wrapper/flex.wrapper.component.mjs +4 -4
- package/esm2020/lib/formly/field/wrapper/info.wrapper.component.mjs +2 -2
- package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +3 -3
- package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +3 -3
- package/esm2020/lib/formly/field/wrapper/wrapper.mjs +3 -5
- package/esm2020/lib/formly/formly.form.component.mjs +34 -18
- package/fesm2015/dereekb-dbx-form.mjs +65 -53
- package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form.mjs +59 -42
- package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
- package/lib/formly/field/value/array/_array.scss +2 -0
- package/lib/formly/field/value/array/array.field.d.ts +3 -2
- package/lib/formly/field/value/text/text.field.d.ts +5 -3
- package/lib/formly/field/wrapper/expandable.wrapper.delegate.d.ts +3 -6
- package/lib/formly/field/wrapper/flex.wrapper.component.d.ts +2 -6
- package/lib/formly/field/wrapper/info.wrapper.component.d.ts +2 -5
- package/lib/formly/field/wrapper/section.wrapper.component.d.ts +1 -4
- package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +1 -4
- package/lib/formly/field/wrapper/wrapper.d.ts +2 -2
- package/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { FormGroup } from '@angular/forms';
|
|
3
|
-
import { distinctUntilChanged, map, throttleTime, startWith, BehaviorSubject, Subject, switchMap, shareReplay, of, scan } from 'rxjs';
|
|
3
|
+
import { distinctUntilChanged, map, throttleTime, startWith, BehaviorSubject, Subject, switchMap, shareReplay, of, scan, filter, timer, first } from 'rxjs';
|
|
4
4
|
import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
|
|
5
5
|
import { DbxFormState, DEFAULT_FORM_DISABLED_KEY, provideDbxMutableForm } from '../form/form';
|
|
6
6
|
import { DbxFormlyContext } from './formly.context';
|
|
@@ -48,23 +48,39 @@ export class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
|
|
|
48
48
|
changesSinceLastResetCount: 0,
|
|
49
49
|
isFormValid: false,
|
|
50
50
|
isFormDisabled: false
|
|
51
|
-
}),
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
51
|
+
}), switchMap(({ changesSinceLastResetCount, isFormValid, isFormDisabled }) => {
|
|
52
|
+
const nextState = () => {
|
|
53
|
+
const isReset = changesSinceLastResetCount <= 1; // first emission after reset is the first value.
|
|
54
|
+
const complete = isFormValid;
|
|
55
|
+
const nextState = {
|
|
56
|
+
isComplete: complete,
|
|
57
|
+
state: isReset ? DbxFormState.RESET : DbxFormState.USED,
|
|
58
|
+
status: this.form.status,
|
|
59
|
+
untouched: this.form.untouched,
|
|
60
|
+
pristine: this.form.pristine,
|
|
61
|
+
changesCount: changesSinceLastResetCount,
|
|
62
|
+
lastResetAt,
|
|
63
|
+
disabled: this.disabled,
|
|
64
|
+
isDisabled: isFormDisabled
|
|
65
|
+
};
|
|
66
|
+
return nextState;
|
|
64
67
|
};
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
+
const state = nextState();
|
|
69
|
+
if (isFormValid && this.form.untouched) {
|
|
70
|
+
return timer(150, 200).pipe(
|
|
71
|
+
// every 200 ms check if the form is now marked touched, then push a new state
|
|
72
|
+
filter(() => this.form.touched), map(() => nextState()),
|
|
73
|
+
// only push the new state once
|
|
74
|
+
first(),
|
|
75
|
+
// send the first value immediately
|
|
76
|
+
startWith(state));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return of(state);
|
|
80
|
+
}
|
|
81
|
+
})
|
|
82
|
+
// tapLog('Change: ')
|
|
83
|
+
)), shareReplay(1));
|
|
68
84
|
}
|
|
69
85
|
ngOnInit() {
|
|
70
86
|
this.context.setDelegate(this);
|
|
@@ -165,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
165
181
|
}
|
|
166
182
|
}]
|
|
167
183
|
}], ctorParameters: function () { return [{ type: i1.DbxFormlyContext }]; } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LmZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEosT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUE2QyxZQUFZLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekksT0FBTyxFQUFFLGdCQUFnQixFQUFpRCxNQUFNLGtCQUFrQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQXlCLG9DQUFvQyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRbkc7O0dBRUc7QUFjSCxNQUFNLE9BQU8sc0JBQTBCLFNBQVEsNkJBQTZCO0lBeUUxRSxZQUE2QixPQUE0QjtRQUN2RCxLQUFLLEVBQUUsQ0FBQztRQURtQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQXhFakQsWUFBTyxHQUFHLElBQUksZUFBZSxDQUF5QyxTQUFTLENBQUMsQ0FBQztRQUNqRixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQWUsRUFB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QzNCLENBQUM7O21IQXhLVSxzQkFBc0I7dUdBQXRCLHNCQUFzQiw2RUFMdEIscUJBQXFCLENBQUMsc0JBQXNCLENBQUMsdUVBTDlDOzs7O0dBSVQ7MkZBTVUsc0JBQXNCO2tCQWJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsU0FBUyxFQUFFLHFCQUFxQix3QkFBd0I7b0JBQ3hELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsWUFBWTtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHRocm90dGxlVGltZSwgc3RhcnRXaXRoLCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHN3aXRjaE1hcCwgc2hhcmVSZXBsYXksIG9mLCBzY2FuIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieEZvcm0sIERieEZvcm1EaXNhYmxlZEtleSwgRGJ4Rm9ybUV2ZW50LCBEYnhGb3JtU3RhdGUsIERFRkFVTFRfRk9STV9ESVNBQkxFRF9LRVksIHByb3ZpZGVEYnhNdXRhYmxlRm9ybSB9IGZyb20gJy4uL2Zvcm0vZm9ybSc7XG5pbXBvcnQgeyBEYnhGb3JtbHlDb250ZXh0LCBEYnhGb3JtbHlDb250ZXh0RGVsZWdhdGUsIERieEZvcm1seUluaXRpYWxpemUgfSBmcm9tICcuL2Zvcm1seS5jb250ZXh0JztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBzY2FuQ291bnQsIHN3aXRjaE1hcE1heWJlT2JzLCBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEJvb2xlYW5TdHJpbmdLZXlBcnJheSwgQm9vbGVhblN0cmluZ0tleUFycmF5VXRpbGl0eUluc3RhbmNlLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1seUZvcm1TdGF0ZSB7XG4gIGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50OiBudW1iZXI7XG4gIGlzRm9ybVZhbGlkOiBib29sZWFuO1xuICBpc0Zvcm1EaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciByZW5kaW5nIGEgZm9ybSBmcm9tIGEgRGJ4Rm9ybWx5Q29udGV4dC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZvcm1seScsXG4gIGV4cG9ydEFzOiAnZm9ybWx5JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImRieC1mb3JtbHlcIj5cbiAgICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCIoZmllbGRzJCB8IGFzeW5jKSA/PyBbXVwiIFttb2RlbF09XCJtb2RlbFwiPjwvZm9ybWx5LWZvcm0+XG4gICAgPC9mb3JtPlxuICBgLFxuICBwcm92aWRlcnM6IHByb3ZpZGVEYnhNdXRhYmxlRm9ybShEYnhGb3JtbHlGb3JtQ29tcG9uZW50KSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZGJ4LWZvcm1seSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtbHlGb3JtQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBEYnhGb3JtLCBEYnhGb3JtbHlDb250ZXh0RGVsZWdhdGU8VD4sIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfZmllbGRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxPYnNlcnZhYmxlPEZvcm1seUZpZWxkQ29uZmlnW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBfZXZlbnRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYnhGb3JtRXZlbnQ+KHsgaXNDb21wbGV0ZTogZmFsc2UsIHN0YXRlOiBEYnhGb3JtU3RhdGUuSU5JVElBTElaSU5HLCBzdGF0dXM6ICdQRU5ESU5HJyB9KTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJvb2xlYW5TdHJpbmdLZXlBcnJheT4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIF9yZXNldCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4obmV3IERhdGUoKSk7XG4gIHByaXZhdGUgX2ZvcmNlVXBkYXRlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9kaXNhYmxlZFN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIG1vZGVsOiBUID0ge30gYXMgVDtcbiAgb3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcblxuICByZWFkb25seSBmaWVsZHMkID0gdGhpcy5fZmllbGRzLnBpcGUoc3dpdGNoTWFwTWF5YmVPYnMoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IHN0cmVhbSQ6IE9ic2VydmFibGU8RGJ4Rm9ybUV2ZW50PiA9IHRoaXMuX3Jlc2V0LnBpcGUoXG4gICAgc3dpdGNoTWFwKChsYXN0UmVzZXRBdCkgPT5cbiAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0aHJvdHRsZVRpbWUoNTAsIHVuZGVmaW5lZCwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogdHJ1ZSB9KSxcbiAgICAgICAgc2NhbkNvdW50KC0xKSxcbiAgICAgICAgLy8gdXBkYXRlIG9uIHZhbGlkYXRpb24gY2hhbmdlcyB0b28uIERvZXMgbm90IGNvdW50IHRvd2FyZHMgY2hhbmdlcyBzaW5jZSBsYXN0IHJlc2V0LlxuICAgICAgICBzd2l0Y2hNYXAoKGNoYW5nZXNTaW5jZUxhc3RSZXNldCkgPT4gdGhpcy5mb3JtLnN0YXR1c0NoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtLnN0YXR1cyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnBpcGUobWFwKCgpID0+IGNoYW5nZXNTaW5jZUxhc3RSZXNldCkpKSxcbiAgICAgICAgbWFwKChjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudDogbnVtYmVyKSA9PiAoe1xuICAgICAgICAgIGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50LFxuICAgICAgICAgIGlzRm9ybVZhbGlkOiB0aGlzLmZvcm0uc3RhdHVzICE9PSAnUEVORElORycgJiYgdGhpcy5mb3JtLnZhbGlkLFxuICAgICAgICAgIGlzRm9ybURpc2FibGVkOiB0aGlzLmZvcm0uZGlzYWJsZWRcbiAgICAgICAgfSkpLFxuICAgICAgICBzY2FuKFxuICAgICAgICAgIChhY2M6IERieEZvcm1seUZvcm1TdGF0ZSwgbmV4dDogRGJ4Rm9ybWx5Rm9ybVN0YXRlKSA9PiB7XG4gICAgICAgICAgICAvLyBQYXNzIGZvcndhcmQgdmFsaWQgaWYgbmV4dCB3YXMgYSBkaXNhYmxlZCBjaGFuZ2UvY2hlY2ssIHdoaWNoIGNoYW5nZXMgYW5ndWxhciBmb3JtJ3MgaXNWYWxpZCB2YWx1ZS5cbiAgICAgICAgICAgIC8vIElmIGl0IHdhcyB2YWxpZCBwcmlvciwgdGhlbiBpdCBzaG91bGQgYmUgdmFsaWQgbm93LCB1bmxlc3Mgd2UganVzdCByZXNldCwgaW4gd2hpY2ggY2FzZSBpdCBtaWdodCBub3QgYmUgdmFsaWQuXG4gICAgICAgICAgICBjb25zdCB2YWxpZCA9IG5leHQuaXNGb3JtVmFsaWQgfHwgKG5leHQuaXNGb3JtRGlzYWJsZWQgJiYgYWNjLmlzRm9ybVZhbGlkICYmIGFjYy5jaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudCA+IDApO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudDogbmV4dC5jaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudCxcbiAgICAgICAgICAgICAgaXNGb3JtVmFsaWQ6IHZhbGlkLFxuICAgICAgICAgICAgICBpc0Zvcm1EaXNhYmxlZDogbmV4dC5pc0Zvcm1EaXNhYmxlZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50OiAwLFxuICAgICAgICAgICAgaXNGb3JtVmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgaXNGb3JtRGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBtYXAoKHsgY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQsIGlzRm9ybVZhbGlkLCBpc0Zvcm1EaXNhYmxlZCB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNSZXNldCA9IGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50IDw9IDE7IC8vIGZpcnN0IGVtaXNzaW9uIGFmdGVyIHJlc2V0IGlzIHRoZSBmaXJzdCB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBjb21wbGV0ZSA9IGlzRm9ybVZhbGlkO1xuXG4gICAgICAgICAgY29uc3QgbmV4dFN0YXRlOiBEYnhGb3JtRXZlbnQgPSB7XG4gICAgICAgICAgICBpc0NvbXBsZXRlOiBjb21wbGV0ZSxcbiAgICAgICAgICAgIHN0YXRlOiBpc1Jlc2V0ID8gRGJ4Rm9ybVN0YXRlLlJFU0VUIDogRGJ4Rm9ybVN0YXRlLlVTRUQsXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMuZm9ybS5zdGF0dXMsXG4gICAgICAgICAgICB1bnRvdWNoZWQ6IHRoaXMuZm9ybS51bnRvdWNoZWQsXG4gICAgICAgICAgICBwcmlzdGluZTogdGhpcy5mb3JtLnByaXN0aW5lLFxuICAgICAgICAgICAgY2hhbmdlc0NvdW50OiBjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudCxcbiAgICAgICAgICAgIGxhc3RSZXNldEF0LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICAgICBpc0Rpc2FibGVkOiBpc0Zvcm1EaXNhYmxlZFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQ2hhbmdlOiAnLCBuZXh0U3RhdGUpO1xuXG4gICAgICAgICAgcmV0dXJuIG5leHRTdGF0ZTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb250ZXh0OiBEYnhGb3JtbHlDb250ZXh0PFQ+KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5zZXREZWxlZ2F0ZSh0aGlzKTtcblxuICAgIHRoaXMuX2Rpc2FibGVkU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuX2Rpc2FibGVkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKChkaXNhYmxlZCkgPT4ge1xuICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHlJbnN0YW5jZS5pc1RydWUoZGlzYWJsZWQpO1xuXG4gICAgICBpZiAodGhpcy5mb3JtLmRpc2FibGVkICE9PSBpc0Rpc2FibGVkKSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmVuYWJsZSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmxvY2tTZXQub25OZXh0VW5sb2NrKCgpID0+IHtcbiAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbnRleHQuY2xlYXJEZWxlZ2F0ZSh0aGlzKTtcbiAgICAgIHRoaXMuX2V2ZW50cy5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fZmllbGRzLmNvbXBsZXRlKCk7XG4gICAgICB0aGlzLl9yZXNldC5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fZm9yY2VVcGRhdGUuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX2Rpc2FibGVkLmNvbXBsZXRlKCk7XG4gICAgICB0aGlzLl9kaXNhYmxlZFN1Yi5kZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBNQVJLOiBEZWxlZ2F0ZVxuICBpbml0KGluaXRpYWxpemU6IERieEZvcm1seUluaXRpYWxpemU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLl9maWVsZHMubmV4dChpbml0aWFsaXplLmZpZWxkcyk7XG4gICAgdGhpcy5fZGlzYWJsZWQubmV4dChpbml0aWFsaXplLmluaXRpYWxEaXNhYmxlZCk7XG4gIH1cblxuICBnZXRWYWx1ZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gb2YodGhpcy5mb3JtLnZhbHVlKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5sb2coJ3NldCB2YWx1ZTogJywgdmFsdWUpO1xuICAgIHRoaXMubW9kZWwgPSBjbG9uZURlZXAodmFsdWUpIGFzIFQ7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnVwZGF0ZUluaXRpYWxWYWx1ZSkge1xuICAgICAgdGhpcy5vcHRpb25zLnVwZGF0ZUluaXRpYWxWYWx1ZSgpO1xuICAgICAgdGhpcy5vcHRpb25zLnJlc2V0TW9kZWw/LigpO1xuICAgIH1cblxuICAgIC8vIFJlLW1hcmsgYXMgdW50b3VjaGVkIGFuZCBwcmlzdGluZS5cbiAgICB0aGlzLmZvcm0ubWFya0FzVW50b3VjaGVkKCk7XG4gICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG5cbiAgICAvLyBBZnRlciB1cGRhdGluZyB0aGUgdmFsdWUsIGlmIHRoZSBmb3JtIGlzIHN0aWxsIHVudG91Y2hlZCBtYXJrIGl0IGFzIHByaXN0aW5lIGFnYWluLlxuICAgIC8vIFNvbWV0aW1lcyB0aGUgdmFsdWVzIGdldCBtYXJrZWQgYXMgY2hhbmdlZCBhbmQgYnJlYWsgcHJpc3RpbmUgYmVmb3JlIGEgdXNlciBoYXMgdGltZSB0byBpbnRlcmFjdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm0udW50b3VjaGVkKSB7XG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgfVxuICAgIH0sIDUwMCk7XG5cbiAgICAvLyBwaW5nIHJlc2V0XG4gICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgfVxuXG4gIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLnJlc2V0TW9kZWwpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5yZXNldE1vZGVsKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fcmVzZXQubmV4dChuZXcgRGF0ZSgpKTtcbiAgfVxuXG4gIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuU3RyaW5nS2V5QXJyYXlVdGlsaXR5SW5zdGFuY2UuaXNUcnVlKHRoaXMuZGlzYWJsZWQpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCk6IEJvb2xlYW5TdHJpbmdLZXlBcnJheSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkLnZhbHVlO1xuICB9XG5cbiAgZ2V0RGlzYWJsZWQoKTogT2JzZXJ2YWJsZTxCb29sZWFuU3RyaW5nS2V5QXJyYXk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBzZXREaXNhYmxlZChrZXk/OiBEYnhGb3JtRGlzYWJsZWRLZXksIGRpc2FibGVkID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuX2Rpc2FibGVkLm5leHQoQm9vbGVhblN0cmluZ0tleUFycmF5VXRpbGl0eUluc3RhbmNlLnNldCh0aGlzLmRpc2FibGVkLCBrZXkgPz8gREVGQVVMVF9GT1JNX0RJU0FCTEVEX0tFWSwgZGlzYWJsZWQpKTtcbiAgfVxuXG4gIC8vIE1BUks6IFVwZGF0ZVxuICBmb3JjZUZvcm1VcGRhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9yY2VVcGRhdGUubmV4dCgpO1xuICB9XG59XG4iXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LmZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEssT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEUsT0FBTyxFQUE2QyxZQUFZLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekksT0FBTyxFQUFFLGdCQUFnQixFQUFpRCxNQUFNLGtCQUFrQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQXlCLG9DQUFvQyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRbkc7O0dBRUc7QUFjSCxNQUFNLE9BQU8sc0JBQTBCLFNBQVEsNkJBQTZCO0lBMEYxRSxZQUE2QixPQUE0QjtRQUN2RCxLQUFLLEVBQUUsQ0FBQztRQURtQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQXpGakQsWUFBTyxHQUFHLElBQUksZUFBZSxDQUF5QyxTQUFTLENBQUMsQ0FBQztRQUNq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LEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUF3QixFQUFFLFFBQVEsR0FBRyxJQUFJO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFFRCxlQUFlO0lBQ2YsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7bUhBekxVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDZFQUx0QixxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQyx1RUFMOUM7Ozs7R0FJVDsyRkFNVSxzQkFBc0I7a0JBYmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRSxRQUFRO29CQUNsQixRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxTQUFTLEVBQUUscUJBQXFCLHdCQUF3QjtvQkFDeEQsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxZQUFZO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGhyb3R0bGVUaW1lLCBzdGFydFdpdGgsIEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgc3dpdGNoTWFwLCBzaGFyZVJlcGxheSwgb2YsIHNjYW4sIGZpbHRlciwgdGltZXIsIGZpcnN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieEZvcm0sIERieEZvcm1EaXNhYmxlZEtleSwgRGJ4Rm9ybUV2ZW50LCBEYnhGb3JtU3RhdGUsIERFRkFVTFRfRk9STV9ESVNBQkxFRF9LRVksIHByb3ZpZGVEYnhNdXRhYmxlRm9ybSB9IGZyb20gJy4uL2Zvcm0vZm9ybSc7XG5pbXBvcnQgeyBEYnhGb3JtbHlDb250ZXh0LCBEYnhGb3JtbHlDb250ZXh0RGVsZWdhdGUsIERieEZvcm1seUluaXRpYWxpemUgfSBmcm9tICcuL2Zvcm1seS5jb250ZXh0JztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBzY2FuQ291bnQsIHN3aXRjaE1hcE1heWJlT2JzLCBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEJvb2xlYW5TdHJpbmdLZXlBcnJheSwgQm9vbGVhblN0cmluZ0tleUFycmF5VXRpbGl0eUluc3RhbmNlLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZvcm1seUZvcm1TdGF0ZSB7XG4gIGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50OiBudW1iZXI7XG4gIGlzRm9ybVZhbGlkOiBib29sZWFuO1xuICBpc0Zvcm1EaXNhYmxlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciByZW5kaW5nIGEgZm9ybSBmcm9tIGEgRGJ4Rm9ybWx5Q29udGV4dC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZvcm1seScsXG4gIGV4cG9ydEFzOiAnZm9ybWx5JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImRieC1mb3JtbHlcIj5cbiAgICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCIoZmllbGRzJCB8IGFzeW5jKSA/PyBbXVwiIFttb2RlbF09XCJtb2RlbFwiPjwvZm9ybWx5LWZvcm0+XG4gICAgPC9mb3JtPlxuICBgLFxuICBwcm92aWRlcnM6IHByb3ZpZGVEYnhNdXRhYmxlRm9ybShEYnhGb3JtbHlGb3JtQ29tcG9uZW50KSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZGJ4LWZvcm1seSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtbHlGb3JtQ29tcG9uZW50PFQ+IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBEYnhGb3JtLCBEYnhGb3JtbHlDb250ZXh0RGVsZWdhdGU8VD4sIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfZmllbGRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxPYnNlcnZhYmxlPEZvcm1seUZpZWxkQ29uZmlnW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBfZXZlbnRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYnhGb3JtRXZlbnQ+KHsgaXNDb21wbGV0ZTogZmFsc2UsIHN0YXRlOiBEYnhGb3JtU3RhdGUuSU5JVElBTElaSU5HLCBzdGF0dXM6ICdQRU5ESU5HJyB9KTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJvb2xlYW5TdHJpbmdLZXlBcnJheT4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIF9yZXNldCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZT4obmV3IERhdGUoKSk7XG4gIHByaXZhdGUgX2ZvcmNlVXBkYXRlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9kaXNhYmxlZFN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIG1vZGVsOiBUID0ge30gYXMgVDtcbiAgb3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcblxuICByZWFkb25seSBmaWVsZHMkID0gdGhpcy5fZmllbGRzLnBpcGUoc3dpdGNoTWFwTWF5YmVPYnMoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IHN0cmVhbSQ6IE9ic2VydmFibGU8RGJ4Rm9ybUV2ZW50PiA9IHRoaXMuX3Jlc2V0LnBpcGUoXG4gICAgc3dpdGNoTWFwKChsYXN0UmVzZXRBdCkgPT5cbiAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKDApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0aHJvdHRsZVRpbWUoNTAsIHVuZGVmaW5lZCwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogdHJ1ZSB9KSxcbiAgICAgICAgc2NhbkNvdW50KC0xKSxcbiAgICAgICAgLy8gdXBkYXRlIG9uIHZhbGlkYXRpb24gY2hhbmdlcyB0b28uIERvZXMgbm90IGNvdW50IHRvd2FyZHMgY2hhbmdlcyBzaW5jZSBsYXN0IHJlc2V0LlxuICAgICAgICBzd2l0Y2hNYXAoKGNoYW5nZXNTaW5jZUxhc3RSZXNldCkgPT4gdGhpcy5mb3JtLnN0YXR1c0NoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtLnN0YXR1cyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnBpcGUobWFwKCgpID0+IGNoYW5nZXNTaW5jZUxhc3RSZXNldCkpKSxcbiAgICAgICAgbWFwKChjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudDogbnVtYmVyKSA9PiAoe1xuICAgICAgICAgIGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50LFxuICAgICAgICAgIGlzRm9ybVZhbGlkOiB0aGlzLmZvcm0uc3RhdHVzICE9PSAnUEVORElORycgJiYgdGhpcy5mb3JtLnZhbGlkLFxuICAgICAgICAgIGlzRm9ybURpc2FibGVkOiB0aGlzLmZvcm0uZGlzYWJsZWRcbiAgICAgICAgfSkpLFxuICAgICAgICBzY2FuKFxuICAgICAgICAgIChhY2M6IERieEZvcm1seUZvcm1TdGF0ZSwgbmV4dDogRGJ4Rm9ybWx5Rm9ybVN0YXRlKSA9PiB7XG4gICAgICAgICAgICAvLyBQYXNzIGZvcndhcmQgdmFsaWQgaWYgbmV4dCB3YXMgYSBkaXNhYmxlZCBjaGFuZ2UvY2hlY2ssIHdoaWNoIGNoYW5nZXMgYW5ndWxhciBmb3JtJ3MgaXNWYWxpZCB2YWx1ZS5cbiAgICAgICAgICAgIC8vIElmIGl0IHdhcyB2YWxpZCBwcmlvciwgdGhlbiBpdCBzaG91bGQgYmUgdmFsaWQgbm93LCB1bmxlc3Mgd2UganVzdCByZXNldCwgaW4gd2hpY2ggY2FzZSBpdCBtaWdodCBub3QgYmUgdmFsaWQuXG4gICAgICAgICAgICBjb25zdCB2YWxpZCA9IG5leHQuaXNGb3JtVmFsaWQgfHwgKG5leHQuaXNGb3JtRGlzYWJsZWQgJiYgYWNjLmlzRm9ybVZhbGlkICYmIGFjYy5jaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudCA+IDApO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBjaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudDogbmV4dC5jaGFuZ2VzU2luY2VMYXN0UmVzZXRDb3VudCxcbiAgICAgICAgICAgICAgaXNGb3JtVmFsaWQ6IHZhbGlkLFxuICAgICAgICAgICAgICBpc0Zvcm1EaXNhYmxlZDogbmV4dC5pc0Zvcm1EaXNhYmxlZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50OiAwLFxuICAgICAgICAgICAgaXNGb3JtVmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgaXNGb3JtRGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBzd2l0Y2hNYXAoKHsgY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQsIGlzRm9ybVZhbGlkLCBpc0Zvcm1EaXNhYmxlZCB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV4dFN0YXRlID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNSZXNldCA9IGNoYW5nZXNTaW5jZUxhc3RSZXNldENvdW50IDw9IDE7IC8vIGZpcnN0IGVtaXNzaW9uIGFmdGVyIHJlc2V0IGlzIHRoZSBmaXJzdCB2YWx1ZS5cbiAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlID0gaXNGb3JtVmFsaWQ7XG5cbiAgICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZTogRGJ4Rm9ybUV2ZW50ID0ge1xuICAgICAgICAgICAgICBpc0NvbXBsZXRlOiBjb21wbGV0ZSxcbiAgICAgICAgICAgICAgc3RhdGU6IGlzUmVzZXQgPyBEYnhGb3JtU3RhdGUuUkVTRVQgOiBEYnhGb3JtU3RhdGUuVVNFRCxcbiAgICAgICAgICAgICAgc3RhdHVzOiB0aGlzLmZvcm0uc3RhdHVzLFxuICAgICAgICAgICAgICB1bnRvdWNoZWQ6IHRoaXMuZm9ybS51bnRvdWNoZWQsXG4gICAgICAgICAgICAgIHByaXN0aW5lOiB0aGlzLmZvcm0ucHJpc3RpbmUsXG4gICAgICAgICAgICAgIGNoYW5nZXNDb3VudDogY2hhbmdlc1NpbmNlTGFzdFJlc2V0Q291bnQsXG4gICAgICAgICAgICAgIGxhc3RSZXNldEF0LFxuICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgaXNEaXNhYmxlZDogaXNGb3JtRGlzYWJsZWRcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBuZXh0U3RhdGU7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gbmV4dFN0YXRlKCk7XG5cbiAgICAgICAgICBpZiAoaXNGb3JtVmFsaWQgJiYgdGhpcy5mb3JtLnVudG91Y2hlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRpbWVyKDE1MCwgMjAwKS5waXBlKFxuICAgICAgICAgICAgICAvLyBldmVyeSAyMDAgbXMgY2hlY2sgaWYgdGhlIGZvcm0gaXMgbm93IG1hcmtlZCB0b3VjaGVkLCB0aGVuIHB1c2ggYSBuZXcgc3RhdGVcbiAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybS50b3VjaGVkKSxcbiAgICAgICAgICAgICAgbWFwKCgpID0+IG5leHRTdGF0ZSgpKSxcbiAgICAgICAgICAgICAgLy8gb25seSBwdXNoIHRoZSBuZXcgc3RhdGUgb25jZVxuICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAvLyBzZW5kIHRoZSBmaXJzdCB2YWx1ZSBpbW1lZGlhdGVseVxuICAgICAgICAgICAgICBzdGFydFdpdGgoc3RhdGUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2Yoc3RhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLy8gdGFwTG9nKCdDaGFuZ2U6ICcpXG4gICAgICApXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogRGJ4Rm9ybWx5Q29udGV4dDxUPikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0RGVsZWdhdGUodGhpcyk7XG5cbiAgICB0aGlzLl9kaXNhYmxlZFN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLl9kaXNhYmxlZC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoZGlzYWJsZWQpID0+IHtcbiAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBCb29sZWFuU3RyaW5nS2V5QXJyYXlVdGlsaXR5SW5zdGFuY2UuaXNUcnVlKGRpc2FibGVkKTtcblxuICAgICAgaWYgKHRoaXMuZm9ybS5kaXNhYmxlZCAhPT0gaXNEaXNhYmxlZCkge1xuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZm9ybS5lbmFibGUoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5sb2NrU2V0Lm9uTmV4dFVubG9jaygoKSA9PiB7XG4gICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgdGhpcy5jb250ZXh0LmNsZWFyRGVsZWdhdGUodGhpcyk7XG4gICAgICB0aGlzLl9ldmVudHMuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX2ZpZWxkcy5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fcmVzZXQuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuX2ZvcmNlVXBkYXRlLmNvbXBsZXRlKCk7XG4gICAgICB0aGlzLl9kaXNhYmxlZC5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5fZGlzYWJsZWRTdWIuZGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gTUFSSzogRGVsZWdhdGVcbiAgaW5pdChpbml0aWFsaXplOiBEYnhGb3JtbHlJbml0aWFsaXplPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5fZmllbGRzLm5leHQoaW5pdGlhbGl6ZS5maWVsZHMpO1xuICAgIHRoaXMuX2Rpc2FibGVkLm5leHQoaW5pdGlhbGl6ZS5pbml0aWFsRGlzYWJsZWQpO1xuICB9XG5cbiAgZ2V0VmFsdWUoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIG9mKHRoaXMuZm9ybS52YWx1ZSk7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgIC8vIGNvbnNvbGUubG9nKCdzZXQgdmFsdWU6ICcsIHZhbHVlKTtcbiAgICB0aGlzLm1vZGVsID0gY2xvbmVEZWVwKHZhbHVlKSBhcyBUO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy51cGRhdGVJbml0aWFsVmFsdWUpIHtcbiAgICAgIHRoaXMub3B0aW9ucy51cGRhdGVJbml0aWFsVmFsdWUoKTtcbiAgICAgIHRoaXMub3B0aW9ucy5yZXNldE1vZGVsPy4oKTtcbiAgICB9XG5cbiAgICAvLyBSZS1tYXJrIGFzIHVudG91Y2hlZCBhbmQgcHJpc3RpbmUuXG4gICAgdGhpcy5mb3JtLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuXG4gICAgLy8gQWZ0ZXIgdXBkYXRpbmcgdGhlIHZhbHVlLCBpZiB0aGUgZm9ybSBpcyBzdGlsbCB1bnRvdWNoZWQgbWFyayBpdCBhcyBwcmlzdGluZSBhZ2Fpbi5cbiAgICAvLyBTb21ldGltZXMgdGhlIHZhbHVlcyBnZXQgbWFya2VkIGFzIGNoYW5nZWQgYW5kIGJyZWFrIHByaXN0aW5lIGJlZm9yZSBhIHVzZXIgaGFzIHRpbWUgdG8gaW50ZXJhY3QuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3JtLnVudG91Y2hlZCkge1xuICAgICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuXG4gICAgLy8gcGluZyByZXNldFxuICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gIH1cblxuICByZXNldEZvcm0oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5yZXNldE1vZGVsKSB7XG4gICAgICB0aGlzLm9wdGlvbnMucmVzZXRNb2RlbCgpO1xuICAgIH1cblxuICAgIHRoaXMuX3Jlc2V0Lm5leHQobmV3IERhdGUoKSk7XG4gIH1cblxuICBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhblN0cmluZ0tleUFycmF5VXRpbGl0eUluc3RhbmNlLmlzVHJ1ZSh0aGlzLmRpc2FibGVkKTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpOiBCb29sZWFuU3RyaW5nS2V5QXJyYXkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZC52YWx1ZTtcbiAgfVxuXG4gIGdldERpc2FibGVkKCk6IE9ic2VydmFibGU8Qm9vbGVhblN0cmluZ0tleUFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2V0RGlzYWJsZWQoa2V5PzogRGJ4Rm9ybURpc2FibGVkS2V5LCBkaXNhYmxlZCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLl9kaXNhYmxlZC5uZXh0KEJvb2xlYW5TdHJpbmdLZXlBcnJheVV0aWxpdHlJbnN0YW5jZS5zZXQodGhpcy5kaXNhYmxlZCwga2V5ID8/IERFRkFVTFRfRk9STV9ESVNBQkxFRF9LRVksIGRpc2FibGVkKSk7XG4gIH1cblxuICAvLyBNQVJLOiBVcGRhdGVcbiAgZm9yY2VGb3JtVXBkYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvcmNlVXBkYXRlLm5leHQoKTtcbiAgfVxufVxuIl19
|
|
@@ -5,7 +5,7 @@ import { CommonModule } from '@angular/common';
|
|
|
5
5
|
import * as i1$1 from '@dereekb/dbx-web';
|
|
6
6
|
import { DbxActionTransitionSafetyDirective, DbxTextModule, DbxLoadingModule, DbxFlexLayoutModule, DbxSectionLayoutModule, DbxRouterAnchorModule, AbstractDbxSelectionListWrapperDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, AbstractDbxSelectionListViewDirective, addConfigToValueListItems, provideDbxListView, AbstractDbxValueListViewItemComponent, DbxButtonModule, DbxListLayoutModule, mapCompactModeObs, DbxBarLayoutModule } from '@dereekb/dbx-web';
|
|
7
7
|
import { isPast, addSeconds, isSameMinute, startOfDay, isSameDay, addMinutes } from 'date-fns';
|
|
8
|
-
import { BehaviorSubject, switchMap, first, exhaustMap, of, catchError, delay, filter, combineLatest, map, distinctUntilChanged, mergeMap, shareReplay, startWith, debounceTime, Subject, skipWhile, interval, tap, merge, throttleTime, scan } from 'rxjs';
|
|
8
|
+
import { BehaviorSubject, switchMap, first, exhaustMap, of, catchError, delay, filter, combineLatest, map, distinctUntilChanged, mergeMap, shareReplay, startWith, debounceTime, Subject, skipWhile, interval, tap, merge, throttleTime, scan, timer } from 'rxjs';
|
|
9
9
|
import { LockSet, SubscriptionObject, asObservable, loadingStateHasFinishedLoading, switchMapMaybeObs, filterMaybe, switchMapMaybeDefault, SimpleLoadingContext, startWithBeginLoading, mapLoadingStateResults, successResult, ListLoadingStateContextInstance, isListLoadingStateEmpty, LoadingStateContextInstance, skipFirstMaybe, asyncPusherCache, scanCount } from '@dereekb/rxjs';
|
|
10
10
|
import * as i2 from '@dereekb/dbx-core';
|
|
11
11
|
import { AbstractSubscriptionDirective, safeDetectChanges, DbxInjectionComponentModule, DbxDatePipeModule, mergeDbxInjectionComponentConfigs, tapDetectChanges } from '@dereekb/dbx-core';
|
|
@@ -160,7 +160,8 @@ class DbxActionFormDirective {
|
|
|
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 receive value updates.
|
|
163
|
-
// More than a certain amount of updates implies that it is being typed into.
|
|
163
|
+
// More than a certain amount of updates implies that it is being typed into/used.
|
|
164
|
+
// 3 changes and 2 seconds are arbitrary values derived from guesses about any slow/late changes that may come from external directives for setup.
|
|
164
165
|
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)));
|
|
165
166
|
let validatorObs;
|
|
166
167
|
const initialIsValidCheck = event.isComplete;
|
|
@@ -617,7 +618,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
617
618
|
|
|
618
619
|
class DbxFormInfoWrapperComponent extends FieldWrapper {
|
|
619
620
|
get infoWrapper() {
|
|
620
|
-
return this.props
|
|
621
|
+
return this.props;
|
|
621
622
|
}
|
|
622
623
|
onInfoClick() {
|
|
623
624
|
this.infoWrapper.onInfoClick();
|
|
@@ -656,12 +657,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
656
657
|
|
|
657
658
|
class DbxFormSectionWrapperComponent extends FieldWrapper {
|
|
658
659
|
get header() {
|
|
659
|
-
|
|
660
|
-
return (_a = this.props.sectionWrapper) === null || _a === void 0 ? void 0 : _a.header;
|
|
660
|
+
return this.props.header;
|
|
661
661
|
}
|
|
662
662
|
get hint() {
|
|
663
|
-
|
|
664
|
-
return (_a = this.props.sectionWrapper) === null || _a === void 0 ? void 0 : _a.hint;
|
|
663
|
+
return this.props.hint;
|
|
665
664
|
}
|
|
666
665
|
}
|
|
667
666
|
DbxFormSectionWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -683,15 +682,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
683
682
|
|
|
684
683
|
class DbxFormFlexWrapperComponent extends FieldWrapper {
|
|
685
684
|
get flexWrapper() {
|
|
686
|
-
return this.props
|
|
685
|
+
return this.props;
|
|
687
686
|
}
|
|
688
687
|
get breakpoint() {
|
|
689
|
-
|
|
690
|
-
return (_a = this.flexWrapper) === null || _a === void 0 ? void 0 : _a.breakpoint;
|
|
688
|
+
return this.flexWrapper.breakpoint;
|
|
691
689
|
}
|
|
692
690
|
get relative() {
|
|
693
|
-
var _a
|
|
694
|
-
return (
|
|
691
|
+
var _a;
|
|
692
|
+
return (_a = this.flexWrapper.relative) !== null && _a !== void 0 ? _a : false;
|
|
695
693
|
}
|
|
696
694
|
}
|
|
697
695
|
DbxFormFlexWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormFlexWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -713,12 +711,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
713
711
|
|
|
714
712
|
class DbxFormSubsectionWrapperComponent extends FieldWrapper {
|
|
715
713
|
get header() {
|
|
716
|
-
|
|
717
|
-
return (_a = this.props.subsectionWrapper) === null || _a === void 0 ? void 0 : _a.header;
|
|
714
|
+
return this.props.header;
|
|
718
715
|
}
|
|
719
716
|
get hint() {
|
|
720
|
-
|
|
721
|
-
return (_a = this.props.subsectionWrapper) === null || _a === void 0 ? void 0 : _a.hint;
|
|
717
|
+
return this.props.hint;
|
|
722
718
|
}
|
|
723
719
|
}
|
|
724
720
|
DbxFormSubsectionWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormSubsectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -752,25 +748,25 @@ class AbstractFormExpandableSectionWrapperDirective extends FieldWrapper {
|
|
|
752
748
|
else {
|
|
753
749
|
return this.hasValue$;
|
|
754
750
|
}
|
|
755
|
-
}), shareReplay(1));
|
|
751
|
+
}), distinctUntilChanged(), shareReplay(1));
|
|
756
752
|
this.hasValue$ = this.formControl$.pipe(switchMap((x) => x.valueChanges.pipe(startWith(x.value), map((value) => {
|
|
757
753
|
return this.hasValueFn(value);
|
|
758
754
|
}), shareReplay(1))));
|
|
759
755
|
}
|
|
760
756
|
get expandableSection() {
|
|
761
|
-
return this.props
|
|
757
|
+
return this.props;
|
|
762
758
|
}
|
|
763
759
|
get hasValueFn() {
|
|
764
|
-
var _a
|
|
765
|
-
return (
|
|
760
|
+
var _a;
|
|
761
|
+
return (_a = this.expandableSection.hasValueFn) !== null && _a !== void 0 ? _a : DEFAULT_HAS_VALUE_FN;
|
|
766
762
|
}
|
|
767
763
|
get expandLabel() {
|
|
768
|
-
var _a, _b, _c, _d, _e
|
|
769
|
-
let label = (
|
|
764
|
+
var _a, _b, _c, _d, _e;
|
|
765
|
+
let label = (_a = this.expandableSection.expandLabel) !== null && _a !== void 0 ? _a : (_b = this.field.props) === null || _b === void 0 ? void 0 : _b.label;
|
|
770
766
|
if (label == null) {
|
|
771
|
-
const firstFieldGroup = (
|
|
767
|
+
const firstFieldGroup = (_c = this.field.fieldGroup) === null || _c === void 0 ? void 0 : _c[0];
|
|
772
768
|
if (firstFieldGroup) {
|
|
773
|
-
label = (
|
|
769
|
+
label = (_e = (_d = firstFieldGroup.props) === null || _d === void 0 ? void 0 : _d.label) !== null && _e !== void 0 ? _e : firstFieldGroup.key;
|
|
774
770
|
}
|
|
775
771
|
}
|
|
776
772
|
return label;
|
|
@@ -797,8 +793,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
797
793
|
*/
|
|
798
794
|
class DbxFormExpandWrapperComponent extends AbstractFormExpandableSectionWrapperDirective {
|
|
799
795
|
get buttonType() {
|
|
800
|
-
var _a
|
|
801
|
-
return (
|
|
796
|
+
var _a;
|
|
797
|
+
return (_a = this.expandableSection.buttonType) !== null && _a !== void 0 ? _a : 'button';
|
|
802
798
|
}
|
|
803
799
|
}
|
|
804
800
|
DbxFormExpandWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFormExpandWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -808,7 +804,7 @@ DbxFormExpandWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
808
804
|
<ng-container #fieldComponent></ng-container>
|
|
809
805
|
</ng-container>
|
|
810
806
|
<ng-container *ngSwitchCase="false">
|
|
811
|
-
<span class="dbx-form-
|
|
807
|
+
<span class="dbx-form-expand-wrapper-button" (click)="open()">{{ expandLabel }}</span>
|
|
812
808
|
</ng-container>
|
|
813
809
|
</ng-container>
|
|
814
810
|
`, isInline: true, directives: [{ type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i5.AsyncPipe } });
|
|
@@ -821,7 +817,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
821
817
|
<ng-container #fieldComponent></ng-container>
|
|
822
818
|
</ng-container>
|
|
823
819
|
<ng-container *ngSwitchCase="false">
|
|
824
|
-
<span class="dbx-form-
|
|
820
|
+
<span class="dbx-form-expand-wrapper-button" (click)="open()">{{ expandLabel }}</span>
|
|
825
821
|
</ng-container>
|
|
826
822
|
</ng-container>
|
|
827
823
|
`
|
|
@@ -1033,10 +1029,8 @@ function flexLayoutWrapper(fieldConfigs, { relative, breakpoint, size: defaultSi
|
|
|
1033
1029
|
fieldGroupClassName: 'dbx-flex-group',
|
|
1034
1030
|
// fieldGroupClassName: 'field-layout-group',
|
|
1035
1031
|
props: {
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
relative
|
|
1039
|
-
}
|
|
1032
|
+
breakpoint,
|
|
1033
|
+
relative
|
|
1040
1034
|
},
|
|
1041
1035
|
fieldGroup: fieldConfigs.map((inputConfig) => {
|
|
1042
1036
|
const fieldConfig = checkIsFieldFlexLayoutGroupFieldConfig(inputConfig)
|
|
@@ -2627,7 +2621,8 @@ class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
|
|
|
2627
2621
|
return;
|
|
2628
2622
|
}
|
|
2629
2623
|
this.remove(currentIndex);
|
|
2630
|
-
this.add(targetIndex, targetValue);
|
|
2624
|
+
this.add(targetIndex, targetValue, { markAsDirty: true });
|
|
2625
|
+
this.formControl.markAsTouched();
|
|
2631
2626
|
}
|
|
2632
2627
|
drop(event) {
|
|
2633
2628
|
this.swapIndexes(event.previousIndex, event.currentIndex);
|
|
@@ -2757,7 +2752,7 @@ function repeatArrayField(config) {
|
|
|
2757
2752
|
addText,
|
|
2758
2753
|
removeText
|
|
2759
2754
|
})), { fieldArray: {
|
|
2760
|
-
fieldGroup: repeatFieldGroup
|
|
2755
|
+
fieldGroup: asArray(repeatFieldGroup)
|
|
2761
2756
|
} }));
|
|
2762
2757
|
}
|
|
2763
2758
|
|
|
@@ -3384,7 +3379,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
3384
3379
|
}] });
|
|
3385
3380
|
|
|
3386
3381
|
function textField(config) {
|
|
3387
|
-
const { key, pattern, minLength, maxLength
|
|
3382
|
+
const { key, pattern, minLength, maxLength, inputType: type = 'text' } = config;
|
|
3388
3383
|
return formlyField(Object.assign({ key, type: 'input' }, propsForFieldConfig(config, {
|
|
3389
3384
|
type,
|
|
3390
3385
|
minLength,
|
|
@@ -3393,11 +3388,12 @@ function textField(config) {
|
|
|
3393
3388
|
})));
|
|
3394
3389
|
}
|
|
3395
3390
|
function textAreaField(config) {
|
|
3396
|
-
const { key, rows = 3, minLength, maxLength
|
|
3391
|
+
const { key, rows = 3, pattern, minLength, maxLength } = config;
|
|
3397
3392
|
return formlyField(Object.assign({ key, type: 'textarea' }, propsForFieldConfig(config, {
|
|
3398
3393
|
rows,
|
|
3399
3394
|
minLength,
|
|
3400
|
-
maxLength
|
|
3395
|
+
maxLength,
|
|
3396
|
+
pattern
|
|
3401
3397
|
})));
|
|
3402
3398
|
}
|
|
3403
3399
|
|
|
@@ -3970,23 +3966,39 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
|
|
|
3970
3966
|
changesSinceLastResetCount: 0,
|
|
3971
3967
|
isFormValid: false,
|
|
3972
3968
|
isFormDisabled: false
|
|
3973
|
-
}),
|
|
3974
|
-
const
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3969
|
+
}), switchMap(({ changesSinceLastResetCount, isFormValid, isFormDisabled }) => {
|
|
3970
|
+
const nextState = () => {
|
|
3971
|
+
const isReset = changesSinceLastResetCount <= 1; // first emission after reset is the first value.
|
|
3972
|
+
const complete = isFormValid;
|
|
3973
|
+
const nextState = {
|
|
3974
|
+
isComplete: complete,
|
|
3975
|
+
state: isReset ? DbxFormState.RESET : DbxFormState.USED,
|
|
3976
|
+
status: this.form.status,
|
|
3977
|
+
untouched: this.form.untouched,
|
|
3978
|
+
pristine: this.form.pristine,
|
|
3979
|
+
changesCount: changesSinceLastResetCount,
|
|
3980
|
+
lastResetAt,
|
|
3981
|
+
disabled: this.disabled,
|
|
3982
|
+
isDisabled: isFormDisabled
|
|
3983
|
+
};
|
|
3984
|
+
return nextState;
|
|
3986
3985
|
};
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3986
|
+
const state = nextState();
|
|
3987
|
+
if (isFormValid && this.form.untouched) {
|
|
3988
|
+
return timer(150, 200).pipe(
|
|
3989
|
+
// every 200 ms check if the form is now marked touched, then push a new state
|
|
3990
|
+
filter(() => this.form.touched), map(() => nextState()),
|
|
3991
|
+
// only push the new state once
|
|
3992
|
+
first(),
|
|
3993
|
+
// send the first value immediately
|
|
3994
|
+
startWith(state));
|
|
3995
|
+
}
|
|
3996
|
+
else {
|
|
3997
|
+
return of(state);
|
|
3998
|
+
}
|
|
3999
|
+
})
|
|
4000
|
+
// tapLog('Change: ')
|
|
4001
|
+
)), shareReplay(1));
|
|
3990
4002
|
}
|
|
3991
4003
|
ngOnInit() {
|
|
3992
4004
|
this.context.setDelegate(this);
|