@colijnit/transaction 12.1.166 → 12.1.168

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 (75) hide show
  1. package/bundles/colijnit-transaction.umd.js +680 -217
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +120 -116
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +121 -117
  6. package/esm2015/lib/component/purchase-confirmation-lines/purchase-confirmation-lines.component.js +142 -0
  7. package/esm2015/lib/component/purchase-confirmation-lines/purchase-confirmation-lines.module.js +27 -0
  8. package/esm2015/lib/component/transaction/transaction.component.js +3 -1
  9. package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +126 -100
  10. package/esm2015/lib/component/transaction-internal/transaction-internal.module.js +4 -2
  11. package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.component.js +31 -4
  12. package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.js +60 -8
  13. package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line.component.js +77 -74
  14. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line-base.component.js +5 -5
  15. package/esm2015/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.js +80 -46
  16. package/esm2015/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.module.js +13 -11
  17. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +3 -1
  18. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +10 -8
  19. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +43 -36
  20. package/esm2015/lib/component/transaction-lines-popup/transaction-lines-popup.component.js +35 -0
  21. package/esm2015/lib/component/transaction-lines-popup/transaction-lines-popup.module.js +22 -0
  22. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +7 -15
  23. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-quotation-filter-content/transaction-sales-quotation-filter-content-order/transaction-sales-quotation-filter-content-order.component.js +38 -22
  24. package/esm2015/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.js +8 -2
  25. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +30 -8
  26. package/esm2015/lib/enum/transaction-cfg-name.enum.js +5 -1
  27. package/esm2015/lib/res/dictionary/dictionaries.js +2 -2
  28. package/esm2015/lib/service/purchase-confirmation.service.js +62 -0
  29. package/esm2015/lib/service/transaction-base.service.js +4 -4
  30. package/esm2015/lib/service/transaction-connector-adapter.service.js +37 -1
  31. package/esm2015/lib/service/transaction-connector.service.js +6 -1
  32. package/esm2015/lib/service/transaction-event.service.js +3 -1
  33. package/esm2015/lib/transaction-version.js +3 -3
  34. package/esm2015/lib/utils/color-utils.js +29 -0
  35. package/esm2015/public_api.js +3 -1
  36. package/fesm2015/colijnit-transaction.js +820 -306
  37. package/fesm2015/colijnit-transaction.js.map +1 -1
  38. package/lib/component/purchase-confirmation-lines/purchase-confirmation-lines.component.d.ts +43 -0
  39. package/lib/component/purchase-confirmation-lines/purchase-confirmation-lines.module.d.ts +2 -0
  40. package/lib/component/purchase-confirmation-lines/style/_layout.scss +96 -0
  41. package/lib/component/purchase-confirmation-lines/style/_material-definition.scss +19 -0
  42. package/lib/component/purchase-confirmation-lines/style/_theme.scss +5 -0
  43. package/lib/component/purchase-confirmation-lines/style/material.scss +5 -0
  44. package/lib/component/transaction/transaction.component.d.ts +1 -0
  45. package/lib/component/transaction-internal/transaction-internal.component.d.ts +7 -2
  46. package/lib/component/transaction-line/transaction-line/style/_material-definition.scss +1 -0
  47. package/lib/component/transaction-line/transaction-line/style/_theme.scss +3 -0
  48. package/lib/component/transaction-line/transaction-line/transaction-line.component.d.ts +4 -1
  49. package/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.d.ts +23 -2
  50. package/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line-base.component.d.ts +4 -4
  51. package/lib/component/transaction-line-image-and-description/style/_material-definition.scss +1 -1
  52. package/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.d.ts +18 -1
  53. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +2 -0
  54. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +10 -8
  55. package/lib/component/transaction-lines/transaction-lines.component.d.ts +4 -2
  56. package/lib/component/transaction-lines-popup/style/_layout.scss +11 -0
  57. package/lib/component/transaction-lines-popup/style/_material-definition.scss +0 -0
  58. package/lib/component/transaction-lines-popup/style/_theme.scss +4 -0
  59. package/lib/component/transaction-lines-popup/style/material.scss +4 -0
  60. package/lib/component/transaction-lines-popup/transaction-lines-popup.component.d.ts +10 -0
  61. package/lib/component/transaction-lines-popup/transaction-lines-popup.module.d.ts +2 -0
  62. package/lib/component/transaction-search/service/transaction-search.service.d.ts +3 -4
  63. package/lib/component/transaction-search/transaction-filter-content/sales-quotation-filter-content/transaction-sales-quotation-filter-content-order/transaction-sales-quotation-filter-content-order.component.d.ts +6 -0
  64. package/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.d.ts +2 -0
  65. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +15 -10
  66. package/lib/enum/transaction-cfg-name.enum.d.ts +3 -0
  67. package/lib/res/dictionary/dictionaries.d.ts +12 -0
  68. package/lib/service/purchase-confirmation.service.d.ts +17 -0
  69. package/lib/service/transaction-connector-adapter.service.d.ts +2 -0
  70. package/lib/service/transaction-connector.service.d.ts +2 -0
  71. package/lib/service/transaction-event.service.d.ts +6 -0
  72. package/lib/style/transaction-globals.scss +5 -0
  73. package/lib/utils/color-utils.d.ts +5 -0
  74. package/package.json +2 -2
  75. package/public_api.d.ts +2 -0
