@hmcts/ccd-case-ui-toolkit 7.0.76 → 7.0.77-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 +100 -33
- package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +49 -37
- 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 +22 -22
- package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +77 -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 +137 -63
- 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 +30 -4
- package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +110 -32
- package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +27 -18
- 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 +55 -45
- 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 +58 -39
- package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +13 -1
- package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +70 -23
- package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -2
- 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 +114 -0
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +1432 -737
- 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 +16 -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 +7 -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 +11 -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 +12 -5
- 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 +10 -5
- 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 -3
- 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 +6 -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 +7 -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 +5 -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 +6 -3
- package/lib/shared/components/palette/linked-cases/write-linked-cases-field.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 +25 -0
- package/lib/shared/services/journey/multipage-component-state.service.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ export * from './eventStatusService';
|
|
|
12
12
|
export * from './fields';
|
|
13
13
|
export * from './form';
|
|
14
14
|
export * from './http';
|
|
15
|
+
export * from './journey';
|
|
15
16
|
export * from './jurisdiction';
|
|
16
17
|
export * from './banners';
|
|
17
18
|
export * from './navigation';
|
|
@@ -29,4 +30,4 @@ export * from './search-result/sorting/search-result-view-item-comparator-factor
|
|
|
29
30
|
export * from './organisation';
|
|
30
31
|
export * from './browser';
|
|
31
32
|
export * from './loading';
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL2FsZXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtZmllbGRzJztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1maWxlLXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLWZsYWcnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2N1bWVudC1tYW5hZ2VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50U3RhdHVzU2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkcyc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwJztcbmV4cG9ydCAqIGZyb20gJy4vam91cm5leSc7XG5leHBvcnQgKiBmcm9tICcuL2p1cmlzZGljdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2Jhbm5lcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaCc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24nO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9yZXRyeSc7XG5leHBvcnQgKiBmcm9tICcuL3dpbmRvdyc7XG5leHBvcnQgKiBmcm9tICcuL3dvcmtiYXNrZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZpbml0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1yZXN1bHQvc29ydGluZy9zZWFyY2gtcmVzdWx0LXZpZXctaXRlbS1jb21wYXJhdG9yLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9vcmdhbmlzYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9icm93c2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZyc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './multipage-component-state.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2pvdXJuZXkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbXVsdGlwYWdlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlJzsiXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
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
|
+
//reset will be called to ensure that the entire state is reset
|
|
49
|
+
reset() {
|
|
50
|
+
this.isJourneyAtStart = false;
|
|
51
|
+
this.journeyState.clear();
|
|
52
|
+
this.instigator = null;
|
|
53
|
+
this.journeyCollection = [];
|
|
54
|
+
}
|
|
55
|
+
//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
|
|
56
|
+
next() {
|
|
57
|
+
if (this.journeyCollection.length <= 0) {
|
|
58
|
+
this.instigator?.onFinalNext();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const isAnyObjectNotFinished = this.journeyCollection.some((journey) => !journey.isFinished());
|
|
62
|
+
if (!isAnyObjectNotFinished) {
|
|
63
|
+
this.instigator?.onFinalNext();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
for (const journey of this.journeyCollection) {
|
|
67
|
+
if (!journey) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (!journey?.isFinished()) {
|
|
71
|
+
journey?.next();
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//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
|
|
77
|
+
previous() {
|
|
78
|
+
if (this.journeyCollection.length <= 0) {
|
|
79
|
+
this.instigator?.onFinalPrevious();
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const isAnyObjectNotAtStart = this.journeyCollection.some((journey) => !journey.isStart());
|
|
83
|
+
if (!isAnyObjectNotAtStart) {
|
|
84
|
+
this.instigator?.onFinalPrevious();
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
for (const journey of this.journeyCollection.slice().reverse()) {
|
|
88
|
+
if (!journey) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
if (!journey?.isStart()) {
|
|
92
|
+
journey?.previous();
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//isAtStart can be used to inform the instigator if we're at the start.
|
|
98
|
+
get isAtStart() {
|
|
99
|
+
return this.isJourneyAtStart;
|
|
100
|
+
}
|
|
101
|
+
//isAtStart can be used to update the value from a journey object, so the instigator knows.
|
|
102
|
+
set isAtStart(isAtStart) {
|
|
103
|
+
this.isJourneyAtStart = isAtStart;
|
|
104
|
+
}
|
|
105
|
+
static ɵfac = function MultipageComponentStateService_Factory(t) { return new (t || MultipageComponentStateService)(); };
|
|
106
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MultipageComponentStateService, factory: MultipageComponentStateService.ɵfac, providedIn: 'root' });
|
|
107
|
+
}
|
|
108
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultipageComponentStateService, [{
|
|
109
|
+
type: Injectable,
|
|
110
|
+
args: [{
|
|
111
|
+
providedIn: 'root'
|
|
112
|
+
}]
|
|
113
|
+
}], null, null); })();
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwYWdlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9qb3VybmV5L211bHRpcGFnZS1jb21wb25lbnQtc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLCtFQUErRTtJQUN2RSxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDMUMsc0dBQXNHO0lBQzlGLGlCQUFpQixHQUFjLElBQUksS0FBSyxFQUFXLENBQUM7SUFDNUQsdUdBQXVHO0lBQy9GLFVBQVUsR0FBNkIsSUFBSSxDQUFDO0lBQ3BELGdGQUFnRjtJQUN4RSxZQUFZLEdBQXlCLElBQUksR0FBRyxFQUFtQixDQUFDO0lBRXhFLDBGQUEwRjtJQUMxRixvQkFBb0IsQ0FBQyxpQkFBNEI7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7SUFFRCx3RkFBd0Y7SUFDeEYsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsc0JBQXNCLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLHNCQUFzQjtRQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsYUFBYSxDQUFDLFVBQTZCO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCx5RUFB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QUFDO0lBRUQsMkZBQTJGO0lBQzNGLElBQVcsU0FBUyxDQUFDLFNBQWtCO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7SUFDcEMsQ0FBQzt3RkF6SFUsOEJBQThCO2dFQUE5Qiw4QkFBOEIsV0FBOUIsOEJBQThCLG1CQUY3QixNQUFNOztpRkFFUCw4QkFBOEI7Y0FIMUMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSm91cm5leSwgSm91cm5leUluc3RpZ2F0b3IgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2Uge1xuICAvL2lzIGpvdXJuZXkgYXQgc3RhcnQgd2lsbCBoZWxwIGtlZXAgdHJhY2sgb2YgdGhlIHByb2dyZXNzIHRocm91Z2ggdGhlIGpvdXJuZXkuXG4gIHByaXZhdGUgaXNKb3VybmV5QXRTdGFydDogYm9vbGVhbiA9IGZhbHNlO1xuICAvL2pvdXJuZXkgY29sbGVjdGlvbiByZWZlcmVuY2VzIGFuIHVwdG8gZGF0ZSBsaXN0IG9mIGFsbCB0aGUgam91cm5leSBjb21wb25lbnRzIGN1cnJlbnRseSByZW5kZXJlZCEhISFcbiAgcHJpdmF0ZSBqb3VybmV5Q29sbGVjdGlvbjogSm91cm5leVtdID0gbmV3IEFycmF5PEpvdXJuZXk+KCk7XG4gIC8vdGhlIGluc3RpZ2F0b3IgcmVmZXJlbmNlcyB0aGUgY2FzZS1lZGl0LXBhZ2UgY29tcG9uZW50IHRoYXQgd2lsbCBpbnZva2UgdGhlIG5leHQgYW5kIHByZXZpb3VzIG1ldGhvZHNcbiAgcHJpdmF0ZSBpbnN0aWdhdG9yOiBKb3VybmV5SW5zdGlnYXRvciB8IG51bGwgPSBudWxsO1xuICAvL2VhY2ggam91cm5leSB3aWxsIHN0b3JlIGl0cyBzdGF0ZSBoZXJlLiB0aGlzIGNvdWxkIGluY2x1ZGUgZm9ybSBkYXRhIGlmIG5lZWRlZFxuICBwcml2YXRlIGpvdXJuZXlTdGF0ZTogTWFwPHN0cmluZywgSm91cm5leT4gPSBuZXcgTWFwPHN0cmluZywgSm91cm5leT4oKTtcblxuICAvL3NldEpvdXJuZXlDb21wb25lbnQgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGFwcCBjb21wb25lbnQgdG8gdXBkYXRlIHRoZSBqb3VybmV5IGNvbGxlY3Rpb25cbiAgc2V0Sm91cm5leUNvbGxlY3Rpb24oam91cm5leUNvbGxlY3Rpb246IEpvdXJuZXlbXSk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leUNvbGxlY3Rpb24gPSBqb3VybmV5Q29sbGVjdGlvbjtcbiAgfVxuXG4gIC8vZ2V0Sm91cm5leUNvbGxlY3Rpb24gd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGFwcCBjb21wb25lbnQgdG8gZ2V0IHRoZSBqb3VybmV5IGNvbGxlY3Rpb25cbiAgZ2V0Sm91cm5leUNvbGxlY3Rpb24oKTogSm91cm5leVtdIHtcbiAgICByZXR1cm4gdGhpcy5qb3VybmV5Q29sbGVjdGlvbjtcbiAgfVxuXG4gIC8vYWRkVG9Kb3VybmV5Q29sbGVjdGlvbiB3aWxsIGJlIGNhbGxlZCBmcm9tIHRoZSBqb3VybmV5XG4gIGFkZFRvam91cm5leUNvbGxlY3Rpb24oam91cm5leTogSm91cm5leSk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leUNvbGxlY3Rpb24ucHVzaChqb3VybmV5KTtcbiAgfVxuXG4gIC8vcmVzZXRKb3VybmV5Q29sbGVjdGlvbiB3aWxsIGJlIGNhbGxlZFxuICByZXNldEpvdXJuZXlDb2xsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leUNvbGxlY3Rpb24gPSBbXTtcbiAgfVxuXG4gIC8vc2V0SW5zdGlnYXRvciB3aWxsIGJlIGNhbGxlZCBieSB0aGUgYXBwIGNvbXBvbmVudCB0byB1cGRhdGUgdGhlIGluc3RpZ2F0b3JcbiAgc2V0SW5zdGlnYXRvcihpbnN0aWdhdG9yOiBKb3VybmV5SW5zdGlnYXRvcik6IHZvaWQge1xuICAgIHRoaXMuaW5zdGlnYXRvciA9IGluc3RpZ2F0b3I7XG4gIH1cblxuICAvL2dldEluc3RpZ2F0b3Igd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGFwcCBjb21wb25lbnQgdG8gZ2V0IHRoZSBpbnN0aWdhdG9yXG4gIGdldEluc3RpZ2F0b3IoKTogSm91cm5leUluc3RpZ2F0b3IgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5pbnN0aWdhdG9yO1xuICB9XG5cbiAgLy9zZXRKb3VybmV5U3RhdGUgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGpvdXJuZXkgY29tcG9uZW50IHRvIHVwZGF0ZSB0aGUgam91cm5leSBzdGF0ZVxuICBzZXRKb3VybmV5U3RhdGUoam91cm5leTogSm91cm5leSk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leVN0YXRlLnNldChqb3VybmV5LmpvdXJuZXlJZCwgam91cm5leSk7XG4gIH1cblxuICAvL2dldEpvdXJuZXlTdGF0ZSB3aWxsIGJlIGNhbGxlZCBieSB0aGUgam91cm5leSBjb21wb25lbnQgdG8gZ2V0IHRoZSBqb3VybmV5IHN0YXRlXG4gIGdldEpvdXJuZXlTdGF0ZShqb3VybmV5OiBKb3VybmV5KTogSm91cm5leSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmpvdXJuZXlTdGF0ZS5nZXQoam91cm5leS5qb3VybmV5SWQpIHx8IG51bGw7XG4gIH1cblxuICAvL3Jlc2V0Sm91cm5leVN0YXRlIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBqb3VybmV5IGNvbXBvbmVudCB0byByZXNldCB0aGUgam91cm5leSBzdGF0ZVxuICByZXNldEpvdXJuZXlTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmpvdXJuZXlTdGF0ZS5jbGVhcigpO1xuICB9XG5cbiAgLy9yZXNldCB3aWxsIGJlIGNhbGxlZCB0byBlbnN1cmUgdGhhdCB0aGUgZW50aXJlIHN0YXRlIGlzIHJlc2V0XG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNKb3VybmV5QXRTdGFydCA9IGZhbHNlO1xuICAgIHRoaXMuam91cm5leVN0YXRlLmNsZWFyKCk7XG4gICAgdGhpcy5pbnN0aWdhdG9yID0gbnVsbDtcbiAgICB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uID0gW107XG4gIH1cblxuICAvL25leHQgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGluc3RpZ2F0b3IgdGhhdCB3aWxsIGludm9rZSB0aGUgbmV4dCBtZXRob2Qgb2YgdGhlIGpvdXJuZXkgY29tcG9uZW50IHRoYXQgd2lsbCBpbnZva2UgdGhlIG5leHQgbWV0aG9kIG9mIHRoZSBjaGlsZHBhZ2UgY29tcG9uZW50XG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmpvdXJuZXlDb2xsZWN0aW9uLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLmluc3RpZ2F0b3I/Lm9uRmluYWxOZXh0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNBbnlPYmplY3ROb3RGaW5pc2hlZDogYm9vbGVhbiA9IHRoaXMuam91cm5leUNvbGxlY3Rpb24uc29tZSgoam91cm5leSkgPT4gIWpvdXJuZXkuaXNGaW5pc2hlZCgpKTtcblxuICAgIGlmICghaXNBbnlPYmplY3ROb3RGaW5pc2hlZCkge1xuICAgICAgdGhpcy5pbnN0aWdhdG9yPy5vbkZpbmFsTmV4dCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgam91cm5leSBvZiB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uKSB7XG4gICAgICBpZiAoIWpvdXJuZXkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICgham91cm5leT8uaXNGaW5pc2hlZCgpKSB7XG4gICAgICAgIGpvdXJuZXk/Lm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9wcmV2aW91cyB3aWxsIGJlIGNhbGxlZCBieSB0aGUgaW5zdGlnYXRvciB0aGF0IHdpbGwgaW52b2tlIHRoZSBwcmV2aW91cyBtZXRob2Qgb2YgdGhlIGpvdXJuZXkgY29tcG9uZW50IHRoYXQgd2lsbCBpbnZva2UgdGhlIHByZXZpb3VzIG1ldGhvZCBvZiB0aGUgY2hpbGRwYWdlIGNvbXBvbmVudFxuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuam91cm5leUNvbGxlY3Rpb24ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHRoaXMuaW5zdGlnYXRvcj8ub25GaW5hbFByZXZpb3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNBbnlPYmplY3ROb3RBdFN0YXJ0OiBib29sZWFuID0gdGhpcy5qb3VybmV5Q29sbGVjdGlvbi5zb21lKChqb3VybmV5KSA9PiAham91cm5leS5pc1N0YXJ0KCkpO1xuICAgIGlmICghaXNBbnlPYmplY3ROb3RBdFN0YXJ0KSB7XG4gICAgICB0aGlzLmluc3RpZ2F0b3I/Lm9uRmluYWxQcmV2aW91cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgam91cm5leSBvZiB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uLnNsaWNlKCkucmV2ZXJzZSgpKSB7XG4gICAgICBpZiAoIWpvdXJuZXkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoIWpvdXJuZXk/LmlzU3RhcnQoKSkge1xuICAgICAgICBqb3VybmV5Py5wcmV2aW91cygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvL2lzQXRTdGFydCBjYW4gYmUgdXNlZCB0byBpbmZvcm0gdGhlIGluc3RpZ2F0b3IgaWYgd2UncmUgYXQgdGhlIHN0YXJ0LlxuICBwdWJsaWMgZ2V0IGlzQXRTdGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0pvdXJuZXlBdFN0YXJ0O1xuICB9XG5cbiAgLy9pc0F0U3RhcnQgY2FuIGJlIHVzZWQgdG8gdXBkYXRlIHRoZSB2YWx1ZSBmcm9tIGEgam91cm5leSBvYmplY3QsIHNvIHRoZSBpbnN0aWdhdG9yIGtub3dzLlxuICBwdWJsaWMgc2V0IGlzQXRTdGFydChpc0F0U3RhcnQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzSm91cm5leUF0U3RhcnQgPSBpc0F0U3RhcnQ7XG4gIH1cbn1cbiJdfQ==
|