@colijnit/transaction 255.1.45 → 255.1.47
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/bundles/colijnit-transaction.umd.js +595 -240
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/lib/component/avatar/avatar.component.js +8 -3
- package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +10 -1
- package/esm2015/lib/component/checkout/checkout.module.js +6 -2
- package/esm2015/lib/component/delivery-planning/service/delivery-planning.service.js +99 -33
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.js +39 -25
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-short-line/delivery-planning-overview-short-line.component.js +4 -4
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-tile-line/delivery-planning-overview-tile-line.component.js +29 -11
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-tile-status/delivery-planning-tile-status.component.js +67 -16
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.js +39 -17
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.js +56 -30
- package/esm2015/lib/component/delivery-planning-main/delivery-planning-main.component.js +59 -46
- package/esm2015/lib/component/transaction-card/transaction-card-planning/transaction-card-planning.component.js +18 -3
- package/esm2015/lib/component/transaction-card/transaction-card-purchase-confirmation/transaction-card-purchase-confirmation.component.js +101 -96
- package/esm2015/lib/component/transaction-cash-register-dialog/transaction-cash-register-dialog.component.js +4 -4
- package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +13 -11
- package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +2 -3
- package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-order.component.js +7 -2
- package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +3 -8
- package/esm2015/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.js +10 -4
- package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-service-order/transaction-lines-side-panel-service-order.component.js +6 -4
- package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-service-order/transaction-lines-side-panel-service-order.module.js +4 -3
- package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-planning/transaction-quick-access-planning.component.js +5 -2
- package/esm2015/lib/component/transaction-service-overview/components/transaction-service-message.component.js +3 -2
- package/esm2015/lib/component/transaction-service-overview/transaction-service-overview.component.js +29 -20
- package/esm2015/lib/component/transaction-service-overview/transaction-service-overview.module.js +4 -3
- package/esm2015/lib/enum/checkout-cfg-name.enum.js +3 -1
- package/esm2015/lib/enum/delivery-planning-update-actions.enum.js +8 -0
- package/esm2015/lib/enum/transaction-cfg-name.enum.js +12 -1
- package/esm2015/lib/service/transaction-connector-adapter.service.js +12 -1
- package/esm2015/lib/service/transaction-connector.service.js +6 -1
- package/esm2015/lib/service/transaction-payment.service.js +3 -3
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +622 -322
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/delivery-planning/service/delivery-planning.service.d.ts +11 -7
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.d.ts +10 -7
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-short-line/delivery-planning-overview-short-line.component.d.ts +1 -1
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-tile-line/delivery-planning-overview-tile-line.component.d.ts +9 -2
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-tile-line/style/_layout.scss +6 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-tile-status/delivery-planning-tile-status.component.d.ts +18 -7
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-tile-status/style/_layout.scss +12 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.d.ts +20 -5
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/style/_layout.scss +2 -2
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/style/_material-definition.scss +1 -1
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.d.ts +23 -10
- package/lib/component/delivery-planning-main/delivery-planning-main.component.d.ts +14 -7
- package/lib/component/transaction-card/transaction-card/style/_layout.scss +14 -1
- package/lib/component/transaction-card/transaction-card-planning/transaction-card-planning.component.d.ts +2 -0
- package/lib/component/transaction-header/transaction-header/style/_layout.scss +4 -0
- package/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.d.ts +3 -2
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-service-order/transaction-lines-side-panel-service-order.component.d.ts +2 -0
- package/lib/component/transaction-quick-access/transaction-quick-access-planning/transaction-quick-access-planning.component.d.ts +1 -0
- package/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.d.ts +1 -1
- package/lib/component/transaction-service-overview/style/_layout.scss +14 -6
- package/lib/enum/checkout-cfg-name.enum.d.ts +2 -0
- package/lib/enum/delivery-planning-update-actions.enum.d.ts +6 -0
- package/lib/enum/transaction-cfg-name.enum.d.ts +12 -1
- package/lib/service/transaction-connector-adapter.service.d.ts +1 -0
- package/lib/service/transaction-connector.service.d.ts +1 -0
- package/package.json +2 -2
|
@@ -11,13 +11,18 @@ export class DeliveryPlanningOverviewTileLineComponent {
|
|
|
11
11
|
this.orderLines = false;
|
|
12
12
|
this.order = new PlanOrder();
|
|
13
13
|
this.isActive = false;
|
|
14
|
-
this.
|
|
14
|
+
this.deleteOrderEvent = new EventEmitter();
|
|
15
|
+
this.deleteOrderLineEvent = new EventEmitter();
|
|
16
|
+
this.editOrderEvent = new EventEmitter();
|
|
15
17
|
}
|
|
16
18
|
showClass() {
|
|
17
19
|
return true;
|
|
18
20
|
}
|
|
19
|
-
|
|
20
|
-
this.
|
|
21
|
+
handleDeleteOrderClick(order) {
|
|
22
|
+
this.deleteOrderEvent.emit(order);
|
|
23
|
+
}
|
|
24
|
+
handleDeleteOrderLineClick(order, line) {
|
|
25
|
+
this.deleteOrderLineEvent.emit({ order: order, line: line });
|
|
21
26
|
}
|
|
22
27
|
setLinesActive() {
|
|
23
28
|
this.linesActive = !this.linesActive;
|
|
@@ -30,6 +35,9 @@ export class DeliveryPlanningOverviewTileLineComponent {
|
|
|
30
35
|
getPlannedLines(lines) {
|
|
31
36
|
return lines.filter(line => line.planned === true);
|
|
32
37
|
}
|
|
38
|
+
handleEditOrderEvent(planOrder) {
|
|
39
|
+
this.editOrderEvent.emit(planOrder);
|
|
40
|
+
}
|
|
33
41
|
}
|
|
34
42
|
DeliveryPlanningOverviewTileLineComponent.decorators = [
|
|
35
43
|
{ type: Component, args: [{
|
|
@@ -39,8 +47,10 @@ DeliveryPlanningOverviewTileLineComponent.decorators = [
|
|
|
39
47
|
<div class="planning-line-content">
|
|
40
48
|
<div class="planning-line-left">
|
|
41
49
|
<div class="planning-line-extend" *ngIf="linesActive || orderLines">
|
|
42
|
-
<co-icon *ngIf="!orderLines" (click)="showOrderLines($event)"
|
|
43
|
-
|
|
50
|
+
<co-icon *ngIf="!orderLines" (click)="showOrderLines($event)"
|
|
51
|
+
[iconData]="iconCacheService.getIcon(icons.ChevronDownRegular)"></co-icon>
|
|
52
|
+
<co-icon *ngIf="orderLines" (click)="showOrderLines($event)"
|
|
53
|
+
[iconData]="iconCacheService.getIcon(icons.ChevronUpRegular)"></co-icon>
|
|
44
54
|
</div>
|
|
45
55
|
<div class="line-content-left">
|
|
46
56
|
<div class="planning-relation">
|
|
@@ -54,15 +64,19 @@ DeliveryPlanningOverviewTileLineComponent.decorators = [
|
|
|
54
64
|
<div class="planning-line-right">
|
|
55
65
|
<div class="line-content-right">
|
|
56
66
|
<div class="planning-order">
|
|
57
|
-
<co-icon (click)="setLinesActive()"
|
|
58
|
-
|
|
67
|
+
<co-icon (click)="setLinesActive()"
|
|
68
|
+
[iconData]="iconCacheService.getIcon(icons.CartShoppingRegular)"></co-icon>
|
|
69
|
+
<a href="javascript:void(0)" [textContent]="order.transactionNr" (click)="handleEditOrderEvent(order)"></a>
|
|
70
|
+
|
|
59
71
|
</div>
|
|
60
72
|
<div class="planning-time" *ngIf="linesActive">
|
|
61
|
-
<span
|
|
73
|
+
<span
|
|
74
|
+
[textContent]="(order.startTime | date: 'HH:mm') + ' - ' + (order.endTime | date: 'HH:mm')"></span>
|
|
62
75
|
</div>
|
|
63
76
|
</div>
|
|
64
77
|
<div class="planning-line-actions">
|
|
65
|
-
<co-icon *ngIf="linesActive" (click)="
|
|
78
|
+
<co-icon *ngIf="linesActive" (click)="handleDeleteOrderClick(order)"
|
|
79
|
+
[iconData]="iconCacheService.getIcon(icons.TrashCanRegular)"></co-icon>
|
|
66
80
|
<co-icon *ngIf="!linesActive" [iconData]="iconCacheService.getIcon(icons.ChevronRightRegular)"></co-icon>
|
|
67
81
|
</div>
|
|
68
82
|
</div>
|
|
@@ -71,6 +85,8 @@ DeliveryPlanningOverviewTileLineComponent.decorators = [
|
|
|
71
85
|
<div class="order-lines" *ngFor="let line of getPlannedLines(order?.lines)">
|
|
72
86
|
<span [textContent]="line.articleNumber"></span>
|
|
73
87
|
<span [textContent]="line.description"></span>
|
|
88
|
+
<co-icon *ngIf="linesActive" (click)="handleDeleteOrderLineClick(order, line)"
|
|
89
|
+
[iconData]="iconCacheService.getIcon(icons.TrashCanRegular)"></co-icon>
|
|
74
90
|
</div>
|
|
75
91
|
</div>
|
|
76
92
|
</div>
|
|
@@ -84,7 +100,9 @@ DeliveryPlanningOverviewTileLineComponent.ctorParameters = () => [
|
|
|
84
100
|
DeliveryPlanningOverviewTileLineComponent.propDecorators = {
|
|
85
101
|
order: [{ type: Input }],
|
|
86
102
|
isActive: [{ type: Input }],
|
|
87
|
-
|
|
103
|
+
deleteOrderEvent: [{ type: Output }],
|
|
104
|
+
deleteOrderLineEvent: [{ type: Output }],
|
|
105
|
+
editOrderEvent: [{ type: Output }],
|
|
88
106
|
showClass: [{ type: HostBinding, args: ["class.co-delivery-planning-overview-tile-line",] }]
|
|
89
107
|
};
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW1haW4vY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3L2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlL2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLWxpbmUvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNwRixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFNUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBd0Q3RSxNQUFNLE9BQU8seUNBQXlDO0lBMEJwRCxZQUFtQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXpCckMsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFDbkMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLFVBQUssR0FBYSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRWhDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHNUIscUJBQWdCLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7UUFHMUUseUJBQW9CLEdBQTRELElBQUksWUFBWSxFQUE2QyxDQUFDO1FBRzlJLG1CQUFjLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7SUFTL0UsQ0FBQztJQUxNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFLTSxzQkFBc0IsQ0FBQyxLQUFnQjtRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSwwQkFBMEIsQ0FBQyxLQUFnQixFQUFFLElBQW1CO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDTSxjQUFjLENBQUMsS0FBWTtRQUNoQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBRSxxREFBcUQ7UUFDL0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFzQjtRQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxvQkFBb0IsQ0FBRSxTQUFvQjtRQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7WUF6R0YsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx5Q0FBeUM7Z0JBQ25ELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBZ0RUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUExRE8sZ0JBQWdCOzs7b0JBaUVyQixLQUFLO3VCQUdMLEtBQUs7K0JBRUwsTUFBTTttQ0FHTixNQUFNOzZCQUdOLE1BQU07d0JBSU4sV0FBVyxTQUFDLCtDQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtQbGFuT3JkZXJMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXItbGluZS5ib1wiO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLmJvXCI7XHJcbmltcG9ydCB7TGluZX0gZnJvbSBcInRocmVlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGUtbGluZVwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWxpbmUtd3JhcHBlclwiIChjbGljayk9XCJzZXRMaW5lc0FjdGl2ZSgpXCIgW2NsYXNzLmFjdGl2ZS1saW5lc109XCJsaW5lc0FjdGl2ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1saW5lLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1saW5lLWxlZnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWxpbmUtZXh0ZW5kXCIgKm5nSWY9XCJsaW5lc0FjdGl2ZSB8fCBvcmRlckxpbmVzXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCIhb3JkZXJMaW5lc1wiIChjbGljayk9XCJzaG93T3JkZXJMaW5lcygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZXZyb25Eb3duUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJvcmRlckxpbmVzXCIgKGNsaWNrKT1cInNob3dPcmRlckxpbmVzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hldnJvblVwUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1jb250ZW50LWxlZnRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctcmVsYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJvcmRlci5yZWxhdGlvbk5hbWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWFkZHJlc3NcIiAqbmdJZj1cImxpbmVzQWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwib3JkZXIuc2hvcnRBZGRyZXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWxpbmUtcmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUtY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1vcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLWljb24gKGNsaWNrKT1cInNldExpbmVzQWN0aXZlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DYXJ0U2hvcHBpbmdSZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBbdGV4dENvbnRlbnRdPVwib3JkZXIudHJhbnNhY3Rpb25OclwiIChjbGljayk9XCJoYW5kbGVFZGl0T3JkZXJFdmVudChvcmRlcilcIj48L2E+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy10aW1lXCIgKm5nSWY9XCJsaW5lc0FjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIihvcmRlci5zdGFydFRpbWUgfCBkYXRlOiAnSEg6bW0nKSArICcgLSAnICsgKG9yZGVyLmVuZFRpbWUgfCBkYXRlOiAnSEg6bW0nKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1saW5lLWFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImxpbmVzQWN0aXZlXCIgKGNsaWNrKT1cImhhbmRsZURlbGV0ZU9yZGVyQ2xpY2sob3JkZXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlRyYXNoQ2FuUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCIhbGluZXNBY3RpdmVcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZXZyb25SaWdodFJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvcmRlci1saW5lLWxpc3Qtd3JhcHBlclwiICpuZ0lmPVwib3JkZXJMaW5lc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZGVyLWxpbmVzXCIgKm5nRm9yPVwibGV0IGxpbmUgb2YgZ2V0UGxhbm5lZExpbmVzKG9yZGVyPy5saW5lcylcIj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuYXJ0aWNsZU51bWJlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuZGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwibGluZXNBY3RpdmVcIiAoY2xpY2spPVwiaGFuZGxlRGVsZXRlT3JkZXJMaW5lQ2xpY2sob3JkZXIsIGxpbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmFzaENhblJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIERlbGl2ZXJ5UGxhbm5pbmdPdmVydmlld1RpbGVMaW5lQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICBwdWJsaWMgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbGluZXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgb3JkZXJMaW5lczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvcmRlcjpQbGFuT3JkZXIgPSBuZXcgUGxhbk9yZGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIGlzQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZWxldGVPcmRlckV2ZW50OiBFdmVudEVtaXR0ZXI8UGxhbk9yZGVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8UGxhbk9yZGVyPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVsZXRlT3JkZXJMaW5lRXZlbnQ6IEV2ZW50RW1pdHRlcjx7IG9yZGVyOiBQbGFuT3JkZXIsIGxpbmU6IFBsYW5PcmRlckxpbmUgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgb3JkZXI6IFBsYW5PcmRlciwgbGluZTogUGxhbk9yZGVyTGluZSB9PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZWRpdE9yZGVyRXZlbnQ6IEV2ZW50RW1pdHRlcjxQbGFuT3JkZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxQbGFuT3JkZXI+KCk7XHJcblxyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLWxpbmVcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURlbGV0ZU9yZGVyQ2xpY2sob3JkZXI6IFBsYW5PcmRlcikge1xyXG4gICAgdGhpcy5kZWxldGVPcmRlckV2ZW50LmVtaXQob3JkZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURlbGV0ZU9yZGVyTGluZUNsaWNrKG9yZGVyOiBQbGFuT3JkZXIsIGxpbmU6IFBsYW5PcmRlckxpbmUpIHtcclxuICAgdGhpcy5kZWxldGVPcmRlckxpbmVFdmVudC5lbWl0KHtvcmRlcjogb3JkZXIsIGxpbmU6IGxpbmV9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRMaW5lc0FjdGl2ZSgpIHtcclxuICAgIHRoaXMubGluZXNBY3RpdmUgPSAhdGhpcy5saW5lc0FjdGl2ZTtcclxuICAgIHRoaXMub3JkZXJMaW5lcyA9IGZhbHNlO1xyXG4gIH1cclxuICBwdWJsaWMgc2hvd09yZGVyTGluZXMoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgIC8vIFN0b3AgdGhlIGV2ZW50IGZyb20gcHJvcGFnYXRpbmcgdG8gcGFyZW50IGVsZW1lbnRzXHJcbiAgICB0aGlzLm9yZGVyTGluZXMgPSAhdGhpcy5vcmRlckxpbmVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFBsYW5uZWRMaW5lcyhsaW5lczogUGxhbk9yZGVyTGluZVtdKSB7XHJcbiAgICByZXR1cm4gbGluZXMuZmlsdGVyKGxpbmUgPT4gbGluZS5wbGFubmVkID09PSB0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVFZGl0T3JkZXJFdmVudCggcGxhbk9yZGVyOiBQbGFuT3JkZXIpIHtcclxuICAgIHRoaXMuZWRpdE9yZGVyRXZlbnQuZW1pdChwbGFuT3JkZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,27 +1,76 @@
|
|
|
1
|
-
import { Input } from "@angular/core";
|
|
1
|
+
import { ChangeDetectorRef, Input } from "@angular/core";
|
|
2
2
|
import { Component, HostBinding, ViewEncapsulation } from "@angular/core";
|
|
3
3
|
export class DeliveryPlanningTileStatusComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.
|
|
6
|
-
this.timeTotal = 480;
|
|
7
|
-
this.currentVolume = 0;
|
|
8
|
-
this.currentTimeTotal = 0;
|
|
4
|
+
constructor(_changeDetector) {
|
|
5
|
+
this._changeDetector = _changeDetector;
|
|
9
6
|
this.volumePercent = 0;
|
|
10
7
|
this.timePercent = 0;
|
|
8
|
+
this._maxVolume = 0;
|
|
9
|
+
this._timeTotal = 0;
|
|
10
|
+
this._currentVolume = 0;
|
|
11
|
+
this._currentTimeTotal = 0;
|
|
12
|
+
}
|
|
13
|
+
get maxVolume() {
|
|
14
|
+
return this._maxVolume;
|
|
15
|
+
}
|
|
16
|
+
set maxVolume(value) {
|
|
17
|
+
if (value != this._maxVolume) {
|
|
18
|
+
this._maxVolume = value;
|
|
19
|
+
this.calculateVolumePercent();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
get timeTotal() {
|
|
23
|
+
return this._timeTotal;
|
|
24
|
+
}
|
|
25
|
+
set timeTotal(value) {
|
|
26
|
+
if (value != this._timeTotal) {
|
|
27
|
+
this._timeTotal = value;
|
|
28
|
+
this.calculateTimePercent();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
get currentVolume() {
|
|
32
|
+
return this._currentVolume;
|
|
33
|
+
}
|
|
34
|
+
set currentVolume(value) {
|
|
35
|
+
if (value != this._currentVolume) {
|
|
36
|
+
this._currentVolume = value;
|
|
37
|
+
this.calculateVolumePercent();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
get currentTimeTotal() {
|
|
41
|
+
return this._currentTimeTotal;
|
|
42
|
+
}
|
|
43
|
+
set currentTimeTotal(value) {
|
|
44
|
+
if (value != this._currentTimeTotal) {
|
|
45
|
+
this._currentTimeTotal = value;
|
|
46
|
+
this.calculateTimePercent();
|
|
47
|
+
}
|
|
11
48
|
}
|
|
12
49
|
showClass() {
|
|
13
50
|
return true;
|
|
14
51
|
}
|
|
15
52
|
ngOnInit() {
|
|
16
|
-
|
|
53
|
+
this.calculatePercentages();
|
|
54
|
+
}
|
|
55
|
+
calculateVolumePercent() {
|
|
56
|
+
if (this.currentVolume === 0) {
|
|
57
|
+
this.volumePercent = 0;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
17
60
|
this.volumePercent = Math.round((this.currentVolume / this.maxVolume) * 100 * 100) / 100;
|
|
18
61
|
}
|
|
19
|
-
|
|
62
|
+
}
|
|
63
|
+
calculateTimePercent() {
|
|
64
|
+
if (this.currentTimeTotal === 0) {
|
|
65
|
+
this.timePercent = 0;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
20
68
|
this.timePercent = Math.round((this.currentTimeTotal / this.timeTotal) * 100 * 100) / 100;
|
|
21
69
|
}
|
|
22
70
|
}
|
|
23
|
-
|
|
24
|
-
|
|
71
|
+
calculatePercentages() {
|
|
72
|
+
this.calculateTimePercent();
|
|
73
|
+
this.calculateVolumePercent();
|
|
25
74
|
}
|
|
26
75
|
}
|
|
27
76
|
DeliveryPlanningTileStatusComponent.decorators = [
|
|
@@ -31,17 +80,17 @@ DeliveryPlanningTileStatusComponent.decorators = [
|
|
|
31
80
|
<div class="tile-status-wrapper row">
|
|
32
81
|
<div class="tile-wrapper-around">
|
|
33
82
|
<span class="tile-label" [textContent]="('TIME' | localize) + ': ' + currentTimeTotal + ' ' + ('AVAILABLE' | localize)"></span>
|
|
34
|
-
<div class="time-wrapper" [style.--percent]="timePercent">
|
|
83
|
+
<div class="time-wrapper" [style.--percent]="timePercent" [class.overload]="timePercent > 100">
|
|
35
84
|
<div class="row">
|
|
36
|
-
<span [textContent]="'%'
|
|
85
|
+
<span [textContent]="timePercent + '%'"></span>
|
|
37
86
|
</div>
|
|
38
87
|
</div>
|
|
39
88
|
</div>
|
|
40
89
|
<div class="tile-wrapper-around">
|
|
41
90
|
<span class="tile-label" [textContent]="('VOLUME' | localize) + ': ' + currentVolume + ' ' + ('AVAILABLE' | localize)"></span>
|
|
42
|
-
<div class="volume-wrapper"[style.--percent]="volumePercent">
|
|
91
|
+
<div class="volume-wrapper"[style.--percent]="volumePercent" [class.overload]="volumePercent > 100">
|
|
43
92
|
<div class="row">
|
|
44
|
-
<span [textContent]="'%'
|
|
93
|
+
<span [textContent]="volumePercent + '%'"></span>
|
|
45
94
|
</div>
|
|
46
95
|
</div>
|
|
47
96
|
</div>
|
|
@@ -50,7 +99,9 @@ DeliveryPlanningTileStatusComponent.decorators = [
|
|
|
50
99
|
encapsulation: ViewEncapsulation.None
|
|
51
100
|
},] }
|
|
52
101
|
];
|
|
53
|
-
DeliveryPlanningTileStatusComponent.ctorParameters = () => [
|
|
102
|
+
DeliveryPlanningTileStatusComponent.ctorParameters = () => [
|
|
103
|
+
{ type: ChangeDetectorRef }
|
|
104
|
+
];
|
|
54
105
|
DeliveryPlanningTileStatusComponent.propDecorators = {
|
|
55
106
|
maxVolume: [{ type: Input }],
|
|
56
107
|
timeTotal: [{ type: Input }],
|
|
@@ -58,4 +109,4 @@ DeliveryPlanningTileStatusComponent.propDecorators = {
|
|
|
58
109
|
currentTimeTotal: [{ type: Input }],
|
|
59
110
|
showClass: [{ type: HostBinding, args: ["class.co-delivery-planning-tile-status",] }]
|
|
60
111
|
};
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctdGlsZS1zdGF0dXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctbWFpbi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGUvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtc3RhdHVzL2RlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtc3RhdHVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBMEJ4RSxNQUFNLE9BQU8sbUNBQW1DO0lBOEQ5QyxZQUFvQixlQUFrQztRQUFsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUE3RC9DLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBRXZCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQUMzQixzQkFBaUIsR0FBVyxDQUFDLENBQUM7SUF3RHRDLENBQUM7SUFyREQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFDVyxTQUFTLENBQUMsS0FBYTtRQUNoQyxJQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFBO1lBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQ1csU0FBUyxDQUFDLEtBQWE7UUFDaEMsSUFBRyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUNXLGFBQWEsQ0FBQyxLQUFhO1FBQ3BDLElBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBR0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQ1csZ0JBQWdCLENBQUMsS0FBYTtRQUN2QyxJQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFHTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBS0QsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsSUFBRyxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztTQUN2QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUMxRjtJQUNILENBQUM7SUFFTSxvQkFBb0I7UUFDekIsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDM0Y7SUFDSCxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7OztZQWhIRixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtDQUFrQztnQkFDNUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBbUJUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUExQk8saUJBQWlCOzs7d0JBeUN0QixLQUFLO3dCQVdMLEtBQUs7NEJBV0wsS0FBSzsrQkFhTCxLQUFLO3dCQVFMLFdBQVcsU0FBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBJbnB1dCwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJjby1kZWxpdmVyeS1wbGFubmluZy10aWxlLXN0YXR1c1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInRpbGUtc3RhdHVzLXdyYXBwZXIgcm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbGUtd3JhcHBlci1hcm91bmRcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGlsZS1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCIoJ1RJTUUnIHwgbG9jYWxpemUpICsgJzogJyAgKyBjdXJyZW50VGltZVRvdGFsICsgJyAnICsgKCdBVkFJTEFCTEUnIHwgbG9jYWxpemUpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtd3JhcHBlclwiIFtzdHlsZS4tLXBlcmNlbnRdPVwidGltZVBlcmNlbnRcIiAgW2NsYXNzLm92ZXJsb2FkXT1cInRpbWVQZXJjZW50ID4gMTAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwidGltZVBlcmNlbnQgKyAnJSdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbGUtd3JhcHBlci1hcm91bmRcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGlsZS1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCIoJ1ZPTFVNRScgfCBsb2NhbGl6ZSkgKyAnOiAnICArIGN1cnJlbnRWb2x1bWUgKyAnICcgKyAoJ0FWQUlMQUJMRScgfCBsb2NhbGl6ZSlcIj48L3NwYW4+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidm9sdW1lLXdyYXBwZXJcIltzdHlsZS4tLXBlcmNlbnRdPVwidm9sdW1lUGVyY2VudFwiICBbY2xhc3Mub3ZlcmxvYWRdPVwidm9sdW1lUGVyY2VudCA+IDEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInZvbHVtZVBlcmNlbnQgKyAnJSdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIERlbGl2ZXJ5UGxhbm5pbmdUaWxlU3RhdHVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIHB1YmxpYyB2b2x1bWVQZXJjZW50OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyB0aW1lUGVyY2VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBfbWF4Vm9sdW1lOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX3RpbWVUb3RhbDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9jdXJyZW50Vm9sdW1lOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2N1cnJlbnRUaW1lVG90YWw6IG51bWJlciA9IDA7XHJcblxyXG5cclxuICBwdWJsaWMgZ2V0IG1heFZvbHVtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9tYXhWb2x1bWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbWF4Vm9sdW1lKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIGlmKHZhbHVlICE9IHRoaXMuX21heFZvbHVtZSkge1xyXG4gICAgICB0aGlzLl9tYXhWb2x1bWUgPSB2YWx1ZVxyXG4gICAgICB0aGlzLmNhbGN1bGF0ZVZvbHVtZVBlcmNlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdGltZVRvdGFsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RpbWVUb3RhbDtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRpbWVUb3RhbCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBpZih2YWx1ZSAhPSB0aGlzLl90aW1lVG90YWwpIHtcclxuICAgICAgdGhpcy5fdGltZVRvdGFsID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlVGltZVBlcmNlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VycmVudFZvbHVtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50Vm9sdW1lO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY3VycmVudFZvbHVtZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBpZih2YWx1ZSAhPSB0aGlzLl9jdXJyZW50Vm9sdW1lKSB7XHJcbiAgICAgIHRoaXMuX2N1cnJlbnRWb2x1bWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5jYWxjdWxhdGVWb2x1bWVQZXJjZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGdldCBjdXJyZW50VGltZVRvdGFsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUaW1lVG90YWw7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY3VycmVudFRpbWVUb3RhbCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBpZih2YWx1ZSAhPSB0aGlzLl9jdXJyZW50VGltZVRvdGFsKSB7XHJcbiAgICAgIHRoaXMuX2N1cnJlbnRUaW1lVG90YWwgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5jYWxjdWxhdGVUaW1lUGVyY2VudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tZGVsaXZlcnktcGxhbm5pbmctdGlsZS1zdGF0dXNcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbGN1bGF0ZVZvbHVtZVBlcmNlbnQoKSB7XHJcbiAgICBpZih0aGlzLmN1cnJlbnRWb2x1bWUgPT09IDApIHtcclxuICAgICB0aGlzLnZvbHVtZVBlcmNlbnQgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52b2x1bWVQZXJjZW50ID0gTWF0aC5yb3VuZCgodGhpcy5jdXJyZW50Vm9sdW1lIC8gdGhpcy5tYXhWb2x1bWUpICogMTAwICogMTAwKSAvIDEwMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYWxjdWxhdGVUaW1lUGVyY2VudCgpIHtcclxuICAgIGlmKHRoaXMuY3VycmVudFRpbWVUb3RhbCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnRpbWVQZXJjZW50ID0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGltZVBlcmNlbnQgPSBNYXRoLnJvdW5kKCh0aGlzLmN1cnJlbnRUaW1lVG90YWwgLyB0aGlzLnRpbWVUb3RhbCkgKiAxMDAgKiAxMDApIC8gMTAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbGN1bGF0ZVBlcmNlbnRhZ2VzKCkge1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUaW1lUGVyY2VudCgpO1xyXG4gICAgdGhpcy5jYWxjdWxhdGVWb2x1bWVQZXJjZW50KCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from "@angular/core";
|
|
2
|
+
import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
3
3
|
import { DatePipe } from "@angular/common";
|
|
4
4
|
import { DeliveryPlanningService } from "../../../../../delivery-planning/service/delivery-planning.service";
|
|
5
5
|
import { Icon } from "../../../../../../enum/icon.enum";
|
|
@@ -13,11 +13,14 @@ export class DeliveryPlanningOverviewTileComponent {
|
|
|
13
13
|
this.icons = Icon;
|
|
14
14
|
this.tileModes = DeliveryPlanningTileModes;
|
|
15
15
|
this.ordersLoaded = false;
|
|
16
|
+
this._subs = [];
|
|
16
17
|
this.disabled = false;
|
|
17
18
|
this.expandedEvent = new EventEmitter();
|
|
18
|
-
this.
|
|
19
|
+
this.deleteOrderEvent = new EventEmitter();
|
|
20
|
+
this.deleteOrderLineEvent = new EventEmitter();
|
|
21
|
+
this.editOrderEvent = new EventEmitter();
|
|
19
22
|
this.getTransportOrdersEvent = new EventEmitter();
|
|
20
|
-
this.
|
|
23
|
+
this.timeChangeEvent = new EventEmitter();
|
|
21
24
|
this.openSettingsDialogEvent = new EventEmitter();
|
|
22
25
|
this.calendarPlanEvent = new EventEmitter();
|
|
23
26
|
}
|
|
@@ -34,6 +37,16 @@ export class DeliveryPlanningOverviewTileComponent {
|
|
|
34
37
|
this.ordersLoaded = true;
|
|
35
38
|
this.getTransportOrdersEvent.emit(this.transportDay);
|
|
36
39
|
}
|
|
40
|
+
this._subs.push(this._deliveryPlanningService.reRenderHourScheduling.subscribe(event => {
|
|
41
|
+
this.hourSchedulingComp.generateScheduledObjects();
|
|
42
|
+
}));
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
ngOnDestroy() {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
this._subs.forEach((sub) => {
|
|
48
|
+
sub.unsubscribe();
|
|
49
|
+
});
|
|
37
50
|
});
|
|
38
51
|
}
|
|
39
52
|
drop(event) {
|
|
@@ -54,8 +67,11 @@ export class DeliveryPlanningOverviewTileComponent {
|
|
|
54
67
|
});
|
|
55
68
|
}
|
|
56
69
|
}
|
|
57
|
-
|
|
58
|
-
this.
|
|
70
|
+
handleDeleteOrderClick(order) {
|
|
71
|
+
this.deleteOrderEvent.emit([order, this.transportDay]);
|
|
72
|
+
}
|
|
73
|
+
handleDeleteOrderLineClick(data) {
|
|
74
|
+
this.deleteOrderLineEvent.emit(data);
|
|
59
75
|
}
|
|
60
76
|
handleSettingsSave() {
|
|
61
77
|
}
|
|
@@ -67,15 +83,14 @@ export class DeliveryPlanningOverviewTileComponent {
|
|
|
67
83
|
this.openSettingsDialogEvent.emit(this.transportDay);
|
|
68
84
|
}
|
|
69
85
|
handleTimeChangeEvent(obj) {
|
|
70
|
-
|
|
71
|
-
let order = this.transportDay.plannedOrders.find(planOrder => planOrder.transactionNr === transNr);
|
|
72
|
-
order.startTime = new Date(obj['startTime']);
|
|
73
|
-
order.endTime = new Date(obj['endTime']);
|
|
74
|
-
this.updatePlanningTransportWeek.emit();
|
|
86
|
+
this.timeChangeEvent.emit(obj);
|
|
75
87
|
}
|
|
76
88
|
handleCalendarPlanEvent(data) {
|
|
77
89
|
this.calendarPlanEvent.emit(data);
|
|
78
90
|
}
|
|
91
|
+
handleEditOrderEvent(planOrder) {
|
|
92
|
+
this.editOrderEvent.emit(planOrder);
|
|
93
|
+
}
|
|
79
94
|
}
|
|
80
95
|
DeliveryPlanningOverviewTileComponent.decorators = [
|
|
81
96
|
{ type: Component, args: [{
|
|
@@ -108,7 +123,7 @@ DeliveryPlanningOverviewTileComponent.decorators = [
|
|
|
108
123
|
<div class="planning-short-line-wrapper" *ngIf="!expanded">
|
|
109
124
|
<co-delivery-planning-overview-short-line
|
|
110
125
|
*ngFor="let order of transportDay?.plannedOrders"
|
|
111
|
-
(
|
|
126
|
+
(deleteOrderEvent)="handleDeleteOrderClick($event)"
|
|
112
127
|
[order]="order">
|
|
113
128
|
</co-delivery-planning-overview-short-line>
|
|
114
129
|
</div>
|
|
@@ -120,7 +135,9 @@ DeliveryPlanningOverviewTileComponent.decorators = [
|
|
|
120
135
|
*ngIf="tileMode === tileModes.Normal">
|
|
121
136
|
<co-delivery-planning-overview-tile-line cdkDrag
|
|
122
137
|
*ngFor="let order of transportDay?.plannedOrders"
|
|
123
|
-
(
|
|
138
|
+
(deleteOrderEvent)="handleDeleteOrderClick($event)"
|
|
139
|
+
(deleteOrderLineEvent)="handleDeleteOrderLineClick($event)"
|
|
140
|
+
(editOrderEvent)="handleEditOrderEvent($event)"
|
|
124
141
|
[order]="order">
|
|
125
142
|
</co-delivery-planning-overview-tile-line>
|
|
126
143
|
</div>
|
|
@@ -135,14 +152,16 @@ DeliveryPlanningOverviewTileComponent.decorators = [
|
|
|
135
152
|
>
|
|
136
153
|
<co-delivery-planning-overview-tile-line cdkDrag
|
|
137
154
|
*ngFor="let obj of objects"
|
|
138
|
-
(
|
|
155
|
+
(deleteOrderEvent)="handleDeleteOrderClick($event)"
|
|
156
|
+
(deleteOrderLineEvent)="handleDeleteOrderLineClick($event)"
|
|
157
|
+
(editOrderEvent)="handleEditOrderEvent($event)"
|
|
139
158
|
[order]="obj">
|
|
140
159
|
</co-delivery-planning-overview-tile-line>
|
|
141
160
|
</div>
|
|
142
161
|
</div>
|
|
143
162
|
</ng-template>
|
|
144
163
|
|
|
145
|
-
<co-hour-scheduling *ngIf="ordersLoaded && tileMode === tileModes.Calendar"
|
|
164
|
+
<co-hour-scheduling #hourSchedulingComponent *ngIf="ordersLoaded && tileMode === tileModes.Calendar"
|
|
146
165
|
[schedule]="transportDay"
|
|
147
166
|
[startTimeProp]="'startTime'"
|
|
148
167
|
[endTimeProp]="'endTime'"
|
|
@@ -173,11 +192,14 @@ DeliveryPlanningOverviewTileComponent.propDecorators = {
|
|
|
173
192
|
disabled: [{ type: Input }],
|
|
174
193
|
transportDay: [{ type: Input }],
|
|
175
194
|
expandedEvent: [{ type: Output }],
|
|
176
|
-
|
|
195
|
+
deleteOrderEvent: [{ type: Output }],
|
|
196
|
+
deleteOrderLineEvent: [{ type: Output }],
|
|
197
|
+
editOrderEvent: [{ type: Output }],
|
|
177
198
|
getTransportOrdersEvent: [{ type: Output }],
|
|
178
|
-
|
|
199
|
+
timeChangeEvent: [{ type: Output }],
|
|
179
200
|
openSettingsDialogEvent: [{ type: Output }],
|
|
180
201
|
calendarPlanEvent: [{ type: Output }],
|
|
202
|
+
hourSchedulingComp: [{ type: ViewChild, args: ['hourSchedulingComponent',] }],
|
|
181
203
|
showClass: [{ type: HostBinding, args: ["class.co-delivery-planning-overview-tile",] }]
|
|
182
204
|
};
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1tYWluL2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJN0csT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQzNHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQXVGbkcsTUFBTSxPQUFPLHFDQUFxQztJQXlDaEQsWUFDVSxTQUFtQixFQUNuQix3QkFBaUQsRUFDbEQsZ0JBQWtDO1FBRmpDLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQUNsRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBM0MzQixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUMxQixjQUFTLEdBQXFDLHlCQUF5QixDQUFDO1FBRWpGLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLGFB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VyxDQUFDLENBQUMsQ0FBQztRQUM3QyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsSUFBd0M7UUFDckUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7WUFqTUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTFGTyxRQUFRO1lBQ1IsdUJBQXVCO1lBRXZCLGdCQUFnQjs7O3VCQThGckIsS0FBSzsyQkFHTCxLQUFLOzRCQUdMLE1BQU07OEJBR04sTUFBTTtzQ0FHTixNQUFNOzBDQUdOLE1BQU07c0NBR04sTUFBTTtnQ0FHTixNQUFNO3dCQVNOLFdBQVcsU0FBQywwQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDZGtEcmFnRHJvcH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm9cIjtcclxuaW1wb3J0IHtQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctdHJhbnNwb3J0LXdlZWstZGF5LmJvXCI7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXN9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtbW9kZXMuZW51bVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGlsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiIChjbGljayk9XCJleHBhbmRlZENoYW5nZSgpXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cIiFleHBhbmRlZFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2FyZXREb3duU29saWQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJleHBhbmRlZFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2FyZXRVcFNvbGlkKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cInRyYW5zcG9ydERheT8udHJhbnNwb3J0LnJlZ2lzdHJhdGlvbk51bWJlclwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJ1Y2staGVhZGVyLXRpbGVcIj5cclxuICAgICAgICAgIDxjby1pY29uXHJcbiAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVHJ1Y2tDb250YWluZXJEdW8pXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJzbWFsbFwiIChjbGljayk9XCJvcGVuU2V0dGluZ3NEaWFsb2coKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlNsaWRlcnNVcFJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtd3JhcHBlciByb3dcIj5cclxuICAgICAgICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy10aWxlLXN0YXR1c1xyXG4gICAgICAgICAgICBbY3VycmVudFZvbHVtZV09XCJ0cmFuc3BvcnREYXk/Lm9yZGVyQW1vdW50XCJcclxuICAgICAgICAgICAgW21heFZvbHVtZV09XCJ0cmFuc3BvcnREYXk/Lm1heE9yZGVyQW1vdW50XCJcclxuICAgICAgICAgICAgW2N1cnJlbnRUaW1lVG90YWxdPVwidHJhbnNwb3J0RGF5Py5taW51dGVzXCJcclxuICAgICAgICAgICAgW3RpbWVUb3RhbF09XCJ0cmFuc3BvcnREYXk/Lm1heE1pbnV0ZXNcIj5cclxuICAgICAgICAgIDwvY28tZGVsaXZlcnktcGxhbm5pbmctdGlsZS1zdGF0dXM+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctc2hvcnQtbGluZS13cmFwcGVyXCIgKm5nSWY9XCIhZXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgPGNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXNob3J0LWxpbmVcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3JkZXIgb2YgdHJhbnNwb3J0RGF5Py5wbGFubmVkT3JkZXJzXCJcclxuICAgICAgICAgICAgICAoZGVsZXRlTGluZUV2ZW50KT1cImhhbmRsZURlbGV0ZUxpbmVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbb3JkZXJdPVwib3JkZXJcIj5cclxuICAgICAgICAgICAgPC9jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy1zaG9ydC1saW5lPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGNvLWNvbGxhcHNpYmxlIFtleHBhbmRlZF09XCJleHBhbmRlZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpbGUtY29udGVudC13cmFwcGVyIGNvbHVtblwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWxpbmVzLXdyYXBwZXJcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0aWxlTW9kZSA9PT0gdGlsZU1vZGVzLk5vcm1hbFwiPlxyXG4gICAgICAgICAgICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLWxpbmUgY2RrRHJhZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9yZGVyIG9mIHRyYW5zcG9ydERheT8ucGxhbm5lZE9yZGVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlTGluZUV2ZW50KT1cImhhbmRsZURlbGV0ZUxpbmVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDwvY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY3VzdG9tVGVtcGxhdGUgbGV0LWhvdXI9XCJob3VyXCIgbGV0LW9iamVjdHM9XCJvYmplY3RzXCI+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9iaiBvZiBvYmplY3RzXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20tc2NoZWR1bGVkLW9iamVjdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRyYWdnYWJsZT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cIm9uQ3VzdG9tRHJhZ1N0YXJ0KCRldmVudCwgb2JqKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLWxpbmUgY2RrRHJhZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvYmogb2Ygb2JqZWN0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZUxpbmVFdmVudCk9XCJoYW5kbGVEZWxldGVMaW5lQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29yZGVyXT1cIm9ialwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGUtbGluZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPGNvLWhvdXItc2NoZWR1bGluZyAqbmdJZj1cIm9yZGVyc0xvYWRlZCAmJiB0aWxlTW9kZSA9PT0gdGlsZU1vZGVzLkNhbGVuZGFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NoZWR1bGVdPVwidHJhbnNwb3J0RGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhcnRUaW1lUHJvcF09XCInc3RhcnRUaW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuZFRpbWVQcm9wXT1cIidlbmRUaW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29iamVjdHNQcm9wXT1cIidwbGFubmVkT3JkZXJzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoaWxkUHJvcF09XCIndHJhbnNwb3J0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbVRlbXBsYXRlXT1cImN1c3RvbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tVGVtcGxhdGVVc2VkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZFByb3BdPVwiJ3RyYW5zSWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGltZUNoYW5nZUV2ZW50KT1cImhhbmRsZVRpbWVDaGFuZ2VFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXdPYmplY3RQbGFuRXZlbnQpPVwiaGFuZGxlQ2FsZW5kYXJQbGFuRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2NvLWhvdXItc2NoZWR1bGluZz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvY28tY29sbGFwc2libGU+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3VGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICBwdWJsaWMgcmVhZG9ubHkgdGlsZU1vZGVzOiB0eXBlb2YgRGVsaXZlcnlQbGFubmluZ1RpbGVNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXM7XHJcblxyXG4gIHB1YmxpYyBvcmRlcnNMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNwb3J0RGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBleHBhbmRlZEV2ZW50OiBFdmVudEVtaXR0ZXI8UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5PiA9IG5ldyBFdmVudEVtaXR0ZXI8UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVsZXRlTGluZUV2ZW50OiBFdmVudEVtaXR0ZXI8W1BsYW5PcmRlciwgUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5XT4gPSBuZXcgRXZlbnRFbWl0dGVyPFtQbGFuT3JkZXIsIFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheV0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBnZXRUcmFuc3BvcnRPcmRlcnNFdmVudDogRXZlbnRFbWl0dGVyPFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheT4gPSBuZXcgRXZlbnRFbWl0dGVyPFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0V2VlazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb3BlblNldHRpbmdzRGlhbG9nRXZlbnQ6IEV2ZW50RW1pdHRlcjxQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk+ID0gbmV3IEV2ZW50RW1pdHRlcjxQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjYWxlbmRhclBsYW5FdmVudDogRXZlbnRFbWl0dGVyPHtjdXJyZW50SG91cjogc3RyaW5nLCBkYXRhOiBzdHJpbmd9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e2N1cnJlbnRIb3VyOiBzdHJpbmcsIGRhdGE6IHN0cmluZ30+KCk7XHJcblxyXG4gIHB1YmxpYyBnZXQgdGlsZU1vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFRpbGVNb2RlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZGVkOiBib29sZWFuO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYodGhpcy50cmFuc3BvcnREYXkpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldFRyYW5zcG9ydE9yZGVycyh0aGlzLnRyYW5zcG9ydERheSk7XHJcbiAgICAgICAgICB0aGlzLm9yZGVyc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmdldFRyYW5zcG9ydE9yZGVyc0V2ZW50LmVtaXQodGhpcy50cmFuc3BvcnREYXkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgcHVibGljIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG5cclxuICAgIC8vIG1vdmVJdGVtSW5BcnJheSh0aGlzLnBsYW5uaW5nTGluZXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIGZvcm1hdHRlZERhdGUoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuX2RhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCAnSDptbScsIFwiR01UKzFcIil9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmRlZENoYW5nZSgpIHtcclxuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcclxuICAgIGlmKHRoaXMuZXhwYW5kZWQpIHtcclxuICAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldFRyYW5zcG9ydE9yZGVycyh0aGlzLnRyYW5zcG9ydERheSkudGhlbiggcmVzdWx0ID0+IHtcclxuICAgICAgICAgdGhpcy50cmFuc3BvcnREYXkgPSByZXN1bHQ7XHJcbiAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZWxldGVMaW5lQ2xpY2sob3JkZXI6IFBsYW5PcmRlcikge1xyXG4gICAgdGhpcy5kZWxldGVMaW5lRXZlbnQuZW1pdChbb3JkZXIsIHRoaXMudHJhbnNwb3J0RGF5XSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2V0dGluZ3NTYXZlKCkge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkN1c3RvbURyYWdTdGFydChldmVudDogRHJhZ0V2ZW50LCBvYmo6IFBsYW5PcmRlcikge1xyXG4gICAgY29uc3QgY3VycmVudEhvdXIgPSBvYmpbJ3N0YXJ0VGltZSddICsgXCI6MDBcIjsgLy8gQXNzdW1pbmcgc3RhcnQgaG91ciBpcyB1c2VkXHJcbiAgICBldmVudC5kYXRhVHJhbnNmZXIhLnNldERhdGEoXCJ0ZXh0XCIsIEpTT04uc3RyaW5naWZ5KHsgb2JqLCBjdXJyZW50SG91ciB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblNldHRpbmdzRGlhbG9nKCkge1xyXG4gICAgdGhpcy5vcGVuU2V0dGluZ3NEaWFsb2dFdmVudC5lbWl0KHRoaXMudHJhbnNwb3J0RGF5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUaW1lQ2hhbmdlRXZlbnQob2JqOiBPYmplY3QpIHtcclxuICAgIGxldCB0cmFuc05yID0gb2JqWyd0cmFuc2FjdGlvbk5yJ107XHJcbiAgICBsZXQgb3JkZXIgPSB0aGlzLnRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLmZpbmQoIHBsYW5PcmRlciA9PiBwbGFuT3JkZXIudHJhbnNhY3Rpb25OciA9PT0gdHJhbnNOcik7XHJcbiAgICBvcmRlci5zdGFydFRpbWUgPSBuZXcgRGF0ZShvYmpbJ3N0YXJ0VGltZSddKTtcclxuICAgIG9yZGVyLmVuZFRpbWUgPSBuZXcgRGF0ZShvYmpbJ2VuZFRpbWUnXSk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVQbGFubmluZ1RyYW5zcG9ydFdlZWsuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhbGVuZGFyUGxhbkV2ZW50KGRhdGE6e2N1cnJlbnRIb3VyOiBzdHJpbmcsIGRhdGE6IHN0cmluZ30pIHtcclxuICAgIHRoaXMuY2FsZW5kYXJQbGFuRXZlbnQuZW1pdChkYXRhKTtcclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1tYWluL2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDM0csT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBK0ZuRyxNQUFNLE9BQU8scUNBQXFDO0lBc0RoRCxZQUNVLFNBQW1CLEVBQ25CLHdCQUFpRCxFQUNsRCxnQkFBa0M7UUFGakMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBQ2xELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF4RDNCLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBQzFCLGNBQVMsR0FBcUMseUJBQXlCLENBQUM7UUFFakYsaUJBQVksR0FBWSxLQUFLLENB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QywwQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDZGtEcmFnRHJvcH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm9cIjtcclxuaW1wb3J0IHtQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctdHJhbnNwb3J0LXdlZWstZGF5LmJvXCI7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXN9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtbW9kZXMuZW51bVwiO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay5ib1wiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtIb3VyU2NoZWR1bGluZ0NvbXBvbmVudH0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtQbGFuT3JkZXJMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXItbGluZS5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGlsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiIChjbGljayk9XCJleHBhbmRlZENoYW5nZSgpXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cIiFleHBhbmRlZFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2FyZXREb3duU29saWQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJleHBhbmRlZFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2FyZXRVcFNvbGlkKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cInRyYW5zcG9ydERheT8udHJhbnNwb3J0LnJlZ2lzdHJhdGlvbk51bWJlclwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJ1Y2staGVhZGVyLXRpbGVcIj5cclxuICAgICAgICAgIDxjby1pY29uXHJcbiAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVHJ1Y2tDb250YWluZXJEdW8pXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJzbWFsbFwiIChjbGljayk9XCJvcGVuU2V0dGluZ3NEaWFsb2coKVwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlNsaWRlcnNVcFJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtd3JhcHBlciByb3dcIj5cclxuICAgICAgICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy10aWxlLXN0YXR1c1xyXG4gICAgICAgICAgICBbY3VycmVudFZvbHVtZV09XCJ0cmFuc3BvcnREYXk/Lm9yZGVyQW1vdW50XCJcclxuICAgICAgICAgICAgW21heFZvbHVtZV09XCJ0cmFuc3BvcnREYXk/Lm1heE9yZGVyQW1vdW50XCJcclxuICAgICAgICAgICAgW2N1cnJlbnRUaW1lVG90YWxdPVwidHJhbnNwb3J0RGF5Py5taW51dGVzXCJcclxuICAgICAgICAgICAgW3RpbWVUb3RhbF09XCJ0cmFuc3BvcnREYXk/Lm1heE1pbnV0ZXNcIj5cclxuICAgICAgICAgIDwvY28tZGVsaXZlcnktcGxhbm5pbmctdGlsZS1zdGF0dXM+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctc2hvcnQtbGluZS13cmFwcGVyXCIgKm5nSWY9XCIhZXhwYW5kZWRcIj5cclxuICAgICAgICAgICAgPGNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXNob3J0LWxpbmVcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3JkZXIgb2YgdHJhbnNwb3J0RGF5Py5wbGFubmVkT3JkZXJzXCJcclxuICAgICAgICAgICAgICAoZGVsZXRlT3JkZXJFdmVudCk9XCJoYW5kbGVEZWxldGVPcmRlckNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiPlxyXG4gICAgICAgICAgICA8L2NvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXNob3J0LWxpbmU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Y28tY29sbGFwc2libGUgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlsZS1jb250ZW50LXdyYXBwZXIgY29sdW1uXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctbGluZXMtd3JhcHBlclwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAqbmdJZj1cInRpbGVNb2RlID09PSB0aWxlTW9kZXMuTm9ybWFsXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGUtbGluZSBjZGtEcmFnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3JkZXIgb2YgdHJhbnNwb3J0RGF5Py5wbGFubmVkT3JkZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGVPcmRlckV2ZW50KT1cImhhbmRsZURlbGV0ZU9yZGVyQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlT3JkZXJMaW5lRXZlbnQpPVwiaGFuZGxlRGVsZXRlT3JkZXJMaW5lQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWRpdE9yZGVyRXZlbnQpPVwiaGFuZGxlRWRpdE9yZGVyRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3JkZXJdPVwib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8L2NvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGUtbGluZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2N1c3RvbVRlbXBsYXRlIGxldC1ob3VyPVwiaG91clwiIGxldC1vYmplY3RzPVwib2JqZWN0c1wiPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvYmogb2Ygb2JqZWN0c1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLXNjaGVkdWxlZC1vYmplY3RcIlxyXG4gICAgICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJvbkN1c3RvbURyYWdTdGFydCgkZXZlbnQsIG9iailcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lIGNka0RyYWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb2JqIG9mIG9iamVjdHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGVPcmRlckV2ZW50KT1cImhhbmRsZURlbGV0ZU9yZGVyQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZU9yZGVyTGluZUV2ZW50KT1cImhhbmRsZURlbGV0ZU9yZGVyTGluZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZGl0T3JkZXJFdmVudCk9XCJoYW5kbGVFZGl0T3JkZXJFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3JkZXJdPVwib2JqXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8Y28taG91ci1zY2hlZHVsaW5nICNob3VyU2NoZWR1bGluZ0NvbXBvbmVudCAqbmdJZj1cIm9yZGVyc0xvYWRlZCAmJiB0aWxlTW9kZSA9PT0gdGlsZU1vZGVzLkNhbGVuZGFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NoZWR1bGVdPVwidHJhbnNwb3J0RGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhcnRUaW1lUHJvcF09XCInc3RhcnRUaW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuZFRpbWVQcm9wXT1cIidlbmRUaW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29iamVjdHNQcm9wXT1cIidwbGFubmVkT3JkZXJzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoaWxkUHJvcF09XCIndHJhbnNwb3J0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbVRlbXBsYXRlXT1cImN1c3RvbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tVGVtcGxhdGVVc2VkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZFByb3BdPVwiJ3RyYW5zSWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGltZUNoYW5nZUV2ZW50KT1cImhhbmRsZVRpbWVDaGFuZ2VFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXdPYmplY3RQbGFuRXZlbnQpPVwiaGFuZGxlQ2FsZW5kYXJQbGFuRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2NvLWhvdXItc2NoZWR1bGluZz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvY28tY29sbGFwc2libGU+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3VGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95e1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSB0aWxlTW9kZXM6IHR5cGVvZiBEZWxpdmVyeVBsYW5uaW5nVGlsZU1vZGVzID0gRGVsaXZlcnlQbGFubmluZ1RpbGVNb2RlcztcclxuXHJcbiAgcHVibGljIG9yZGVyc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGV4cGFuZGVkRXZlbnQ6IEV2ZW50RW1pdHRlcjxQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk+ID0gbmV3IEV2ZW50RW1pdHRlcjxQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZWxldGVPcmRlckV2ZW50OiBFdmVudEVtaXR0ZXI8W1BsYW5PcmRlciwgUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5XT4gPSBuZXcgRXZlbnRFbWl0dGVyPFtQbGFuT3JkZXIsIFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheV0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZWxldGVPcmRlckxpbmVFdmVudDogRXZlbnRFbWl0dGVyPHtvcmRlcjogUGxhbk9yZGVyLCBsaW5lOiBQbGFuT3JkZXJMaW5lfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtvcmRlcjogUGxhbk9yZGVyLCBsaW5lOiBQbGFuT3JkZXJMaW5lfT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVkaXRPcmRlckV2ZW50OiBFdmVudEVtaXR0ZXI8UGxhbk9yZGVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8UGxhbk9yZGVyPigpO1xyXG5cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGdldFRyYW5zcG9ydE9yZGVyc0V2ZW50OiBFdmVudEVtaXR0ZXI8UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5PiA9IG5ldyBFdmVudEVtaXR0ZXI8UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5PigpO1xyXG5cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRpbWVDaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPE9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9wZW5TZXR0aW5nc0RpYWxvZ0V2ZW50OiBFdmVudEVtaXR0ZXI8UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5PiA9IG5ldyBFdmVudEVtaXR0ZXI8UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2FsZW5kYXJQbGFuRXZlbnQ6IEV2ZW50RW1pdHRlcjx7Y3VycmVudEhvdXI6IHN0cmluZywgZGF0YTogc3RyaW5nfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtjdXJyZW50SG91cjogc3RyaW5nLCBkYXRhOiBzdHJpbmd9PigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdob3VyU2NoZWR1bGluZ0NvbXBvbmVudCcpXHJcbiAgcHVibGljIGhvdXJTY2hlZHVsaW5nQ29tcDogSG91clNjaGVkdWxpbmdDb21wb25lbnQ7XHJcblxyXG4gIHB1YmxpYyBnZXQgdGlsZU1vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFRpbGVNb2RlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZGVkOiBib29sZWFuO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYodGhpcy50cmFuc3BvcnREYXkpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldFRyYW5zcG9ydE9yZGVycyh0aGlzLnRyYW5zcG9ydERheSk7XHJcbiAgICAgICAgICB0aGlzLm9yZGVyc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmdldFRyYW5zcG9ydE9yZGVyc0V2ZW50LmVtaXQodGhpcy50cmFuc3BvcnREYXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9zdWJzLnB1c2goIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnJlUmVuZGVySG91clNjaGVkdWxpbmcuc3Vic2NyaWJlKCBldmVudCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhvdXJTY2hlZHVsaW5nQ29tcC5nZW5lcmF0ZVNjaGVkdWxlZE9iamVjdHMoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG5nT25EZXN0cm95KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICB0aGlzLl9zdWJzLmZvckVhY2goIChzdWI6IFN1YnNjcmlwdGlvbikgPT4ge1xyXG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgcHVibGljIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG5cclxuICAgIC8vIG1vdmVJdGVtSW5BcnJheSh0aGlzLnBsYW5uaW5nTGluZXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIGZvcm1hdHRlZERhdGUoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuX2RhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCAnSDptbScsIFwiR01UKzFcIil9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBhbmRlZENoYW5nZSgpIHtcclxuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcclxuICAgIGlmKHRoaXMuZXhwYW5kZWQpIHtcclxuICAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldFRyYW5zcG9ydE9yZGVycyh0aGlzLnRyYW5zcG9ydERheSkudGhlbiggcmVzdWx0ID0+IHtcclxuICAgICAgICAgdGhpcy50cmFuc3BvcnREYXkgPSByZXN1bHQ7XHJcbiAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZWxldGVPcmRlckNsaWNrKG9yZGVyOiBQbGFuT3JkZXIpIHtcclxuICAgIHRoaXMuZGVsZXRlT3JkZXJFdmVudC5lbWl0KFtvcmRlciwgdGhpcy50cmFuc3BvcnREYXldKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZWxldGVPcmRlckxpbmVDbGljayhkYXRhOntvcmRlcjogUGxhbk9yZGVyLCBsaW5lOiBQbGFuT3JkZXJMaW5lfSkge1xyXG4gICAgdGhpcy5kZWxldGVPcmRlckxpbmVFdmVudC5lbWl0KGRhdGEpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZXR0aW5nc1NhdmUoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ3VzdG9tRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQsIG9iajogUGxhbk9yZGVyKSB7XHJcbiAgICBjb25zdCBjdXJyZW50SG91ciA9IG9ialsnc3RhcnRUaW1lJ10gKyBcIjowMFwiOyAvLyBBc3N1bWluZyBzdGFydCBob3VyIGlzIHVzZWRcclxuICAgIGV2ZW50LmRhdGFUcmFuc2ZlciEuc2V0RGF0YShcInRleHRcIiwgSlNPTi5zdHJpbmdpZnkoeyBvYmosIGN1cnJlbnRIb3VyIH0pKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuU2V0dGluZ3NEaWFsb2coKSB7XHJcbiAgICB0aGlzLm9wZW5TZXR0aW5nc0RpYWxvZ0V2ZW50LmVtaXQodGhpcy50cmFuc3BvcnREYXkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRpbWVDaGFuZ2VFdmVudChvYmo6IE9iamVjdCkge1xyXG4gICAgdGhpcy50aW1lQ2hhbmdlRXZlbnQuZW1pdChvYmopO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhbGVuZGFyUGxhbkV2ZW50KGRhdGE6e2N1cnJlbnRIb3VyOiBzdHJpbmcsIGRhdGE6IHN0cmluZ30pIHtcclxuICAgIHRoaXMuY2FsZW5kYXJQbGFuRXZlbnQuZW1pdChkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVFZGl0T3JkZXJFdmVudChwbGFuT3JkZXI6IFBsYW5PcmRlcikge1xyXG4gICAgdGhpcy5lZGl0T3JkZXJFdmVudC5lbWl0KHBsYW5PcmRlcik7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19
|