@@ -0,0 +1,142 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { PurchaseConfirmationService } from '../../service/purchase-confirmation.service';
3
+ import { IconCacheService } from '../../service/icon-cache.service';
4
+ import { Icon } from '../../enum/icon.enum';
5
+ import { TransactionEventService } from '../../service/transaction-event.service';
6
+ import { OverlayService } from '@colijnit/corecomponents_v12';
7
+ import { TransactionLinesPopupComponent } from '../transaction-lines-popup/transaction-lines-popup.component';
8
+ export class confirmationViewModel {
9
+ constructor() {
10
+ this.temp = false;
11
+ }
12
+ }
13
+ export class PurchaseConfirmationLinesComponent {
14
+ constructor(iconCacheService, _purchaseConfirmationService, _transactionEventService, _changeDetector, _overlayService) {
15
+ this.iconCacheService = iconCacheService;
16
+ this._purchaseConfirmationService = _purchaseConfirmationService;
17
+ this._transactionEventService = _transactionEventService;
18
+ this._changeDetector = _changeDetector;
19
+ this._overlayService = _overlayService;
20
+ this.icons = Icon;
21
+ this.purchaseConfirmations = [];
22
+ this.transactionLines = [];
23
+ this.showPopup = false;
24
+ this._subs = [];
25
+ }
26
+ showClass() {
27
+ return true;
28
+ }
29
+ ngOnInit() {
30
+ this._subs.push(this._purchaseConfirmationService.confirmationNeeded.subscribe((needed) => {
31
+ if (needed) {
32
+ this.purchaseConfirmations.length = 0;
33
+ this._purchaseConfirmationService.confirmationAnalysisResult.forEach(ca => {
34
+ const viewModel = new confirmationViewModel();
35
+ viewModel.confirmation = ca;
36
+ this.purchaseConfirmations.push(viewModel);
37
+ });
38
+ }
39
+ }), this._transactionEventService.orderConfirmationDropped.subscribe((data) => {
40
+ const viewModel = this.purchaseConfirmations.find(pc => pc.confirmation.id === data.analysisId);
41
+ if (viewModel) {
42
+ viewModel.cssBoxShadow = `inset 0 0 2px 1px ${data.color}`;
43
+ }
44
+ this._changeDetector.markForCheck();
45
+ }));
46
+ if (this.transaction && this.transaction.transactionLines) {
47
+ this.transactionLines = this.transaction.transactionLines.filter(tl => tl.isArticle);
48
+ }
49
+ }
50
+ ngOnDestroy() {
51
+ this._subs.forEach(s => s.unsubscribe());
52
+ }
53
+ handleShowHideClick(confirmation) {
54
+ // this.showPopup = !this.showPopup;
55
+ // if (this.showPopup) {
56
+ // this._showPopup(confirmation);
57
+ // } else {
58
+ // this._hidePopup();
59
+ // }
60
+ }
61
+ handleDragStart(event, confirmation) {
62
+ if (confirmation) {
63
+ event.dataTransfer.dropEffect = "link";
64
+ event.dataTransfer.setData("orderConfirmationAnalysis", JSON.stringify(confirmation));
65
+ }
66
+ }
67
+ noReturnPredicate(drag, drop) {
68
+ return false;
69
+ }
70
+ handleDropListExit(event) {
71
+ this.purchaseConfirmations.splice(this.purchaseConfirmations.findIndex(pc => pc.confirmation.id === event.item.data.id) + 1, 0, Object.assign(Object.assign({}, event.item.data), { temp: true }));
72
+ }
73
+ handleDropListEntered(event) {
74
+ // @ts-ignore
75
+ this.purchaseConfirmations.splice(this.purchaseConfirmations.findIndex(pc => pc.temp === true), 1);
76
+ }
77
+ trackByFn(index, line) {
78
+ return line.confirmation.id;
79
+ }
80
+ _showPopup(confirmation) {
81
+ this.showPopup = true;
82
+ this._popupComponentRef = this._overlayService.createComponent(TransactionLinesPopupComponent, { parentForOverlay: this.parentElementForPopup, transactionLines: this.transactionLines }, {
83
+ transactionLineClick: (line) => this._handleTransactionLineClick(line, confirmation),
84
+ clickOutside: () => this.handleShowHideClick(confirmation)
85
+ });
86
+ }
87
+ _hidePopup() {
88
+ this.showPopup = false;
89
+ this._overlayService.removeComponent(this._popupComponentRef);
90
+ }
91
+ _handleTransactionLineClick(line, confirmation) {
92
+ this._purchaseConfirmationService.linkAnalysisToTransactionLine(line, confirmation);
93
+ }
94
+ }
95
+ PurchaseConfirmationLinesComponent.decorators = [
96
+ { type: Component, args: [{
97
+ selector: 'co-purchase-confirmation-lines',
98
+ template: `
99
+ <div class="purchase-confirmation-lines-drag-drop-list">
100
+ <div class="purchase-confirmation-header">
101
+ <div class="purchase-confirmation-drag-handle"></div>
102
+ <div class="purchase-confirmation-quantity co-transaction-flex-right-align" [textContent]="'AMOUNT' | localize"></div>
103
+ <div class="purchase-confirmation-description" [textContent]="'DESCRIPTION' | localize"></div>
104
+ <div class="purchase-confirmation-date co-transaction-flex-right-align" [textContent]="'DELIVERY_DATE' | localize"></div>
105
+ <div class="purchase-confirmation-price co-transaction-flex-right-align" [textContent]="'PRICE' | localize"></div>
106
+ <div class="purchase-confirmation-link-button" [textContent]="'LINK' | localize"></div>
107
+ </div>
108
+ <div class="draggable-purchase-confirmation-line" *ngFor="let confirmationViewModel of purchaseConfirmations; trackBy:trackByFn;"
109
+ draggable="true"
110
+ [style.box-shadow]="confirmationViewModel.cssBoxShadow"
111
+ (dragstart)="handleDragStart($event, confirmationViewModel.confirmation)">
112
+ <co-icon class="purchase-confirmation-line-drag-handle" [iconData]="iconCacheService.getIcon(icons.GripDotsVerticalSolid)">
113
+ </co-icon>
114
+ <div class="confirmation-wrapper">
115
+ <div class="co-transaction-flex-right-align" [textContent]="confirmationViewModel.confirmation.productQuantity"></div>
116
+ <div [textContent]="confirmationViewModel.confirmation.productDescription"></div>
117
+ <div class="co-transaction-flex-right-align" [textContent]="confirmationViewModel.confirmation.orderConfirmationDate | date: 'dd-MM-yyyy'"></div>
118
+ <div class="co-transaction-flex-right-align" [textContent]="confirmationViewModel.confirmation.price | coCurrency"></div>
119
+ <div #parentForOverlay class="link-button" [textContent]="'...'" (click)="handleShowHideClick(confirmationViewModel.confirmation)"></div>
120
+ </div>
121
+ </div>
122
+ </div>
123
+ `,
124
+ providers: [
125
+ OverlayService
126
+ ],
127
+ encapsulation: ViewEncapsulation.None
128
+ },] }
129
+ ];
130
+ PurchaseConfirmationLinesComponent.ctorParameters = () => [
131
+ { type: IconCacheService },
132
+ { type: PurchaseConfirmationService },
133
+ { type: TransactionEventService },
134
+ { type: ChangeDetectorRef },
135
+ { type: OverlayService }
136
+ ];
137
+ PurchaseConfirmationLinesComponent.propDecorators = {
138
+ parentElementForPopup: [{ type: ViewChild, args: ['parentForOverlay', { read: ElementRef },] }],
139
+ transaction: [{ type: Input }],
140
+ showClass: [{ type: HostBinding, args: ['class.co-purchase-confirmation-lines',] }]
141
+ };
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyY2hhc2UtY29uZmlybWF0aW9uLWxpbmVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3B1cmNoYXNlLWNvbmZpcm1hdGlvbi1saW5lcy9wdXJjaGFzZS1jb25maXJtYXRpb24tbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1SSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFMUMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFJaEYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBRTVHLE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFFVyxTQUFJLEdBQVksS0FBSyxDQUFDO0lBRWpDLENBQUM7Q0FBQTtBQW1DRCxNQUFNLE9BQU8sa0NBQWtDO0lBcUIzQyxZQUNXLGdCQUFrQyxFQUNqQyw0QkFBeUQsRUFDekQsd0JBQWlELEVBQ2pELGVBQWtDLEVBQ2xDLGVBQStCO1FBSmhDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE2QjtRQUN6RCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBQ2pELG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUF6QjNCLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBYW5DLDBCQUFxQixHQUE0QixFQUFFLENBQUM7UUFDcEQscUJBQWdCLEdBQTBCLEVBQUUsQ0FBQztRQUM3QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTFCLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBVW5DLENBQUM7SUFsQk0sU0FBUztRQUNaLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFrQkQsUUFBUTtRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNYLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUMvRSxJQUFJLE1BQU0sRUFBRTtnQkFDUixJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDdEUsTUFBTSxTQUFTLEdBQTBCLElBQUkscUJBQXFCLEVBQUUsQ0FBQztvQkFDckUsU0FBUyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQy9DLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsd0JBQXdCLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBeUQsRUFBRSxFQUFFO1lBQzNILE1BQU0sU0FBUyxHQUEwQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZILElBQUksU0FBUyxFQUFFO2dCQUNYLFNBQVMsQ0FBQyxZQUFZLEdBQUcscUJBQXFCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUM5RDtZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN4RjtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsWUFBNkM7UUFDcEUsb0NBQW9DO1FBQ3BDLHdCQUF3QjtRQUN4QixxQ0FBcUM7UUFDckMsV0FBVztRQUNYLHlCQUF5QjtRQUN6QixJQUFJO0lBQ1IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFnQixFQUFFLFlBQTZDO1FBQ2xGLElBQUksWUFBWSxFQUFFO1lBQ2QsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ3ZDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztTQUN6RjtJQUNMLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFhLEVBQUUsSUFBaUI7UUFDckQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQXVCO1FBQ3RDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGtDQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFFLElBQUksRUFBRSxJQUFJLElBQUcsQ0FBQztJQUN6SyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBd0I7UUFDMUMsYUFBYTtRQUNiLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBMkI7UUFDdkQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sVUFBVSxDQUFDLFlBQTZDO1FBQzVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyw4QkFBOEIsRUFDekYsRUFBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFDLEVBQUU7WUFDckYsb0JBQW9CLEVBQUUsQ0FBQyxJQUF5QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQztZQUN6RyxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQztTQUM3RCxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxJQUF5QixFQUFFLFlBQTZDO1FBQ3hHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDeEYsQ0FBQzs7O1lBN0lKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZ0NBQWdDO2dCQUMxQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F5QlQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLGNBQWM7aUJBQ2pCO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUFoRE8sZ0JBQWdCO1lBRGhCLDJCQUEyQjtZQUkzQix1QkFBdUI7WUFOdkIsaUJBQWlCO1lBVWpCLGNBQWM7OztvQ0E2Q2pCLFNBQVMsU0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7MEJBR2xELEtBQUs7d0JBR0wsV0FBVyxTQUFDLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7T3JkZXJDb25maXJtYXRpb25BbmFseXNpc1Jlc3VsdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWNvbmZpcm1hdGlvbi1hbmFseXNpcy1yZXN1bHQuYm8nO1xyXG5pbXBvcnQge1B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wdXJjaGFzZS1jb25maXJtYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtDZGtEcmFnLCBDZGtEcmFnRW50ZXIsIENka0RyYWdFeGl0LCBDZGtEcm9wTGlzdH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge092ZXJsYXlTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVzUG9wdXBDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWxpbmVzLXBvcHVwL3RyYW5zYWN0aW9uLWxpbmVzLXBvcHVwLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgY29uZmlybWF0aW9uVmlld01vZGVsIHtcclxuICAgIHB1YmxpYyBjb25maXJtYXRpb246IE9yZGVyQ29uZmlybWF0aW9uQW5hbHlzaXNSZXN1bHQ7XHJcbiAgICBwdWJsaWMgdGVtcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGNzc0JveFNoYWRvdzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY28tcHVyY2hhc2UtY29uZmlybWF0aW9uLWxpbmVzJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInB1cmNoYXNlLWNvbmZpcm1hdGlvbi1saW5lcy1kcmFnLWRyb3AtbGlzdFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVyY2hhc2UtY29uZmlybWF0aW9uLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1cmNoYXNlLWNvbmZpcm1hdGlvbi1kcmFnLWhhbmRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1cmNoYXNlLWNvbmZpcm1hdGlvbi1xdWFudGl0eSBjby10cmFuc2FjdGlvbi1mbGV4LXJpZ2h0LWFsaWduXCIgW3RleHRDb250ZW50XT1cIidBTU9VTlQnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdXJjaGFzZS1jb25maXJtYXRpb24tZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVyY2hhc2UtY29uZmlybWF0aW9uLWRhdGUgY28tdHJhbnNhY3Rpb24tZmxleC1yaWdodC1hbGlnblwiIFt0ZXh0Q29udGVudF09XCInREVMSVZFUllfREFURScgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1cmNoYXNlLWNvbmZpcm1hdGlvbi1wcmljZSBjby10cmFuc2FjdGlvbi1mbGV4LXJpZ2h0LWFsaWduXCIgW3RleHRDb250ZW50XT1cIidQUklDRScgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1cmNoYXNlLWNvbmZpcm1hdGlvbi1saW5rLWJ1dHRvblwiIFt0ZXh0Q29udGVudF09XCInTElOSycgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYWdnYWJsZS1wdXJjaGFzZS1jb25maXJtYXRpb24tbGluZVwiICpuZ0Zvcj1cImxldCBjb25maXJtYXRpb25WaWV3TW9kZWwgb2YgcHVyY2hhc2VDb25maXJtYXRpb25zOyB0cmFja0J5OnRyYWNrQnlGbjtcIiBcclxuICAgICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICBbc3R5bGUuYm94LXNoYWRvd109XCJjb25maXJtYXRpb25WaWV3TW9kZWwuY3NzQm94U2hhZG93XCJcclxuICAgICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImhhbmRsZURyYWdTdGFydCgkZXZlbnQsIGNvbmZpcm1hdGlvblZpZXdNb2RlbC5jb25maXJtYXRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInB1cmNoYXNlLWNvbmZpcm1hdGlvbi1saW5lLWRyYWctaGFuZGxlXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5HcmlwRG90c1ZlcnRpY2FsU29saWQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tdHJhbnNhY3Rpb24tZmxleC1yaWdodC1hbGlnblwiIFt0ZXh0Q29udGVudF09XCJjb25maXJtYXRpb25WaWV3TW9kZWwuY29uZmlybWF0aW9uLnByb2R1Y3RRdWFudGl0eVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW3RleHRDb250ZW50XT1cImNvbmZpcm1hdGlvblZpZXdNb2RlbC5jb25maXJtYXRpb24ucHJvZHVjdERlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLXRyYW5zYWN0aW9uLWZsZXgtcmlnaHQtYWxpZ25cIiBbdGV4dENvbnRlbnRdPVwiY29uZmlybWF0aW9uVmlld01vZGVsLmNvbmZpcm1hdGlvbi5vcmRlckNvbmZpcm1hdGlvbkRhdGUgfCBkYXRlOiAnZGQtTU0teXl5eSdcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tdHJhbnNhY3Rpb24tZmxleC1yaWdodC1hbGlnblwiIFt0ZXh0Q29udGVudF09XCJjb25maXJtYXRpb25WaWV3TW9kZWwuY29uZmlybWF0aW9uLnByaWNlIHwgY29DdXJyZW5jeVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgI3BhcmVudEZvck92ZXJsYXkgY2xhc3M9XCJsaW5rLWJ1dHRvblwiIFt0ZXh0Q29udGVudF09XCInLi4uJ1wiIChjbGljayk9XCJoYW5kbGVTaG93SGlkZUNsaWNrKGNvbmZpcm1hdGlvblZpZXdNb2RlbC5jb25maXJtYXRpb24pXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgT3ZlcmxheVNlcnZpY2VcclxuICAgIF0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQdXJjaGFzZUNvbmZpcm1hdGlvbkxpbmVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gICAgQFZpZXdDaGlsZCgncGFyZW50Rm9yT3ZlcmxheScsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxyXG4gICAgcHVibGljIHBhcmVudEVsZW1lbnRGb3JQb3B1cDogRWxlbWVudFJlZjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXB1cmNoYXNlLWNvbmZpcm1hdGlvbi1saW5lcycpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwdXJjaGFzZUNvbmZpcm1hdGlvbnM6IGNvbmZpcm1hdGlvblZpZXdNb2RlbFtdID0gW107XHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdID0gW107XHJcbiAgICBwdWJsaWMgc2hvd1BvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICAgIHByaXZhdGUgX3BvcHVwQ29tcG9uZW50UmVmO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25OZWVkZWQuc3Vic2NyaWJlKChuZWVkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChuZWVkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnB1cmNoYXNlQ29uZmlybWF0aW9ucy5sZW5ndGggPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25BbmFseXNpc1Jlc3VsdC5mb3JFYWNoKGNhID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld01vZGVsOiBjb25maXJtYXRpb25WaWV3TW9kZWwgPSBuZXcgY29uZmlybWF0aW9uVmlld01vZGVsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdNb2RlbC5jb25maXJtYXRpb24gPSBjYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wdXJjaGFzZUNvbmZpcm1hdGlvbnMucHVzaCh2aWV3TW9kZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3JkZXJDb25maXJtYXRpb25Ecm9wcGVkLnN1YnNjcmliZSgoZGF0YToge2xpbmVOcjogbnVtYmVyLCBhbmFseXNpc0lkOiBudW1iZXIsIGNvbG9yOiBzdHJpbmd9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2aWV3TW9kZWw6IGNvbmZpcm1hdGlvblZpZXdNb2RlbCA9IHRoaXMucHVyY2hhc2VDb25maXJtYXRpb25zLmZpbmQocGMgPT4gcGMuY29uZmlybWF0aW9uLmlkID09PSBkYXRhLmFuYWx5c2lzSWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdNb2RlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZpZXdNb2RlbC5jc3NCb3hTaGFkb3cgPSBgaW5zZXQgMCAwIDJweCAxcHggJHtkYXRhLmNvbG9yfWA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcykge1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZXMgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMuZmlsdGVyKHRsID0+IHRsLmlzQXJ0aWNsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVNob3dIaWRlQ2xpY2soY29uZmlybWF0aW9uOiBPcmRlckNvbmZpcm1hdGlvbkFuYWx5c2lzUmVzdWx0KTogdm9pZCB7XHJcbiAgICAgICAgLy8gdGhpcy5zaG93UG9wdXAgPSAhdGhpcy5zaG93UG9wdXA7XHJcbiAgICAgICAgLy8gaWYgKHRoaXMuc2hvd1BvcHVwKSB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuX3Nob3dQb3B1cChjb25maXJtYXRpb24pO1xyXG4gICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuX2hpZGVQb3B1cCgpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQsIGNvbmZpcm1hdGlvbjogT3JkZXJDb25maXJtYXRpb25BbmFseXNpc1Jlc3VsdCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChjb25maXJtYXRpb24pIHtcclxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSBcImxpbmtcIjtcclxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoXCJvcmRlckNvbmZpcm1hdGlvbkFuYWx5c2lzXCIsIEpTT04uc3RyaW5naWZ5KGNvbmZpcm1hdGlvbikpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbm9SZXR1cm5QcmVkaWNhdGUoZHJhZzogQ2RrRHJhZywgZHJvcDogQ2RrRHJvcExpc3QpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRHJvcExpc3RFeGl0KGV2ZW50OiBDZGtEcmFnRXhpdDxhbnk+KSB7XHJcbiAgICAgICAgdGhpcy5wdXJjaGFzZUNvbmZpcm1hdGlvbnMuc3BsaWNlKHRoaXMucHVyY2hhc2VDb25maXJtYXRpb25zLmZpbmRJbmRleChwYyA9PiBwYy5jb25maXJtYXRpb24uaWQgPT09IGV2ZW50Lml0ZW0uZGF0YS5pZCkgKyAxLCAwLCB7IC4uLiBldmVudC5pdGVtLmRhdGEsIHRlbXA6IHRydWUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRHJvcExpc3RFbnRlcmVkKGV2ZW50OiBDZGtEcmFnRW50ZXI8YW55Pikge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICB0aGlzLnB1cmNoYXNlQ29uZmlybWF0aW9ucy5zcGxpY2UodGhpcy5wdXJjaGFzZUNvbmZpcm1hdGlvbnMuZmluZEluZGV4KHBjID0+IHBjLnRlbXAgPT09IHRydWUpLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGxpbmU6IGNvbmZpcm1hdGlvblZpZXdNb2RlbCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGxpbmUuY29uZmlybWF0aW9uLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Nob3dQb3B1cChjb25maXJtYXRpb246IE9yZGVyQ29uZmlybWF0aW9uQW5hbHlzaXNSZXN1bHQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNob3dQb3B1cCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fcG9wdXBDb21wb25lbnRSZWYgPSB0aGlzLl9vdmVybGF5U2VydmljZS5jcmVhdGVDb21wb25lbnQoVHJhbnNhY3Rpb25MaW5lc1BvcHVwQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB7cGFyZW50Rm9yT3ZlcmxheTogdGhpcy5wYXJlbnRFbGVtZW50Rm9yUG9wdXAsIHRyYW5zYWN0aW9uTGluZXM6IHRoaXMudHJhbnNhY3Rpb25MaW5lc30sIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uTGluZUNsaWNrOiAobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbykgPT4gdGhpcy5faGFuZGxlVHJhbnNhY3Rpb25MaW5lQ2xpY2sobGluZSwgY29uZmlybWF0aW9uKSxcclxuICAgICAgICAgICAgICAgIGNsaWNrT3V0c2lkZTogKCkgPT4gdGhpcy5oYW5kbGVTaG93SGlkZUNsaWNrKGNvbmZpcm1hdGlvbilcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaGlkZVBvcHVwKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd1BvcHVwID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheVNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9oYW5kbGVUcmFuc2FjdGlvbkxpbmVDbGljayhsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvLCBjb25maXJtYXRpb246IE9yZGVyQ29uZmlybWF0aW9uQW5hbHlzaXNSZXN1bHQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UubGlua0FuYWx5c2lzVG9UcmFuc2FjdGlvbkxpbmUobGluZSwgY29uZmlybWF0aW9uKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { PurchaseConfirmationLinesComponent } from './purchase-confirmation-lines.component';
4
+ import { PipeModule } from '../../pipe/pipe.module';
5
+ import { DragDropModule } from '@angular/cdk/drag-drop';
6
+ import { IconModule } from '@colijnit/corecomponents';
7
+ import { TransactionLinesPopupModule } from '../transaction-lines-popup/transaction-lines-popup.module';
8
+ export class PurchaseConfirmationLinesModule {
9
+ }
10
+ PurchaseConfirmationLinesModule.decorators = [
11
+ { type: NgModule, args: [{
12
+ imports: [
13
+ CommonModule,
14
+ PipeModule,
15
+ DragDropModule,
16
+ IconModule,
17
+ TransactionLinesPopupModule
18
+ ],
19
+ declarations: [
20
+ PurchaseConfirmationLinesComponent
21
+ ],
22
+ exports: [
23
+ PurchaseConfirmationLinesComponent
24
+ ]
25
+ },] }
26
+ ];
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyY2hhc2UtY29uZmlybWF0aW9uLWxpbmVzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3B1cmNoYXNlLWNvbmZpcm1hdGlvbi1saW5lcy9wdXJjaGFzZS1jb25maXJtYXRpb24tbGluZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzNGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBaUJ0RyxNQUFNLE9BQU8sK0JBQStCOzs7WUFmM0MsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFVBQVU7b0JBQ1YsY0FBYztvQkFDZCxVQUFVO29CQUNWLDJCQUEyQjtpQkFDOUI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLGtDQUFrQztpQkFDckM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLGtDQUFrQztpQkFDckM7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtQdXJjaGFzZUNvbmZpcm1hdGlvbkxpbmVzQ29tcG9uZW50fSBmcm9tICcuL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi1saW5lcy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1BpcGVNb2R1bGV9IGZyb20gJy4uLy4uL3BpcGUvcGlwZS5tb2R1bGUnO1xyXG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHtJY29uTW9kdWxlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZXNQb3B1cE1vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24tbGluZXMtcG9wdXAvdHJhbnNhY3Rpb24tbGluZXMtcG9wdXAubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFBpcGVNb2R1bGUsXHJcbiAgICAgICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICAgICAgSWNvbk1vZHVsZSxcclxuICAgICAgICBUcmFuc2FjdGlvbkxpbmVzUG9wdXBNb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBQdXJjaGFzZUNvbmZpcm1hdGlvbkxpbmVzQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFB1cmNoYXNlQ29uZmlybWF0aW9uTGluZXNDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFB1cmNoYXNlQ29uZmlybWF0aW9uTGluZXNNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -74,6 +74,7 @@ TransactionComponent.decorators = [
74
74
  [showHeader]="showHeader"
75
75
  [showQuickAccess]="showQuickAccess"
76
76
  [showButtonBar]="showButtonBar"
77
+ [confirmationAnalysisId]="confirmationAnalysisId"
77
78
  ></co-transaction-internal>
78
79
  `,
79
80
  providers: [
@@ -89,6 +90,7 @@ TransactionComponent.ctorParameters = () => [
89
90
  ];
90
91
  TransactionComponent.propDecorators = {
91
92
  relation: [{ type: Input }],
93
+ confirmationAnalysisId: [{ type: Input }],
92
94
  transactionKind: [{ type: Input }],
93
95
  transactionNr: [{ type: Input }],
94
96
  showHeader: [{ type: Input }],
@@ -96,4 +98,4 @@ TransactionComponent.propDecorators = {
96
98
  showButtonBar: [{ type: Input }],
97
99
  showClass: [{ type: HostBinding, args: ['class.co-transaction',] }]
98
100
  };
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUU3RixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFpQnhGLE1BQU0sT0FBTyxvQkFBb0I7SUFpRDdCLFlBQ1csT0FBMkIsRUFDMUIsNEJBQXlELEVBQ3pELDJCQUFrRTtRQUZuRSxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMxQixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQTZCO1FBQ3pELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBdUM7UUFuRDlELGFBQVEsR0FBOEIsa0JBQWtCLENBQUM7UUFHbEUsYUFBUSxHQUFvQixJQUFJLGtCQUFrQixFQUFFLENBQUM7UUEyQnJELGVBQVUsR0FBWSxJQUFJLENBQUM7UUFHM0Isb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFHaEMsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFPOUIsdUJBQWtC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QUFLOzRCQUdMLEtBQUs7d0JBR0wsV0FBVyxTQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DZmdOYW1lfSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLWNmZy1uYW1lLmVudW0nO1xyXG5pbXBvcnQge0V4dGVybmFsQ2F0YWxvZ0FkZEFydGljbGVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZXh0ZXJuYWwtY2F0YWxvZy1hZGQtYXJ0aWNsZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWludGVybmFsICpuZ0lmPVwic2NyZWVuQ29uZmlnTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0hlYWRlcl09XCJzaG93SGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIFtzaG93UXVpY2tBY2Nlc3NdPVwic2hvd1F1aWNrQWNjZXNzXCJcclxuICAgICAgICAgICAgICAgIFtzaG93QnV0dG9uQmFyXT1cInNob3dCdXR0b25CYXJcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWludGVybmFsPlxyXG4gICAgYCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtwcm92aWRlOiBCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSwgdXNlRXhpc3Rpbmc6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9XHJcbiAgICBdLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25Db21wb25lbnQge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25DZmdOYW1lID0gVHJhbnNhY3Rpb25DZmdOYW1lO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSA9IG5ldyBDdXN0b21lckZ1bGxPYmplY3QoKTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0cmFuc2FjdGlvbktpbmQodmFsdWU6IFRyYW5zYWN0aW9uS2luZCkge1xyXG4gICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbktpbmQgIT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uS2luZCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9nZXRUcmFuc2FjdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uS2luZCgpOiBUcmFuc2FjdGlvbktpbmQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbktpbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb25Ocih2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uTnIgIT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTnIgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5fZ2V0VHJhbnNhY3Rpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0cmFuc2FjdGlvbk5yKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uTnI7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93SGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dRdWlja0FjY2VzczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93QnV0dG9uQmFyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uJylcclxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uS2luZDogVHJhbnNhY3Rpb25LaW5kO1xyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25OcjogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRXh0ZXJuYWxPcmRlckxpbmVzKHJlcXVlc3Q6IEV4dGVybmFsQ2F0YWxvZ0FkZEFydGljbGVSZXF1ZXN0KSB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmFkZEV4dGVybmFsQ2F0YWxvZ0FydGljbGUocmVxdWVzdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0VHJhbnNhY3Rpb24oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25OciAmJiB0aGlzLnRyYW5zYWN0aW9uS2luZCkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChsb2FkZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5sb2FkQ29uZmlnKFt0aGlzLnRyYW5zYWN0aW9uS2luZF0pLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0VHJhbnNhY3Rpb25CeU5yQW5kS2luZCh0aGlzLnRyYW5zYWN0aW9uTnIsIHRoaXMudHJhbnNhY3Rpb25LaW5kKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJlcGFyZUhlYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcmVlbkNvbmZpZ0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlSGVhZGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25JbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5PcmRlckluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlBheW1lbnRJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZWxpdmVyeUluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkpIHtcclxuICAgICAgICAgICAgLy8gbm90aGluZyB0byBzZWUgaGVyZVxyXG4gICAgICAgICAgICB0aGlzLnNob3dIZWFkZXIgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUU3RixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFrQnhGLE1BQU0sT0FBTyxvQkFBb0I7SUFvRDdCLFlBQ1csT0FBMkIsRUFDMUIsNEJBQXlELEVBQ3pELDJCQUFrRTtRQUZuRSxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMxQixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQTZCO1FBQ3pELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBdUM7UUF0RDlELGFBQVEsR0FBOEIsa0JBQWtCLENBQUM7UUFHbEUsYUFBUSxHQUFvQixJQUFJLGtCQUFrQixFQUFFLENBQUM7UUE4QnJELGVBQVUsR0FBWSxJQUFJLENBQUM7UUFHM0Isb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFHaEMsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFPOUIsdUJBQWtC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S0FBSzs4QkFHTCxLQUFLOzRCQUdMLEtBQUs7d0JBR0wsV0FBVyxTQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DZmdOYW1lfSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLWNmZy1uYW1lLmVudW0nO1xyXG5pbXBvcnQge0V4dGVybmFsQ2F0YWxvZ0FkZEFydGljbGVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZXh0ZXJuYWwtY2F0YWxvZy1hZGQtYXJ0aWNsZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWludGVybmFsICpuZ0lmPVwic2NyZWVuQ29uZmlnTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd0hlYWRlcl09XCJzaG93SGVhZGVyXCJcclxuICAgICAgICAgICAgICAgIFtzaG93UXVpY2tBY2Nlc3NdPVwic2hvd1F1aWNrQWNjZXNzXCJcclxuICAgICAgICAgICAgICAgIFtzaG93QnV0dG9uQmFyXT1cInNob3dCdXR0b25CYXJcIlxyXG4gICAgICAgICAgICAgICAgW2NvbmZpcm1hdGlvbkFuYWx5c2lzSWRdPVwiY29uZmlybWF0aW9uQW5hbHlzaXNJZFwiXHJcbiAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24taW50ZXJuYWw+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX1cclxuICAgIF0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkNvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2ZnTmFtZXM6IHR5cGVvZiBUcmFuc2FjdGlvbkNmZ05hbWUgPSBUcmFuc2FjdGlvbkNmZ05hbWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29uZmlybWF0aW9uQW5hbHlzaXNJZDogbnVtYmVyO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uS2luZCh2YWx1ZTogVHJhbnNhY3Rpb25LaW5kKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uS2luZCAhPT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25LaW5kID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2dldFRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25LaW5kKCk6IFRyYW5zYWN0aW9uS2luZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uS2luZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0cmFuc2FjdGlvbk5yKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb25OciAhPT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25OciA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9nZXRUcmFuc2FjdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uTnIoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25OcjtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1F1aWNrQWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dCdXR0b25CYXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24nKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2NyZWVuQ29uZmlnTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25LaW5kOiBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbk5yOiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRFeHRlcm5hbE9yZGVyTGluZXMocmVxdWVzdDogRXh0ZXJuYWxDYXRhbG9nQWRkQXJ0aWNsZVJlcXVlc3QpIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuYWRkRXh0ZXJuYWxDYXRhbG9nQXJ0aWNsZShyZXF1ZXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRUcmFuc2FjdGlvbigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbk5yICYmIHRoaXMudHJhbnNhY3Rpb25LaW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5jb25uZWN0aW9uSW5pdGlhbGl6ZWQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmxvYWRDb25maWcoW3RoaXMudHJhbnNhY3Rpb25LaW5kXSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKHRoaXMudHJhbnNhY3Rpb25OciwgdGhpcy50cmFuc2FjdGlvbktpbmQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmVwYXJlSGVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3ByZXBhcmVIZWFkZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5SZWxhdGlvbkluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk9yZGVySW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUGF5bWVudEluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLkRlbGl2ZXJ5SW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSkge1xyXG4gICAgICAgICAgICAvLyBub3RoaW5nIHRvIHNlZSBoZXJlXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0hlYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=