@colijnit/transaction 12.1.19 → 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.
- package/bundles/colijnit-transaction.umd.js +488 -252
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +115 -111
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +116 -112
- package/esm2015/lib/assets/dictionary/text.properties.js +9 -1
- package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.js +5 -2
- package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.js +3 -1
- package/esm2015/lib/component/transaction-line/transaction-line.component.js +16 -112
- package/esm2015/lib/component/transaction-line/transaction-line.module.js +4 -2
- package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.js +162 -0
- package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.js +30 -0
- package/esm2015/lib/component/transaction-search/service/filter-request.service.js +1 -1
- package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +11 -1
- package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter.component.js +6 -2
- package/esm2015/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.js +1 -1
- package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.js +1 -1
- package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.module.js +1 -1
- package/esm2015/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.js +1 -1
- package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.js +86 -0
- package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.js +26 -0
- package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.js +120 -0
- package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.js +26 -0
- package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +49 -25
- package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +9 -5
- package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.js +77 -0
- package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.js +28 -0
- package/esm2015/lib/component/transaction-search/transaction-search.component.js +37 -9
- package/esm2015/lib/enum/direction.enum.js +9 -0
- package/esm2015/lib/enum/icon.enum.js +3 -1
- package/esm2015/lib/enum/search-view-mode.enum.js +7 -0
- package/esm2015/lib/model/icon-svg.js +3 -1
- package/fesm2015/colijnit-transaction.js +478 -167
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/_layout.scss +0 -0
- package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/_material-definition.scss +0 -0
- package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/_theme.scss +0 -0
- package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/material.scss +0 -0
- package/lib/component/tile/style/_material-definition.scss +2 -1
- package/lib/component/transaction-grid/transaction-base-grid/style/_layout.scss +4 -0
- package/lib/component/transaction-line/style/_layout.scss +0 -47
- package/lib/component/transaction-line/style/_theme.scss +0 -17
- package/lib/component/transaction-line/transaction-line.component.d.ts +3 -17
- package/lib/component/transaction-line-action-buttons/style/_layout.scss +106 -0
- package/lib/component/transaction-line-action-buttons/style/_material-definition.scss +7 -0
- package/lib/component/transaction-line-action-buttons/style/_theme.scss +7 -0
- package/lib/component/transaction-line-action-buttons/style/material.scss +3 -0
- package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.d.ts +43 -0
- package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.d.ts +2 -0
- package/lib/component/transaction-search/service/transaction-search.service.d.ts +2 -0
- package/lib/component/transaction-search/style/_layout.scss +36 -18
- package/lib/component/transaction-search/style/_material-definition.scss +31 -14
- package/lib/component/transaction-search/style/_theme.scss +4 -0
- package/lib/component/transaction-search/style/material.scss +2 -1
- package/lib/component/transaction-search/transaction-filter/transaction-filter.component.d.ts +3 -0
- package/lib/component/transaction-search/transaction-filter-categories/style/_layout.scss +8 -8
- package/lib/component/transaction-search/transaction-filter-categories/style/_theme.scss +3 -3
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_layout.scss +6 -0
- package/lib/component/{transaction-search-grid → transaction-search/transaction-search-grid/transaction-search-sales-order-grid}/style/_material-definition.scss +0 -0
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_theme.scss +6 -0
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/material.scss +7 -0
- 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
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.d.ts +2 -0
- package/lib/component/transaction-search/transaction-search-header/style/_layout.scss +8 -0
- package/lib/component/transaction-search/{transaction-tile → transaction-search-header}/style/_material-definition.scss +0 -0
- package/lib/component/transaction-search/transaction-search-header/style/_theme.scss +4 -0
- package/lib/component/transaction-search/transaction-search-header/style/material.scss +3 -0
- package/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.d.ts +32 -0
- package/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.d.ts +2 -0
- package/lib/component/transaction-search/transaction-search-result/style/_layout.scss +84 -13
- package/lib/component/transaction-search/transaction-search-result/style/_theme.scss +1 -1
- package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +14 -6
- package/lib/component/transaction-search/{transaction-tile → transaction-search-tile/transaction-search-sales-order-tile}/style/_layout.scss +2 -4
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_material-definition.scss +0 -0
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_theme.scss +48 -0
- package/lib/component/transaction-search/{transaction-tile → transaction-search-tile/transaction-search-sales-order-tile}/style/material.scss +0 -0
- 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
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.d.ts +2 -0
- package/lib/component/transaction-search/transaction-search.component.d.ts +8 -1
- package/lib/enum/direction.enum.d.ts +6 -0
- package/lib/enum/icon.enum.d.ts +2 -0
- package/lib/enum/search-view-mode.enum.d.ts +4 -0
- package/package.json +1 -1
- package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.component.js +0 -77
- package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.module.js +0 -28
- package/esm2015/lib/component/transaction-search-grid/transaction-search-grid.component.js +0 -86
- package/esm2015/lib/component/transaction-search-grid/transaction-search-grid.module.js +0 -26
- package/lib/component/transaction-search/transaction-tile/style/_theme.scss +0 -46
- package/lib/component/transaction-search/transaction-tile/transaction-tile.module.d.ts +0 -2
- package/lib/component/transaction-search-grid/style/_layout.scss +0 -6
- package/lib/component/transaction-search-grid/style/_theme.scss +0 -6
- package/lib/component/transaction-search-grid/style/material.scss +0 -7
- 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.
|
|
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-
|
|
214
|
-
|
|
215
|
-
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFnR2hGLE1BQU0sT0FBTyx3QkFBd0I7SUFnRW5DLFlBQ1MsT0FBMkIsRUFDM0IsZ0JBQWtDLEVBQ2pDLGNBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxhQUFzQztRQUp2QyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBcEVoQyxVQUFLLEdBQWdCLElBQUksQ0FBQztRQUluQyxZQUFPLEdB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QUVNLG1CQUFtQixDQUFDLEtBQWlCO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OztZQTNTRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlGVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBdkdPLGtCQUFrQjtZQUlsQixnQkFBZ0I7WUFFaEIsYUFBYTtZQUxiLGlCQUFpQjtZQU9qQix1QkFBdUI7OztzQkFtRzVCLFdBQVcsU0FBQyxlQUFlLGNBQzNCLEtBQUs7bUJBR0wsS0FBSzttQ0FjTCxNQUFNO3FDQUdOLE1BQU07cUJBR04sV0FBVyxTQUFDLGVBQWU7d0JBRzNCLFdBQVcsU0FBQyxrQkFBa0I7eUJBRzlCLFdBQVcsU0FBQyxtQkFBbUIsY0FDL0IsS0FBSyxTQUFDLFVBQVU7d0JBR2hCLFdBQVcsU0FBQywyQkFBMkI7OEJBS3ZDLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7K0JBS3BDLFlBQVksU0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVmY29kZS9zdG9jay1zdGF0dXMuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtMaW5lT3BlcmF0aW9uUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tcmVzcG9uc2UuYm9cIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtdGV4dC1saW5lLXJlcXVlc3QuYm9cIjtcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQge1Jlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmUuaXNBcnRpY2xlXCI+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,
|
|
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=
|
|
@@ -99,4 +99,4 @@ FilterRequestService.ctorParameters = () => [
|
|
|
99
99
|
{ type: TransactionSearchService },
|
|
100
100
|
{ type: TransactionService }
|
|
101
101
|
];
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJlcXVlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC9zZXJ2aWNlL2ZpbHRlci1yZXF1ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUt4RSxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1MsYUFBdUMsRUFDdEMsbUJBQXVDO1FBRHhDLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN0Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO0lBQzVDLENBQUM7SUFFQyw4QkFBOEIsQ0FBQyxVQUFpQyxFQUFFLFNBQWlCO1FBQ3hGLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRU0sOEJBQThCLENBQUMsVUFBaUMsRUFBRSxTQUFpQjtRQUN4RixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsbUNBQW1DLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELDhEQUE4RDtJQUN2RCxvQ0FBb0MsQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDMUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3RELENBQUM7SUFFRCw4REFBOEQ7SUFDdkQscUNBQXFDLENBQUMsS0FBYSxFQUFFLFNBQWlC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WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRmlsdGVySXRlbVZpZXdtb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbC9maWx0ZXItaXRlbS52aWV3bW9kZWxcIjtcclxuaW1wb3J0IHsgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UgfSBmcm9tIFwiLi90cmFuc2FjdGlvbi1zZWFyY2guc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJSZXF1ZXN0U2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNlYXJjaFNlcnZpY2U6IFRyYW5zYWN0aW9uU2VhcmNoU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ29sbGVjdGlvbkNoYW5nZUZvclJhbmdlKGNvbGxlY3Rpb246IEZpbHRlckl0ZW1WaWV3bW9kZWxbXSwgbW9kZWxOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0W21vZGVsTmFtZV0gPSB0aGlzLl9nZXRGaWx0ZXJSZXF1ZXN0Rm9yQ29sbGVjdGlvblJhbmdlKGNvbGxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNvbGxlY3Rpb25DaGFuZ2VGb3JBcnJheShjb2xsZWN0aW9uOiBGaWx0ZXJJdGVtVmlld21vZGVsW10sIG1vZGVsTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoUmVxdWVzdFttb2RlbE5hbWVdID0gdGhpcy5fZ2V0RmlsdGVyUmVxdWVzdEZvckNvbGxlY3Rpb25BcnJheShjb2xsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIC8vdG9kbzogdGlqZGVsaWprIHRvdGRhdCBmaWx0ZXItaXRlbSBzaW5nbGUgc2VsZWN0IG9uZGVyc3RldW50XHJcbiAgcHVibGljIGhhbmRsZUNvbGxlY3Rpb25DaGFuZ2VGb3JTaW5nbGVWYWx1ZSh2YWx1ZTogc3RyaW5nLCBtb2RlbE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3RbbW9kZWxOYW1lXSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy90b2RvOiB0aWpkZWxpamsgdG90ZGF0IGZpbHRlci1pdGVtIHNpbmdsZSBzZWxlY3Qgb25kZXJzdGV1bnRcclxuICBwdWJsaWMgaGFuZGxlQ29sbGVjdGlvbkNoYW5nZUZvclNpbmdsZU51bWJlcih2YWx1ZTogbnVtYmVyLCBtb2RlbE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3RbbW9kZWxOYW1lXSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNoZWNrYm94VmFsdWVDaGFuZ2VGb3JTdHJpbmcodmFsdWU6IGJvb2xlYW4sIG1vZGVsTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoUmVxdWVzdFttb2RlbE5hbWVdID0gdGhpcy5fZ2V0RmlsdGVyUmVxdWVzdEZvckJvb2xlYW5Ub1N0cmluZyh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2hlY2tib3hWYWx1ZUNoYW5nZUZvck51bWJlcih2YWx1ZTogYm9vbGVhbiwgbW9kZWxOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0W21vZGVsTmFtZV0gPSB2YWx1ZSA/IDEgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURhdGVSYW5nZUNoYW5nZShkYXRlczogRGF0ZVtdLCBtb2RlbE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKGRhdGVzKSB7XHJcbiAgICAgIGxldCBzdGFydERhdGUgPSBkYXRlc1swXTtcclxuICAgICAgbGV0IGVuZERhdGUgPSBkYXRlc1sxXTtcclxuXHJcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0W21vZGVsTmFtZV0gPSB0aGlzLl9nZXRGaWx0ZXJSZXF1ZXN0Rm9yRGF0ZVJhbmdlKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RGF0ZUZyb21GaWx0ZXJSZXF1ZXN0UmFuZ2UoZmlsdGVyUmVxdWVzdFJhbmdlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBEYXRlIHtcclxuICAgIGlmIChmaWx0ZXJSZXF1ZXN0UmFuZ2UpIHtcclxuXHJcbiAgICAgIGNvbnN0IGRhdGVQYXR0ZXJuID0gbmV3IFJlZ0V4cCgnXFxcXGR7Mn1cXFxcLVxcXFxkezJ9XFxcXC1cXFxcZHs0fScpO1xyXG4gICAgICBsZXQgZGF0ZVN0cmluZyA9IGZpbHRlclJlcXVlc3RSYW5nZVxyXG4gICAgICAgIC5zcGxpdCgnLCcpW2luZGV4XVxyXG4gICAgICAgIC5tYXRjaChkYXRlUGF0dGVybilbMF07XHJcblxyXG4gICAgICBjb25zdCBkYXkgPSBOdW1iZXIoZGF0ZVN0cmluZy5tYXRjaCgnXlxcXFxkezJ9JylbMF0pO1xyXG4gICAgICBjb25zdCBtb250aCA9IE51bWJlcihkYXRlU3RyaW5nLm1hdGNoKCcoPzw9XFxcXC0pKFxcXFxkezJ9KSg/PVxcXFwtKScpWzBdKS0xO1xyXG4gICAgICBjb25zdCB5ZWFyID0gTnVtYmVyKGRhdGVTdHJpbmcubWF0Y2goJ1xcXFxkezR9JylbMF0pO1xyXG5cclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0RmlsdGVyUmVxdWVzdEZvckNvbGxlY3Rpb25SYW5nZShjb2xsZWN0aW9uOiBGaWx0ZXJJdGVtVmlld21vZGVsW10pOiBzdHJpbmcge1xyXG4gICAgbGV0IGZpbHRlclJlcXVlc3Q6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIGNvbGxlY3Rpb24/LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmNoZWNrZWQpIHtcclxuICAgICAgICBjb25zdCBmb3JtYXR0ZWRSZXF1ZXN0ID0gYD89XFwnJHtpdGVtLmNvZGV9XFwnYDtcclxuXHJcbiAgICAgICAgZmlsdGVyUmVxdWVzdCArPSAoZmlsdGVyUmVxdWVzdCA/ICcsJyA6ICcnKSArIGAke2Zvcm1hdHRlZFJlcXVlc3R9YDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZmlsdGVyUmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldEZpbHRlclJlcXVlc3RGb3JCb29sZWFuVG9TdHJpbmcodmFsdWU6IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgbGV0IGZpbHRlclJlcXVlc3Q6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIGlmICh2YWx1ZSl7XHJcbiAgICAgIGZpbHRlclJlcXVlc3QgPSBcIj89J0onXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0ID0gXCI/PSdOJ1wiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmaWx0ZXJSZXF1ZXN0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0RmlsdGVyUmVxdWVzdEZvckNvbGxlY3Rpb25BcnJheShjb2xsZWN0aW9uOiBGaWx0ZXJJdGVtVmlld21vZGVsW10pOiBzdHJpbmdbXSB7XHJcbiAgICBsZXQgZmlsdGVyUmVxdWVzdDogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBjb2xsZWN0aW9uPy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoaXRlbS5jaGVja2VkKSB7XHJcbiAgICAgICAgZmlsdGVyUmVxdWVzdC5wdXNoKGl0ZW0uY29kZS50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gZmlsdGVyUmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldEZpbHRlclJlcXVlc3RGb3JEYXRlUmFuZ2Uoc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHN0YXJ0RGF0ZVJlcXVlc3QgPSBzdGFydERhdGUgPyB0aGlzLl9mb3JtYXREYXRlVG9TdHJpbmcoc3RhcnREYXRlKSA6ICcnO1xyXG4gICAgY29uc3QgZW5kRGF0ZVJlcXVlc3QgPSBlbmREYXRlID8gdGhpcy5fZm9ybWF0RGF0ZVRvU3RyaW5nKGVuZERhdGUpIDogJyc7XHJcblxyXG4gICAgcmV0dXJuIGA/Pj1cXCcke3N0YXJ0RGF0ZVJlcXVlc3R9XFwnJiA/PD1cXCcke2VuZERhdGVSZXF1ZXN0fVxcJ2A7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9mb3JtYXREYXRlVG9TdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgZGF5ID0gZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgbGV0IG1vbnRoID0gKGRhdGUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGxldCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgIHJldHVybiBgJHtkYXl9LSR7bW9udGh9LSR7eWVhcn1gO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJlcXVlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC9zZXJ2aWNlL2ZpbHRlci1yZXF1ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUt0RSxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1MsYUFBdUMsRUFDdEMsbUJBQXVDO1FBRHhDLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN0Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO0lBQzVDLENBQUM7SUFFQyw4QkFBOEIsQ0FBQyxVQUFpQyxFQUFFLFNBQWlCO1FBQ3hGLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRU0sOEJBQThCLENBQUMsVUFBaUMsRUFBRSxTQUFpQjtRQUN4RixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsbUNBQW1DLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELDhEQUE4RDtJQUN2RCxvQ0FBb0MsQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDMUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3RELENBQUM7SUFFRCw4REFBOEQ7SUFDdkQscUNBQXFDLENBQUMsS0FBYSxFQUFFLFNBQWlC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WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RmlsdGVySXRlbVZpZXdtb2RlbH0gZnJvbSBcIi4uLy4uLy4uL21vZGVsL2ZpbHRlci1pdGVtLnZpZXdtb2RlbFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoU2VydmljZX0gZnJvbSBcIi4vdHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyUmVxdWVzdFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgcHVibGljIGhhbmRsZUNvbGxlY3Rpb25DaGFuZ2VGb3JSYW5nZShjb2xsZWN0aW9uOiBGaWx0ZXJJdGVtVmlld21vZGVsW10sIG1vZGVsTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoUmVxdWVzdFttb2RlbE5hbWVdID0gdGhpcy5fZ2V0RmlsdGVyUmVxdWVzdEZvckNvbGxlY3Rpb25SYW5nZShjb2xsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDb2xsZWN0aW9uQ2hhbmdlRm9yQXJyYXkoY29sbGVjdGlvbjogRmlsdGVySXRlbVZpZXdtb2RlbFtdLCBtb2RlbE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3RbbW9kZWxOYW1lXSA9IHRoaXMuX2dldEZpbHRlclJlcXVlc3RGb3JDb2xsZWN0aW9uQXJyYXkoY29sbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICAvL3RvZG86IHRpamRlbGlqayB0b3RkYXQgZmlsdGVyLWl0ZW0gc2luZ2xlIHNlbGVjdCBvbmRlcnN0ZXVudFxyXG4gIHB1YmxpYyBoYW5kbGVDb2xsZWN0aW9uQ2hhbmdlRm9yU2luZ2xlVmFsdWUodmFsdWU6IHN0cmluZywgbW9kZWxOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0W21vZGVsTmFtZV0gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vdG9kbzogdGlqZGVsaWprIHRvdGRhdCBmaWx0ZXItaXRlbSBzaW5nbGUgc2VsZWN0IG9uZGVyc3RldW50XHJcbiAgcHVibGljIGhhbmRsZUNvbGxlY3Rpb25DaGFuZ2VGb3JTaW5nbGVOdW1iZXIodmFsdWU6IG51bWJlciwgbW9kZWxOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0W21vZGVsTmFtZV0gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDaGVja2JveFZhbHVlQ2hhbmdlRm9yU3RyaW5nKHZhbHVlOiBib29sZWFuLCBtb2RlbE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3RbbW9kZWxOYW1lXSA9IHRoaXMuX2dldEZpbHRlclJlcXVlc3RGb3JCb29sZWFuVG9TdHJpbmcodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNoZWNrYm94VmFsdWVDaGFuZ2VGb3JOdW1iZXIodmFsdWU6IGJvb2xlYW4sIG1vZGVsTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoUmVxdWVzdFttb2RlbE5hbWVdID0gdmFsdWUgPyAxIDogMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEYXRlUmFuZ2VDaGFuZ2UoZGF0ZXM6IERhdGVbXSwgbW9kZWxOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChkYXRlcykge1xyXG4gICAgICBsZXQgc3RhcnREYXRlID0gZGF0ZXNbMF07XHJcbiAgICAgIGxldCBlbmREYXRlID0gZGF0ZXNbMV07XHJcblxyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoUmVxdWVzdFttb2RlbE5hbWVdID0gdGhpcy5fZ2V0RmlsdGVyUmVxdWVzdEZvckRhdGVSYW5nZShzdGFydERhdGUsIGVuZERhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGVGcm9tRmlsdGVyUmVxdWVzdFJhbmdlKGZpbHRlclJlcXVlc3RSYW5nZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBpZiAoZmlsdGVyUmVxdWVzdFJhbmdlKSB7XHJcblxyXG4gICAgICBjb25zdCBkYXRlUGF0dGVybiA9IG5ldyBSZWdFeHAoJ1xcXFxkezJ9XFxcXC1cXFxcZHsyfVxcXFwtXFxcXGR7NH0nKTtcclxuICAgICAgbGV0IGRhdGVTdHJpbmcgPSBmaWx0ZXJSZXF1ZXN0UmFuZ2VcclxuICAgICAgICAuc3BsaXQoJywnKVtpbmRleF1cclxuICAgICAgICAubWF0Y2goZGF0ZVBhdHRlcm4pWzBdO1xyXG5cclxuICAgICAgY29uc3QgZGF5ID0gTnVtYmVyKGRhdGVTdHJpbmcubWF0Y2goJ15cXFxcZHsyfScpWzBdKTtcclxuICAgICAgY29uc3QgbW9udGggPSBOdW1iZXIoZGF0ZVN0cmluZy5tYXRjaCgnKD88PVxcXFwtKShcXFxcZHsyfSkoPz1cXFxcLSknKVswXSktMTtcclxuICAgICAgY29uc3QgeWVhciA9IE51bWJlcihkYXRlU3RyaW5nLm1hdGNoKCdcXFxcZHs0fScpWzBdKTtcclxuXHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldEZpbHRlclJlcXVlc3RGb3JDb2xsZWN0aW9uUmFuZ2UoY29sbGVjdGlvbjogRmlsdGVySXRlbVZpZXdtb2RlbFtdKTogc3RyaW5nIHtcclxuICAgIGxldCBmaWx0ZXJSZXF1ZXN0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBjb2xsZWN0aW9uPy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpZiAoaXRlbS5jaGVja2VkKSB7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkUmVxdWVzdCA9IGA/PVxcJyR7aXRlbS5jb2RlfVxcJ2A7XHJcblxyXG4gICAgICAgIGZpbHRlclJlcXVlc3QgKz0gKGZpbHRlclJlcXVlc3QgPyAnLCcgOiAnJykgKyBgJHtmb3JtYXR0ZWRSZXF1ZXN0fWA7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZpbHRlclJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRGaWx0ZXJSZXF1ZXN0Rm9yQm9vbGVhblRvU3RyaW5nKHZhbHVlOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGxldCBmaWx0ZXJSZXF1ZXN0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBpZiAodmFsdWUpe1xyXG4gICAgICBmaWx0ZXJSZXF1ZXN0ID0gXCI/PSdKJ1wiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsdGVyUmVxdWVzdCA9IFwiPz0nTidcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmlsdGVyUmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldEZpbHRlclJlcXVlc3RGb3JDb2xsZWN0aW9uQXJyYXkoY29sbGVjdGlvbjogRmlsdGVySXRlbVZpZXdtb2RlbFtdKTogc3RyaW5nW10ge1xyXG4gICAgbGV0IGZpbHRlclJlcXVlc3Q6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgY29sbGVjdGlvbj8uZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKGl0ZW0uY2hlY2tlZCkge1xyXG4gICAgICAgIGZpbHRlclJlcXVlc3QucHVzaChpdGVtLmNvZGUudG9TdHJpbmcoKSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgcmV0dXJuIGZpbHRlclJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRGaWx0ZXJSZXF1ZXN0Rm9yRGF0ZVJhbmdlKHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzdGFydERhdGVSZXF1ZXN0ID0gc3RhcnREYXRlID8gdGhpcy5fZm9ybWF0RGF0ZVRvU3RyaW5nKHN0YXJ0RGF0ZSkgOiAnJztcclxuICAgIGNvbnN0IGVuZERhdGVSZXF1ZXN0ID0gZW5kRGF0ZSA/IHRoaXMuX2Zvcm1hdERhdGVUb1N0cmluZyhlbmREYXRlKSA6ICcnO1xyXG5cclxuICAgIHJldHVybiBgPz49XFwnJHtzdGFydERhdGVSZXF1ZXN0fVxcJyYgPzw9XFwnJHtlbmREYXRlUmVxdWVzdH1cXCdgO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZm9ybWF0RGF0ZVRvU3RyaW5nKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IGRheSA9IGRhdGUuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGxldCBtb250aCA9IChkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBsZXQgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHJcbiAgICByZXR1cm4gYCR7ZGF5fS0ke21vbnRofS0ke3llYXJ9YDtcclxuICB9XHJcbn1cclxuIl19
|