@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.
Files changed (63) hide show
  1. package/bundles/colijnit-transaction.umd.js +595 -240
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.metadata.json +1 -1
  4. package/esm2015/lib/component/avatar/avatar.component.js +8 -3
  5. package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +10 -1
  6. package/esm2015/lib/component/checkout/checkout.module.js +6 -2
  7. package/esm2015/lib/component/delivery-planning/service/delivery-planning.service.js +99 -33
  8. package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.js +39 -25
  9. 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
  10. 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
  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
  12. package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.js +39 -17
  13. package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.js +56 -30
  14. package/esm2015/lib/component/delivery-planning-main/delivery-planning-main.component.js +59 -46
  15. package/esm2015/lib/component/transaction-card/transaction-card-planning/transaction-card-planning.component.js +18 -3
  16. package/esm2015/lib/component/transaction-card/transaction-card-purchase-confirmation/transaction-card-purchase-confirmation.component.js +101 -96
  17. package/esm2015/lib/component/transaction-cash-register-dialog/transaction-cash-register-dialog.component.js +4 -4
  18. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +13 -11
  19. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +2 -3
  20. package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-order.component.js +7 -2
  21. package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +3 -8
  22. package/esm2015/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.js +10 -4
  23. package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-service-order/transaction-lines-side-panel-service-order.component.js +6 -4
  24. package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-service-order/transaction-lines-side-panel-service-order.module.js +4 -3
  25. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-planning/transaction-quick-access-planning.component.js +5 -2
  26. package/esm2015/lib/component/transaction-service-overview/components/transaction-service-message.component.js +3 -2
  27. package/esm2015/lib/component/transaction-service-overview/transaction-service-overview.component.js +29 -20
  28. package/esm2015/lib/component/transaction-service-overview/transaction-service-overview.module.js +4 -3
  29. package/esm2015/lib/enum/checkout-cfg-name.enum.js +3 -1
  30. package/esm2015/lib/enum/delivery-planning-update-actions.enum.js +8 -0
  31. package/esm2015/lib/enum/transaction-cfg-name.enum.js +12 -1
  32. package/esm2015/lib/service/transaction-connector-adapter.service.js +12 -1
  33. package/esm2015/lib/service/transaction-connector.service.js +6 -1
  34. package/esm2015/lib/service/transaction-payment.service.js +3 -3
  35. package/esm2015/lib/transaction-version.js +3 -3
  36. package/fesm2015/colijnit-transaction.js +622 -322
  37. package/fesm2015/colijnit-transaction.js.map +1 -1
  38. package/lib/component/delivery-planning/service/delivery-planning.service.d.ts +11 -7
  39. package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.d.ts +10 -7
  40. 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
  41. 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
  42. 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
  43. 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
  44. 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
  45. package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.d.ts +20 -5
  46. package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/style/_layout.scss +2 -2
  47. package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/style/_material-definition.scss +1 -1
  48. package/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.d.ts +23 -10
  49. package/lib/component/delivery-planning-main/delivery-planning-main.component.d.ts +14 -7
  50. package/lib/component/transaction-card/transaction-card/style/_layout.scss +14 -1
  51. package/lib/component/transaction-card/transaction-card-planning/transaction-card-planning.component.d.ts +2 -0
  52. package/lib/component/transaction-header/transaction-header/style/_layout.scss +4 -0
  53. package/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.d.ts +3 -2
  54. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-service-order/transaction-lines-side-panel-service-order.component.d.ts +2 -0
  55. package/lib/component/transaction-quick-access/transaction-quick-access-planning/transaction-quick-access-planning.component.d.ts +1 -0
  56. package/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.d.ts +1 -1
  57. package/lib/component/transaction-service-overview/style/_layout.scss +14 -6
  58. package/lib/enum/checkout-cfg-name.enum.d.ts +2 -0
  59. package/lib/enum/delivery-planning-update-actions.enum.d.ts +6 -0
  60. package/lib/enum/transaction-cfg-name.enum.d.ts +12 -1
  61. package/lib/service/transaction-connector-adapter.service.d.ts +1 -0
  62. package/lib/service/transaction-connector.service.d.ts +1 -0
  63. 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.deleteLineEvent = new EventEmitter();
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
- handleDeleteLineClick(order) {
20
- this.deleteLineEvent.emit(order);
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)" [iconData]="iconCacheService.getIcon(icons.ChevronDownRegular)"></co-icon>
43
- <co-icon *ngIf="orderLines" (click)="showOrderLines($event)" [iconData]="iconCacheService.getIcon(icons.ChevronUpRegular)"></co-icon>
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()" [iconData]="iconCacheService.getIcon(icons.CartShoppingRegular)"></co-icon>
58
- <span [textContent]="order.transactionNr"></span>
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 [textContent]="(order.startTime | date: 'HH:mm') + ' - ' + (order.endTime | date: 'HH:mm')"></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)="handleDeleteLineClick(order)" [iconData]="iconCacheService.getIcon(icons.TrashCanRegular)"></co-icon>
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
- deleteLineEvent: [{ type: Output }],
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW1haW4vY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3L2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlL2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLWxpbmUvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNwRixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFNUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBK0M3RSxNQUFNLE9BQU8seUNBQXlDO0lBbUJwRCxZQUFtQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWxCckMsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFDbkMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLFVBQUssR0FBYSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRWhDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHNUIsb0JBQWUsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQVFoRixDQUFDO0lBTE0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUtNLHFCQUFxQixDQUFDLEtBQWdCO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDTSxjQUFjLENBQUMsS0FBWTtRQUNoQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBRSxxREFBcUQ7UUFDL0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFzQjtRQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7OztZQWpGRixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlDQUF5QztnQkFDbkQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBd0NUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUFqRE8sZ0JBQWdCOzs7b0JBd0RyQixLQUFLO3VCQUdMLEtBQUs7OEJBRUwsTUFBTTt3QkFHTixXQUFXLFNBQUMsK0NBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge1BsYW5PcmRlckxpbmV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci1saW5lLmJvXCI7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm9cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctbGluZS13cmFwcGVyXCIgKGNsaWNrKT1cInNldExpbmVzQWN0aXZlKClcIiBbY2xhc3MuYWN0aXZlLWxpbmVzXT1cImxpbmVzQWN0aXZlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWxpbmUtY29udGVudFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWxpbmUtbGVmdFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctbGluZS1leHRlbmRcIiAqbmdJZj1cImxpbmVzQWN0aXZlIHx8IG9yZGVyTGluZXNcIj5cclxuICAgICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cIiFvcmRlckxpbmVzXCIgKGNsaWNrKT1cInNob3dPcmRlckxpbmVzKCRldmVudClcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZXZyb25Eb3duUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJvcmRlckxpbmVzXCIgKGNsaWNrKT1cInNob3dPcmRlckxpbmVzKCRldmVudClcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZXZyb25VcFJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUtY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLXJlbGF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwib3JkZXIucmVsYXRpb25OYW1lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1hZGRyZXNzXCIgKm5nSWY9XCJsaW5lc0FjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIm9yZGVyLnNob3J0QWRkcmVzc1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1saW5lLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLWNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctb3JkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxjby1pY29uIChjbGljayk9XCJzZXRMaW5lc0FjdGl2ZSgpXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DYXJ0U2hvcHBpbmdSZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJvcmRlci50cmFuc2FjdGlvbk5yXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy10aW1lXCIgKm5nSWY9XCJsaW5lc0FjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIihvcmRlci5zdGFydFRpbWUgfCBkYXRlOiAnSEg6bW0nKSArICcgLSAnICsgKG9yZGVyLmVuZFRpbWUgfCBkYXRlOiAnSEg6bW0nKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1saW5lLWFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImxpbmVzQWN0aXZlXCIgKGNsaWNrKT1cImhhbmRsZURlbGV0ZUxpbmVDbGljayhvcmRlcilcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlRyYXNoQ2FuUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCIhbGluZXNBY3RpdmVcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZXZyb25SaWdodFJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvcmRlci1saW5lLWxpc3Qtd3JhcHBlclwiICpuZ0lmPVwib3JkZXJMaW5lc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZGVyLWxpbmVzXCIgKm5nRm9yPVwibGV0IGxpbmUgb2YgZ2V0UGxhbm5lZExpbmVzKG9yZGVyPy5saW5lcylcIj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuYXJ0aWNsZU51bWJlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuZGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3VGlsZUxpbmVDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyBleHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsaW5lc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBvcmRlckxpbmVzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG9yZGVyOlBsYW5PcmRlciA9IG5ldyBQbGFuT3JkZXIoKTtcclxuXHJcbiAgQElucHV0KCkgaXNBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRlbGV0ZUxpbmVFdmVudDogRXZlbnRFbWl0dGVyPFBsYW5PcmRlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPFBsYW5PcmRlcj4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZWxldGVMaW5lQ2xpY2sob3JkZXI6IFBsYW5PcmRlcikge1xyXG4gICAgdGhpcy5kZWxldGVMaW5lRXZlbnQuZW1pdChvcmRlcik7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRMaW5lc0FjdGl2ZSgpIHtcclxuICAgIHRoaXMubGluZXNBY3RpdmUgPSAhdGhpcy5saW5lc0FjdGl2ZTtcclxuICAgIHRoaXMub3JkZXJMaW5lcyA9IGZhbHNlO1xyXG4gIH1cclxuICBwdWJsaWMgc2hvd09yZGVyTGluZXMoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgIC8vIFN0b3AgdGhlIGV2ZW50IGZyb20gcHJvcGFnYXRpbmcgdG8gcGFyZW50IGVsZW1lbnRzXHJcbiAgICB0aGlzLm9yZGVyTGluZXMgPSAhdGhpcy5vcmRlckxpbmVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFBsYW5uZWRMaW5lcyhsaW5lczogUGxhbk9yZGVyTGluZVtdKSB7XHJcbiAgICByZXR1cm4gbGluZXMuZmlsdGVyKGxpbmUgPT4gbGluZS5wbGFubmVkID09PSB0cnVlKTtcclxuICB9XHJcbn1cclxuIl19
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.maxVolume = 15;
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
- if (this.currentVolume > 0 && this.maxVolume > 0) {
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
- if (this.currentTimeTotal > 0 && this.timeTotal > 0) {
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
- percent(first, second) {
24
- return (first / second) * 100;
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]="'%' + timePercent"></span>
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]="'%' + volumePercent"></span>
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctdGlsZS1zdGF0dXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctbWFpbi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGUvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtc3RhdHVzL2RlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtc3RhdHVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBMEJ4RSxNQUFNLE9BQU8sbUNBQW1DO0lBc0I5QztRQWxCTyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBR3ZCLGNBQVMsR0FBVyxHQUFHLENBQUM7UUFHeEIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFHMUIscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBRTdCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO0lBTy9CLENBQUM7SUFMTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBS0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUMxRjtRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDM0Y7SUFDSCxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQzFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2hDLENBQUM7OztZQTdERixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtDQUFrQztnQkFDNUMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBbUJUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7O3dCQUlFLEtBQUs7d0JBR0wsS0FBSzs0QkFHTCxLQUFLOytCQUdMLEtBQUs7d0JBS0wsV0FBVyxTQUFDLHdDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5wdXQsIE9uSW5pdH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tZGVsaXZlcnktcGxhbm5pbmctdGlsZS1zdGF0dXNcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWxlLXN0YXR1cy13cmFwcGVyIHJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWxlLXdyYXBwZXItYXJvdW5kXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbGUtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiKCdUSU1FJyB8IGxvY2FsaXplKSArICc6ICcgICsgY3VycmVudFRpbWVUb3RhbCArICcgJyArICgnQVZBSUxBQkxFJyB8IGxvY2FsaXplKVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXdyYXBwZXJcIiBbc3R5bGUuLS1wZXJjZW50XT1cInRpbWVQZXJjZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJyUnICArIHRpbWVQZXJjZW50XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWxlLXdyYXBwZXItYXJvdW5kXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbGUtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiKCdWT0xVTUUnIHwgbG9jYWxpemUpICsgJzogJyAgKyBjdXJyZW50Vm9sdW1lICsgJyAnICsgKCdBVkFJTEFCTEUnIHwgbG9jYWxpemUpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZvbHVtZS13cmFwcGVyXCJbc3R5bGUuLS1wZXJjZW50XT1cInZvbHVtZVBlcmNlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInJScgICsgdm9sdW1lUGVyY2VudFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ1RpbGVTdGF0dXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtYXhWb2x1bWU6IG51bWJlciA9IDE1O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0aW1lVG90YWw6IG51bWJlciA9IDQ4MDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VycmVudFZvbHVtZTogbnVtYmVyID0gMDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VycmVudFRpbWVUb3RhbDogbnVtYmVyID0gMDtcclxuXHJcbiAgcHVibGljIHZvbHVtZVBlcmNlbnQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHRpbWVQZXJjZW50OiBudW1iZXIgPSAwO1xyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtc3RhdHVzXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRWb2x1bWUgPiAwICYmIHRoaXMubWF4Vm9sdW1lID4gMCkge1xyXG4gICAgICB0aGlzLnZvbHVtZVBlcmNlbnQgPSBNYXRoLnJvdW5kKCh0aGlzLmN1cnJlbnRWb2x1bWUgLyB0aGlzLm1heFZvbHVtZSkgKiAxMDAgKiAxMDApIC8gMTAwO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmN1cnJlbnRUaW1lVG90YWwgPiAwICYmIHRoaXMudGltZVRvdGFsID4gMCkge1xyXG4gICAgICB0aGlzLnRpbWVQZXJjZW50ID0gTWF0aC5yb3VuZCgodGhpcy5jdXJyZW50VGltZVRvdGFsIC8gdGhpcy50aW1lVG90YWwpICogMTAwICogMTAwKSAvIDEwMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBwZXJjZW50KGZpcnN0OiBudW1iZXIsIHNlY29uZDogbnVtYmVyKTogbnVtYmVyICB7XHJcbiAgICByZXR1cm4gKGZpcnN0IC8gc2Vjb25kKSAqIDEwMDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxufVxyXG4iXX0=
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.deleteLineEvent = new EventEmitter();
19
+ this.deleteOrderEvent = new EventEmitter();
20
+ this.deleteOrderLineEvent = new EventEmitter();
21
+ this.editOrderEvent = new EventEmitter();
19
22
  this.getTransportOrdersEvent = new EventEmitter();
20
- this.updatePlanningTransportWeek = new EventEmitter();
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
- handleDeleteLineClick(order) {
58
- this.deleteLineEvent.emit([order, this.transportDay]);
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
- let transNr = obj['transactionNr'];
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
- (deleteLineEvent)="handleDeleteLineClick($event)"
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
- (deleteLineEvent)="handleDeleteLineClick($event)"
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
- (deleteLineEvent)="handleDeleteLineClick($event)"
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
- deleteLineEvent: [{ type: Output }],
195
+ deleteOrderEvent: [{ type: Output }],
196
+ deleteOrderLineEvent: [{ type: Output }],
197
+ editOrderEvent: [{ type: Output }],
177
198
  getTransportOrdersEvent: [{ type: Output }],
178
- updatePlanningTransportWeek: [{ type: Output }],
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