@colijnit/transaction 12.1.222 → 12.1.223
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 +899 -712
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +453 -451
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +454 -452
- package/esm2015/lib/component/delivery-planning/service/delivery-planning.service.js +21 -1
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.js +145 -0
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-tile-line/delivery-planning-overview-tile-line.component.js +1 -12
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.js +34 -25
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.module.js +11 -2
- package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-selection/delivery-planning-selection.component.js +1 -1
- package/esm2015/lib/component/delivery-planning-main/delivery-planning-main.component.js +18 -10
- package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-direct-sell.component.js +53 -0
- package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.js +31 -6
- package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.module.js +9 -5
- package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.js +4 -3
- package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-overview-button-bar-button.component.js +9 -4
- package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.component.js +3 -1
- package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-payment.component.js +5 -5
- package/esm2015/lib/component/transaction-header-fields/transaction-header-remaining-amount.component.js +2 -2
- package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +26 -5
- package/esm2015/lib/component/transaction-line/transaction-invoice-line/transaction-invoice-line-base.component.js +2 -1
- package/esm2015/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.js +122 -95
- package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-invoice/transaction-quick-access-invoice.component.js +2 -2
- package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-planning/transaction-quick-access-planning.component.js +20 -3
- package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-planning/transaction-quick-access-planning.module.js +3 -2
- package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.js +7 -10
- package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +25 -70
- package/esm2015/lib/service/transaction.service.js +11 -1
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +599 -312
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/delivery-planning/service/delivery-planning.service.d.ts +5 -0
- package/lib/component/delivery-planning/style/_layout.scss +1 -1
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/delivery-planning-overview-popup.component.d.ts +31 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/style/_layout.scss +79 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/style/_material-definition.scss +0 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/style/_theme.scss +4 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-popup/style/material.scss +4 -0
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/component/delivery-planning-overview-tile-line/delivery-planning-overview-tile-line.component.d.ts +0 -1
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.d.ts +8 -7
- package/lib/component/delivery-planning-main/component/delivery-planning-overview/style/_layout.scss +1 -0
- package/lib/component/delivery-planning-main/delivery-planning-main.component.d.ts +3 -2
- package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-direct-sell.component.d.ts +10 -0
- package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.d.ts +6 -1
- package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/_layout.scss +3 -0
- package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.d.ts +1 -0
- package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-overview-button-bar-button.component.d.ts +3 -1
- package/lib/component/transaction-button-bar/transaction-button-bar.component.d.ts +1 -0
- package/lib/component/transaction-internal/transaction-internal.component.d.ts +1 -0
- package/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.d.ts +10 -5
- package/lib/component/transaction-quick-access/transaction-quick-access-planning/transaction-quick-access-planning.component.d.ts +5 -1
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.d.ts +1 -4
- package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +0 -8
- package/lib/service/transaction.service.d.ts +5 -0
- package/package.json +1 -1
|
@@ -7,6 +7,8 @@ import { DeliveryPlanningViewModes } from "../../../enum/delivery-planning-view-
|
|
|
7
7
|
import { SequenceName } from "@colijnit/transactionapi/build/enum/sequence-name.enum";
|
|
8
8
|
import { GetTransportOrdersRequest } from "@colijnit/transactionapi/build/model/get-transport-orders-request.bo";
|
|
9
9
|
import { DeliveryPlanningModes } from "../../../enum/delivery-planning-modes.enum";
|
|
10
|
+
import { OrderLinesPlannedRequest } from "@colijnit/transactionapi/build/model/order-lines-planned-request.bo";
|
|
11
|
+
import { PlanningFilterObject } from "@colijnit/transactionapi/build/model/planning-filter-object.bo";
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
13
|
import * as i1 from "../../../service/transaction-connector.service";
|
|
12
14
|
export class DeliveryPlanningService {
|
|
@@ -51,6 +53,24 @@ export class DeliveryPlanningService {
|
|
|
51
53
|
return planningTransportWeekDay;
|
|
52
54
|
});
|
|
53
55
|
}
|
|
56
|
+
makeOrderLinesPlannedRequest(order) {
|
|
57
|
+
let request = new OrderLinesPlannedRequest();
|
|
58
|
+
let filterObj = new PlanningFilterObject();
|
|
59
|
+
request.planned = true;
|
|
60
|
+
request.planningId = this.currentPlanning.planningId;
|
|
61
|
+
request.transId = order.transId;
|
|
62
|
+
request.plannedLineId = order.plannedLineId;
|
|
63
|
+
filterObj.onlyCurrentWeek = true;
|
|
64
|
+
filterObj.beginCurrentWeek = new Date();
|
|
65
|
+
filterObj.checkOrderLines = 1;
|
|
66
|
+
request.filterObject = filterObj;
|
|
67
|
+
return request;
|
|
68
|
+
}
|
|
69
|
+
addHours(date, hours) {
|
|
70
|
+
const hoursToAdd = hours * 60 * 60 * 1000;
|
|
71
|
+
date.setTime(date.getTime() + hoursToAdd);
|
|
72
|
+
return date;
|
|
73
|
+
}
|
|
54
74
|
}
|
|
55
75
|
DeliveryPlanningService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DeliveryPlanningService_Factory() { return new DeliveryPlanningService(i0.ɵɵinject(i1.TransactionConnectorService)); }, token: DeliveryPlanningService, providedIn: "root" });
|
|
56
76
|
DeliveryPlanningService.decorators = [
|
|
@@ -61,4 +81,4 @@ DeliveryPlanningService.decorators = [
|
|
|
61
81
|
DeliveryPlanningService.ctorParameters = () => [
|
|
62
82
|
{ type: TransactionConnectorService }
|
|
63
83
|
];
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUMzRixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUNsRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFFMUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBRXBGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBRS9HLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBS2pGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQzdHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDOzs7QUFNcEcsTUFBTSxPQUFPLHVCQUF1QjtJQStCbEMsWUFDVSxZQUF5QztRQUF6QyxpQkFBWSxHQUFaLFlBQVksQ0FBNkI7UUEvQjNDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDNUIsdUJBQWtCLEdBQTRCLEVBQUUsQ0FBQztRQUVqRCx3QkFBbUIsR0FBa0MsNkJBQTZCLENBQUMsSUFBSSxDQUFDO1FBQ3hGLHFCQUFnQixHQUFpQixZQUFZLENBQUMsUUFBUSxDQUFDO1FBQ3ZELGFBQVEsR0FBOEIseUJBQXlCLENBQUMsVUFBVSxDQUFDO1FBQzNFLHdCQUFtQixHQUEwQixxQkFBcUIsQ0FBQyxXQUFXLENBQUM7UUFFL0UscUJBQWdCLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQXlCeEMsQ0FBQztJQXBCSixJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBSztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxpQkFBaUIsQ0FBRSxLQUFLO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQVFZLHFCQUFxQjs7WUFDaEMsT0FBTyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7S0FBQTtJQUVZLGtCQUFrQixDQUFDLHdCQUFrRDs7WUFDaEYsSUFBSSxPQUFPLEdBQThCLElBQUkseUJBQXlCLEVBQUUsQ0FBQTtZQUN4RSxPQUFPLENBQUMsV0FBVyxHQUFHLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDckUsT0FBTyxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUM7WUFDN0MsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztZQUNyRCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUUsSUFBRyxhQUFhLEVBQUU7Z0JBQ2hCLHdCQUF3QixDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7Z0JBQ3ZELHdCQUF3QixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDOUM7WUFFRCxPQUFPLHdCQUF3QixDQUFDO1FBQ2xDLENBQUM7S0FBQTtJQUdNLDRCQUE0QixDQUFDLEtBQWdCO1FBQ2xELElBQUksT0FBTyxHQUE2QixJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDdkUsSUFBSSxTQUFTLEdBQXlCLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUNqRSxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN2QixPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNoQyxPQUFPLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDNUMsU0FBUyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDakMsU0FBUyxDQUFDLGdCQUFnQixHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDeEMsU0FBUyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDOUIsT0FBTyxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDakMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFVLEVBQUUsS0FBYTtRQUN2QyxNQUFNLFVBQVUsR0FBRyxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7O1lBNUVGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBcEJPLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RGYWN0b3J5fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9zZXJ2aWNlL2J1c2luZXNzLW9iamVjdC1mYWN0b3J5JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ0NhbGVuZGFyTW9kZXN9IGZyb20gXCIuLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLWNhbGVuZGFyLW1vZGVzLmVudW1cIjtcclxuaW1wb3J0IHtDYWxlbmRhclZpZXd9IGZyb20gJ0Bjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzfSBmcm9tIFwiLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy12aWV3LW1vZGVzLmVudW1cIjtcclxuaW1wb3J0IHtQbGFubmluZ30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy5ib1wiO1xyXG5pbXBvcnQge1NlcXVlbmNlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3NlcXVlbmNlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla0RheX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay1kYXkuYm9cIjtcclxuaW1wb3J0IHtHZXRUcmFuc3BvcnRPcmRlcnNSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2dldC10cmFuc3BvcnQtb3JkZXJzLXJlcXVlc3QuYm9cIjtcclxuaW1wb3J0IHtQbGFubmluZ1RyYW5zcG9ydFdlZWt9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctdHJhbnNwb3J0LXdlZWsuYm9cIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nTW9kZXN9IGZyb20gXCIuLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLW1vZGVzLmVudW1cIjtcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8uYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm9cIjtcclxuaW1wb3J0IHtPcmRlckxpbmVzUGxhbm5lZFJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZXMtcGxhbm5lZC1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdGaWx0ZXJPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctZmlsdGVyLW9iamVjdC5ib1wiO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2RyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIF9wbGFuVHJhbnNwb3J0V2VlazogUGxhbm5pbmdUcmFuc3BvcnRXZWVrW10gPSBbXTtcclxuXHJcbiAgcHVibGljIGN1cnJlbnRDYWxlbmRhck1vZGU6IERlbGl2ZXJ5UGxhbm5pbmdDYWxlbmRhck1vZGVzID0gRGVsaXZlcnlQbGFubmluZ0NhbGVuZGFyTW9kZXMuV2VlaztcclxuICBwdWJsaWMgZGF0ZVBsYW5uaW5nTW9kZTogQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LldlZWtWaWV3O1xyXG4gIHB1YmxpYyB2aWV3TW9kZTogRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXMuRnVsbHNjcmVlbjtcclxuICBwdWJsaWMgY3VycmVudFBsYW5uaW5nTW9kZTogRGVsaXZlcnlQbGFubmluZ01vZGVzID0gRGVsaXZlcnlQbGFubmluZ01vZGVzLlRyYW5zYWN0aW9uO1xyXG4gIHB1YmxpYyBjdXJyZW50UGxhbm5pbmc6IFBsYW5uaW5nO1xyXG4gIHB1YmxpYyBjdXJyZW50U3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgcHVibGljIGxpbmVzUGxhbk9yZGVyOiBQbGFuT3JkZXI7XHJcblxyXG5cclxuICBwdWJsaWMgZ2V0IGRyYWdnaW5nKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RyYWdnaW5nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwbGFuVHJhbnNwb3J0V2VlaygpIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFuVHJhbnNwb3J0V2VlaztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgZHJhZ2dpbmcodmFsdWUpIHtcclxuICAgIHRoaXMuX2RyYWdnaW5nID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHBsYW5UcmFuc3BvcnRXZWVrKCB2YWx1ZSkge1xyXG4gICAgdGhpcy5fcGxhblRyYW5zcG9ydFdlZWsgPSB2YWx1ZTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcblxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldE9yZGVyU2VxdWVuY2VWYWx1ZSgpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uLmdldFNlcXVlbmNlVmFsdWUoU2VxdWVuY2VOYW1lLlBsYW5MaW5lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRUcmFuc3BvcnRPcmRlcnMocGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXkpOiBQcm9taXNlPFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheT4ge1xyXG4gICAgbGV0IHJlcXVlc3Q6IEdldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3QgPSBuZXcgR2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdCgpXHJcbiAgICByZXF1ZXN0LnRyYW5zcG9ydElkID0gcGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LnRyYW5zcG9ydC50cmFuc3BvcnRJZDtcclxuICAgIHJlcXVlc3QuZGF0ZSA9IHBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheS5kYXRlO1xyXG4gICAgcmVxdWVzdC5wbGFubmluZ0lkID0gdGhpcy5jdXJyZW50UGxhbm5pbmcucGxhbm5pbmdJZDtcclxuICAgIGNvbnN0IG9yZGVyUmVzcG9uc2UgPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbi5nZXRUcmFuc3BvcnRPcmRlcnMocmVxdWVzdCk7XHJcbiAgICBpZihvcmRlclJlc3BvbnNlKSB7XHJcbiAgICAgIHBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheS5wbGFubmVkT3JkZXJzID0gb3JkZXJSZXNwb25zZTtcclxuICAgICAgcGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5Lm9yZGVyc0xvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgbWFrZU9yZGVyTGluZXNQbGFubmVkUmVxdWVzdChvcmRlcjogUGxhbk9yZGVyKTogT3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0IHtcclxuICAgIGxldCByZXF1ZXN0OiBPcmRlckxpbmVzUGxhbm5lZFJlcXVlc3QgPSBuZXcgT3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0KCk7XHJcbiAgICBsZXQgZmlsdGVyT2JqOiBQbGFubmluZ0ZpbHRlck9iamVjdCA9IG5ldyBQbGFubmluZ0ZpbHRlck9iamVjdCgpO1xyXG4gICAgcmVxdWVzdC5wbGFubmVkID0gdHJ1ZTtcclxuICAgIHJlcXVlc3QucGxhbm5pbmdJZCA9IHRoaXMuY3VycmVudFBsYW5uaW5nLnBsYW5uaW5nSWQ7XHJcbiAgICByZXF1ZXN0LnRyYW5zSWQgPSBvcmRlci50cmFuc0lkO1xyXG4gICAgcmVxdWVzdC5wbGFubmVkTGluZUlkID0gb3JkZXIucGxhbm5lZExpbmVJZDtcclxuICAgIGZpbHRlck9iai5vbmx5Q3VycmVudFdlZWsgPSB0cnVlO1xyXG4gICAgZmlsdGVyT2JqLmJlZ2luQ3VycmVudFdlZWsgPSBuZXcgRGF0ZSgpO1xyXG4gICAgZmlsdGVyT2JqLmNoZWNrT3JkZXJMaW5lcyA9IDE7XHJcbiAgICByZXF1ZXN0LmZpbHRlck9iamVjdCA9IGZpbHRlck9iajtcclxuICAgIHJldHVybiByZXF1ZXN0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEhvdXJzKGRhdGU6IERhdGUsIGhvdXJzOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGhvdXJzVG9BZGQgPSBob3VycyAqIDYwICogNjAgKiAxMDAwO1xyXG4gICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgaG91cnNUb0FkZCk7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Component, EventEmitter, HostBinding, Output, ViewEncapsulation } from "@angular/core";
|
|
2
|
+
import { IconCacheService } from "../../../../../../service/icon-cache.service";
|
|
3
|
+
import { Icon } from "../../../../../../enum/icon.enum";
|
|
4
|
+
import { PlanOrder } from "@colijnit/transactionapi/build/model/plan-order.bo";
|
|
5
|
+
import { TransactionService } from "../../../../../../service/transaction.service";
|
|
6
|
+
import { DeliveryPlanningService } from "../../../../../delivery-planning/service/delivery-planning.service";
|
|
7
|
+
export class DeliveryPlanningOverviewPopupComponent {
|
|
8
|
+
constructor(iconCacheService, _transaction, _deliveryPlanningService) {
|
|
9
|
+
this.iconCacheService = iconCacheService;
|
|
10
|
+
this._transaction = _transaction;
|
|
11
|
+
this._deliveryPlanningService = _deliveryPlanningService;
|
|
12
|
+
this.icons = Icon;
|
|
13
|
+
this.planOrder = new PlanOrder();
|
|
14
|
+
this.closeEvent = new EventEmitter();
|
|
15
|
+
this.onSucceededPlanAction = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
showClass() {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.week = undefined;
|
|
22
|
+
this.planOrder = undefined;
|
|
23
|
+
this.transportDay = undefined;
|
|
24
|
+
this.transaction = undefined;
|
|
25
|
+
}
|
|
26
|
+
totalAssemblyTime(transaction) {
|
|
27
|
+
if (transaction) {
|
|
28
|
+
let total = 0;
|
|
29
|
+
transaction.transactionLines.forEach(line => {
|
|
30
|
+
if (line.assemblyTime > 0) {
|
|
31
|
+
total += line.assemblyTime;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return total;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
closePopup() {
|
|
38
|
+
this._transaction.resetCurrentTransaction();
|
|
39
|
+
this.closeEvent.emit();
|
|
40
|
+
}
|
|
41
|
+
handleCommitClick() {
|
|
42
|
+
this.onSucceededPlanAction.emit([this.planOrder, this.transportDay, this.week]);
|
|
43
|
+
}
|
|
44
|
+
startTimeForOrder() {
|
|
45
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
46
|
+
if (((_b = (_a = this.transportDay) === null || _a === void 0 ? void 0 : _a.plannedOrders) === null || _b === void 0 ? void 0 : _b.length) === 0 || !((_d = (_c = this.transportDay) === null || _c === void 0 ? void 0 : _c.plannedOrders) === null || _d === void 0 ? void 0 : _d.length)) {
|
|
47
|
+
this.planOrder.startTime = (_f = (_e = this.transportDay) === null || _e === void 0 ? void 0 : _e.transport) === null || _f === void 0 ? void 0 : _f.startTime;
|
|
48
|
+
return (_h = (_g = this.transportDay) === null || _g === void 0 ? void 0 : _g.transport) === null || _h === void 0 ? void 0 : _h.startTime;
|
|
49
|
+
}
|
|
50
|
+
return (_j = this.transportDay) === null || _j === void 0 ? void 0 : _j.plannedOrders[this.transportDay.plannedOrders.length - 1].endTime;
|
|
51
|
+
}
|
|
52
|
+
endTimeForOrder() {
|
|
53
|
+
if (this.planOrder.startTime) {
|
|
54
|
+
if (this.totalAssemblyTime(this.transaction) === 0) {
|
|
55
|
+
return this._deliveryPlanningService.addHours(new Date(this.planOrder.startTime), 1);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
handleStartTimeChange(date) {
|
|
60
|
+
if (date) {
|
|
61
|
+
this.planOrder.startTime = date;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
handleEndTimeChange(date) {
|
|
65
|
+
if (date) {
|
|
66
|
+
this.planOrder.endTime = date;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
DeliveryPlanningOverviewPopupComponent.decorators = [
|
|
71
|
+
{ type: Component, args: [{
|
|
72
|
+
selector: "co-delivery-planning-overview-popup",
|
|
73
|
+
template: `
|
|
74
|
+
<co-dialog [showCloseIcon]="true" (closeClick)="closePopup()" [headerTemplate]="header"
|
|
75
|
+
[footerTemplate]="footer">
|
|
76
|
+
<ng-template #header>
|
|
77
|
+
<div class="dialog-header-wrapper">
|
|
78
|
+
<span class="footer-header-title" [textContent]="transportDay?.transport?.registrationNumber"></span>
|
|
79
|
+
<div class="icon">
|
|
80
|
+
<co-icon class=""
|
|
81
|
+
[iconData]="iconCacheService.getIcon(icons.TruckContainerDuo)"></co-icon>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</ng-template>
|
|
85
|
+
|
|
86
|
+
<div class="body-wrapper">
|
|
87
|
+
<co-delivery-planning-tile-status
|
|
88
|
+
[currentVolume]="transportDay?.orderAmount"
|
|
89
|
+
[maxVolume]="transportDay?.maxOrderAmount"
|
|
90
|
+
[currentTimeTotal]="transportDay?.minutes"
|
|
91
|
+
[timeTotal]="transportDay?.maxMinutes">
|
|
92
|
+
</co-delivery-planning-tile-status>
|
|
93
|
+
|
|
94
|
+
<div class="form-details">
|
|
95
|
+
<span class="h1" [textContent]="'TIME_SETTINGS' | localize"></span>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="popup-row">
|
|
98
|
+
<co-input-text [model]="planOrder?.impactTime" [placeholder]="'IMPACT_TIME' | localize"></co-input-text>
|
|
99
|
+
<co-input-text [model]="totalAssemblyTime(transaction)"
|
|
100
|
+
[placeholder]="'ASSEMBLY_TIME' | localize"></co-input-text>
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
<div class="popup-row">
|
|
104
|
+
<co-input-text [model]="startTimeForOrder() | date: 'h:mm'"
|
|
105
|
+
[placeholder]="'STARTTIME' | localize" (modelChange)="handleStartTimeChange($event)"></co-input-text>
|
|
106
|
+
<co-input-text [model]="endTimeForOrder() | date: 'h:mm'"
|
|
107
|
+
[placeholder]="'STOPTIME' | localize" (modelChange)="handleEndTimeChange($event)"></co-input-text>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
<div class="remark-wrapper">
|
|
112
|
+
<span [textContent]="'PLAN_REMARKS' | localize"></span>
|
|
113
|
+
<co-input-textarea [(model)]="planOrder.remarks"></co-input-textarea>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
<ng-template #footer>
|
|
121
|
+
<div class="buttons-wrapper">
|
|
122
|
+
<co-button class="save-button"
|
|
123
|
+
[iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
|
|
124
|
+
(click)="handleCommitClick()"></co-button>
|
|
125
|
+
<co-button class="close-button"
|
|
126
|
+
[iconData]="iconCacheService.getIcon(icons.Crossskinny)"
|
|
127
|
+
(click)="closePopup()"></co-button>
|
|
128
|
+
</div>
|
|
129
|
+
</ng-template>
|
|
130
|
+
</co-dialog>
|
|
131
|
+
`,
|
|
132
|
+
encapsulation: ViewEncapsulation.None
|
|
133
|
+
},] }
|
|
134
|
+
];
|
|
135
|
+
DeliveryPlanningOverviewPopupComponent.ctorParameters = () => [
|
|
136
|
+
{ type: IconCacheService },
|
|
137
|
+
{ type: TransactionService },
|
|
138
|
+
{ type: DeliveryPlanningService }
|
|
139
|
+
];
|
|
140
|
+
DeliveryPlanningOverviewPopupComponent.propDecorators = {
|
|
141
|
+
closeEvent: [{ type: Output }],
|
|
142
|
+
onSucceededPlanAction: [{ type: Output }],
|
|
143
|
+
showClass: [{ type: HostBinding, args: ["class.co-delivery-planning-overview-popup",] }]
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctbWFpbi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXBvcHVwL2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQWEsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFJN0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDakYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFpRTNHLE1BQU0sT0FBTyxzQ0FBc0M7SUFxQmpELFlBQW1CLGdCQUFrQyxFQUFVLFlBQWdDLEVBQVUsd0JBQWlEO1FBQXZJLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFBVSw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBbkJuSixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUUxQixjQUFTLEdBQWMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQU12QyxlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7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LElBQUk7YUFDdEM7OztZQXZFTyxnQkFBZ0I7WUFNaEIsa0JBQWtCO1lBQ2xCLHVCQUF1Qjs7O3lCQTBFNUIsTUFBTTtvQ0FHTixNQUFNO3dCQUlOLFdBQVcsU0FBQywyQ0FBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXRyYW5zcG9ydC13ZWVrLWRheS5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctcG9wdXBcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWRpYWxvZyBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCIgKGNsb3NlQ2xpY2spPVwiY2xvc2VQb3B1cCgpXCIgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclwiXHJcbiAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb290ZXItaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cInRyYW5zcG9ydERheT8udHJhbnNwb3J0Py5yZWdpc3RyYXRpb25OdW1iZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvblwiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVHJ1Y2tDb250YWluZXJEdW8pXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keS13cmFwcGVyXCI+XHJcbiAgICAgICAgPGNvLWRlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtc3RhdHVzXHJcbiAgICAgICAgICBbY3VycmVudFZvbHVtZV09XCJ0cmFuc3BvcnREYXk/Lm9yZGVyQW1vdW50XCJcclxuICAgICAgICAgIFttYXhWb2x1bWVdPVwidHJhbnNwb3J0RGF5Py5tYXhPcmRlckFtb3VudFwiXHJcbiAgICAgICAgICBbY3VycmVudFRpbWVUb3RhbF09XCJ0cmFuc3BvcnREYXk/Lm1pbnV0ZXNcIlxyXG4gICAgICAgICAgW3RpbWVUb3RhbF09XCJ0cmFuc3BvcnREYXk/Lm1heE1pbnV0ZXNcIj5cclxuICAgICAgICA8L2NvLWRlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtc3RhdHVzPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1kZXRhaWxzXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImgxXCIgW3RleHRDb250ZW50XT1cIidUSU1FX1NFVFRJTkdTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1yb3dcIj5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJwbGFuT3JkZXI/LmltcGFjdFRpbWVcIiBbcGxhY2Vob2xkZXJdPVwiJ0lNUEFDVF9USU1FJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cInRvdGFsQXNzZW1ibHlUaW1lKHRyYW5zYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FTU0VNQkxZX1RJTUUnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1yb3dcIj5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJzdGFydFRpbWVGb3JPcmRlcigpIHwgZGF0ZTogJ2g6bW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU1RBUlRUSU1FJyB8IGxvY2FsaXplXCIgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVN0YXJ0VGltZUNoYW5nZSgkZXZlbnQpXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cImVuZFRpbWVGb3JPcmRlcigpIHwgZGF0ZTogJ2g6bW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU1RPUFRJTUUnIHwgbG9jYWxpemVcIiAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlRW5kVGltZUNoYW5nZSgkZXZlbnQpXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJlbWFyay13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ1BMQU5fUkVNQVJLUycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0YXJlYSBbKG1vZGVsKV09XCJwbGFuT3JkZXIucmVtYXJrc1wiPjwvY28taW5wdXQtdGV4dGFyZWE+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInNhdmUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNvbW1pdENsaWNrKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNyb3Nzc2tpbm55KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVBvcHVwKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3UG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3l7XHJcblxyXG4gIHB1YmxpYyBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBwdWJsaWMgcGxhbk9yZGVyOiBQbGFuT3JkZXIgPSBuZXcgUGxhbk9yZGVyKCk7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZTtcclxuICBwdWJsaWMgdHJhbnNwb3J0RGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk7XHJcbiAgcHVibGljIHdlZWs6IFBsYW5uaW5nVHJhbnNwb3J0V2VlaztcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNsb3NlRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uU3VjY2VlZGVkUGxhbkFjdGlvbjogRXZlbnRFbWl0dGVyPFtQbGFuT3JkZXIsIFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgUGxhbm5pbmdUcmFuc3BvcnRXZWVrXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFtQbGFuT3JkZXIsIFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgUGxhbm5pbmdUcmFuc3BvcnRXZWVrXT4oKTtcclxuXHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXBvcHVwXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlcnZpY2UsIHByaXZhdGUgX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlOiBEZWxpdmVyeVBsYW5uaW5nU2VydmljZSkge1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy53ZWVrID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5wbGFuT3JkZXIgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRyYW5zcG9ydERheSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG90YWxBc3NlbWJseVRpbWUodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICBpZiAodHJhbnNhY3Rpb24pIHtcclxuICAgICAgbGV0IHRvdGFsOiBudW1iZXIgPSAwO1xyXG4gICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmZvckVhY2gobGluZSA9PiB7XHJcbiAgICAgICAgaWYgKGxpbmUuYXNzZW1ibHlUaW1lID4gMCkge1xyXG4gICAgICAgICAgdG90YWwgKz0gbGluZS5hc3NlbWJseVRpbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRvdGFsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlUG9wdXAoKSB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5yZXNldEN1cnJlbnRUcmFuc2FjdGlvbigpO1xyXG4gICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNvbW1pdENsaWNrKCkge1xyXG4gICAgdGhpcy5vblN1Y2NlZWRlZFBsYW5BY3Rpb24uZW1pdChbdGhpcy5wbGFuT3JkZXIsIHRoaXMudHJhbnNwb3J0RGF5LCB0aGlzLndlZWtdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGFydFRpbWVGb3JPcmRlcigpIHtcclxuICAgIGlmKHRoaXMudHJhbnNwb3J0RGF5Py5wbGFubmVkT3JkZXJzPy5sZW5ndGggPT09IDAgfHwgIXRoaXMudHJhbnNwb3J0RGF5Py5wbGFubmVkT3JkZXJzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5wbGFuT3JkZXIuc3RhcnRUaW1lID0gdGhpcy50cmFuc3BvcnREYXk/LnRyYW5zcG9ydD8uc3RhcnRUaW1lO1xyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc3BvcnREYXk/LnRyYW5zcG9ydD8uc3RhcnRUaW1lO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydERheT8ucGxhbm5lZE9yZGVyc1t0aGlzLnRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLmxlbmd0aCAtIDFdLmVuZFRpbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW5kVGltZUZvck9yZGVyKCkge1xyXG4gICAgaWYodGhpcy5wbGFuT3JkZXIuc3RhcnRUaW1lKSB7XHJcbiAgICAgICBpZih0aGlzLnRvdGFsQXNzZW1ibHlUaW1lKHRoaXMudHJhbnNhY3Rpb24pICA9PT0gMCkge1xyXG4gICAgICAgICByZXR1cm4gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuYWRkSG91cnMobmV3IERhdGUodGhpcy5wbGFuT3JkZXIuc3RhcnRUaW1lKSwgMSk7XHJcbiAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RhcnRUaW1lQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIGlmKGRhdGUpIHtcclxuICAgICAgdGhpcy5wbGFuT3JkZXIuc3RhcnRUaW1lID0gZGF0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgaGFuZGxlRW5kVGltZUNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICBpZihkYXRlKSB7XHJcbiAgICAgIHRoaXMucGxhbk9yZGVyLmVuZFRpbWUgPSBkYXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbn1cclxuIl19
|
|
@@ -6,7 +6,6 @@ export class DeliveryPlanningOverviewTileLineComponent {
|
|
|
6
6
|
constructor(iconCacheService) {
|
|
7
7
|
this.iconCacheService = iconCacheService;
|
|
8
8
|
this.icons = Icon;
|
|
9
|
-
this.showNoteDialog = false;
|
|
10
9
|
this.expanded = false;
|
|
11
10
|
this.linesActive = false;
|
|
12
11
|
this.order = new PlanOrder();
|
|
@@ -29,15 +28,6 @@ DeliveryPlanningOverviewTileLineComponent.decorators = [
|
|
|
29
28
|
{ type: Component, args: [{
|
|
30
29
|
selector: "co-delivery-planning-overview-tile-line",
|
|
31
30
|
template: `
|
|
32
|
-
<co-dialog *ngIf="showNoteDialog" [showCloseIcon]="true" (closeClick)="showNoteDialog = false" [headerTemplate]="header">
|
|
33
|
-
<ng-template #header>
|
|
34
|
-
<div class="dialog-header-wrapper">
|
|
35
|
-
<span class="footer-header-title" [textContent]="'NOTE_FOR_DELIVERY' | localize"></span>
|
|
36
|
-
</div>
|
|
37
|
-
</ng-template>
|
|
38
|
-
<span [textContent]="'DESCRIPTION' | localize"></span>
|
|
39
|
-
<co-input-text></co-input-text>
|
|
40
|
-
</co-dialog>
|
|
41
31
|
<div class="planning-line-wrapper" [class.active-lines]="linesActive">
|
|
42
32
|
<div class="planning-line-content">
|
|
43
33
|
<div class="planning-line-left">
|
|
@@ -64,7 +54,6 @@ DeliveryPlanningOverviewTileLineComponent.decorators = [
|
|
|
64
54
|
</div>
|
|
65
55
|
</div>
|
|
66
56
|
<div class="planning-line-actions">
|
|
67
|
-
<co-icon (click)="showNoteDialog = true" [iconData]="iconCacheService.getIcon(icons.MasterDetail)"></co-icon>
|
|
68
57
|
<co-icon (click)="handleDeleteLineClick(order)" [iconData]="iconCacheService.getIcon(icons.TrashBin)"></co-icon>
|
|
69
58
|
</div>
|
|
70
59
|
</div>
|
|
@@ -88,4 +77,4 @@ DeliveryPlanningOverviewTileLineComponent.propDecorators = {
|
|
|
88
77
|
deleteLineEvent: [{ type: Output }],
|
|
89
78
|
showClass: [{ type: HostBinding, args: ["class.co-delivery-planning-overview-tile-line",] }]
|
|
90
79
|
};
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW1haW4vY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3L2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlL2NvbXBvbmVudC9kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlLWxpbmUvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctdGlsZS1saW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNwRixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFNUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBNkM3RSxNQUFNLE9BQU8seUNBQXlDO0lBZ0JwRCxZQUFtQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWZyQyxVQUFLLEdBQWdCLElBQUksQ0FBQztRQUNuQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRzdCLFVBQUssR0FBYSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBR2xDLG9CQUFlLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7SUFRaEYsQ0FBQztJQUxNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFLTSxxQkFBcUIsQ0FBQyxLQUFnQjtRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ00sY0FBYztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN2QyxDQUFDO0lBQ00sZUFBZSxDQUFDLEtBQXNCO1FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQzs7O1lBdEVGLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUseUNBQXlDO2dCQUNuRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBc0NUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUEvQ08sZ0JBQWdCOzs7b0JBcURyQixLQUFLOzhCQUdMLE1BQU07d0JBR04sV0FBVyxTQUFDLCtDQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtQbGFuT3JkZXJMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXItbGluZS5ib1wiO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGUtbGluZVwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWxpbmUtd3JhcHBlclwiIFtjbGFzcy5hY3RpdmUtbGluZXNdPVwibGluZXNBY3RpdmVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctbGluZS1jb250ZW50XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctbGluZS1sZWZ0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1saW5lLWV4dGVuZFwiPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiIWxpbmVzQWN0aXZlXCIgKGNsaWNrKT1cInNldExpbmVzQWN0aXZlKClcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZXZyb25Eb3duUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJsaW5lc0FjdGl2ZVwiIChjbGljayk9XCJzZXRMaW5lc0FjdGl2ZSgpXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGV2cm9uVXBSZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLWNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1hZGRyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwib3JkZXIuc2hvcnRBZGRyZXNzXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1yZWxhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIm9yZGVyLnJlbGF0aW9uTmFtZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy1saW5lLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lLWNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhbm5pbmctb3JkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJvcmRlci50cmFuc2FjdGlvbk5yXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwbGFubmluZy10aW1lXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiKG9yZGVyLnN0YXJ0VGltZSB8IGRhdGU6ICdISDptbScpICsgJyAtICcgKyAob3JkZXIuZW5kVGltZSB8IGRhdGU6ICdISDptbScpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYW5uaW5nLWxpbmUtYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uIChjbGljayk9XCJoYW5kbGVEZWxldGVMaW5lQ2xpY2sob3JkZXIpXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmFzaEJpbilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm9yZGVyLWxpbmUtbGlzdC13cmFwcGVyXCIgKm5nSWY9XCJsaW5lc0FjdGl2ZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZGVyLWxpbmVzXCIgKm5nRm9yPVwibGV0IGxpbmUgb2YgZ2V0UGxhbm5lZExpbmVzKG9yZGVyPy5saW5lcylcIj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuYXJ0aWNsZU51bWJlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuZGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3VGlsZUxpbmVDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyBleHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsaW5lc0FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvcmRlcjpQbGFuT3JkZXIgPSBuZXcgUGxhbk9yZGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZWxldGVMaW5lRXZlbnQ6IEV2ZW50RW1pdHRlcjxQbGFuT3JkZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxQbGFuT3JkZXI+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXRpbGUtbGluZVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGVsZXRlTGluZUNsaWNrKG9yZGVyOiBQbGFuT3JkZXIpIHtcclxuICAgIHRoaXMuZGVsZXRlTGluZUV2ZW50LmVtaXQob3JkZXIpO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0TGluZXNBY3RpdmUoKSB7XHJcbiAgICB0aGlzLmxpbmVzQWN0aXZlID0gIXRoaXMubGluZXNBY3RpdmU7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRQbGFubmVkTGluZXMobGluZXM6IFBsYW5PcmRlckxpbmVbXSkge1xyXG4gICAgcmV0dXJuIGxpbmVzLmZpbHRlcihsaW5lID0+IGxpbmUucGxhbm5lZCA9PT0gdHJ1ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
2
|
+
import { ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
3
3
|
import { CalendarView } from '@colijnit/sharedcomponents';
|
|
4
4
|
import { DeliveryPlanningCalendarModes } from "../../../../enum/delivery-planning-calendar-modes.enum";
|
|
5
5
|
import { DeliveryPlanningViewModes } from "../../../../enum/delivery-planning-view-modes.enum";
|
|
@@ -8,22 +8,22 @@ import { TransactionService } from "../../../../service/transaction.service";
|
|
|
8
8
|
import { DatePipe } from "@angular/common";
|
|
9
9
|
import { TransactionConnectorService } from "../../../../service/transaction-connector.service";
|
|
10
10
|
import { GetTransportOrdersRequest } from "@colijnit/transactionapi/build/model/get-transport-orders-request.bo";
|
|
11
|
-
import { OrderLinesToPlanRequest } from "@colijnit/transactionapi/build/model/order-lines-to-plan-request.bo";
|
|
12
11
|
import { PlanningFilterObject } from "@colijnit/transactionapi/build/model/planning-filter-object.bo";
|
|
13
12
|
import { DialogService } from "../../../../service/dialog.service";
|
|
14
13
|
import { OrderLinesPlannedRequest } from "@colijnit/transactionapi/build/model/order-lines-planned-request.bo";
|
|
15
14
|
export class DeliveryPlanningOverviewComponent {
|
|
16
|
-
constructor(_deliveryPlanningService, _transaction, _datePipe, _transactionCon, _dialog) {
|
|
15
|
+
constructor(_deliveryPlanningService, _transaction, _datePipe, _transactionCon, _dialog, _changeDetector) {
|
|
17
16
|
this._deliveryPlanningService = _deliveryPlanningService;
|
|
18
17
|
this._transaction = _transaction;
|
|
19
18
|
this._datePipe = _datePipe;
|
|
20
19
|
this._transactionCon = _transactionCon;
|
|
21
20
|
this._dialog = _dialog;
|
|
22
|
-
this.
|
|
21
|
+
this._changeDetector = _changeDetector;
|
|
23
22
|
this.deliveryPlanningViewModes = DeliveryPlanningViewModes;
|
|
24
23
|
this.date = new Date();
|
|
25
24
|
this.available = false;
|
|
26
25
|
this.expanded = false;
|
|
26
|
+
this.showNoteDialog = false;
|
|
27
27
|
this.planOrders = [];
|
|
28
28
|
this.currentMode = DeliveryPlanningCalendarModes.Week;
|
|
29
29
|
this.currentViewMode = CalendarView.WeekView;
|
|
@@ -33,6 +33,10 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
33
33
|
this.columnNum = 3; //initial count
|
|
34
34
|
this.tileSize = 300; //one tile should have this width
|
|
35
35
|
}
|
|
36
|
+
set popupComponent(value) {
|
|
37
|
+
this.popupRef = value;
|
|
38
|
+
}
|
|
39
|
+
;
|
|
36
40
|
get planTransportWeek() {
|
|
37
41
|
if (this._deliveryPlanningService.planTransportWeek.length) {
|
|
38
42
|
return this._deliveryPlanningService.planTransportWeek;
|
|
@@ -60,12 +64,18 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
60
64
|
ev.preventDefault();
|
|
61
65
|
const data = ev.dataTransfer.getData("text");
|
|
62
66
|
if (data != "lines") {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
yield this._transaction.getTransactionById(parseInt(data));
|
|
68
|
+
const planOrder = yield this._transactionCon.getPlanOrder(parseInt(data));
|
|
69
|
+
if (planOrder) {
|
|
70
|
+
this.showNoteDialog = true;
|
|
71
|
+
this._changeDetector.markForCheck();
|
|
72
|
+
this._changeDetector.detectChanges();
|
|
73
|
+
if (this.popupRef) {
|
|
74
|
+
this.popupRef.planOrder = planOrder;
|
|
75
|
+
this.popupRef.transportDay = transportDay;
|
|
76
|
+
this.popupRef.week = week;
|
|
77
|
+
this.popupRef.transaction = this._transaction.currentTransaction;
|
|
78
|
+
}
|
|
69
79
|
}
|
|
70
80
|
}
|
|
71
81
|
else {
|
|
@@ -138,19 +148,6 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
138
148
|
}
|
|
139
149
|
});
|
|
140
150
|
}
|
|
141
|
-
getOrderLinesToPlan(order) {
|
|
142
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
143
|
-
let request = new OrderLinesToPlanRequest();
|
|
144
|
-
let filterObj = new PlanningFilterObject();
|
|
145
|
-
request.planned = false;
|
|
146
|
-
request.transId = order.transId;
|
|
147
|
-
filterObj.onlyCurrentWeek = true;
|
|
148
|
-
filterObj.beginCurrentWeek = new Date();
|
|
149
|
-
filterObj.checkOrderLines = 1;
|
|
150
|
-
request.filterObject = filterObj;
|
|
151
|
-
return yield this._transactionCon.getOrderLinesToPlan(request);
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
151
|
getOrderLinesPlanned(order) {
|
|
155
152
|
return __awaiter(this, void 0, void 0, function* () {
|
|
156
153
|
let request = new OrderLinesPlannedRequest();
|
|
@@ -239,11 +236,21 @@ export class DeliveryPlanningOverviewComponent {
|
|
|
239
236
|
order.chained = false;
|
|
240
237
|
});
|
|
241
238
|
}
|
|
239
|
+
handlePopupPlanEvent(event) {
|
|
240
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
241
|
+
this.showNoteDialog = false;
|
|
242
|
+
yield this.getTransportOrders(event[0], event[1]);
|
|
243
|
+
yield this.getSequenceOrderValue(event[0]);
|
|
244
|
+
yield this.getOrderLinesPlanned(event[0]);
|
|
245
|
+
yield this.planOrderLines(event[0], event[1], event[2]);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
242
248
|
}
|
|
243
249
|
DeliveryPlanningOverviewComponent.decorators = [
|
|
244
250
|
{ type: Component, args: [{
|
|
245
251
|
selector: "co-delivery-planning-overview",
|
|
246
252
|
template: `
|
|
253
|
+
<co-delivery-planning-overview-popup #planningPopup *ngIf="showNoteDialog" (closeEvent)="showNoteDialog = false" (onSucceededPlanAction)="handlePopupPlanEvent($event)"></co-delivery-planning-overview-popup>
|
|
247
254
|
<div class="delivery-overview-wrapper" [class.sidebar]="currentViewMode === 'DAYS_AROUND'">
|
|
248
255
|
<co-date-planning [view]="currentViewMode" [selectedDate]="date" (rangeChange)="handleDateRangeChange($event)"
|
|
249
256
|
></co-date-planning>
|
|
@@ -272,7 +279,8 @@ DeliveryPlanningOverviewComponent.ctorParameters = () => [
|
|
|
272
279
|
{ type: TransactionService },
|
|
273
280
|
{ type: DatePipe },
|
|
274
281
|
{ type: TransactionConnectorService },
|
|
275
|
-
{ type: DialogService }
|
|
282
|
+
{ type: DialogService },
|
|
283
|
+
{ type: ChangeDetectorRef }
|
|
276
284
|
];
|
|
277
285
|
DeliveryPlanningOverviewComponent.propDecorators = {
|
|
278
286
|
planOrders: [{ type: Input }],
|
|
@@ -283,7 +291,8 @@ DeliveryPlanningOverviewComponent.propDecorators = {
|
|
|
283
291
|
resetPlanningTransportEvent: [{ type: Output }],
|
|
284
292
|
rowContainer: [{ type: ViewChild, args: ['rowContainer',] }],
|
|
285
293
|
columnElem: [{ type: ViewChild, args: ['columnElem',] }],
|
|
294
|
+
popupComponent: [{ type: ViewChild, args: ['planningPopup',] }],
|
|
286
295
|
showClass: [{ type: HostBinding, args: ["class.co-delivery-planning-overview",] }],
|
|
287
296
|
onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
|
|
288
297
|
};
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctbWFpbi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDckcsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDckcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBSTlGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQy9HLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQzVHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBRXBHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsd0JB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LGFBQWE7Ozt5QkE4Q2xCLEtBQUs7MEJBR0wsS0FBSzs4QkFHTCxLQUFLO3NDQUdMLEtBQUs7MkNBR0wsTUFBTTswQ0FHTixNQUFNOzJCQUdOLFNBQVMsU0FBQyxjQUFjO3lCQUN4QixTQUFTLFNBQUMsWUFBWTt3QkFrQnRCLFdBQVcsU0FBQyxxQ0FBcUM7dUJBT2pELFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0NoZWNrZWQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7Q2FsZW5kYXJWaWV3fSBmcm9tICdAY29saWpuaXQvc2hhcmVkY29tcG9uZW50cyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ0NhbGVuZGFyTW9kZXN9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLWNhbGVuZGFyLW1vZGVzLmVudW1cIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzfSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy12aWV3LW1vZGVzLmVudW1cIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla0RheX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay1kYXkuYm9cIjtcclxuaW1wb3J0IHtQbGFuT3JkZXJ9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci5ib1wiO1xyXG5pbXBvcnQge0dldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ2V0LXRyYW5zcG9ydC1vcmRlcnMtcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge09yZGVyTGluZXNUb1BsYW5SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmVzLXRvLXBsYW4tcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nRmlsdGVyT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLWZpbHRlci1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtQbGFuT3JkZXJMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXItbGluZS5ib1wiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7T3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmVzLXBsYW5uZWQtcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge3RyYW5zbGF0ZVN0YXRlbWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbXBpbGVyLWNsaS9zcmMvbmd0c2MvdHJhbnNsYXRvclwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJkZWxpdmVyeS1vdmVydmlldy13cmFwcGVyXCIgW2NsYXNzLnNpZGViYXJdPVwiY3VycmVudFZpZXdNb2RlID09PSAnREFZU19BUk9VTkQnXCI+XHJcbiAgICAgIDxjby1kYXRlLXBsYW5uaW5nIFt2aWV3XT1cImN1cnJlbnRWaWV3TW9kZVwiIFtzZWxlY3RlZERhdGVdPVwiZGF0ZVwiIChyYW5nZUNoYW5nZSk9XCJoYW5kbGVEYXRlUmFuZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgID48L2NvLWRhdGUtcGxhbm5pbmc+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZGF0ZS1wbGFubmluZ1wiICNyb3dDb250YWluZXIgKm5nRm9yPVwibGV0IHRyYW5zcG9ydFdlZWtSb3cgb2YgcGxhblRyYW5zcG9ydFdlZWtcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCIgI2NvbHVtbkVsZW1cclxuICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0cmFuc1BvcnREYXkgb2YgZmlsdGVyV2Vla0FycmF5KHdlZWtBcnJheSh0cmFuc3BvcnRXZWVrUm93KSk7IGluZGV4IGFzIGlcIj5cclxuICAgICAgICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlXHJcbiAgICAgICAgICAgIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50LCB0cmFuc1BvcnREYXkpXCJcclxuICAgICAgICAgICAgKGRyb3ApPVwiZHJvcHBlZCgkZXZlbnQsIHRyYW5zcG9ydFdlZWtSb3csIHRyYW5zUG9ydERheSlcIlxyXG4gICAgICAgICAgICAoZHJhZ2VuZCk9XCJkcmFnRW5kKCRldmVudClcIlxyXG4gICAgICAgICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxyXG4gICAgICAgICAgICBbdHJhbnNwb3J0RGF5XT1cInRyYW5zUG9ydERheVwiXHJcbiAgICAgICAgICAgIChkZWxldGVMaW5lRXZlbnQpPVwiaGFuZGxlRGVsZXRlT3JkZXIoJGV2ZW50LCB0cmFuc3BvcnRXZWVrUm93KVwiXHJcbiAgICAgICAgICA+PC9jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWxpdmVyeVBsYW5uaW5nT3ZlcnZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuXHJcbiAgcHVibGljIGNhbGVuZGFyVmlld01vZGVzOiB0eXBlb2YgQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3O1xyXG4gIHB1YmxpYyBkZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzOiB0eXBlb2YgRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXM7XHJcblxyXG4gIHB1YmxpYyBkYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgcHVibGljIHBsYW5UcmFuc3BvcnRXZWVrQXJyOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXTtcclxuXHJcbiAgcHVibGljIGF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGZpbHRlcmVkV2Vla0FycmF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXTtcclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBsYW5PcmRlcnM6IFBsYW5PcmRlcltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1cnJlbnRNb2RlOiBEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdDYWxlbmRhck1vZGVzLldlZWs7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1cnJlbnRWaWV3TW9kZTogQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LldlZWtWaWV3O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXJyZW50UGxhbm5pbmdWaWV3TW9kZTogRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2RlcyA9IHRoaXMuZGVsaXZlcnlQbGFubmluZ1ZpZXdNb2Rlcy5GdWxsc2NyZWVuO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdXBkYXRlUGxhbm5pbmdUcmFuc3BvcnRFdmVudDogRXZlbnRFbWl0dGVyPFBsYW5uaW5nVHJhbnNwb3J0V2Vlaz4gPSBuZXcgRXZlbnRFbWl0dGVyPFBsYW5uaW5nVHJhbnNwb3J0V2Vlaz4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlc2V0UGxhbm5pbmdUcmFuc3BvcnRFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdyb3dDb250YWluZXInKSByb3dDb250YWluZXI7XHJcbiAgQFZpZXdDaGlsZCgnY29sdW1uRWxlbScpIGNvbHVtbkVsZW07XHJcbiAgcHVibGljIGNvbHVtbk51bSA9IDM7IC8vaW5pdGlhbCBjb3VudFxyXG4gIHB1YmxpYyB0aWxlU2l6ZSA9IDMwMDsgLy9vbmUgdGlsZSBzaG91bGQgaGF2ZSB0aGlzIHdpZHRoXHJcblxyXG5cclxuICBwdWJsaWMgZ2V0IHBsYW5UcmFuc3BvcnRXZWVrKCkge1xyXG4gICAgaWYgKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnBsYW5UcmFuc3BvcnRXZWVrLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhblRyYW5zcG9ydFdlZWs7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkcmFnZ2luZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZztcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vcmVjYWxjdWxhdGluZyB1cG9uIGJyb3dzZXIgd2luZG93IHJlc2l6ZVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNldENvbE51bSgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLCBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZXJ2aWNlLCBwcml2YXRlIF9kYXRlUGlwZTogRGF0ZVBpcGUsIHByaXZhdGUgX3RyYW5zYWN0aW9uQ29uOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsIHByaXZhdGUgX2RpYWxvZzogRGlhbG9nU2VydmljZSkge1xyXG4gIH1cclxuXHJcblxyXG4gIC8vY2FsY3VsYXRpbmcgdXBvbiBsb2FkaW5nXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgdGhpcy5zZXRDb2xOdW0oKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgZHJvcHBlZChldjogRHJhZ0V2ZW50LCB3ZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWssIHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5KSB7XHJcbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgY29uc3QgZGF0YSA9IGV2LmRhdGFUcmFuc2Zlci5nZXREYXRhKFwidGV4dFwiKTtcclxuICAgIGlmIChkYXRhICE9IFwibGluZXNcIikge1xyXG4gICAgICBjb25zdCBvcmRlciA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQ29uLmdldFBsYW5PcmRlcihwYXJzZUludChkYXRhKSlcclxuICAgICAgaWYgKG9yZGVyKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRUcmFuc3BvcnRPcmRlcnMob3JkZXIsIHRyYW5zcG9ydERheSk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRTZXF1ZW5jZU9yZGVyVmFsdWUob3JkZXIpXHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRPcmRlckxpbmVzUGxhbm5lZChvcmRlcilcclxuICAgICAgICBhd2FpdCB0aGlzLnBsYW5PcmRlckxpbmVzKG9yZGVyLCB0cmFuc3BvcnREYXksIHdlZWspO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24uY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMuZmluZCh0cmFuc2FjdGlvbkxpbmUgPT4gdHJhbnNhY3Rpb25MaW5lLnNlbGVjdGVkKSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMucGxhblNlbGVjdGVkTGluZXModHJhbnNwb3J0RGF5LCB3ZWVrKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWxsb3dEcm9wKGV2LCB0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSkge1xyXG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICh0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZykge1xyXG4gICAgICBpZiAodHJhbnNwb3J0RGF5Lm1pbnV0ZXMgKyB0cmFuc3BvcnREYXkubWludXRlcyA8IHRyYW5zcG9ydERheS5tYXhNaW51dGVzICYmIHRyYW5zcG9ydERheS5tYXhPcmRlckFtb3VudCA8IHRyYW5zcG9ydERheS5vcmRlckFtb3VudCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzZXRDb2xOdW0oKSB7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2Uudmlld01vZGUgPT09IERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXMuU2lkZWJhcikge1xyXG4gICAgICB0aGlzLmNvbHVtbk51bSA9IDE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgd2lkdGggPSB0aGlzLnJvd0NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGg7XHJcbiAgICAgIGlmICh3aWR0aCkge1xyXG4gICAgICAgIHRoaXMuY29sdW1uTnVtID0gTWF0aC50cnVuYyh3aWR0aCAvIHRoaXMudGlsZVNpemUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGRyYWdFbmQoZXYpIHtcclxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyB3ZWVrQXJyYXkoYXJyOiBQbGFubmluZ1RyYW5zcG9ydFdlZWspOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoYXJyKS5zb3J0KCkubWFwKGtleSA9PiBhcnJba2V5XSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsdGVyV2Vla0FycmF5KHdlZWtBcnJheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5W10pIHtcclxuICAgIHJldHVybiB3ZWVrQXJyYXkuc2xpY2UoMCwgdGhpcy5jb2x1bW5OdW0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEhvdXJzKGRhdGUsIGhvdXJzKSB7XHJcbiAgICBjb25zdCBob3Vyc1RvQWRkID0gaG91cnMgKiA2MCAqIDYwICogMTAwMDtcclxuICAgIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIGhvdXJzVG9BZGQpO1xyXG4gICAgcmV0dXJuIGRhdGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGF0ZVJhbmdlQ2hhbmdlKG5ld0RhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRTdGFydERhdGUgPSBuZXdEYXRlO1xyXG4gICAgdGhpcy5yZXNldFBsYW5uaW5nVHJhbnNwb3J0RXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZURlbGV0ZU9yZGVyKGRlbGV0ZVJlc3VsdDogW1BsYW5PcmRlciwgUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5XSwgcGxhbm5pbmdUcmFuc3BvcnRXZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWspIHtcclxuICAgIGxldCBvcmRlciA9IGRlbGV0ZVJlc3VsdFswXTtcclxuICAgIGlmIChvcmRlcikge1xyXG4gICAgICBhd2FpdCB0aGlzLmdldFRyYW5zcG9ydE9yZGVycyhkZWxldGVSZXN1bHRbMF0sIGRlbGV0ZVJlc3VsdFsxXSk7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0T3JkZXJMaW5lc1BsYW5uZWQob3JkZXIpO1xyXG4gICAgICBpZiAoZGVsZXRlUmVzdWx0WzBdLmxpbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBvcmRlcj8ubGluZXMuZm9yRWFjaChsaW5lID0+IHtcclxuICAgICAgICAgIGxpbmUucGxhbm5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgbGluZS5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG9yZGVyLmxpbmVzID0gW11cclxuICAgICAgICBkZWxldGVSZXN1bHRbMV0ucGxhbm5lZE9yZGVycy5zcGxpY2UoZGVsZXRlUmVzdWx0WzFdLnBsYW5uZWRPcmRlcnMuaW5kZXhPZihvcmRlciksIDEpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlUGxhbm5pbmdUcmFuc3BvcnRFdmVudC5lbWl0KHBsYW5uaW5nVHJhbnNwb3J0V2Vlayk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLnNob3dFcnJvcihcIk5PX0xJTkVTX1RPX0RFTEVURVwiLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldE9yZGVyTGluZXNUb1BsYW4ob3JkZXI6IFBsYW5PcmRlcik6IFByb21pc2U8UGxhbk9yZGVyTGluZVtdPiB7XHJcbiAgICBsZXQgcmVxdWVzdDogT3JkZXJMaW5lc1RvUGxhblJlcXVlc3QgPSBuZXcgT3JkZXJMaW5lc1RvUGxhblJlcXVlc3QoKTtcclxuICAgIGxldCBmaWx0ZXJPYmo6IFBsYW5uaW5nRmlsdGVyT2JqZWN0ID0gbmV3IFBsYW5uaW5nRmlsdGVyT2JqZWN0KCk7XHJcbiAgICByZXF1ZXN0LnBsYW5uZWQgPSBmYWxzZTtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IG9yZGVyLnRyYW5zSWQ7XHJcbiAgICBmaWx0ZXJPYmoub25seUN1cnJlbnRXZWVrID0gdHJ1ZTtcclxuICAgIGZpbHRlck9iai5iZWdpbkN1cnJlbnRXZWVrID0gbmV3IERhdGUoKTtcclxuICAgIGZpbHRlck9iai5jaGVja09yZGVyTGluZXMgPSAxO1xyXG4gICAgcmVxdWVzdC5maWx0ZXJPYmplY3QgPSBmaWx0ZXJPYmo7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0T3JkZXJMaW5lc1RvUGxhbihyZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRPcmRlckxpbmVzUGxhbm5lZChvcmRlcjogUGxhbk9yZGVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgcmVxdWVzdDogT3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0ID0gbmV3IE9yZGVyTGluZXNQbGFubmVkUmVxdWVzdCgpO1xyXG4gICAgbGV0IGZpbHRlck9iajogUGxhbm5pbmdGaWx0ZXJPYmplY3QgPSBuZXcgUGxhbm5pbmdGaWx0ZXJPYmplY3QoKTtcclxuICAgIHJlcXVlc3QucGxhbm5lZCA9IHRydWU7XHJcbiAgICByZXF1ZXN0LnBsYW5uaW5nSWQgPSB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50UGxhbm5pbmcucGxhbm5pbmdJZDtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IG9yZGVyLnRyYW5zSWQ7XHJcbiAgICByZXF1ZXN0LnBsYW5uZWRMaW5lSWQgPSBvcmRlci5wbGFubmVkTGluZUlkO1xyXG4gICAgZmlsdGVyT2JqLm9ubHlDdXJyZW50V2VlayA9IHRydWU7XHJcbiAgICBmaWx0ZXJPYmouYmVnaW5DdXJyZW50V2VlayA9IG5ldyBEYXRlKCk7XHJcbiAgICBmaWx0ZXJPYmouY2hlY2tPcmRlckxpbmVzID0gMTtcclxuICAgIHJlcXVlc3QuZmlsdGVyT2JqZWN0ID0gZmlsdGVyT2JqO1xyXG4gICAgb3JkZXIubGluZXMucHVzaCguLi5hd2FpdCB0aGlzLl90cmFuc2FjdGlvbkNvbi5nZXRPcmRlckxpbmVzUGxhbm5lZChyZXF1ZXN0KSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRyYW5zcG9ydE9yZGVycyhvcmRlcjogUGxhbk9yZGVyLCB0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHJlcXVlc3Q6IEdldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3QgPSBuZXcgR2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5wbGFubmluZ0lkID0gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFBsYW5uaW5nLnBsYW5uaW5nSWQ7XHJcbiAgICByZXF1ZXN0LmRhdGUgPSB0cmFuc3BvcnREYXkuZGF0ZTtcclxuICAgIHJlcXVlc3QudHJhbnNwb3J0SWQgPSB0cmFuc3BvcnREYXkudHJhbnNwb3J0LnRyYW5zcG9ydElkO1xyXG4gICAgb3JkZXIuc3RhcnRUaW1lID0gdHJhbnNwb3J0RGF5LnRyYW5zcG9ydC5zdGFydFRpbWU7XHJcbiAgICBsZXQgZW5kRGF0ZSA9IG5ldyBEYXRlKHRyYW5zcG9ydERheS50cmFuc3BvcnQuc3RhcnRUaW1lKTtcclxuICAgIHRoaXMuYWRkSG91cnMoZW5kRGF0ZSwgMSk7XHJcbiAgICBvcmRlci5lbmRUaW1lID0gZW5kRGF0ZTtcclxuICAgIHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0VHJhbnNwb3J0T3JkZXJzKHJlcXVlc3QpO1xyXG4gICAgdHJhbnNwb3J0RGF5Lm9yZGVyc0xvYWRlZCA9IHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBsYW5PcmRlckxpbmVzKG9yZGVyOiBQbGFuT3JkZXIsIHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LCB3ZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWspOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChvcmRlci5saW5lcy5sZW5ndGgpIHtcclxuICAgICAgb3JkZXIubGluZXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICBvcmRlci50YXNrcyA9IFtdO1xyXG4gICAgICBvcmRlci50YXNrc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgIG9yZGVyLmxpbmVzLmZvckVhY2goIGxpbmUgPT4ge1xyXG4gICAgICAgIGxpbmUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCF0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycyB8fCB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycyA9IFtvcmRlcl07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMucHVzaChvcmRlcik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGRhdGVQbGFubmluZ1RyYW5zcG9ydEV2ZW50LmVtaXQod2Vlayk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kaWFsb2cuc2hvd0Vycm9yKFwiTk9fTElORVNfVE9fUExBTlwiLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwbGFuU2VsZWN0ZWRMaW5lcyh0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgd2VlazogUGxhbm5pbmdUcmFuc3BvcnRXZWVrKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgcGxhbk9yZGVyID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0UGxhbk9yZGVyKHRoaXMuX3RyYW5zYWN0aW9uLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpO1xyXG4gICAgbGV0IGxpbmVzVG9QbGFuID0gcGxhbk9yZGVyLmxpbmVzO1xyXG4gICAgcGxhbk9yZGVyLmxpbmVzID0gW107XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRUcmFuc3BvcnRPcmRlcnMocGxhbk9yZGVyLCB0cmFuc3BvcnREYXkpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRTZXF1ZW5jZU9yZGVyVmFsdWUocGxhbk9yZGVyKTtcclxuICAgIGF3YWl0IHRoaXMuZ2V0T3JkZXJMaW5lc1BsYW5uZWQocGxhbk9yZGVyKTtcclxuXHJcbiAgICBsZXQgb3JpZ2luYWxQbGFubmVkTGluZUNvdW50ID0gcGxhbk9yZGVyLmxpbmVzLmxlbmd0aDtcclxuXHJcbiAgICBpZighdHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMuZmluZCggb3JkZXIgPT4gb3JkZXIudHJhbnNJZCA9PT0gcGxhbk9yZGVyLnRyYW5zSWQpKSB7XHJcbiAgICAgIHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLnB1c2gocGxhbk9yZGVyKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKGxpbmVzVG9QbGFuLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb24uY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMuZmlsdGVyKCB0cmFuc0xpbmVzID0+IHRyYW5zTGluZXMuc2VsZWN0ZWQpLmZvckVhY2goIHNlbGVjdGVkVHJhbnNMaW5lID0+IHtcclxuICAgICAgICBpZihsaW5lc1RvUGxhbi5maW5kKCBwbGFuTGluZSA9PiBwbGFuTGluZS5vcmlnaW5hbExpbmVOciA9PT0gc2VsZWN0ZWRUcmFuc0xpbmUubGluZU5yKSkge1xyXG4gICAgICAgICAgbGV0IG1hdGNoZWRMaW5lID0gbGluZXNUb1BsYW4uZmluZCggcGxhbkxpbmUgPT4gcGxhbkxpbmUub3JpZ2luYWxMaW5lTnIgPT09IHNlbGVjdGVkVHJhbnNMaW5lLmxpbmVOcik7XHJcbiAgICAgICAgICBpZighcGxhbk9yZGVyLmxpbmVzLmZpbmQoIHBsYW5uZWRMaW5lID0+IHBsYW5uZWRMaW5lLm9yaWdpbmFsTGluZU5yID09PSBtYXRjaGVkTGluZS5vcmlnaW5hbExpbmVOcikpIHtcclxuICAgICAgICAgICAgbWF0Y2hlZExpbmUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycy5maW5kKCBvcmRlciA9PiBvcmRlci50cmFuc0lkID09PSBtYXRjaGVkTGluZS50cmFuc0lkKS5saW5lcy5wdXNoKG1hdGNoZWRMaW5lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYodHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMuZmluZCggb3JkZXIgPT4gb3JkZXIudHJhbnNJZCA9PT0gcGxhbk9yZGVyLnRyYW5zSWQpLmxpbmVzLmxlbmd0aCA+IG9yaWdpbmFsUGxhbm5lZExpbmVDb3VudCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlUGxhbm5pbmdUcmFuc3BvcnRFdmVudC5lbWl0KHdlZWspO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kaWFsb2cuc2hvd0Vycm9yKFwiTk9fTElORVNfVE9fUExBTlwiLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTZXF1ZW5jZU9yZGVyVmFsdWUob3JkZXI6IFBsYW5PcmRlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgb3JkZXIucGxhbm5lZExpbmVJZCA9IGF3YWl0IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldE9yZGVyU2VxdWVuY2VWYWx1ZSgpO1xyXG4gICAgb3JkZXIuY2hhaW5lZCA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctbWFpbi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRVUsaUJBQWlCLEVBQ2hDLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUk5RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUUvRyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUVwRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFpQzdH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QUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUxRCxDQUFDO0tBQUE7OztZQW5TRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtnQkFDekMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTVDTyx1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLFFBQVE7WUFDUiwyQkFBMkI7WUFRM0IsYUFBYTtZQXpCSixpQkFBaUI7Ozt5QkFzRS9CLEtBQUs7MEJBR0wsS0FBSzs4QkFHTCxLQUFLO3NDQUdMLEtBQUs7MkNBR0wsTUFBTTswQ0FHTixNQUFNOzJCQUdOLFNBQVMsU0FBQyxjQUFjO3lCQUN4QixTQUFTLFNBQUMsWUFBWTs2QkFPdEIsU0FBUyxTQUFDLGVBQWU7d0JBbUJ6QixXQUFXLFNBQUMscUNBQXFDO3VCQU9qRCxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdDaGVja2VkLFxyXG4gIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtDYWxlbmRhclZpZXd9IGZyb20gJ0Bjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2Rlc30gZnJvbSBcIi4uLy4uLy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctY2FsZW5kYXItbW9kZXMuZW51bVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXN9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLXZpZXctbW9kZXMuZW51bVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vZGVsaXZlcnktcGxhbm5pbmcvc2VydmljZS9kZWxpdmVyeS1wbGFubmluZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXRyYW5zcG9ydC13ZWVrLmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXRyYW5zcG9ydC13ZWVrLWRheS5ib1wiO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLmJvXCI7XHJcbmltcG9ydCB7R2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nZXQtdHJhbnNwb3J0LW9yZGVycy1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7T3JkZXJMaW5lc1RvUGxhblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZXMtdG8tcGxhbi1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdGaWx0ZXJPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctZmlsdGVyLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1BsYW5PcmRlckxpbmV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci1saW5lLmJvXCI7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtPcmRlckxpbmVzUGxhbm5lZFJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZXMtcGxhbm5lZC1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7dHJhbnNsYXRlU3RhdGVtZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tcGlsZXItY2xpL3NyYy9uZ3RzYy90cmFuc2xhdG9yXCI7XHJcbmltcG9ydCB7XHJcbiAgRGVsaXZlcnlQbGFubmluZ092ZXJ2aWV3UG9wdXBDb21wb25lbnRcclxufSBmcm9tIFwiLi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctcG9wdXAvZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXctcG9wdXAuY29tcG9uZW50XCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZGVsaXZlcnktcGxhbm5pbmctb3ZlcnZpZXdcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3LXBvcHVwICNwbGFubmluZ1BvcHVwICpuZ0lmPVwic2hvd05vdGVEaWFsb2dcIiAoY2xvc2VFdmVudCk9XCJzaG93Tm90ZURpYWxvZyA9IGZhbHNlXCIgKG9uU3VjY2VlZGVkUGxhbkFjdGlvbik9XCJoYW5kbGVQb3B1cFBsYW5FdmVudCgkZXZlbnQpXCI+PC9jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy1wb3B1cD5cclxuICAgIDxkaXYgY2xhc3M9XCJkZWxpdmVyeS1vdmVydmlldy13cmFwcGVyXCIgW2NsYXNzLnNpZGViYXJdPVwiY3VycmVudFZpZXdNb2RlID09PSAnREFZU19BUk9VTkQnXCI+XHJcbiAgICAgIDxjby1kYXRlLXBsYW5uaW5nIFt2aWV3XT1cImN1cnJlbnRWaWV3TW9kZVwiIFtzZWxlY3RlZERhdGVdPVwiZGF0ZVwiIChyYW5nZUNoYW5nZSk9XCJoYW5kbGVEYXRlUmFuZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgID48L2NvLWRhdGUtcGxhbm5pbmc+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZGF0ZS1wbGFubmluZ1wiICNyb3dDb250YWluZXIgKm5nRm9yPVwibGV0IHRyYW5zcG9ydFdlZWtSb3cgb2YgcGxhblRyYW5zcG9ydFdlZWtcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCIgI2NvbHVtbkVsZW1cclxuICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0cmFuc1BvcnREYXkgb2YgZmlsdGVyV2Vla0FycmF5KHdlZWtBcnJheSh0cmFuc3BvcnRXZWVrUm93KSk7IGluZGV4IGFzIGlcIj5cclxuICAgICAgICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlXHJcbiAgICAgICAgICAgIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50LCB0cmFuc1BvcnREYXkpXCJcclxuICAgICAgICAgICAgKGRyb3ApPVwiZHJvcHBlZCgkZXZlbnQsIHRyYW5zcG9ydFdlZWtSb3csIHRyYW5zUG9ydERheSlcIlxyXG4gICAgICAgICAgICAoZHJhZ2VuZCk9XCJkcmFnRW5kKCRldmVudClcIlxyXG4gICAgICAgICAgICBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxyXG4gICAgICAgICAgICBbdHJhbnNwb3J0RGF5XT1cInRyYW5zUG9ydERheVwiXHJcbiAgICAgICAgICAgIChkZWxldGVMaW5lRXZlbnQpPVwiaGFuZGxlRGVsZXRlT3JkZXIoJGV2ZW50LCB0cmFuc3BvcnRXZWVrUm93KVwiXHJcbiAgICAgICAgICA+PC9jby1kZWxpdmVyeS1wbGFubmluZy1vdmVydmlldy10aWxlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZWxpdmVyeVBsYW5uaW5nT3ZlcnZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuXHJcbiAgcHVibGljIGRlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXM6IHR5cGVvZiBEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzID0gRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2RlcztcclxuXHJcbiAgcHVibGljIGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIHB1YmxpYyBhdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93Tm90ZURpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwbGFuT3JkZXJzOiBQbGFuT3JkZXJbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXJyZW50TW9kZTogRGVsaXZlcnlQbGFubmluZ0NhbGVuZGFyTW9kZXMgPSBEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2Rlcy5XZWVrO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXJyZW50Vmlld01vZGU6IENhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldy5XZWVrVmlldztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VycmVudFBsYW5uaW5nVmlld01vZGU6IERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXMgPSB0aGlzLmRlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXMuRnVsbHNjcmVlbjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0RXZlbnQ6IEV2ZW50RW1pdHRlcjxQbGFubmluZ1RyYW5zcG9ydFdlZWs+ID0gbmV3IEV2ZW50RW1pdHRlcjxQbGFubmluZ1RyYW5zcG9ydFdlZWs+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZXNldFBsYW5uaW5nVHJhbnNwb3J0RXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgncm93Q29udGFpbmVyJykgcm93Q29udGFpbmVyO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbkVsZW0nKSBjb2x1bW5FbGVtO1xyXG4gIHB1YmxpYyBjb2x1bW5OdW0gPSAzOyAvL2luaXRpYWwgY291bnRcclxuICBwdWJsaWMgdGlsZVNpemUgPSAzMDA7IC8vb25lIHRpbGUgc2hvdWxkIGhhdmUgdGhpcyB3aWR0aFxyXG5cclxuICBwdWJsaWMgcG9wdXBSZWY6IERlbGl2ZXJ5UGxhbm5pbmdPdmVydmlld1BvcHVwQ29tcG9uZW50O1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZCgncGxhbm5pbmdQb3B1cCcpXHJcbiAgcHVibGljIHNldCBwb3B1cENvbXBvbmVudCh2YWx1ZSkge1xyXG4gICAgdGhpcy5wb3B1cFJlZiA9IHZhbHVlO1xyXG4gIH07XHJcblxyXG5cclxuICBwdWJsaWMgZ2V0IHBsYW5UcmFuc3BvcnRXZWVrKCkge1xyXG4gICAgaWYgKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnBsYW5UcmFuc3BvcnRXZWVrLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhblRyYW5zcG9ydFdlZWs7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkcmFnZ2luZygpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZztcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW92ZXJ2aWV3XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vcmVjYWxjdWxhdGluZyB1cG9uIGJyb3dzZXIgd2luZG93IHJlc2l6ZVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNldENvbE51bSgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLCBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZXJ2aWNlLCBwcml2YXRlIF9kYXRlUGlwZTogRGF0ZVBpcGUsIHByaXZhdGUgX3RyYW5zYWN0aW9uQ29uOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsIHByaXZhdGUgX2RpYWxvZzogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9jYWxjdWxhdGluZyB1cG9uIGxvYWRpbmdcclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLnNldENvbE51bSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyBkcm9wcGVkKGV2OiBEcmFnRXZlbnQsIHdlZWs6IFBsYW5uaW5nVHJhbnNwb3J0V2VlaywgdHJhbnNwb3J0RGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXkpIHtcclxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBkYXRhID0gZXYuZGF0YVRyYW5zZmVyLmdldERhdGEoXCJ0ZXh0XCIpO1xyXG4gICAgaWYgKGRhdGEgIT0gXCJsaW5lc1wiKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uLmdldFRyYW5zYWN0aW9uQnlJZChwYXJzZUludChkYXRhKSlcclxuICAgICAgY29uc3QgcGxhbk9yZGVyID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0UGxhbk9yZGVyKHBhcnNlSW50KGRhdGEpKVxyXG4gICAgICBpZiAocGxhbk9yZGVyKSB7XHJcbiAgICAgICAgdGhpcy5zaG93Tm90ZURpYWxvZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIGlmKHRoaXMucG9wdXBSZWYpIHtcclxuICAgICAgICAgIHRoaXMucG9wdXBSZWYucGxhbk9yZGVyID0gcGxhbk9yZGVyO1xyXG4gICAgICAgICAgdGhpcy5wb3B1cFJlZi50cmFuc3BvcnREYXkgPSB0cmFuc3BvcnREYXk7XHJcbiAgICAgICAgICB0aGlzLnBvcHVwUmVmLndlZWsgPSB3ZWVrO1xyXG4gICAgICAgICAgdGhpcy5wb3B1cFJlZi50cmFuc2FjdGlvbiA9IHRoaXMuX3RyYW5zYWN0aW9uLmN1cnJlbnRUcmFuc2FjdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5maW5kKHRyYW5zYWN0aW9uTGluZSA9PiB0cmFuc2FjdGlvbkxpbmUuc2VsZWN0ZWQpKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5wbGFuU2VsZWN0ZWRMaW5lcyh0cmFuc3BvcnREYXksIHdlZWspXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhbGxvd0Ryb3AoZXYsIHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5KSB7XHJcbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRyYWdnaW5nKSB7XHJcbiAgICAgIGlmICh0cmFuc3BvcnREYXkubWludXRlcyArIHRyYW5zcG9ydERheS5taW51dGVzIDwgdHJhbnNwb3J0RGF5Lm1heE1pbnV0ZXMgJiYgdHJhbnNwb3J0RGF5Lm1heE9yZGVyQW1vdW50IDwgdHJhbnNwb3J0RGF5Lm9yZGVyQW1vdW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHNldENvbE51bSgpIHtcclxuICAgIGlmICh0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS52aWV3TW9kZSA9PT0gRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2Rlcy5TaWRlYmFyKSB7XHJcbiAgICAgIHRoaXMuY29sdW1uTnVtID0gMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB3aWR0aCA9IHRoaXMucm93Q29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRXaWR0aDtcclxuICAgICAgaWYgKHdpZHRoKSB7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5OdW0gPSBNYXRoLnRydW5jKHdpZHRoIC8gdGhpcy50aWxlU2l6ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgZHJhZ0VuZChldikge1xyXG4gICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHdlZWtBcnJheShhcnI6IFBsYW5uaW5nVHJhbnNwb3J0V2Vlayk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheVtdIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhhcnIpLnNvcnQoKS5tYXAoa2V5ID0+IGFycltrZXldKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWx0ZXJXZWVrQXJyYXkod2Vla0FycmF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXSkge1xyXG4gICAgcmV0dXJuIHdlZWtBcnJheS5zbGljZSgwLCB0aGlzLmNvbHVtbk51bSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkSG91cnMoZGF0ZSwgaG91cnMpIHtcclxuICAgIGNvbnN0IGhvdXJzVG9BZGQgPSBob3VycyAqIDYwICogNjAgKiAxMDAwO1xyXG4gICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgaG91cnNUb0FkZCk7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEYXRlUmFuZ2VDaGFuZ2UobmV3RGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFN0YXJ0RGF0ZSA9IG5ld0RhdGU7XHJcbiAgICB0aGlzLnJlc2V0UGxhbm5pbmdUcmFuc3BvcnRFdmVudC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlRGVsZXRlT3JkZXIoZGVsZXRlUmVzdWx0OiBbUGxhbk9yZGVyLCBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXldLCBwbGFubmluZ1RyYW5zcG9ydFdlZWs6IFBsYW5uaW5nVHJhbnNwb3J0V2Vlaykge1xyXG4gICAgbGV0IG9yZGVyID0gZGVsZXRlUmVzdWx0WzBdO1xyXG4gICAgaWYgKG9yZGVyKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0VHJhbnNwb3J0T3JkZXJzKGRlbGV0ZVJlc3VsdFswXSwgZGVsZXRlUmVzdWx0WzFdKTtcclxuICAgICAgYXdhaXQgdGhpcy5nZXRPcmRlckxpbmVzUGxhbm5lZChvcmRlcik7XHJcbiAgICAgIGlmIChkZWxldGVSZXN1bHRbMF0ubGluZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG9yZGVyPy5saW5lcy5mb3JFYWNoKGxpbmUgPT4ge1xyXG4gICAgICAgICAgbGluZS5wbGFubmVkID0gZmFsc2U7XHJcbiAgICAgICAgICBsaW5lLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgb3JkZXIubGluZXMgPSBbXVxyXG4gICAgICAgIGRlbGV0ZVJlc3VsdFsxXS5wbGFubmVkT3JkZXJzLnNwbGljZShkZWxldGVSZXN1bHRbMV0ucGxhbm5lZE9yZGVycy5pbmRleE9mKG9yZGVyKSwgMSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQbGFubmluZ1RyYW5zcG9ydEV2ZW50LmVtaXQocGxhbm5pbmdUcmFuc3BvcnRXZWVrKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2cuc2hvd0Vycm9yKFwiTk9fTElORVNfVE9fREVMRVRFXCIsIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBhc3luYyBnZXRPcmRlckxpbmVzUGxhbm5lZChvcmRlcjogUGxhbk9yZGVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgcmVxdWVzdDogT3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0ID0gbmV3IE9yZGVyTGluZXNQbGFubmVkUmVxdWVzdCgpO1xyXG4gICAgbGV0IGZpbHRlck9iajogUGxhbm5pbmdGaWx0ZXJPYmplY3QgPSBuZXcgUGxhbm5pbmdGaWx0ZXJPYmplY3QoKTtcclxuICAgIHJlcXVlc3QucGxhbm5lZCA9IHRydWU7XHJcbiAgICByZXF1ZXN0LnBsYW5uaW5nSWQgPSB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50UGxhbm5pbmcucGxhbm5pbmdJZDtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IG9yZGVyLnRyYW5zSWQ7XHJcbiAgICByZXF1ZXN0LnBsYW5uZWRMaW5lSWQgPSBvcmRlci5wbGFubmVkTGluZUlkO1xyXG4gICAgZmlsdGVyT2JqLm9ubHlDdXJyZW50V2VlayA9IHRydWU7XHJcbiAgICBmaWx0ZXJPYmouYmVnaW5DdXJyZW50V2VlayA9IG5ldyBEYXRlKCk7XHJcbiAgICBmaWx0ZXJPYmouY2hlY2tPcmRlckxpbmVzID0gMTtcclxuICAgIHJlcXVlc3QuZmlsdGVyT2JqZWN0ID0gZmlsdGVyT2JqO1xyXG4gICAgb3JkZXIubGluZXMucHVzaCguLi5hd2FpdCB0aGlzLl90cmFuc2FjdGlvbkNvbi5nZXRPcmRlckxpbmVzUGxhbm5lZChyZXF1ZXN0KSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRyYW5zcG9ydE9yZGVycyhvcmRlcjogUGxhbk9yZGVyLCB0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHJlcXVlc3Q6IEdldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3QgPSBuZXcgR2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5wbGFubmluZ0lkID0gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFBsYW5uaW5nLnBsYW5uaW5nSWQ7XHJcbiAgICByZXF1ZXN0LmRhdGUgPSB0cmFuc3BvcnREYXkuZGF0ZTtcclxuICAgIHJlcXVlc3QudHJhbnNwb3J0SWQgPSB0cmFuc3BvcnREYXkudHJhbnNwb3J0LnRyYW5zcG9ydElkO1xyXG4gICAgb3JkZXIuc3RhcnRUaW1lID0gdHJhbnNwb3J0RGF5LnRyYW5zcG9ydC5zdGFydFRpbWU7XHJcbiAgICBsZXQgZW5kRGF0ZSA9IG5ldyBEYXRlKHRyYW5zcG9ydERheS50cmFuc3BvcnQuc3RhcnRUaW1lKTtcclxuICAgIHRoaXMuYWRkSG91cnMoZW5kRGF0ZSwgMSk7XHJcbiAgICBvcmRlci5lbmRUaW1lID0gZW5kRGF0ZTtcclxuICAgIHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0VHJhbnNwb3J0T3JkZXJzKHJlcXVlc3QpO1xyXG4gICAgdHJhbnNwb3J0RGF5Lm9yZGVyc0xvYWRlZCA9IHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBsYW5PcmRlckxpbmVzKG9yZGVyOiBQbGFuT3JkZXIsIHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LCB3ZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWspOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChvcmRlci5saW5lcy5sZW5ndGgpIHtcclxuICAgICAgb3JkZXIubGluZXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICBvcmRlci50YXNrcyA9IFtdO1xyXG4gICAgICBvcmRlci50YXNrc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgIG9yZGVyLmxpbmVzLmZvckVhY2goIGxpbmUgPT4ge1xyXG4gICAgICAgIGxpbmUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCF0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycyB8fCB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycyA9IFtvcmRlcl07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMucHVzaChvcmRlcik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGRhdGVQbGFubmluZ1RyYW5zcG9ydEV2ZW50LmVtaXQod2Vlayk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kaWFsb2cuc2hvd0Vycm9yKFwiTk9fTElORVNfVE9fUExBTlwiLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwbGFuU2VsZWN0ZWRMaW5lcyh0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgd2VlazogUGxhbm5pbmdUcmFuc3BvcnRXZWVrKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgcGxhbk9yZGVyID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db24uZ2V0UGxhbk9yZGVyKHRoaXMuX3RyYW5zYWN0aW9uLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpO1xyXG4gICAgbGV0IGxpbmVzVG9QbGFuID0gcGxhbk9yZGVyLmxpbmVzO1xyXG4gICAgcGxhbk9yZGVyLmxpbmVzID0gW107XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRUcmFuc3BvcnRPcmRlcnMocGxhbk9yZGVyLCB0cmFuc3BvcnREYXkpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRTZXF1ZW5jZU9yZGVyVmFsdWUocGxhbk9yZGVyKTtcclxuICAgIGF3YWl0IHRoaXMuZ2V0T3JkZXJMaW5lc1BsYW5uZWQocGxhbk9yZGVyKTtcclxuXHJcbiAgICBsZXQgb3JpZ2luYWxQbGFubmVkTGluZUNvdW50ID0gcGxhbk9yZGVyLmxpbmVzLmxlbmd0aDtcclxuXHJcbiAgICBpZighdHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMuZmluZCggb3JkZXIgPT4gb3JkZXIudHJhbnNJZCA9PT0gcGxhbk9yZGVyLnRyYW5zSWQpKSB7XHJcbiAgICAgIHRyYW5zcG9ydERheS5wbGFubmVkT3JkZXJzLnB1c2gocGxhbk9yZGVyKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKGxpbmVzVG9QbGFuLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb24uY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMuZmlsdGVyKCB0cmFuc0xpbmVzID0+IHRyYW5zTGluZXMuc2VsZWN0ZWQpLmZvckVhY2goIHNlbGVjdGVkVHJhbnNMaW5lID0+IHtcclxuICAgICAgICBpZihsaW5lc1RvUGxhbi5maW5kKCBwbGFuTGluZSA9PiBwbGFuTGluZS5vcmlnaW5hbExpbmVOciA9PT0gc2VsZWN0ZWRUcmFuc0xpbmUubGluZU5yKSkge1xyXG4gICAgICAgICAgbGV0IG1hdGNoZWRMaW5lID0gbGluZXNUb1BsYW4uZmluZCggcGxhbkxpbmUgPT4gcGxhbkxpbmUub3JpZ2luYWxMaW5lTnIgPT09IHNlbGVjdGVkVHJhbnNMaW5lLmxpbmVOcik7XHJcbiAgICAgICAgICBpZighcGxhbk9yZGVyLmxpbmVzLmZpbmQoIHBsYW5uZWRMaW5lID0+IHBsYW5uZWRMaW5lLm9yaWdpbmFsTGluZU5yID09PSBtYXRjaGVkTGluZS5vcmlnaW5hbExpbmVOcikpIHtcclxuICAgICAgICAgICAgbWF0Y2hlZExpbmUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0cmFuc3BvcnREYXkucGxhbm5lZE9yZGVycy5maW5kKCBvcmRlciA9PiBvcmRlci50cmFuc0lkID09PSBtYXRjaGVkTGluZS50cmFuc0lkKS5saW5lcy5wdXNoKG1hdGNoZWRMaW5lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYodHJhbnNwb3J0RGF5LnBsYW5uZWRPcmRlcnMuZmluZCggb3JkZXIgPT4gb3JkZXIudHJhbnNJZCA9PT0gcGxhbk9yZGVyLnRyYW5zSWQpLmxpbmVzLmxlbmd0aCA+IG9yaWdpbmFsUGxhbm5lZExpbmVDb3VudCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlUGxhbm5pbmdUcmFuc3BvcnRFdmVudC5lbWl0KHdlZWspO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9kaWFsb2cuc2hvd0Vycm9yKFwiTk9fTElORVNfVE9fUExBTlwiLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTZXF1ZW5jZU9yZGVyVmFsdWUob3JkZXI6IFBsYW5PcmRlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgb3JkZXIucGxhbm5lZExpbmVJZCA9IGF3YWl0IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldE9yZGVyU2VxdWVuY2VWYWx1ZSgpO1xyXG4gICAgb3JkZXIuY2hhaW5lZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVQb3B1cFBsYW5FdmVudChldmVudDpbUGxhbk9yZGVyLCBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXksIFBsYW5uaW5nVHJhbnNwb3J0V2Vla10pIHtcclxuICAgIHRoaXMuc2hvd05vdGVEaWFsb2cgPSBmYWxzZTtcclxuICAgIGF3YWl0IHRoaXMuZ2V0VHJhbnNwb3J0T3JkZXJzKGV2ZW50WzBdLCBldmVudFsxXSk7XHJcbiAgICBhd2FpdCB0aGlzLmdldFNlcXVlbmNlT3JkZXJWYWx1ZShldmVudFswXSlcclxuICAgIGF3YWl0IHRoaXMuZ2V0T3JkZXJMaW5lc1BsYW5uZWQoZXZlbnRbMF0pXHJcbiAgICBhd2FpdCB0aGlzLnBsYW5PcmRlckxpbmVzKGV2ZW50WzBdLCBldmVudFsxXSwgZXZlbnRbMl0pO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|