@colijnit/transaction 12.1.17 → 12.1.20

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 (119) hide show
  1. package/bundles/colijnit-transaction.umd.js +877 -418
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +149 -143
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +150 -144
  6. package/esm2015/lib/assets/dictionary/text.properties.js +24 -1
  7. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.js +5 -2
  8. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.js +3 -1
  9. package/esm2015/lib/component/transaction-line/transaction-line.component.js +16 -112
  10. package/esm2015/lib/component/transaction-line/transaction-line.module.js +4 -2
  11. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.js +162 -0
  12. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.js +30 -0
  13. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +2 -2
  14. package/esm2015/lib/component/transaction-search/service/filter-request.service.js +5 -20
  15. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +24 -2
  16. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter.component.js +6 -2
  17. package/esm2015/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.js +43 -20
  18. package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.js +41 -55
  19. package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.module.js +6 -3
  20. package/esm2015/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.js +30 -15
  21. package/esm2015/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.component.js +60 -0
  22. package/esm2015/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.module.js +24 -0
  23. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.js +86 -0
  24. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.js +26 -0
  25. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.js +120 -0
  26. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.js +26 -0
  27. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +49 -25
  28. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +9 -5
  29. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.js +77 -0
  30. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.js +28 -0
  31. package/esm2015/lib/component/transaction-search/transaction-search.component.js +52 -12
  32. package/esm2015/lib/enum/direction.enum.js +9 -0
  33. package/esm2015/lib/enum/icon.enum.js +4 -1
  34. package/esm2015/lib/enum/search-view-mode.enum.js +7 -0
  35. package/esm2015/lib/model/icon-svg.js +4 -1
  36. package/esm2015/lib/service/article-connector.service.js +54 -1
  37. package/esm2015/lib/service/pending-reason.service.js +8 -4
  38. package/esm2015/lib/service/transaction-connector.service.js +2 -1
  39. package/esm2015/lib/service/transaction-mapping.service.js +2 -2
  40. package/esm2015/lib/service/transaction.service.js +13 -2
  41. package/fesm2015/colijnit-transaction.js +873 -369
  42. package/fesm2015/colijnit-transaction.js.map +1 -1
  43. package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/_layout.scss +0 -0
  44. package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/_material-definition.scss +0 -0
  45. package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/_theme.scss +0 -0
  46. package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/material.scss +0 -0
  47. package/lib/component/tile/style/_material-definition.scss +2 -1
  48. package/lib/component/transaction-grid/transaction-base-grid/style/_layout.scss +4 -0
  49. package/lib/component/transaction-line/style/_layout.scss +0 -47
  50. package/lib/component/transaction-line/style/_theme.scss +0 -17
  51. package/lib/component/transaction-line/transaction-line.component.d.ts +3 -17
  52. package/lib/component/transaction-line-action-buttons/style/_layout.scss +106 -0
  53. package/lib/component/transaction-line-action-buttons/style/_material-definition.scss +7 -0
  54. package/lib/component/transaction-line-action-buttons/style/_theme.scss +7 -0
  55. package/lib/component/transaction-line-action-buttons/style/material.scss +3 -0
  56. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.d.ts +43 -0
  57. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.d.ts +2 -0
  58. package/lib/component/transaction-line-side-panel/style/_layout.scss +6 -4
  59. package/lib/component/transaction-line-side-panel/style/_material-definition.scss +1 -1
  60. package/lib/component/transaction-line-side-panel-default/style/_layout.scss +3 -0
  61. package/lib/component/transaction-search/service/filter-request.service.d.ts +2 -4
  62. package/lib/component/transaction-search/service/transaction-search.service.d.ts +6 -0
  63. package/lib/component/transaction-search/style/_layout.scss +36 -18
  64. package/lib/component/transaction-search/style/_material-definition.scss +32 -15
  65. package/lib/component/transaction-search/style/_theme.scss +4 -0
  66. package/lib/component/transaction-search/style/material.scss +2 -1
  67. package/lib/component/transaction-search/transaction-filter/transaction-filter.component.d.ts +3 -0
  68. package/lib/component/transaction-search/transaction-filter-categories/style/_layout.scss +8 -8
  69. package/lib/component/transaction-search/transaction-filter-categories/style/_theme.scss +3 -3
  70. package/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.d.ts +14 -1
  71. package/lib/component/transaction-search/transaction-filter-content-logistics/style/material.scss +1 -0
  72. package/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.d.ts +1 -0
  73. package/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.d.ts +2 -0
  74. package/lib/component/transaction-search/transaction-filter-historic-state/style/_layout.scss +9 -0
  75. package/lib/component/transaction-search/{transaction-tile → transaction-filter-historic-state}/style/_material-definition.scss +0 -0
  76. package/lib/component/transaction-search/transaction-filter-historic-state/style/_theme.scss +4 -0
  77. package/lib/component/transaction-search/transaction-filter-historic-state/style/material.scss +4 -0
  78. package/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.component.d.ts +22 -0
  79. package/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.module.d.ts +2 -0
  80. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_layout.scss +6 -0
  81. package/lib/component/{transaction-search-grid → transaction-search/transaction-search-grid/transaction-search-sales-order-grid}/style/_material-definition.scss +0 -0
  82. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_theme.scss +6 -0
  83. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/material.scss +7 -0
  84. package/lib/component/{transaction-search-grid/transaction-search-grid.component.d.ts → transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.d.ts} +1 -1
  85. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.d.ts +2 -0
  86. package/lib/component/transaction-search/transaction-search-header/style/_layout.scss +8 -0
  87. package/lib/component/transaction-search/transaction-search-header/style/_material-definition.scss +0 -0
  88. package/lib/component/transaction-search/transaction-search-header/style/_theme.scss +4 -0
  89. package/lib/component/transaction-search/transaction-search-header/style/material.scss +3 -0
  90. package/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.d.ts +32 -0
  91. package/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.d.ts +2 -0
  92. package/lib/component/transaction-search/transaction-search-result/style/_layout.scss +84 -13
  93. package/lib/component/transaction-search/transaction-search-result/style/_theme.scss +1 -1
  94. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +14 -6
  95. package/lib/component/transaction-search/{transaction-tile → transaction-search-tile/transaction-search-sales-order-tile}/style/_layout.scss +2 -4
  96. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_material-definition.scss +0 -0
  97. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_theme.scss +48 -0
  98. package/lib/component/transaction-search/{transaction-tile → transaction-search-tile/transaction-search-sales-order-tile}/style/material.scss +0 -0
  99. package/lib/component/transaction-search/{transaction-tile/transaction-tile.component.d.ts → transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.d.ts} +3 -3
  100. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.d.ts +2 -0
  101. package/lib/component/transaction-search/transaction-search.component.d.ts +14 -2
  102. package/lib/enum/direction.enum.d.ts +6 -0
  103. package/lib/enum/icon.enum.d.ts +3 -0
  104. package/lib/enum/search-view-mode.enum.d.ts +4 -0
  105. package/lib/service/article-connector.service.d.ts +7 -0
  106. package/lib/service/pending-reason.service.d.ts +3 -1
  107. package/lib/service/transaction.service.d.ts +7 -0
  108. package/lib/style/_variables.scss +2 -0
  109. package/package.json +3 -3
  110. package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.component.js +0 -77
  111. package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.module.js +0 -28
  112. package/esm2015/lib/component/transaction-search-grid/transaction-search-grid.component.js +0 -86
  113. package/esm2015/lib/component/transaction-search-grid/transaction-search-grid.module.js +0 -26
  114. package/lib/component/transaction-search/transaction-tile/style/_theme.scss +0 -46
  115. package/lib/component/transaction-search/transaction-tile/transaction-tile.module.d.ts +0 -2
  116. package/lib/component/transaction-search-grid/style/_layout.scss +0 -6
  117. package/lib/component/transaction-search-grid/style/_theme.scss +0 -6
  118. package/lib/component/transaction-search-grid/style/material.scss +0 -7
  119. package/lib/component/transaction-search-grid/transaction-search-grid.module.d.ts +0 -2
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
- import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
3
3
  import { StockStatus } from "@colijnit/transactionapi/build/enum/refcode/stock-status.enum";
4
4
  import { TransactionService } from "../../service/transaction.service";
5
5
  import { DictionaryService } from "../../service/dictionary.service";
@@ -7,6 +7,7 @@ import { Icon } from "../../enum/icon.enum";
7
7
  import { IconCacheService } from "../../service/icon-cache.service";
8
8
  import { DialogService } from "../../service/dialog.service";
9
9
  import { TransactionImageService } from "../../service/transaction-image.service";
10
+ import { TransactionLineActionButtonsComponent } from "../transaction-line-action-buttons/transaction-line-action-buttons.component";
10
11
  export class TransactionLineComponent {
11
12
  constructor(service, iconCacheService, _dialogService, _dictionaryService, _imageService) {
12
13
  this.service = service;
@@ -19,8 +20,6 @@ export class TransactionLineComponent {
19
20
  this.waitingForUserAction = new EventEmitter();
20
21
  this.sidePanelButtonClicked = new EventEmitter();
21
22
  this.stock = StockStatus.Low;
22
- this.showTransactionArticleText = false;
23
- this.showTransactionArticleTextOverview = false;
24
23
  this.mouseOver = false;
25
24
  }
26
25
  set line(value) {
@@ -62,30 +61,13 @@ export class TransactionLineComponent {
62
61
  }
63
62
  });
64
63
  }
65
- handleTransactionArticleText(event) {
66
- this.articleTextHeader = this._dictionaryService.get("TEXT_ARTICLE_BOUND", true, this.line.articleNumber);
67
- this.textToEdit = undefined;
68
- this._showArticleTextDialog();
69
- }
70
- handleTransactionArticleTextOverview(event) {
71
- this.articleTextHeader = this._dictionaryService.get("TEXT_ARTICLE_BOUND", true, this.line.articleNumber);
72
- this.textToEdit = undefined;
73
- this._showArticleTextOverviewDialog();
74
- }
75
- saveTransactionArticleLineText(transactionAddTextLineRequest) {
76
- this.service.addTextLine(transactionAddTextLineRequest.showOnDocuments, transactionAddTextLineRequest.text, 0, true, transactionAddTextLineRequest.refArticleLineNr).then(() => {
77
- this._hideArticleTextDialog();
78
- });
79
- }
80
- closeTransactionArticleText(event) {
81
- this._hideArticleTextDialog();
82
- }
83
- closeTransactionArticleTextOverview(event) {
84
- this._hideArticleTextOverviewDialog();
85
- }
86
64
  handleOpenArticleText(text) {
87
- this.textToEdit = text;
88
- this._showArticleTextDialog();
65
+ this.transactionLineActionButtons.textToEdit = text;
66
+ this.transactionLineActionButtons.showArticleTextDialog();
67
+ }
68
+ handleShowSidePanel() {
69
+ this.sidePanelButtonClicked.next();
70
+ this.waitingForUserAction.next(true);
89
71
  }
