@schneideress/dashboardframework 0.0.120 → 0.0.122
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/schneideress-dashboardframework.umd.js +31 -9
- package/bundles/schneideress-dashboardframework.umd.js.map +1 -1
- package/bundles/schneideress-dashboardframework.umd.min.js +1 -1
- package/bundles/schneideress-dashboardframework.umd.min.js.map +1 -1
- package/esm2015/gridster/lib/gridster.component.js +1 -1
- package/esm2015/gridster/lib/gridsterItem.component.js +1 -1
- package/esm2015/lib/ra-dashboard-area/ra.dashboard.area.js +5 -3
- package/esm2015/lib/ra-widget-container/ra.widget.container.component.js +6 -3
- package/esm5/gridster/lib/gridster.component.js +1 -1
- package/esm5/gridster/lib/gridsterItem.component.js +1 -1
- package/esm5/lib/ra-dashboard-area/ra.dashboard.area.js +5 -3
- package/esm5/lib/ra-widget-container/ra.widget.container.component.js +6 -3
- package/fesm2015/schneideress-dashboardframework.js +11 -6
- package/fesm2015/schneideress-dashboardframework.js.map +1 -1
- package/fesm5/schneideress-dashboardframework.js +11 -6
- package/fesm5/schneideress-dashboardframework.js.map +1 -1
- package/lib/ra-widget-container/ra.widget.container.component.d.ts +2 -1
- package/package.json +1 -1
- package/schneideress-dashboardframework.metadata.json +1 -1
|
@@ -635,7 +635,7 @@ GridsterComponent.decorators = [
|
|
|
635
635
|
selector: 'gridster',
|
|
636
636
|
template: "<div class=\"gridster-column\" *ngFor=\"let column of gridColumns; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"></div>\r\n<div class=\"gridster-row\" *ngFor=\"let row of gridRows; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"></div>\r\n<ng-content></ng-content>\r\n<gridster-preview class=\"gridster-preview\"></gridster-preview>\r\n",
|
|
637
637
|
encapsulation: ViewEncapsulation.None,
|
|
638
|
-
styles: ["gridster{clear:both;position:relative;box-sizing:border-box;background:#fff;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;overflow:auto}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto;flex-flow:column}gridster.mobile gridster-item{position:relative;width:100%!important;min-height:300px!important}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid #ccc;border-right:1px solid #ccc}gridster .gridster-row{border-top:1px solid #ccc;border-bottom:1px solid #ccc}"]
|
|
638
|
+
styles: ["gridster{clear:both;position:relative;box-sizing:border-box;background:#fff;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;overflow:auto}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:column}gridster.mobile gridster-item{position:relative;width:100%!important;min-height:300px!important}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;-webkit-transition:.3s;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid #ccc;border-right:1px solid #ccc}gridster .gridster-row{border-top:1px solid #ccc;border-bottom:1px solid #ccc}"]
|
|
639
639
|
}] }
|
|
640
640
|
];
|
|
641
641
|
/** @nocollapse */
|
|
@@ -165,7 +165,7 @@ GridsterItemComponent.decorators = [
|
|
|
165
165
|
selector: 'gridster-item',
|
|
166
166
|
template: "<ng-content></ng-content>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.s || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-s\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.e || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-e\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.n || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-n\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.w || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-w\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.se || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-se\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.ne || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-ne\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.sw || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-sw\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.nw || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-nw\"></div>\r\n",
|
|
167
167
|
encapsulation: ViewEncapsulation.None,
|
|
168
|
-
styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-moving,gridster-item.gridster-item-resizing{transition:none;z-index:2;box-shadow:0 0 5px 5px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:n-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:e-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:s-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:w-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}"]
|
|
168
|
+
styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;-webkit-transition:.3s;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-moving,gridster-item.gridster-item-resizing{-webkit-transition:none;transition:none;z-index:2;box-shadow:0 0 5px 5px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:n-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:e-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:s-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:w-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}"]
|
|
169
169
|
}] }
|
|
170
170
|
];
|
|
171
171
|
/** @nocollapse */
|
|
@@ -286,6 +286,8 @@ export class RADashboardArea {
|
|
|
286
286
|
* @return {?}
|
|
287
287
|
*/
|
|
288
288
|
deleteWidget(widgetInstanceId, isalertDisabled = false) {
|
|
289
|
+
debugger;
|
|
290
|
+
console.log("goCorona");
|
|
289
291
|
/** @type {?} */
|
|
290
292
|
let widget = this.widgetList.filter((/**
|
|
291
293
|
* @param {?} item
|
|
@@ -298,7 +300,7 @@ export class RADashboardArea {
|
|
|
298
300
|
this.widgetList.splice(this.widgetList.indexOf(widget[0]), 1);
|
|
299
301
|
this.setAreaHeight();
|
|
300
302
|
if (!isalertDisabled) {
|
|
301
|
-
this.notifier.notify('success', " " + this.translateService.translate('
|
|
303
|
+
this.notifier.notify('success', " " + this.translateService.translate('Common.widget') + " " + widget[0].widgetInfo.widgetTitle + " " + this.translateService.translate('Common.deletedSuccesfully') + " ");
|
|
302
304
|
}
|
|
303
305
|
this.options.compactType = 'compactLeft&Up';
|
|
304
306
|
this.options.api.optionsChanged();
|
|
@@ -433,7 +435,7 @@ RADashboardArea.decorators = [
|
|
|
433
435
|
{ type: Component, args: [{
|
|
434
436
|
selector: 'ra-dashboard-area',
|
|
435
437
|
template: "<div #gridWrapper class=\"wrap gridster\" [style.height.px]=\"gridheight\" >\r\n<!-- <div #gridWrapper class=\"wrap gridster\"> -->\r\n <gridster [options]=\"options\" style=\"height:100%;\">\r\n <gridster-item [item]=\"item\" *ngFor=\"let item of widgetList\">\r\n <ra-widget-container [app-config]=\"appConfig\" [event-bus]=\"raDashboardEventBus\" (widgetDeleted)=\"deleteWidget($event)\" [data]=\"item\"\r\n [global-filter]=\"globalFilter\" [grid-cell-height]=\"item.widgetInfo.rowHeight\" [widget-width]=\"item.cols\" [widget-height]=\"item.rows\" [widget-instance-id]=\"item.widgetInstanceId\" [dom-resized]=\"domResized\"></ra-widget-container>\r\n </gridster-item>\r\n </gridster>\r\n <notifier-container></notifier-container>\r\n</div>\r\n\r\n",
|
|
436
|
-
styles: ["gridster{width:inherit;resize:height;display:flex;background-color:#ededed;overflow-y:hidden!important}.dvheader{width:100%;height:35px;background:#000;color:#fff;padding:7px 3px 5px 6px;text-transform:uppercase}gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;box-shadow:0 1px 10px rgba(0,0,0,.05)}gridster-item:hover{box-shadow:0 1px 10px rgba(0,0,0,.15)}"]
|
|
438
|
+
styles: ["gridster{width:inherit;resize:height;display:-webkit-box;display:flex;background-color:#ededed;overflow-y:hidden!important}.dvheader{width:100%;height:35px;background:#000;color:#fff;padding:7px 3px 5px 6px;text-transform:uppercase}gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;-webkit-transition:.3s;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;box-shadow:0 1px 10px rgba(0,0,0,.05)}gridster-item:hover{box-shadow:0 1px 10px rgba(0,0,0,.15)}"]
|
|
437
439
|
}] }
|
|
438
440
|
];
|
|
439
441
|
/** @nocollapse */
|
|
@@ -531,4 +533,4 @@ if (false) {
|
|
|
531
533
|
*/
|
|
532
534
|
RADashboardArea.prototype.notifier;
|
|
533
535
|
}
|
|
534
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEuZGFzaGJvYXJkLmFyZWEuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2NobmVpZGVyZXNzL2Rhc2hib2FyZGZyYW1ld29yay8iLCJzb3VyY2VzIjpbImxpYi9yYS1kYXNoYm9hcmQtYXJlYS9yYS5kYXNoYm9hcmQuYXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUE0QixNQUFNLEVBQWEsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0ksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFRN0QsTUFBTSxPQUFPLGVBQWU7Ozs7Ozs7O0lBa0MxQixZQUFvQixnQkFBb0MsRUFDOUMsTUFBYyxFQUNkLFVBQThCLEVBQzlCLGdCQUFvQyxFQUNwQyxRQUF5QjtRQUpmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFuQzVCLGVBQVUsR0FBRyxLQUFLLEVBQWdCLENBQUM7UUFFbkMsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQU14QixtQkFBYyxHQUFZLEtBQUss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U0FBUyxTQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7dUJBRTFDLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Ozs7SUFyQnpDLHFDQUEwQzs7SUFDMUMsa0NBQStCOztJQUMvQixxQ0FBZ0M7Ozs7O0lBRWhDLHlDQUE0Qjs7Ozs7SUFDNUIsNENBQStCOzs7OztJQUMvQix5Q0FBNEI7Ozs7O0lBQzVCLGlEQUFvQzs7Ozs7SUFDcEMseUNBQXdDOztJQUN4QyxxQ0FBZ0M7O0lBRWhDLDBDQUFvRDs7SUFDcEQsa0NBQW1DOztJQUNuQyx1Q0FBMEM7O0lBQzFDLDhDQUE2RDs7SUFDN0QsdUNBQWlEOztJQUNqRCxzQ0FBK0M7O0lBQy9DLG9DQUEyQzs7SUFFM0Msc0NBQXFFOzs7OztJQVl6RCwyQ0FBNEM7Ozs7O0lBQ3RELGlDQUFzQjs7Ozs7SUFDdEIscUNBQXNDOzs7OztJQUN0QywyQ0FBNEM7Ozs7O0lBQzVDLG1DQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBPbkluaXQsIENvbXBvbmVudCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBOZ1pvbmUsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEdyaWRzdGVyQ29uZmlnLCBHcmlkc3Rlckl0ZW0gfSBmcm9tICcuLi8uLi9ncmlkc3Rlci9pbmRleCc7XHJcbmltcG9ydCB7IFJhRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4uL3JhLmRhc2hib2FyZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUkFEYXNoYm9hcmRFdmVudEJ1cyB9IGZyb20gJy4uL3JhLmRhc2hiYXJkLmV2ZW50LmJ1cyc7XHJcbmltcG9ydCB7IFJBRXZlbnQgfSBmcm9tICcuLi9yYS5ldmVudC5lbnVtJztcclxuaW1wb3J0IHsgR3JpZHN0ZXJDb25maWdEZWZhdWx0U2V0dGluZ3MgfSBmcm9tICcuLi9yYS5ncmlkc3Rlci5jb25maWcnO1xyXG5pbXBvcnQgeyBJV2lkZ2V0SW5mbywgSUFwcENvbmZpZyB9IGZyb20gJ0BzY2huZWlkZXJlc3Mvd2lkZ2V0ZnJhbWV3b3JrJztcclxuaW1wb3J0IHsgTmd4VWlMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnbmd4LXVpLWxvYWRlcic7XHJcbmltcG9ydCB7IE5vdGlmaWVyU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItbm90aWZpZXInO1xyXG5pbXBvcnQgeyBSQVRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAc2NobmVpZGVyZXNzL3JhLWNvbW1vbic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdyYS1kYXNoYm9hcmQtYXJlYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JhLmRhc2hib2FyZC5hcmVhLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhLmRhc2hib2FyZC5hcmVhLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSQURhc2hib2FyZEFyZWEgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcblxyXG4gIHB1YmxpYyB3aWRnZXRMaXN0ID0gQXJyYXk8R3JpZHN0ZXJJdGVtPigpO1xyXG4gIHB1YmxpYyBvcHRpb25zOiBHcmlkc3RlckNvbmZpZztcclxuICBwdWJsaWMgZ3JpZGhlaWdodDogbnVtYmVyID0gMzAwO1xyXG5cclxuICBwcml2YXRlIGNvbmlmZ0FkZENsaWNrOiBhbnk7XHJcbiAgcHJpdmF0ZSB3aWRnZXREZWxldGVFdmVudDogYW55O1xyXG4gIHByaXZhdGUgd2lkZ2V0QWRkRXZlbnQ6IGFueTtcclxuICBwcml2YXRlIHdpZGdldExpYnJhcnlEb25lQ2xpY2s6IGFueTtcclxuICBwcml2YXRlIGlzV2lkZ2V0TG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRvbVJlc2l6ZWQ6Ym9vbGVhbj1mYWxzZTtcclxuXHJcbiAgQElucHV0KCd1c2VyLWRhc2hib2FyZC1pZCcpIHVzZXJEYXNoYm9hcmRJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgnYXJlYS1rZXknKSBhcmVhS2V5OiBzdHJpbmc7XHJcbiAgQElucHV0KCdnbG9iYWwtZmlsdGVyJykgZ2xvYmFsRmlsdGVyOiBhbnk7XHJcbiAgQElucHV0KCdldmVudC1idXMnKSByYURhc2hib2FyZEV2ZW50QnVzOiBSQURhc2hib2FyZEV2ZW50QnVzO1xyXG4gIEBJbnB1dCgnd2lkZ2V0LWhlaWdodCcpIHdpZGdldEhlaWdodDogbnVtYmVyID0gMztcclxuICBASW5wdXQoJ3dpZGdldC13aWR0aCcpIHdpZGdldFdpZHRoOiBudW1iZXIgPSA1O1xyXG4gIEBJbnB1dCgnYXBwLWNvbmZpZycpIGFwcENvbmZpZzogSUFwcENvbmZpZztcclxuXHJcbiAgQFZpZXdDaGlsZCgnZ3JpZFdyYXBwZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZ3JpZFdyYXBwZXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICB2YXIgYXJlYUNvbnRleHQgPSB0aGlzO1xyXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIGFyZWFDb250ZXh0LnNldEFyZWFIZWlnaHQoKTsgICBcclxuICAgICAgYXJlYUNvbnRleHQuZG9tUmVzaXplZD0hYXJlYUNvbnRleHQuZG9tUmVzaXplZDsgIFxyXG4gICAgfSwgMTAwMCk7XHJcblxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXNoYm9hcmRTZXJ2aWNlOiBSYURhc2hib2FyZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBuZ3hTZXJ2aWNlOiBOZ3hVaUxvYWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFJBVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbm90aWZpZXI6IE5vdGlmaWVyU2VydmljZSkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdGlhdGVHcmlkc3RlckNvbmZpZygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cclxuICAgIGlmICh0aGlzLnJhRGFzaGJvYXJkRXZlbnRCdXMgJiYgdGhpcy5hcHBDb25maWcgJiYgIXRoaXMuaXNXaWRnZXRMb2FkZWQpIHtcclxuICAgICAgdGhpcy5pc1dpZGdldExvYWRlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMubG9hZFdpZGdldHModGhpcy51c2VyRGFzaGJvYXJkSWQsIHRoaXMuYXJlYUtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cyAmJiBjaGFuZ2VzLnJhRGFzaGJvYXJkRXZlbnRCdXMuY3VycmVudFZhbHVlICE9IGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5pdGl0YXRlRXZlbnRCdXNTdWJzY3JpdGlvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBpbnZva2VSZXNpemVFdmVudCgpIHtcclxuICAvLyAgIHRoaXMud2lkZ2V0Q29udGFpbmVycy5mb3JFYWNoKGZ1bmN0aW9uKGNvbnRhaW5lcixpKXtcclxuICAvLyAgICAgY29udGFpbmVyLmludm9rZVdpZGdldFJlc2l6ZWRFdmVudCgpO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvKipUbyBzZXQgR3JpZHN0ZXJDb25maWcgKi9cclxuICBwdWJsaWMgaW5pdGlhdGVHcmlkc3RlckNvbmZpZygpIHtcclxuICAgIGxldCBhcmVhQ29udGV4dCA9IHRoaXM7XHJcbiAgICAvKipUbyBvdmVycmlkZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gdmFsdWVzIHRvIHRoZSBncmlkc3RlciBjb250cm9sICovXHJcbiAgICB0aGlzLm9wdGlvbnMgPSBHcmlkc3RlckNvbmZpZ0RlZmF1bHRTZXR0aW5ncztcclxuICAgIHRoaXMub3B0aW9ucy5pdGVtQ2hhbmdlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoaXRlbTogYW55KSB7XHJcbiAgICAgIGFyZWFDb250ZXh0LnNldEFyZWFIZWlnaHQoKTtcclxuICAgICAgYXJlYUNvbnRleHQudXBkYXRlV2lkZ2V0cygpO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBpbml0aWF0ZSBldmVudGJ1cyBzdWJzY3RpcHRpb25zICovXHJcbiAgaW5pdGl0YXRlRXZlbnRCdXNTdWJzY3JpdGlvbnMoKSB7XHJcbiAgICB0aGlzLndpZGdldERlbGV0ZUV2ZW50ID0gdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnN1YnNjcmliZShSQUV2ZW50LldpZGdldERlbGV0ZSkuc3Vic2NyaWJlKChpbnN0YW5jZUlkKSA9PiB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVXaWRnZXQoaW5zdGFuY2VJZCwgdHJ1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy53aWRnZXRBZGRFdmVudCA9IHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5zdWJzY3JpYmUoUkFFdmVudC5BZGRXaWRnZXQpLnN1YnNjcmliZSgod2lkZ2V0SW5mbykgPT4ge1xyXG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29weVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNvbmlmZ0FkZENsaWNrID0gdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnN1YnNjcmliZShSQUV2ZW50LkNvbmZpZ0FkZENsaWNrKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmFkZFdpZGdldChlKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLndpZGdldExpYnJhcnlEb25lQ2xpY2sgPSB0aGlzLnJhRGFzaGJvYXJkRXZlbnRCdXMuc3Vic2NyaWJlKFJBRXZlbnQud2lkZ2V0TGlicmFyeURvbmVDbGljaykuc3Vic2NyaWJlKCh3aWRnZXRMaXN0KSA9PiB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgaWYgKHdpZGdldExpc3QpIHtcclxuICAgICAgICAgIC8vIHdpZGdldExpc3QuZm9yRWFjaCh3aWRnZXRJbmZvID0+IHtcclxuICAgICAgICAgIC8vICAgdGhpcy5hZGRXaWRnZXQod2lkZ2V0SW5mbyk7XHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgICAgIHRoaXMuYWRkV2lkZ2V0TGlzdFRvR3JpZHN0ZXIod2lkZ2V0TGlzdCwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogdGVtcCBmaXgtIHJlY3Vyc2l2ZSBtZXRob2QgdG8gaXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIGl0ZW1zXHJcbiAgICogYW5kIGFkZCB0aGVtIHRvIGdyaWRzdGVyIGluIHRoZSBnaXZlbiBvcmRlclxyXG4gICAqIEBwYXJhbSB3aWRnZXRMaXN0ICAtbGlzdCBvZiB3aWRnZXRzXHJcbiAgICogQHBhcmFtIGluZGV4IC1pbmRleCBvZiB0aGUgY3VycmVudCB2YWx1ZSB0byBiZSBhZGRlZFxyXG4gICAqL1xyXG4gIGFkZFdpZGdldExpc3RUb0dyaWRzdGVyKHdpZGdldExpc3Q6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgbGV0IGFyZWFDb250ZXh0ID0gdGhpcztcclxuICAgIGxldCBpbmRleFZhbCA9IGluZGV4ICsgMTtcclxuICAgIGlmIChpbmRleCA+IHdpZGdldExpc3QubGVuZ3RoIC0gMSlcclxuICAgICAgcmV0dXJuO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChpbmRleCA9PSAwKSB7XHJcbiAgICAgICAgYXJlYUNvbnRleHQuYWRkV2lkZ2V0KHdpZGdldExpc3RbaW5kZXhdKTtcclxuICAgICAgICBhcmVhQ29udGV4dC5hZGRXaWRnZXRMaXN0VG9Hcmlkc3Rlcih3aWRnZXRMaXN0LCBpbmRleFZhbCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBhcmVhQ29udGV4dC5hZGRXaWRnZXQod2lkZ2V0TGlzdFtpbmRleF0pO1xyXG4gICAgICAgICAgYXJlYUNvbnRleHQuYWRkV2lkZ2V0TGlzdFRvR3JpZHN0ZXIod2lkZ2V0TGlzdCwgaW5kZXhWYWwpO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmlmZ0FkZENsaWNrKVxyXG4gICAgICB0aGlzLmNvbmlmZ0FkZENsaWNrLnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMud2lkZ2V0QWRkRXZlbnQpXHJcbiAgICAgIHRoaXMud2lkZ2V0QWRkRXZlbnQudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICBpZiAodGhpcy53aWRnZXREZWxldGVFdmVudClcclxuICAgICAgdGhpcy53aWRnZXREZWxldGVFdmVudC51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLndpZGdldExpYnJhcnlEb25lQ2xpY2spXHJcbiAgICAgIHRoaXMud2lkZ2V0TGlicmFyeURvbmVDbGljay51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqVG8gdXBkYXRlIHBvc2l0aW9uL2RpbWVudGlvbiBvZiBhbGwgd2lkZ2V0cyBpbiB0aGUgYXJlYSAqL1xyXG4gIHVwZGF0ZVdpZGdldHMoKSB7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UudXBkYXRlV2lkZ2V0cyh0aGlzLm1hcEdyaWRzdGVyTGlzdFRvT2JqZWN0KHRoaXMud2lkZ2V0TGlzdCksIHRoaXMuYXBwQ29uZmlnKS5zdWJzY3JpYmUod2lkZ2V0cyA9PiB7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIHJldHJpZXZlIHdpZGdldHMgYmFzZWQgb24gdXNlckRhc2hib2FyZGlkIGFuZCBhcmVhIG5hbWUgKi9cclxuICBsb2FkV2lkZ2V0cyh1c2VyRGFzaGJvYXJJZDogbnVtYmVyLCBhcmVhS2V5OiBzdHJpbmcpIHtcclxuICAgIGxldCBhcmVhQ29udGV4dCA9IHRoaXM7XHJcblxyXG4gICAgbGV0IHdpZGdldEluZm8gPSA8SVdpZGdldEluZm8+e1xyXG4gICAgICBkYXNoYm9hcmRJZDogdXNlckRhc2hib2FySWQudG9TdHJpbmcoKSxcclxuICAgICAgZGFzaGJvYXJkQXJlYUtleTogYXJlYUtleVxyXG4gICAgfVxyXG4gICAgYXJlYUNvbnRleHQud2lkZ2V0TGlzdCA9IFtdO1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldFdpZGdldHNCeURhc2hib2FyZEFyZWEod2lkZ2V0SW5mbywgdGhpcy5hcHBDb25maWcpLnN1YnNjcmliZSh3aWRnZXRzID0+IHtcclxuICAgICAgaWYgKHdpZGdldHMgJiYgd2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgYXJlYUNvbnRleHQud2lkZ2V0TGlzdCA9IHRoaXMubWFwT2JqZWN0TGlzdFRvR3JpZHN0ZXJJdGVtTGlzdCh3aWRnZXRzKTtcclxuICAgICAgICBhcmVhQ29udGV4dC5zZXRBcmVhSGVpZ2h0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvKiogVG8gc2V0IEFyZWEoR3JpZHN0ZXIpIGhlaWdodCBkeW5hbWljYWxseSBhcyB3aWRnZXRzIGFyZSBhZGRlZC9yZW1vdmVkICovXHJcbiAgc2V0QXJlYUhlaWdodCgpIHtcclxuICAgIGxldCBpc01vYmlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5tb2JpbGVCcmVha3BvaW50ID4gdGhpcy5ncmlkV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoKSB7XHJcbiAgICAgIGlzTW9iaWxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGxldCBhcmVhU2Nyb2xsSGVpZ2h0ID0gMDtcclxuICAgIGxldCBhcmVhSGVpZ2h0ID0gMDtcclxuICAgIGxldCBjdXJSb3dIZWlnaHQgPSAwO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hcGkpIHtcclxuICAgICAgY3VyUm93SGVpZ2h0ID0gdGhpcy5vcHRpb25zLmFwaS5nZXRDdXJyZW50Um93SGVpZ2h0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLndpZGdldExpc3QuZm9yRWFjaCgodCkgPT4ge1xyXG4gICAgICBsZXQgY3VycmVudEhlaWdodCA9IHQueSArIHQucm93cztcclxuICAgICAgaWYgKGN1cnJlbnRIZWlnaHQgPiBhcmVhU2Nyb2xsSGVpZ2h0KSB7XHJcbiAgICAgICAgYXJlYVNjcm9sbEhlaWdodCA9IGN1cnJlbnRIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGN1clJvd0hlaWdodCA9PSAwKSB7XHJcbiAgICAgICAgY3VycmVudEhlaWdodCA9IHRoaXMud2lkZ2V0TGlzdFswXS5jdXJSb3dIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgdC53aWRnZXRJbmZvLnJvd0hlaWdodCA9IGN1clJvd0hlaWdodDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hcGkpIHtcclxuICAgICAgYXJlYUhlaWdodCA9IGFyZWFTY3JvbGxIZWlnaHQgKiB0aGlzLm9wdGlvbnMuYXBpLmdldEN1cnJlbnRSb3dIZWlnaHQoKSArIDEwMDtcclxuICAgIH1cclxuICAgIGxldCBhcmVhU2Nyb2xsSGVpZ2h0TW9iID0gMDtcclxuICAgIGlmIChpc01vYmlsZSkge1xyXG4gICAgICBhcmVhU2Nyb2xsSGVpZ2h0TW9iID0gdGhpcy53aWRnZXRMaXN0Lmxlbmd0aCAqIDMwMCArIDIwMDtcclxuICAgICAgYXJlYUhlaWdodCA9IGFyZWFTY3JvbGxIZWlnaHRNb2I7XHJcbiAgICB9XHJcbiAgICBpZiAoYXJlYUhlaWdodCA8IDYwMCkge1xyXG4gICAgICBhcmVhSGVpZ2h0ID0gNjAwO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncmlkaGVpZ2h0ID0gYXJlYUhlaWdodDtcclxuICAgIGNvbnNvbGUubG9nKCdhcmVhIGhlaWdodCBhZGp1c3RlZDEnKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqIFRvIHJlbW92ZSBhIHdpZGdldCBpbnN0YW5jZSBmcm9tIGRhc2hib2FyZCBhbmQgdG8gc2F2ZSBpbmZvIGluIGRhdGFiYXNlICovXHJcbiAgZGVsZXRlV2lkZ2V0KHdpZGdldEluc3RhbmNlSWQ6IGFueSwgaXNhbGVydERpc2FibGVkOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGxldCB3aWRnZXQgPSB0aGlzLndpZGdldExpc3QuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XHJcbiAgICAgIHJldHVybiBpdGVtLndpZGdldEluZm8ud2lkZ2V0SW5zdGFuY2VJZCA9PT0gd2lkZ2V0SW5zdGFuY2VJZDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHdpZGdldC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0TGlzdC5zcGxpY2UodGhpcy53aWRnZXRMaXN0LmluZGV4T2Yod2lkZ2V0WzBdKSwgMSk7XHJcbiAgICAgIHRoaXMuc2V0QXJlYUhlaWdodCgpO1xyXG4gICAgICBpZiAoIWlzYWxlcnREaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMubm90aWZpZXIubm90aWZ5KCdzdWNjZXNzJywgXCIgXCIgKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdXaWRnZXQnKSArIFwiIFwiICsgd2lkZ2V0WzBdLndpZGdldEluZm8ud2lkZ2V0VGl0bGUgKyBcIiBcIiArIHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGUoJ0RlbGV0ZWRTdWNjZXNmdWxseScpICsgXCIgXCIpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9wdGlvbnMuY29tcGFjdFR5cGUgPSAnY29tcGFjdExlZnQmVXAnO1xyXG4gICAgICB0aGlzLm9wdGlvbnMuYXBpLm9wdGlvbnNDaGFuZ2VkKCk7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5jb21wYWN0VHlwZSA9ICdub25lJztcclxuICAgICAgdGhpcy5vcHRpb25zLmFwaS5vcHRpb25zQ2hhbmdlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICAvKipUbyBhZGQgd2lkZ2V0IGluc3RhbmNlIHRvIHRoZSBkYXRhYmFzZSB3aXRoIHRoZSBuZXh0IGF2YWlsYWJsZSBwb3NpdGlvbiBhbmQgdG8gbWFrZSBjaGFuZ2VzIGluXHJcbiAgICogZGFzaGJvYXJkIGFyZWEuXHJcbiAgICovXHJcbiAgYWRkV2lkZ2V0KGRhdGE6IGFueSkge1xyXG4gICAgbGV0IHdpZGdldGlkID0gZGF0YS53aWRnZXRJZDtcclxuICAgIGRhdGEuaGVpZ2h0ID0gdGhpcy53aWRnZXRIZWlnaHQ7XHJcbiAgICBkYXRhLndpZHRoID0gdGhpcy53aWRnZXRXaWR0aDtcclxuICAgIGRhdGEucG9zaXRpb25feCA9IDA7XHJcbiAgICBkYXRhLnBvc2l0aW9uX3kgPSAwO1xyXG4gICAgbGV0IGdyaWRzdGVySXRlbSA9IHRoaXMubWFwT2JqZWN0c1RvR3JpZHN0ZXJJdGVtKGRhdGEpO1xyXG5cclxuICAgIC8qKiB0byBmaW5kIHRoZSBhdmFpbGFibGUgcG9zaXRpb24gaW4gZ3JpZHN0ZXIsIHRlbXAgY29tbWVudGluZyB0aGUgY29kZS1yZXR1cm5pbmcgaGlnaGVyIHkgdmFsdWUgdGhhbiBub3JtYWwgKi9cclxuICAgIC8vIGlmICh0aGlzLm9wdGlvbnMuYXBpKSB7XHJcbiAgICAvLyAgIGdyaWRzdGVySXRlbSA9IHRoaXMub3B0aW9ucy5hcGkuZ2V0Rmlyc3RQb3NzaWJsZVBvc2l0aW9uKGdyaWRzdGVySXRlbSk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBkYXRhLnBvc2l0aW9uX3ggPSBncmlkc3Rlckl0ZW0ueDtcclxuICAgIC8vIGRhdGEucG9zaXRpb25feSA9IGdyaWRzdGVySXRlbS55O1xyXG4gICAgZGF0YS5kYXNoYm9hcmRBcmVhS2V5ID0gdGhpcy5hcmVhS2V5O1xyXG4gICAgZGF0YS5kYXNoYm9hcmRJZCA9IHRoaXMudXNlckRhc2hib2FyZElkO1xyXG4gICAgdGhpcy5uZ3hTZXJ2aWNlLnN0YXJ0KCk7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuYWRkV2lkZ2V0KGRhdGEsIHRoaXMuYXBwQ29uZmlnKS5zdWJzY3JpYmUod2lkZ2V0ID0+IHtcclxuICAgICAgZ3JpZHN0ZXJJdGVtID0gdGhpcy5tYXBPYmplY3RzVG9Hcmlkc3Rlckl0ZW0od2lkZ2V0KTtcclxuICAgICAgdGhpcy53aWRnZXRMaXN0LnB1c2goZ3JpZHN0ZXJJdGVtKTtcclxuICAgICAgdGhpcy5zZXRBcmVhSGVpZ2h0KCk7XHJcbiAgICAgIC8qKlRvIHNhdmUgYWRkZWQgd2lkZ2V0IHBvc2l0aW9uIGluIGRiICovXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXBkYXRlV2lkZ2V0cygpO1xyXG4gICAgICB9LCAxMDAwKTtcclxuICAgICAgdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnB1Ymxpc2goUkFFdmVudC5XaWRnZXRBZGRlZCwgd2lkZ2V0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIGFkZCB3aWRnZXQgdG8gY3VycmVudCB3aWRnZXQgbGlzdCAsaW52b2tlZCBmcm9tIGNvcHkgd2lkZ2V0IHdpbmRvdyovXHJcbiAgY29weVdpZGdldChkYXRhOiBhbnkpIHtcclxuICAgIGxldCBncmlkc3Rlckl0ZW0gPSB0aGlzLm1hcE9iamVjdHNUb0dyaWRzdGVySXRlbShkYXRhKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuYXBpKSB7XHJcbiAgICAgIGdyaWRzdGVySXRlbSA9IHRoaXMub3B0aW9ucy5hcGkuZ2V0Rmlyc3RQb3NzaWJsZVBvc2l0aW9uKGdyaWRzdGVySXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGF0YS5wb3NpdGlvbl94ID0gZ3JpZHN0ZXJJdGVtLng7XHJcbiAgICBkYXRhLnBvc2l0aW9uX3kgPSBncmlkc3Rlckl0ZW0ueTtcclxuICAgIGdyaWRzdGVySXRlbSA9IHRoaXMubWFwT2JqZWN0c1RvR3JpZHN0ZXJJdGVtKGRhdGEpO1xyXG4gICAgdGhpcy53aWRnZXRMaXN0LnB1c2goZ3JpZHN0ZXJJdGVtKTtcclxuICAgIHRoaXMuc2V0QXJlYUhlaWdodCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqVG8gbWFwIEl3aWRnZXRJbmZvIG9iamVjdCB0byBncmlkc3Rlckl0ZW0gKi9cclxuICBtYXBPYmplY3RzVG9Hcmlkc3Rlckl0ZW0od2lkZ2V0OiBJV2lkZ2V0SW5mbykge1xyXG4gICAgbGV0IGdyaWRzdGVySXRlbSA9IDxHcmlkc3Rlckl0ZW0+e1xyXG4gICAgICBjb2xzOiB3aWRnZXQud2lkdGgsXHJcbiAgICAgIHJvd3M6IHdpZGdldC5oZWlnaHQsXHJcbiAgICAgIHg6IHdpZGdldC5wb3NpdGlvbl94LFxyXG4gICAgICB5OiB3aWRnZXQucG9zaXRpb25feSxcclxuICAgICAgd2lkZ2V0SW5mbzogd2lkZ2V0XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ3JpZHN0ZXJJdGVtO1xyXG4gIH1cclxuXHJcbiAgbWFwT2JqZWN0TGlzdFRvR3JpZHN0ZXJJdGVtTGlzdCh3aWRnZXRMaXN0OiBBcnJheTxJV2lkZ2V0SW5mbz4pIHtcclxuICAgIGxldCB3aWRnZXRBcnJheSA9IEFycmF5PEdyaWRzdGVySXRlbT4oKTtcclxuICAgIHdpZGdldExpc3QuZm9yRWFjaCh3aWRnZXQgPT4ge1xyXG4gICAgICB3aWRnZXRBcnJheS5wdXNoKHRoaXMubWFwT2JqZWN0c1RvR3JpZHN0ZXJJdGVtKHdpZGdldCkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gd2lkZ2V0QXJyYXk7XHJcbiAgfVxyXG5cclxuICBtYXBHcmlkc3Rlckl0ZW1Ub09iamVjdCh3aWRnZXRJdGVtOiBHcmlkc3Rlckl0ZW0pIHtcclxuICAgIGxldCB3aWRnZXQ6IElXaWRnZXRJbmZvO1xyXG4gICAgd2lkZ2V0ID0gd2lkZ2V0SXRlbS53aWRnZXRJbmZvO1xyXG4gICAgd2lkZ2V0LmhlaWdodCA9IHdpZGdldEl0ZW0ucm93cztcclxuICAgIHdpZGdldC53aWR0aCA9IHdpZGdldEl0ZW0uY29scztcclxuICAgIHdpZGdldC5wb3NpdGlvbl94ID0gd2lkZ2V0SXRlbS54O1xyXG4gICAgd2lkZ2V0LnBvc2l0aW9uX3kgPSB3aWRnZXRJdGVtLnk7XHJcbiAgICB3aWRnZXQucm93SGVpZ2h0ID0gd2lkZ2V0SXRlbS5jdXJSb3dIZWlnaHQ7XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgbWFwR3JpZHN0ZXJMaXN0VG9PYmplY3Qod2lkZ2V0SXRlbUxpc3Q6IEFycmF5PEdyaWRzdGVySXRlbT4pIHtcclxuICAgIGxldCB3aWRnZXRMaXN0QXJyYXkgPSBBcnJheTxJV2lkZ2V0SW5mbz4oKTtcclxuICAgIHdpZGdldEl0ZW1MaXN0LmZvckVhY2god2lkZ2V0ID0+IHtcclxuICAgICAgd2lkZ2V0TGlzdEFycmF5LnB1c2godGhpcy5tYXBHcmlkc3Rlckl0ZW1Ub09iamVjdCh3aWRnZXQpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHdpZGdldExpc3RBcnJheTtcclxuICB9XHJcblxyXG59Il19
|
|
536
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEuZGFzaGJvYXJkLmFyZWEuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2NobmVpZGVyZXNzL2Rhc2hib2FyZGZyYW1ld29yay8iLCJzb3VyY2VzIjpbImxpYi9yYS1kYXNoYm9hcmQtYXJlYS9yYS5kYXNoYm9hcmQuYXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUE0QixNQUFNLEVBQWEsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0ksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFRN0QsTUFBTSxPQUFPLGVBQWU7Ozs7Ozs7O0lBa0MxQixZQUFvQixnQkFBb0MsRUFDOUMsTUFBYyxFQUNkLFVBQThCLEVBQzlCLGdCQUFvQyxFQUNwQyxRQUF5QjtRQUpmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFuQzVCLGVBQVUsR0FBRyxLQUFLLEVBQWdCLENBQUM7UUFFbkMsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQU14QixtQkFBYyxHQUFZLEtBQUss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ZUFBZTswQkFDckIsS0FBSyxTQUFDLGNBQWM7d0JBQ3BCLEtBQUssU0FBQyxZQUFZOzBCQUVsQixTQUFTLFNBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTt1QkFFMUMsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7OztJQXJCekMscUNBQTBDOztJQUMxQyxrQ0FBK0I7O0lBQy9CLHFDQUFnQzs7Ozs7SUFFaEMseUNBQTRCOzs7OztJQUM1Qiw0Q0FBK0I7Ozs7O0lBQy9CLHlDQUE0Qjs7Ozs7SUFDNUIsaURBQW9DOzs7OztJQUNwQyx5Q0FBd0M7O0lBQ3hDLHFDQUFnQzs7SUFFaEMsMENBQW9EOztJQUNwRCxrQ0FBbUM7O0lBQ25DLHVDQUEwQzs7SUFDMUMsOENBQTZEOztJQUM3RCx1Q0FBaUQ7O0lBQ2pELHNDQUErQzs7SUFDL0Msb0NBQTJDOztJQUUzQyxzQ0FBcUU7Ozs7O0lBWXpELDJDQUE0Qzs7Ozs7SUFDdEQsaUNBQXNCOzs7OztJQUN0QixxQ0FBc0M7Ozs7O0lBQ3RDLDJDQUE0Qzs7Ozs7SUFDNUMsbUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE9uSW5pdCwgQ29tcG9uZW50LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE5nWm9uZSwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgR3JpZHN0ZXJDb25maWcsIEdyaWRzdGVySXRlbSB9IGZyb20gJy4uLy4uL2dyaWRzdGVyL2luZGV4JztcclxuaW1wb3J0IHsgUmFEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi4vcmEuZGFzaGJvYXJkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSQURhc2hib2FyZEV2ZW50QnVzIH0gZnJvbSAnLi4vcmEuZGFzaGJhcmQuZXZlbnQuYnVzJztcclxuaW1wb3J0IHsgUkFFdmVudCB9IGZyb20gJy4uL3JhLmV2ZW50LmVudW0nO1xyXG5pbXBvcnQgeyBHcmlkc3RlckNvbmZpZ0RlZmF1bHRTZXR0aW5ncyB9IGZyb20gJy4uL3JhLmdyaWRzdGVyLmNvbmZpZyc7XHJcbmltcG9ydCB7IElXaWRnZXRJbmZvLCBJQXBwQ29uZmlnIH0gZnJvbSAnQHNjaG5laWRlcmVzcy93aWRnZXRmcmFtZXdvcmsnO1xyXG5pbXBvcnQgeyBOZ3hVaUxvYWRlclNlcnZpY2UgfSBmcm9tICduZ3gtdWktbG9hZGVyJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1ub3RpZmllcic7XHJcbmltcG9ydCB7IFJBVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BzY2huZWlkZXJlc3MvcmEtY29tbW9uJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JhLWRhc2hib2FyZC1hcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmEuZGFzaGJvYXJkLmFyZWEuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmEuZGFzaGJvYXJkLmFyZWEuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJBRGFzaGJvYXJkQXJlYSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgcHVibGljIHdpZGdldExpc3QgPSBBcnJheTxHcmlkc3Rlckl0ZW0+KCk7XHJcbiAgcHVibGljIG9wdGlvbnM6IEdyaWRzdGVyQ29uZmlnO1xyXG4gIHB1YmxpYyBncmlkaGVpZ2h0OiBudW1iZXIgPSAzMDA7XHJcblxyXG4gIHByaXZhdGUgY29uaWZnQWRkQ2xpY2s6IGFueTtcclxuICBwcml2YXRlIHdpZGdldERlbGV0ZUV2ZW50OiBhbnk7XHJcbiAgcHJpdmF0ZSB3aWRnZXRBZGRFdmVudDogYW55O1xyXG4gIHByaXZhdGUgd2lkZ2V0TGlicmFyeURvbmVDbGljazogYW55O1xyXG4gIHByaXZhdGUgaXNXaWRnZXRMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZG9tUmVzaXplZDpib29sZWFuPWZhbHNlO1xyXG5cclxuICBASW5wdXQoJ3VzZXItZGFzaGJvYXJkLWlkJykgdXNlckRhc2hib2FyZElkOiBudW1iZXI7XHJcbiAgQElucHV0KCdhcmVhLWtleScpIGFyZWFLZXk6IHN0cmluZztcclxuICBASW5wdXQoJ2dsb2JhbC1maWx0ZXInKSBnbG9iYWxGaWx0ZXI6IGFueTtcclxuICBASW5wdXQoJ2V2ZW50LWJ1cycpIHJhRGFzaGJvYXJkRXZlbnRCdXM6IFJBRGFzaGJvYXJkRXZlbnRCdXM7XHJcbiAgQElucHV0KCd3aWRnZXQtaGVpZ2h0Jykgd2lkZ2V0SGVpZ2h0OiBudW1iZXIgPSAzO1xyXG4gIEBJbnB1dCgnd2lkZ2V0LXdpZHRoJykgd2lkZ2V0V2lkdGg6IG51bWJlciA9IDU7XHJcbiAgQElucHV0KCdhcHAtY29uZmlnJykgYXBwQ29uZmlnOiBJQXBwQ29uZmlnO1xyXG5cclxuICBAVmlld0NoaWxkKCdncmlkV3JhcHBlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBncmlkV3JhcHBlcjogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoZXZlbnQpIHtcclxuICAgIHZhciBhcmVhQ29udGV4dCA9IHRoaXM7XHJcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgYXJlYUNvbnRleHQuc2V0QXJlYUhlaWdodCgpOyAgIFxyXG4gICAgICBhcmVhQ29udGV4dC5kb21SZXNpemVkPSFhcmVhQ29udGV4dC5kb21SZXNpemVkOyAgXHJcbiAgICB9LCAxMDAwKTtcclxuXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhc2hib2FyZFNlcnZpY2U6IFJhRGFzaGJvYXJkU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIG5neFNlcnZpY2U6IE5neFVpTG9hZGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogUkFUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBub3RpZmllcjogTm90aWZpZXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWF0ZUdyaWRzdGVyQ29uZmlnKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cyAmJiB0aGlzLmFwcENvbmZpZyAmJiAhdGhpcy5pc1dpZGdldExvYWRlZCkge1xyXG4gICAgICB0aGlzLmlzV2lkZ2V0TG9hZGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5sb2FkV2lkZ2V0cyh0aGlzLnVzZXJEYXNoYm9hcmRJZCwgdGhpcy5hcmVhS2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlcy5yYURhc2hib2FyZEV2ZW50QnVzICYmIGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cy5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy5yYURhc2hib2FyZEV2ZW50QnVzLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbml0aXRhdGVFdmVudEJ1c1N1YnNjcml0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIGludm9rZVJlc2l6ZUV2ZW50KCkge1xyXG4gIC8vICAgdGhpcy53aWRnZXRDb250YWluZXJzLmZvckVhY2goZnVuY3Rpb24oY29udGFpbmVyLGkpe1xyXG4gIC8vICAgICBjb250YWluZXIuaW52b2tlV2lkZ2V0UmVzaXplZEV2ZW50KCk7XHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8qKlRvIHNldCBHcmlkc3RlckNvbmZpZyAqL1xyXG4gIHB1YmxpYyBpbml0aWF0ZUdyaWRzdGVyQ29uZmlnKCkge1xyXG4gICAgbGV0IGFyZWFDb250ZXh0ID0gdGhpcztcclxuICAgIC8qKlRvIG92ZXJyaWRlIGRlZmF1bHQgY29uZmlndXJhdGlvbiB2YWx1ZXMgdG8gdGhlIGdyaWRzdGVyIGNvbnRyb2wgKi9cclxuICAgIHRoaXMub3B0aW9ucyA9IEdyaWRzdGVyQ29uZmlnRGVmYXVsdFNldHRpbmdzO1xyXG4gICAgdGhpcy5vcHRpb25zLml0ZW1DaGFuZ2VDYWxsYmFjayA9IGZ1bmN0aW9uIChpdGVtOiBhbnkpIHtcclxuICAgICAgYXJlYUNvbnRleHQuc2V0QXJlYUhlaWdodCgpO1xyXG4gICAgICBhcmVhQ29udGV4dC51cGRhdGVXaWRnZXRzKCk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIGluaXRpYXRlIGV2ZW50YnVzIHN1YnNjdGlwdGlvbnMgKi9cclxuICBpbml0aXRhdGVFdmVudEJ1c1N1YnNjcml0aW9ucygpIHtcclxuICAgIHRoaXMud2lkZ2V0RGVsZXRlRXZlbnQgPSB0aGlzLnJhRGFzaGJvYXJkRXZlbnRCdXMuc3Vic2NyaWJlKFJBRXZlbnQuV2lkZ2V0RGVsZXRlKS5zdWJzY3JpYmUoKGluc3RhbmNlSWQpID0+IHtcclxuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmRlbGV0ZVdpZGdldChpbnN0YW5jZUlkLCB0cnVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLndpZGdldEFkZEV2ZW50ID0gdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnN1YnNjcmliZShSQUV2ZW50LkFkZFdpZGdldCkuc3Vic2NyaWJlKCh3aWRnZXRJbmZvKSA9PiB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb3B5V2lkZ2V0KHdpZGdldEluZm8pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY29uaWZnQWRkQ2xpY2sgPSB0aGlzLnJhRGFzaGJvYXJkRXZlbnRCdXMuc3Vic2NyaWJlKFJBRXZlbnQuQ29uZmlnQWRkQ2xpY2spLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRkV2lkZ2V0KGUpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMud2lkZ2V0TGlicmFyeURvbmVDbGljayA9IHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5zdWJzY3JpYmUoUkFFdmVudC53aWRnZXRMaWJyYXJ5RG9uZUNsaWNrKS5zdWJzY3JpYmUoKHdpZGdldExpc3QpID0+IHtcclxuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICBpZiAod2lkZ2V0TGlzdCkge1xyXG4gICAgICAgICAgLy8gd2lkZ2V0TGlzdC5mb3JFYWNoKHdpZGdldEluZm8gPT4ge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmFkZFdpZGdldCh3aWRnZXRJbmZvKTtcclxuICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgdGhpcy5hZGRXaWRnZXRMaXN0VG9Hcmlkc3Rlcih3aWRnZXRMaXN0LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiB0ZW1wIGZpeC0gcmVjdXJzaXZlIG1ldGhvZCB0byBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgaXRlbXNcclxuICAgKiBhbmQgYWRkIHRoZW0gdG8gZ3JpZHN0ZXIgaW4gdGhlIGdpdmVuIG9yZGVyXHJcbiAgICogQHBhcmFtIHdpZGdldExpc3QgIC1saXN0IG9mIHdpZGdldHNcclxuICAgKiBAcGFyYW0gaW5kZXggLWluZGV4IG9mIHRoZSBjdXJyZW50IHZhbHVlIHRvIGJlIGFkZGVkXHJcbiAgICovXHJcbiAgYWRkV2lkZ2V0TGlzdFRvR3JpZHN0ZXIod2lkZ2V0TGlzdDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgYXJlYUNvbnRleHQgPSB0aGlzO1xyXG4gICAgbGV0IGluZGV4VmFsID0gaW5kZXggKyAxO1xyXG4gICAgaWYgKGluZGV4ID4gd2lkZ2V0TGlzdC5sZW5ndGggLSAxKVxyXG4gICAgICByZXR1cm47XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKGluZGV4ID09IDApIHtcclxuICAgICAgICBhcmVhQ29udGV4dC5hZGRXaWRnZXQod2lkZ2V0TGlzdFtpbmRleF0pO1xyXG4gICAgICAgIGFyZWFDb250ZXh0LmFkZFdpZGdldExpc3RUb0dyaWRzdGVyKHdpZGdldExpc3QsIGluZGV4VmFsKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIGFyZWFDb250ZXh0LmFkZFdpZGdldCh3aWRnZXRMaXN0W2luZGV4XSk7XHJcbiAgICAgICAgICBhcmVhQ29udGV4dC5hZGRXaWRnZXRMaXN0VG9Hcmlkc3Rlcih3aWRnZXRMaXN0LCBpbmRleFZhbCk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uaWZnQWRkQ2xpY2spXHJcbiAgICAgIHRoaXMuY29uaWZnQWRkQ2xpY2sudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICBpZiAodGhpcy53aWRnZXRBZGRFdmVudClcclxuICAgICAgdGhpcy53aWRnZXRBZGRFdmVudC51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLndpZGdldERlbGV0ZUV2ZW50KVxyXG4gICAgICB0aGlzLndpZGdldERlbGV0ZUV2ZW50LnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMud2lkZ2V0TGlicmFyeURvbmVDbGljaylcclxuICAgICAgdGhpcy53aWRnZXRMaWJyYXJ5RG9uZUNsaWNrLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipUbyB1cGRhdGUgcG9zaXRpb24vZGltZW50aW9uIG9mIGFsbCB3aWRnZXRzIGluIHRoZSBhcmVhICovXHJcbiAgdXBkYXRlV2lkZ2V0cygpIHtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS51cGRhdGVXaWRnZXRzKHRoaXMubWFwR3JpZHN0ZXJMaXN0VG9PYmplY3QodGhpcy53aWRnZXRMaXN0KSwgdGhpcy5hcHBDb25maWcpLnN1YnNjcmliZSh3aWRnZXRzID0+IHtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKiogVG8gcmV0cmlldmUgd2lkZ2V0cyBiYXNlZCBvbiB1c2VyRGFzaGJvYXJkaWQgYW5kIGFyZWEgbmFtZSAqL1xyXG4gIGxvYWRXaWRnZXRzKHVzZXJEYXNoYm9hcklkOiBudW1iZXIsIGFyZWFLZXk6IHN0cmluZykge1xyXG4gICAgbGV0IGFyZWFDb250ZXh0ID0gdGhpcztcclxuXHJcbiAgICBsZXQgd2lkZ2V0SW5mbyA9IDxJV2lkZ2V0SW5mbz57XHJcbiAgICAgIGRhc2hib2FyZElkOiB1c2VyRGFzaGJvYXJJZC50b1N0cmluZygpLFxyXG4gICAgICBkYXNoYm9hcmRBcmVhS2V5OiBhcmVhS2V5XHJcbiAgICB9XHJcbiAgICBhcmVhQ29udGV4dC53aWRnZXRMaXN0ID0gW107XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2V0V2lkZ2V0c0J5RGFzaGJvYXJkQXJlYSh3aWRnZXRJbmZvLCB0aGlzLmFwcENvbmZpZykuc3Vic2NyaWJlKHdpZGdldHMgPT4ge1xyXG4gICAgICBpZiAod2lkZ2V0cyAmJiB3aWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBhcmVhQ29udGV4dC53aWRnZXRMaXN0ID0gdGhpcy5tYXBPYmplY3RMaXN0VG9Hcmlkc3Rlckl0ZW1MaXN0KHdpZGdldHMpO1xyXG4gICAgICAgIGFyZWFDb250ZXh0LnNldEFyZWFIZWlnaHQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8qKiBUbyBzZXQgQXJlYShHcmlkc3RlcikgaGVpZ2h0IGR5bmFtaWNhbGx5IGFzIHdpZGdldHMgYXJlIGFkZGVkL3JlbW92ZWQgKi9cclxuICBzZXRBcmVhSGVpZ2h0KCkge1xyXG4gICAgbGV0IGlzTW9iaWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLm1vYmlsZUJyZWFrcG9pbnQgPiB0aGlzLmdyaWRXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpIHtcclxuICAgICAgaXNNb2JpbGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgbGV0IGFyZWFTY3JvbGxIZWlnaHQgPSAwO1xyXG4gICAgbGV0IGFyZWFIZWlnaHQgPSAwO1xyXG4gICAgbGV0IGN1clJvd0hlaWdodCA9IDA7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmFwaSkge1xyXG4gICAgICBjdXJSb3dIZWlnaHQgPSB0aGlzLm9wdGlvbnMuYXBpLmdldEN1cnJlbnRSb3dIZWlnaHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMud2lkZ2V0TGlzdC5mb3JFYWNoKCh0KSA9PiB7XHJcbiAgICAgIGxldCBjdXJyZW50SGVpZ2h0ID0gdC55ICsgdC5yb3dzO1xyXG4gICAgICBpZiAoY3VycmVudEhlaWdodCA+IGFyZWFTY3JvbGxIZWlnaHQpIHtcclxuICAgICAgICBhcmVhU2Nyb2xsSGVpZ2h0ID0gY3VycmVudEhlaWdodDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY3VyUm93SGVpZ2h0ID09IDApIHtcclxuICAgICAgICBjdXJyZW50SGVpZ2h0ID0gdGhpcy53aWRnZXRMaXN0WzBdLmN1clJvd0hlaWdodDtcclxuICAgICAgfVxyXG4gICAgICB0LndpZGdldEluZm8ucm93SGVpZ2h0ID0gY3VyUm93SGVpZ2h0O1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmFwaSkge1xyXG4gICAgICBhcmVhSGVpZ2h0ID0gYXJlYVNjcm9sbEhlaWdodCAqIHRoaXMub3B0aW9ucy5hcGkuZ2V0Q3VycmVudFJvd0hlaWdodCgpICsgMTAwO1xyXG4gICAgfVxyXG4gICAgbGV0IGFyZWFTY3JvbGxIZWlnaHRNb2IgPSAwO1xyXG4gICAgaWYgKGlzTW9iaWxlKSB7XHJcbiAgICAgIGFyZWFTY3JvbGxIZWlnaHRNb2IgPSB0aGlzLndpZGdldExpc3QubGVuZ3RoICogMzAwICsgMjAwO1xyXG4gICAgICBhcmVhSGVpZ2h0ID0gYXJlYVNjcm9sbEhlaWdodE1vYjtcclxuICAgIH1cclxuICAgIGlmIChhcmVhSGVpZ2h0IDwgNjAwKSB7XHJcbiAgICAgIGFyZWFIZWlnaHQgPSA2MDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyaWRoZWlnaHQgPSBhcmVhSGVpZ2h0O1xyXG4gICAgY29uc29sZS5sb2coJ2FyZWEgaGVpZ2h0IGFkanVzdGVkMScpO1xyXG5cclxuICB9XHJcblxyXG5cclxuICAvKiogVG8gcmVtb3ZlIGEgd2lkZ2V0IGluc3RhbmNlIGZyb20gZGFzaGJvYXJkIGFuZCB0byBzYXZlIGluZm8gaW4gZGF0YWJhc2UgKi9cclxuICBkZWxldGVXaWRnZXQod2lkZ2V0SW5zdGFuY2VJZDogYW55LCBpc2FsZXJ0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgZGVidWdnZXJcclxuICAgIGNvbnNvbGUubG9nKFwiZ29Db3JvbmFcIilcclxuICAgIGxldCB3aWRnZXQgPSB0aGlzLndpZGdldExpc3QuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XHJcbiAgICAgIHJldHVybiBpdGVtLndpZGdldEluZm8ud2lkZ2V0SW5zdGFuY2VJZCA9PT0gd2lkZ2V0SW5zdGFuY2VJZDtcclxuICAgIH0pO1xyXG4gICAgaWYgKHdpZGdldC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0TGlzdC5zcGxpY2UodGhpcy53aWRnZXRMaXN0LmluZGV4T2Yod2lkZ2V0WzBdKSwgMSk7XHJcbiAgICAgIHRoaXMuc2V0QXJlYUhlaWdodCgpO1xyXG4gICAgICBpZiAoIWlzYWxlcnREaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMubm90aWZpZXIubm90aWZ5KCdzdWNjZXNzJywgXCIgXCIgKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24ud2lkZ2V0JykgKyBcIiBcIiArIHdpZGdldFswXS53aWRnZXRJbmZvLndpZGdldFRpdGxlICsgXCIgXCIgKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdDb21tb24uZGVsZXRlZFN1Y2Nlc2Z1bGx5JykgKyBcIiBcIik7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3B0aW9ucy5jb21wYWN0VHlwZSA9ICdjb21wYWN0TGVmdCZVcCc7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5hcGkub3B0aW9uc0NoYW5nZWQoKTtcclxuICAgICAgdGhpcy5vcHRpb25zLmNvbXBhY3RUeXBlID0gJ25vbmUnO1xyXG4gICAgICB0aGlzLm9wdGlvbnMuYXBpLm9wdGlvbnNDaGFuZ2VkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8qKlRvIGFkZCB3aWRnZXQgaW5zdGFuY2UgdG8gdGhlIGRhdGFiYXNlIHdpdGggdGhlIG5leHQgYXZhaWxhYmxlIHBvc2l0aW9uIGFuZCB0byBtYWtlIGNoYW5nZXMgaW5cclxuICAgKiBkYXNoYm9hcmQgYXJlYS5cclxuICAgKi9cclxuICBhZGRXaWRnZXQoZGF0YTogYW55KSB7XHJcbiAgICBsZXQgd2lkZ2V0aWQgPSBkYXRhLndpZGdldElkO1xyXG4gICAgZGF0YS5oZWlnaHQgPSB0aGlzLndpZGdldEhlaWdodDtcclxuICAgIGRhdGEud2lkdGggPSB0aGlzLndpZGdldFdpZHRoO1xyXG4gICAgZGF0YS5wb3NpdGlvbl94ID0gMDtcclxuICAgIGRhdGEucG9zaXRpb25feSA9IDA7XHJcbiAgICBsZXQgZ3JpZHN0ZXJJdGVtID0gdGhpcy5tYXBPYmplY3RzVG9Hcmlkc3Rlckl0ZW0oZGF0YSk7XHJcblxyXG4gICAgLyoqIHRvIGZpbmQgdGhlIGF2YWlsYWJsZSBwb3NpdGlvbiBpbiBncmlkc3RlciwgdGVtcCBjb21tZW50aW5nIHRoZSBjb2RlLXJldHVybmluZyBoaWdoZXIgeSB2YWx1ZSB0aGFuIG5vcm1hbCAqL1xyXG4gICAgLy8gaWYgKHRoaXMub3B0aW9ucy5hcGkpIHtcclxuICAgIC8vICAgZ3JpZHN0ZXJJdGVtID0gdGhpcy5vcHRpb25zLmFwaS5nZXRGaXJzdFBvc3NpYmxlUG9zaXRpb24oZ3JpZHN0ZXJJdGVtKTtcclxuICAgIC8vIH1cclxuICAgIC8vIGRhdGEucG9zaXRpb25feCA9IGdyaWRzdGVySXRlbS54O1xyXG4gICAgLy8gZGF0YS5wb3NpdGlvbl95ID0gZ3JpZHN0ZXJJdGVtLnk7XHJcbiAgICBkYXRhLmRhc2hib2FyZEFyZWFLZXkgPSB0aGlzLmFyZWFLZXk7XHJcbiAgICBkYXRhLmRhc2hib2FyZElkID0gdGhpcy51c2VyRGFzaGJvYXJkSWQ7XHJcbiAgICB0aGlzLm5neFNlcnZpY2Uuc3RhcnQoKTtcclxuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZS5hZGRXaWRnZXQoZGF0YSwgdGhpcy5hcHBDb25maWcpLnN1YnNjcmliZSh3aWRnZXQgPT4ge1xyXG4gICAgICBncmlkc3Rlckl0ZW0gPSB0aGlzLm1hcE9iamVjdHNUb0dyaWRzdGVySXRlbSh3aWRnZXQpO1xyXG4gICAgICB0aGlzLndpZGdldExpc3QucHVzaChncmlkc3Rlckl0ZW0pO1xyXG4gICAgICB0aGlzLnNldEFyZWFIZWlnaHQoKTtcclxuICAgICAgLyoqVG8gc2F2ZSBhZGRlZCB3aWRnZXQgcG9zaXRpb24gaW4gZGIgKi9cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVXaWRnZXRzKCk7XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgICB0aGlzLnJhRGFzaGJvYXJkRXZlbnRCdXMucHVibGlzaChSQUV2ZW50LldpZGdldEFkZGVkLCB3aWRnZXQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogVG8gYWRkIHdpZGdldCB0byBjdXJyZW50IHdpZGdldCBsaXN0ICxpbnZva2VkIGZyb20gY29weSB3aWRnZXQgd2luZG93Ki9cclxuICBjb3B5V2lkZ2V0KGRhdGE6IGFueSkge1xyXG4gICAgbGV0IGdyaWRzdGVySXRlbSA9IHRoaXMubWFwT2JqZWN0c1RvR3JpZHN0ZXJJdGVtKGRhdGEpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hcGkpIHtcclxuICAgICAgZ3JpZHN0ZXJJdGVtID0gdGhpcy5vcHRpb25zLmFwaS5nZXRGaXJzdFBvc3NpYmxlUG9zaXRpb24oZ3JpZHN0ZXJJdGVtKTtcclxuICAgIH1cclxuXHJcbiAgICBkYXRhLnBvc2l0aW9uX3ggPSBncmlkc3Rlckl0ZW0ueDtcclxuICAgIGRhdGEucG9zaXRpb25feSA9IGdyaWRzdGVySXRlbS55O1xyXG4gICAgZ3JpZHN0ZXJJdGVtID0gdGhpcy5tYXBPYmplY3RzVG9Hcmlkc3Rlckl0ZW0oZGF0YSk7XHJcbiAgICB0aGlzLndpZGdldExpc3QucHVzaChncmlkc3Rlckl0ZW0pO1xyXG4gICAgdGhpcy5zZXRBcmVhSGVpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICAvKipUbyBtYXAgSXdpZGdldEluZm8gb2JqZWN0IHRvIGdyaWRzdGVySXRlbSAqL1xyXG4gIG1hcE9iamVjdHNUb0dyaWRzdGVySXRlbSh3aWRnZXQ6IElXaWRnZXRJbmZvKSB7XHJcbiAgICBsZXQgZ3JpZHN0ZXJJdGVtID0gPEdyaWRzdGVySXRlbT57XHJcbiAgICAgIGNvbHM6IHdpZGdldC53aWR0aCxcclxuICAgICAgcm93czogd2lkZ2V0LmhlaWdodCxcclxuICAgICAgeDogd2lkZ2V0LnBvc2l0aW9uX3gsXHJcbiAgICAgIHk6IHdpZGdldC5wb3NpdGlvbl95LFxyXG4gICAgICB3aWRnZXRJbmZvOiB3aWRnZXRcclxuICAgIH1cclxuICAgIHJldHVybiBncmlkc3Rlckl0ZW07XHJcbiAgfVxyXG5cclxuICBtYXBPYmplY3RMaXN0VG9Hcmlkc3Rlckl0ZW1MaXN0KHdpZGdldExpc3Q6IEFycmF5PElXaWRnZXRJbmZvPikge1xyXG4gICAgbGV0IHdpZGdldEFycmF5ID0gQXJyYXk8R3JpZHN0ZXJJdGVtPigpO1xyXG4gICAgd2lkZ2V0TGlzdC5mb3JFYWNoKHdpZGdldCA9PiB7XHJcbiAgICAgIHdpZGdldEFycmF5LnB1c2godGhpcy5tYXBPYmplY3RzVG9Hcmlkc3Rlckl0ZW0od2lkZ2V0KSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB3aWRnZXRBcnJheTtcclxuICB9XHJcblxyXG4gIG1hcEdyaWRzdGVySXRlbVRvT2JqZWN0KHdpZGdldEl0ZW06IEdyaWRzdGVySXRlbSkge1xyXG4gICAgbGV0IHdpZGdldDogSVdpZGdldEluZm87XHJcbiAgICB3aWRnZXQgPSB3aWRnZXRJdGVtLndpZGdldEluZm87XHJcbiAgICB3aWRnZXQuaGVpZ2h0ID0gd2lkZ2V0SXRlbS5yb3dzO1xyXG4gICAgd2lkZ2V0LndpZHRoID0gd2lkZ2V0SXRlbS5jb2xzO1xyXG4gICAgd2lkZ2V0LnBvc2l0aW9uX3ggPSB3aWRnZXRJdGVtLng7XHJcbiAgICB3aWRnZXQucG9zaXRpb25feSA9IHdpZGdldEl0ZW0ueTtcclxuICAgIHdpZGdldC5yb3dIZWlnaHQgPSB3aWRnZXRJdGVtLmN1clJvd0hlaWdodDtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBtYXBHcmlkc3Rlckxpc3RUb09iamVjdCh3aWRnZXRJdGVtTGlzdDogQXJyYXk8R3JpZHN0ZXJJdGVtPikge1xyXG4gICAgbGV0IHdpZGdldExpc3RBcnJheSA9IEFycmF5PElXaWRnZXRJbmZvPigpO1xyXG4gICAgd2lkZ2V0SXRlbUxpc3QuZm9yRWFjaCh3aWRnZXQgPT4ge1xyXG4gICAgICB3aWRnZXRMaXN0QXJyYXkucHVzaCh0aGlzLm1hcEdyaWRzdGVySXRlbVRvT2JqZWN0KHdpZGdldCkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gd2lkZ2V0TGlzdEFycmF5O1xyXG4gIH1cclxuXHJcbn0iXX0=
|
|
@@ -341,6 +341,7 @@ export class RAWidgetContainer {
|
|
|
341
341
|
*/
|
|
342
342
|
setLock(config) {
|
|
343
343
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
344
|
+
this.lockTemplateInfo = this.widgetElement.loadLockInfo();
|
|
344
345
|
/** @type {?} */
|
|
345
346
|
var configObj;
|
|
346
347
|
if (config) {
|
|
@@ -444,8 +445,8 @@ export class RAWidgetContainer {
|
|
|
444
445
|
RAWidgetContainer.decorators = [
|
|
445
446
|
{ type: Component, args: [{
|
|
446
447
|
selector: 'ra-widget-container',
|
|
447
|
-
template: "<div class=\"wc-wrapper\" (mouseleave)=\"hideDropDown()\">\r\n <div class=\"wcheader widget-move\" [ngClass]=\"{'underLine': enableTitleLine || isNotConfigured}\">\r\n <div class=\"col-md-12 wc-mover\" style=\"padding-left: 0px;height:inherit;padding-right: 0px;\">\r\n <div style=\"display:flex;margin-top:10px;\">\r\n\r\n <div class=\"col-md-10 float-left title-label\">\r\n <ra-tooltip [value]=\"toolTipValue\" [width]=\"toolTipWidth\">\r\n <div style=\"text-overflow: ellipsis;white-space: nowrap;overflow: hidden;\" (mouseover)=\"mouseOver($event)\"\r\n #searchInput>{{data.widgetInfo.widgetTitle}}</div>\r\n </ra-tooltip>\r\n </div>\r\n\r\n\r\n <div class=\"col-md-2\" style=\"cursor:default;padding-right: 0px;\">\r\n <div class=\"float-right\" style=\"display: flex;\">\r\n
|
|
448
|
-
styles: [".sp_icon{float:left;margin:0 15% 0 0}.dropbtn{color:#42b4e6;text-align:right;height:100%}.dropbtn i{cursor:pointer;width:100%;height:100%}.dropdown{visibility:hidden;opacity:0;transition:visibility,opacity .5s linear;position:relative;width:100%}.dropdown hr{margin:0!important}.dropdown-content{display:none;position:absolute;right:0;background-color:#fff;min-width:100px;box-shadow:0 8px 16px 8px rgba(0,0,0,.2);z-index:2;font-size:12px;font-weight:400;width:122px}.dropdown-content a{color:#000;padding:5px 16px;text-decoration:none;display:block;cursor:pointer}.wc{height:100%}.defaultConfig{height:100%;display:flex;align-items:center}.defaultConfig .button{min-height:34px;font-size:13px;width:100%;min-height:34px;color:#fff;background:no-repeat padding-box #3dcd58;display:table;margin:9px 0 0;cursor:pointer;text-align:center;float:left}.defaultConfig .contentarea{width:80%;margin:0 auto;float:left;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.defaultConfig .textarea{width:100%;float:left}.defaultConfig .textarea .icon{width:52px;color:#32ad3c;height:100%;float:left}.defaultConfig .textarea .text{width:calc(100% - 52px);min-height:60px;float:left;font-size:14px;text-align:left}.defaultConfig .textarea .icon i{font-size:40px!important}.configuretext{display:table-cell;vertical-align:middle;height:34px}.dropdown-content a:hover{background-color:#f1f1f1}.lockInvisible{margin-right:-17px}.dropdown-click{display:block!important;-webkit-animation:.3s ease-out slide-down;animation:.3s ease-out slide-down}.download-icon{cursor:pointer}.dropdown:hover .dropdown-content{color:#fff}.title-bar-icon{color:#42b4e6}.title-bar-lock-icon{margin:0 3px}.hr{border:0;border-top:1px solid rgba(0,0,0,.1)}.settingstyle{color:#9fa0a4;font-size:12px}@-webkit-keyframes slide-down{0%{opacity:0;transform:translateY(-20%)}100%{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-20%)}100%{opacity:1;transform:translateY(0)}}.widget-config-item i{font-size:17px;color:#42b4e6}.widget-config-item span{font-size:12px;font:inherit;padding-left:12px;color:#42b4e6}.lock{color:#42b4e6}.locked{color:#42b4e6;background:#fff}.partiallocked{color:#a0d9f2}.unlocked{display:none}.download{visibility:hidden;opacity:0;transition:visibility,opacity .5s linear;position:relative}.wc-wrapper:hover .download{visibility:visible;opacity:1}.download-content a{color:#000;padding:5px 16px;text-decoration:none;display:block;cursor:pointer}.download-content a:hover{background-color:#f1f1f1}.download-content a i{font-size:17px;color:#42b4e6}.download-content a span{font-size:12px;font:inherit;padding-left:12px;color:#42b4e6}.title-label{width:96%;padding-left:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lock-dropdown{transition:visibility,opacity .5s linear;position:relative;display:inline-block;margin:0 6px 0 10px}.lock-dropdown-content{display:none;margin-top:8px;position:absolute;right:0;top:79%;box-shadow:0 8px 16px 8px rgba(0,0,0,.2);z-index:899;font-size:12px;min-width:220px!important;min-height:112px;background-color:#219bfd;opacity:.9;padding:15px;color:#fff}.lock-dropdown-content hr{border-bottom:1px solid #fff}.lock-dropdown:hover .lock-dropdown-content{display:block!important;-webkit-animation:.3s ease-out slide-down;animation:.3s ease-out slide-down}"]
|
|
448
|
+
template: "<div class=\"wc-wrapper\" (mouseleave)=\"hideDropDown()\">\r\n <div class=\"wcheader widget-move\" [ngClass]=\"{'underLine': enableTitleLine || isNotConfigured}\">\r\n <div class=\"col-md-12 wc-mover\" style=\"padding-left: 0px;height:inherit;padding-right: 0px;\">\r\n <div style=\"display:flex;margin-top:10px;\">\r\n\r\n <div class=\"col-md-10 float-left title-label\">\r\n <ra-tooltip [value]=\"toolTipValue\" [width]=\"toolTipWidth\">\r\n <div style=\"text-overflow: ellipsis;white-space: nowrap;overflow: hidden;\" (mouseover)=\"mouseOver($event)\"\r\n #searchInput>{{data.widgetInfo.widgetTitle}}</div>\r\n </ra-tooltip>\r\n </div>\r\n\r\n\r\n <div class=\"col-md-2\" style=\"cursor:default;padding-right: 0px;\">\r\n <div class=\"float-right\" style=\"display: flex;\">\r\n\r\n <div class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!lockDetails && !lockTemplateInfo\">\r\n <i class=\"fal fa-lock lock\"></i>\r\n <div class=\"lock-dropdown-content light widget-config-item\">\r\n <div *ngIf=\"lockDetails && !lockTemplateInfo\">\r\n <label style=\"color: #D9F0FA;\">\r\n {{'Common.lockedfields'|translate}}\r\n </label>\r\n <div style=\"color: white;\">\r\n <label class=\"bold\" style=\"margin-bottom: 0px;width: 100%;\" *ngFor=\"let item of lockDetails\">\r\n {{item}}\r\n </label>\r\n </div>\r\n <hr>\r\n <div style=\"color: #D9F0FA;\">\r\n <label>{{'Common.lockedfieldseditinfo'|translate}}</label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!lockDetails && lockTemplateInfo\">\r\n <ng-container *ngTemplateOutlet=\"lockTemplateInfo\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"dropdown\" style=\"width:10px;\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown()\" #widgetDropdown class=\"fal fa-ellipsis-v\"></i>\r\n </div>\r\n <div class=\"download-content dropdown-content widget-config-item\"\r\n [ngClass]=\"{'dropdown-click': dropDownShown}\">\r\n\r\n <div style=\"color: #9FA0A4;font-size: 12px;padding-top: 8px;padding-left: 12px;\">\r\n {{'Common.settings'|translate}}</div>\r\n\r\n <a style=\"padding-top: 10px;\" (click)=\"editWidget()\">\r\n <i class=\"fal fa-edit\"></i>\r\n <span style=\"padding-left: 6px;\">{{'Common.edit'|translate}}</span>\r\n </a>\r\n <a (click)=\"copyWidget()\">\r\n <i class=\"fal fa-copy\"></i>\r\n <span style=\"padding-left: 10px;\">{{'Common.copy'|translate}}</span>\r\n </a>\r\n <a (click)=\"moveWidget()\">\r\n <i class=\"fal fa-arrows-alt\"></i>\r\n <span style=\"padding-left: 9px;\">{{'Common.move'|translate}}</span>\r\n </a>\r\n <a *ngIf=\"detailPageUrl\" (click)=\"visitPage()\"\r\n style=\"max-height: 30px;align-items: center;align-content: center; display: flex;\">\r\n <i style=\"padding-left: 4px;font-size: 27px !important;\" class=\"fal fa-angle-right\"></i>\r\n <span style=\"padding-left: 11px;margin-top: 2px;\">{{'Common.visitpage'|translate}}</span>\r\n </a>\r\n <hr class=\"hr\" style=\"padding-bottom: 9px;\">\r\n <span style=\"color: #9FA0A4;font-size: 12px;\"\r\n *ngIf=\"isDownloadIconVisible\">{{'Common.downloads'|translate}}</span>\r\n <div *ngIf=\"isChartDownloadVisible\" style=\"padding-top: 10px;\" class=\"chartDownload\">\r\n <a (click)=\"downloadIconClicked('PNG')\">\r\n <i class=\"fal fa-file-image\"></i>\r\n <span>{{'Common.png'|translate}}</span>\r\n </a>\r\n <a (click)=\"downloadIconClicked('JPEG')\">\r\n <i class=\"fal fa-file-image\"></i>\r\n <span>{{'Common.jpeg'|translate}}</span>\r\n </a>\r\n <a (click)=\"downloadIconClicked('PDF')\">\r\n <i class=\"fal fa-file-pdf\"></i>\r\n <span>{{'Common.pdf'|translate}}</span>\r\n </a>\r\n <a (click)=\"downloadIconClicked('SVG')\">\r\n <i class=\"fal fa-file-alt\"></i>\r\n <span>{{'Common.svg'|translate}}</span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"isGridDownloadVisible\" class=\"gridDownload\">\r\n <a (click)=\"downloadIconClicked('CSV')\">\r\n <i class=\"fal fa-download\"></i>\r\n <span>{{'Common.excel'|translate}}</span>\r\n </a>\r\n </div>\r\n <hr *ngIf=\"isDownloadIconVisible\" class=\"hr\">\r\n <a (click)=\"deleteWidget()\">\r\n <i class=\"fal fa-times\" style=\"padding-left: 3px;color: red;\"></i>\r\n <span>{{'Common.delete'|translate}}</span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"wcBody\">\r\n <div [hidden]=\"isNotConfigured\" class=\"m-fadeOut widget-overlay\" [ngClass]=\"{'m-fadeIn': showPanel}\">\r\n <div class=\"lds-roller\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n <div class=\"wc\" [hidden]=\"isNotConfigured\">\r\n <perfect-scrollbar [scrollIndicators]=\"true\">\r\n <div #ctlWidget></div>\r\n </perfect-scrollbar>\r\n </div>\r\n <div [hidden]=\"!isNotConfigured\" class=\"defaultConfig\">\r\n <div class=\"contentarea\">\r\n <div class=\"textarea light\">\r\n <span class=\"icon\"><i class=\"fal fa-edit\" style=\"font-size: 16px;\"></i></span>\r\n <span class=\"text\">{{'Common.configureinfo'|translate}}</span>\r\n </div>\r\n <div class=\"button\" (click)=\"editWidget()\">\r\n <div class=\"configuretext\">\r\n {{'Common.configurewidget'|translate}}\r\n </div>\r\n <!-- <span class=\"editIcon\"><i class=\"fal fa-edit\"></i></span><span class=\"text\">Configure Widget</span> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>",
|
|
449
|
+
styles: [".sp_icon{float:left;margin:0 15% 0 0}.dropbtn{color:#42b4e6;text-align:right;height:100%}.dropbtn i{cursor:pointer;width:100%;height:100%}.dropdown{visibility:hidden;opacity:0;-webkit-transition:visibility,opacity .5s linear;transition:visibility,opacity .5s linear;position:relative;width:100%}.dropdown hr{margin:0!important}.dropdown-content{display:none;position:absolute;right:0;background-color:#fff;min-width:100px;box-shadow:0 8px 16px 8px rgba(0,0,0,.2);z-index:2;font-size:12px;font-weight:400;width:122px}.dropdown-content a{color:#000;padding:5px 16px;text-decoration:none;display:block;cursor:pointer}.wc{height:100%}.defaultConfig{height:100%;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.defaultConfig .button{min-height:34px;font-size:13px;width:100%;min-height:34px;color:#fff;background:no-repeat padding-box #3dcd58;display:table;margin:9px 0 0;cursor:pointer;text-align:center;float:left}.defaultConfig .contentarea{width:80%;margin:0 auto;float:left;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.defaultConfig .textarea{width:100%;float:left}.defaultConfig .textarea .icon{width:52px;color:#32ad3c;height:100%;float:left}.defaultConfig .textarea .text{width:calc(100% - 52px);min-height:60px;float:left;font-size:14px;text-align:left}.defaultConfig .textarea .icon i{font-size:40px!important}.configuretext{display:table-cell;vertical-align:middle;height:34px}.dropdown-content a:hover{background-color:#f1f1f1}.lockInvisible{margin-right:-17px}.dropdown-click{display:block!important;-webkit-animation:.3s ease-out slide-down;animation:.3s ease-out slide-down}.download-icon{cursor:pointer}.dropdown:hover .dropdown-content{color:#fff}.title-bar-icon{color:#42b4e6}.title-bar-lock-icon{margin:0 3px}.hr{border:0;border-top:1px solid rgba(0,0,0,.1)}.settingstyle{color:#9fa0a4;font-size:12px}@-webkit-keyframes slide-down{0%{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.widget-config-item i{font-size:17px;color:#42b4e6}.widget-config-item span{font-size:12px;font:inherit;padding-left:12px;color:#42b4e6}.lock{color:#42b4e6}.locked{color:#42b4e6;background:#fff}.partiallocked{color:#a0d9f2}.unlocked{display:none}.download{visibility:hidden;opacity:0;-webkit-transition:visibility,opacity .5s linear;transition:visibility,opacity .5s linear;position:relative}.wc-wrapper:hover .download{visibility:visible;opacity:1}.download-content a{color:#000;padding:5px 16px;text-decoration:none;display:block;cursor:pointer}.download-content a:hover{background-color:#f1f1f1}.download-content a i{font-size:17px;color:#42b4e6}.download-content a span{font-size:12px;font:inherit;padding-left:12px;color:#42b4e6}.title-label{width:96%;padding-left:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lock-dropdown{-webkit-transition:visibility,opacity .5s linear;transition:visibility,opacity .5s linear;position:relative;display:inline-block;margin:0 6px 0 10px}.lock-dropdown-content{display:none;margin-top:8px;position:absolute;right:0;top:79%;box-shadow:0 8px 16px 8px rgba(0,0,0,.2);z-index:899;font-size:12px;min-width:220px!important;min-height:112px;background-color:#219bfd;opacity:.9;padding:15px;color:#fff}.lock-dropdown-content hr{border-bottom:1px solid #fff}.lock-dropdown:hover .lock-dropdown-content{display:block!important;-webkit-animation:.3s ease-out slide-down;animation:.3s ease-out slide-down}"]
|
|
449
450
|
}] }
|
|
450
451
|
];
|
|
451
452
|
/** @nocollapse */
|
|
@@ -523,6 +524,8 @@ if (false) {
|
|
|
523
524
|
/** @type {?} */
|
|
524
525
|
RAWidgetContainer.prototype.lockDetails;
|
|
525
526
|
/** @type {?} */
|
|
527
|
+
RAWidgetContainer.prototype.lockTemplateInfo;
|
|
528
|
+
/** @type {?} */
|
|
526
529
|
RAWidgetContainer.prototype.ctlWidget;
|
|
527
530
|
/** @type {?} */
|
|
528
531
|
RAWidgetContainer.prototype.widgetDropdown;
|
|
@@ -593,4 +596,4 @@ if (false) {
|
|
|
593
596
|
*/
|
|
594
597
|
RAWidgetContainer.prototype.renderer;
|
|
595
598
|
}
|
|
596
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEud2lkZ2V0LmNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2NobmVpZGVyZXNzL2Rhc2hib2FyZGZyYW1ld29yay8iLCJzb3VyY2VzIjpbImxpYi9yYS13aWRnZXQtY29udGFpbmVyL3JhLndpZGdldC5jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBb0UsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzTCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBZ0QsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVM3RCxNQUFNLE9BQU8saUJBQWlCOzs7Ozs7Ozs7SUFrRDVCLFlBQW9CLGdCQUFvQyxFQUM5QyxVQUE4QixFQUM5QixnQkFBb0MsRUFDcEMsTUFBYyxFQUNkLFFBQXlCLEVBQ3pCLFFBQW1CO1FBTFQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUM5QyxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdB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QUMsYUFBYTs7OztJQTNDcEIsc0NBQWlDOzs7OztJQUNqQywyQ0FBd0M7Ozs7O0lBQ3hDLDBDQUEyQjs7Ozs7SUFDM0IsMENBQTJCOzs7OztJQUMzQix1Q0FBaUY7O0lBQ2pGLHlDQUE0Qjs7SUFDNUIsc0NBQXNDOztJQUN0Qyx1Q0FBb0U7O0lBQ3BFLGtEQUE4Qzs7SUFDOUMsbURBQStDOztJQUMvQyxrREFBOEM7O0lBQzlDLDBDQUFzQzs7SUFDdEMsbURBQStDOztJQUMvQyw2Q0FBd0M7O0lBQ3hDLDRDQUF3Qzs7SUFDeEMseUNBQW1DOztJQUNuQyx5Q0FBb0M7O0lBQ3BDLHdDQUF3Qjs7SUFFeEIsc0NBQWlFOztJQUNqRSwyQ0FBMkU7O0lBQzNFLDJDQUEyRTs7SUFDM0Usd0NBQXFFOztJQUdyRSw2Q0FBc0Q7O0lBQ3RELHlDQUEwQzs7SUFDMUMsaUNBQXlCOztJQUN6QixnREFBNkQ7O0lBQzdELHNDQUEyQzs7SUFDM0Msa0NBQXFDOztJQUNyQyxtQ0FBdUM7O0lBQ3ZDLDJDQUFrRDs7SUFHbEQsMENBQXFEOztJQUNyRCxzQ0FBeUI7O0lBQ3pCLDRDQUF3Qzs7SUFDeEMsdUNBQTJCOztJQUMzQix3Q0FBb0M7O0lBQ3BDLHlDQUF5Qjs7SUFDekIsMENBQTZCOztJQUM3QixvQ0FBZ0I7Ozs7O0lBTUosNkNBQTRDOzs7OztJQUN0RCx1Q0FBc0M7Ozs7O0lBQ3RDLDZDQUE0Qzs7Ozs7SUFDNUMsbUNBQXNCOzs7OztJQUN0QixxQ0FBaUM7Ozs7O0lBQ2pDLHFDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBTaW1wbGVDaGFuZ2UsIE9uRGVzdHJveSwgTmdab25lLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmFEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi8uLi9yYS5kYXNoYm9hcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IFJBRGFzaGJvYXJkRXZlbnRCdXMgfSBmcm9tICcuLi9yYS5kYXNoYmFyZC5ldmVudC5idXMnO1xyXG5pbXBvcnQgeyBSQUV2ZW50LCBSQUV2ZW50S2V5IH0gZnJvbSAnLi4vcmEuZXZlbnQuZW51bSc7XHJcbmltcG9ydCB7IElBcHBDb25maWcsIElXaWRnZXRDb25maWdGaWx0ZXIsIElXaWRnZXRJbmZvLCBSQURvd25sb2FkVHlwZSwgUkFEb3dubG9hZE9wdGlvbiwgUmFXaWRnZXRsb2NrU3RhdHVzIH0gZnJvbSAnQHNjaG5laWRlcmVzcy93aWRnZXRmcmFtZXdvcmsnO1xyXG5pbXBvcnQgeyBOZ3hVaUxvYWRlclNlcnZpY2UgfSBmcm9tICduZ3gtdWktbG9hZGVyJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1ub3RpZmllcic7XHJcblxyXG5pbXBvcnQgeyBSQVRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAc2NobmVpZGVyZXNzL3JhLWNvbW1vbic7XHJcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdyeGpzLWNvbXBhdC9vcGVyYXRvci9pc0VtcHR5JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JhLXdpZGdldC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYS53aWRnZXQuY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yYS53aWRnZXQuY29udGFpbmVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUkFXaWRnZXRDb250YWluZXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyBzaG93UGFuZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgaXNXaWRnZXRMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHdpZGdldEVsZW1lbnQ6IGFueTtcclxuICBwcml2YXRlIGNvbmZpZ0NoYW5nZWQ6IGFueTtcclxuICBwcml2YXRlIGlzSUVPckVkZ2UgPSAvbXNpZVxcc3x0cmlkZW50XFwvfGVkZ2VcXC8vaS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTtcclxuICBwdWJsaWMgd2lkZ2V0SGVpZ2h0OiBudW1iZXI7XHJcbiAgcHVibGljIGxvY2tDbGFzczogc3RyaW5nID0gXCJ1bmxvY2tlZFwiO1xyXG4gIHB1YmxpYyBsb2NrU3RhdHVzOiBSYVdpZGdldGxvY2tTdGF0dXMgPSBSYVdpZGdldGxvY2tTdGF0dXMuVW5sb2NrZWQ7XHJcbiAgcHVibGljIGlzRG93bmxvYWRJY29uVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc0NoYXJ0RG93bmxvYWRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzR3JpZERvd25sb2FkVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkcm9wRG93blNob3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzRG93bmxvYWRDaGFydFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZG93bmxvYWRJY29uVHlwZTogUkFEb3dubG9hZFR5cGU7XHJcbiAgcHVibGljIGVuYWJsZVRpdGxlTGluZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0b29sVGlwVmFsdWU6IHN0cmluZyA9ICcgICc7XHJcbiAgcHVibGljIHRvb2xUaXBXaWR0aDogc3RyaW5nID0gJzBweCc7XHJcbiAgcHVibGljIGxvY2tEZXRhaWxzOiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2N0bFdpZGdldCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjdGxXaWRnZXQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0RHJvcGRvd24nLCB7IHN0YXRpYzogZmFsc2UgfSkgd2lkZ2V0RHJvcGRvd246IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0RG93bmxvYWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgd2lkZ2V0RG93bmxvYWQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VhcmNoSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG5cclxuICBASW5wdXQoJ3dpZGdldC1pbnN0YW5jZS1pZCcpIHdpZGdldEluc3RhbmNlSWQ6IG51bWJlcjtcclxuICBASW5wdXQoJ2dsb2JhbC1maWx0ZXInKSBnbG9iYWxGaWx0ZXI6IGFueTtcclxuICBASW5wdXQoJ2RhdGEnKSBkYXRhOiBhbnk7XHJcbiAgQElucHV0KCdldmVudC1idXMnKSByYURhc2hib2FyZEV2ZW50QnVzOiBSQURhc2hib2FyZEV2ZW50QnVzO1xyXG4gIEBJbnB1dCgnYXBwLWNvbmZpZycpIGFwcENvbmZpZzogSUFwcENvbmZpZztcclxuICBASW5wdXQoJ3dpZGdldC13aWR0aCcpIHdpZHRoOiBudW1iZXI7XHJcbiAgQElucHV0KCd3aWRnZXQtaGVpZ2h0JykgaGVpZ2h0OiBudW1iZXI7XHJcbiAgQElucHV0KCdncmlkLWNlbGwtaGVpZ2h0JykgZ3JpZENlbGxIZWlnaHQ6IG51bWJlcjtcclxuXHJcblxyXG4gIEBPdXRwdXQoKSB3aWRnZXREZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgcHVibGljIGxvY2tUaXRsZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc05vdENvbmZpZ3VyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZG9tUmVzaXplZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9ja1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbG9ja2VkRmllbGRzOiBhbnk7XHJcbiAgcHVibGljIGRldGFpbFBhZ2VVcmw6IHN0cmluZztcclxuICBiYXNlVXJsOiBzdHJpbmc7XHJcbiAgQElucHV0KCdkb20tcmVzaXplZCcpXHJcbiAgc2V0IHNldFJlc2l6ZWQocmVzaXplZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pbnZva2VXaWRnZXRSZXNpemVkRXZlbnQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogUmFEYXNoYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ3hTZXJ2aWNlOiBOZ3hVaUxvYWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFJBVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIG5vdGlmaWVyOiBOb3RpZmllclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChlLnRhcmdldCAhPT0gdGhpcy53aWRnZXREcm9wZG93bi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgIHRoaXMuZHJvcERvd25TaG93biA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLndpZGdldERvd25sb2FkICYmIGUudGFyZ2V0ICE9PSB0aGlzLndpZGdldERvd25sb2FkLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLmlzRG93bmxvYWRDaGFydFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLnJhRGFzaGJvYXJkRXZlbnRCdXMgJiYgY2hhbmdlcy5yYURhc2hib2FyZEV2ZW50QnVzLmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzLnJhRGFzaGJvYXJkRXZlbnRCdXMucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0NoYW5nZWQgPSB0aGlzLnJhRGFzaGJvYXJkRXZlbnRCdXMuc3Vic2NyaWJlV2l0aEtleShSQUV2ZW50LkNvbmZpZ0NoYW5nZWQsIFJBRXZlbnRLZXkuV2lkZ2V0SW5zdGFuY2VJZCwgdGhpcy5kYXRhLndpZGdldEluZm8ud2lkZ2V0SW5zdGFuY2VJZC50b1N0cmluZygpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb25maWdDaGFuZ2VFdmVudEhhbmRsZXIoZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLndpZGdldEVsZW1lbnQgJiYgY2hhbmdlcy5nbG9iYWxGaWx0ZXIgJiYgY2hhbmdlcy5nbG9iYWxGaWx0ZXIuY3VycmVudFZhbHVlICE9IGNoYW5nZXMuZ2xvYmFsRmlsdGVyLnByZXZpb3VzVmFsdWUpIHtcclxuXHJcbiAgICAgIHRoaXMucmVmcmVzaFdpZGdldCh0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMud2lkdGggJiYgY2hhbmdlcy53aWR0aC5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy53aWR0aC5wcmV2aW91c1ZhbHVlIHx8XHJcbiAgICAgIChjaGFuZ2VzLmhlaWdodCAmJiBjaGFuZ2VzLmhlaWdodC5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy5oZWlnaHQucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5pbnZva2VXaWRnZXRSZXNpemVkRXZlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBpbnZva2VXaWRnZXRSZXNpemVkRXZlbnQoKSB7XHJcbiAgICBpZiAodGhpcy53aWRnZXRFbGVtZW50KSB7XHJcbiAgICAgIGxldCBzaXplOiBhbnkgPSB7fTtcclxuICAgICAgc2l6ZS5oZWlnaHQgPSB0aGlzLmhlaWdodDtcclxuICAgICAgc2l6ZS53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICAgIHNpemUuY2VsbEhlaWdodCA9IHRoaXMuZ3JpZENlbGxIZWlnaHQ7XHJcbiAgICAgIHRoaXMud2lkZ2V0RWxlbWVudC53aWRnZXRSZXNpemVkKHNpemUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZFdpZGdldCh0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICB9KTsgICAgXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZ0NoYW5nZWQpXHJcbiAgICAgIHRoaXMuY29uZmlnQ2hhbmdlZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKiBUbyBFZGl0IGN1cnJlbnQgd2lkZ2V0IGNvbmZpZ3VyYXRpb24qL1xyXG4gIHB1YmxpYyBlZGl0V2lkZ2V0KCkge1xyXG4gICAgdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnB1Ymxpc2goUkFFdmVudC5XaWRnZXRFZGl0Q2xpY2tlZCwgdGhpcy5kYXRhLndpZGdldEluZm8pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIERlbGV0ZSBjdXJyZW50IHdpZGdldCBmcm9tIERPTSovXHJcbiAgcHVibGljIGRlbGV0ZVdpZGdldCgpIHtcclxuICAgIGxldCB3aWRnZXRDb250YWluZXJDb250ZXh0ID0gdGhpcztcclxuICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQubmd4U2VydmljZS5zdGFydCgpO1xyXG4gICAgd2lkZ2V0Q29udGFpbmVyQ29udGV4dC5kYXNoYm9hcmRTZXJ2aWNlLmRlbGV0ZVdpZGdldCh0aGlzLmRhdGEud2lkZ2V0SW5mbywgdGhpcy5hcHBDb25maWcpLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICB3aWRnZXRDb250YWluZXJDb250ZXh0Lm5neFNlcnZpY2Uuc3RvcCgpO1xyXG4gICAgICBpZiAoc3RhdHVzKSB7XHJcbiAgICAgICAgd2lkZ2V0Q29udGFpbmVyQ29udGV4dC53aWRnZXREZWxldGVkLmVtaXQodGhpcy5kYXRhLndpZGdldEluZm8ud2lkZ2V0SW5zdGFuY2VJZCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgd2lkZ2V0Q29udGFpbmVyQ29udGV4dC5ub3RpZmllci5ub3RpZnkoJ2Vycm9yJywgXCIgXCIgKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdGYWlsZWRUb1JlbW92ZVdpZGdldCcpICsgXCIgIChcIiArIHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldFRpdGxlICsgXCIpIVwiKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIE1vdmUgb3IgY2hhbmdlIHBvc2l0aW9uIGlmIGN1cnJlbnQgd2lkZ2V0IGNvbnRhaW5lciovXHJcbiAgcHVibGljIG1vdmVXaWRnZXQoKSB7XHJcbiAgICB0aGlzLnJhRGFzaGJvYXJkRXZlbnRCdXMucHVibGlzaChSQUV2ZW50Lk1vdmVXaWRnZXQsIHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICAgIC8vIHRoaXMuZGFzaGJvYXJkU2VydmljZS5tb3ZlV2lkZ2V0KHdpZGdldEluZm8pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvIENvcHkgQ3VycmVudCB3aWRnZXQgd2l0aCBzYW1lIGNvbmZpZ3VyYXRpb24qL1xyXG4gIHB1YmxpYyBjb3B5V2lkZ2V0KCkge1xyXG4gICAgdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnB1Ymxpc2goUkFFdmVudC5Db3B5V2lkZ2V0LCB0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICAvL3RoaXMuZGFzaGJvYXJkU2VydmljZS5jb3B5V2lkZ2V0KHdpZGdldEluZm8pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZpc2l0UGFnZSgpIHtcclxuICAgIHRoaXMuYmFzZVVybCA9IHRoaXMuZ2V0SG9zdFVybCgpO1xyXG4gICAgbG9jYXRpb24uaHJlZiA9IHRoaXMuYmFzZVVybCArIHRoaXMuZGV0YWlsUGFnZVVybDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIb3N0VXJsKCkge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAod2luZG93LmxvY2F0aW9uLnBvcnQgPyAnOicgKyB3aW5kb3cubG9jYXRpb24ucG9ydCA6ICcnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25maWdDaGFuZ2VFdmVudEhhbmRsZXIod2lkZ2V0SW5mbykge1xyXG4gICAgdGhpcy5kYXRhLndpZGdldEluZm8gPSB3aWRnZXRJbmZvO1xyXG4gICAgdGhpcy5yZWZyZXNoV2lkZ2V0KHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICAgIC8vIHRoaXMudXBkYXRlV2lkZ2V0KHdpZGdldEluZm8pO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKiAgVG8gbG9hZCBleHRlcm5hbCBjdXN0b20gZWxlbWVudCB0byB0aGUgd2lkZ2V0IGNvbnRhaW5lciovXHJcbiAgYXN5bmMgbG9hZFdpZGdldCh3aWRnZXRJbmZvOiBhbnkpIHtcclxuICAgIGxldCB3aWRnZXRDb25maWdGaWx0ZXIgPSA8SVdpZGdldENvbmZpZ0ZpbHRlcj57XHJcbiAgICAgIGNvbmZpZzogd2lkZ2V0SW5mby53aWRnZXRDb25maWdJbmZvLmNvbmZpZyxcclxuICAgICAgZ2xvYmFsRmlsdGVyOiB0aGlzLmdsb2JhbEZpbHRlclxyXG4gICAgfVxyXG4gICAgdGhpcy5kZXRhaWxQYWdlVXJsID0gd2lkZ2V0SW5mby5kZXRhaWxQYWdlVXJsO1xyXG4gICAgbGV0IHdpZGdldENvbnRhaW5lciA9IHRoaXM7XHJcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UubG9hZEV4dGVybmFsU2NyaXB0KHdpZGdldEluZm8uc2NyaXB0VXJsLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0Tm90Q29uZmlndXJlZFN0YXRlKHdpZGdldEluZm8pO1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UubG9hZFRyYW5zbGF0aW9ucyh0aGlzLmFwcENvbmZpZy5hcHBNYW5hZ2VtZW50QmFzZVVybCwgdGhpcy5kYXRhLndpZGdldEluZm8ud2lkZ2V0TmFtZSwgZmFsc2UpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh3aWRnZXRJbmZvLmN1c3RvbVRhZyk7XHJcbiAgICAgICAgd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQuc2V0QXR0cmlidXRlKFwid2lkZ2V0LWluc3RhbmNlLWlkXCIsIHdpZGdldEluZm8ud2lkZ2V0SW5zdGFuY2VJZCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCd3aWRnZXRpbml0aWF0ZWQnICsgd2lkZ2V0SW5mby53aWRnZXRJbnN0YW5jZUlkLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignb24tZGF0YS1sb2FkJywgKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChlLmRldGFpbClcclxuICAgICAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci5zaG93UGFuZWwgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci5zaG93UGFuZWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbmZpZy1lZGl0LWNsaWNrZWQnLCAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLmVkaXRXaWRnZXQoKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB3aWRnZXRDb250YWluZXIud2lkZ2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdlbmFibGUtZGVmYXVsdC1zdGF0ZScsIChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnaW4gZW5hYmxlIHN0YXRlIGxpc3RlbmVyJyk7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZS5kZXRhaWwpO1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci5zZXROb3RDb25maWd1cmVkU3RhdGUod2lkZ2V0SW5mbywgZS5kZXRhaWwpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCB0aXRsZUxpbmVFbmFibGVkID0gd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQudGl0bGVMaW5lRW5hYmxlZCgpO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mICh0aXRsZUxpbmVFbmFibGVkKSAhPSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZW5hYmxlVGl0bGVMaW5lID0gdGl0bGVMaW5lRW5hYmxlZDtcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICBcclxuXHJcblxyXG4gICAgICAgICAgICB3aWRnZXRDb250YWluZXIuaXNXaWRnZXRMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB3aWRnZXRDb25maWdGaWx0ZXIuYXBwQ29uZmlnID0gdGhpcy5hcHBDb25maWc7XHJcbiAgICAgICAgICAgIHdpZGdldENvbmZpZ0ZpbHRlci53aWRnZXRJbmZvID0gd2lkZ2V0SW5mbztcclxuICAgICAgICAgICAgLy8gd2lkZ2V0Q29uZmlnRmlsdGVyLndpZGdldEluZm8gPSA8SVdpZGdldEluZm8+e307XHJcbiAgICAgICAgICAgIHdpZGdldENvbmZpZ0ZpbHRlci53aWRnZXRJbmZvLndpZGdldE5hbWUgPSB3aWRnZXRJbmZvLndpZGdldE5hbWU7XHJcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LmxvYWRDb250ZW50KHdpZGdldENvbmZpZ0ZpbHRlcik7XHJcbiAgICAgICAgICAgIGF3YWl0IHdpZGdldENvbnRhaW5lci5zZXRMb2NrKHdpZGdldENvbmZpZ0ZpbHRlci5jb25maWcpO1xyXG4gICAgICAgICAgICBhd2FpdCB3aWRnZXRDb250YWluZXIuc2V0RG93bmxvYWRJY29uKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmN0bFdpZGdldC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMud2lkZ2V0RWxlbWVudCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipUbyBzZXQgRGVmYXVsdCBTdGF0ZSBmb3IgdGhlIHdpZGdldCB3aGVuIGl0IGlzIG5vdCBjb25maWd1cmVkICovXHJcbiAgc2V0Tm90Q29uZmlndXJlZFN0YXRlKHdpZGdldEluZm86IElXaWRnZXRJbmZvLCBmb3JjZUVuYWJsZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBjb25zb2xlLmxvZygnZm9yY2UgZW5hYmxlIGlzJyk7XHJcbiAgICBjb25zb2xlLmxvZyhmb3JjZUVuYWJsZSk7XHJcbiAgICBcclxuICAgIFxyXG4gICAgaWYgKCh3aWRnZXRJbmZvLnNob3dEZWZhdWx0U3RhdGUgJiYgKHdpZGdldEluZm8ud2lkZ2V0Q29uZmlnSW5mby5jb25maWcgPT0gXCJcIiB8fCBPYmplY3Qua2V5cyhKU09OLnBhcnNlKHdpZGdldEluZm8ud2lkZ2V0Q29uZmlnSW5mby5jb25maWcpKS5sZW5ndGggPT0gMCkpIHx8IChmb3JjZUVuYWJsZSkpIHtcclxuICAgICAgdGhpcy5pc05vdENvbmZpZ3VyZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNOb3RDb25maWd1cmVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNvbnNvbGUubG9nKHRoaXMuaXNOb3RDb25maWd1cmVkKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyByZWZyZXNoIHdpZGdldCBvbiBpbnB1dCBjb25maWcgY2hhbmdlcyAqL1xyXG4gIGFzeW5jIHJlZnJlc2hXaWRnZXQod2lkZ2V0SW5mbzogSVdpZGdldEluZm8pIHtcclxuICAgIHRoaXMuc2V0Tm90Q29uZmlndXJlZFN0YXRlKHdpZGdldEluZm8pO1xyXG4gICAgbGV0IHdpZGdldENvbnRhaW5lckNvbnRleHQgPSB0aGlzO1xyXG4gICAgbGV0IHdpZGdldENvbmZpZ0ZpbHRlciA9IDxJV2lkZ2V0Q29uZmlnRmlsdGVyPntcclxuICAgICAgY29uZmlnOiB3aWRnZXRJbmZvLndpZGdldENvbmZpZ0luZm8uY29uZmlnLFxyXG4gICAgICBnbG9iYWxGaWx0ZXI6IHRoaXMuZ2xvYmFsRmlsdGVyLFxyXG4gICAgICBhcHBDb25maWc6IHRoaXMuYXBwQ29uZmlnLFxyXG4gICAgICB3aWRnZXRJbmZvOiB3aWRnZXRJbmZvXHJcbiAgICB9ICAgIFxyXG4gICAgaWYgKHdpZGdldENvbnRhaW5lckNvbnRleHQuaXNXaWRnZXRMb2FkZWQpIHtcclxuICAgICAgd2lkZ2V0Q29udGFpbmVyQ29udGV4dC53aWRnZXRFbGVtZW50LmxvYWRDb250ZW50KHdpZGdldENvbmZpZ0ZpbHRlcik7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2V0TG9jayh3aWRnZXRDb25maWdGaWx0ZXIuY29uZmlnKTtcclxuICAgICAgYXdhaXQgdGhpcy5zZXREb3dubG9hZEljb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb3VzZU92ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50b29sVGlwVmFsdWUgPSAnICc7XHJcbiAgICB0aGlzLnRvb2xUaXBXaWR0aCA9ICcwcHgnO1xyXG4gICAgbGV0IGVsZW1lbnQgPSB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoZWxlbWVudC5vZmZzZXRXaWR0aCA8IGVsZW1lbnQuc2Nyb2xsV2lkdGgpIHtcclxuICAgICAgdGhpcy50b29sVGlwVmFsdWUgPSBlbGVtZW50LmlubmVySFRNTDtcclxuICAgICAgdGhpcy50b29sVGlwV2lkdGggPSAnMzAwcHgnO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudG9vbFRpcFdpZHRoID0gJzBweCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHNldExvY2soY29uZmlnOiBzdHJpbmcpIHtcclxuICAgIHZhciBjb25maWdPYmo6IGFueTtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgY29uZmlnT2JqID0gSlNPTi5wYXJzZShjb25maWcpO1xyXG4gICAgICBpZiAoY29uZmlnT2JqICYmIGNvbmZpZ09iai5Mb2NrcyAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAoY29uZmlnT2JqLkxvY2tzLklzRGF0ZUxvY2tlZCB8fCBjb25maWdPYmouTG9ja3MuSXNEYXRlc0xvY2tlZCB8fCBjb25maWdPYmouTG9ja3MuSXNQYXJ0aWNpcGFudExvY2tlZCB8fCBjb25maWdPYmouTG9ja3MuSXNTb3VyY2VMb2NrZWQpIHtcclxuICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMgPSBbXTtcclxuICAgICAgICAgIGlmIChjb25maWdPYmouTG9ja3MuSXNEYXRlTG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc0RhdGVzTG9ja2VkKVxyXG4gICAgICAgICAgICB0aGlzLmxvY2tEZXRhaWxzLnB1c2goXCJEYXRlIFJhbmdlXCIpO1xyXG5cclxuICAgICAgICAgIGlmIChjb25maWdPYmouTG9ja3MuSXNQYXJ0aWNpcGFudExvY2tlZClcclxuICAgICAgICAgICAgdGhpcy5sb2NrRGV0YWlscy5wdXNoKFwiRGl2aXNpb24vR3JvdXAvU2l0ZVwiKTtcclxuXHJcbiAgICAgICAgICBpZiAoY29uZmlnT2JqLkxvY2tzLklzU291cmNlTG9ja2VkKVxyXG4gICAgICAgICAgICB0aGlzLmxvY2tEZXRhaWxzLnB1c2goXCJEYXRhIFN0cmVhbVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9ja0RldGFpbHMgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXREb3dubG9hZEljb24oKSB7XHJcbiAgICBsZXQgZG93bmxvYWRUeXBlID0gYXdhaXQgdGhpcy53aWRnZXRFbGVtZW50LmdldERvd25sb2FkVHlwZSgpO1xyXG4gICAgdGhpcy5kb3dubG9hZEljb25UeXBlID0gZG93bmxvYWRUeXBlO1xyXG4gICAgdGhpcy5pc0Rvd25sb2FkSWNvblZpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNDaGFydERvd25sb2FkVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0dyaWREb3dubG9hZFZpc2libGUgPSBmYWxzZTtcclxuICAgIGlmIChkb3dubG9hZFR5cGUgIT0gUkFEb3dubG9hZFR5cGUuTm9uZSkge1xyXG4gICAgICB0aGlzLmlzRG93bmxvYWRJY29uVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRvd25sb2FkVHlwZSA9PSBSQURvd25sb2FkVHlwZS5DaGFydCkge1xyXG4gICAgICB0aGlzLmlzQ2hhcnREb3dubG9hZFZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkb3dubG9hZFR5cGUgPT0gUkFEb3dubG9hZFR5cGUuR3JpZCkge1xyXG4gICAgICB0aGlzLmlzR3JpZERvd25sb2FkVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIGRvd25sb2FkQ2xpY2tlZCgpIHtcclxuICAvLyAgIHN3aXRjaCAodGhpcy5kb3dubG9hZEljb25UeXBlKSB7XHJcbiAgLy8gICAgIGNhc2UgUkFEb3dubG9hZFR5cGUuR3JpZDpcclxuICAvLyAgICAgICB0aGlzLmRvd25sb2FkSWNvbkNsaWNrZWQoJ0NTVicpO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlIFJBRG93bmxvYWRUeXBlLkNoYXJ0OlxyXG4gIC8vICAgICAgIHRoaXMuaXNEb3dubG9hZENoYXJ0VmlzaWJsZSA9IHRydWU7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgUkFEb3dubG9hZFR5cGUuQ3VzdG9tOlxyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkSWNvbkNsaWNrZWQodHlwZTogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBcIkNTVlwiOlxyXG4gICAgICAgIHRoaXMud2lkZ2V0RWxlbWVudC5kb3dubG9hZENsaWNrZWQodGhpcy5kb3dubG9hZEljb25UeXBlLCBSQURvd25sb2FkT3B0aW9uLkNTVik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJQTkdcIjpcclxuICAgICAgICB0aGlzLndpZGdldEVsZW1lbnQuZG93bmxvYWRDbGlja2VkKHRoaXMuZG93bmxvYWRJY29uVHlwZSwgUkFEb3dubG9hZE9wdGlvbi5QTkcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUERGXCI6XHJcbiAgICAgICAgdGhpcy53aWRnZXRFbGVtZW50LmRvd25sb2FkQ2xpY2tlZCh0aGlzLmRvd25sb2FkSWNvblR5cGUsIFJBRG93bmxvYWRPcHRpb24uUERGKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlNWR1wiOlxyXG4gICAgICAgIHRoaXMud2lkZ2V0RWxlbWVudC5kb3dubG9hZENsaWNrZWQodGhpcy5kb3dubG9hZEljb25UeXBlLCBSQURvd25sb2FkT3B0aW9uLlNWRyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJKUEVHXCI6XHJcbiAgICAgICAgdGhpcy53aWRnZXRFbGVtZW50LmRvd25sb2FkQ2xpY2tlZCh0aGlzLmRvd25sb2FkSWNvblR5cGUsIFJBRG93bmxvYWRPcHRpb24uSlBFRyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipTaG93IGRyb3Bkb3duIG9uIGdlYXIgaWNvbiBjbGljayAgKi9cclxuICBwdWJsaWMgc2hvd0Ryb3BEb3duKCkge1xyXG4gICAgdGhpcy5zZXREb3dubG9hZEljb24oKTtcclxuICAgIHRoaXMuZHJvcERvd25TaG93biA9IXRoaXMuZHJvcERvd25TaG93bjtcclxuICB9XHJcblxyXG4gIC8qKkhpZGUgZHJvcGRvd24gb24gb3V0c2lkZSBjbGljayAqL1xyXG4gIHB1YmxpYyBoaWRlRHJvcERvd24oKSB7XHJcbiAgICBpZiAodGhpcy5kcm9wRG93blNob3duKSB7XHJcbiAgICAgIHRoaXMuZHJvcERvd25TaG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0Rvd25sb2FkQ2hhcnRWaXNpYmxlID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
599
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmEud2lkZ2V0LmNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2NobmVpZGVyZXNzL2Rhc2hib2FyZGZyYW1ld29yay8iLCJzb3VyY2VzIjpbImxpYi9yYS13aWRnZXQtY29udGFpbmVyL3JhLndpZGdldC5jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBb0UsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN4TSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBZ0QsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkosT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVM3RCxNQUFNLE9BQU8saUJBQWlCOzs7Ozs7Ozs7SUFtRDVCLFlBQW9CLGdCQUFvQyxFQUM5QyxVQUE4QixFQUM5QixnQkFBb0MsRUFDcEMsTUFBYyxFQUNkLFFBQXlCLEVBQ3pCLFFBQW1CO1FBTFQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUM5QyxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdB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QUFLLFNBQUMsZUFBZTs2QkFDckIsS0FBSyxTQUFDLGtCQUFrQjs0QkFHeEIsTUFBTTt5QkFRTixLQUFLLFNBQUMsYUFBYTs7OztJQTVDcEIsc0NBQWlDOzs7OztJQUNqQywyQ0FBd0M7Ozs7O0lBQ3hDLDBDQUEyQjs7Ozs7SUFDM0IsMENBQTJCOzs7OztJQUMzQix1Q0FBaUY7O0lBQ2pGLHlDQUE0Qjs7SUFDNUIsc0NBQXNDOztJQUN0Qyx1Q0FBb0U7O0lBQ3BFLGtEQUE4Qzs7SUFDOUMsbURBQStDOztJQUMvQyxrREFBOEM7O0lBQzlDLDBDQUFzQzs7SUFDdEMsbURBQStDOztJQUMvQyw2Q0FBd0M7O0lBQ3hDLDRDQUF3Qzs7SUFDeEMseUNBQW1DOztJQUNuQyx5Q0FBb0M7O0lBQ3BDLHdDQUF3Qjs7SUFDeEIsNkNBQTBDOztJQUUxQyxzQ0FBaUU7O0lBQ2pFLDJDQUEyRTs7SUFDM0UsMkNBQTJFOztJQUMzRSx3Q0FBcUU7O0lBR3JFLDZDQUFzRDs7SUFDdEQseUNBQTBDOztJQUMxQyxpQ0FBeUI7O0lBQ3pCLGdEQUE2RDs7SUFDN0Qsc0NBQTJDOztJQUMzQyxrQ0FBcUM7O0lBQ3JDLG1DQUF1Qzs7SUFDdkMsMkNBQWtEOztJQUdsRCwwQ0FBcUQ7O0lBQ3JELHNDQUF5Qjs7SUFDekIsNENBQXdDOztJQUN4Qyx1Q0FBMkI7O0lBQzNCLHdDQUFvQzs7SUFDcEMseUNBQXlCOztJQUN6QiwwQ0FBNkI7O0lBQzdCLG9DQUFnQjs7Ozs7SUFNSiw2Q0FBNEM7Ozs7O0lBQ3RELHVDQUFzQzs7Ozs7SUFDdEMsNkNBQTRDOzs7OztJQUM1QyxtQ0FBc0I7Ozs7O0lBQ3RCLHFDQUFpQzs7Ozs7SUFDakMscUNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQsIFNpbXBsZUNoYW5nZSwgT25EZXN0cm95LCBOZ1pvbmUsIFJlbmRlcmVyMiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmFEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi8uLi9yYS5kYXNoYm9hcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IFJBRGFzaGJvYXJkRXZlbnRCdXMgfSBmcm9tICcuLi9yYS5kYXNoYmFyZC5ldmVudC5idXMnO1xyXG5pbXBvcnQgeyBSQUV2ZW50LCBSQUV2ZW50S2V5IH0gZnJvbSAnLi4vcmEuZXZlbnQuZW51bSc7XHJcbmltcG9ydCB7IElBcHBDb25maWcsIElXaWRnZXRDb25maWdGaWx0ZXIsIElXaWRnZXRJbmZvLCBSQURvd25sb2FkVHlwZSwgUkFEb3dubG9hZE9wdGlvbiwgUmFXaWRnZXRsb2NrU3RhdHVzIH0gZnJvbSAnQHNjaG5laWRlcmVzcy93aWRnZXRmcmFtZXdvcmsnO1xyXG5pbXBvcnQgeyBOZ3hVaUxvYWRlclNlcnZpY2UgfSBmcm9tICduZ3gtdWktbG9hZGVyJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1ub3RpZmllcic7XHJcblxyXG5pbXBvcnQgeyBSQVRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAc2NobmVpZGVyZXNzL3JhLWNvbW1vbic7XHJcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdyeGpzLWNvbXBhdC9vcGVyYXRvci9pc0VtcHR5JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JhLXdpZGdldC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYS53aWRnZXQuY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yYS53aWRnZXQuY29udGFpbmVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUkFXaWRnZXRDb250YWluZXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyBzaG93UGFuZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByaXZhdGUgaXNXaWRnZXRMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHdpZGdldEVsZW1lbnQ6IGFueTtcclxuICBwcml2YXRlIGNvbmZpZ0NoYW5nZWQ6IGFueTtcclxuICBwcml2YXRlIGlzSUVPckVkZ2UgPSAvbXNpZVxcc3x0cmlkZW50XFwvfGVkZ2VcXC8vaS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTtcclxuICBwdWJsaWMgd2lkZ2V0SGVpZ2h0OiBudW1iZXI7XHJcbiAgcHVibGljIGxvY2tDbGFzczogc3RyaW5nID0gXCJ1bmxvY2tlZFwiO1xyXG4gIHB1YmxpYyBsb2NrU3RhdHVzOiBSYVdpZGdldGxvY2tTdGF0dXMgPSBSYVdpZGdldGxvY2tTdGF0dXMuVW5sb2NrZWQ7XHJcbiAgcHVibGljIGlzRG93bmxvYWRJY29uVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc0NoYXJ0RG93bmxvYWRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzR3JpZERvd25sb2FkVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkcm9wRG93blNob3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzRG93bmxvYWRDaGFydFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZG93bmxvYWRJY29uVHlwZTogUkFEb3dubG9hZFR5cGU7XHJcbiAgcHVibGljIGVuYWJsZVRpdGxlTGluZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0b29sVGlwVmFsdWU6IHN0cmluZyA9ICcgICc7XHJcbiAgcHVibGljIHRvb2xUaXBXaWR0aDogc3RyaW5nID0gJzBweCc7XHJcbiAgcHVibGljIGxvY2tEZXRhaWxzOiBhbnk7XHJcbiAgcHVibGljIGxvY2tUZW1wbGF0ZUluZm86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2N0bFdpZGdldCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjdGxXaWRnZXQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0RHJvcGRvd24nLCB7IHN0YXRpYzogZmFsc2UgfSkgd2lkZ2V0RHJvcGRvd246IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0RG93bmxvYWQnLCB7IHN0YXRpYzogZmFsc2UgfSkgd2lkZ2V0RG93bmxvYWQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VhcmNoSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG5cclxuICBASW5wdXQoJ3dpZGdldC1pbnN0YW5jZS1pZCcpIHdpZGdldEluc3RhbmNlSWQ6IG51bWJlcjtcclxuICBASW5wdXQoJ2dsb2JhbC1maWx0ZXInKSBnbG9iYWxGaWx0ZXI6IGFueTtcclxuICBASW5wdXQoJ2RhdGEnKSBkYXRhOiBhbnk7XHJcbiAgQElucHV0KCdldmVudC1idXMnKSByYURhc2hib2FyZEV2ZW50QnVzOiBSQURhc2hib2FyZEV2ZW50QnVzO1xyXG4gIEBJbnB1dCgnYXBwLWNvbmZpZycpIGFwcENvbmZpZzogSUFwcENvbmZpZztcclxuICBASW5wdXQoJ3dpZGdldC13aWR0aCcpIHdpZHRoOiBudW1iZXI7XHJcbiAgQElucHV0KCd3aWRnZXQtaGVpZ2h0JykgaGVpZ2h0OiBudW1iZXI7XHJcbiAgQElucHV0KCdncmlkLWNlbGwtaGVpZ2h0JykgZ3JpZENlbGxIZWlnaHQ6IG51bWJlcjtcclxuXHJcblxyXG4gIEBPdXRwdXQoKSB3aWRnZXREZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgcHVibGljIGxvY2tUaXRsZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc05vdENvbmZpZ3VyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZG9tUmVzaXplZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9ja1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbG9ja2VkRmllbGRzOiBhbnk7XHJcbiAgcHVibGljIGRldGFpbFBhZ2VVcmw6IHN0cmluZztcclxuICBiYXNlVXJsOiBzdHJpbmc7XHJcbiAgQElucHV0KCdkb20tcmVzaXplZCcpXHJcbiAgc2V0IHNldFJlc2l6ZWQocmVzaXplZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pbnZva2VXaWRnZXRSZXNpemVkRXZlbnQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGFzaGJvYXJkU2VydmljZTogUmFEYXNoYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ3hTZXJ2aWNlOiBOZ3hVaUxvYWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFJBVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIG5vdGlmaWVyOiBOb3RpZmllclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIGlmIChlLnRhcmdldCAhPT0gdGhpcy53aWRnZXREcm9wZG93bi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5kcm9wRG93blNob3duID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMud2lkZ2V0RG93bmxvYWQgJiYgZS50YXJnZXQgIT09IHRoaXMud2lkZ2V0RG93bmxvYWQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgIHRoaXMuaXNEb3dubG9hZENoYXJ0VmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cyAmJiBjaGFuZ2VzLnJhRGFzaGJvYXJkRXZlbnRCdXMuY3VycmVudFZhbHVlICE9IGNoYW5nZXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnQ2hhbmdlZCA9IHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5zdWJzY3JpYmVXaXRoS2V5KFJBRXZlbnQuQ29uZmlnQ2hhbmdlZCwgUkFFdmVudEtleS5XaWRnZXRJbnN0YW5jZUlkLCB0aGlzLmRhdGEud2lkZ2V0SW5mby53aWRnZXRJbnN0YW5jZUlkLnRvU3RyaW5nKCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ0NoYW5nZUV2ZW50SGFuZGxlcihlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2lkZ2V0RWxlbWVudCAmJiBjaGFuZ2VzLmdsb2JhbEZpbHRlciAmJiBjaGFuZ2VzLmdsb2JhbEZpbHRlci5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy5nbG9iYWxGaWx0ZXIucHJldmlvdXNWYWx1ZSkge1xyXG5cclxuICAgICAgdGhpcy5yZWZyZXNoV2lkZ2V0KHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlcy53aWR0aCAmJiBjaGFuZ2VzLndpZHRoLmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzLndpZHRoLnByZXZpb3VzVmFsdWUgfHxcclxuICAgICAgKGNoYW5nZXMuaGVpZ2h0ICYmIGNoYW5nZXMuaGVpZ2h0LmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzLmhlaWdodC5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmludm9rZVdpZGdldFJlc2l6ZWRFdmVudCgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGludm9rZVdpZGdldFJlc2l6ZWRFdmVudCgpIHtcclxuICAgIGlmICh0aGlzLndpZGdldEVsZW1lbnQpIHtcclxuICAgICAgbGV0IHNpemU6IGFueSA9IHt9O1xyXG4gICAgICBzaXplLmhlaWdodCA9IHRoaXMuaGVpZ2h0O1xyXG4gICAgICBzaXplLndpZHRoID0gdGhpcy53aWR0aDtcclxuICAgICAgc2l6ZS5jZWxsSGVpZ2h0ID0gdGhpcy5ncmlkQ2VsbEhlaWdodDtcclxuICAgICAgdGhpcy53aWRnZXRFbGVtZW50LndpZGdldFJlc2l6ZWQoc2l6ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkV2lkZ2V0KHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb25maWdDaGFuZ2VkKVxyXG4gICAgICB0aGlzLmNvbmZpZ0NoYW5nZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG5cclxuICAvKiogVG8gRWRpdCBjdXJyZW50IHdpZGdldCBjb25maWd1cmF0aW9uKi9cclxuICBwdWJsaWMgZWRpdFdpZGdldCgpIHtcclxuICAgIHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wdWJsaXNoKFJBRXZlbnQuV2lkZ2V0RWRpdENsaWNrZWQsIHRoaXMuZGF0YS53aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBEZWxldGUgY3VycmVudCB3aWRnZXQgZnJvbSBET00qL1xyXG4gIHB1YmxpYyBkZWxldGVXaWRnZXQoKSB7XHJcbiAgICBsZXQgd2lkZ2V0Q29udGFpbmVyQ29udGV4dCA9IHRoaXM7XHJcbiAgICB3aWRnZXRDb250YWluZXJDb250ZXh0Lm5neFNlcnZpY2Uuc3RhcnQoKTtcclxuICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQuZGFzaGJvYXJkU2VydmljZS5kZWxldGVXaWRnZXQodGhpcy5kYXRhLndpZGdldEluZm8sIHRoaXMuYXBwQ29uZmlnKS5zdWJzY3JpYmUoc3RhdHVzID0+IHtcclxuICAgICAgd2lkZ2V0Q29udGFpbmVyQ29udGV4dC5uZ3hTZXJ2aWNlLnN0b3AoKTtcclxuICAgICAgaWYgKHN0YXR1cykge1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQud2lkZ2V0RGVsZXRlZC5lbWl0KHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lckNvbnRleHQubm90aWZpZXIubm90aWZ5KCdlcnJvcicsIFwiIFwiICsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZSgnRmFpbGVkVG9SZW1vdmVXaWRnZXQnKSArIFwiICAoXCIgKyB0aGlzLmRhdGEud2lkZ2V0SW5mby53aWRnZXRUaXRsZSArIFwiKSFcIik7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBNb3ZlIG9yIGNoYW5nZSBwb3NpdGlvbiBpZiBjdXJyZW50IHdpZGdldCBjb250YWluZXIqL1xyXG4gIHB1YmxpYyBtb3ZlV2lkZ2V0KCkge1xyXG4gICAgdGhpcy5yYURhc2hib2FyZEV2ZW50QnVzLnB1Ymxpc2goUkFFdmVudC5Nb3ZlV2lkZ2V0LCB0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICAvLyB0aGlzLmRhc2hib2FyZFNlcnZpY2UubW92ZVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyBDb3B5IEN1cnJlbnQgd2lkZ2V0IHdpdGggc2FtZSBjb25maWd1cmF0aW9uKi9cclxuICBwdWJsaWMgY29weVdpZGdldCgpIHtcclxuICAgIHRoaXMucmFEYXNoYm9hcmRFdmVudEJ1cy5wdWJsaXNoKFJBRXZlbnQuQ29weVdpZGdldCwgdGhpcy5kYXRhLndpZGdldEluZm8pO1xyXG4gICAgLy90aGlzLmRhc2hib2FyZFNlcnZpY2UuY29weVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2aXNpdFBhZ2UoKSB7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSB0aGlzLmdldEhvc3RVcmwoKTtcclxuICAgIGxvY2F0aW9uLmhyZWYgPSB0aGlzLmJhc2VVcmwgKyB0aGlzLmRldGFpbFBhZ2VVcmw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SG9zdFVybCgpIHtcclxuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgKHdpbmRvdy5sb2NhdGlvbi5wb3J0ID8gJzonICsgd2luZG93LmxvY2F0aW9uLnBvcnQgOiAnJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uZmlnQ2hhbmdlRXZlbnRIYW5kbGVyKHdpZGdldEluZm8pIHtcclxuICAgIHRoaXMuZGF0YS53aWRnZXRJbmZvID0gd2lkZ2V0SW5mbztcclxuICAgIHRoaXMucmVmcmVzaFdpZGdldCh0aGlzLmRhdGEud2lkZ2V0SW5mbyk7XHJcbiAgICAvLyB0aGlzLnVwZGF0ZVdpZGdldCh3aWRnZXRJbmZvKTtcclxuICB9XHJcblxyXG5cclxuICAvKiogIFRvIGxvYWQgZXh0ZXJuYWwgY3VzdG9tIGVsZW1lbnQgdG8gdGhlIHdpZGdldCBjb250YWluZXIqL1xyXG4gIGFzeW5jIGxvYWRXaWRnZXQod2lkZ2V0SW5mbzogYW55KSB7XHJcbiAgICBsZXQgd2lkZ2V0Q29uZmlnRmlsdGVyID0gPElXaWRnZXRDb25maWdGaWx0ZXI+e1xyXG4gICAgICBjb25maWc6IHdpZGdldEluZm8ud2lkZ2V0Q29uZmlnSW5mby5jb25maWcsXHJcbiAgICAgIGdsb2JhbEZpbHRlcjogdGhpcy5nbG9iYWxGaWx0ZXJcclxuICAgIH1cclxuICAgIHRoaXMuZGV0YWlsUGFnZVVybCA9IHdpZGdldEluZm8uZGV0YWlsUGFnZVVybDtcclxuICAgIGxldCB3aWRnZXRDb250YWluZXIgPSB0aGlzO1xyXG4gICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmxvYWRFeHRlcm5hbFNjcmlwdCh3aWRnZXRJbmZvLnNjcmlwdFVybCwgKCkgPT4ge1xyXG4gICAgICB0aGlzLnNldE5vdENvbmZpZ3VyZWRTdGF0ZSh3aWRnZXRJbmZvKTtcclxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxvYWRUcmFuc2xhdGlvbnModGhpcy5hcHBDb25maWcuYXBwTWFuYWdlbWVudEJhc2VVcmwsIHRoaXMuZGF0YS53aWRnZXRJbmZvLndpZGdldE5hbWUsIGZhbHNlKS50aGVuKCgpID0+IHtcclxuICAgICAgICB3aWRnZXRDb250YWluZXIud2lkZ2V0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQod2lkZ2V0SW5mby5jdXN0b21UYWcpO1xyXG4gICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LnNldEF0dHJpYnV0ZShcIndpZGdldC1pbnN0YW5jZS1pZFwiLCB3aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQpO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3dpZGdldGluaXRpYXRlZCcgKyB3aWRnZXRJbmZvLndpZGdldEluc3RhbmNlSWQsIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICB3aWRnZXRDb250YWluZXIud2lkZ2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdvbi1kYXRhLWxvYWQnLCAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGUuZGV0YWlsKVxyXG4gICAgICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLnNob3dQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLnNob3dQYW5lbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY29uZmlnLWVkaXQtY2xpY2tlZCcsIChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB3aWRnZXRDb250YWluZXIuZWRpdFdpZGdldCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci53aWRnZXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2VuYWJsZS1kZWZhdWx0LXN0YXRlJywgKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbiBlbmFibGUgc3RhdGUgbGlzdGVuZXInKTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlLmRldGFpbCk7XHJcblxyXG4gICAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci5zZXROb3RDb25maWd1cmVkU3RhdGUod2lkZ2V0SW5mbywgZS5kZXRhaWwpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxldCB0aXRsZUxpbmVFbmFibGVkID0gd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQudGl0bGVMaW5lRW5hYmxlZCgpO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mICh0aXRsZUxpbmVFbmFibGVkKSAhPSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZW5hYmxlVGl0bGVMaW5lID0gdGl0bGVMaW5lRW5hYmxlZDtcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lci5pc1dpZGdldExvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHdpZGdldENvbmZpZ0ZpbHRlci5hcHBDb25maWcgPSB0aGlzLmFwcENvbmZpZztcclxuICAgICAgICAgICAgd2lkZ2V0Q29uZmlnRmlsdGVyLndpZGdldEluZm8gPSB3aWRnZXRJbmZvO1xyXG4gICAgICAgICAgICAvLyB3aWRnZXRDb25maWdGaWx0ZXIud2lkZ2V0SW5mbyA9IDxJV2lkZ2V0SW5mbz57fTtcclxuICAgICAgICAgICAgd2lkZ2V0Q29uZmlnRmlsdGVyLndpZGdldEluZm8ud2lkZ2V0TmFtZSA9IHdpZGdldEluZm8ud2lkZ2V0TmFtZTtcclxuICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLndpZGdldEVsZW1lbnQubG9hZENvbnRlbnQod2lkZ2V0Q29uZmlnRmlsdGVyKTtcclxuICAgICAgICAgICAgYXdhaXQgd2lkZ2V0Q29udGFpbmVyLnNldExvY2sod2lkZ2V0Q29uZmlnRmlsdGVyLmNvbmZpZyk7XHJcbiAgICAgICAgICAgIGF3YWl0IHdpZGdldENvbnRhaW5lci5zZXREb3dubG9hZEljb24oKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY3RsV2lkZ2V0Lm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy53aWRnZXRFbGVtZW50KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlRvIHNldCBEZWZhdWx0IFN0YXRlIGZvciB0aGUgd2lkZ2V0IHdoZW4gaXQgaXMgbm90IGNvbmZpZ3VyZWQgKi9cclxuICBzZXROb3RDb25maWd1cmVkU3RhdGUod2lkZ2V0SW5mbzogSVdpZGdldEluZm8sIGZvcmNlRW5hYmxlOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGNvbnNvbGUubG9nKCdmb3JjZSBlbmFibGUgaXMnKTtcclxuICAgIGNvbnNvbGUubG9nKGZvcmNlRW5hYmxlKTtcclxuXHJcblxyXG4gICAgaWYgKCh3aWRnZXRJbmZvLnNob3dEZWZhdWx0U3RhdGUgJiYgKHdpZGdldEluZm8ud2lkZ2V0Q29uZmlnSW5mby5jb25maWcgPT0gXCJcIiB8fCBPYmplY3Qua2V5cyhKU09OLnBhcnNlKHdpZGdldEluZm8ud2lkZ2V0Q29uZmlnSW5mby5jb25maWcpKS5sZW5ndGggPT0gMCkpIHx8IChmb3JjZUVuYWJsZSkpIHtcclxuICAgICAgdGhpcy5pc05vdENvbmZpZ3VyZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNOb3RDb25maWd1cmVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNvbnNvbGUubG9nKHRoaXMuaXNOb3RDb25maWd1cmVkKTtcclxuICB9XHJcblxyXG4gIC8qKiBUbyByZWZyZXNoIHdpZGdldCBvbiBpbnB1dCBjb25maWcgY2hhbmdlcyAqL1xyXG4gIGFzeW5jIHJlZnJlc2hXaWRnZXQod2lkZ2V0SW5mbzogSVdpZGdldEluZm8pIHtcclxuICAgIHRoaXMuc2V0Tm90Q29uZmlndXJlZFN0YXRlKHdpZGdldEluZm8pO1xyXG4gICAgbGV0IHdpZGdldENvbnRhaW5lckNvbnRleHQgPSB0aGlzO1xyXG4gICAgbGV0IHdpZGdldENvbmZpZ0ZpbHRlciA9IDxJV2lkZ2V0Q29uZmlnRmlsdGVyPntcclxuICAgICAgY29uZmlnOiB3aWRnZXRJbmZvLndpZGdldENvbmZpZ0luZm8uY29uZmlnLFxyXG4gICAgICBnbG9iYWxGaWx0ZXI6IHRoaXMuZ2xvYmFsRmlsdGVyLFxyXG4gICAgICBhcHBDb25maWc6IHRoaXMuYXBwQ29uZmlnLFxyXG4gICAgICB3aWRnZXRJbmZvOiB3aWRnZXRJbmZvXHJcbiAgICB9XHJcbiAgICBpZiAod2lkZ2V0Q29udGFpbmVyQ29udGV4dC5pc1dpZGdldExvYWRlZCkge1xyXG4gICAgICB3aWRnZXRDb250YWluZXJDb250ZXh0LndpZGdldEVsZW1lbnQubG9hZENvbnRlbnQod2lkZ2V0Q29uZmlnRmlsdGVyKTtcclxuICAgICAgYXdhaXQgdGhpcy5zZXRMb2NrKHdpZGdldENvbmZpZ0ZpbHRlci5jb25maWcpO1xyXG4gICAgICBhd2FpdCB0aGlzLnNldERvd25sb2FkSWNvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG1vdXNlT3ZlcihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnRvb2xUaXBWYWx1ZSA9ICcgJztcclxuICAgIHRoaXMudG9vbFRpcFdpZHRoID0gJzBweCc7XHJcbiAgICBsZXQgZWxlbWVudCA9IHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudDtcclxuICAgIGlmIChlbGVtZW50Lm9mZnNldFdpZHRoIDwgZWxlbWVudC5zY3JvbGxXaWR0aCkge1xyXG4gICAgICB0aGlzLnRvb2xUaXBWYWx1ZSA9IGVsZW1lbnQuaW5uZXJIVE1MO1xyXG4gICAgICB0aGlzLnRvb2xUaXBXaWR0aCA9ICczMDBweCc7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy50b29sVGlwV2lkdGggPSAnMHB4JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2V0TG9jayhjb25maWc6IHN0cmluZykge1xyXG4gICAgdGhpcy5sb2NrVGVtcGxhdGVJbmZvID0gdGhpcy53aWRnZXRFbGVtZW50LmxvYWRMb2NrSW5mbygpO1xyXG4gICAgdmFyIGNvbmZpZ09iajogYW55O1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBjb25maWdPYmogPSBKU09OLnBhcnNlKGNvbmZpZyk7XHJcbiAgICAgIGlmIChjb25maWdPYmogJiYgY29uZmlnT2JqLkxvY2tzICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChjb25maWdPYmouTG9ja3MuSXNEYXRlTG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc0RhdGVzTG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc1BhcnRpY2lwYW50TG9ja2VkIHx8IGNvbmZpZ09iai5Mb2Nrcy5Jc1NvdXJjZUxvY2tlZCkge1xyXG4gICAgICAgICAgdGhpcy5sb2NrRGV0YWlscyA9IFtdO1xyXG4gICAgICAgICAgaWYgKGNvbmZpZ09iai5Mb2Nrcy5Jc0RhdGVMb2NrZWQgfHwgY29uZmlnT2JqLkxvY2tzLklzRGF0ZXNMb2NrZWQpXHJcbiAgICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMucHVzaChcIkRhdGUgUmFuZ2VcIik7XHJcblxyXG4gICAgICAgICAgaWYgKGNvbmZpZ09iai5Mb2Nrcy5Jc1BhcnRpY2lwYW50TG9ja2VkKVxyXG4gICAgICAgICAgICB0aGlzLmxvY2tEZXRhaWxzLnB1c2goXCJEaXZpc2lvbi9Hcm91cC9TaXRlXCIpO1xyXG5cclxuICAgICAgICAgIGlmIChjb25maWdPYmouTG9ja3MuSXNTb3VyY2VMb2NrZWQpXHJcbiAgICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMucHVzaChcIkRhdGEgU3RyZWFtXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9ja0RldGFpbHMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9ja0RldGFpbHMgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXREb3dubG9hZEljb24oKSB7XHJcbiAgICBsZXQgZG93bmxvYWRUeXBlID0gYXdhaXQgdGhpcy53aWRnZXRFbGVtZW50LmdldERvd25sb2FkVHlwZSgpO1xyXG4gICAgdGhpcy5kb3dubG9hZEljb25UeXBlID0gZG93bmxvYWRUeXBlO1xyXG4gICAgdGhpcy5pc0Rvd25sb2FkSWNvblZpc2libGUgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNDaGFydERvd25sb2FkVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0dyaWREb3dubG9hZFZpc2libGUgPSBmYWxzZTtcclxuICAgIGlmIChkb3dubG9hZFR5cGUgIT0gUkFEb3dubG9hZFR5cGUuTm9uZSkge1xyXG4gICAgICB0aGlzLmlzRG93bmxvYWRJY29uVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRvd25sb2FkVHlwZSA9PSBSQURvd25sb2FkVHlwZS5DaGFydCkge1xyXG4gICAgICB0aGlzLmlzQ2hhcnREb3dubG9hZFZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkb3dubG9hZFR5cGUgPT0gUkFEb3dubG9hZFR5cGUuR3JpZCkge1xyXG4gICAgICB0aGlzLmlzR3JpZERvd25sb2FkVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIGRvd25sb2FkQ2xpY2tlZCgpIHtcclxuICAvLyAgIHN3aXRjaCAodGhpcy5kb3dubG9hZEljb25UeXBlKSB7XHJcbiAgLy8gICAgIGNhc2UgUkFEb3dubG9hZFR5cGUuR3JpZDpcclxuICAvLyAgICAgICB0aGlzLmRvd25sb2FkSWNvbkNsaWNrZWQoJ0NTVicpO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlIFJBRG93bmxvYWRUeXBlLkNoYXJ0OlxyXG4gIC8vICAgICAgIHRoaXMuaXNEb3dubG9hZENoYXJ0VmlzaWJsZSA9IHRydWU7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgUkFEb3dubG9hZFR5cGUuQ3VzdG9tOlxyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkSWNvbkNsaWNrZWQodHlwZTogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBcIkNTVlwiOlxyXG4gICAgICAgIHRoaXMud2lkZ2V0RWxlbWVudC5kb3dubG9hZENsaWNrZWQodGhpcy5kb3dubG9hZEljb25UeXBlLCBSQURvd25sb2FkT3B0aW9uLkNTVik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJQTkdcIjpcclxuICAgICAgICB0aGlzLndpZGdldEVsZW1lbnQuZG93bmxvYWRDbGlja2VkKHRoaXMuZG93bmxvYWRJY29uVHlwZSwgUkFEb3dubG9hZE9wdGlvbi5QTkcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUERGXCI6XHJcbiAgICAgICAgdGhpcy53aWRnZXRFbGVtZW50LmRvd25sb2FkQ2xpY2tlZCh0aGlzLmRvd25sb2FkSWNvblR5cGUsIFJBRG93bmxvYWRPcHRpb24uUERGKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlNWR1wiOlxyXG4gICAgICAgIHRoaXMud2lkZ2V0RWxlbWVudC5kb3dubG9hZENsaWNrZWQodGhpcy5kb3dubG9hZEljb25UeXBlLCBSQURvd25sb2FkT3B0aW9uLlNWRyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJKUEVHXCI6XHJcbiAgICAgICAgdGhpcy53aWRnZXRFbGVtZW50LmRvd25sb2FkQ2xpY2tlZCh0aGlzLmRvd25sb2FkSWNvblR5cGUsIFJBRG93bmxvYWRPcHRpb24uSlBFRyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipTaG93IGRyb3Bkb3duIG9uIGdlYXIgaWNvbiBjbGljayAgKi9cclxuICBwdWJsaWMgc2hvd0Ryb3BEb3duKCkge1xyXG4gICAgdGhpcy5zZXREb3dubG9hZEljb24oKTtcclxuICAgIHRoaXMuZHJvcERvd25TaG93biA9ICF0aGlzLmRyb3BEb3duU2hvd247XHJcbiAgfVxyXG5cclxuICAvKipIaWRlIGRyb3Bkb3duIG9uIG91dHNpZGUgY2xpY2sgKi9cclxuICBwdWJsaWMgaGlkZURyb3BEb3duKCkge1xyXG4gICAgaWYgKHRoaXMuZHJvcERvd25TaG93bikge1xyXG4gICAgICB0aGlzLmRyb3BEb3duU2hvd24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNEb3dubG9hZENoYXJ0VmlzaWJsZSA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -735,7 +735,7 @@ var GridsterComponent = /** @class */ (function () {
|
|
|
735
735
|
selector: 'gridster',
|
|
736
736
|
template: "<div class=\"gridster-column\" *ngFor=\"let column of gridColumns; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"></div>\r\n<div class=\"gridster-row\" *ngFor=\"let row of gridRows; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"></div>\r\n<ng-content></ng-content>\r\n<gridster-preview class=\"gridster-preview\"></gridster-preview>\r\n",
|
|
737
737
|
encapsulation: ViewEncapsulation.None,
|
|
738
|
-
styles: ["gridster{clear:both;position:relative;box-sizing:border-box;background:#fff;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;overflow:auto}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto;flex-flow:column}gridster.mobile gridster-item{position:relative;width:100%!important;min-height:300px!important}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid #ccc;border-right:1px solid #ccc}gridster .gridster-row{border-top:1px solid #ccc;border-bottom:1px solid #ccc}"]
|
|
738
|
+
styles: ["gridster{clear:both;position:relative;box-sizing:border-box;background:#fff;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;overflow:auto}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-flow:column}gridster.mobile gridster-item{position:relative;width:100%!important;min-height:300px!important}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;-webkit-transition:.3s;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid #ccc;border-right:1px solid #ccc}gridster .gridster-row{border-top:1px solid #ccc;border-bottom:1px solid #ccc}"]
|
|
739
739
|
}] }
|
|
740
740
|
];
|
|
741
741
|
/** @nocollapse */
|
|
@@ -187,7 +187,7 @@ var GridsterItemComponent = /** @class */ (function () {
|
|
|
187
187
|
selector: 'gridster-item',
|
|
188
188
|
template: "<ng-content></ng-content>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.s || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-s\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.e || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-e\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.n || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-n\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.w || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-w\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.se || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-se\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.ne || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-ne\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.sw || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-sw\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.nw || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-nw\"></div>\r\n",
|
|
189
189
|
encapsulation: ViewEncapsulation.None,
|
|
190
|
-
styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-moving,gridster-item.gridster-item-resizing{transition:none;z-index:2;box-shadow:0 0 5px 5px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:n-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:e-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:s-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:w-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}"]
|
|
190
|
+
styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;-webkit-transition:.3s;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-moving,gridster-item.gridster-item-resizing{-webkit-transition:none;transition:none;z-index:2;box-shadow:0 0 5px 5px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:n-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:e-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:s-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:w-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}"]
|
|
191
191
|
}] }
|
|
192
192
|
];
|
|
193
193
|
/** @nocollapse */
|