@hmcts/ccd-case-ui-toolkit 7.1.35-qm-callbackerror → 7.1.35-ungrey-back-button
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/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +110 -33
- package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +70 -43
- package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +7 -4
- package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +3 -1
- package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +14 -4
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-write-journey.component.mjs +96 -0
- package/esm2022/lib/shared/components/palette/base-field/abstract-journey.component.mjs +82 -0
- package/esm2022/lib/shared/components/palette/base-field/index.mjs +3 -1
- package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +21 -21
- package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +3 -3
- package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +25 -22
- package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +82 -35
- package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +32 -29
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +33 -28
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +174 -71
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +28 -28
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +124 -105
- package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +31 -4
- package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +139 -33
- package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +9 -9
- package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +39 -22
- package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +19 -7
- package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +91 -61
- package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +13 -9
- package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +85 -48
- package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +22 -2
- package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +126 -30
- package/esm2022/lib/shared/components/palette/palette.module.mjs +4 -3
- package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +12 -10
- package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +50 -29
- package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +158 -104
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +104 -41
- package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +4 -21
- package/esm2022/lib/shared/domain/index.mjs +2 -1
- package/esm2022/lib/shared/domain/journey/index.mjs +3 -0
- package/esm2022/lib/shared/domain/journey/journey-instigator.model.mjs +2 -0
- package/esm2022/lib/shared/domain/journey/journey.model.mjs +2 -0
- package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +2 -2
- package/esm2022/lib/shared/services/index.mjs +2 -1
- package/esm2022/lib/shared/services/journey/index.mjs +2 -0
- package/esm2022/lib/shared/services/journey/multipage-component-state.service.mjs +117 -0
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +2035 -1028
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +17 -3
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +10 -2
- package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
- package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +1 -0
- package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +2 -1
- package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts +30 -0
- package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts +27 -0
- package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts.map +1 -0
- package/lib/shared/components/palette/base-field/index.d.ts +2 -0
- package/lib/shared/components/palette/base-field/index.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +4 -2
- package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +4 -2
- package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +13 -4
- package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +6 -3
- package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +5 -2
- package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +21 -6
- package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +4 -2
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +7 -3
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +1 -0
- package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +16 -6
- package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts +6 -4
- package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts +6 -2
- package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts +7 -3
- package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts +5 -2
- package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts +9 -3
- package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts +7 -0
- package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts +10 -3
- package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +5 -1
- package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +17 -5
- package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +17 -5
- package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -1
- package/lib/shared/domain/index.d.ts +1 -0
- package/lib/shared/domain/index.d.ts.map +1 -1
- package/lib/shared/domain/journey/index.d.ts +3 -0
- package/lib/shared/domain/journey/index.d.ts.map +1 -0
- package/lib/shared/domain/journey/journey-instigator.model.d.ts +5 -0
- package/lib/shared/domain/journey/journey-instigator.model.d.ts.map +1 -0
- package/lib/shared/domain/journey/journey.model.d.ts +19 -0
- package/lib/shared/domain/journey/journey.model.d.ts.map +1 -0
- package/lib/shared/services/index.d.ts +1 -0
- package/lib/shared/services/index.d.ts.map +1 -1
- package/lib/shared/services/journey/index.d.ts +2 -0
- package/lib/shared/services/journey/index.d.ts.map +1 -0
- package/lib/shared/services/journey/multipage-component-state.service.d.ts +26 -0
- package/lib/shared/services/journey/multipage-component-state.service.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class MultipageComponentStateService {
|
|
4
|
+
//is journey at start will help keep track of the progress through the journey.
|
|
5
|
+
isJourneyAtStart = false;
|
|
6
|
+
//journey collection references an upto date list of all the journey components currently rendered!!!!
|
|
7
|
+
journeyCollection = new Array();
|
|
8
|
+
//the instigator references the case-edit-page component that will invoke the next and previous methods
|
|
9
|
+
instigator = null;
|
|
10
|
+
//each journey will store its state here. this could include form data if needed
|
|
11
|
+
journeyState = new Map();
|
|
12
|
+
//setJourneyComponent will be called by the app component to update the journey collection
|
|
13
|
+
setJourneyCollection(journeyCollection) {
|
|
14
|
+
this.journeyCollection = journeyCollection;
|
|
15
|
+
}
|
|
16
|
+
//getJourneyCollection will be called by the app component to get the journey collection
|
|
17
|
+
getJourneyCollection() {
|
|
18
|
+
return this.journeyCollection;
|
|
19
|
+
}
|
|
20
|
+
//addToJourneyCollection will be called from the journey
|
|
21
|
+
addTojourneyCollection(journey) {
|
|
22
|
+
this.journeyCollection.push(journey);
|
|
23
|
+
}
|
|
24
|
+
//resetJourneyCollection will be called
|
|
25
|
+
resetJourneyCollection() {
|
|
26
|
+
this.journeyCollection = [];
|
|
27
|
+
}
|
|
28
|
+
//setInstigator will be called by the app component to update the instigator
|
|
29
|
+
setInstigator(instigator) {
|
|
30
|
+
this.instigator = instigator;
|
|
31
|
+
}
|
|
32
|
+
//getInstigator will be called by the app component to get the instigator
|
|
33
|
+
getInstigator() {
|
|
34
|
+
return this.instigator;
|
|
35
|
+
}
|
|
36
|
+
//setJourneyState will be called by the journey component to update the journey state
|
|
37
|
+
setJourneyState(journey) {
|
|
38
|
+
this.journeyState.set(journey.journeyId, journey);
|
|
39
|
+
}
|
|
40
|
+
//getJourneyState will be called by the journey component to get the journey state
|
|
41
|
+
getJourneyState(journey) {
|
|
42
|
+
return this.journeyState.get(journey.journeyId) || null;
|
|
43
|
+
}
|
|
44
|
+
//resetJourneyState will be called by the journey component to reset the journey state
|
|
45
|
+
resetJourneyState() {
|
|
46
|
+
this.journeyState.clear();
|
|
47
|
+
}
|
|
48
|
+
getJourneyCollectionMainObject() {
|
|
49
|
+
return this.journeyCollection[0];
|
|
50
|
+
}
|
|
51
|
+
//reset will be called to ensure that the entire state is reset
|
|
52
|
+
reset() {
|
|
53
|
+
this.isJourneyAtStart = false;
|
|
54
|
+
this.journeyState.clear();
|
|
55
|
+
this.instigator = null;
|
|
56
|
+
this.journeyCollection = [];
|
|
57
|
+
}
|
|
58
|
+
//next will be called by the instigator that will invoke the next method of the journey component that will invoke the next method of the childpage component
|
|
59
|
+
next() {
|
|
60
|
+
if (this.journeyCollection.length <= 0) {
|
|
61
|
+
this.instigator?.onFinalNext();
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const isAnyObjectNotFinished = this.journeyCollection.some((journey) => !journey.isFinished());
|
|
65
|
+
if (!isAnyObjectNotFinished) {
|
|
66
|
+
this.instigator?.onFinalNext();
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
for (const journey of this.journeyCollection) {
|
|
70
|
+
if (!journey) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (!journey?.isFinished()) {
|
|
74
|
+
journey?.next();
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//previous will be called by the instigator that will invoke the previous method of the journey component that will invoke the previous method of the childpage component
|
|
80
|
+
previous() {
|
|
81
|
+
if (this.journeyCollection.length <= 0) {
|
|
82
|
+
this.instigator?.onFinalPrevious();
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const isAnyObjectNotAtStart = this.journeyCollection.some((journey) => !journey.isStart());
|
|
86
|
+
if (!isAnyObjectNotAtStart) {
|
|
87
|
+
this.instigator?.onFinalPrevious();
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
for (const journey of this.journeyCollection.slice().reverse()) {
|
|
91
|
+
if (!journey) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (!journey?.isStart()) {
|
|
95
|
+
journey?.previous();
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//isAtStart can be used to inform the instigator if we're at the start.
|
|
101
|
+
get isAtStart() {
|
|
102
|
+
return this.isJourneyAtStart;
|
|
103
|
+
}
|
|
104
|
+
//isAtStart can be used to update the value from a journey object, so the instigator knows.
|
|
105
|
+
set isAtStart(isAtStart) {
|
|
106
|
+
this.isJourneyAtStart = isAtStart;
|
|
107
|
+
}
|
|
108
|
+
static ɵfac = function MultipageComponentStateService_Factory(t) { return new (t || MultipageComponentStateService)(); };
|
|
109
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MultipageComponentStateService, factory: MultipageComponentStateService.ɵfac, providedIn: 'root' });
|
|
110
|
+
}
|
|
111
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultipageComponentStateService, [{
|
|
112
|
+
type: Injectable,
|
|
113
|
+
args: [{
|
|
114
|
+
providedIn: 'root'
|
|
115
|
+
}]
|
|
116
|
+
}], null, null); })();
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwYWdlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9qb3VybmV5L211bHRpcGFnZS1jb21wb25lbnQtc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLCtFQUErRTtJQUN2RSxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDMUMsc0dBQXNHO0lBQzlGLGlCQUFpQixHQUFjLElBQUksS0FBSyxFQUFXLENBQUM7SUFDNUQsdUdBQXVHO0lBQy9GLFVBQVUsR0FBNkIsSUFBSSxDQUFDO0lBQ3BELGdGQUFnRjtJQUN4RSxZQUFZLEdBQXlCLElBQUksR0FBRyxFQUFtQixDQUFDO0lBRXhFLDBGQUEwRjtJQUMxRixvQkFBb0IsQ0FBQyxpQkFBNEI7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7SUFFRCx3RkFBd0Y7SUFDeEYsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsc0JBQXNCLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLHNCQUFzQjtRQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsYUFBYSxDQUFDLFVBQTZCO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCx5RUFB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QUM7SUFFRCx1RUFBdUU7SUFDdkUsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCwyRkFBMkY7SUFDM0YsSUFBVyxTQUFTLENBQUMsU0FBa0I7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDO3dGQTdIVSw4QkFBOEI7Z0VBQTlCLDhCQUE4QixXQUE5Qiw4QkFBOEIsbUJBRjdCLE1BQU07O2lGQUVQLDhCQUE4QjtjQUgxQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKb3VybmV5LCBKb3VybmV5SW5zdGlnYXRvciB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSB7XG4gIC8vaXMgam91cm5leSBhdCBzdGFydCB3aWxsIGhlbHAga2VlcCB0cmFjayBvZiB0aGUgcHJvZ3Jlc3MgdGhyb3VnaCB0aGUgam91cm5leS5cbiAgcHJpdmF0ZSBpc0pvdXJuZXlBdFN0YXJ0OiBib29sZWFuID0gZmFsc2U7XG4gIC8vam91cm5leSBjb2xsZWN0aW9uIHJlZmVyZW5jZXMgYW4gdXB0byBkYXRlIGxpc3Qgb2YgYWxsIHRoZSBqb3VybmV5IGNvbXBvbmVudHMgY3VycmVudGx5IHJlbmRlcmVkISEhIVxuICBwcml2YXRlIGpvdXJuZXlDb2xsZWN0aW9uOiBKb3VybmV5W10gPSBuZXcgQXJyYXk8Sm91cm5leT4oKTtcbiAgLy90aGUgaW5zdGlnYXRvciByZWZlcmVuY2VzIHRoZSBjYXNlLWVkaXQtcGFnZSBjb21wb25lbnQgdGhhdCB3aWxsIGludm9rZSB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbWV0aG9kc1xuICBwcml2YXRlIGluc3RpZ2F0b3I6IEpvdXJuZXlJbnN0aWdhdG9yIHwgbnVsbCA9IG51bGw7XG4gIC8vZWFjaCBqb3VybmV5IHdpbGwgc3RvcmUgaXRzIHN0YXRlIGhlcmUuIHRoaXMgY291bGQgaW5jbHVkZSBmb3JtIGRhdGEgaWYgbmVlZGVkXG4gIHByaXZhdGUgam91cm5leVN0YXRlOiBNYXA8c3RyaW5nLCBKb3VybmV5PiA9IG5ldyBNYXA8c3RyaW5nLCBKb3VybmV5PigpO1xuXG4gIC8vc2V0Sm91cm5leUNvbXBvbmVudCB3aWxsIGJlIGNhbGxlZCBieSB0aGUgYXBwIGNvbXBvbmVudCB0byB1cGRhdGUgdGhlIGpvdXJuZXkgY29sbGVjdGlvblxuICBzZXRKb3VybmV5Q29sbGVjdGlvbihqb3VybmV5Q29sbGVjdGlvbjogSm91cm5leVtdKTogdm9pZCB7XG4gICAgdGhpcy5qb3VybmV5Q29sbGVjdGlvbiA9IGpvdXJuZXlDb2xsZWN0aW9uO1xuICB9XG5cbiAgLy9nZXRKb3VybmV5Q29sbGVjdGlvbiB3aWxsIGJlIGNhbGxlZCBieSB0aGUgYXBwIGNvbXBvbmVudCB0byBnZXQgdGhlIGpvdXJuZXkgY29sbGVjdGlvblxuICBnZXRKb3VybmV5Q29sbGVjdGlvbigpOiBKb3VybmV5W10ge1xuICAgIHJldHVybiB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uO1xuICB9XG5cbiAgLy9hZGRUb0pvdXJuZXlDb2xsZWN0aW9uIHdpbGwgYmUgY2FsbGVkIGZyb20gdGhlIGpvdXJuZXlcbiAgYWRkVG9qb3VybmV5Q29sbGVjdGlvbihqb3VybmV5OiBKb3VybmV5KTogdm9pZCB7XG4gICAgdGhpcy5qb3VybmV5Q29sbGVjdGlvbi5wdXNoKGpvdXJuZXkpO1xuICB9XG5cbiAgLy9yZXNldEpvdXJuZXlDb2xsZWN0aW9uIHdpbGwgYmUgY2FsbGVkXG4gIHJlc2V0Sm91cm5leUNvbGxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5qb3VybmV5Q29sbGVjdGlvbiA9IFtdO1xuICB9XG5cbiAgLy9zZXRJbnN0aWdhdG9yIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBhcHAgY29tcG9uZW50IHRvIHVwZGF0ZSB0aGUgaW5zdGlnYXRvclxuICBzZXRJbnN0aWdhdG9yKGluc3RpZ2F0b3I6IEpvdXJuZXlJbnN0aWdhdG9yKTogdm9pZCB7XG4gICAgdGhpcy5pbnN0aWdhdG9yID0gaW5zdGlnYXRvcjtcbiAgfVxuXG4gIC8vZ2V0SW5zdGlnYXRvciB3aWxsIGJlIGNhbGxlZCBieSB0aGUgYXBwIGNvbXBvbmVudCB0byBnZXQgdGhlIGluc3RpZ2F0b3JcbiAgZ2V0SW5zdGlnYXRvcigpOiBKb3VybmV5SW5zdGlnYXRvciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmluc3RpZ2F0b3I7XG4gIH1cblxuICAvL3NldEpvdXJuZXlTdGF0ZSB3aWxsIGJlIGNhbGxlZCBieSB0aGUgam91cm5leSBjb21wb25lbnQgdG8gdXBkYXRlIHRoZSBqb3VybmV5IHN0YXRlXG4gIHNldEpvdXJuZXlTdGF0ZShqb3VybmV5OiBKb3VybmV5KTogdm9pZCB7XG4gICAgdGhpcy5qb3VybmV5U3RhdGUuc2V0KGpvdXJuZXkuam91cm5leUlkLCBqb3VybmV5KTtcbiAgfVxuXG4gIC8vZ2V0Sm91cm5leVN0YXRlIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBqb3VybmV5IGNvbXBvbmVudCB0byBnZXQgdGhlIGpvdXJuZXkgc3RhdGVcbiAgZ2V0Sm91cm5leVN0YXRlKGpvdXJuZXk6IEpvdXJuZXkpOiBKb3VybmV5IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuam91cm5leVN0YXRlLmdldChqb3VybmV5LmpvdXJuZXlJZCkgfHwgbnVsbDtcbiAgfVxuXG4gIC8vcmVzZXRKb3VybmV5U3RhdGUgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGpvdXJuZXkgY29tcG9uZW50IHRvIHJlc2V0IHRoZSBqb3VybmV5IHN0YXRlXG4gIHJlc2V0Sm91cm5leVN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leVN0YXRlLmNsZWFyKCk7XG4gIH1cblxuICBnZXRKb3VybmV5Q29sbGVjdGlvbk1haW5PYmplY3QoKTogSm91cm5leSB7XG4gICAgcmV0dXJuIHRoaXMuam91cm5leUNvbGxlY3Rpb25bMF07XG4gIH1cblxuICAvL3Jlc2V0IHdpbGwgYmUgY2FsbGVkIHRvIGVuc3VyZSB0aGF0IHRoZSBlbnRpcmUgc3RhdGUgaXMgcmVzZXRcbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0pvdXJuZXlBdFN0YXJ0ID0gZmFsc2U7XG4gICAgdGhpcy5qb3VybmV5U3RhdGUuY2xlYXIoKTtcbiAgICB0aGlzLmluc3RpZ2F0b3IgPSBudWxsO1xuICAgIHRoaXMuam91cm5leUNvbGxlY3Rpb24gPSBbXTtcbiAgfVxuXG4gIC8vbmV4dCB3aWxsIGJlIGNhbGxlZCBieSB0aGUgaW5zdGlnYXRvciB0aGF0IHdpbGwgaW52b2tlIHRoZSBuZXh0IG1ldGhvZCBvZiB0aGUgam91cm5leSBjb21wb25lbnQgdGhhdCB3aWxsIGludm9rZSB0aGUgbmV4dCBtZXRob2Qgb2YgdGhlIGNoaWxkcGFnZSBjb21wb25lbnRcbiAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuam91cm5leUNvbGxlY3Rpb24ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHRoaXMuaW5zdGlnYXRvcj8ub25GaW5hbE5leHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpc0FueU9iamVjdE5vdEZpbmlzaGVkOiBib29sZWFuID0gdGhpcy5qb3VybmV5Q29sbGVjdGlvbi5zb21lKChqb3VybmV5KSA9PiAham91cm5leS5pc0ZpbmlzaGVkKCkpO1xuXG4gICAgaWYgKCFpc0FueU9iamVjdE5vdEZpbmlzaGVkKSB7XG4gICAgICB0aGlzLmluc3RpZ2F0b3I/Lm9uRmluYWxOZXh0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBqb3VybmV5IG9mIHRoaXMuam91cm5leUNvbGxlY3Rpb24pIHtcbiAgICAgIGlmICgham91cm5leSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFqb3VybmV5Py5pc0ZpbmlzaGVkKCkpIHtcbiAgICAgICAgam91cm5leT8ubmV4dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvL3ByZXZpb3VzIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBpbnN0aWdhdG9yIHRoYXQgd2lsbCBpbnZva2UgdGhlIHByZXZpb3VzIG1ldGhvZCBvZiB0aGUgam91cm5leSBjb21wb25lbnQgdGhhdCB3aWxsIGludm9rZSB0aGUgcHJldmlvdXMgbWV0aG9kIG9mIHRoZSBjaGlsZHBhZ2UgY29tcG9uZW50XG4gIHB1YmxpYyBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5qb3VybmV5Q29sbGVjdGlvbi5sZW5ndGggPD0gMCkge1xuICAgICAgdGhpcy5pbnN0aWdhdG9yPy5vbkZpbmFsUHJldmlvdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpc0FueU9iamVjdE5vdEF0U3RhcnQ6IGJvb2xlYW4gPSB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uLnNvbWUoKGpvdXJuZXkpID0+ICFqb3VybmV5LmlzU3RhcnQoKSk7XG4gICAgaWYgKCFpc0FueU9iamVjdE5vdEF0U3RhcnQpIHtcbiAgICAgIHRoaXMuaW5zdGlnYXRvcj8ub25GaW5hbFByZXZpb3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBqb3VybmV5IG9mIHRoaXMuam91cm5leUNvbGxlY3Rpb24uc2xpY2UoKS5yZXZlcnNlKCkpIHtcbiAgICAgIGlmICgham91cm5leSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgham91cm5leT8uaXNTdGFydCgpKSB7XG4gICAgICAgIGpvdXJuZXk/LnByZXZpb3VzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vaXNBdFN0YXJ0IGNhbiBiZSB1c2VkIHRvIGluZm9ybSB0aGUgaW5zdGlnYXRvciBpZiB3ZSdyZSBhdCB0aGUgc3RhcnQuXG4gIHB1YmxpYyBnZXQgaXNBdFN0YXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSm91cm5leUF0U3RhcnQ7XG4gIH1cblxuICAvL2lzQXRTdGFydCBjYW4gYmUgdXNlZCB0byB1cGRhdGUgdGhlIHZhbHVlIGZyb20gYSBqb3VybmV5IG9iamVjdCwgc28gdGhlIGluc3RpZ2F0b3Iga25vd3MuXG4gIHB1YmxpYyBzZXQgaXNBdFN0YXJ0KGlzQXRTdGFydDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNKb3VybmV5QXRTdGFydCA9IGlzQXRTdGFydDtcbiAgfVxufVxuIl19
|