90
72
  _loadLineImage() {
91
73
  return __awaiter(this, void 0, void 0, function* () {
@@ -96,70 +78,6 @@ export class TransactionLineComponent {
96
78
  }
97
79
  });
98
80
  }
99
- // private async _confirmAction(lineOperationResponse: LineOperationResponse): Promise<void> {
100
- // this.currentReason.confirmation = await this._promptService.showYesNo(lineOperationResponse.pendingReason, " ");
101
- // this.service.resolvePendingLineReason(this.currentReason)
102
- // .then((value: LineOperationResponse) => {
103
- // this._handleLine(value);
104
- // });
105
- // }
106
- // private async _showInformation(lineOperationResponse: LineOperationResponse): Promise<void> {
107
- // await this._promptService.showOkModal(lineOperationResponse.pendingReason, " ");
108
- // this.service.resolvePendingLineReason(this.currentReason)
109
- // .then((value: LineOperationResponse) => {
110
- // this._handleLine(value);
111
- // });
112
- // }
113
- // private async _handleLine(lineOperationResponse: LineOperationResponse): Promise<void> {
114
- // if (lineOperationResponse === undefined) {
115
- // return;
116
- // }
117
- // this.currentReason = new ResolvePendingLineReasonRequest(lineOperationResponse.lineUuid,
118
- // lineOperationResponse.pendingReason, lineOperationResponse.pendingReasonType);
119
- //
120
- // switch (lineOperationResponse.pendingReasonType) {
121
- // case PendingReasonType.ABORTED:
122
- // case PendingReasonType.CANCELLED:
123
- // this.localAmount = this._line.amount;
124
- // if (lineOperationResponse.pendingReason !== "USER_DECISION") {
125
- // await this._promptService.showNotification(this._dictionaryService.get(lineOperationResponse.pendingReason), " ");
126
- // }
127
- // break;
128
- // case PendingReasonType.CONFIRMATION_NEEDED:
129
- // await this._confirmAction(lineOperationResponse);
130
- // break;
131
- // case PendingReasonType.NON_CRITICAL_DISCONTINUATION:
132
- // await this._showInformation(lineOperationResponse);
133
- // break;
134
- // case PendingReasonType.INVALID_LOGISTICS:
135
- // this.localAmount = this._line.amount;
136
- // await this._promptService.showError(this._dictionaryService.get(lineOperationResponse.pendingReason), " ");
137
- // break;
138
- // case PendingReasonType.NONE:
139
- // default:
140
- // break;
141
- // }
142
- // }
143
- _showArticleTextDialog() {
144
- this.showTransactionArticleText = true;
145
- this.waitingForUserAction.next(true);
146
- }
147
- _hideArticleTextDialog() {
148
- this.showTransactionArticleText = false;
149
- this.waitingForUserAction.next(false);
150
- }
151
- _showArticleTextOverviewDialog() {
152
- this.showTransactionArticleTextOverview = true;
153
- this.waitingForUserAction.next(true);
154
- }
155
- _hideArticleTextOverviewDialog() {
156
- this.showTransactionArticleTextOverview = false;
157
- this.waitingForUserAction.next(false);
158
- }
159
- handleShowSidePanel(event) {
160
- this.sidePanelButtonClicked.next();
161
- this.waitingForUserAction.next(true);
162
- }
163
81
  }
