@firestitch/form 13.2.0 → 13.3.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/app/components/confirm-unsaved/confirm-unsaved.component.d.ts +21 -0
- package/app/components/confirm-unsaved/index.d.ts +1 -0
- package/app/components/form-dialog-actions/form-dialog-actions.component.d.ts +1 -1
- package/app/components/index.d.ts +1 -0
- package/app/directives/button.directive.d.ts +2 -2
- package/app/directives/form/form.directive.d.ts +5 -7
- package/app/directives/form-dialog-close.directive.d.ts +2 -2
- package/app/directives/index.d.ts +2 -2
- package/app/directives/validators/compare.directive.d.ts +2 -2
- package/app/directives/validators/control.directive.d.ts +12 -12
- package/app/directives/validators/function.directive.d.ts +1 -1
- package/app/directives/validators/integer.directive.d.ts +1 -1
- package/app/directives/validators/required.directive.d.ts +1 -1
- package/app/enums/index.d.ts +2 -0
- package/app/fs-form.module.d.ts +7 -5
- package/app/guards/form-deactivate.guard.d.ts +2 -4
- package/app/helpers/index.d.ts +0 -1
- package/app/services/fsform.service.d.ts +5 -1
- package/esm2020/app/components/confirm-unsaved/confirm-unsaved.component.mjs +44 -0
- package/esm2020/app/components/confirm-unsaved/index.mjs +2 -0
- package/esm2020/app/components/form-dialog-actions/form-dialog-actions.component.mjs +3 -3
- package/esm2020/app/components/form-dialog-actions/index.mjs +1 -1
- package/esm2020/app/components/index.mjs +2 -1
- package/esm2020/app/directives/button.directive.mjs +6 -6
- package/esm2020/app/directives/form/form.directive.mjs +28 -32
- package/esm2020/app/directives/form/index.mjs +1 -1
- package/esm2020/app/directives/form-dialog-close.directive.mjs +6 -6
- package/esm2020/app/directives/index.mjs +3 -3
- package/esm2020/app/directives/validators/compare.directive.mjs +4 -6
- package/esm2020/app/directives/validators/control.directive.mjs +20 -21
- package/esm2020/app/directives/validators/function.directive.mjs +5 -5
- package/esm2020/app/directives/validators/index.mjs +1 -1
- package/esm2020/app/directives/validators/integer.directive.mjs +7 -9
- package/esm2020/app/directives/validators/required.directive.mjs +6 -8
- package/esm2020/app/enums/index.mjs +3 -0
- package/esm2020/app/fs-form.module.mjs +32 -23
- package/esm2020/app/guards/form-deactivate.guard.mjs +13 -16
- package/esm2020/app/helpers/get-form-errors.mjs +1 -1
- package/esm2020/app/helpers/index.mjs +1 -2
- package/esm2020/app/services/fsform.service.mjs +59 -7
- package/esm2020/public_api.mjs +16 -16
- package/fesm2015/firestitch-form.mjs +1173 -1153
- package/fesm2015/firestitch-form.mjs.map +1 -1
- package/fesm2020/firestitch-form.mjs +1173 -1155
- package/fesm2020/firestitch-form.mjs.map +1 -1
- package/package.json +1 -5
- package/public_api.d.ts +16 -16
- package/app/helpers/confirm-unsaved.d.ts +0 -5
- package/esm2020/app/helpers/confirm-unsaved.mjs +0 -72
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firestitch/form",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.3.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/Firestitch/ngx-form"
|
|
@@ -16,10 +16,6 @@
|
|
|
16
16
|
"bugs": {
|
|
17
17
|
"url": "https://github.com/Firestitch/ngx-form/issues"
|
|
18
18
|
},
|
|
19
|
-
"peerDependencies": {
|
|
20
|
-
"@firestitch/common": ">=7.0.2",
|
|
21
|
-
"@firestitch/drawer": ">=8.3.5"
|
|
22
|
-
},
|
|
23
19
|
"sideEffects": false,
|
|
24
20
|
"module": "fesm2015/firestitch-form.mjs",
|
|
25
21
|
"es2020": "fesm2020/firestitch-form.mjs",
|
package/public_api.d.ts
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
export { FsFormModule } from './app/fs-form.module';
|
|
2
2
|
export { FsForm } from './app/services/fsform.service';
|
|
3
|
+
export { FsFormGreaterDirective, FsFormGreaterEqualDirective, FsFormLesserEqualDirective, FsFormTemplateDirective } from './app/directives';
|
|
4
|
+
export { FsButtonDirective } from './app/directives/button.directive';
|
|
5
|
+
export { FsFormDialogCloseDirective } from './app/directives/form-dialog-close.directive';
|
|
3
6
|
export { FsFormDirective } from './app/directives/form/form.directive';
|
|
7
|
+
export { FsSubmitButtonDirective } from './app/directives/submit-button.directive';
|
|
8
|
+
export { FsFormCompareDirective } from './app/directives/validators/compare.directive';
|
|
4
9
|
export { FsControlDirective } from './app/directives/validators/control.directive';
|
|
5
|
-
export {
|
|
6
|
-
export { FsFormMinDirective } from './app/directives/validators/min.directive';
|
|
7
|
-
export { FsFormMaxDirective } from './app/directives/validators/max.directive';
|
|
8
|
-
export { FsFormMinLengthDirective } from './app/directives/validators/minlength.directive';
|
|
9
|
-
export { FsFormMaxLengthDirective } from './app/directives/validators/maxlength.directive';
|
|
10
|
+
export { FsFormDateRangeDirective } from './app/directives/validators/daterange.directive';
|
|
10
11
|
export { FsFormEmailDirective } from './app/directives/validators/email.directive';
|
|
11
12
|
export { FsFormEmailsDirective } from './app/directives/validators/emails.directive';
|
|
12
|
-
export {
|
|
13
|
-
export { FsFormCompareDirective } from './app/directives/validators/compare.directive';
|
|
13
|
+
export { FsFormFunctionDirective } from './app/directives/validators/function.directive';
|
|
14
14
|
export { FsFormIntegerDirective } from './app/directives/validators/integer.directive';
|
|
15
|
+
export { FsFormLesserDirective } from './app/directives/validators/lesser.directive';
|
|
16
|
+
export { FsFormMaxDirective } from './app/directives/validators/max.directive';
|
|
17
|
+
export { FsFormMaxLengthDirective } from './app/directives/validators/maxlength.directive';
|
|
18
|
+
export { FsFormMinDirective } from './app/directives/validators/min.directive';
|
|
19
|
+
export { FsFormMinLengthDirective } from './app/directives/validators/minlength.directive';
|
|
20
|
+
export { FsFormNoFsValidatorsDirective } from './app/directives/validators/no-fs-validators.directive';
|
|
15
21
|
export { FsFormNumericDirective } from './app/directives/validators/numeric.directive';
|
|
16
22
|
export { FsFormPatternDirective } from './app/directives/validators/pattern.directive';
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export { FsFormLesserDirective } from './app/directives/validators/lesser.directive';
|
|
23
|
+
export { FsFormPhoneDirective } from './app/directives/validators/phone.directive';
|
|
24
|
+
export { FsFormRequiredDirective } from './app/directives/validators/required.directive';
|
|
20
25
|
export { FsFormUrlDirective } from './app/directives/validators/url.directive';
|
|
21
|
-
export { FsFormDialogCloseDirective } from './app/directives/form-dialog-close.directive';
|
|
22
|
-
export { FsButtonDirective } from './app/directives/button.directive';
|
|
23
|
-
export { FsSubmitButtonDirective } from './app/directives/submit-button.directive';
|
|
24
26
|
export { FsFormValidateDirective } from './app/directives/validators/validate.directive';
|
|
25
|
-
export { FsFormNoFsValidatorsDirective } from './app/directives/validators/no-fs-validators.directive';
|
|
26
|
-
export { FsFormTemplateDirective, FsFormGreaterEqualDirective, FsFormLesserEqualDirective, FsFormGreaterDirective } from './app/directives';
|
|
27
27
|
export { FsFormDialogActionsComponent, FsFormTemplateComponent, FsFormTemplateOutletComponent } from './app/components';
|
|
28
28
|
export { FsValidators } from './app/validators/validators';
|
|
29
29
|
export { FormDeactivateGuard } from './app/guards/form-deactivate.guard';
|
|
30
|
+
export { ConfirmConfig } from './app/interfaces/confirm-config';
|
|
30
31
|
export { SubmitEvent } from './app/interfaces/submit-event';
|
|
31
32
|
export { SubmittedEvent } from './app/interfaces/submitted-event';
|
|
32
|
-
export { ConfirmConfig } from './app/interfaces/confirm-config';
|
|
33
33
|
export { ConfirmResult } from './app/enums/confirm-result';
|
|
34
34
|
export { FormStatus } from './app/enums/form-status';
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { FsPrompt } from '@firestitch/prompt';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { FsFormDirective } from '../directives/form/form.directive';
|
|
4
|
-
import { ConfirmResult } from '../enums/confirm-result';
|
|
5
|
-
export declare function confirmUnsaved(directives: FsFormDirective[], prompt: FsPrompt): Observable<ConfirmResult>;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { first } from 'rxjs/operators';
|
|
3
|
-
import { ConfirmResult } from '../enums/confirm-result';
|
|
4
|
-
export function confirmUnsaved(directives, prompt) {
|
|
5
|
-
return new Observable(observer => {
|
|
6
|
-
// TODO support for multiple directives per page
|
|
7
|
-
const form = directives[0];
|
|
8
|
-
if (!form.confirm || !form.ngForm.dirty) {
|
|
9
|
-
observer.next(ConfirmResult.Pristine);
|
|
10
|
-
observer.complete();
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
let title = 'You Have Unsaved Changes';
|
|
14
|
-
let message = 'What would you like to do with your changes?';
|
|
15
|
-
let saveLabel = 'Save & Continue';
|
|
16
|
-
let discardLabel = 'Discard Changes & Continue';
|
|
17
|
-
let cancelLabel = 'Review Changes';
|
|
18
|
-
if (typeof form.confirm === 'object') {
|
|
19
|
-
title = form.confirm.title || title;
|
|
20
|
-
message = form.confirm.message || message;
|
|
21
|
-
saveLabel = form.confirm.saveLabel || saveLabel;
|
|
22
|
-
discardLabel = form.confirm.discardLabel || discardLabel;
|
|
23
|
-
cancelLabel = form.confirm.cancelLabel || cancelLabel;
|
|
24
|
-
}
|
|
25
|
-
prompt.confirm({
|
|
26
|
-
title: title,
|
|
27
|
-
template: message,
|
|
28
|
-
dialogConfig: { width: 'auto' },
|
|
29
|
-
buttons: [
|
|
30
|
-
{
|
|
31
|
-
label: saveLabel,
|
|
32
|
-
color: 'primary',
|
|
33
|
-
value: 'save'
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
label: discardLabel,
|
|
37
|
-
value: 'discard'
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
label: cancelLabel,
|
|
41
|
-
cancel: true
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
}).subscribe((value) => {
|
|
45
|
-
if (value === 'discard') {
|
|
46
|
-
observer.next(ConfirmResult.Discard);
|
|
47
|
-
observer.complete();
|
|
48
|
-
form.reset();
|
|
49
|
-
}
|
|
50
|
-
if (value === 'save') {
|
|
51
|
-
form.submitted
|
|
52
|
-
.pipe(first())
|
|
53
|
-
.subscribe(() => {
|
|
54
|
-
observer.next(ConfirmResult.Save);
|
|
55
|
-
observer.complete();
|
|
56
|
-
});
|
|
57
|
-
form.invalid
|
|
58
|
-
.pipe(first())
|
|
59
|
-
.subscribe(() => {
|
|
60
|
-
observer.next(ConfirmResult.Invalid);
|
|
61
|
-
observer.complete();
|
|
62
|
-
});
|
|
63
|
-
form.ngForm.control.markAsPristine();
|
|
64
|
-
form.triggerSubmit({ confirmed: true });
|
|
65
|
-
}
|
|
66
|
-
}, (error) => {
|
|
67
|
-
observer.next(ConfirmResult.Review);
|
|
68
|
-
observer.complete();
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS11bnNhdmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9oZWxwZXJzL2NvbmZpcm0tdW5zYXZlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxVQUE2QixFQUFFLE1BQWdCO0lBQzVFLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDL0IsZ0RBQWdEO1FBQ2hELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixPQUFPO1NBQ1I7UUFFRCxJQUFJLEtBQUssR0FBRywwQkFBMEIsQ0FBQztRQUN2QyxJQUFJLE9BQU8sR0FBRyw4Q0FBOEMsQ0FBQztRQUM3RCxJQUFJLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztRQUNsQyxJQUFJLFlBQVksR0FBRyw0QkFBNEIsQ0FBQztRQUNoRCxJQUFJLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUVuQyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDcEMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztZQUNwQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDO1lBQzFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUM7WUFDaEQsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQztZQUN6RCxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDO1NBQ3ZEO1FBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNiLEtBQUssRUFBRSxLQUFLO1lBQ1osUUFBUSxFQUFFLE9BQU87WUFDakIsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUMvQixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsS0FBSyxFQUFFLFNBQVM7b0JBQ2hCLEtBQUssRUFBRSxTQUFTO29CQUNoQixLQUFLLEVBQUUsTUFBTTtpQkFDZDtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsWUFBWTtvQkFDbkIsS0FBSyxFQUFFLFNBQVM7aUJBQ2pCO2dCQUNEO29CQUNFLEtBQUssRUFBRSxXQUFXO29CQUNsQixNQUFNLEVBQUUsSUFBSTtpQkFDYjthQUNGO1NBQ0YsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBRXJCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2Q7WUFFRCxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7Z0JBRXBCLElBQUksQ0FBQyxTQUFTO3FCQUNiLElBQUksQ0FDSCxLQUFLLEVBQUUsQ0FDUjtxQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNkLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNsQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxPQUFPO3FCQUNYLElBQUksQ0FDSCxLQUFLLEVBQUUsQ0FDUjtxQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNkLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNyQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDekM7UUFFSCxDQUFDLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGc0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvcm0vZm9ybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29uZmlybVJlc3VsdCB9IGZyb20gJy4uL2VudW1zL2NvbmZpcm0tcmVzdWx0JztcblxuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlybVVuc2F2ZWQoZGlyZWN0aXZlczogRnNGb3JtRGlyZWN0aXZlW10sIHByb21wdDogRnNQcm9tcHQpOiBPYnNlcnZhYmxlPENvbmZpcm1SZXN1bHQ+IHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAvLyBUT0RPIHN1cHBvcnQgZm9yIG11bHRpcGxlIGRpcmVjdGl2ZXMgcGVyIHBhZ2VcbiAgICBjb25zdCBmb3JtID0gZGlyZWN0aXZlc1swXTtcblxuICAgIGlmICghZm9ybS5jb25maXJtIHx8ICFmb3JtLm5nRm9ybS5kaXJ0eSkge1xuICAgICAgb2JzZXJ2ZXIubmV4dChDb25maXJtUmVzdWx0LlByaXN0aW5lKTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHRpdGxlID0gJ1lvdSBIYXZlIFVuc2F2ZWQgQ2hhbmdlcyc7XG4gICAgbGV0IG1lc3NhZ2UgPSAnV2hhdCB3b3VsZCB5b3UgbGlrZSB0byBkbyB3aXRoIHlvdXIgY2hhbmdlcz8nO1xuICAgIGxldCBzYXZlTGFiZWwgPSAnU2F2ZSAmIENvbnRpbnVlJztcbiAgICBsZXQgZGlzY2FyZExhYmVsID0gJ0Rpc2NhcmQgQ2hhbmdlcyAmIENvbnRpbnVlJztcbiAgICBsZXQgY2FuY2VsTGFiZWwgPSAnUmV2aWV3IENoYW5nZXMnO1xuXG4gICAgaWYgKHR5cGVvZiBmb3JtLmNvbmZpcm0gPT09ICdvYmplY3QnKSB7XG4gICAgICB0aXRsZSA9IGZvcm0uY29uZmlybS50aXRsZSB8fCB0aXRsZTtcbiAgICAgIG1lc3NhZ2UgPSBmb3JtLmNvbmZpcm0ubWVzc2FnZSB8fCBtZXNzYWdlO1xuICAgICAgc2F2ZUxhYmVsID0gZm9ybS5jb25maXJtLnNhdmVMYWJlbCB8fCBzYXZlTGFiZWw7XG4gICAgICBkaXNjYXJkTGFiZWwgPSBmb3JtLmNvbmZpcm0uZGlzY2FyZExhYmVsIHx8IGRpc2NhcmRMYWJlbDtcbiAgICAgIGNhbmNlbExhYmVsID0gZm9ybS5jb25maXJtLmNhbmNlbExhYmVsIHx8IGNhbmNlbExhYmVsO1xuICAgIH1cblxuICAgIHByb21wdC5jb25maXJtKHtcbiAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgIHRlbXBsYXRlOiBtZXNzYWdlLFxuICAgICAgZGlhbG9nQ29uZmlnOiB7IHdpZHRoOiAnYXV0bycgfSxcbiAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiBzYXZlTGFiZWwsXG4gICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICB2YWx1ZTogJ3NhdmUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogZGlzY2FyZExhYmVsLFxuICAgICAgICAgIHZhbHVlOiAnZGlzY2FyZCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiBjYW5jZWxMYWJlbCxcbiAgICAgICAgICBjYW5jZWw6IHRydWVcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblxuICAgICAgaWYgKHZhbHVlID09PSAnZGlzY2FyZCcpIHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChDb25maXJtUmVzdWx0LkRpc2NhcmQpO1xuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICBmb3JtLnJlc2V0KCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gJ3NhdmUnKSB7XG5cbiAgICAgICAgZm9ybS5zdWJtaXR0ZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoQ29uZmlybVJlc3VsdC5TYXZlKTtcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmb3JtLmludmFsaWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoQ29uZmlybVJlc3VsdC5JbnZhbGlkKTtcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmb3JtLm5nRm9ybS5jb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIGZvcm0udHJpZ2dlclN1Ym1pdCh7IGNvbmZpcm1lZDogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgIH0sIChlcnJvcjogYW55KSA9PiB7XG4gICAgICBvYnNlcnZlci5uZXh0KENvbmZpcm1SZXN1bHQuUmV2aWV3KTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
|