@elderbyte/ngx-starter 18.11.1 → 18.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/common/data/data-context/data-context-source-event-binding.mjs +24 -7
- package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +20 -10
- package/esm2022/lib/common/data/datasource/patch/deep-partial-patcher.mjs +58 -0
- package/esm2022/lib/common/time/temporal-util.mjs +7 -1
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker-toggle/elder-interval-picker-toggle.component.mjs +9 -5
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +6 -3
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.service.mjs +13 -3
- package/fesm2022/elderbyte-ngx-starter.mjs +128 -21
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/data/data-context/data-context-source-event-binding.d.ts +2 -5
- package/lib/common/data/datasource/data-source-change-event.d.ts +14 -5
- package/lib/common/data/datasource/patch/deep-partial-patcher.d.ts +28 -0
- package/lib/common/time/temporal-util.d.ts +2 -0
- package/lib/components/time/elder-interval-picker/elder-interval-picker-toggle/elder-interval-picker-toggle.component.d.ts +2 -2
- package/lib/components/time/elder-interval-picker/elder-interval-picker.component.d.ts +2 -1
- package/lib/components/time/elder-interval-picker/elder-interval-picker.service.d.ts +4 -2
- package/package.json +2 -3
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { DataContextLifeCycleBinding } from './data-context-life-cycle-binding';
|
|
2
|
+
import { DeepPartialPatcher } from '../datasource/patch/deep-partial-patcher';
|
|
2
3
|
export class DataContextSourceEventBinding extends DataContextLifeCycleBinding {
|
|
3
|
-
/***************************************************************************
|
|
4
|
-
* *
|
|
5
|
-
* Fields *
|
|
6
|
-
* *
|
|
7
|
-
**************************************************************************/
|
|
8
4
|
/***************************************************************************
|
|
9
5
|
* *
|
|
10
6
|
* Constructor *
|
|
@@ -36,11 +32,32 @@ export class DataContextSourceEventBinding extends DataContextLifeCycleBinding {
|
|
|
36
32
|
}
|
|
37
33
|
// We might also be able to perform deletions locally, and avoid reload data
|
|
38
34
|
if (event.modified) {
|
|
39
|
-
this.
|
|
35
|
+
this.updateExisting(event.modified);
|
|
36
|
+
}
|
|
37
|
+
if (event.patches) {
|
|
38
|
+
this.updateExisting(this.buildPatchUpdates(event.patches));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
updateExisting(entities) {
|
|
42
|
+
if (entities.length > 0) {
|
|
43
|
+
this._dataContext.update(entities);
|
|
40
44
|
}
|
|
41
45
|
}
|
|
42
46
|
isReloadDesirable(event) {
|
|
43
47
|
return event.unknownChanges || event.created || event.deletedIds;
|
|
44
48
|
}
|
|
49
|
+
buildPatchUpdates(patches) {
|
|
50
|
+
return patches
|
|
51
|
+
.map((patch) => {
|
|
52
|
+
const existing = this._dataContext.findById(patch.entityId);
|
|
53
|
+
if (existing) {
|
|
54
|
+
return DeepPartialPatcher.patchShallowCopy(existing, patch.patch);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
.filter((update) => !!update);
|
|
61
|
+
}
|
|
45
62
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LXNvdXJjZS1ldmVudC1iaW5kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1zb3VyY2UtZXZlbnQtYmluZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUsvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQTtBQUU3RSxNQUFNLE9BQU8sNkJBQXVDLFNBQVEsMkJBQTJCO0lBQ3JGOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFdBQTRCLEVBQ1gsT0FBdUIsRUFDdkIsZUFBd0I7UUFFekMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBSEQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQVM7UUFHekMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFbEUsU0FBUztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2hFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FDbEMsQ0FBQTtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUscUJBQXFCLENBQUMsS0FBK0I7UUFDM0QsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7WUFDakQsT0FBTTtRQUNSLENBQUM7UUFFRCw0RUFBNEU7UUFFNUUsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWE7UUFDbEMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBK0I7UUFDdkQsT0FBTyxLQUFLLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQTtJQUNsRSxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBbUM7UUFDM0QsT0FBTyxPQUFPO2FBQ1gsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDM0QsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixPQUFPLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDbkUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQztRQUNILENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEYXRhQ29udGV4dCB9IGZyb20gJy4vZGF0YS1jb250ZXh0J1xuaW1wb3J0IHsgSURhdGFTb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJ1xuaW1wb3J0IHsgRGF0YUNvbnRleHRMaWZlQ3ljbGVCaW5kaW5nIH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtbGlmZS1jeWNsZS1iaW5kaW5nJ1xuaW1wb3J0IHtcbiAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50LFxuICBEYXRhU291cmNlRW50aXR5UGF0Y2gsXG59IGZyb20gJy4uL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50J1xuaW1wb3J0IHsgRGVlcFBhcnRpYWxQYXRjaGVyIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9wYXRjaC9kZWVwLXBhcnRpYWwtcGF0Y2hlcidcblxuZXhwb3J0IGNsYXNzIERhdGFDb250ZXh0U291cmNlRXZlbnRCaW5kaW5nPFQgPSBhbnk+IGV4dGVuZHMgRGF0YUNvbnRleHRMaWZlQ3ljbGVCaW5kaW5nIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YUNvbnRleHQ6IElEYXRhQ29udGV4dDxUPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFBcGk6IElEYXRhU291cmNlPFQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVsb2FkT25DaGFuZ2VzOiBib29sZWFuXG4gICkge1xuICAgIHN1cGVyKGRhdGFDb250ZXh0KVxuICAgIHRoaXMuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcm5hbCBJbXBsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhQXBpLmRhdGFDaGFuZ2VkLnN1YnNjcmliZSgoZXZlbnQpID0+XG4gICAgICB0aGlzLmhhbmRsZURhdGFDaGFuZ2VFdmVudChldmVudClcbiAgICApXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGhhbmRsZURhdGFDaGFuZ2VFdmVudChldmVudDogRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVsb2FkT25DaGFuZ2VzICYmIHRoaXMuaXNSZWxvYWREZXNpcmFibGUoZXZlbnQpKSB7XG4gICAgICB0aGlzLl9kYXRhQ29udGV4dC5yZWxvYWQoJ0RhdGFTb3VyY2VDaGFuZ2VFdmVudCcpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBXZSBtaWdodCBhbHNvIGJlIGFibGUgdG8gcGVyZm9ybSBkZWxldGlvbnMgbG9jYWxseSwgYW5kIGF2b2lkIHJlbG9hZCBkYXRhXG5cbiAgICBpZiAoZXZlbnQubW9kaWZpZWQpIHtcbiAgICAgIHRoaXMudXBkYXRlRXhpc3RpbmcoZXZlbnQubW9kaWZpZWQpXG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnBhdGNoZXMpIHtcbiAgICAgIHRoaXMudXBkYXRlRXhpc3RpbmcodGhpcy5idWlsZFBhdGNoVXBkYXRlcyhldmVudC5wYXRjaGVzKSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUV4aXN0aW5nKGVudGl0aWVzOiBUW10pOiB2b2lkIHtcbiAgICBpZiAoZW50aXRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fZGF0YUNvbnRleHQudXBkYXRlKGVudGl0aWVzKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNSZWxvYWREZXNpcmFibGUoZXZlbnQ6IERhdGFTb3VyY2VDaGFuZ2VFdmVudDxUPikge1xuICAgIHJldHVybiBldmVudC51bmtub3duQ2hhbmdlcyB8fCBldmVudC5jcmVhdGVkIHx8IGV2ZW50LmRlbGV0ZWRJZHNcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRQYXRjaFVwZGF0ZXMocGF0Y2hlczogRGF0YVNvdXJjZUVudGl0eVBhdGNoPFQ+W10pOiBUW10ge1xuICAgIHJldHVybiBwYXRjaGVzXG4gICAgICAubWFwKChwYXRjaCkgPT4ge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuX2RhdGFDb250ZXh0LmZpbmRCeUlkKHBhdGNoLmVudGl0eUlkKVxuICAgICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgICByZXR1cm4gRGVlcFBhcnRpYWxQYXRjaGVyLnBhdGNoU2hhbGxvd0NvcHkoZXhpc3RpbmcsIHBhdGNoLnBhdGNoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKCh1cGRhdGUpID0+ICEhdXBkYXRlKVxuICB9XG59XG4iXX0=
|
|
@@ -1,24 +1,34 @@
|
|
|
1
|
-
export
|
|
2
|
-
(
|
|
3
|
-
|
|
1
|
+
export class DataSourceEntityPatch {
|
|
2
|
+
constructor(entityId, patch) {
|
|
3
|
+
this.entityId = entityId;
|
|
4
|
+
this.patch = patch;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Notifies about changes in a DataSource.
|
|
9
|
+
*/
|
|
4
10
|
export class DataSourceChangeEvent {
|
|
5
11
|
static unknownChanges() {
|
|
6
|
-
return new DataSourceChangeEvent(null, null, null);
|
|
12
|
+
return new DataSourceChangeEvent(null, null, null, null);
|
|
7
13
|
}
|
|
8
14
|
static deleted(ids) {
|
|
9
|
-
return new DataSourceChangeEvent(ids, null, null);
|
|
15
|
+
return new DataSourceChangeEvent(ids, null, null, null);
|
|
10
16
|
}
|
|
11
17
|
static modified(modified) {
|
|
12
|
-
return new DataSourceChangeEvent(null, modified, null);
|
|
18
|
+
return new DataSourceChangeEvent(null, modified, null, null);
|
|
13
19
|
}
|
|
14
20
|
static created(created) {
|
|
15
|
-
return new DataSourceChangeEvent(null, null, created);
|
|
21
|
+
return new DataSourceChangeEvent(null, null, created, null);
|
|
22
|
+
}
|
|
23
|
+
static patched(patches) {
|
|
24
|
+
return new DataSourceChangeEvent(null, null, null, patches);
|
|
16
25
|
}
|
|
17
|
-
constructor(deletedIds, modified, created) {
|
|
26
|
+
constructor(deletedIds, modified, created, patches) {
|
|
18
27
|
this.deletedIds = deletedIds;
|
|
19
28
|
this.modified = modified;
|
|
20
29
|
this.created = created;
|
|
21
|
-
this.
|
|
30
|
+
this.patches = patches;
|
|
31
|
+
this.unknownChanges = !deletedIds && !modified && !created && !patches;
|
|
22
32
|
}
|
|
23
33
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YXNvdXJjZS9kYXRhLXNvdXJjZS1jaGFuZ2UtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUNTLFFBQVksRUFDWixLQUEwQjtRQUQxQixhQUFRLEdBQVIsUUFBUSxDQUFJO1FBQ1osVUFBSyxHQUFMLEtBQUssQ0FBcUI7SUFDaEMsQ0FBQztDQUNMO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ3pCLE1BQU0sQ0FBQyxjQUFjO1FBQzFCLE9BQU8sSUFBSSxxQkFBcUIsQ0FBUyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBTSxHQUFVO1FBQ25DLE9BQU8sSUFBSSxxQkFBcUIsQ0FBVyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBZSxRQUFhO1FBQ2hELE9BQU8sSUFBSSxxQkFBcUIsQ0FBUyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBZSxPQUFZO1FBQzlDLE9BQU8sSUFBSSxxQkFBcUIsQ0FBUyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FDbkIsT0FBd0M7UUFFeEMsT0FBTyxJQUFJLHFCQUFxQixDQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFZRCxZQUNrQixVQUFpQixFQUNqQixRQUFhLEVBQ2IsT0FBWSxFQUNaLE9BQW1DO1FBSG5DLGVBQVUsR0FBVixVQUFVLENBQU87UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUNiLFlBQU8sR0FBUCxPQUFPLENBQUs7UUFDWixZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUVuRCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3hFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZXBQYXJ0aWFsUGF0Y2ggfSBmcm9tICcuL3BhdGNoL2RlZXAtcGFydGlhbC1wYXRjaGVyJ1xuXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZUVudGl0eVBhdGNoPFQsIElkID0gYW55PiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZW50aXR5SWQ6IElkLFxuICAgIHB1YmxpYyBwYXRjaDogRGVlcFBhcnRpYWxQYXRjaDxUPlxuICApIHt9XG59XG5cbi8qKlxuICogTm90aWZpZXMgYWJvdXQgY2hhbmdlcyBpbiBhIERhdGFTb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VCwgVElkID0gYW55PiB7XG4gIHB1YmxpYyBzdGF0aWMgdW5rbm93bkNoYW5nZXM8VCwgVElkID0gYW55PigpOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQsIFRJZD4obnVsbCwgbnVsbCwgbnVsbCwgbnVsbClcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGVsZXRlZDxUSWQ+KGlkczogVElkW10pOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8YW55LCBUSWQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFTb3VyY2VDaGFuZ2VFdmVudDxhbnksIFRJZD4oaWRzLCBudWxsLCBudWxsLCBudWxsKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBtb2RpZmllZDxULCBUSWQgPSBhbnk+KG1vZGlmaWVkOiBUW10pOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQsIFRJZD4obnVsbCwgbW9kaWZpZWQsIG51bGwsIG51bGwpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZWQ8VCwgVElkID0gYW55PihjcmVhdGVkOiBUW10pOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQsIFRJZD4obnVsbCwgbnVsbCwgY3JlYXRlZCwgbnVsbClcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGF0Y2hlZDxULCBUSWQgPSBhbnk+KFxuICAgIHBhdGNoZXM6IERhdGFTb3VyY2VFbnRpdHlQYXRjaDxULCBUSWQ+W11cbiAgKTogRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFTb3VyY2VDaGFuZ2VFdmVudDxUPihudWxsLCBudWxsLCBudWxsLCBwYXRjaGVzKVxuICB9XG5cbiAgLy8gZW50aXRpZXMgLT4gZGF0YSBtdXN0IGJlIHVwZGF0ZWQgd2l0aCBuZXcgdmVyc2lvbnNcbiAgLy8gZW50aXR5LWlkcyAtPiBtdXN0IGJlIGRvd25sb2FkZWQgZmluZEJ5SWRzKCkgYW5kIGRhdGEgdXBkYXRlZFxuICAvLyBlbnRpdHktcGF0Y2hlcyAtPiBlbnRpdHkgbXVzdCBiZSBsb29rZWQgdXAgJiBhcHBsaWVkIGxvY2FsbHkgJiByZXBsYWNlZFxuXG4gIC8vIGNvbnN0IGVudGl0eSA9IGRjLmZpbmRCeUlkKGVudGl0eS1pZCk7XG4gIC8vIGRjLnJlcGxhY2UoZW50aXR5KTtcbiAgLy8gZGMucmVwbGFjZUFsbChlbnRpdGllcyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHVua25vd25DaGFuZ2VzOiBib29sZWFuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGRlbGV0ZWRJZHM6IFRJZFtdLFxuICAgIHB1YmxpYyByZWFkb25seSBtb2RpZmllZDogVFtdLFxuICAgIHB1YmxpYyByZWFkb25seSBjcmVhdGVkOiBUW10sXG4gICAgcHVibGljIHJlYWRvbmx5IHBhdGNoZXM6IERhdGFTb3VyY2VFbnRpdHlQYXRjaDxUPltdXG4gICkge1xuICAgIHRoaXMudW5rbm93bkNoYW5nZXMgPSAhZGVsZXRlZElkcyAmJiAhbW9kaWZpZWQgJiYgIWNyZWF0ZWQgJiYgIXBhdGNoZXNcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export class DeepPartialPatcher {
|
|
2
|
+
/***************************************************************************
|
|
3
|
+
* *
|
|
4
|
+
* Public API *
|
|
5
|
+
* *
|
|
6
|
+
**************************************************************************/
|
|
7
|
+
/**
|
|
8
|
+
* All modified parts are deep cloned so the original is never modified.
|
|
9
|
+
*/
|
|
10
|
+
static patchDeepClone(original, patch) {
|
|
11
|
+
return this.mapReducePatch(original, patch);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Returns a shallow copy of the original, but may modify nested objects.
|
|
15
|
+
*/
|
|
16
|
+
static patchShallowCopy(original, patch) {
|
|
17
|
+
const shallowCopy = { ...original };
|
|
18
|
+
return this.patchOriginal(shallowCopy, patch);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Modifies the original directly. Returns a reference to the original object.
|
|
22
|
+
*/
|
|
23
|
+
static patchOriginal(original, patch) {
|
|
24
|
+
const result = original;
|
|
25
|
+
for (const key in patch) {
|
|
26
|
+
if (patch[key] && typeof patch[key] === 'object' && !Array.isArray(patch[key])) {
|
|
27
|
+
// Recursively apply patch for nested objects
|
|
28
|
+
result[key] = DeepPartialPatcher.patchOriginal(result[key], patch[key]);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// Apply patch for non-object fields
|
|
32
|
+
result[key] = patch[key];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
/***************************************************************************
|
|
38
|
+
* *
|
|
39
|
+
* Private methods *
|
|
40
|
+
* *
|
|
41
|
+
**************************************************************************/
|
|
42
|
+
static mapReducePatch(obj, pobj) {
|
|
43
|
+
return Object.entries(obj).reduce((acc, [key, value]) => {
|
|
44
|
+
if (!(key in pobj)) {
|
|
45
|
+
return { ...acc, [key]: value }; // If key doesn't exist in pobj, copy the value from obj
|
|
46
|
+
}
|
|
47
|
+
if (typeof pobj[key] === 'object' && pobj[key] !== null && !Array.isArray(pobj[key])) {
|
|
48
|
+
// If it's an object (but not an array), recursively apply rmap
|
|
49
|
+
return { ...acc, [key]: this.mapReducePatch(obj[key], pobj[key]) };
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Otherwise, copy the value from pobj
|
|
53
|
+
return { ...acc, [key]: pobj[key] };
|
|
54
|
+
}
|
|
55
|
+
}, {});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1wYXJ0aWFsLXBhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3BhdGNoL2RlZXAtcGFydGlhbC1wYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7Ozs7Z0ZBSTRFO0lBRTVFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBSSxRQUFXLEVBQUUsS0FBMEI7UUFDckUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQU0sQ0FBQTtJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUksUUFBVyxFQUFFLEtBQTBCO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQTtRQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUksUUFBVyxFQUFFLEtBQTBCO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQTtRQUV2QixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDL0UsNkNBQTZDO2dCQUM3QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUM1QyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBaUMsQ0FDcEMsQ0FBQTtZQUNWLENBQUM7aUJBQU0sQ0FBQztnQkFDTixvQ0FBb0M7Z0JBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFRLENBQUE7WUFDakMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsTUFBTSxDQUFDLGNBQWMsQ0FDM0IsR0FBd0IsRUFDeEIsSUFBeUI7UUFFekIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQSxDQUFDLHdEQUF3RDtZQUMxRixDQUFDO1lBQ0QsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDckYsK0RBQStEO2dCQUMvRCxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFBO1lBQ3BFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixzQ0FBc0M7Z0JBQ3RDLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO1lBQ3JDLENBQUM7UUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDUixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBEZWVwUGFydGlhbFBhdGNoPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXT86IFRbS10gZXh0ZW5kcyBvYmplY3QgPyBEZWVwUGFydGlhbFBhdGNoPFRbS10+IDogVFtLXVxufVxuXG5leHBvcnQgY2xhc3MgRGVlcFBhcnRpYWxQYXRjaGVyIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEFsbCBtb2RpZmllZCBwYXJ0cyBhcmUgZGVlcCBjbG9uZWQgc28gdGhlIG9yaWdpbmFsIGlzIG5ldmVyIG1vZGlmaWVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXRjaERlZXBDbG9uZTxUPihvcmlnaW5hbDogVCwgcGF0Y2g6IERlZXBQYXJ0aWFsUGF0Y2g8VD4pOiBUIHtcbiAgICByZXR1cm4gdGhpcy5tYXBSZWR1Y2VQYXRjaChvcmlnaW5hbCwgcGF0Y2gpIGFzIFRcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBvcmlnaW5hbCwgYnV0IG1heSBtb2RpZnkgbmVzdGVkIG9iamVjdHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhdGNoU2hhbGxvd0NvcHk8VD4ob3JpZ2luYWw6IFQsIHBhdGNoOiBEZWVwUGFydGlhbFBhdGNoPFQ+KTogVCB7XG4gICAgY29uc3Qgc2hhbGxvd0NvcHkgPSB7IC4uLm9yaWdpbmFsIH1cbiAgICByZXR1cm4gdGhpcy5wYXRjaE9yaWdpbmFsKHNoYWxsb3dDb3B5LCBwYXRjaClcbiAgfVxuXG4gIC8qKlxuICAgKiBNb2RpZmllcyB0aGUgb3JpZ2luYWwgZGlyZWN0bHkuIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIG9yaWdpbmFsIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGF0Y2hPcmlnaW5hbDxUPihvcmlnaW5hbDogVCwgcGF0Y2g6IERlZXBQYXJ0aWFsUGF0Y2g8VD4pOiBUIHtcbiAgICBjb25zdCByZXN1bHQgPSBvcmlnaW5hbFxuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGF0Y2gpIHtcbiAgICAgIGlmIChwYXRjaFtrZXldICYmIHR5cGVvZiBwYXRjaFtrZXldID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShwYXRjaFtrZXldKSkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBhcHBseSBwYXRjaCBmb3IgbmVzdGVkIG9iamVjdHNcbiAgICAgICAgcmVzdWx0W2tleV0gPSBEZWVwUGFydGlhbFBhdGNoZXIucGF0Y2hPcmlnaW5hbChcbiAgICAgICAgICByZXN1bHRba2V5XSxcbiAgICAgICAgICBwYXRjaFtrZXldIGFzIERlZXBQYXJ0aWFsUGF0Y2g8VFtrZXlvZiBUXT5cbiAgICAgICAgKSBhcyBhbnlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFwcGx5IHBhdGNoIGZvciBub24tb2JqZWN0IGZpZWxkc1xuICAgICAgICByZXN1bHRba2V5XSA9IHBhdGNoW2tleV0gYXMgYW55XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgbWFwUmVkdWNlUGF0Y2goXG4gICAgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKCEoa2V5IGluIHBvYmopKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHZhbHVlIH0gLy8gSWYga2V5IGRvZXNuJ3QgZXhpc3QgaW4gcG9iaiwgY29weSB0aGUgdmFsdWUgZnJvbSBvYmpcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgcG9ialtrZXldID09PSAnb2JqZWN0JyAmJiBwb2JqW2tleV0gIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkocG9ialtrZXldKSkge1xuICAgICAgICAvLyBJZiBpdCdzIGFuIG9iamVjdCAoYnV0IG5vdCBhbiBhcnJheSksIHJlY3Vyc2l2ZWx5IGFwcGx5IHJtYXBcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdGhpcy5tYXBSZWR1Y2VQYXRjaChvYmpba2V5XSwgcG9ialtrZXldKSB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNvcHkgdGhlIHZhbHVlIGZyb20gcG9ialxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiBwb2JqW2tleV0gfVxuICAgICAgfVxuICAgIH0sIHt9KVxuICB9XG59XG4iXX0=
|
|
@@ -73,9 +73,15 @@ export class TemporalUtil {
|
|
|
73
73
|
static getLastSevenDays(referenceDate = TemporalUtil.getDateTodayLocalized()) {
|
|
74
74
|
return new TemporalPlainDateInterval(referenceDate.subtract({ days: 7 }), referenceDate);
|
|
75
75
|
}
|
|
76
|
+
static getLastSevenDaysIncludingToday(referenceDate = TemporalUtil.getDateTodayLocalized()) {
|
|
77
|
+
return new TemporalPlainDateInterval(referenceDate.subtract({ days: 7 - 1 }), referenceDate.add({ days: 1 }));
|
|
78
|
+
}
|
|
76
79
|
static getLastThirtyDays(referenceDate = TemporalUtil.getDateTodayLocalized()) {
|
|
77
80
|
return new TemporalPlainDateInterval(referenceDate.subtract({ days: 30 }), referenceDate);
|
|
78
81
|
}
|
|
82
|
+
static getLastThirtyDaysIncludingToday(referenceDate = TemporalUtil.getDateTodayLocalized()) {
|
|
83
|
+
return new TemporalPlainDateInterval(referenceDate.subtract({ days: 30 - 1 }), referenceDate.add({ days: 1 }));
|
|
84
|
+
}
|
|
79
85
|
static getCurrentWeek(referenceDate = TemporalUtil.getDateTodayLocalized()) {
|
|
80
86
|
const startOfWeek = referenceDate.subtract({
|
|
81
87
|
days: referenceDate.dayOfWeek - 1,
|
|
@@ -184,4 +190,4 @@ export class TemporalUtil {
|
|
|
184
190
|
});
|
|
185
191
|
}
|
|
186
192
|
}
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi90aW1lL3RlbXBvcmFsLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBRTFFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxJQUFpRDtRQUNqRixJQUFJLElBQUksWUFBWSxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0MsT0FBTyxJQUFJLElBQUksQ0FDYixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUNkLElBQUksQ0FBQyxHQUFHLEVBQ1IsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsMEJBQTBCLENBQUMsSUFBVTtRQUMxQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDekUsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFD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QUcsQ0FBQyxDQUFBO1FBQ3JDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDN0IsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdCLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQzdCLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdCLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBvcmFsIH0gZnJvbSAnQGpzLXRlbXBvcmFsL3BvbHlmaWxsJ1xuaW1wb3J0IHsgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB9IGZyb20gJy4vdGVtcG9yYWwtcGxhaW4tZGF0ZS1pbnRlcnZhbCdcblxuZXhwb3J0IGNsYXNzIFRlbXBvcmFsVXRpbCB7XG4gIHN0YXRpYyBnZXRKU0RhdGVGcm9tUGxhaW5EYXRlVGltZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lKTogRGF0ZSB7XG4gICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoXG4gICAgICAgIGRhdGUueWVhcixcbiAgICAgICAgZGF0ZS5tb250aCAtIDEsXG4gICAgICAgIGRhdGUuZGF5LFxuICAgICAgICBkYXRlLmhvdXIsXG4gICAgICAgIGRhdGUubWludXRlLFxuICAgICAgICBkYXRlLnNlY29uZCxcbiAgICAgICAgZGF0ZS5taWxsaXNlY29uZFxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoIC0gMSwgZGF0ZS5kYXkpXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5EYXRlVGltZUZyb21KU0RhdGUoZGF0ZTogRGF0ZSk6IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUge1xuICAgIGNvbnN0IGluc3RhbnQgPSBUZW1wb3JhbC5JbnN0YW50LmZyb21FcG9jaE1pbGxpc2Vjb25kcyhkYXRlLmdldFRpbWUoKSlcbiAgICBjb25zdCBkYXRlVGltZUlzbyA9IGluc3RhbnQudG9ab25lZERhdGVUaW1lSVNPKFRlbXBvcmFsLk5vdy50aW1lWm9uZUlkKCkpXG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUuZnJvbShkYXRlVGltZUlzbylcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpbkRhdGVUaW1lRnJvbVBsYWluRGF0ZUFuZFBsYWluVGltZShcbiAgICBkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsXG4gICAgdGltZTogVGVtcG9yYWwuUGxhaW5UaW1lXG4gICk6IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUge1xuICAgIHJldHVybiBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lLmZyb20oe1xuICAgICAgeWVhcjogZGF0ZS55ZWFyLFxuICAgICAgbW9udGg6IGRhdGUubW9udGgsXG4gICAgICBkYXk6IGRhdGUuZGF5LFxuICAgICAgaG91cjogdGltZS5ob3VyLFxuICAgICAgbWludXRlOiB0aW1lLm1pbnV0ZSxcbiAgICAgIHNlY29uZDogdGltZS5zZWNvbmQsXG4gICAgICBtaWxsaXNlY29uZDogdGltZS5taWxsaXNlY29uZCxcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGlzRmlyc3REYXlPZldlZWsoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgVGVtcG9yYWwuUGxhaW5EYXRlVGltZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRlLmRheU9mV2VlayA9PT0gMVxuICB9XG5cbiAgc3RhdGljIGdldFBsYWluRGF0ZUZyb21KU0RhdGUoZGF0ZTogRGF0ZSk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVGVtcG9yYWxMb2NhbGl6ZWREYXRlRnJvbVRpbWVzdGFtcChkYXRlLmdldFRpbWUoKSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpblRpbWVGcm9tSlNEYXRlKGRhdGU6IERhdGUpOiBUZW1wb3JhbC5QbGFpblRpbWUge1xuICAgIGNvbnN0IGluc3RhbnQgPSBUZW1wb3JhbC5JbnN0YW50LmZyb21FcG9jaE1pbGxpc2Vjb25kcyhkYXRlLmdldFRpbWUoKSlcbiAgICBjb25zdCBkYXRlVGltZUlzbyA9IGluc3RhbnQudG9ab25lZERhdGVUaW1lSVNPKFRlbXBvcmFsLk5vdy50aW1lWm9uZUlkKCkpXG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluVGltZS5mcm9tKGRhdGVUaW1lSXNvKVxuICB9XG5cbiAgc3RhdGljIGdldFBsYWluRGF0ZVRpbWVGcm9tU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyk6IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUge1xuICAgIGxldCBqc0RhdGU6IERhdGUgPSBudWxsXG4gICAgdHJ5IHtcbiAgICAgIGpzRGF0ZSA9IG5ldyBEYXRlKGRhdGVTdHJpbmcpXG4gICAgICBpZiAodHlwZW9mIGpzRGF0ZSAhPT0gJ29iamVjdCcgfHwganNEYXRlLmNvbnN0cnVjdG9yLm5hbWUgIT09ICdEYXRlJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0ZSBzdHJpbmcnKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCBkYXRlIHN0cmluZycsIGRhdGVTdHJpbmcpXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldFBsYWluRGF0ZVRpbWVGcm9tSlNEYXRlKGpzRGF0ZSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRIdG1sVGltZVN0cmluZ0Zyb21QbGFpblRpbWUodGltZTogVGVtcG9yYWwuUGxhaW5UaW1lIHwgVGVtcG9yYWwuUGxhaW5EYXRlVGltZSk6IHN0cmluZyB7XG4gICAgaWYgKCF0aW1lKSB7XG4gICAgICByZXR1cm4gJzAwOjAwOjAwJ1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGltZS5ob3VyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSArXG4gICAgICAnOicgK1xuICAgICAgdGltZS5taW51dGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICtcbiAgICAgICc6JyArXG4gICAgICB0aW1lLnNlY29uZC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJylcbiAgICApXG4gIH1cblxuICBzdGF0aWMgZ2V0UXVhcnRlckZvckRhdGUoXG4gICAgZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoKGRhdGUubW9udGggLSAxKSAvIDMpICsgMVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnREYXkoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHRvZGF5ID0gcmVmZXJlbmNlRGF0ZVxuICAgIGNvbnN0IHRvbW9ycm93ID0gdG9kYXkuYWRkKHsgZGF5czogMSB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCh0b2RheSwgdG9tb3Jyb3cpXG4gIH1cblxuICBzdGF0aWMgZ2V0WWVzdGVyZGF5KFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICBjb25zdCB5ZXN0ZXJkYXkgPSByZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogMSB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCh5ZXN0ZXJkYXksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdFNldmVuRGF5cyhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHJlZmVyZW5jZURhdGUuc3VidHJhY3QoeyBkYXlzOiA3IH0pLCByZWZlcmVuY2VEYXRlKVxuICB9XG5cbiAgc3RhdGljIGdldExhc3RUaGlydHlEYXlzKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwocmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7IGRheXM6IDMwIH0pLCByZWZlcmVuY2VEYXRlKVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnRXZWVrKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICBjb25zdCBzdGFydE9mV2VlayA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3Qoe1xuICAgICAgZGF5czogcmVmZXJlbmNlRGF0ZS5kYXlPZldlZWsgLSAxLFxuICAgIH0pXG4gICAgY29uc3QgZW5kT2ZXZWVrID0gc3RhcnRPZldlZWsuYWRkKHsgZGF5czogNyB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChzdGFydE9mV2VlaywgZW5kT2ZXZWVrKVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnRNb250aChcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgY29uc3Qgc3RhcnRPZk1vbnRoID0gcmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7XG4gICAgICBkYXlzOiByZWZlcmVuY2VEYXRlLmRheSAtIDEsXG4gICAgfSlcbiAgICBjb25zdCBlbmRPZk1vbnRoID0gc3RhcnRPZk1vbnRoLmFkZCh7IG1vbnRoczogMSB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChzdGFydE9mTW9udGgsIGVuZE9mTW9udGgpXG4gIH1cblxuICBzdGF0aWMgZ2V0Q3VycmVudFF1YXJ0ZXIoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHF1YXJ0ZXIgPSBNYXRoLmZsb29yKChyZWZlcmVuY2VEYXRlLm1vbnRoIC0gMSkgLyAzKVxuICAgIGNvbnN0IHN0YXJ0T2ZRdWFydGVyID0gcmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7XG4gICAgICBtb250aHM6IHJlZmVyZW5jZURhdGUubW9udGggLSAxIC0gcXVhcnRlciAqIDMsXG4gICAgICBkYXlzOiByZWZlcmVuY2VEYXRlLmRheSAtIDEsXG4gICAgfSlcbiAgICBjb25zdCBlbmRPZlF1YXJ0ZXIgPSBzdGFydE9mUXVhcnRlci5hZGQoeyBtb250aHM6IDMgfSlcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoc3RhcnRPZlF1YXJ0ZXIsIGVuZE9mUXVhcnRlcilcbiAgfVxuXG4gIHN0YXRpYyBnZXRQcmV2aW91c1F1YXJ0ZXIoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBUZW1wb3JhbFV0aWwuZ2V0Q3VycmVudFF1YXJ0ZXIocmVmZXJlbmNlRGF0ZSkuc2hpZnRNb250aHMoLTMpXG4gIH1cblxuICBzdGF0aWMgZ2V0Q3VycmVudFllYXIoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHN0YXJ0T2ZZZWFyID0gcmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7XG4gICAgICBkYXlzOiByZWZlcmVuY2VEYXRlLmRheU9mWWVhciAtIDEsXG4gICAgfSlcbiAgICBjb25zdCBlbmRPZlllYXIgPSBzdGFydE9mWWVhci5hZGQoeyB5ZWFyczogMSB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChzdGFydE9mWWVhciwgZW5kT2ZZZWFyKVxuICB9XG5cbiAgc3RhdGljIGdldFByZXZpb3VzWWVhcihcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRDdXJyZW50WWVhcihyZWZlcmVuY2VEYXRlKS5zaGlmdFllYXJzKC0xKVxuICB9XG5cbiAgc3RhdGljIGdldE5leHRZZWFyKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRZZWFyKHJlZmVyZW5jZURhdGUpLnNoaWZ0WWVhcnMoMSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRMYXN0MzY1RGF5cyhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHJlZmVyZW5jZURhdGUuc3VidHJhY3QoeyBkYXlzOiAzNjUgfSksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdDkwRGF5cyhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHJlZmVyZW5jZURhdGUuc3VidHJhY3QoeyBkYXlzOiA5MCB9KSwgcmVmZXJlbmNlRGF0ZSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRQcmV2aW91c01vbnRoKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRNb250aChyZWZlcmVuY2VEYXRlKS5zaGlmdE1vbnRocygtMSlcbiAgfVxuXG4gIHN0YXRpYyBnZXROZXh0TW9udGgoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBUZW1wb3JhbFV0aWwuZ2V0Q3VycmVudE1vbnRoKHJlZmVyZW5jZURhdGUpLnNoaWZ0TW9udGhzKDEpXG4gIH1cblxuICBzdGF0aWMgZ2V0UHJldmlvdXNXZWVrKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRXZWVrKHJlZmVyZW5jZURhdGUpLnNoaWZ0RGF5cygtNylcbiAgfVxuXG4gIHN0YXRpYyBnZXREYXRlVG9kYXlMb2NhbGl6ZWQoKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVUZW1wb3JhbExvY2FsaXplZERhdGVGcm9tVGltZXN0YW1wKERhdGUubm93KCkpXG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVGVtcG9yYWxMb2NhbGl6ZWREYXRlRnJvbVRpbWVzdGFtcCh0aW1lc3RhbXA6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgY29uc3QgaW5zdGFudCA9IFRlbXBvcmFsLkluc3RhbnQuZnJvbUVwb2NoTWlsbGlzZWNvbmRzKHRpbWVzdGFtcClcbiAgICBjb25zdCBkYXRlVGltZUlzbyA9IGluc3RhbnQudG9ab25lZERhdGVUaW1lSVNPKFRlbXBvcmFsLk5vdy50aW1lWm9uZUlkKCkpXG4gICAgY29uc3QgZGF0ZSA9IFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGVUaW1lSXNvKVxuICAgIHJldHVybiBkYXRlXG4gIH1cblxuICBzdGF0aWMgZ2V0SHRtbERhdGVTdHJpbmcoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgVGVtcG9yYWwuUGxhaW5EYXRlVGltZSk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIGRhdGUueWVhciArXG4gICAgICAnLScgK1xuICAgICAgZGF0ZS5tb250aC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgJy0nICtcbiAgICAgIGRhdGUuZGF5LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKVxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpbkRhdGVGcm9tSHRtbERhdGVTdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICBpZiAoIWRhdGVTdHJpbmcpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGNvbnN0IGRhdGVBcnIgPSBkYXRlU3RyaW5nLnNwbGl0KCctJylcbiAgICBpZiAoZGF0ZUFyci5sZW5ndGggIT09IDMpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbSh7XG4gICAgICB5ZWFyOiBwYXJzZUludChkYXRlQXJyWzBdKSxcbiAgICAgIG1vbnRoOiBwYXJzZUludChkYXRlQXJyWzFdKSxcbiAgICAgIGRheTogcGFyc2VJbnQoZGF0ZUFyclsyXSksXG4gICAgfSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpblRpbWVGcm9tSHRtbFRpbWVTdHJpbmcodGltZVN0cmluZzogc3RyaW5nKTogVGVtcG9yYWwuUGxhaW5UaW1lIHtcbiAgICBpZiAoIXRpbWVTdHJpbmcpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGNvbnN0IHRpbWVBcnIgPSB0aW1lU3RyaW5nLnNwbGl0KCc6JylcbiAgICBpZiAodGltZUFyci5sZW5ndGggIT09IDIgJiYgdGltZUFyci5sZW5ndGggIT09IDMpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgaWYgKHRpbWVBcnIubGVuZ3RoID09PSAyKSB7XG4gICAgICByZXR1cm4gVGVtcG9yYWwuUGxhaW5UaW1lLmZyb20oe1xuICAgICAgICBob3VyOiBwYXJzZUludCh0aW1lQXJyWzBdKSxcbiAgICAgICAgbWludXRlOiBwYXJzZUludCh0aW1lQXJyWzFdKSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluVGltZS5mcm9tKHtcbiAgICAgIGhvdXI6IHBhcnNlSW50KHRpbWVBcnJbMF0pLFxuICAgICAgbWludXRlOiBwYXJzZUludCh0aW1lQXJyWzFdKSxcbiAgICAgIHNlY29uZDogcGFyc2VJbnQodGltZUFyclsyXSksXG4gICAgfSlcbiAgfVxufVxuIl19
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi90aW1lL3RlbXBvcmFsLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBRTFFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxJQUFpRDtRQUNqRixJQUFJLElBQUksWUFBWSxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0MsT0FBTyxJQUFJLElBQUksQ0FDYixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUNkLElBQUksQ0FBQyxHQUFHLEVBQ1IsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsMEJBQTBCLENBQUMsSUFBVTtRQUMxQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDekUsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFD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QUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcG9yYWwgfSBmcm9tICdAanMtdGVtcG9yYWwvcG9seWZpbGwnXG5pbXBvcnQgeyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIH0gZnJvbSAnLi90ZW1wb3JhbC1wbGFpbi1kYXRlLWludGVydmFsJ1xuXG5leHBvcnQgY2xhc3MgVGVtcG9yYWxVdGlsIHtcbiAgc3RhdGljIGdldEpTRGF0ZUZyb21QbGFpbkRhdGVUaW1lKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUpOiBEYXRlIHtcbiAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShcbiAgICAgICAgZGF0ZS55ZWFyLFxuICAgICAgICBkYXRlLm1vbnRoIC0gMSxcbiAgICAgICAgZGF0ZS5kYXksXG4gICAgICAgIGRhdGUuaG91cixcbiAgICAgICAgZGF0ZS5taW51dGUsXG4gICAgICAgIGRhdGUuc2Vjb25kLFxuICAgICAgICBkYXRlLm1pbGxpc2Vjb25kXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGggLSAxLCBkYXRlLmRheSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpbkRhdGVUaW1lRnJvbUpTRGF0ZShkYXRlOiBEYXRlKTogVGVtcG9yYWwuUGxhaW5EYXRlVGltZSB7XG4gICAgY29uc3QgaW5zdGFudCA9IFRlbXBvcmFsLkluc3RhbnQuZnJvbUVwb2NoTWlsbGlzZWNvbmRzKGRhdGUuZ2V0VGltZSgpKVxuICAgIGNvbnN0IGRhdGVUaW1lSXNvID0gaW5zdGFudC50b1pvbmVkRGF0ZVRpbWVJU08oVGVtcG9yYWwuTm93LnRpbWVab25lSWQoKSlcbiAgICByZXR1cm4gVGVtcG9yYWwuUGxhaW5EYXRlVGltZS5mcm9tKGRhdGVUaW1lSXNvKVxuICB9XG5cbiAgc3RhdGljIGdldFBsYWluRGF0ZVRpbWVGcm9tUGxhaW5EYXRlQW5kUGxhaW5UaW1lKFxuICAgIGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSxcbiAgICB0aW1lOiBUZW1wb3JhbC5QbGFpblRpbWVcbiAgKTogVGVtcG9yYWwuUGxhaW5EYXRlVGltZSB7XG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUuZnJvbSh7XG4gICAgICB5ZWFyOiBkYXRlLnllYXIsXG4gICAgICBtb250aDogZGF0ZS5tb250aCxcbiAgICAgIGRheTogZGF0ZS5kYXksXG4gICAgICBob3VyOiB0aW1lLmhvdXIsXG4gICAgICBtaW51dGU6IHRpbWUubWludXRlLFxuICAgICAgc2Vjb25kOiB0aW1lLnNlY29uZCxcbiAgICAgIG1pbGxpc2Vjb25kOiB0aW1lLm1pbGxpc2Vjb25kLFxuICAgIH0pXG4gIH1cblxuICBzdGF0aWMgaXNGaXJzdERheU9mV2VlayhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGUuZGF5T2ZXZWVrID09PSAxXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5EYXRlRnJvbUpTRGF0ZShkYXRlOiBEYXRlKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVUZW1wb3JhbExvY2FsaXplZERhdGVGcm9tVGltZXN0YW1wKGRhdGUuZ2V0VGltZSgpKVxuICB9XG5cbiAgc3RhdGljIGdldFBsYWluVGltZUZyb21KU0RhdGUoZGF0ZTogRGF0ZSk6IFRlbXBvcmFsLlBsYWluVGltZSB7XG4gICAgY29uc3QgaW5zdGFudCA9IFRlbXBvcmFsLkluc3RhbnQuZnJvbUVwb2NoTWlsbGlzZWNvbmRzKGRhdGUuZ2V0VGltZSgpKVxuICAgIGNvbnN0IGRhdGVUaW1lSXNvID0gaW5zdGFudC50b1pvbmVkRGF0ZVRpbWVJU08oVGVtcG9yYWwuTm93LnRpbWVab25lSWQoKSlcbiAgICByZXR1cm4gVGVtcG9yYWwuUGxhaW5UaW1lLmZyb20oZGF0ZVRpbWVJc28pXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5EYXRlVGltZUZyb21TdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogVGVtcG9yYWwuUGxhaW5EYXRlVGltZSB7XG4gICAgbGV0IGpzRGF0ZTogRGF0ZSA9IG51bGxcbiAgICB0cnkge1xuICAgICAganNEYXRlID0gbmV3IERhdGUoZGF0ZVN0cmluZylcbiAgICAgIGlmICh0eXBlb2YganNEYXRlICE9PSAnb2JqZWN0JyB8fCBqc0RhdGUuY29uc3RydWN0b3IubmFtZSAhPT0gJ0RhdGUnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRlIHN0cmluZycpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdJbnZhbGlkIGRhdGUgc3RyaW5nJywgZGF0ZVN0cmluZylcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0UGxhaW5EYXRlVGltZUZyb21KU0RhdGUoanNEYXRlKVxuICB9XG5cbiAgc3RhdGljIGdldEh0bWxUaW1lU3RyaW5nRnJvbVBsYWluVGltZSh0aW1lOiBUZW1wb3JhbC5QbGFpblRpbWUgfCBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lKTogc3RyaW5nIHtcbiAgICBpZiAoIXRpbWUpIHtcbiAgICAgIHJldHVybiAnMDA6MDA6MDAnXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICB0aW1lLmhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICtcbiAgICAgICc6JyArXG4gICAgICB0aW1lLm1pbnV0ZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgJzonICtcbiAgICAgIHRpbWUuc2Vjb25kLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKVxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBnZXRRdWFydGVyRm9yRGF0ZShcbiAgICBkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcigoZGF0ZS5tb250aCAtIDEpIC8gMykgKyAxXG4gIH1cblxuICBzdGF0aWMgZ2V0Q3VycmVudERheShcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgY29uc3QgdG9kYXkgPSByZWZlcmVuY2VEYXRlXG4gICAgY29uc3QgdG9tb3Jyb3cgPSB0b2RheS5hZGQoeyBkYXlzOiAxIH0pXG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHRvZGF5LCB0b21vcnJvdylcbiAgfVxuXG4gIHN0YXRpYyBnZXRZZXN0ZXJkYXkoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHllc3RlcmRheSA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3QoeyBkYXlzOiAxIH0pXG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHllc3RlcmRheSwgcmVmZXJlbmNlRGF0ZSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRMYXN0U2V2ZW5EYXlzKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwocmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7IGRheXM6IDcgfSksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdFNldmVuRGF5c0luY2x1ZGluZ1RvZGF5KFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoXG4gICAgICByZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogNyAtIDEgfSksXG4gICAgICByZWZlcmVuY2VEYXRlLmFkZCh7IGRheXM6IDEgfSlcbiAgICApXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdFRoaXJ0eURheXMoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChyZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogMzAgfSksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdFRoaXJ0eURheXNJbmNsdWRpbmdUb2RheShcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKFxuICAgICAgcmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7IGRheXM6IDMwIC0gMSB9KSxcbiAgICAgIHJlZmVyZW5jZURhdGUuYWRkKHsgZGF5czogMSB9KVxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBnZXRDdXJyZW50V2VlayhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgY29uc3Qgc3RhcnRPZldlZWsgPSByZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHtcbiAgICAgIGRheXM6IHJlZmVyZW5jZURhdGUuZGF5T2ZXZWVrIC0gMSxcbiAgICB9KVxuICAgIGNvbnN0IGVuZE9mV2VlayA9IHN0YXJ0T2ZXZWVrLmFkZCh7IGRheXM6IDcgfSlcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoc3RhcnRPZldlZWssIGVuZE9mV2VlaylcbiAgfVxuXG4gIHN0YXRpYyBnZXRDdXJyZW50TW9udGgoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHN0YXJ0T2ZNb250aCA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3Qoe1xuICAgICAgZGF5czogcmVmZXJlbmNlRGF0ZS5kYXkgLSAxLFxuICAgIH0pXG4gICAgY29uc3QgZW5kT2ZNb250aCA9IHN0YXJ0T2ZNb250aC5hZGQoeyBtb250aHM6IDEgfSlcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoc3RhcnRPZk1vbnRoLCBlbmRPZk1vbnRoKVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnRRdWFydGVyKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICBjb25zdCBxdWFydGVyID0gTWF0aC5mbG9vcigocmVmZXJlbmNlRGF0ZS5tb250aCAtIDEpIC8gMylcbiAgICBjb25zdCBzdGFydE9mUXVhcnRlciA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3Qoe1xuICAgICAgbW9udGhzOiByZWZlcmVuY2VEYXRlLm1vbnRoIC0gMSAtIHF1YXJ0ZXIgKiAzLFxuICAgICAgZGF5czogcmVmZXJlbmNlRGF0ZS5kYXkgLSAxLFxuICAgIH0pXG4gICAgY29uc3QgZW5kT2ZRdWFydGVyID0gc3RhcnRPZlF1YXJ0ZXIuYWRkKHsgbW9udGhzOiAzIH0pXG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHN0YXJ0T2ZRdWFydGVyLCBlbmRPZlF1YXJ0ZXIpXG4gIH1cblxuICBzdGF0aWMgZ2V0UHJldmlvdXNRdWFydGVyKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRRdWFydGVyKHJlZmVyZW5jZURhdGUpLnNoaWZ0TW9udGhzKC0zKVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnRZZWFyKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICBjb25zdCBzdGFydE9mWWVhciA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3Qoe1xuICAgICAgZGF5czogcmVmZXJlbmNlRGF0ZS5kYXlPZlllYXIgLSAxLFxuICAgIH0pXG4gICAgY29uc3QgZW5kT2ZZZWFyID0gc3RhcnRPZlllYXIuYWRkKHsgeWVhcnM6IDEgfSlcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoc3RhcnRPZlllYXIsIGVuZE9mWWVhcilcbiAgfVxuXG4gIHN0YXRpYyBnZXRQcmV2aW91c1llYXIoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBUZW1wb3JhbFV0aWwuZ2V0Q3VycmVudFllYXIocmVmZXJlbmNlRGF0ZSkuc2hpZnRZZWFycygtMSlcbiAgfVxuXG4gIHN0YXRpYyBnZXROZXh0WWVhcihcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRDdXJyZW50WWVhcihyZWZlcmVuY2VEYXRlKS5zaGlmdFllYXJzKDEpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdDM2NURheXMoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChyZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogMzY1IH0pLCByZWZlcmVuY2VEYXRlKVxuICB9XG5cbiAgc3RhdGljIGdldExhc3Q5MERheXMoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChyZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogOTAgfSksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0UHJldmlvdXNNb250aChcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRDdXJyZW50TW9udGgocmVmZXJlbmNlRGF0ZSkuc2hpZnRNb250aHMoLTEpXG4gIH1cblxuICBzdGF0aWMgZ2V0TmV4dE1vbnRoKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRNb250aChyZWZlcmVuY2VEYXRlKS5zaGlmdE1vbnRocygxKVxuICB9XG5cbiAgc3RhdGljIGdldFByZXZpb3VzV2VlayhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRDdXJyZW50V2VlayhyZWZlcmVuY2VEYXRlKS5zaGlmdERheXMoLTcpXG4gIH1cblxuICBzdGF0aWMgZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKCk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVGVtcG9yYWxMb2NhbGl6ZWREYXRlRnJvbVRpbWVzdGFtcChEYXRlLm5vdygpKVxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVRlbXBvcmFsTG9jYWxpemVkRGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIGNvbnN0IGluc3RhbnQgPSBUZW1wb3JhbC5JbnN0YW50LmZyb21FcG9jaE1pbGxpc2Vjb25kcyh0aW1lc3RhbXApXG4gICAgY29uc3QgZGF0ZVRpbWVJc28gPSBpbnN0YW50LnRvWm9uZWREYXRlVGltZUlTTyhUZW1wb3JhbC5Ob3cudGltZVpvbmVJZCgpKVxuICAgIGNvbnN0IGRhdGUgPSBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbShkYXRlVGltZUlzbylcbiAgICByZXR1cm4gZGF0ZVxuICB9XG5cbiAgc3RhdGljIGdldEh0bWxEYXRlU3RyaW5nKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUpOiBzdHJpbmcge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBkYXRlLnllYXIgK1xuICAgICAgJy0nICtcbiAgICAgIGRhdGUubW9udGgudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICtcbiAgICAgICctJyArXG4gICAgICBkYXRlLmRheS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJylcbiAgICApXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5EYXRlRnJvbUh0bWxEYXRlU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgaWYgKCFkYXRlU3RyaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBkYXRlQXJyID0gZGF0ZVN0cmluZy5zcGxpdCgnLScpXG4gICAgaWYgKGRhdGVBcnIubGVuZ3RoICE9PSAzKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oe1xuICAgICAgeWVhcjogcGFyc2VJbnQoZGF0ZUFyclswXSksXG4gICAgICBtb250aDogcGFyc2VJbnQoZGF0ZUFyclsxXSksXG4gICAgICBkYXk6IHBhcnNlSW50KGRhdGVBcnJbMl0pLFxuICAgIH0pXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5UaW1lRnJvbUh0bWxUaW1lU3RyaW5nKHRpbWVTdHJpbmc6IHN0cmluZyk6IFRlbXBvcmFsLlBsYWluVGltZSB7XG4gICAgaWYgKCF0aW1lU3RyaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCB0aW1lQXJyID0gdGltZVN0cmluZy5zcGxpdCgnOicpXG4gICAgaWYgKHRpbWVBcnIubGVuZ3RoICE9PSAyICYmIHRpbWVBcnIubGVuZ3RoICE9PSAzKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGlmICh0aW1lQXJyLmxlbmd0aCA9PT0gMikge1xuICAgICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluVGltZS5mcm9tKHtcbiAgICAgICAgaG91cjogcGFyc2VJbnQodGltZUFyclswXSksXG4gICAgICAgIG1pbnV0ZTogcGFyc2VJbnQodGltZUFyclsxXSksXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBUZW1wb3JhbC5QbGFpblRpbWUuZnJvbSh7XG4gICAgICBob3VyOiBwYXJzZUludCh0aW1lQXJyWzBdKSxcbiAgICAgIG1pbnV0ZTogcGFyc2VJbnQodGltZUFyclsxXSksXG4gICAgICBzZWNvbmQ6IHBhcnNlSW50KHRpbWVBcnJbMl0pLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
@@ -24,7 +24,7 @@ export class ElderIntervalPickerToggleComponent {
|
|
|
24
24
|
this.isDisabledInput = false;
|
|
25
25
|
this.isResultTextVisible = true;
|
|
26
26
|
this.isHelpTextsVisible = false;
|
|
27
|
-
this.
|
|
27
|
+
this.isSelectLastModeExcludingToday = false;
|
|
28
28
|
this.inputAnchorDateTime = input(null);
|
|
29
29
|
this.inputInterval = null;
|
|
30
30
|
this.anchorDateTime = null;
|
|
@@ -88,13 +88,14 @@ export class ElderIntervalPickerToggleComponent {
|
|
|
88
88
|
this.intervalInputElement = inputComponent;
|
|
89
89
|
}
|
|
90
90
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderIntervalPickerToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: ElderIntervalPickerToggleComponent, isStandalone: true, selector: "elder-interval-picker-toggle", inputs: { intervalInputElement: { classPropertyName: "intervalInputElement", publicName: "intervalInputElement", isSignal: false, isRequired: false, transformFunction: null }, isEmittingOnChange: { classPropertyName: "isEmittingOnChange", publicName: "isEmittingOnChange", isSignal: false, isRequired: false, transformFunction: null }, showAnchor: { classPropertyName: "showAnchor", publicName: "showAnchor", isSignal: false, isRequired: false, transformFunction: null }, isAnchorReadOnly: { classPropertyName: "isAnchorReadOnly", publicName: "isAnchorReadOnly", isSignal: false, isRequired: false, transformFunction: null }, isDisabledInput: { classPropertyName: "isDisabledInput", publicName: "isDisabledInput", isSignal: false, isRequired: false, transformFunction: null }, isResultTextVisible: { classPropertyName: "isResultTextVisible", publicName: "isResultTextVisible", isSignal: false, isRequired: false, transformFunction: null }, isHelpTextsVisible: { classPropertyName: "isHelpTextsVisible", publicName: "isHelpTextsVisible", isSignal: false, isRequired: false, transformFunction: null },
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: ElderIntervalPickerToggleComponent, isStandalone: true, selector: "elder-interval-picker-toggle", inputs: { intervalInputElement: { classPropertyName: "intervalInputElement", publicName: "intervalInputElement", isSignal: false, isRequired: false, transformFunction: null }, isEmittingOnChange: { classPropertyName: "isEmittingOnChange", publicName: "isEmittingOnChange", isSignal: false, isRequired: false, transformFunction: null }, showAnchor: { classPropertyName: "showAnchor", publicName: "showAnchor", isSignal: false, isRequired: false, transformFunction: null }, isAnchorReadOnly: { classPropertyName: "isAnchorReadOnly", publicName: "isAnchorReadOnly", isSignal: false, isRequired: false, transformFunction: null }, isDisabledInput: { classPropertyName: "isDisabledInput", publicName: "isDisabledInput", isSignal: false, isRequired: false, transformFunction: null }, isResultTextVisible: { classPropertyName: "isResultTextVisible", publicName: "isResultTextVisible", isSignal: false, isRequired: false, transformFunction: null }, isHelpTextsVisible: { classPropertyName: "isHelpTextsVisible", publicName: "isHelpTextsVisible", isSignal: false, isRequired: false, transformFunction: null }, isSelectLastModeExcludingToday: { classPropertyName: "isSelectLastModeExcludingToday", publicName: "isSelectLastModeExcludingToday", isSignal: false, isRequired: false, transformFunction: null }, inputAnchorDateTime: { classPropertyName: "inputAnchorDateTime", publicName: "inputAnchorDateTime", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "connectedIntervalPicker", first: true, predicate: ["connectedIntervalPicker"], descendants: true }], ngImport: i0, template: `
|
|
92
92
|
<span style="padding-right: 8px">
|
|
93
93
|
<button
|
|
94
94
|
mat-icon-button
|
|
95
95
|
[elderOverlayOrigin]="dateIntervalOverlay"
|
|
96
96
|
[elderOverlayTrigger]="dateIntervalOverlay"
|
|
97
97
|
[disabled]="isButtonDisabled"
|
|
98
|
+
(click)="pullIntervalData()"
|
|
98
99
|
class="elder-control-icon-button mat-datepicker-toggle"
|
|
99
100
|
>
|
|
100
101
|
<mat-icon>date_range</mat-icon>
|
|
@@ -115,11 +116,12 @@ export class ElderIntervalPickerToggleComponent {
|
|
|
115
116
|
[isAnchorReadOnly]="isAnchorReadOnly"
|
|
116
117
|
[isResultTextVisible]="isResultTextVisible"
|
|
117
118
|
[isHelpTextsVisible]="isHelpTextsVisible"
|
|
119
|
+
[isSelectLastModeExcludingToday]="isSelectLastModeExcludingToday"
|
|
118
120
|
></elder-interval-picker>
|
|
119
121
|
</div>
|
|
120
122
|
</elder-dialog-panel>
|
|
121
123
|
</elder-overlay>
|
|
122
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ElderIntervalPickerComponent, selector: "elder-interval-picker", inputs: ["isEmittingOnChange", "intervalInputMode", "showAnchor", "isAnchorReadOnly", "isResultTextVisible", "isHelpTextsVisible", "inputInterval", "inputAnchorDateTime"], outputs: ["dateChange"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
124
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ElderIntervalPickerComponent, selector: "elder-interval-picker", inputs: ["isEmittingOnChange", "intervalInputMode", "showAnchor", "isAnchorReadOnly", "isResultTextVisible", "isHelpTextsVisible", "isSelectLastModeExcludingToday", "inputInterval", "inputAnchorDateTime"], outputs: ["dateChange"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
123
125
|
}
|
|
124
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderIntervalPickerToggleComponent, decorators: [{
|
|
125
127
|
type: Component,
|
|
@@ -146,6 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
146
148
|
[elderOverlayOrigin]="dateIntervalOverlay"
|
|
147
149
|
[elderOverlayTrigger]="dateIntervalOverlay"
|
|
148
150
|
[disabled]="isButtonDisabled"
|
|
151
|
+
(click)="pullIntervalData()"
|
|
149
152
|
class="elder-control-icon-button mat-datepicker-toggle"
|
|
150
153
|
>
|
|
151
154
|
<mat-icon>date_range</mat-icon>
|
|
@@ -166,6 +169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
166
169
|
[isAnchorReadOnly]="isAnchorReadOnly"
|
|
167
170
|
[isResultTextVisible]="isResultTextVisible"
|
|
168
171
|
[isHelpTextsVisible]="isHelpTextsVisible"
|
|
172
|
+
[isSelectLastModeExcludingToday]="isSelectLastModeExcludingToday"
|
|
169
173
|
></elder-interval-picker>
|
|
170
174
|
</div>
|
|
171
175
|
</elder-dialog-panel>
|
|
@@ -190,7 +194,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
190
194
|
type: Input
|
|
191
195
|
}], isHelpTextsVisible: [{
|
|
192
196
|
type: Input
|
|
193
|
-
}],
|
|
197
|
+
}], isSelectLastModeExcludingToday: [{
|
|
194
198
|
type: Input
|
|
195
199
|
}] } });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItaW50ZXJ2YWwtcGlja2VyLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUvZWxkZXItaW50ZXJ2YWwtcGlja2VyL2VsZGVyLWludGVydmFsLXBpY2tlci10b2dnbGUvZWxkZXItaW50ZXJ2YWwtcGlja2VyLXRvZ2dsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUdwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUM1RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQTtBQUM5RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQTtBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUN6SCxPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0saUZBQWlGLENBQUE7QUFDeEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUE7O0FBb0RqRixNQUFNLE9BQU8sa0NBQWtDO0lBbEQvQztRQW1ERTs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFH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QUFBO0lBQzVDLENBQUM7OEdBdEdVLGtDQUFrQztrR0FBbEMsa0NBQWtDLGlvREFsQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JULDREQTNDQyw0QkFBNEIsdVFBSTVCLHFCQUFxQiw4UkFDckIseUJBQXlCLCtEQUN6QixPQUFPLDJJQUNQLGFBQWEsNkZBRWIsNEJBQTRCLDRKQUM1QiwyQkFBMkI7OzJGQW9DbEIsa0NBQWtDO2tCQWxEOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3dCQUMzQixZQUFZO3dCQUNaLFFBQVE7d0JBQ1IscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixTQUFTO3dCQUNULDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3FCQUM1QjtvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQVdDLHVCQUF1QjtzQkFEdEIsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBRzNCLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdExhYmVsLCBNYXRTdWZmaXggfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJ1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgSW50ZXJ2YWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdGltZS9pbnRlcnZhbCdcbmltcG9ydCB7IEVsZGVyT3ZlcmxheU9yaWdpbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvb3ZlcmxheXMvZWxkZXItb3ZlcmxheS1vcmlnaW4uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvb3ZlcmxheXMvZWxkZXItb3ZlcmxheS10cmlnZ2VyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVsZGVyT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvb3ZlcmxheXMvZWxkZXItb3ZlcmxheS5jb21wb25lbnQnXG5pbXBvcnQgeyBFbGRlckRpYWxvZ1BhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wYW5lbHMvZWxkZXItZGlhbG9nLXBhbmVsL2VsZGVyLWRpYWxvZy1wYW5lbC5jb21wb25lbnQnXG5pbXBvcnQge1xuICBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnQsXG4gIEludGVydmFsSW5wdXRNb2RlLFxufSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL3RpbWUvZWxkZXItaW50ZXJ2YWwtaW5wdXQvZWxkZXItaW50ZXJ2YWwtaW5wdXQuY29tcG9uZW50J1xuaW1wb3J0IHsgRWxkZXJJbnRlcnZhbFBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2VsZGVyLWludGVydmFsLXBpY2tlci5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWludGVydmFsLXBpY2tlci10b2dnbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRWxkZXJJbnRlcnZhbFBpY2tlckNvbXBvbmVudCxcbiAgICBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnQsXG4gICAgTWF0Rm9ybUZpZWxkLFxuICAgIE1hdExhYmVsLFxuICAgIEVsZGVyT3ZlcmxheUNvbXBvbmVudCxcbiAgICBFbGRlckRpYWxvZ1BhbmVsQ29tcG9uZW50LFxuICAgIE1hdEljb24sXG4gICAgTWF0SWNvbkJ1dHRvbixcbiAgICBNYXRTdWZmaXgsXG4gICAgRWxkZXJPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZSxcbiAgICBFbGRlck92ZXJsYXlPcmlnaW5EaXJlY3RpdmUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNwYW4gc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA4cHhcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIFtlbGRlck92ZXJsYXlPcmlnaW5dPVwiZGF0ZUludGVydmFsT3ZlcmxheVwiXG4gICAgICAgIFtlbGRlck92ZXJsYXlUcmlnZ2VyXT1cImRhdGVJbnRlcnZhbE92ZXJsYXlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgIGNsYXNzPVwiZWxkZXItY29udHJvbC1pY29uLWJ1dHRvbiBtYXQtZGF0ZXBpY2tlci10b2dnbGVcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+ZGF0ZV9yYW5nZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG5cbiAgICA8ZWxkZXItb3ZlcmxheSAjZGF0ZUludGVydmFsT3ZlcmxheSAoYXR0YWNoZWRDaGFuZ2UpPVwiaGFuZGxlT3ZlcmxheUF0dGFjaGVkQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDxlbGRlci1kaWFsb2ctcGFuZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYi1tZCBwdC14c1wiPlxuICAgICAgICAgIDxlbGRlci1pbnRlcnZhbC1waWNrZXJcbiAgICAgICAgICAgICNjb25uZWN0ZWRJbnRlcnZhbFBpY2tlclxuICAgICAgICAgICAgW2ludGVydmFsSW5wdXRNb2RlXT1cImludGVydmFsSW5wdXRNb2RlXCJcbiAgICAgICAgICAgIFtpc0VtaXR0aW5nT25DaGFuZ2VdPVwiaXNFbWl0dGluZ09uQ2hhbmdlXCJcbiAgICAgICAgICAgIFtpbnB1dEludGVydmFsXT1cImlucHV0SW50ZXJ2YWxcIlxuICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlSW50ZXJ2YWxQaWNrZXJEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW3Nob3dBbmNob3JdPVwic2hvd0FuY2hvclwiXG4gICAgICAgICAgICBbaW5wdXRBbmNob3JEYXRlVGltZV09XCJpbnB1dEFuY2hvckRhdGVUaW1lKClcIlxuICAgICAgICAgICAgW2lzQW5jaG9yUmVhZE9ubHldPVwiaXNBbmNob3JSZWFkT25seVwiXG4gICAgICAgICAgICBbaXNSZXN1bHRUZXh0VmlzaWJsZV09XCJpc1Jlc3VsdFRleHRWaXNpYmxlXCJcbiAgICAgICAgICAgIFtpc0hlbHBUZXh0c1Zpc2libGVdPVwiaXNIZWxwVGV4dHNWaXNpYmxlXCJcbiAgICAgICAgICA+PC9lbGRlci1pbnRlcnZhbC1waWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9lbGRlci1kaWFsb2ctcGFuZWw+XG4gICAgPC9lbGRlci1vdmVybGF5PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJJbnRlcnZhbFBpY2tlclRvZ2dsZUNvbXBvbmVudCB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIEBWaWV3Q2hpbGQoJ2Nvbm5lY3RlZEludGVydmFsUGlja2VyJylcbiAgY29ubmVjdGVkSW50ZXJ2YWxQaWNrZXIhOiBFbGRlckludGVydmFsUGlja2VyQ29tcG9uZW50XG5cbiAgQElucHV0KCkgaW50ZXJ2YWxJbnB1dEVsZW1lbnQ/OiBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnRcbiAgQElucHV0KCkgaXNFbWl0dGluZ09uQ2hhbmdlOiBib29sZWFuID0gdHJ1ZVxuICBASW5wdXQoKSBzaG93QW5jaG9yOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgaXNBbmNob3JSZWFkT25seSA9IGZhbHNlXG4gIEBJbnB1dCgpIGlzRGlzYWJsZWRJbnB1dCA9IGZhbHNlXG4gIEBJbnB1dCgpIGlzUmVzdWx0VGV4dFZpc2libGUgPSB0cnVlXG4gIEBJbnB1dCgpIGlzSGVscFRleHRzVmlzaWJsZSA9IGZhbHNlXG4gIEBJbnB1dCgpIGlzT3ZlcmxheUNlbnRlcmVkVG9TY3JlZW4gPSBmYWxzZVxuXG4gIHJlYWRvbmx5IGlucHV0QW5jaG9yRGF0ZVRpbWUgPSBpbnB1dDxEYXRlPihudWxsKVxuXG4gIGlucHV0SW50ZXJ2YWw6IEludGVydmFsID0gbnVsbFxuICBhbmNob3JEYXRlVGltZTogRGF0ZSA9IG51bGxcbiAgaW50ZXJ2YWxJbnB1dE1vZGU6IEludGVydmFsSW5wdXRNb2RlID0gJ2RhdGUtcmFuZ2UnIC8vIHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgY29ubmVjdGVkIGVsZW1lbnQgYWZ0ZXIgdmlldyBpbml0XG4gIGlzQnV0dG9uRGlzYWJsZWQgPSBmYWxzZVxuXG4gIGlucHV0SW50ZXJ2YWxFbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRJbnRlcnZhbEVsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pc0J1dHRvbkRpc2FibGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWRJbnB1dCkge1xuICAgICAgdGhpcy5pc0J1dHRvbkRpc2FibGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIHRoaXMuaW5wdXRJbnRlcnZhbEVsU3Vic2NyaXB0aW9uID0gdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC52YWx1ZVVwZGF0ZWQuc3Vic2NyaWJlKFxuICAgICAgKGludGVydmFsKSA9PiB7XG4gICAgICAgIHRoaXMucHVsbEludGVydmFsRGF0YSgpXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuaW50ZXJ2YWxJbnB1dE1vZGUgPSB0aGlzLmludGVydmFsSW5wdXRFbGVtZW50Lm1vZGVcblxuICAgIGlmICh0aGlzLmludGVydmFsSW5wdXRFbGVtZW50Py52YWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dEludGVydmFsID0gdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC5pbnRlcnZhbFxuICAgIH1cblxuICAgIHRoaXMucHVsbEludGVydmFsRGF0YSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBoYW5kbGVPdmVybGF5QXR0YWNoZWRDaGFuZ2UoYXR0YWNoZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0VtaXR0aW5nT25DaGFuZ2UpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnB1bGxJbnRlcnZhbERhdGEoKVxuICB9XG5cbiAgdXBkYXRlSW50ZXJ2YWxJbnB1dEVsZW1lbnQoaW50ZXJ2YWw6IEludGVydmFsKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC52YWx1ZSA9IGludGVydmFsXG4gIH1cblxuICBwdWxsSW50ZXJ2YWxEYXRhKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5jb25uZWN0ZWRJbnRlcnZhbFBpY2tlci5zdmMucHVsbElucHV0SW50ZXJ2YWwoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dEludGVydmFsID0gdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudCEudmFsdWUgYXMgSW50ZXJ2YWxcbiAgICB0aGlzLmNvbm5lY3RlZEludGVydmFsUGlja2VyLnN2Yy5zZXREYXRlVGltZXNGcm9tRWxkZXJJbnRlcnZhbCh0aGlzLmlucHV0SW50ZXJ2YWwpXG4gIH1cblxuICBoYW5kbGVJbnRlcnZhbFBpY2tlckRhdGVDaGFuZ2UoaW50ZXJ2YWw6IEludGVydmFsKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEludGVydmFsID0gaW50ZXJ2YWxcblxuICAgIGlmICh0aGlzLmludGVydmFsSW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLnVwZGF0ZUludGVydmFsSW5wdXRFbGVtZW50KHRoaXMuaW5wdXRJbnRlcnZhbClcbiAgICB9XG4gIH1cblxuICByZWdpc3RlcklucHV0Q29tcG9uZW50KGlucHV0Q29tcG9uZW50OiBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnQpIHtcbiAgICB0aGlzLmludGVydmFsSW5wdXRFbGVtZW50ID0gaW5wdXRDb21wb25lbnRcbiAgfVxufVxuIl19
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItaW50ZXJ2YWwtcGlja2VyLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUvZWxkZXItaW50ZXJ2YWwtcGlja2VyL2VsZGVyLWludGVydmFsLXBpY2tlci10b2dnbGUvZWxkZXItaW50ZXJ2YWwtcGlja2VyLXRvZ2dsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUdwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUM1RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQTtBQUM5RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQTtBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUN6SCxPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0saUZBQWlGLENBQUE7QUFDeEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUE7O0FBc0RqRixNQUFNLE9BQU8sa0NBQWtDO0lBcEQvQztRQXFERTs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFH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QUFBO0lBQzVDLENBQUM7OEdBdEdVLGtDQUFrQztrR0FBbEMsa0NBQWtDLGdwREFwQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ1QsNERBN0NDLDRCQUE0Qix5U0FJNUIscUJBQXFCLDhSQUNyQix5QkFBeUIsK0RBQ3pCLE9BQU8sMklBQ1AsYUFBYSw2RkFFYiw0QkFBNEIsNEpBQzVCLDJCQUEyQjs7MkZBc0NsQixrQ0FBa0M7a0JBcEQ5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsNEJBQTRCO3dCQUM1QiwyQkFBMkI7d0JBQzNCLFlBQVk7d0JBQ1osUUFBUTt3QkFDUixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsNEJBQTRCO3dCQUM1QiwyQkFBMkI7cUJBQzVCO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFXQyx1QkFBdUI7c0JBRHRCLFNBQVM7dUJBQUMseUJBQXlCO2dCQUczQixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyw4QkFBOEI7c0JBQXRDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRJY29uQnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCwgTWF0U3VmZml4IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCdcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEludGVydmFsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3RpbWUvaW50ZXJ2YWwnXG5pbXBvcnQgeyBFbGRlck92ZXJsYXlPcmlnaW5EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXktb3JpZ2luLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVsZGVyT3ZlcmxheVRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXktdHJpZ2dlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBFbGRlck92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXkuY29tcG9uZW50J1xuaW1wb3J0IHsgRWxkZXJEaWFsb2dQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcGFuZWxzL2VsZGVyLWRpYWxvZy1wYW5lbC9lbGRlci1kaWFsb2ctcGFuZWwuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgRWxkZXJJbnRlcnZhbElucHV0Q29tcG9uZW50LFxuICBJbnRlcnZhbElucHV0TW9kZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy90aW1lL2VsZGVyLWludGVydmFsLWlucHV0L2VsZGVyLWludGVydmFsLWlucHV0LmNvbXBvbmVudCdcbmltcG9ydCB7IEVsZGVySW50ZXJ2YWxQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9lbGRlci1pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1pbnRlcnZhbC1waWNrZXItdG9nZ2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEVsZGVySW50ZXJ2YWxQaWNrZXJDb21wb25lbnQsXG4gICAgRWxkZXJJbnRlcnZhbElucHV0Q29tcG9uZW50LFxuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRMYWJlbCxcbiAgICBFbGRlck92ZXJsYXlDb21wb25lbnQsXG4gICAgRWxkZXJEaWFsb2dQYW5lbENvbXBvbmVudCxcbiAgICBNYXRJY29uLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgTWF0U3VmZml4LFxuICAgIEVsZGVyT3ZlcmxheVRyaWdnZXJEaXJlY3RpdmUsXG4gICAgRWxkZXJPdmVybGF5T3JpZ2luRGlyZWN0aXZlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzcGFuIHN0eWxlPVwicGFkZGluZy1yaWdodDogOHB4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBbZWxkZXJPdmVybGF5T3JpZ2luXT1cImRhdGVJbnRlcnZhbE92ZXJsYXlcIlxuICAgICAgICBbZWxkZXJPdmVybGF5VHJpZ2dlcl09XCJkYXRlSW50ZXJ2YWxPdmVybGF5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzQnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwicHVsbEludGVydmFsRGF0YSgpXCJcbiAgICAgICAgY2xhc3M9XCJlbGRlci1jb250cm9sLWljb24tYnV0dG9uIG1hdC1kYXRlcGlja2VyLXRvZ2dsZVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5kYXRlX3JhbmdlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cblxuICAgIDxlbGRlci1vdmVybGF5ICNkYXRlSW50ZXJ2YWxPdmVybGF5IChhdHRhY2hlZENoYW5nZSk9XCJoYW5kbGVPdmVybGF5QXR0YWNoZWRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPGVsZGVyLWRpYWxvZy1wYW5lbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBiLW1kIHB0LXhzXCI+XG4gICAgICAgICAgPGVsZGVyLWludGVydmFsLXBpY2tlclxuICAgICAgICAgICAgI2Nvbm5lY3RlZEludGVydmFsUGlja2VyXG4gICAgICAgICAgICBbaW50ZXJ2YWxJbnB1dE1vZGVdPVwiaW50ZXJ2YWxJbnB1dE1vZGVcIlxuICAgICAgICAgICAgW2lzRW1pdHRpbmdPbkNoYW5nZV09XCJpc0VtaXR0aW5nT25DaGFuZ2VcIlxuICAgICAgICAgICAgW2lucHV0SW50ZXJ2YWxdPVwiaW5wdXRJbnRlcnZhbFwiXG4gICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVJbnRlcnZhbFBpY2tlckRhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbc2hvd0FuY2hvcl09XCJzaG93QW5jaG9yXCJcbiAgICAgICAgICAgIFtpbnB1dEFuY2hvckRhdGVUaW1lXT1cImlucHV0QW5jaG9yRGF0ZVRpbWUoKVwiXG4gICAgICAgICAgICBbaXNBbmNob3JSZWFkT25seV09XCJpc0FuY2hvclJlYWRPbmx5XCJcbiAgICAgICAgICAgIFtpc1Jlc3VsdFRleHRWaXNpYmxlXT1cImlzUmVzdWx0VGV4dFZpc2libGVcIlxuICAgICAgICAgICAgW2lzSGVscFRleHRzVmlzaWJsZV09XCJpc0hlbHBUZXh0c1Zpc2libGVcIlxuICAgICAgICAgICAgW2lzU2VsZWN0TGFzdE1vZGVFeGNsdWRpbmdUb2RheV09XCJpc1NlbGVjdExhc3RNb2RlRXhjbHVkaW5nVG9kYXlcIlxuICAgICAgICAgID48L2VsZGVyLWludGVydmFsLXBpY2tlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2VsZGVyLWRpYWxvZy1wYW5lbD5cbiAgICA8L2VsZGVyLW92ZXJsYXk+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckludGVydmFsUGlja2VyVG9nZ2xlQ29tcG9uZW50IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgQFZpZXdDaGlsZCgnY29ubmVjdGVkSW50ZXJ2YWxQaWNrZXInKVxuICBjb25uZWN0ZWRJbnRlcnZhbFBpY2tlciE6IEVsZGVySW50ZXJ2YWxQaWNrZXJDb21wb25lbnRcblxuICBASW5wdXQoKSBpbnRlcnZhbElucHV0RWxlbWVudD86IEVsZGVySW50ZXJ2YWxJbnB1dENvbXBvbmVudFxuICBASW5wdXQoKSBpc0VtaXR0aW5nT25DaGFuZ2U6IGJvb2xlYW4gPSB0cnVlXG4gIEBJbnB1dCgpIHNob3dBbmNob3I6IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBpc0FuY2hvclJlYWRPbmx5ID0gZmFsc2VcbiAgQElucHV0KCkgaXNEaXNhYmxlZElucHV0ID0gZmFsc2VcbiAgQElucHV0KCkgaXNSZXN1bHRUZXh0VmlzaWJsZSA9IHRydWVcbiAgQElucHV0KCkgaXNIZWxwVGV4dHNWaXNpYmxlID0gZmFsc2VcbiAgQElucHV0KCkgaXNTZWxlY3RMYXN0TW9kZUV4Y2x1ZGluZ1RvZGF5ID0gZmFsc2VcblxuICByZWFkb25seSBpbnB1dEFuY2hvckRhdGVUaW1lID0gaW5wdXQ8RGF0ZT4obnVsbClcblxuICBpbnB1dEludGVydmFsOiBJbnRlcnZhbCA9IG51bGxcbiAgYW5jaG9yRGF0ZVRpbWU6IERhdGUgPSBudWxsXG4gIGludGVydmFsSW5wdXRNb2RlOiBJbnRlcnZhbElucHV0TW9kZSA9ICdkYXRlLXJhbmdlJyAvLyB3aWxsIGJlIG92ZXJ3cml0dGVuIGJ5IGNvbm5lY3RlZCBlbGVtZW50IGFmdGVyIHZpZXcgaW5pdFxuICBpc0J1dHRvbkRpc2FibGVkID0gZmFsc2VcblxuICBpbnB1dEludGVydmFsRWxTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0SW50ZXJ2YWxFbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaXNCdXR0b25EaXNhYmxlZCA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkSW5wdXQpIHtcbiAgICAgIHRoaXMuaXNCdXR0b25EaXNhYmxlZCA9IHRydWVcbiAgICB9XG5cbiAgICB0aGlzLmlucHV0SW50ZXJ2YWxFbFN1YnNjcmlwdGlvbiA9IHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQudmFsdWVVcGRhdGVkLnN1YnNjcmliZShcbiAgICAgIChpbnRlcnZhbCkgPT4ge1xuICAgICAgICB0aGlzLnB1bGxJbnRlcnZhbERhdGEoKVxuICAgICAgfVxuICAgIClcbiAgICB0aGlzLmludGVydmFsSW5wdXRNb2RlID0gdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC5tb2RlXG5cbiAgICBpZiAodGhpcy5pbnRlcnZhbElucHV0RWxlbWVudD8udmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXRJbnRlcnZhbCA9IHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQuaW50ZXJ2YWxcbiAgICB9XG5cbiAgICB0aGlzLnB1bGxJbnRlcnZhbERhdGEoKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgaGFuZGxlT3ZlcmxheUF0dGFjaGVkQ2hhbmdlKGF0dGFjaGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNFbWl0dGluZ09uQ2hhbmdlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5wdWxsSW50ZXJ2YWxEYXRhKClcbiAgfVxuXG4gIHVwZGF0ZUludGVydmFsSW5wdXRFbGVtZW50KGludGVydmFsOiBJbnRlcnZhbCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQudmFsdWUgPSBpbnRlcnZhbFxuICB9XG5cbiAgcHVsbEludGVydmFsRGF0YSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY29ubmVjdGVkSW50ZXJ2YWxQaWNrZXIuc3ZjLnB1bGxJbnB1dEludGVydmFsKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuaW5wdXRJbnRlcnZhbCA9IHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQhLnZhbHVlIGFzIEludGVydmFsXG4gICAgdGhpcy5jb25uZWN0ZWRJbnRlcnZhbFBpY2tlci5zdmMuc2V0RGF0ZVRpbWVzRnJvbUVsZGVySW50ZXJ2YWwodGhpcy5pbnB1dEludGVydmFsKVxuICB9XG5cbiAgaGFuZGxlSW50ZXJ2YWxQaWNrZXJEYXRlQ2hhbmdlKGludGVydmFsOiBJbnRlcnZhbCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRJbnRlcnZhbCA9IGludGVydmFsXG5cbiAgICBpZiAodGhpcy5pbnRlcnZhbElucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy51cGRhdGVJbnRlcnZhbElucHV0RWxlbWVudCh0aGlzLmlucHV0SW50ZXJ2YWwpXG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJJbnB1dENvbXBvbmVudChpbnB1dENvbXBvbmVudDogRWxkZXJJbnRlcnZhbElucHV0Q29tcG9uZW50KSB7XG4gICAgdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudCA9IGlucHV0Q29tcG9uZW50XG4gIH1cbn1cbiJdfQ==
|