164
82
  TransactionLineComponent.decorators = [
165
83
  { type: Component, args: [{
@@ -190,7 +108,7 @@ TransactionLineComponent.decorators = [
190
108
  <span [textContent]="'STOCK' | localize" class="small-font"></span>
191
109
  <stock-status-indicator [model]="stock"></stock-status-indicator>
192
110
  <span [textContent]="'DELIVERY_TIME_PERIOD' | localize" class="small-font"></span>
193
- <!-- <span [textContent]="line.deliveryDate | deliveryTime"></span>-->
111
+ <!-- <span [textContent]="line.deliveryDate | deliveryTime"></span>-->
194
112
  </div>
195
113
  <div *ngIf=!preview class="transaction-line-amount">
196
114
  <co-input-number-picker class="amount-number-picker"
@@ -210,9 +128,11 @@ TransactionLineComponent.decorators = [
210
128
  <span [textContent]="line.displayNetLineTotal | coCurrency: true"></span>
211
129
  </div>
212
130
  <div *ngIf="!preview" class="transaction-line-buttons">
213
- <co-button class="transaction-line-overview-button circle" [class.show]="mouseOver || isSelected" [iconData]="iconCacheService.getIcon(icons.Txt)" (click)="handleTransactionArticleTextOverview($event)"></co-button>
214
- <co-button class="transaction-line-add-text-button circle" [class.show]="mouseOver || isSelected" [iconData]="iconCacheService.getIcon(icons.Txt)" (click)="handleTransactionArticleText($event)"></co-button>
215
- <co-button class="transaction-line-show-sidebar-button circle" [class.show]="mouseOver || isSelected" [iconData]="iconCacheService.getIcon(icons.MasterDetail)" (click)="handleShowSidePanel($event)"></co-button>
131
+ <co-transaction-line-action-buttons
132
+ [transactionLine]="line"
133
+ (waitingForUserAction)="waitingForUserAction.next($event)"
134
+ (sidePanelButtonClicked)="handleShowSidePanel()"
135
+ ></co-transaction-line-action-buttons>
216
136
  </div>
217
137
  </div>
218
138
  <div class="transaction-line-delete" *ngIf="!preview">
@@ -236,23 +156,6 @@ TransactionLineComponent.decorators = [
236
156
  </div>
237
157
  </ng-container>
238
158
  </div>
239
- <co-transaction-article-text-overview *ngIf="showTransactionArticleTextOverview"
240
- [header]="articleTextHeader | localize"
241
- [transactionLine]="line"
242
- (saveClick)="saveTransactionArticleLineText($event)"
243
- (closeClick)="closeTransactionArticleTextOverview($event)"
244
- (cancelClick)="closeTransactionArticleTextOverview($event)"
245
- ></co-transaction-article-text-overview>
246
- <co-transaction-article-text *ngIf="showTransactionArticleText"
247
- [header]="articleTextHeader | localize"
248
- [articleLineNr]="line.lineNr"
249
- [articleRef]="line.articleNumber"
250
- [transactionLine]="line"
251
- [editText]="textToEdit"
252
- (saveClick)="saveTransactionArticleLineText($event)"
253
- (closeClick)="closeTransactionArticleText($event)"
254
- (cancelClick)="closeTransactionArticleText($event)"
255
- ></co-transaction-article-text>
256
159
  `,
257
160
  encapsulation: ViewEncapsulation.None
258
161
  },] }
@@ -269,6 +172,7 @@ TransactionLineComponent.propDecorators = {
269
172
  line: [{ type: Input }],
270
173
  waitingForUserAction: [{ type: Output }],
271
174
  sidePanelButtonClicked: [{ type: Output }],
175
+ transactionLineActionButtons: [{ type: ViewChild, args: [TransactionLineActionButtonsComponent,] }],
272
176
  isText: [{ type: HostBinding, args: ["class.is-text",] }],
273
177
  isArticle: [{ type: HostBinding, args: ["class.is-article",] }],
274
178
  isSelected: [{ type: HostBinding, args: ["class.is-selected",] }, { type: Input, args: ['selected',] }],
@@ -276,4 +180,4 @@ TransactionLineComponent.propDecorators = {
276
180
  handleMouseOver: [{ type: HostListener, args: ["mouseover", ["$event"],] }],
277
181
  handleMouseLeave: [{ type: HostListener, args: ["mouseleave", ["$event"],] }]
278
182
  };
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFnR2hGLE1BQU0sT0FBTyx3QkFBd0I7SUFnRW5DLFlBQ1MsT0FBMkIsRUFDM0IsZ0JBQWtDLEVBQ2pDLGNBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxhQUFzQztRQUp2QyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBcEVoQyxVQUFLLEdBQWdCLElBQUksQ0FBQztRQUluQyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBaUJ6Qix5QkFBb0IsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUcxRSwyQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQTZCdEUsVUFBSyxHQUFnQixXQUFXLENBQUMsR0FBRyxDQUFDO1FBRXJDLCtCQUEwQixHQUFZLEtBQUssQ0FBQztRQUM1Qyx1Q0FBa0MsR0FBWSxLQUFLLENBQUM7UUFHcEQsY0FBUyxHQUFZLEtBQUssQ0FBQztJQVVsQyxDQUFDO0lBL0RELElBQ1csSUFBSSxDQUFDLEtBQTBCO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQW1CTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR00sZUFBZSxDQUFDLEtBQWlCO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFHTSxnQkFBZ0IsQ0FBQyxLQUFpQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBc0JNLGdCQUFnQixDQUFDLE1BQWM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUE0QixFQUFFLEVBQUU7WUFDdkcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3JDLE9BQU87YUFDUjtZQUNELGtDQUFrQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFWSwwQkFBMEI7O1lBQ3JDLE1BQU0sVUFBVSxHQUFZLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxDQUFDO1lBQ3JJLElBQUksVUFBVSxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBNEIsRUFBRSxFQUFFO29CQUM3SSwyQkFBMkI7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDO0tBQUE7SUFFTSw0QkFBNEIsQ0FBQyxLQUFpQjtRQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sb0NBQW9DLENBQUMsS0FBaUI7UUFDM0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLDhCQUE4QixDQUFDLDZCQUE0RDtRQUNoRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FDdEIsNkJBQTZCLENBQUMsZUFBZSxFQUM3Qyw2QkFBNkIsQ0FBQyxJQUFJLEVBQ2xDLENBQUMsRUFDRCxJQUFJLEVBQ0osNkJBQTZCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzFELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLDJCQUEyQixDQUFDLEtBQWlCO1FBQ2xELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxtQ0FBbUMsQ0FBQyxLQUFpQjtRQUMxRCxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0scUJBQXFCLENBQUMsSUFBWTtRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRWEsY0FBYzs7WUFDMUIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtvQkFDckUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDO0tBQUE7SUFFRCw4RkFBOEY7SUFDOUYscUhBQXFIO0lBQ3JILDhEQUE4RDtJQUM5RCxnREFBZ0Q7SUFDaEQsaUNBQWlDO0lBQ2pDLFVBQVU7SUFDVixJQUFJO0lBRUosZ0dBQWdHO0lBQ2hHLHFGQUFxRjtJQUNyRiw4REFBOEQ7SUFDOUQsZ0RBQWdEO0lBQ2hELGlDQUFpQztJQUNqQyxVQUFVO0lBQ1YsSUFBSTtJQUVKLDJGQUEyRjtJQUMzRiwrQ0FBK0M7SUFDL0MsY0FBYztJQUNkLE1BQU07SUFDTiw2RkFBNkY7SUFDN0YscUZBQXFGO0lBQ3JGLEVBQUU7SUFDRix1REFBdUQ7SUFDdkQsc0NBQXNDO0lBQ3RDLHdDQUF3QztJQUN4Qyw4Q0FBOEM7SUFDOUMsdUVBQXVFO0lBQ3ZFLDZIQUE2SDtJQUM3SCxVQUFVO0lBQ1YsZUFBZTtJQUNmLGtEQUFrRDtJQUNsRCwwREFBMEQ7SUFDMUQsZUFBZTtJQUNmLDJEQUEyRDtJQUMzRCw0REFBNEQ7SUFDNUQsZUFBZTtJQUNmLGdEQUFnRDtJQUNoRCw4Q0FBOEM7SUFDOUMsb0hBQW9IO0lBQ3BILGVBQWU7SUFDZixtQ0FBbUM7SUFDbkMsZUFBZTtJQUNmLGVBQWU7SUFDZixNQUFNO0lBQ04sSUFBSTtJQUVJLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxJQUFJLENBQUMsa0NBQWtDLEdBQUcsSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyxJQUFJLENBQUMsa0NBQWtDLEdBQUcsS0FBSyxDQUFDO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQWlCO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OztZQTNTRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlGVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBdkdPLGtCQUFrQjtZQUlsQixnQkFBZ0I7WUFFaEIsYUFBYTtZQUxiLGlCQUFpQjtZQU9qQix1QkFBdUI7OztzQkFtRzVCLFdBQVcsU0FBQyxlQUFlLGNBQzNCLEtBQUs7bUJBR0wsS0FBSzttQ0FjTCxNQUFNO3FDQUdOLE1BQU07cUJBR04sV0FBVyxTQUFDLGVBQWU7d0JBRzNCLFdBQVcsU0FBQyxrQkFBa0I7eUJBRzlCLFdBQVcsU0FBQyxtQkFBbUIsY0FDL0IsS0FBSyxTQUFDLFVBQVU7d0JBR2hCLFdBQVcsU0FBQywyQkFBMkI7OEJBS3ZDLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7K0JBS3BDLFlBQVksU0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVmY29kZS9zdG9jay1zdGF0dXMuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtMaW5lT3BlcmF0aW9uUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tcmVzcG9uc2UuYm9cIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtdGV4dC1saW5lLXJlcXVlc3QuYm9cIjtcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQge1Jlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmUuaXNBcnRpY2xlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtaW1hZ2VcIiBbY2xhc3MucHJldmlld109XCJwcmV2aWV3XCI+XHJcbiAgICAgICAgICAgIDxjby1pbWFnZS1kaXNwbGF5IFttb2RlbF09XCJpbWFnZVwiPjwvY28taW1hZ2UtZGlzcGxheT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5nb29kRGVzY3JpcHRpb25cIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVzY3JpcHRpb24tZGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsaW5lLmdvb2REZXNjcmlwdGlvbiAmJiBsaW5lLmFydGljbGVOdW1iZXJcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVzY3JpcHRpb24tZGl2aWRlclwiPnw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuYXJ0aWNsZU51bWJlclwiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZXNjcmlwdGlvbi1za3VcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPSFwcmV2aWV3IGNsYXNzPVwiYXJ0aWNsZS10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJ0aWNsZS10ZXh0XCIgKm5nRm9yPVwibGV0IHRleHQgb2YgbGluZS5hcnRpY2xlVGVzdEFzQXJyYXlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwidGV4dCB8IHNhZmVIdG1sXCIgKGRibGNsaWNrKT1cImhhbmRsZU9wZW5BcnRpY2xlVGV4dCh0ZXh0KVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9IXByZXZpZXcgY2xhc3M9XCJjb25maWd1cmF0aW9uLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGluZS5jb25maWd1cmF0aW9uUmVhZGFibGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPSFwcmV2aWV3IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1zdG9ja1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ1NUT0NLJyB8IGxvY2FsaXplXCIgY2xhc3M9XCJzbWFsbC1mb250XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3RvY2stc3RhdHVzLWluZGljYXRvciBbbW9kZWxdPVwic3RvY2tcIj48L3N0b2NrLXN0YXR1cy1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInREVMSVZFUllfVElNRV9QRVJJT0QnIHwgbG9jYWxpemVcIiBjbGFzcz1cInNtYWxsLWZvbnRcIj48L3NwYW4+XHJcbjwhLS0gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5kZWxpdmVyeURhdGUgfCBkZWxpdmVyeVRpbWVcIj48L3NwYW4+LS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9IXByZXZpZXcgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWFtb3VudFwiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciBjbGFzcz1cImFtb3VudC1udW1iZXItcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibG9jYWxBbW91bnRcIiBbbWluXT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGFuZ2VMaW5lQW1vdW50KCRldmVudClcIj48L2NvLWlucHV0LW51bWJlci1waWNrZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlbGV0ZVwiICpuZ0lmPVwicHJldmlld1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLXdyYXBwZXJcIiAoY2xpY2spPVwiZGVsZXRlVHJhbnNhY3Rpb25MaW5lQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgIDxpY29uIGNsYXNzPVwiZGVsZXRlLWljb25cIiBbaWNvbl09XCJpY29ucy5DYW5jZWxcIj48L2ljb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1saW5rXCJcclxuICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInREVMRVRFX1RSQU5TQUNUSU9OX0xJTkUnIHwgbG9jYWxpemU6ZmFsc2VcIj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFsc1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5kaXNwbGF5TmV0TGluZVRvdGFsIHwgY29DdXJyZW5jeTogdHJ1ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFwcmV2aWV3XCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtb3ZlcnZpZXctYnV0dG9uIGNpcmNsZVwiIFtjbGFzcy5zaG93XT1cIm1vdXNlT3ZlciB8fCBpc1NlbGVjdGVkXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UeHQpXCIgKGNsaWNrKT1cImhhbmRsZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldygkZXZlbnQpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWFkZC10ZXh0LWJ1dHRvbiBjaXJjbGVcIiBbY2xhc3Muc2hvd109XCJtb3VzZU92ZXIgfHwgaXNTZWxlY3RlZFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVHh0KVwiIChjbGljayk9XCJoYW5kbGVUcmFuc2FjdGlvbkFydGljbGVUZXh0KCRldmVudClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2hvdy1zaWRlYmFyLWJ1dHRvbiBjaXJjbGVcIiBbY2xhc3Muc2hvd109XCJtb3VzZU92ZXIgfHwgaXNTZWxlY3RlZFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuTWFzdGVyRGV0YWlsKVwiIChjbGljayk9XCJoYW5kbGVTaG93U2lkZVBhbmVsKCRldmVudClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlbGV0ZVwiICpuZ0lmPVwiIXByZXZpZXdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGUtd3JhcHBlclwiIChjbGljayk9XCJkZWxldGVUcmFuc2FjdGlvbkxpbmVDbGljaygpXCI+XHJcbiAgICAgICAgICAgIDxpY29uIGNsYXNzPVwiZGVsZXRlLWljb25cIiBbaWNvbl09XCJpY29ucy5DYW5jZWxcIj48L2ljb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGUtbGlua1wiXHJcbiAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIidERUxFVEVfVFJBTlNBQ1RJT05fTElORScgfCBsb2NhbGl6ZTpmYWxzZVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmUuaXNUZXh0XCI+XHJcbiAgICAgICAgPGRpdiBbdGV4dENvbnRlbnRdPVwibGluZS50ZXh0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVsZXRlXCIgKm5nSWY9XCIhcHJldmlld1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS13cmFwcGVyXCIgKGNsaWNrKT1cImRlbGV0ZVRyYW5zYWN0aW9uTGluZUNsaWNrKClcIj5cclxuICAgICAgICAgICAgPGljb24gY2xhc3M9XCJkZWxldGUtaWNvblwiIFtpY29uXT1cImljb25zLkNhbmNlbFwiPjwvaWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1saW5rXCJcclxuICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ0RFTEVURV9UUkFOU0FDVElPTl9MSU5FJyB8IGxvY2FsaXplOmZhbHNlXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3ICpuZ0lmPVwic2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiYXJ0aWNsZVRleHRIZWFkZXIgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwibGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZVRyYW5zYWN0aW9uQXJ0aWNsZUxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3KCRldmVudClcIlxyXG4gICAgPjwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3PlxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dCAqbmdJZj1cInNob3dUcmFuc2FjdGlvbkFydGljbGVUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlcl09XCJhcnRpY2xlVGV4dEhlYWRlciB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVMaW5lTnJdPVwibGluZS5saW5lTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZVJlZl09XCJsaW5lLmFydGljbGVOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cImxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdFRleHRdPVwidGV4dFRvRWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZVRyYW5zYWN0aW9uQXJ0aWNsZUxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHQoJGV2ZW50KVwiXHJcbiAgICA+PC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQ+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5wcmV2aWV3XCIpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJldmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbGluZSh2YWx1ZTogVHJhbnNhY3Rpb25MaW5lSW5mbykge1xyXG4gICAgdGhpcy5fbGluZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5sb2NhbEFtb3VudCA9IHRoaXMuX2xpbmUuYW1vdW50O1xyXG4gICAgdGhpcy5pc1RleHQgPSB0aGlzLl9saW5lLmlzVGV4dDtcclxuICAgIHRoaXMuaXNBcnRpY2xlID0gdGhpcy5fbGluZS5pc0FydGljbGU7XHJcbiAgICB0aGlzLmlzU2VsZWN0ZWQgPSB0aGlzLl9saW5lLmlzU2VsZWN0ZWQ7XHJcbiAgICB0aGlzLl9sb2FkTGluZUltYWdlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxpbmUoKTogVHJhbnNhY3Rpb25MaW5lSW5mbyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGluZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB3YWl0aW5nRm9yVXNlckFjdGlvbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5pcy10ZXh0XCIpXHJcbiAgcHVibGljIGlzVGV4dDogYm9vbGVhbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaXMtYXJ0aWNsZVwiKVxyXG4gIHB1YmxpYyBpc0FydGljbGU6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmlzLXNlbGVjdGVkXCIpXHJcbiAgQElucHV0KCdzZWxlY3RlZCcpXHJcbiAgcHVibGljIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmVcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwibW91c2VvdmVyXCIsIFtcIiRldmVudFwiXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMubW91c2VPdmVyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYWxBbW91bnQ6IG51bWJlcjtcclxuICBwdWJsaWMgaW1hZ2U6IHN0cmluZztcclxuICBwdWJsaWMgc3RvY2s6IFN0b2NrU3RhdHVzID0gU3RvY2tTdGF0dXMuTG93O1xyXG4gIHB1YmxpYyBjdXJyZW50UmVhc29uOiBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0O1xyXG4gIHB1YmxpYyBzaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFydGljbGVUZXh0SGVhZGVyOiBzdHJpbmc7XHJcbiAgcHVibGljIHRleHRUb0VkaXQ6IHN0cmluZztcclxuICBwdWJsaWMgbW91c2VPdmVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VMaW5lQW1vdW50KGFtb3VudDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2hhbmdlVHJhbnNhY3Rpb25MaW5lUXVhbnRpdHkodGhpcy5saW5lLnV1aWQsIGFtb3VudCkudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5pc1N1Y2Nlc3MpIHtcclxuICAgICAgICB0aGlzLmxvY2FsQW1vdW50ID0gdGhpcy5fbGluZS5hbW91bnQ7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIHRoaXMuX2hhbmRsZUxpbmUodmFsdWUpLnRoZW4oKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZVRyYW5zYWN0aW9uTGluZUNsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZGVsZXRlTGluZTogYm9vbGVhbiA9IGF3YWl0IHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd1llc05vKFwiXCIsIHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX1FVRVNUSU9OXCIpKTtcclxuICAgIGlmIChkZWxldGVMaW5lKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5kZWxldGVUcmFuc2FjdGlvbkxpbmUodGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCwgdGhpcy5saW5lLnV1aWQpLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAvLyB0aGlzLl9oYW5kbGVMaW5lKHZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVHJhbnNhY3Rpb25BcnRpY2xlVGV4dChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVGV4dEhlYWRlciA9IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIlRFWFRfQVJUSUNMRV9CT1VORFwiLCB0cnVlLCB0aGlzLmxpbmUuYXJ0aWNsZU51bWJlcik7XHJcbiAgICB0aGlzLnRleHRUb0VkaXQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLl9zaG93QXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUcmFuc2FjdGlvbkFydGljbGVUZXh0T3ZlcnZpZXcoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYXJ0aWNsZVRleHRIZWFkZXIgPSB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJURVhUX0FSVElDTEVfQk9VTkRcIiwgdHJ1ZSwgdGhpcy5saW5lLmFydGljbGVOdW1iZXIpO1xyXG4gICAgdGhpcy50ZXh0VG9FZGl0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fc2hvd0FydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlVHJhbnNhY3Rpb25BcnRpY2xlTGluZVRleHQodHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3Q6IFRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuYWRkVGV4dExpbmUoXHJcbiAgICAgIHRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgdHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QudGV4dCxcclxuICAgICAgMCxcclxuICAgICAgdHJ1ZSxcclxuICAgICAgdHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QucmVmQXJ0aWNsZUxpbmVOcikudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VUcmFuc2FjdGlvbkFydGljbGVUZXh0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5faGlkZUFydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVPcGVuQXJ0aWNsZVRleHQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHRUb0VkaXQgPSB0ZXh0O1xyXG4gICAgdGhpcy5fc2hvd0FydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9sb2FkTGluZUltYWdlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMubGluZSAmJiB0aGlzLmxpbmUuaXNBcnRpY2xlKSB7XHJcbiAgICAgIHRoaXMuX2ltYWdlU2VydmljZS5yZXRyaWV2ZUxpbmVJbWFnZSh0aGlzLmxpbmUpLnRoZW4oKGltYWdlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLmltYWdlID0gaW1hZ2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBhc3luYyBfY29uZmlybUFjdGlvbihsaW5lT3BlcmF0aW9uUmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gIC8vICAgdGhpcy5jdXJyZW50UmVhc29uLmNvbmZpcm1hdGlvbiA9IGF3YWl0IHRoaXMuX3Byb21wdFNlcnZpY2Uuc2hvd1llc05vKGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uLCBcIiBcIik7XHJcbiAgLy8gICB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcclxuICAvLyAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcclxuICAvLyAgICAgICB0aGlzLl9oYW5kbGVMaW5lKHZhbHVlKTtcclxuICAvLyAgICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwcml2YXRlIGFzeW5jIF9zaG93SW5mb3JtYXRpb24obGluZU9wZXJhdGlvblJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgIGF3YWl0IHRoaXMuX3Byb21wdFNlcnZpY2Uuc2hvd09rTW9kYWwobGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24sIFwiIFwiKTtcclxuICAvLyAgIHRoaXMuc2VydmljZS5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24odGhpcy5jdXJyZW50UmVhc29uKVxyXG4gIC8vICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xyXG4gIC8vICAgICAgIHRoaXMuX2hhbmRsZUxpbmUodmFsdWUpO1xyXG4gIC8vICAgICB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8vIHByaXZhdGUgYXN5bmMgX2hhbmRsZUxpbmUobGluZU9wZXJhdGlvblJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgIGlmIChsaW5lT3BlcmF0aW9uUmVzcG9uc2UgPT09IHVuZGVmaW5lZCkge1xyXG4gIC8vICAgICByZXR1cm47XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLmN1cnJlbnRSZWFzb24gPSBuZXcgUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdChsaW5lT3BlcmF0aW9uUmVzcG9uc2UubGluZVV1aWQsXHJcbiAgLy8gICAgIGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uLCBsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gIC8vXHJcbiAgLy8gICBzd2l0Y2ggKGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uVHlwZSkge1xyXG4gIC8vICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkFCT1JURUQ6XHJcbiAgLy8gICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxyXG4gIC8vICAgICAgIHRoaXMubG9jYWxBbW91bnQgPSB0aGlzLl9saW5lLmFtb3VudDtcclxuICAvLyAgICAgICBpZiAobGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24gIT09IFwiVVNFUl9ERUNJU0lPTlwiKSB7XHJcbiAgLy8gICAgICAgICBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24odGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uKSwgXCIgXCIpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DT05GSVJNQVRJT05fTkVFREVEOlxyXG4gIC8vICAgICAgIGF3YWl0IHRoaXMuX2NvbmZpcm1BY3Rpb24obGluZU9wZXJhdGlvblJlc3BvbnNlKTtcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OOlxyXG4gIC8vICAgICAgIGF3YWl0IHRoaXMuX3Nob3dJbmZvcm1hdGlvbihsaW5lT3BlcmF0aW9uUmVzcG9uc2UpO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxyXG4gIC8vICAgICAgIHRoaXMubG9jYWxBbW91bnQgPSB0aGlzLl9saW5lLmFtb3VudDtcclxuICAvLyAgICAgICBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dFcnJvcih0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQobGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24pLCBcIiBcIik7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9ORTpcclxuICAvLyAgICAgZGVmYXVsdDpcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHQgPSB0cnVlO1xyXG4gICAgdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGlkZUFydGljbGVUZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dCA9IGZhbHNlO1xyXG4gICAgdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3ID0gdHJ1ZTtcclxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3ID0gZmFsc2U7XHJcbiAgICB0aGlzLndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dTaWRlUGFuZWwoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZC5uZXh0KCk7XHJcbiAgICB0aGlzLndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDMUYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRWxFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQ0wscUNBQXFDLEVBQ3RDLE1BQU0sOEVBQThFLENBQUM7QUFpRnRGLE1BQU0sT0FBTyx3QkFBd0I7SUE4RG5DLFlBQ1MsT0FBMkIsRUFDM0IsZ0JBQWtDLEVBQ2pDLGNBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxhQUFzQztRQUp2QyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsa0JBQWEs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QUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO29CQUNyRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDckIsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUM7S0FBQTs7O1lBeExGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEVUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUEzRk8sa0JBQWtCO1lBSWxCLGdCQUFnQjtZQUVoQixhQUFhO1lBTGIsaUJBQWlCO1lBT2pCLHVCQUF1Qjs7O3NCQXVGNUIsV0FBVyxTQUFDLGVBQWUsY0FDM0IsS0FBSzttQkFHTCxLQUFLO21DQWNMLE1BQU07cUNBR04sTUFBTTsyQ0FHTixTQUFTLFNBQUMscUNBQXFDO3FCQUcvQyxXQUFXLFNBQUMsZUFBZTt3QkFHM0IsV0FBVyxTQUFDLGtCQUFrQjt5QkFHOUIsV0FBVyxTQUFDLG1CQUFtQixjQUMvQixLQUFLLFNBQUMsVUFBVTt3QkFHaEIsV0FBVyxTQUFDLDJCQUEyQjs4QkFLdkMsWUFBWSxTQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzsrQkFLcEMsWUFBWSxTQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtTdG9ja1N0YXR1c30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvc3RvY2stc3RhdHVzLmVudW1cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TGluZU9wZXJhdGlvblJlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xpbmUtb3BlcmF0aW9uLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYWRkLXRleHQtbGluZS1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3Jlc29sdmUtcGVuZGluZy1yZWFzb24tcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgVHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uc0NvbXBvbmVudFxyXG59IGZyb20gXCIuLi90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zL3RyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1saW5lXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaW5lLmlzQXJ0aWNsZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWltYWdlXCIgW2NsYXNzLnByZXZpZXddPVwicHJldmlld1wiPlxyXG4gICAgICAgICAgICA8Y28taW1hZ2UtZGlzcGxheSBbbW9kZWxdPVwiaW1hZ2VcIj48L2NvLWltYWdlLWRpc3BsYXk+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuZ29vZERlc2NyaXB0aW9uXCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlc2NyaXB0aW9uLWRlc2NyaXB0aW9uXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibGluZS5nb29kRGVzY3JpcHRpb24gJiYgbGluZS5hcnRpY2xlTnVtYmVyXCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlc2NyaXB0aW9uLWRpdmlkZXJcIj58PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJsaW5lLmFydGljbGVOdW1iZXJcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVzY3JpcHRpb24tc2t1XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj0hcHJldmlldyBjbGFzcz1cImFydGljbGUtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFydGljbGUtdGV4dFwiICpuZ0Zvcj1cImxldCB0ZXh0IG9mIGxpbmUuYXJ0aWNsZVRlc3RBc0FycmF5XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInRleHQgfCBzYWZlSHRtbFwiIChkYmxjbGljayk9XCJoYW5kbGVPcGVuQXJ0aWNsZVRleHQodGV4dClcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPSFwcmV2aWV3IGNsYXNzPVwiY29uZmlndXJhdGlvbi10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxpbmUuY29uZmlndXJhdGlvblJlYWRhYmxlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj0hcHJldmlldyBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc3RvY2tcIj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidTVE9DSycgfCBsb2NhbGl6ZVwiIGNsYXNzPVwic21hbGwtZm9udFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHN0b2NrLXN0YXR1cy1pbmRpY2F0b3IgW21vZGVsXT1cInN0b2NrXCI+PC9zdG9jay1zdGF0dXMtaW5kaWNhdG9yPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ0RFTElWRVJZX1RJTUVfUEVSSU9EJyB8IGxvY2FsaXplXCIgY2xhc3M9XCJzbWFsbC1mb250XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuZGVsaXZlcnlEYXRlIHwgZGVsaXZlcnlUaW1lXCI+PC9zcGFuPi0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPSFwcmV2aWV3IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1hbW91bnRcIj5cclxuICAgICAgICAgICAgPGNvLWlucHV0LW51bWJlci1waWNrZXIgY2xhc3M9XCJhbW91bnQtbnVtYmVyLXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImxvY2FsQW1vdW50XCIgW21pbl09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiY2hhbmdlTGluZUFtb3VudCgkZXZlbnQpXCI+PC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZWxldGVcIiAqbmdJZj1cInByZXZpZXdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS13cmFwcGVyXCIgKGNsaWNrKT1cImRlbGV0ZVRyYW5zYWN0aW9uTGluZUNsaWNrKClcIj5cclxuICAgICAgICAgICAgICA8aWNvbiBjbGFzcz1cImRlbGV0ZS1pY29uXCIgW2ljb25dPVwiaWNvbnMuQ2FuY2VsXCI+PC9pY29uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGUtbGlua1wiXHJcbiAgICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ0RFTEVURV9UUkFOU0FDVElPTl9MSU5FJyB8IGxvY2FsaXplOmZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHNcIj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuZGlzcGxheU5ldExpbmVUb3RhbCB8IGNvQ3VycmVuY3k6IHRydWVcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcHJldmlld1wiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1idXR0b25zXCI+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJsaW5lXCJcclxuICAgICAgICAgICAgICAod2FpdGluZ0ZvclVzZXJBY3Rpb24pPVwid2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAoc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVTaG93U2lkZVBhbmVsKClcIlxyXG4gICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVsZXRlXCIgKm5nSWY9XCIhcHJldmlld1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS13cmFwcGVyXCIgKGNsaWNrKT1cImRlbGV0ZVRyYW5zYWN0aW9uTGluZUNsaWNrKClcIj5cclxuICAgICAgICAgICAgPGljb24gY2xhc3M9XCJkZWxldGUtaWNvblwiIFtpY29uXT1cImljb25zLkNhbmNlbFwiPjwvaWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1saW5rXCJcclxuICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ0RFTEVURV9UUkFOU0FDVElPTl9MSU5FJyB8IGxvY2FsaXplOmZhbHNlXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGluZS5pc1RleHRcIj5cclxuICAgICAgICA8ZGl2IFt0ZXh0Q29udGVudF09XCJsaW5lLnRleHRcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZWxldGVcIiAqbmdJZj1cIiFwcmV2aWV3XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLXdyYXBwZXJcIiAoY2xpY2spPVwiZGVsZXRlVHJhbnNhY3Rpb25MaW5lQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICA8aWNvbiBjbGFzcz1cImRlbGV0ZS1pY29uXCIgW2ljb25dPVwiaWNvbnMuQ2FuY2VsXCI+PC9pY29uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLWxpbmtcIlxyXG4gICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInREVMRVRFX1RSQU5TQUNUSU9OX0xJTkUnIHwgbG9jYWxpemU6ZmFsc2VcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLnByZXZpZXdcIilcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwcmV2aWV3OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBsaW5lKHZhbHVlOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSB7XHJcbiAgICB0aGlzLl9saW5lID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvY2FsQW1vdW50ID0gdGhpcy5fbGluZS5hbW91bnQ7XHJcbiAgICB0aGlzLmlzVGV4dCA9IHRoaXMuX2xpbmUuaXNUZXh0O1xyXG4gICAgdGhpcy5pc0FydGljbGUgPSB0aGlzLl9saW5lLmlzQXJ0aWNsZTtcclxuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRoaXMuX2xpbmUuaXNTZWxlY3RlZDtcclxuICAgIHRoaXMuX2xvYWRMaW5lSW1hZ2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbGluZSgpOiBUcmFuc2FjdGlvbkxpbmVJbmZvIHtcclxuICAgIHJldHVybiB0aGlzLl9saW5lO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHdhaXRpbmdGb3JVc2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzaWRlUGFuZWxCdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoVHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uc0NvbXBvbmVudClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uczogVHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uc0NvbXBvbmVudDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaXMtdGV4dFwiKVxyXG4gIHB1YmxpYyBpc1RleHQ6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmlzLWFydGljbGVcIilcclxuICBwdWJsaWMgaXNBcnRpY2xlOiBib29sZWFuO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5pcy1zZWxlY3RlZFwiKVxyXG4gIEBJbnB1dCgnc2VsZWN0ZWQnKVxyXG4gIHB1YmxpYyBpc1NlbGVjdGVkOiBib29sZWFuO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlT3ZlcihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIHB1YmxpYyBoYW5kbGVNb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2FsQW1vdW50OiBudW1iZXI7XHJcbiAgcHVibGljIGltYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0b2NrOiBTdG9ja1N0YXR1cyA9IFN0b2NrU3RhdHVzLkxvdztcclxuICBwdWJsaWMgbW91c2VPdmVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VMaW5lQW1vdW50KGFtb3VudDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2hhbmdlVHJhbnNhY3Rpb25MaW5lUXVhbnRpdHkodGhpcy5saW5lLnV1aWQsIGFtb3VudCkudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5pc1N1Y2Nlc3MpIHtcclxuICAgICAgICB0aGlzLmxvY2FsQW1vdW50ID0gdGhpcy5fbGluZS5hbW91bnQ7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIHRoaXMuX2hhbmRsZUxpbmUodmFsdWUpLnRoZW4oKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZVRyYW5zYWN0aW9uTGluZUNsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZGVsZXRlTGluZTogYm9vbGVhbiA9IGF3YWl0IHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd1llc05vKFwiXCIsIHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX1FVRVNUSU9OXCIpKTtcclxuICAgIGlmIChkZWxldGVMaW5lKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5kZWxldGVUcmFuc2FjdGlvbkxpbmUodGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCwgdGhpcy5saW5lLnV1aWQpLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAvLyB0aGlzLl9oYW5kbGVMaW5lKHZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlT3BlbkFydGljbGVUZXh0KHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zLnRleHRUb0VkaXQgPSB0ZXh0O1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zLnNob3dBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dTaWRlUGFuZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNpZGVQYW5lbEJ1dHRvbkNsaWNrZWQubmV4dCgpO1xyXG4gICAgdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfbG9hZExpbmVJbWFnZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmxpbmUgJiYgdGhpcy5saW5lLmlzQXJ0aWNsZSkge1xyXG4gICAgICB0aGlzLl9pbWFnZVNlcnZpY2UucmV0cmlldmVMaW5lSW1hZ2UodGhpcy5saW5lKS50aGVuKChpbWFnZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pbWFnZSA9IGltYWdlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHByaXZhdGUgYXN5bmMgX2NvbmZpcm1BY3Rpb24obGluZU9wZXJhdGlvblJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgIHRoaXMuY3VycmVudFJlYXNvbi5jb25maXJtYXRpb24gPSBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dZZXNObyhsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvbiwgXCIgXCIpO1xyXG4gIC8vICAgdGhpcy5zZXJ2aWNlLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbih0aGlzLmN1cnJlbnRSZWFzb24pXHJcbiAgLy8gICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XHJcbiAgLy8gICAgICAgdGhpcy5faGFuZGxlTGluZSh2YWx1ZSk7XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBhc3luYyBfc2hvd0luZm9ybWF0aW9uKGxpbmVPcGVyYXRpb25SZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgLy8gICBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dPa01vZGFsKGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uLCBcIiBcIik7XHJcbiAgLy8gICB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcclxuICAvLyAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcclxuICAvLyAgICAgICB0aGlzLl9oYW5kbGVMaW5lKHZhbHVlKTtcclxuICAvLyAgICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwcml2YXRlIGFzeW5jIF9oYW5kbGVMaW5lKGxpbmVPcGVyYXRpb25SZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgLy8gICBpZiAobGluZU9wZXJhdGlvblJlc3BvbnNlID09PSB1bmRlZmluZWQpIHtcclxuICAvLyAgICAgcmV0dXJuO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5jdXJyZW50UmVhc29uID0gbmV3IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QobGluZU9wZXJhdGlvblJlc3BvbnNlLmxpbmVVdWlkLFxyXG4gIC8vICAgICBsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvbiwgbGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb25UeXBlKTtcclxuICAvL1xyXG4gIC8vICAgc3dpdGNoIChsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvblR5cGUpIHtcclxuICAvLyAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5BQk9SVEVEOlxyXG4gIC8vICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNBTkNFTExFRDpcclxuICAvLyAgICAgICB0aGlzLmxvY2FsQW1vdW50ID0gdGhpcy5fbGluZS5hbW91bnQ7XHJcbiAgLy8gICAgICAgaWYgKGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uICE9PSBcIlVTRVJfREVDSVNJT05cIikge1xyXG4gIC8vICAgICAgICAgYXdhaXQgdGhpcy5fcHJvbXB0U2VydmljZS5zaG93Tm90aWZpY2F0aW9uKHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvbiksIFwiIFwiKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ09ORklSTUFUSU9OX05FRURFRDpcclxuICAvLyAgICAgICBhd2FpdCB0aGlzLl9jb25maXJtQWN0aW9uKGxpbmVPcGVyYXRpb25SZXNwb25zZSk7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9OX0NSSVRJQ0FMX0RJU0NPTlRJTlVBVElPTjpcclxuICAvLyAgICAgICBhd2FpdCB0aGlzLl9zaG93SW5mb3JtYXRpb24obGluZU9wZXJhdGlvblJlc3BvbnNlKTtcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5JTlZBTElEX0xPR0lTVElDUzpcclxuICAvLyAgICAgICB0aGlzLmxvY2FsQW1vdW50ID0gdGhpcy5fbGluZS5hbW91bnQ7XHJcbiAgLy8gICAgICAgYXdhaXQgdGhpcy5fcHJvbXB0U2VydmljZS5zaG93RXJyb3IodGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uKSwgXCIgXCIpO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTkU6XHJcbiAgLy8gICAgIGRlZmF1bHQ6XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG59XHJcbiJdfQ==
@@ -6,6 +6,7 @@ import { TransactionArticleTextModule } from "../shared/transaction-article-text
6
6
  import { TransactionArticleTextOverviewModule } from "../shared/transaction-article-text-overview/transaction-article-text-overview.module";
7
7
  import { CoreModule } from "../core/core.module";
8
8
  import { PipeModule } from "../../pipe/pipe.module";
9
+ import { TransactionLineActionButtonsModule } from "../transaction-line-action-buttons/transaction-line-action-buttons.module";
9
10
  export class TransactionLineModule {
10
11
  }
11
12
  TransactionLineModule.decorators = [
@@ -17,7 +18,8 @@ TransactionLineModule.decorators = [
17
18
  InputNumberPickerModule,
18
19
  TransactionArticleTextModule,
19
20
  TransactionArticleTextOverviewModule,
20
- PipeModule
21
+ PipeModule,
22
+ TransactionLineActionButtonsModule
21
23
  ],
22
24
  declarations: [
23
25
  TransactionLineComponent
@@ -27,4 +29,4 @@ TransactionLineModule.decorators = [
27
29
  ]
28
30
  },] }
29
31
  ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNoSCxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSxzRkFBc0YsQ0FBQztBQUMxSSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBbUJsRCxNQUFNLE9BQU8scUJBQXFCOzs7WUFqQmpDLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixVQUFVO29CQUNWLFlBQVk7b0JBQ1osdUJBQXVCO29CQUN2Qiw0QkFBNEI7b0JBQzVCLG9DQUFvQztvQkFDcEMsVUFBVTtpQkFDYjtnQkFDSCxZQUFZLEVBQUU7b0JBQ1osd0JBQXdCO2lCQUN6QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asd0JBQXdCO2lCQUN6QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVDb21wb25lbnR9IGZyb20gXCIuL3RyYW5zYWN0aW9uLWxpbmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJbnB1dE51bWJlclBpY2tlck1vZHVsZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVUZXh0TW9kdWxlfSBmcm9tIFwiLi4vc2hhcmVkL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQubW9kdWxlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3TW9kdWxlfSBmcm9tIFwiLi4vc2hhcmVkL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC1vdmVydmlldy90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXcubW9kdWxlXCI7XHJcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSBcIi4uL2NvcmUvY29yZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtQaXBlTW9kdWxlfSBmcm9tIFwiLi4vLi4vcGlwZS9waXBlLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQ29yZU1vZHVsZSxcclxuICAgICAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgSW5wdXROdW1iZXJQaWNrZXJNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE1vZHVsZSxcclxuICAgICAgICBUcmFuc2FjdGlvbkFydGljbGVUZXh0T3ZlcnZpZXdNb2R1bGUsXHJcbiAgICAgICAgUGlwZU1vZHVsZVxyXG4gICAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVHJhbnNhY3Rpb25MaW5lQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lTW9kdWxlIHt9XHJcbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNoSCxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSxzRkFBc0YsQ0FBQztBQUMxSSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFDTCxrQ0FBa0MsRUFDbkMsTUFBTSwyRUFBMkUsQ0FBQztBQW9CbkYsTUFBTSxPQUFPLHFCQUFxQjs7O1lBbEJqQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixZQUFZO29CQUNaLHVCQUF1QjtvQkFDdkIsNEJBQTRCO29CQUM1QixvQ0FBb0M7b0JBQ3BDLFVBQVU7b0JBQ1Ysa0NBQWtDO2lCQUNuQztnQkFDRCxZQUFZLEVBQUU7b0JBQ1osd0JBQXdCO2lCQUN6QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asd0JBQXdCO2lCQUN6QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVDb21wb25lbnR9IGZyb20gXCIuL3RyYW5zYWN0aW9uLWxpbmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJbnB1dE51bWJlclBpY2tlck1vZHVsZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVUZXh0TW9kdWxlfSBmcm9tIFwiLi4vc2hhcmVkL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQubW9kdWxlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3TW9kdWxlfSBmcm9tIFwiLi4vc2hhcmVkL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC1vdmVydmlldy90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXcubW9kdWxlXCI7XHJcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSBcIi4uL2NvcmUvY29yZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtQaXBlTW9kdWxlfSBmcm9tIFwiLi4vLi4vcGlwZS9waXBlLm1vZHVsZVwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnNNb2R1bGVcclxufSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9ucy90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgSW5wdXROdW1iZXJQaWNrZXJNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkFydGljbGVUZXh0TW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3TW9kdWxlLFxyXG4gICAgUGlwZU1vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnNNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgVHJhbnNhY3Rpb25MaW5lQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUcmFuc2FjdGlvbkxpbmVDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVNb2R1bGUge31cclxuIl19
@@ -0,0 +1,162 @@
1
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { TransactionService } from "../../service/transaction.service";
3
+ import { TransactionKind } from "@colijnit/transactionapi/build/enum/transaction-kind.enum";
4
+ import { Icon } from "../../enum/icon.enum";
5
+ import { DictionaryService } from "../../service/dictionary.service";
6
+ import { IconCacheService } from "../../service/icon-cache.service";
7
+ import { Direction } from "../../enum/direction.enum";
8
+ export class TransactionLineActionButtonsComponent {
9
+ constructor(iconCacheService, _transactionService, _dictionaryService) {
10
+ this.iconCacheService = iconCacheService;
11
+ this._transactionService = _transactionService;
12
+ this._dictionaryService = _dictionaryService;
13
+ this.icons = Icon;
14
+ this.alignDirection = Direction.Down;
15
+ this.waitingForUserAction = new EventEmitter();
16
+ this.sidePanelButtonClicked = new EventEmitter();
17
+ this.showActionButtons = false;
18
+ this.showActionButtonsDelayed = false;
19
+ this.showTransactionArticleText = false;
20
+ this.showTransactionArticleTextOverview = false;
21
+ }
22
+ showClass() {
23
+ return true;
24
+ }
25
+ ngOnInit() {
26
+ this.transactionKind = this._transactionService.currentTransaction.transactionInfo.transactionKind;
27
+ }
28
+ handleShowHideClick() {
29
+ this.showActionButtons = !this.showActionButtons;
30
+ setTimeout(() => {
31
+ this.showActionButtonsDelayed = !this.showActionButtonsDelayed;
32
+ }, 1);
33
+ }
34
+ handleTransactionArticleTextOverview() {
35
+ this.articleTextHeader = this._dictionaryService.get("TEXT_ARTICLE_BOUND", true, this.transactionLine.articleNumber);
36
+ this.textToEdit = undefined;
37
+ this._showArticleTextOverviewDialog();
38
+ this.showActionButtons = false;
39
+ this.showActionButtonsDelayed = false;
40
+ }
41
+ handleTransactionArticleText() {
42
+ this.articleTextHeader = this._dictionaryService.get("TEXT_ARTICLE_BOUND", true, this.transactionLine.articleNumber);
43
+ this.textToEdit = undefined;
44
+ this.showArticleTextDialog();
45
+ this.showActionButtons = false;
46
+ this.showActionButtonsDelayed = false;
47
+ }
48
+ handleShowSidePanel() {
49
+ this.sidePanelButtonClicked.next(this.transactionLine);
50
+ this.waitingForUserAction.next(true);
51
+ this.showActionButtons = false;
52
+ this.showActionButtonsDelayed = false;
53
+ }
54
+ showOverviewButton() {
55
+ return this.transactionKind === TransactionKind.PurchaseOrder ||
56
+ this.transactionKind === TransactionKind.SalesOrder;
57
+ }
58
+ showAddTextButton() {
59
+ return this.transactionKind === TransactionKind.PurchaseOrder ||
60
+ this.transactionKind === TransactionKind.SalesOrder;
61
+ }
62
+ showSidebarButton() {
63
+ return this.transactionKind === TransactionKind.PurchaseOrder ||
64
+ this.transactionKind === TransactionKind.SalesOrder;
65
+ }
66
+ saveTransactionArticleLineText(transactionAddTextLineRequest) {
67
+ this._transactionService.addTextLine(transactionAddTextLineRequest.showOnDocuments, transactionAddTextLineRequest.text, 0, true, transactionAddTextLineRequest.refArticleLineNr).then(() => {
68
+ this._hideArticleTextDialog();
69
+ });
70
+ }
71
+ closeTransactionArticleText(event) {
72
+ this._hideArticleTextDialog();
73
+ }
74
+ closeTransactionArticleTextOverview(event) {
75
+ this._hideArticleTextOverviewDialog();
76
+ }
77
+ showArticleTextDialog() {
78
+ this.showTransactionArticleText = true;
79
+ this.waitingForUserAction.next(true);
80
+ }
81
+ _hideArticleTextDialog() {
82
+ this.showTransactionArticleText = false;
83
+ this.waitingForUserAction.next(false);
84
+ }
85
+ _showArticleTextOverviewDialog() {
86
+ this.showTransactionArticleTextOverview = true;
87
+ this.waitingForUserAction.next(true);
88
+ }
89
+ _hideArticleTextOverviewDialog() {
90
+ this.showTransactionArticleTextOverview = false;
91
+ this.waitingForUserAction.next(false);
92
+ }
93
+ }
94
+ TransactionLineActionButtonsComponent.decorators = [
95
+ { type: Component, args: [{
96
+ selector: "co-transaction-line-action-buttons",
97
+ template: `
98
+ <div class="transaction-line-action-buttons-wrapper">
99
+ <div class="show-hide-button">
100
+ <icon [icon]="icons.ThickLines" (click)="handleShowHideClick()"></icon>
101
+ </div>
102
+
103
+ <div class="action-buttons-container" clickOutside
104
+ *ngIf="showActionButtons"
105
+ [ngClass]="alignDirection"
106
+ (clickOutside)="handleShowHideClick()">
107
+
108
+ <co-button *ngIf="showOverviewButton()"
109
+ class="transaction-line-overview-button circle"
110
+ [class.show]="showActionButtonsDelayed"
111
+ [iconData]="iconCacheService.getIcon(icons.Txt)"
112
+ (click)="handleTransactionArticleTextOverview()"></co-button>
113
+
114
+ <co-button *ngIf="showAddTextButton()"
115
+ class="transaction-line-add-text-button circle"
116
+ [class.show]="showActionButtonsDelayed"
117
+ [iconData]="iconCacheService.getIcon(icons.Txt)"
118
+ (click)="handleTransactionArticleText()"></co-button>
119
+
120
+ <co-button *ngIf="showSidebarButton()"
121
+ class="transaction-line-show-sidebar-button circle"
122
+ [class.show]="showActionButtonsDelayed"
123
+ [iconData]="iconCacheService.getIcon(icons.MasterDetail)"
124
+ (click)="handleShowSidePanel()"></co-button>
125
+ </div>
126
+ </div>
127
+
128
+ <co-transaction-article-text-overview *ngIf="showTransactionArticleTextOverview"
129
+ [header]="articleTextHeader | localize"
130
+ [transactionLine]="transactionLine"
131
+ (saveClick)="saveTransactionArticleLineText($event)"
132
+ (closeClick)="closeTransactionArticleTextOverview($event)"
133
+ (cancelClick)="closeTransactionArticleTextOverview($event)"
134
+ ></co-transaction-article-text-overview>
135
+
136
+ <co-transaction-article-text *ngIf="showTransactionArticleText"
137
+ [header]="articleTextHeader | localize"
138
+ [articleLineNr]="transactionLine.lineNr"
139
+ [articleRef]="transactionLine.articleNumber"
140
+ [transactionLine]="transactionLine"
141
+ [editText]="textToEdit"
142
+ (saveClick)="saveTransactionArticleLineText($event)"
143
+ (closeClick)="closeTransactionArticleText($event)"
144
+ (cancelClick)="closeTransactionArticleText($event)"
145
+ ></co-transaction-article-text>
146
+ `,
147
+ encapsulation: ViewEncapsulation.None
148
+ },] }
149
+ ];
150
+ TransactionLineActionButtonsComponent.ctorParameters = () => [
151
+ { type: IconCacheService },
152
+ { type: TransactionService },
153
+ { type: DictionaryService }
154
+ ];
155
+ TransactionLineActionButtonsComponent.propDecorators = {
156
+ transactionLine: [{ type: Input }],
157
+ alignDirection: [{ type: Input }],
158
+ waitingForUserAction: [{ type: Output }],
159
+ sidePanelButtonClicked: [{ type: Output }],
160
+ showClass: [{ type: HostBinding, args: ["class.co-transaction-line-action-buttons",] }]
161
+ };
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zL3RyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBMERwRCxNQUFNLE9BQU8scUNBQXFDO0lBNEJoRCxZQUNTLGdCQUFrQyxFQUNqQyxtQkFBdUMsRUFDdkMsa0JBQXFDO1FBRnRDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBOUIvQixVQUFLLEdBQWdCLElBQUksQ0FBQztRQU1uQyxtQkFBYyxHQUFjLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFHM0MseUJBQW9CLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFHMUUsMkJBQXNCLEdBQXNDLElB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGlyZWN0aW9ufSBmcm9tIFwiLi4vLi4vZW51bS9kaXJlY3Rpb24uZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYWRkLXRleHQtbGluZS1yZXF1ZXN0LmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zLXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNob3ctaGlkZS1idXR0b25cIj5cclxuICAgICAgICA8aWNvbiBbaWNvbl09XCJpY29ucy5UaGlja0xpbmVzXCIgKGNsaWNrKT1cImhhbmRsZVNob3dIaWRlQ2xpY2soKVwiPjwvaWNvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyXCIgY2xpY2tPdXRzaWRlXHJcbiAgICAgICAgICAgKm5nSWY9XCJzaG93QWN0aW9uQnV0dG9uc1wiXHJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwiYWxpZ25EaXJlY3Rpb25cIlxyXG4gICAgICAgICAgIChjbGlja091dHNpZGUpPVwiaGFuZGxlU2hvd0hpZGVDbGljaygpXCI+XHJcblxyXG4gICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJzaG93T3ZlcnZpZXdCdXR0b24oKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1vdmVydmlldy1idXR0b24gY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zaG93XT1cInNob3dBY3Rpb25CdXR0b25zRGVsYXllZFwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlR4dClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldygpXCI+PC9jby1idXR0b24+XHJcblxyXG4gICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJzaG93QWRkVGV4dEJ1dHRvbigpXCJcclxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1hZGQtdGV4dC1idXR0b24gY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zaG93XT1cInNob3dBY3Rpb25CdXR0b25zRGVsYXllZFwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlR4dClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHQoKVwiPjwvY28tYnV0dG9uPlxyXG5cclxuICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwic2hvd1NpZGViYXJCdXR0b24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2hvdy1zaWRlYmFyLWJ1dHRvbiBjaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzLnNob3ddPVwic2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuTWFzdGVyRGV0YWlsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2hvd1NpZGVQYW5lbCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dC1vdmVydmlldyAqbmdJZj1cInNob3dUcmFuc2FjdGlvbkFydGljbGVUZXh0T3ZlcnZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyXT1cImFydGljbGVUZXh0SGVhZGVyIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZVRyYW5zYWN0aW9uQXJ0aWNsZUxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3KCRldmVudClcIlxyXG4gICAgPjwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3PlxyXG5cclxuICAgIDxjby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQgKm5nSWY9XCJzaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiYXJ0aWNsZVRleHRIZWFkZXIgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcnRpY2xlTGluZU5yXT1cInRyYW5zYWN0aW9uTGluZS5saW5lTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZVJlZl09XCJ0cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRUZXh0XT1cInRleHRUb0VkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZUNsaWNrKT1cInNhdmVUcmFuc2FjdGlvbkFydGljbGVMaW5lVGV4dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvbkFydGljbGVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvbkFydGljbGVUZXh0KCRldmVudClcIlxyXG4gICAgPjwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWxpZ25EaXJlY3Rpb246IERpcmVjdGlvbiA9IERpcmVjdGlvbi5Eb3duO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgd2FpdGluZ0ZvclVzZXJBY3Rpb246IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNpZGVQYW5lbEJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbkxpbmVJbmZvPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25MaW5lSW5mbz4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9uc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QWN0aW9uQnV0dG9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93QWN0aW9uQnV0dG9uc0RlbGF5ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25LaW5kOiBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHNob3dUcmFuc2FjdGlvbkFydGljbGVUZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dUcmFuc2FjdGlvbkFydGljbGVUZXh0T3ZlcnZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYXJ0aWNsZVRleHRIZWFkZXI6IHN0cmluZztcclxuICBwdWJsaWMgdGV4dFRvRWRpdDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uS2luZCA9IHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uS2luZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93SGlkZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QWN0aW9uQnV0dG9ucyA9ICF0aGlzLnNob3dBY3Rpb25CdXR0b25zO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkID0gIXRoaXMuc2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkO1xyXG4gICAgfSwgMSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVGV4dEhlYWRlciA9IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIlRFWFRfQVJUSUNMRV9CT1VORFwiLCB0cnVlLCB0aGlzLnRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTnVtYmVyKTtcclxuICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuX3Nob3dBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICB0aGlzLnNob3dBY3Rpb25CdXR0b25zID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dBY3Rpb25CdXR0b25zRGVsYXllZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVUZXh0SGVhZGVyID0gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiVEVYVF9BUlRJQ0xFX0JPVU5EXCIsIHRydWUsIHRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVOdW1iZXIpO1xyXG4gICAgdGhpcy50ZXh0VG9FZGl0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHREaWFsb2coKTtcclxuICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnMgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd1NpZGVQYW5lbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZC5uZXh0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnMgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd092ZXJ2aWV3QnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlciB8fFxyXG4gICAgdGhpcy50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBZGRUZXh0QnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlciB8fFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uS2luZCA9PT0gVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1NpZGViYXJCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyIHx8XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlVHJhbnNhY3Rpb25BcnRpY2xlTGluZVRleHQodHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3Q6IFRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2UuYWRkVGV4dExpbmUoXHJcbiAgICAgIHRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgdHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QudGV4dCxcclxuICAgICAgMCxcclxuICAgICAgdHJ1ZSxcclxuICAgICAgdHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QucmVmQXJ0aWNsZUxpbmVOcikudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VUcmFuc2FjdGlvbkFydGljbGVUZXh0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5faGlkZUFydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dUcmFuc2FjdGlvbkFydGljbGVUZXh0ID0gdHJ1ZTtcclxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHQgPSBmYWxzZTtcclxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zaG93QXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldyA9IHRydWU7XHJcbiAgICB0aGlzLndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KGZhbHNlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,30 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { CoreModule } from "../core/core.module";
4
+ import { TransactionLineActionButtonsComponent } from "./transaction-line-action-buttons.component";
5
+ import { ButtonModule, ClickoutsideModule } from "@colijnit/corecomponents_v12";
6
+ import { TransactionArticleTextOverviewModule } from "../shared/transaction-article-text-overview/transaction-article-text-overview.module";
7
+ import { TransactionArticleTextModule } from "../shared/transaction-article-text/transaction-article-text.module";
8
+ import { PipeModule } from "../../pipe/pipe.module";
9
+ export class TransactionLineActionButtonsModule {
10
+ }
11
+ TransactionLineActionButtonsModule.decorators = [
12
+ { type: NgModule, args: [{
13
+ imports: [
14
+ CommonModule,
15
+ CoreModule,
16
+ ButtonModule,
17
+ ClickoutsideModule,
18
+ TransactionArticleTextOverviewModule,
19
+ TransactionArticleTextModule,
20
+ PipeModule
21
+ ],
22
+ declarations: [
23
+ TransactionLineActionButtonsComponent
24
+ ],
25
+ exports: [
26
+ TransactionLineActionButtonsComponent
27
+ ]
28
+ },] }
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zL3RyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNsRyxPQUFPLEVBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUNMLG9DQUFvQyxFQUNyQyxNQUFNLHNGQUFzRixDQUFDO0FBQzlGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ2hILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQW1CbEQsTUFBTSxPQUFPLGtDQUFrQzs7O1lBakI5QyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixZQUFZO29CQUNaLGtCQUFrQjtvQkFDbEIsb0NBQW9DO29CQUNwQyw0QkFBNEI7b0JBQzVCLFVBQVU7aUJBQ1g7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHFDQUFxQztpQkFDdEM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHFDQUFxQztpQkFDdEM7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSBcIi4uL2NvcmUvY29yZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50fSBmcm9tIFwiLi90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0J1dHRvbk1vZHVsZSwgQ2xpY2tvdXRzaWRlTW9kdWxlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlld01vZHVsZVxyXG59IGZyb20gXCIuLi9zaGFyZWQvdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3L3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC1vdmVydmlldy5tb2R1bGVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVUZXh0TW9kdWxlfSBmcm9tIFwiLi4vc2hhcmVkL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQubW9kdWxlXCI7XHJcbmltcG9ydCB7UGlwZU1vZHVsZX0gZnJvbSBcIi4uLy4uL3BpcGUvcGlwZS5tb2R1bGVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIENsaWNrb3V0c2lkZU1vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlld01vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uQXJ0aWNsZVRleHRNb2R1bGUsXHJcbiAgICBQaXBlTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnNDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnNDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -28,6 +28,7 @@ TransactionLineSidePanelComponent.decorators = [
28
28
  { type: Component, args: [{
29
29
  selector: "co-transaction-line-side-panel",
30
30
  template: `
31
+ <icon (click)="handleCancelClick($event)" [icon]="icons.Cancel" class="close-button"></icon>
31
32
  <div class="transaction-line-side-panel-header">
32
33
  <div class="transaction-line-side-panel-header-item">
33
34
  <span class="side-panel-header-label" [textContent]="'ARTICLE_NR'| localize"></span>
@@ -50,7 +51,6 @@ TransactionLineSidePanelComponent.decorators = [
50
51
  <span class="side-panel-header-field"
51
52
  [textContent]="activeCategory === categories.PurchaseOrderReceivedGoods ? quantityToReceive : (transactionLine.price | priceDisplay)"></span>
52
53
  </div>
53
- <icon (click)="handleCancelClick($event)" [icon]="icons.Cancel" class="close-button"></icon>
54
54
  </div>
55
55
  <div class="transaction-line-side-panel-nav-bar">
56
56
  <co-transaction-button-bar
@@ -92,4 +92,4 @@ TransactionLineSidePanelComponent.propDecorators = {
92
92
  cancelClick: [{ type: Output }],
93
93
  showClass: [{ type: HostBinding, args: ["class.co-transaction-line-side-panel",] }]
94
94
  };
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDMUYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUF1RGhGLE1BQU0sT0FBTyxpQ0FBaUM7SUEyQjVDLFlBQ1MsV0FBNkIsRUFDNUIsUUFBNEIsRUFDNUIsd0JBQWlEO1FBRmxELGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUM1Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBN0IzQyxVQUFLLEdBQWdCLElBQUksQ0FBQztRQUMxQixlQUFVLEdBQW1DLHVCQUF1QixDQUFDO1FBQ3JFLHFCQUFnQixHQUEyQixlQUFlLENBQUM7UUFNcEUsb0JBQWUsR0FBd0IsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBU2pFLGdCQUFXLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7SUFjOUUsQ0FBQztJQVhNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFXTSxpQkFBaUIsQ0FBQyxLQUFpQjtRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7WUF6RkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQ0FBZ0M7Z0JBQzFDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0RUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUExRE8sZ0JBQWdCO1lBR2hCLGtCQUFrQjtZQUNsQix1QkFBdUI7Ozs4QkE0RDVCLEtBQUs7OEJBR0wsS0FBSzs0QkFHTCxLQUFLOzZCQUdMLEtBQUs7MEJBR0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gXCIuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWxcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1oZWFkZXItaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2lkZS1wYW5lbC1oZWFkZXItbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0FSVElDTEVfTlInfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNpZGUtcGFuZWwtaGVhZGVyLWZpZWxkXCIgW3RleHRDb250ZW50XT1cInRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTnVtYmVyXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZGUtcGFuZWwtaGVhZGVyLWRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1oZWFkZXItaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2lkZS1wYW5lbC1oZWFkZXItbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0RFU0NSSVBUSU9OJ3wgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzaWRlLXBhbmVsLWhlYWRlci1maWVsZFwiIFt0ZXh0Q29udGVudF09XCJ0cmFuc2FjdGlvbkxpbmUuZ29vZERlc2NyaXB0aW9uXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZGUtcGFuZWwtaGVhZGVyLWRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1oZWFkZXItaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2lkZS1wYW5lbC1oZWFkZXItbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0FNT1VOVCd8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2lkZS1wYW5lbC1oZWFkZXItZmllbGRcIiBbdGV4dENvbnRlbnRdPVwidHJhbnNhY3Rpb25MaW5lLmFtb3VudFwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXBhbmVsLWhlYWRlci1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtaGVhZGVyLWl0ZW1cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNpZGUtcGFuZWwtaGVhZGVyLWxhYmVsXCJcclxuICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuUHVyY2hhc2VPcmRlclJlY2VpdmVkR29vZHMgPyAoJ1RPX1JFUE9SVF9JTicgfCBsb2NhbGl6ZSkgOiAoJ1BSSUNFJyB8IGxvY2FsaXplKVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNpZGUtcGFuZWwtaGVhZGVyLWZpZWxkXCJcclxuICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuUHVyY2hhc2VPcmRlclJlY2VpdmVkR29vZHMgPyBxdWFudGl0eVRvUmVjZWl2ZSA6ICh0cmFuc2FjdGlvbkxpbmUucHJpY2UgfCBwcmljZURpc3BsYXkpXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGljb24gKGNsaWNrKT1cImhhbmRsZUNhbmNlbENsaWNrKCRldmVudClcIiBbaWNvbl09XCJpY29ucy5DYW5jZWxcIiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiPjwvaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1uYXYtYmFyXCI+XHJcbiAgICAgIDxjby10cmFuc2FjdGlvbi1idXR0b24tYmFyXHJcbiAgICAgICAgW3RyYW5zYWN0aW9uVHlwZV09XCJ0cmFuc2FjdGlvblR5cGVcIlxyXG4gICAgICAgIChidXR0b25DbGlja2VkKT1cImFjdGl2ZUNhdGVnb3J5ID0gJGV2ZW50LmNhdGVnb3J5XCJcclxuICAgICAgPjwvY28tdHJhbnNhY3Rpb24tYnV0dG9uLWJhcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1jb250ZW50XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInRyYW5zYWN0aW9uVHlwZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRyYW5zYWN0aW9uVHlwZXMuUHVyY2hhc2VPcmRlclwiPlxyXG4gICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1wdXJjaGFzZVxyXG4gICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgIFt0cmFuc2FjdGlvbklkXT1cInRyYW5zYWN0aW9uSWRcIlxyXG4gICAgICAgICAgICBbY2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAocXVhbnRpdHlUb1JlY2VpdmVDaGFuZ2UpPVwicXVhbnRpdHlUb1JlY2VpdmUgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLXB1cmNoYXNlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtcHVyY2hhc2VcclxuICAgICAgICAgICAgW2NhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1wdXJjaGFzZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZVNpZGVQYW5lbENvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3JpZXM6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvblR5cGVzOiB0eXBlb2YgVHJhbnNhY3Rpb25LaW5kID0gVHJhbnNhY3Rpb25LaW5kO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvID0gbmV3IFRyYW5zYWN0aW9uTGluZUluZm8oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25JZDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjYW5jZWxDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWxcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcXVhbnRpdHlUb1JlY2VpdmU6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDYW5jZWxDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYW5jZWxDbGljay5uZXh0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDMUYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUF1RGhGLE1BQU0sT0FBTyxpQ0FBaUM7SUEyQjVDLFlBQ1MsV0FBNkIsRUFDNUIsUUFBNEIsRUFDNUIsd0JBQWlEO1FBRmxELGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUM1Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBN0IzQyxVQUFLLEdBQWdCLElBQUksQ0FBQztRQUMxQixlQUFVLEdBQW1DLHVCQUF1QixDQUFDO1FBQ3JFLHFCQUFnQixHQUEyQixlQUFlLENBQUM7UUFNcEUsb0JBQWUsR0FBd0IsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBU2pFLGdCQUFXLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7SUFjOUUsQ0FBQztJQVhNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFXTSxpQkFBaUIsQ0FBQyxLQUFpQjtRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7WUF6RkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQ0FBZ0M7Z0JBQzFDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0RUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUExRE8sZ0JBQWdCO1lBR2hCLGtCQUFrQjtZQUNsQix1QkFBdUI7Ozs4QkE0RDVCLEtBQUs7OEJBR0wsS0FBSzs0QkFHTCxLQUFLOzZCQUdMLEtBQUs7MEJBR0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gXCIuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWxcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGljb24gKGNsaWNrKT1cImhhbmRsZUNhbmNlbENsaWNrKCRldmVudClcIiBbaWNvbl09XCJpY29ucy5DYW5jZWxcIiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiPjwvaWNvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtaGVhZGVyLWl0ZW1cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNpZGUtcGFuZWwtaGVhZGVyLWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidBUlRJQ0xFX05SJ3wgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzaWRlLXBhbmVsLWhlYWRlci1maWVsZFwiIFt0ZXh0Q29udGVudF09XCJ0cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZU51bWJlclwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXBhbmVsLWhlYWRlci1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtaGVhZGVyLWl0ZW1cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNpZGUtcGFuZWwtaGVhZGVyLWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidERVNDUklQVElPTid8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2lkZS1wYW5lbC1oZWFkZXItZmllbGRcIiBbdGV4dENvbnRlbnRdPVwidHJhbnNhY3Rpb25MaW5lLmdvb2REZXNjcmlwdGlvblwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXBhbmVsLWhlYWRlci1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtaGVhZGVyLWl0ZW1cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNpZGUtcGFuZWwtaGVhZGVyLWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidBTU9VTlQnfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNpZGUtcGFuZWwtaGVhZGVyLWZpZWxkXCIgW3RleHRDb250ZW50XT1cInRyYW5zYWN0aW9uTGluZS5hbW91bnRcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZS1wYW5lbC1oZWFkZXItZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLWhlYWRlci1pdGVtXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzaWRlLXBhbmVsLWhlYWRlci1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlB1cmNoYXNlT3JkZXJSZWNlaXZlZEdvb2RzID8gKCdUT19SRVBPUlRfSU4nIHwgbG9jYWxpemUpIDogKCdQUklDRScgfCBsb2NhbGl6ZSlcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzaWRlLXBhbmVsLWhlYWRlci1maWVsZFwiXHJcbiAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlB1cmNoYXNlT3JkZXJSZWNlaXZlZEdvb2RzID8gcXVhbnRpdHlUb1JlY2VpdmUgOiAodHJhbnNhY3Rpb25MaW5lLnByaWNlIHwgcHJpY2VEaXNwbGF5KVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtbmF2LWJhclwiPlxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24tYnV0dG9uLWJhclxyXG4gICAgICAgIFt0cmFuc2FjdGlvblR5cGVdPVwidHJhbnNhY3Rpb25UeXBlXCJcclxuICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJhY3RpdmVDYXRlZ29yeSA9ICRldmVudC5jYXRlZ29yeVwiXHJcbiAgICAgID48L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbi1iYXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0cmFuc2FjdGlvblR5cGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0cmFuc2FjdGlvblR5cGVzLlB1cmNoYXNlT3JkZXJcIj5cclxuICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtcHVyY2hhc2VcclxuICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICBbdHJhbnNhY3Rpb25JZF09XCJ0cmFuc2FjdGlvbklkXCJcclxuICAgICAgICAgICAgW2NhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgICAgKHF1YW50aXR5VG9SZWNlaXZlQ2hhbmdlKT1cInF1YW50aXR5VG9SZWNlaXZlID0gJGV2ZW50XCJcclxuICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC1wdXJjaGFzZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLXB1cmNoYXNlXHJcbiAgICAgICAgICAgIFtjYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwtcHVyY2hhc2U+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSBjYXRlZ29yaWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25UeXBlczogdHlwZW9mIFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IG5ldyBUcmFuc2FjdGlvbkxpbmVJbmZvKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uSWQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWN0aXZlQ2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2FuY2VsQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHF1YW50aXR5VG9SZWNlaXZlOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2FuY2VsQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FuY2VsQ2xpY2submV4dChldmVudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==